Пример #1
0
            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;
                }
            }
Пример #2
0
            public override void SetProperty(StringBuilder name, ITerminalProperty <StringBuilder> property, PropertyBlock block)
            {
                base.SetProperty(name, property, block);

                if (poolParent == null)
                {
                    poolParent = block.textPropPool;
                }
            }
Пример #3
0
            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;
                }
            }
Пример #4
0
            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;
            }
Пример #5
0
            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;
                }
            }
Пример #6
0
        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;
        }