Exemplo n.º 1
0
        //
        public void setMode(AppState mode, bool forceMode = false)
        {
            if (mode == AppController.Instance.appState && !forceMode)
            {
                return;
            }

            AppController.Instance.setAppState(mode);
            MainMenu.Instance.setModeButtons(mode);
            MainMenu.Instance.setMenuPanels(mode);

            if (_curEditorTool != null)
            {
                _curEditorTool.setSingleMaterial(laserAim, laserAimMaterial, false);
                _curEditorTool.resetMaterial();
                _curEditorTool.resetAim();
                _curEditorTool.resetProp();
                _curEditorTool.deactivate();
            }
            _curEditorTool = null;

            MainMenu.Instance.showTransformBox(false);
            MainMenu.Instance.showDigButtons(false);
            MainMenu.Instance.showMaterialBox(false);
            MainMenu.Instance.showItemsBox(false);

            laserAim.SetActive(false);
            propAim.SetActive(false);

            editCam.enabled = true;
            itemCam.enabled = false;
            _activeCam      = editCam;

            EditorObjectSelection.Instance.ClearSelection(false);

            setSelectedObjects();

            SceneGizmo.Instance.editorCameraTransform = EditorCamera.Instance.transform;

            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;

            if (goPlayer != null && goPlayerEdit != null)
            {
                goPlayer.SetActive((mode == AppState.Play));
                goPlayerCameraRig.SetActive((mode == AppState.Play));
                goPlayerEdit.SetActive(!goPlayer.activeSelf);
                _activeCam = playRigCam;
            }

            if (mode == AppState.Play)
            {
                resetCamToStartPos(false);                  // don't go back to starting pos
            }
            else if (mode == AppState.Select)
            {
                MainMenu.Instance.showTransformBox(true);
                _curEditorTool             = _aEditorTools [Globals.EDITOR_TOOL_LOOK];
                itemCam.enabled            = true;
                itemCam.transform.position = editCam.transform.position;
                _activeCam      = itemCam;
                editCam.enabled = false;
            }
            else if (mode == AppState.Dig)
            {
                MainMenu.Instance.showDigButtons(true);
                laserAim.SetActive(true);
                _curEditorTool = _aEditorTools [Globals.EDITOR_TOOL_DIG];
            }
            else if (mode == AppState.Paint)
            {
                MainMenu.Instance.showMaterialBox(true);
                MainMenu.Instance.showDigButtons(true);
                laserAim.SetActive(true);
                _curEditorTool = _aEditorTools [Globals.EDITOR_TOOL_PAINT];
                _curEditorTool.setCurAimMaterial();
            }
            else if (mode == AppState.Build)
            {
                MainMenu.Instance.showMaterialBox(true);
                MainMenu.Instance.showDigButtons(true);
                laserAim.SetActive(true);
                _curEditorTool = _aEditorTools [Globals.EDITOR_TOOL_BUILD];
                //_curEditorTool.setSingleMaterial (laserAim, _aMaterials[MainMenu.Instance.iSelectedMaterial], false);
                _curEditorTool.setCurAimMaterial();
            }
            else if (mode == AppState.Props)
            {
                //MainMenu.Instance.showItemsBox (true);
                _curEditorTool = _aEditorTools [Globals.EDITOR_TOOL_ITEMS];
                laserAim.SetActive(true);
                propAim.SetActive(true);
                if (_goCurProp == null)
                {
                    newPropSelected();
                }
            }

            SceneGizmo.Instance.editorCameraTransform = (itemCam.enabled ? EditorCamera.Instance.transform : FlyCam.Instance.player);

            RuntimeEditorApplication.Instance.gameObject.SetActive(mode == AppState.Select);

            MainMenu.Instance.setDigSliders(mode);
            //MainMenu.Instance.resetDigSettings (new Vector3 (1, 1, 1));
            updateDigSettings(MainMenu.Instance.v3DigSettings);

            if (_curEditorTool != null)
            {
                _curEditorTool.activate();
            }
        }