From b92a6a0611e5eee7d296ce15dcdc043b7a75413e Mon Sep 17 00:00:00 2001 From: Luke Hubmayer-Werner Date: Tue, 21 Apr 2020 02:38:37 +0930 Subject: [PATCH] Belts can now be placed and removed --- Hotbar.tscn | 4 ++-- Main.gd | 48 ++++++++++++++++++++++++++++++++++++++++++ assets/UI_Youdied.tres | 6 +++++- 3 files changed, 55 insertions(+), 3 deletions(-) diff --git a/Hotbar.tscn b/Hotbar.tscn index 37475b0..40b9987 100644 --- a/Hotbar.tscn +++ b/Hotbar.tscn @@ -96,7 +96,7 @@ texture = ExtResource( 2 ) [node name="BGMSlider" type="HBoxContainer" parent="."] show_behind_parent = true margin_left = 192.0 -margin_right = 480.0 +margin_right = 360.0 margin_bottom = 16.0 size_flags_horizontal = 3 size_flags_vertical = 4 @@ -116,7 +116,7 @@ text = "BGM" show_behind_parent = true margin_left = 29.0 margin_top = 5.0 -margin_right = 288.0 +margin_right = 168.0 margin_bottom = 10.0 size_flags_horizontal = 3 size_flags_vertical = 4 diff --git a/Main.gd b/Main.gd index 2597379..2946e20 100644 --- a/Main.gd +++ b/Main.gd @@ -67,3 +67,51 @@ func game_over(): remove_child(map) map.queue_free() map = null + +const FLOOR = 1 +func _input(event): + var belt_dirs = [ # v2 is widebelt second tile offset + {v=Vector2(1, 0), v2=Vector2(0,1), fx=false, fy=false, t=false}, + {v=Vector2(0, 1), v2=Vector2(1,0), fx=true, fy=false, t=true}, + {v=Vector2(-1,0), v2=Vector2(0,1), fx=true, fy=true, t=false}, + {v=Vector2(0,-1), v2=Vector2(1,0), fx=false, fy=true, t=true} + ] + if not map: + return + var Tiles: TileMap = map.get_node("TileMap") + var BeltTiles: TileMap = map.get_node("BeltTiles") + var belt_types = {1: 0, 2: 4, 3: 1} # 2 for secondary wide (3) + if event is InputEventMouse: + if p1_selection <= 0: + return + var pos = get_cursor_snapped_position() + if pos.x < 0: + return + var grid_index = BeltTiles.world_to_map(pos + Vector2(4,4)) + + if p1_selection <= 3: + if event.button_mask & BUTTON_MASK_LEFT: + if event is InputEventMouseMotion: + var dir = int(fposmod(round((event.relative.angle()/TAU)*4), 4)) + var d = belt_dirs[dir] + if Tiles.get_cellv(grid_index) == FLOOR: + if p1_selection == 3: + if Tiles.get_cellv(grid_index+d.v2) == FLOOR: + if dir == 0 or dir == 3: + BeltTiles.set_cellv(grid_index, 1, d.fx, d.fy, d.t) + BeltTiles.set_cellv(grid_index+d.v2, 2, d.fx, d.fy, d.t) + else: + BeltTiles.set_cellv(grid_index, 2, d.fx, d.fy, d.t) + BeltTiles.set_cellv(grid_index+d.v2, 1, d.fx, d.fy, d.t) + else: + BeltTiles.set_cellv(grid_index, belt_types[p1_selection], d.fx, d.fy, d.t) + elif event.button_mask & BUTTON_MASK_RIGHT: + if Tiles.get_cellv(grid_index) == FLOOR: + BeltTiles.set_cellv(grid_index, -1) + if p1_selection == 3: + for offset in [Vector2(1,0), Vector2(0,1), Vector2(1,1)]: + if Tiles.get_cellv(grid_index + offset) == FLOOR: + BeltTiles.set_cellv(grid_index + offset, -1) + else: + pass + diff --git a/assets/UI_Youdied.tres b/assets/UI_Youdied.tres index bfb5e43..e89acf0 100644 --- a/assets/UI_Youdied.tres +++ b/assets/UI_Youdied.tres @@ -4,6 +4,10 @@ [resource] size = 32 -outline_size = 2 +outline_size = 1 outline_color = Color( 1, 1, 0, 1 ) +extra_spacing_top = -8 +extra_spacing_bottom = -8 +extra_spacing_char = -1 +extra_spacing_space = 5 font_data = ExtResource( 1 )