public override void UpdateOnceBeforeFrame()
        {
            if (MyAPIGateway.TerminalControls == null)
            {
                Entity.NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                return;
            }

            if (!_init)
            {
                _init = true;

                //Actions.
                var sendAction = CustomControls.SendAction <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddAction <IMyLaserAntenna>(sendAction);

                var clearAction = CustomControls.ClearQueue <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddAction <IMyLaserAntenna>(clearAction);

                //Properties.
                var channelProp = CustomControls.ChannelProp <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(channelProp);

                var messageProp = CustomControls.MessageProp <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(messageProp);

                var incomingCountProp = CustomControls.IncomingCount <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(incomingCountProp);

                var readNextIncoming = CustomControls.ReadNextIncoming <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(readNextIncoming);

                var callback = CustomControls.Callback <IMyLaserAntenna>();
                MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(callback);

                //Controls.
                var separator = CustomControls.Separator <IMyLaserAntenna>();
                Controls.Add(separator);

                var messageTexbox = CustomControls.MessageTextbox <IMyLaserAntenna>();
                Controls.Add(messageTexbox);

                var sendBtn = CustomControls.SendBtn <IMyLaserAntenna>();
                Controls.Add(sendBtn);

                var callbackList = CustomControls.CallbackList <IMyLaserAntenna>();
                Controls.Add(callbackList);

                var clearCallbackBtn = CustomControls.ClearCallbackBtn <IMyLaserAntenna>();
                ((IMyTerminalControlButton)clearCallbackBtn).Action += b => Controls.ForEach(x => x.UpdateVisual());
                Controls.Add(clearCallbackBtn);

                foreach (var control in Controls)
                {
                    MyAPIGateway.TerminalControls.AddControl <IMyLaserAntenna>(control);
                }
            }
        }
示例#2
0
        public override void UpdateOnceBeforeFrame()
        {
            if (MyAPIGateway.TerminalControls == null)
            {
                Entity.NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                return;
            }

            if (!_init)
            {
                _init = true;

                //Actions.
                var sendAction = CustomControls.SendAction <IMyBeacon>();
                MyAPIGateway.TerminalControls.AddAction <IMyBeacon>(sendAction);

                //Properties.
                var channelProp = CustomControls.ChannelProp <IMyBeacon>();
                MyAPIGateway.TerminalControls.AddControl <IMyBeacon>(channelProp);

                var messageProp = CustomControls.MessageProp <IMyBeacon>();
                MyAPIGateway.TerminalControls.AddControl <IMyBeacon>(messageProp);

                //Controls.
                var separator = CustomControls.Separator <IMyBeacon>();
                Controls.Add(separator);

                var channelSlider = CustomControls.ChannelSlider <IMyBeacon>();
                Controls.Add(channelSlider);

                var messageTextbox = CustomControls.MessageTextbox <IMyBeacon>();
                Controls.Add(messageTextbox);

                var sendBtn = CustomControls.SendBtn <IMyBeacon>();
                Controls.Add(sendBtn);

                foreach (var control in Controls)
                {
                    MyAPIGateway.TerminalControls.AddControl <IMyBeacon>(control);
                }
            }
        }