dkalaxdk icon

Unloading script

dkalaxdk | PRO | 02/27/21 04:12:45 PM UTC | 0 ⭐ | 1109 👁️ | Never ⏰ | []
C# |

2.48 KB

|

None

|

0 👍

/

0 👎

public Program()
{
   Runtime.UpdateFrequency = UpdateFrequency.Update10;
}
 
List<IMyTerminalBlock> containers = new List<IMyTerminalBlock>();
List<IMyTerminalBlock> Rovercontainers = new List<IMyTerminalBlock>();
IMyCargoContainer shipContainerBlock;
 
public void Main(string args) {
    var connector = GridTerminalSystem.GetBlockWithName("Connector Miner") as IMyShipConnector;
    var connectorRover = GridTerminalSystem.GetBlockWithName("Connector Rover") as IMyShipConnector;
    GridTerminalSystem.SearchBlocksOfName("[RoverContainer]", Rovercontainers, Rovercontainer => Rovercontainer is IMyCargoContainer);
 
 
 
    Echo("Rovercontainers count " + Rovercontainers.Count);
    if(connector.Status == MyShipConnectorStatus.Connected) {
      try {
        shipContainerBlock = GridTerminalSystem.GetBlockWithName("MinerContainer") as IMyCargoContainer;
        IMyInventory shipContainer = shipContainerBlock.GetInventory(0);
        TransferToContainers(shipContainer,Rovercontainers);
        } catch (Exception e)
        {
            // Dump the exception content to the
            Echo("Elements disconnected mid check");
        }
 
    }
    if(connectorRover.Status == MyShipConnectorStatus.Connected) {
      try
        {
          GridTerminalSystem.SearchBlocksOfName("[Base]", containers, container => container is IMyCargoContainer);
          Echo("Test");
          TransferToContainers(Rovercontainers,containers);
        }
        catch (Exception e)
        {
            // Dump the exception content to the
            Echo("Elements disconnected mid check");
        }
    }
}
 
void TransferToContainers(IMyInventory from, List<IMyTerminalBlock> ToContainers) {
    foreach (var container in ToContainers)
    {
        IMyInventory containerInv = container.GetInventory(0);
        for (int i = 0; i < from.ItemCount; i++)
        {
            from.TransferItemTo(containerInv,i);
        }
    }
}
 
void TransferToContainers(List<IMyTerminalBlock> fromContainers, List<IMyTerminalBlock> ToContainers) {
    foreach (var fromContainer in fromContainers){
        IMyInventory fromContainerInventory = fromContainer.GetInventory(0);
        foreach (var container in ToContainers){
            IMyInventory containerInv = container.GetInventory(0);
            for (int i = 0; i < fromContainerInventory.ItemCount; i++)
            {
                fromContainerInventory.TransferItemTo(containerInv,i);
            }
        }
    }
 
}
 

Comments