public ShipValue(ShipDisplayValue displayValue, IMyGridTerminalSystem GridTerminalSystem, IMyProgrammableBlock Me, Action <string> Echo)
 {
     this.Me = Me;
     this.GridTerminalSystem = GridTerminalSystem;
     this.DisplayValue       = displayValue;
     this.Echo           = Echo;
     this.ShipController = BlockUtils.GetShipController(GridTerminalSystem, Me);
     GetRelevantBlocks();
 }
            public int GetValue(ShipDisplayValue value)
            {
                switch (value)
                {
                case ShipDisplayValue.BatteryPercentRemaining:
                    return(BlockUtils.GetBatteryPercentRemaining(this.blocks.Cast <IMyBatteryBlock>().ToList()));

                case ShipDisplayValue.StorageCapacityUsed:
                    return(BlockUtils.GetStorageCapacityRemaining(this.blocks.Cast <IMyCargoContainer>().ToList(), Echo));

                case ShipDisplayValue.ThrustCapacityUsed:
                    return(BlockUtils.GetThrustCapacityRemaining(this.blocks.Cast <IMyThrust>().ToList(), ShipController, Echo));

                default:
                    return(0);
                }
            }
Exemple #3
0
 public ConfigItem(IMyProgrammableBlock Me, IMyGridTerminalSystem gridTerminalSystem, string configTitle, Action <string> Echo) : base(Me, configTitle)
 {
     DisplayedProperty = (ShipDisplayValue)Enum.Parse(typeof(ShipDisplayValue), configTitle);
     ShipValue         = new ShipValue(DisplayedProperty, gridTerminalSystem, Me, Echo);
 }