Files
space-engineers/Connector.cs
2022-05-18 19:57:23 +03:00

52 lines
1.8 KiB
C#

namespace Sandbox.ModAPI.Ingame
{
public class Main
{
void Main()
{
IMyBlockGroup batteryGroup = GridTerminalSystem.GetBlockGroupWithName("Batteries");
List<IMyBatteryBlock> batteries = new List<IMyBatteryBlock>();
batteryGroup.GetBlocksOfType(batteries, block => block.IsSameConstructAs(Me));
List<IMyTerminalBlock> engines = new List<IMyTerminalBlock>();
GridTerminalSystem.GetBlockGroupWithName("Engines").GetBlocks(engines, block => block.IsSameConstructAs(Me));
IMyShipConnector connector = GridTerminalSystem.GetBlockWithName("Connector") as IMyShipConnector;
if (connector.Status == MyShipConnectorStatus.Connectable)
{
connector.GetActionWithName("SwitchLock").Apply(connector);
if (connector.Status != MyShipConnectorStatus.Connected)
{
return;
}
foreach (var engine in engines)
{
engine.GetActionWithName("OnOff_Off").Apply(engine);
}
foreach (var battery in batteries)
{
battery.GetActionWithName("Recharge").Apply(battery);
}
}
else if (connector.Status == MyShipConnectorStatus.Connected)
{
foreach (var battery in batteries)
{
battery.GetActionWithName("Auto").Apply(battery);
}
foreach (var engine in engines)
{
engine.GetActionWithName("OnOff_On").Apply(engine);
}
connector.GetActionWithName("SwitchLock").Apply(connector);
}
}
}
}