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(); } }
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(); } } } }