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:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user