Exemple #1
0
        public static IMyTextPanel searchLcdWithName(Sandbox.ModAPI.Ingame.IMyGridTerminalSystem gridTerminal, String name)
        {
            IMyTextPanel     lcd = null;
            IMyTerminalBlock lcdTerminalBlock = gridTerminal.GetBlockWithName(name);

            if (lcdTerminalBlock as IMyTextPanel != null)
            {
                lcd = lcdTerminalBlock as IMyTextPanel;
            }
            return(lcd);
        }
Exemple #2
0
        public static float getCurrentOxygenFill(Sandbox.ModAPI.Ingame.IMyGridTerminalSystem gridTerminalSystem)
        {
            List <IMyOxygenTank>    oxygenTanks = new List <IMyOxygenTank>();
            List <IMyTerminalBlock> gridBlocks  = new List <IMyTerminalBlock>();

            gridTerminalSystem.GetBlocksOfType <IMyOxygenTank>(gridBlocks);
            foreach (IMyTerminalBlock gridBlock in gridBlocks)
            {
                if (gridBlock as IMyOxygenTank != null)
                {
                    oxygenTanks.Add(gridBlock as IMyOxygenTank);
                }
            }
            return(getCurrentOxygenFill(oxygenTanks[0]));
        }
        public override void Init(MyObjectBuilder_EntityBase objectBuilder)
        {
            this.objectBuilder = objectBuilder;
            regulator          = Entity as Sandbox.ModAPI.Ingame.IMyCubeBlock;

            Sandbox.ModAPI.Ingame.IMyGridTerminalSystem gts = Sandbox.ModAPI.MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid((Sandbox.ModAPI.IMyCubeGrid)regulator.CubeGrid);
            gts.GetBlocksOfType <Sandbox.ModAPI.Ingame.IMyThrust>(reactors);


            if (regulator != null && regulator.BlockDefinition.SubtypeId == "Regulator") // check the subtypeId
            {
                Entity.NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME;               // to enable UpdateBeforeSimulation100()
            }
            else
            {
            }
        }
        private long GetGridGroupOwner(IMyCubeGrid grid)
        {
            Ingame.IMyGridTerminalSystem   system         = MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid(grid);
            List <Ingame.IMyTerminalBlock> terminalBlocks = new List <Ingame.IMyTerminalBlock>();

            system.GetBlocks(terminalBlocks);
            foreach (var item in terminalBlocks)
            {
                if (((IMyCubeGrid)item.CubeGrid).BigOwners.Count > 0)
                {
                    return(((IMyCubeGrid)item.CubeGrid).BigOwners.First());
                }

                if (item is IMyPistonBase)
                {
                    IMyPistonBase pistonBase = (IMyPistonBase)item;
                    if (pistonBase.TopGrid != null)
                    {
                        if (pistonBase.TopGrid.BigOwners.Count > 0)
                        {
                            return(pistonBase.TopGrid.BigOwners.First());
                        }
                    }
                }

                if (item is IMyMechanicalConnectionBlock)
                {
                    var motorBase = item as IMyMechanicalConnectionBlock;
                    if (motorBase.TopGrid != null)
                    {
                        if (motorBase.TopGrid.BigOwners.Count > 0)
                        {
                            return(motorBase.TopGrid.BigOwners.First());
                        }
                    }
                }

                if (item is Ingame.IMyShipConnector)
                {
                    Ingame.IMyShipConnector connector = (Ingame.IMyShipConnector)item;
                    if (connector.Status == Sandbox.ModAPI.Ingame.MyShipConnectorStatus.Connected && connector.OtherConnector != null)
                    {
                        if (((IMyCubeGrid)connector.OtherConnector.CubeGrid).BigOwners.Count > 0)
                        {
                            return(((IMyCubeGrid)connector.OtherConnector.CubeGrid).BigOwners.First());
                        }
                    }
                }

                if (item is IMyAttachableTopBlock)
                {
                    var motorRotor = item as IMyAttachableTopBlock;
                    if (motorRotor.IsAttached && motorRotor.Base != null)
                    {
                        if (motorRotor.Base.CubeGrid.BigOwners.Count > 0)
                        {
                            return(motorRotor.Base.CubeGrid.BigOwners.First());
                        }
                    }
                }
            }

            return(0);
        }
Exemple #5
0
        public static List <IMyCubeGrid> GetGridGroup(IMyCubeGrid grid)
        {
            List <IMyCubeGrid> gridList = new List <IMyCubeGrid>();

            gridList.Add(grid);

            //int pos = 0;
            try
            {
                List <Ingame.IMyTerminalBlock> terminalBlocks = new List <Ingame.IMyTerminalBlock>();
                Ingame.IMyGridTerminalSystem   system         = MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid(grid);
                if (system != null)
                {
                    system.GetBlocks(terminalBlocks);
                    foreach (var item in terminalBlocks)
                    {
                        if (!gridList.Contains((IMyCubeGrid)item.CubeGrid))
                        {
                            gridList.Add((IMyCubeGrid)item.CubeGrid);
                        }

                        if (item is IMyPistonBase)
                        {
                            IMyPistonBase pistonBase = (IMyPistonBase)item;
                            if (pistonBase.TopGrid != null && !gridList.Contains(pistonBase.TopGrid))
                            {
                                gridList.Add(pistonBase.TopGrid);
                            }
                        }

                        if (item is IMyMechanicalConnectionBlock)
                        {
                            var motorBase = item as IMyMechanicalConnectionBlock;
                            if (motorBase.TopGrid != null && !gridList.Contains(motorBase.TopGrid))
                            {
                                gridList.Add(motorBase.TopGrid);
                            }
                        }

                        if (item is Ingame.IMyShipConnector)
                        {
                            Ingame.IMyShipConnector connector = (Ingame.IMyShipConnector)item;
                            if (connector.Status == Sandbox.ModAPI.Ingame.MyShipConnectorStatus.Connected && connector.OtherConnector != null)
                            {
                                if (!gridList.Contains((IMyCubeGrid)connector.OtherConnector.CubeGrid))
                                {
                                    gridList.Add((IMyCubeGrid)connector.OtherConnector.CubeGrid);
                                }
                            }
                        }

                        if (item is IMyAttachableTopBlock)
                        {
                            var motorRotor = item as IMyAttachableTopBlock;
                            if (motorRotor.IsAttached && motorRotor.Base != null)
                            {
                                if (!gridList.Contains((IMyCubeGrid)motorRotor.Base.CubeGrid))
                                {
                                    gridList.Add((IMyCubeGrid)motorRotor.Base.CubeGrid);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logging.Instance.WriteLine(string.Format("GetGridGroup Error: {0}", ex.ToString()));
            }

            return(gridList);
        }