// Deletes the current object, and set the state back to None private void unselect() { if (currentSelectedGO) { Destroy(currentSelectedGO); currentSelectedGO = null; } placingState = PlacingState.None; }
public void Reset() { buildingCell = null; state = PlacingState.SelectBuildingType; if (hexMenu != null) { hexMenu.Clear(); } }
// Actually places the object private void doPlaceObject() { if (currentSelectedGO && isValid()) { GameObject toSpawn = (GameObject)Instantiate(currentSelectedGO, currentSelectedGO.transform.position, currentSelectedGO.transform.rotation); Collider col = toSpawn.GetComponent <Collider>(); Renderer ren = toSpawn.GetComponent <Renderer>(); col.enabled = true; ren.material.shader = originalShader; objects.Add(toSpawn); boundaries.Add(col.bounds); } placingState = PlacingState.Selected; }
void Update() { switch (placingState) { case PlacingState.None: break; case PlacingState.Single: ((GameObject)ghosts[0]).transform.position = GetPos(); if (Input.GetKeyDown(KeyCode.LeftShift)) { Debug.Log("ringing..."); placingState = PlacingState.Ring; } break; case PlacingState.Ark: break; case PlacingState.Wall: break; case PlacingState.Ring: ((GameObject)ghosts[0]).transform.position = GetPos(); if (Input.GetKeyUp(KeyCode.LeftShift)) { placingState = PlacingState.Single; } break; default: break; } if (Input.GetKeyDown(KeyCode.P)) { Save(); } if (Input.GetKeyDown(KeyCode.O)) { Load(); } }
/// <summary> /// Sets the object toPlace as the object inputted to this function /// </summary> /// <returns>The selected object type.</returns> /// <param name="type">the formatted name of the object</param> public void SetSelectedObjectType(string type) { // If there's currently a selected object, destroy it and set the state if (currentSelectedGO) { unselect(); } // Get a new object currentSelectedType = type; currentSelectedGO = Instantiate(SpawnNewObject()); currentSelectedGO.GetComponent <Collider>().enabled = false; // Update state placingState = PlacingState.Selected; // Update shader currentSelectedGO.GetComponent <Renderer>().material.shader = outlinedShader; }
public void Initialize(InputSystem input, Board board, Worker.Colour colour) { _input = input; _board = board; _workers = new List <Worker>(); _colour = colour; _god = new BaseGod(); _stateMachine = new StateMachine(); _stateMachine.Initialize(input, board); WaitingState waitingState = new WaitingState(); _stateMachine.RegisterState(waitingState); PlacingState placingState = new PlacingState(); _stateMachine.RegisterState(placingState); SelectingState selectingState = new SelectingState(); _stateMachine.RegisterState(selectingState); MovingState movingState = new MovingState(); _stateMachine.RegisterState(movingState); BuildingState buildingState = new BuildingState(); _stateMachine.RegisterState(buildingState); WaitingOnConfirmationState waitingOnConfirmationState = new WaitingOnConfirmationState(); _stateMachine.RegisterState(waitingOnConfirmationState); DoneTurnState doneTurnState = new DoneTurnState(); _stateMachine.RegisterState(doneTurnState); _stateMachine.SetState((int)StateId.Waiting); }
public void OnPointerClick(PointerEventData eventData) { Debug.LogWarning("Del" + Time.frameCount); //Debug.Log("OnPointerClick"); switch (placingState) { case PlacingState.None: switch (eventData.button) { case PointerEventData.InputButton.Left: SpawnGhost(); placingState = PlacingState.Single; break; case PointerEventData.InputButton.Right: break; case PointerEventData.InputButton.Middle: break; default: break; } break; case PlacingState.Single: switch (eventData.button) { case PointerEventData.InputButton.Left: PlaceBlocks(); SpawnGhost(); break; case PointerEventData.InputButton.Right: Destroy((GameObject)ghosts[0]); ghosts.RemoveAt(0); placingState = PlacingState.None; break; case PointerEventData.InputButton.Middle: break; default: break; } break; case PlacingState.Ark: break; case PlacingState.Wall: break; case PlacingState.Ring: switch (eventData.button) { case PointerEventData.InputButton.Left: PlaceRing(); break; case PointerEventData.InputButton.Right: Destroy((GameObject)ghosts[0]); ghosts.RemoveAt(0); placingState = PlacingState.None; break; case PointerEventData.InputButton.Middle: break; default: break; } break; default: break; } }
/// <summary> /// Places the current object the user is interacting with. /// </summary> /// <returns>The current object.</returns> public void PlaceCurrentObject() { placingState = PlacingState.Placing; }