mirror of
https://github.com/soarqin/DSP_Mods.git
synced 2025-12-08 21:33:28 +08:00
UXAssist 1.2.13
This commit is contained in:
@@ -849,21 +849,33 @@ public class FactoryPatch: PatchImpl<FactoryPatch>
|
||||
public static void ProcessBeltSignals()
|
||||
{
|
||||
if (!_initialized) return;
|
||||
var factories = GameMain.data?.factories;
|
||||
var data = GameMain.data;
|
||||
var factories = data?.factories;
|
||||
if (factories == null) return;
|
||||
PerformanceMonitor.BeginSample(ECpuWorkEntry.Belt);
|
||||
foreach (var factory in factories)
|
||||
for (var index = data.factoryCount - 1; index >= 0; index--)
|
||||
{
|
||||
var factory = factories[index];
|
||||
if (factory == null) continue;
|
||||
var belts = GetSignalBelts(factory.index);
|
||||
var belts = GetSignalBelts(index);
|
||||
if (belts == null || belts.Count == 0) continue;
|
||||
var factoryProductionStat = GameMain.statistics.production.factoryStatPool[factory.index];
|
||||
var factoryProductionStat = GameMain.statistics.production.factoryStatPool[index];
|
||||
var productRegister = factoryProductionStat.productRegister;
|
||||
var consumeRegister = factoryProductionStat.consumeRegister;
|
||||
var countRecipe = BeltSignalCountRecipeEnabled.Value;
|
||||
var cargoTraffic = factory.cargoTraffic;
|
||||
var beltCount = cargoTraffic.beltCursor;
|
||||
List<int> beltsToRemove = null;
|
||||
foreach (var pair in belts)
|
||||
{
|
||||
if (pair.Key >= beltCount)
|
||||
{
|
||||
if (beltsToRemove == null)
|
||||
beltsToRemove = [pair.Key];
|
||||
else
|
||||
beltsToRemove.Add(pair.Key);
|
||||
continue;
|
||||
}
|
||||
var beltSignal = pair.Value;
|
||||
var signalId = beltSignal.SignalId;
|
||||
switch (signalId)
|
||||
@@ -961,6 +973,11 @@ public class FactoryPatch: PatchImpl<FactoryPatch>
|
||||
}
|
||||
}
|
||||
}
|
||||
if (beltsToRemove == null) continue;
|
||||
foreach (var beltId in beltsToRemove)
|
||||
{
|
||||
belts.Remove(beltId);
|
||||
}
|
||||
}
|
||||
|
||||
PerformanceMonitor.EndSample(ECpuWorkEntry.Belt);
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
## Changlog
|
||||
|
||||
* 1.2.13
|
||||
+ `Belt signals for buy out dark fog items automatically`: Fix possible crashes.
|
||||
+ `Logistics Control Panel Improvement`: Auto apply filter with in-hand item now.
|
||||
+ Fix an alignment issue on UI panel.
|
||||
* 1.2.12
|
||||
+ `Construct only structure points but frames`: Fix a bug that frames are still not constructed when this function is disabled.
|
||||
+ `Drag building power poles in maximum connection range`: Fix a bug that single power pole cannot be placed at some positions.
|
||||
@@ -229,6 +233,10 @@
|
||||
|
||||
## 更新日志
|
||||
|
||||
* 1.2.13
|
||||
+ `用于自动购买黑雾物品的传送带信号`:修复了可能导致崩溃的问题
|
||||
+ `物流控制面板改进`:现在也自动将拿着的物品设为筛选条件
|
||||
+ 修复了UI面板上的对齐问题
|
||||
* 1.2.12
|
||||
+ `只建造节点不建造框架`:修复了关闭此功能时框架不进行建造的问题
|
||||
+ `拖动建造电线杆时自动使用最大连接距离间隔`:修复了某些位置无法放置单个电线杆的问题
|
||||
|
||||
@@ -1750,17 +1750,36 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
||||
{
|
||||
var factories = GameMain.data?.factories;
|
||||
if (factories == null) return;
|
||||
var factoriesCount = factories.Length;
|
||||
var propertySystem = DSPGame.propertySystem;
|
||||
List<int> factoriesToRemove = null;
|
||||
foreach (var factoryIndex in SignalBeltFactoryIndices)
|
||||
{
|
||||
if (factoryIndex >= factories.Length) continue;
|
||||
if (factoryIndex >= factoriesCount)
|
||||
{
|
||||
if (factoriesToRemove == null)
|
||||
factoriesToRemove = [factoryIndex];
|
||||
else
|
||||
factoriesToRemove.Add(factoryIndex);
|
||||
continue;
|
||||
}
|
||||
var signalBelts = GetSignalBelts(factoryIndex);
|
||||
if (signalBelts == null) continue;
|
||||
var factory = factories[factoryIndex];
|
||||
if (factory == null) continue;
|
||||
var cargoTraffic = factory.cargoTraffic;
|
||||
var beltCount = cargoTraffic.beltCursor;
|
||||
List<int> beltsToRemove = null;
|
||||
foreach (var kvp in signalBelts)
|
||||
{
|
||||
if (kvp.Key >= beltCount)
|
||||
{
|
||||
if (beltsToRemove == null)
|
||||
beltsToRemove = [kvp.Key];
|
||||
else
|
||||
beltsToRemove.Add(kvp.Key);
|
||||
continue;
|
||||
}
|
||||
ref var belt = ref cargoTraffic.beltPool[kvp.Key];
|
||||
var cargoPath = cargoTraffic.GetCargoPath(belt.segPathId);
|
||||
var itemIdx = kvp.Value;
|
||||
@@ -1787,6 +1806,19 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
|
||||
if (consume > 0 && cargoPath.TryInsertItem(belt.segIndex + belt.segPivotOffset, itemId, consume, 0))
|
||||
DarkFogItemsInVoid[itemIdx] -= consume;
|
||||
}
|
||||
if (beltsToRemove == null) continue;
|
||||
foreach (var beltId in beltsToRemove)
|
||||
signalBelts.Remove(beltId);
|
||||
if (signalBelts.Count > 0) continue;
|
||||
if (factoriesToRemove == null)
|
||||
factoriesToRemove = [factoryIndex];
|
||||
else
|
||||
factoriesToRemove.Add(factoryIndex);
|
||||
}
|
||||
if (factoriesToRemove == null) return;
|
||||
foreach (var factoryIndex in factoriesToRemove)
|
||||
{
|
||||
RemovePlanetSignalBelts(factoryIndex);
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<BepInExPluginGuid>org.soardev.uxassist</BepInExPluginGuid>
|
||||
<Description>DSP MOD - UXAssist</Description>
|
||||
<Version>1.2.12</Version>
|
||||
<Version>1.2.13</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<PackageId>UXAssist</PackageId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "UXAssist",
|
||||
"version_number": "1.2.12",
|
||||
"version_number": "1.2.13",
|
||||
"website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist",
|
||||
"description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁",
|
||||
"dependencies": [
|
||||
|
||||
Reference in New Issue
Block a user