private void RefreshMode(bool forceChanged) { var editCtrl = GridEditController.instance; var ghost = editCtrl.ghostController; var prevEditMode = mCurEditMode; //change state based on edit mode if (forceChanged || editCtrl.editMode != mCurEditMode || mCurEntity != editCtrl.selected) { mCurEditMode = editCtrl.editMode; var ghostMode = GridGhostController.Mode.Hidden; var displayVisible = false; var moveActive = false; var expandActive = false; switch (mCurEditMode) { case GridEditController.EditMode.Select: displayVisible = editCtrl.selected != null; break; case GridEditController.EditMode.Move: moveActive = true; if (editCtrl.selected) { displayVisible = true; ghostMode = GridGhostController.Mode.Move; } break; case GridEditController.EditMode.Expand: expandActive = true; if (editCtrl.selected) { displayVisible = true; ghostMode = GridGhostController.Mode.Expand; } break; } if (displayVisible) { displayGO.SetActive(true); if (moveToggleGO) { moveToggleGO.SetActive(moveActive); } if (expandToggleGO) { expandToggleGO.SetActive(expandActive); } } else { displayGO.SetActive(false); } if (ghostMode != GridGhostController.Mode.Hidden && editCtrl.selected) { ghost.data = editCtrl.selected.data; } ghost.mode = ghostMode; } insufficientResourcesGO.SetActive(false); //change info based on selected entity if (forceChanged || mCurEntity != editCtrl.selected) { mCurEntity = editCtrl.selected; if (mCurEntity) { displayGO.SetActive(true); //setup info titleText.text = M8.Localize.Get(mCurEntity.data.nameTextRef); RefreshDimensionInfoDisplay(); if (!string.IsNullOrEmpty(sfxSelected)) { M8.SoundPlaylist.instance.Play(sfxSelected, false); } } } switch (prevEditMode) { case GridEditController.EditMode.Placement: case GridEditController.EditMode.Select: case GridEditController.EditMode.None: if (ghost.mode != GridGhostController.Mode.Hidden && mCurEntity) { ghost.cellIndex = mCurEntity.cellIndex; ghost.cellSize = mCurEntity.cellSize; } break; } if (mCurEntity && mCurEntity.signalInvokeEntitySizeChanged) //this will refresh display on cards { mCurEntity.signalInvokeEntitySizeChanged.Invoke(mCurEntity); } }
public override void Reset() { mode = GridEditController.EditMode.None; }