示例#1
0
        void Awake()
        {
            //Get Mode tracking object and register to update.
            var modeTrackingUpdate = GameObject
                .FindObjectOfType<ModeController>()
                .GetComponent<ModeTrackingController>();

            this.modeTrackingUpdate = modeTrackingUpdate as IModeTrackingUpdateMode;
            this.modeTrackingUpdateRegister = modeTrackingUpdate as IModeTrackingUpdateModeRegister;

            //Get ModeViewController and register
            this.modeViewController = GameObject
                .FindObjectOfType<ModeViewCtrl>()
                .GetComponent<ModeViewCtrl>() as IModeViewController;

            //Build the mode mappings
            this.NextMode = new Dictionary<Modes, ModeMapping>
            {
                {Modes.Initialise, new ModeMapping(Modes.Initialise, Modes.SelectQuad) },
                {Modes.SelectQuad, new ModeMapping(Modes.Initialise,Modes.ConfigureQuad) },
                {Modes.ConfigureQuad, new ModeMapping(Modes.SelectQuad, Modes.CalibrateTestQuad) },
                {Modes.MissionPlan, new ModeMapping(Modes.ConfigureQuad, Modes.Execute) },
                {Modes.Execute, new ModeMapping(Modes.MissionPlan, Modes.MissionPlan) }
            };

            //Register
            this.modeViewController.RegisterToControlDynamicViews(this);
            this.modeViewController.RegisterToControlFixedViews(this);
            this.modeTrackingUpdateRegister.RegisterToUpdate(this);
        }
        public void UpdateDisplayViewForMode(IModeTrackingUpdateMode modeTracker, IModeViewController modeViewController)
        {
            if (this.modeChangeRequest)
            {
                modeTracker.ChangeActiveMode(this.modeRequested, this);
                this.modeChangeRequest = false;
            }
            else
            {
                switch (modeTracker.Status)
                {
                case ExecutionStatus.Canceled:
                {
                    modeViewController.DisactiveDynamicView(modeTracker, this);
                    modeTracker.ChangeActiveMode(NextMode[modeTracker.ActiveMode].Canceled, this);

                    break;
                }

                case ExecutionStatus.Complete:
                {
                    modeViewController.DisactiveDynamicView(modeTracker, this);
                    modeTracker.ChangeActiveMode(NextMode[modeTracker.ActiveMode].Completed, this);

                    break;
                }

                case ExecutionStatus.Requested:
                {
                    modeViewController.ActivateDynamicView(modeTracker, this);
                    break;
                }
                }
            }
        }
        public void UpdateDisplayViewForMode(IModeTrackingUpdateMode modeTracker, IModeViewController modeViewController)
        {
            if (this.modeChangeRequest)
            {
                modeTracker.ChangeActiveMode(this.modeRequested, this);
                this.modeChangeRequest = false;
            }
            else
            {
                switch (modeTracker.Status)
                {
                    case ExecutionStatus.Canceled:
                        {
                            modeViewController.DisactiveDynamicView(modeTracker, this);
                            modeTracker.ChangeActiveMode(NextMode[modeTracker.ActiveMode].Canceled, this);

                            break;
                        }
                    case ExecutionStatus.Complete:
                        {
                            modeViewController.DisactiveDynamicView(modeTracker, this);
                            modeTracker.ChangeActiveMode(NextMode[modeTracker.ActiveMode].Completed, this);

                            break;
                        }
                    case ExecutionStatus.Requested:
                        {
                            modeViewController.ActivateDynamicView(modeTracker, this);
                            break;
                        }
                }
            }
        }
示例#4
0
        void Awake()
        {
            //Get Mode tracking object and register to update.
            var modeTrackingUpdate = GameObject
                                     .FindObjectOfType <ModeController>()
                                     .GetComponent <ModeTrackingController>();

            this.modeTrackingUpdate         = modeTrackingUpdate as IModeTrackingUpdateMode;
            this.modeTrackingUpdateRegister = modeTrackingUpdate as IModeTrackingUpdateModeRegister;

            //Get ModeViewController and register
            this.modeViewController = GameObject
                                      .FindObjectOfType <ModeViewCtrl>()
                                      .GetComponent <ModeViewCtrl>() as IModeViewController;

            //Build the mode mappings
            this.NextMode = new Dictionary <Modes, ModeMapping>
            {
                { Modes.Initialise, new ModeMapping(Modes.Initialise, Modes.SelectQuad) },
                { Modes.SelectQuad, new ModeMapping(Modes.Initialise, Modes.ConfigureQuad) },
                { Modes.ConfigureQuad, new ModeMapping(Modes.SelectQuad, Modes.CalibrateTestQuad) },
                { Modes.MissionPlan, new ModeMapping(Modes.ConfigureQuad, Modes.Execute) },
                { Modes.Execute, new ModeMapping(Modes.MissionPlan, Modes.MissionPlan) }
            };

            //Register
            this.modeViewController.RegisterToControlDynamicViews(this);
            this.modeViewController.RegisterToControlFixedViews(this);
            this.modeTrackingUpdateRegister.RegisterToUpdate(this);
        }