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); }
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); }
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); }