Пример #1
0
        public Program()
        {
            _PanelTextSurface             = Me.GetSurface(0);
            _PanelTextSurface.ContentType = VRage.Game.GUI.TextPanel.ContentType.TEXT_AND_IMAGE;
            _PanelTextSurface.FontSize    = 2;
            _PanelTextSurface.Alignment   = VRage.Game.GUI.TextPanel.TextAlignment.CENTER;
            Runtime.UpdateFrequency       = UpdateFrequency.Update100;

            _CargoInterface = GridTerminalSystem.GetBlockWithName("Cargo Interface") as IMyCargoContainer;
            _SorterOut      = GridTerminalSystem.GetBlockWithName("Sorter Interface Out") as IMyConveyorSorter;
            _SorterIn       = GridTerminalSystem.GetBlockWithName("Sorter Interface In") as IMyConveyorSorter;

            _SorterIn.Enabled  = true;
            _SorterOut.Enabled = false;
            _Flush             = false;
        }
        public Program()
        {
            Runtime.UpdateFrequency = UpdateFrequency.Update10;

            Sorter = GridTerminalSystem.GetBlockWithName("Sorter") as IMyConveyorSorter;

            SAContainer  = GridTerminalSystem.GetBlockWithName("Sorter A") as IMyCargoContainer;
            SBContainer  = GridTerminalSystem.GetBlockWithName("Sorter B") as IMyCargoContainer;
            PBAContainer = GridTerminalSystem.GetBlockWithName("PB A") as IMyCargoContainer;
            PBBContainer = GridTerminalSystem.GetBlockWithName("PB B") as IMyCargoContainer;

            SALCD  = GridTerminalSystem.GetBlockWithName("Sorter A LCD") as IMyTextPanel;
            SBLCD  = GridTerminalSystem.GetBlockWithName("Sorter B LCD") as IMyTextPanel;
            PBALCD = GridTerminalSystem.GetBlockWithName("PB A LCD") as IMyTextPanel;
            PBBLCD = GridTerminalSystem.GetBlockWithName("PB B LCD") as IMyTextPanel;
        }
Пример #3
0
        public Program()
        {
            // It's recommended to set RuntimeInfo.UpdateFrequency
            _logOutput = GridTerminalSystem.GetBlockWithName("Bay Debug LCD") as IMyTextPanel;
            Echo       = EchoToLCD;
            ClearEcho();

            Echo($"Booting up at {DateTime.Now}");
            _outSorters = new List <IMyTerminalBlock>();
            _inSorters  = new List <IMyTerminalBlock>();

            _bay1SorterIn = GridTerminalSystem.GetBlockWithName("Bay 1 Sorter In") as IMyConveyorSorter;
            _bay2SorterIn = GridTerminalSystem.GetBlockWithName("Bay 2 Sorter In") as IMyConveyorSorter;
            _bay3SorterIn = GridTerminalSystem.GetBlockWithName("Bay 3 Sorter In") as IMyConveyorSorter;
            _bay4SorterIn = GridTerminalSystem.GetBlockWithName("Bay 4 Sorter In") as IMyConveyorSorter;

            _bay1SorterOut = GridTerminalSystem.GetBlockWithName("Bay 1 Sorter Out") as IMyConveyorSorter;
            _bay2SorterOut = GridTerminalSystem.GetBlockWithName("Bay 2 Sorter Out") as IMyConveyorSorter;
            _bay3SorterOut = GridTerminalSystem.GetBlockWithName("Bay 3 Sorter Out") as IMyConveyorSorter;
            _bay4SorterOut = GridTerminalSystem.GetBlockWithName("Bay 4 Sorter Out") as IMyConveyorSorter;

            _bay1Sensor = GridTerminalSystem.GetBlockWithName("Bay 1 Sensor") as IMySensorBlock;
            _bay2Sensor = GridTerminalSystem.GetBlockWithName("Bay 2 Sensor") as IMySensorBlock;
            _bay3Sensor = GridTerminalSystem.GetBlockWithName("Bay 3 Sensor") as IMySensorBlock;
            _bay4Sensor = GridTerminalSystem.GetBlockWithName("Bay 4 Sensor") as IMySensorBlock;

            _bay1LCD = GridTerminalSystem.GetBlockWithName("Bay 1 LCD") as IMyTextPanel;
            _bay2LCD = GridTerminalSystem.GetBlockWithName("Bay 2 LCD") as IMyTextPanel;
            _bay3LCD = GridTerminalSystem.GetBlockWithName("Bay 3 LCD") as IMyTextPanel;
            _bay4LCD = GridTerminalSystem.GetBlockWithName("Bay 4 LCD") as IMyTextPanel;

            _bay1Connector = GridTerminalSystem.GetBlockWithName("Bay 1 Connector") as IMyShipConnector;
            _bay2Connector = GridTerminalSystem.GetBlockWithName("Bay 2 Connector") as IMyShipConnector;
            _bay3Connector = GridTerminalSystem.GetBlockWithName("Bay 3 Connector") as IMyShipConnector;
            _bay4Connector = GridTerminalSystem.GetBlockWithName("Bay 4 Connector") as IMyShipConnector;

            GridTerminalSystem.SearchBlocksOfName("Bay Out Sorter", _outSorters, door => door is IMyConveyorSorter);
            GridTerminalSystem.SearchBlocksOfName("Bay In Sorter", _inSorters, door => door is IMyConveyorSorter);

            _bay1HasShip = false;
            _bay2HasShip = false;
            _bay3HasShip = false;
            _bay4HasShip = false;
            Echo($"Found {_inSorters.Count} Inbound sorters and {_outSorters.Count} Outbound Sorters");
        }
Пример #4
0
        private void CheckGravelLevels(double gravelLevel)
        {
            IMyConveyorSorter       gravelSorter = (IMyConveyorSorter)GridTerminalSystem.GetBlockWithName(gravelSorterName);
            IMyGravityGeneratorBase gravelGun    = (IMyGravityGeneratorBase)GridTerminalSystem.GetBlockWithName(gravelSorterName + " Gun");

            if (gravelLevel > gravelMaximum)
            {
                gravelSorter.Enabled = true;
                gravelGun.Enabled    = true;
            }
            else
            {
                gravelSorter.Enabled = false;
                gravelGun.Enabled    = true;
            }

            //Echo($"Gravel Level = {gravelLevel}\nGravel Max = {gravelMaximum}\nGravel Sorter Enabled = {gravelSorter.Enabled}");
        }
Пример #5
0
        public void Main(string argument, UpdateType updateSource)
        {
            // Finding master ...
            List <IMyConveyorSorter> masters = new List <IMyConveyorSorter>();

            GridTerminalSystem.GetBlocksOfType(masters, b => b.CustomName.Contains(MASTER) && b.CubeGrid == Me.CubeGrid);

            if (masters.Count == 0)
            {
                Echo("Error: Cannot find master.");
                return;
            }

            if (masters.Count > 1)
            {
                Echo("Error: Found more than one master.");
                return;
            }

            // and slaves ...
            List <IMyConveyorSorter> slaves = new List <IMyConveyorSorter>();

            GridTerminalSystem.GetBlocksOfType(slaves, b => b.CustomName.Contains(SLAVE) && b.CubeGrid == Me.CubeGrid);

            if (slaves.Count == 0)
            {
                Echo("Error: Cannot find any slave.");
                return;
            }

            // Copy filter info from master to slaves
            IMyConveyorSorter master = masters[0];

            List <MyInventoryItemFilter> items = new List <MyInventoryItemFilter>();

            master.GetFilterList(items);

            foreach (IMyConveyorSorter slave in slaves)
            {
                slave.DrainAll = master.DrainAll;
                slave.SetFilter(master.Mode, items);
            }
        }
Пример #6
0
        public Program()
        {
            IMyCockpit cockpit = GridTerminalSystem.GetBlockWithName("Janne c**k") as IMyCockpit;

            _PanelTextSurface             = cockpit.GetSurface(0);
            _PanelTextSurface.ContentType = VRage.Game.GUI.TextPanel.ContentType.TEXT_AND_IMAGE;
            _PanelTextSurface.FontSize    = 2;
            _PanelTextSurface.Alignment   = VRage.Game.GUI.TextPanel.TextAlignment.CENTER;

            Runtime.UpdateFrequency = UpdateFrequency.None;

            _Sorter    = GridTerminalSystem.GetBlockWithName("Janne Sort") as IMyConveyorSorter;
            _Connector = GridTerminalSystem.GetBlockWithName("Janne Connector") as IMyShipConnector;

            _ItemList = new List <MyInventoryItemFilter>()
            {
                new MyInventoryItemFilter("MyObjectBuilder_Ore/Stone", false)
            };
            _ItemListNone = new List <MyInventoryItemFilter>();

            _Connector.ThrowOut = false;
            _Sorter.SetFilter(MyConveyorSorterMode.Blacklist, _ItemListNone);
            _PanelTextSurface.WriteText("Not throwing out\nAllow all");
        }