52 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|