diff --git a/UXAssist/Functions/PlanetFunctions.cs b/UXAssist/Functions/PlanetFunctions.cs index 29d9d5d..09d9677 100644 --- a/UXAssist/Functions/PlanetFunctions.cs +++ b/UXAssist/Functions/PlanetFunctions.cs @@ -263,6 +263,19 @@ public static class PlanetFunctions factory.factoryStorage = new FactoryStorage(planet); factory.powerSystem = new PowerSystem(planet); factory.constructionSystem = new ConstructionSystem(planet); + if (factory.veinPool != null) + { + for (var i = 0; i < factory.veinPool.Length; i++) + { + ref var vein = ref factory.veinPool[i]; + if (vein.id != i) continue; + vein.minerCount = 0; + vein.minerId0 = 0; + vein.minerId1 = 0; + vein.minerId2 = 0; + vein.minerId3 = 0; + } + } factory.InitVeinHashAddress(); factory.RecalculateAllVeinGroups(); factory.InitVegeHashAddress(); diff --git a/UXAssist/Patches/UIPatch.cs b/UXAssist/Patches/UIPatch.cs index 814c892..0c9f077 100644 --- a/UXAssist/Patches/UIPatch.cs +++ b/UXAssist/Patches/UIPatch.cs @@ -122,6 +122,7 @@ public class UIPatch : PatchImpl #region Helper functions private static void ProcessVeinData(VeinTypeInfo[] veinCount, VeinData[] veinPool) { + if (veinPool == null) return; lock (veinPool) { foreach (VeinData veinData in veinPool) @@ -272,21 +273,19 @@ public class UIPatch : PatchImpl } foreach (PlanetData planet in __instance.star.planets) { - if (planet.runtimeVeinGroups == null) { continue; } PlanetFactory factory = planet.factory; if (factory != null) { ProcessVeinData(starVeinCount, factory.veinPool); + continue; } - else + VeinGroup[] veinGroups = planet.veinGroups; + if (veinGroups == null) continue; + lock (planet.veinGroupsLock) { - VeinGroup[] veinGroups = planet.runtimeVeinGroups; - lock (planet.veinGroupsLock) + for (int i = 1; i < veinGroups.Length; i++) { - for (int i = 1; i < veinGroups.Length; i++) - { - starVeinCount[(int)veinGroups[i].type].numVeinGroups++; - } + starVeinCount[(int)veinGroups[i].type].numVeinGroups++; } } }