1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-09 15:33:31 +08:00

minor changes

This commit is contained in:
2024-09-06 17:44:05 +08:00
parent 96b4d6cfc8
commit db0a9522da

View File

@@ -1330,6 +1330,8 @@ public static class FactoryPatch
private static PrefabDesc _prefabdesc; private static PrefabDesc _prefabdesc;
private static float _oldCoverRadius; private static float _oldCoverRadius;
private static float _oldConnectDistance; private static float _oldConnectDistance;
private const int WindTurbineId = 2203;
private const float WindTurbineNewCoverageDistance = 500f;
public static void Enable(bool enable) public static void Enable(bool enable)
{ {
@@ -1337,11 +1339,11 @@ public static class FactoryPatch
{ {
if (_patched) return; if (_patched) return;
_patched = true; _patched = true;
var itemProto = LDB.items.Select(2203); var itemProto = LDB.items.Select(WindTurbineId);
_oldCoverRadius = itemProto.prefabDesc.powerCoverRadius; _oldCoverRadius = itemProto.prefabDesc.powerCoverRadius;
_oldConnectDistance = itemProto.prefabDesc.powerConnectDistance; _oldConnectDistance = itemProto.prefabDesc.powerConnectDistance;
itemProto.prefabDesc.powerCoverRadius = 500f; itemProto.prefabDesc.powerCoverRadius = WindTurbineNewCoverageDistance;
itemProto.prefabDesc.powerConnectDistance = 500f; itemProto.prefabDesc.powerConnectDistance = WindTurbineNewCoverageDistance;
_prefabdesc = itemProto.prefabDesc; _prefabdesc = itemProto.prefabDesc;
} }
else else
@@ -1352,6 +1354,7 @@ public static class FactoryPatch
_prefabdesc.powerConnectDistance = _oldConnectDistance; _prefabdesc.powerConnectDistance = _oldConnectDistance;
} }
// Iterate all factories and update wind turbines power nodes
foreach (var factory in GameMain.data.factories) foreach (var factory in GameMain.data.factories)
{ {
var powerSystem = factory?.powerSystem; var powerSystem = factory?.powerSystem;
@@ -1361,12 +1364,16 @@ public static class FactoryPatch
ref var node = ref powerSystem.nodePool[i]; ref var node = ref powerSystem.nodePool[i];
if (node.id != i) continue; if (node.id != i) continue;
ref var entity = ref factory.entityPool[node.entityId]; ref var entity = ref factory.entityPool[node.entityId];
if (entity.protoId != 2203) continue; if (entity.protoId != WindTurbineId) continue;
// Disconnect from power system
powerSystem.OnNodeRemoving(i); powerSystem.OnNodeRemoving(i);
// Set new properties
node.connectDistance = _prefabdesc.powerConnectDistance; node.connectDistance = _prefabdesc.powerConnectDistance;
node.coverRadius = _prefabdesc.powerCoverRadius; node.coverRadius = _prefabdesc.powerCoverRadius;
// Connect back to power system
powerSystem.OnNodeAdded(i); powerSystem.OnNodeAdded(i);
} }
// Refresh power nodes rendering if factory is loaded
if (factory.planet.factoryLoaded) if (factory.planet.factoryLoaded)
{ {
factory.planet.factoryModel.RefreshPowerNodes(); factory.planet.factoryModel.RefreshPowerNodes();