From ec88a7908226d7239920edfcd76f613ec0c4f7de Mon Sep 17 00:00:00 2001 From: Daneel53 Date: Sun, 14 Jun 2026 11:20:18 +0200 Subject: [PATCH 1/4] Ger rid of warnings CS0618 Must replace obsolete AddItems() by AddItemsAsync() --- Assets/Scripts/Terrain/TerrainNature.cs | 16 ++++++++++++++-- Assets/Scripts/Utility/RMBLayout.cs | 24 ++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Terrain/TerrainNature.cs b/Assets/Scripts/Terrain/TerrainNature.cs index 5570cf2b15..3bb8683a31 100644 --- a/Assets/Scripts/Terrain/TerrainNature.cs +++ b/Assets/Scripts/Terrain/TerrainNature.cs @@ -13,6 +13,7 @@ using DaggerfallConnect.Arena2; using DaggerfallConnect; using DaggerfallWorkshop.Utility.AssetInjection; +using System.Collections.Generic; namespace DaggerfallWorkshop { @@ -109,6 +110,7 @@ public virtual void LayoutNature(DaggerfallTerrain dfTerrain, DaggerfallBillboar float maxTerrainHeight = DaggerfallUnity.Instance.TerrainSampler.MaxTerrainHeight; float beachLine = DaggerfallUnity.Instance.TerrainSampler.BeachElevation; + List basicItems = new List(); for (int y = 0; y < tDim; y++) { for (int x = 0; x < tDim; x++) @@ -162,12 +164,22 @@ public virtual void LayoutNature(DaggerfallTerrain dfTerrain, DaggerfallBillboar // Add to batch unless a mesh replacement is found int record = Random.Range(1, 32); if (terrainDist > 1 || !MeshReplacement.ImportNatureGameObject(dfBillboardBatch.TextureArchive, record, terrain, x, y)) - dfBillboardBatch.AddItem(record, pos); + //dfBillboardBatch.AddItem(record, pos); + { + basicItems.Add(new DaggerfallBillboardBatch.BasicInfo + { + textureRecord = record, + localPosition = new Unity.Mathematics.float3(pos.x, pos.y, pos.z) + }); + } else if (!NatureMeshUsed) NatureMeshUsed = true; // Signal that nature mesh has been used to initiate extra terrain updates } } - + if (basicItems.Count > 0) + { + dfBillboardBatch.AddItemsAsync(basicItems.ToArray()).Complete(); + } // Apply new batch dfBillboardBatch.Apply(); } diff --git a/Assets/Scripts/Utility/RMBLayout.cs b/Assets/Scripts/Utility/RMBLayout.cs index d5a21913e7..0e45667333 100644 --- a/Assets/Scripts/Utility/RMBLayout.cs +++ b/Assets/Scripts/Utility/RMBLayout.cs @@ -231,6 +231,7 @@ public static void AddNatureFlats( if (!dfUnity.IsReady) return; + List basicItems = new List(); for (int y = 0; y < 16; y++) { for (int x = 0; x < 16; x++) @@ -256,7 +257,12 @@ public static void AddNatureFlats( // Add billboard to batch or standalone if (billboardBatch != null) { - billboardBatch.AddItem(scenery.TextureRecord, billboardPosition); + //billboardBatch.AddItem(scenery.TextureRecord, billboardPosition); + basicItems.Add(new DaggerfallBillboardBatch.BasicInfo + { + textureRecord = scenery.TextureRecord, + localPosition = new Unity.Mathematics.float3(billboardPosition.x, billboardPosition.y, billboardPosition.z) + }); } else { @@ -266,6 +272,10 @@ public static void AddNatureFlats( } } } + if (billboardBatch != null && basicItems.Count > 0) + { + billboardBatch.AddItemsAsync(basicItems.ToArray()).Complete(); + } } /// @@ -285,6 +295,7 @@ public static void AddLights( if (!dfUnity.Option_ImportLightPrefabs || dfUnity.Option_CityLightPrefab == null) return; + List basicItems = new List(); // Iterate block flats for lights foreach (DFBlock.RmbBlockFlatObjectRecord obj in blockData.RmbBlock.MiscFlatObjectRecords) { @@ -304,7 +315,12 @@ public static void AddLights( // Add billboard to batch or standalone if (billboardBatch != null) { - billboardBatch.AddItem(obj.TextureRecord, billboardPosition); + //billboardBatch.AddItem(obj.TextureRecord, billboardPosition); + basicItems.Add(new DaggerfallBillboardBatch.BasicInfo + { + textureRecord = obj.TextureRecord, + localPosition = new Unity.Mathematics.float3(billboardPosition.x, billboardPosition.y, billboardPosition.z) + }); } else { @@ -317,6 +333,10 @@ public static void AddLights( AddLight(dfUnity, obj, lightsParent); } } + if (billboardBatch != null && basicItems.Count > 0) + { + billboardBatch.AddItemsAsync(basicItems.ToArray()).Complete(); + } } /// From 9d836e09b2130f825d23f9e56e0a5984adeed35c Mon Sep 17 00:00:00 2001 From: Daneel53 Date: Mon, 15 Jun 2026 10:31:20 +0200 Subject: [PATCH 2/4] Update Assets/Scripts/Terrain/TerrainNature.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added (tDim * tDim) Co-authored-by: Pierre Etchemaïté --- Assets/Scripts/Terrain/TerrainNature.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Scripts/Terrain/TerrainNature.cs b/Assets/Scripts/Terrain/TerrainNature.cs index 3bb8683a31..207c7f79cf 100644 --- a/Assets/Scripts/Terrain/TerrainNature.cs +++ b/Assets/Scripts/Terrain/TerrainNature.cs @@ -110,7 +110,7 @@ public virtual void LayoutNature(DaggerfallTerrain dfTerrain, DaggerfallBillboar float maxTerrainHeight = DaggerfallUnity.Instance.TerrainSampler.MaxTerrainHeight; float beachLine = DaggerfallUnity.Instance.TerrainSampler.BeachElevation; - List basicItems = new List(); + List basicItems = new List(tDim * tDim); for (int y = 0; y < tDim; y++) { for (int x = 0; x < tDim; x++) From b8c44d4a9146e62ed1bd44a3a53fa07333edd2a7 Mon Sep 17 00:00:00 2001 From: Daneel53 Date: Mon, 15 Jun 2026 10:48:44 +0200 Subject: [PATCH 3/4] Suppress old code in comments Comment out the line that adds an item to the billboard batch. --- Assets/Scripts/Terrain/TerrainNature.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Assets/Scripts/Terrain/TerrainNature.cs b/Assets/Scripts/Terrain/TerrainNature.cs index 207c7f79cf..b08d9aeab2 100644 --- a/Assets/Scripts/Terrain/TerrainNature.cs +++ b/Assets/Scripts/Terrain/TerrainNature.cs @@ -164,7 +164,6 @@ public virtual void LayoutNature(DaggerfallTerrain dfTerrain, DaggerfallBillboar // Add to batch unless a mesh replacement is found int record = Random.Range(1, 32); if (terrainDist > 1 || !MeshReplacement.ImportNatureGameObject(dfBillboardBatch.TextureArchive, record, terrain, x, y)) - //dfBillboardBatch.AddItem(record, pos); { basicItems.Add(new DaggerfallBillboardBatch.BasicInfo { @@ -185,4 +184,4 @@ public virtual void LayoutNature(DaggerfallTerrain dfTerrain, DaggerfallBillboar } } -} \ No newline at end of file +} From 74e2b672aefb9729eddcedf10ae6fa29e7d3b757 Mon Sep 17 00:00:00 2001 From: Daneel53 Date: Mon, 15 Jun 2026 10:54:05 +0200 Subject: [PATCH 4/4] Remove old code in comments --- Assets/Scripts/Utility/RMBLayout.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Assets/Scripts/Utility/RMBLayout.cs b/Assets/Scripts/Utility/RMBLayout.cs index 0e45667333..3a47ca82e5 100644 --- a/Assets/Scripts/Utility/RMBLayout.cs +++ b/Assets/Scripts/Utility/RMBLayout.cs @@ -257,7 +257,6 @@ public static void AddNatureFlats( // Add billboard to batch or standalone if (billboardBatch != null) { - //billboardBatch.AddItem(scenery.TextureRecord, billboardPosition); basicItems.Add(new DaggerfallBillboardBatch.BasicInfo { textureRecord = scenery.TextureRecord, @@ -315,7 +314,6 @@ public static void AddLights( // Add billboard to batch or standalone if (billboardBatch != null) { - //billboardBatch.AddItem(obj.TextureRecord, billboardPosition); basicItems.Add(new DaggerfallBillboardBatch.BasicInfo { textureRecord = obj.TextureRecord,