// Deletes the current object, and set the state back to None
 private void unselect()
 {
     if (currentSelectedGO)
     {
         Destroy(currentSelectedGO);
         currentSelectedGO = null;
     }
     placingState = PlacingState.None;
 }
Exemplo n.º 2
0
        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;
    }
Exemplo n.º 4
0
    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;
    }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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;
 }