Beispiel #1
0
    void Update()
    {
        if (!active)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            SetSelectedGroup(null);
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            if (selected_group != null)
            {
                int new_rotation = (((int)current_facing + 90) % 360);
                manager.SetRotation(new_rotation);
                selected_group.transform.rotation = Quaternion.Euler(0, (int)current_facing, 0);
            }
        }

        if (selected_group != null)
        {
            selected_group.transform.position = mouse_position.ToVector3Int(Vector3Axis.y) * manager.block_size;
        }
        if (Input.GetMouseButtonDown(0) && !manager.mouse_over_ui)
        {
            if (manager.TryPlaceEnemy(selected_group, mouse_position, current_facing))
            {
                manager.ValidateMap();
                manager.SetRotation(0);
                selected_group.transform.rotation = Quaternion.Euler(0, (int)current_facing, 0);
            }
        }
        if (Input.GetMouseButtonDown(1) && !manager.mouse_over_ui)
        {
            manager.TryDeleteEnemy(mouse_position);
            manager.ValidateMap();
        }
    }
Beispiel #2
0
    void Update()
    {
        if (!active)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            SetSelectedPiece(null);
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            if (selected_piece != null)
            {
                int new_rotation = (((int)current_facing + 90) % 360);
                manager.SetRotation(new_rotation);
                selected_piece.transform.rotation = Quaternion.Euler(0, (int)current_facing, 0);
            }
        }

        if (selected_piece != null)
        {
            selected_piece.transform.position = mouse_position.ToVector3Int(Vector3Axis.y) * manager.block_size;
            if (placing_entrance || placing_exit)
            {
                SetPlacementHighlight(manager.OnBounds(mouse_position));
            }
            else
            {
                SetPlacementHighlight(manager.CanBePlaced(selected_piece, mouse_position, current_facing));
            }
        }
        if (!manager.mouse_over_ui)
        {
            if (placing_entrance)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (manager.OnBounds(mouse_position))
                    {
                        if (manager.entrance_position != Vector2Int.zero)
                        {
                            manager.ReplacePiece(manager.entrance_position, border_piece);
                        }
                        manager.ReplacePiece(mouse_position, entrance_piece, manager.GetBoundaryFacing(mouse_position));
                        SetSelectedPiece(null);
                        placing_entrance = false;
                        manager.ValidateMap();
                    }
                }
            }
            else if (placing_exit)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (manager.OnBounds(mouse_position))
                    {
                        if (manager.exit_position != Vector2Int.zero)
                        {
                            manager.ReplacePiece(manager.exit_position, border_piece);
                        }
                        manager.ReplacePiece(mouse_position, exit_piece, manager.GetBoundaryFacing(mouse_position));
                        SetSelectedPiece(null);
                        placing_exit = false;
                        manager.ValidateMap();
                    }
                }
            }
            else
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (manager.TryPlacePiece(selected_piece, mouse_position, current_facing))
                    {
                        manager.ValidateMap();
                        manager.SetRotation(0);
                        selected_piece.transform.rotation = Quaternion.Euler(0, (int)current_facing, 0);
                    }
                }
                if (Input.GetMouseButtonDown(1))
                {
                    manager.TryDeletePiece(mouse_position);
                    manager.ValidateMap();
                }
            }
        }
    }