public override void SetProperty(StringBuilder name, ITerminalProperty <bool> property, PropertyBlock block) { base.SetProperty(name, property, block); if (poolParent == null) { poolParent = block.boolPropPool; } if (property.Id == "OnOff" && block.SubtypeId.UsesSubtype(TBlockSubtypes.Powered)) // Insert power draw / output info { GetPostfixFunc = GetPowerDisplayFunc; } else if (property.Id == "Stockpile" && block.SubtypeId.UsesSubtype(TBlockSubtypes.GasTank)) // Insert gas tank info { GetPostfixFunc = GetTankFillFunc; } if (property is IMyTerminalControlOnOffSwitch) { var onOffSwitch = property as IMyTerminalControlOnOffSwitch; OnText = onOffSwitch.OnText; OffText = onOffSwitch.OffText; } else { OnText = MySpaceTexts.SwitchText_On; OffText = MySpaceTexts.SwitchText_Off; } }
public override void SetProperty(StringBuilder name, ITerminalProperty <StringBuilder> property, PropertyBlock block) { base.SetProperty(name, property, block); if (poolParent == null) { poolParent = block.textPropPool; } }
public override void SetProperty(StringBuilder name, ITerminalProperty <float> property, PropertyBlock block) { base.SetProperty(name, property, block); if (poolParent == null) { poolParent = block.floatPropPool; } var slider = control as IMyTerminalControlSlider; SliderWriter = slider?.Writer; Flags = BlockPropertyFlags.None; if (isBuildAndRepair) { MinValue = -1000f; MaxValue = 1000f; Increment = 1f; Flags |= BlockPropertyFlags.CanUseMultipliers; } else { MinValue = property.GetMinimum(block.TBlock); MaxValue = property.GetMaximum(block.TBlock); Increment = GetIncrement(); } if (block.SubtypeId.UsesSubtype(TBlockSubtypes.Thruster) && PropName == "Override") { GetScaleFunc = GetThrustEffectFunc; } else { GetScaleFunc = GetDefaultScaleFunc; } if (property.Id == "Velocity") { if (block.SubtypeId.UsesSubtype(TBlockSubtypes.Rotor)) { GetStatusFunc = GetRotorAngleFunc; } else if (block.SubtypeId.UsesSubtype(TBlockSubtypes.Piston)) { GetStatusFunc = GetPistonExtensionFunc; } } if (property.Id == "X" || property.Id == "Y" || property.Id == "Z" || property.Id.StartsWith("Rot")) { Flags |= BlockPropertyFlags.IsIntegral; } }
public void SetAction(Action <StringBuilder> GetValueFunc, Action <StringBuilder> GetPostfixFunc, Action Action, PropertyBlock block) { if (poolParent == null) { poolParent = block.blockActionPool; } Name = null; Enabled = true; this.GetValueFunc = GetValueFunc; this.GetPostfixFunc = GetPostfixFunc; action = Action; }
public override void SetProperty(StringBuilder name, IMyTerminalControlCombobox comboBox, PropertyBlock block) { base.SetProperty(name, comboBox, block); if (poolParent == null) { poolParent = block.comboPropPool; } if (control.Id == "ChargeMode" && block.SubtypeId.UsesSubtype(TBlockSubtypes.Battery)) // Insert bat charge info { GetPostfixFunc = GetChargePostfixFunc; } }
public PropertyBlock() { blockActionPool = new BvPropPool <BlockAction>(); boolPropPool = new BvPropPool <BoolProperty>(); colorPropPool = new BvPropPool <ColorProperty>(); comboPropPool = new BvPropPool <ComboBoxProperty>(); floatPropPool = new BvPropPool <FloatProperty>(); textPropPool = new BvPropPool <TextProperty>(); hsvPropPool = new BvPropPool <HsvColorProperty>(); nameBuilder = new StringBuilder(); blockMembers = new List <BlockMemberBase>(); blockProperties = new List <BlockPropertyBase>(); comboItemBuffer = new List <MyTerminalControlComboBoxItem>(); propBuf = new List <ITerminalProperty>(); duplicator = new BlockPropertyDuplicator(this); prioritizer = new BlockPropertyPrioritizer(); Duplicator = duplicator; Prioritizer = prioritizer; }