diff options
Diffstat (limited to 'scenes/UI')
-rw-r--r-- | scenes/UI/cursor.gd | 39 | ||||
-rw-r--r-- | scenes/UI/cursor.gd.uid | 1 | ||||
-rw-r--r-- | scenes/UI/cursor.tscn | 12 |
3 files changed, 52 insertions, 0 deletions
diff --git a/scenes/UI/cursor.gd b/scenes/UI/cursor.gd new file mode 100644 index 0000000..158a2a4 --- /dev/null +++ b/scenes/UI/cursor.gd @@ -0,0 +1,39 @@ +extends Node2D + +var tile_size = 16.0 +var max_x = 20 * tile_size +var max_y = 15 * tile_size + +var dirs = {"move_right": Vector2.RIGHT, + "move_left": Vector2.LEFT, + "move_up": Vector2.UP, + "move_down": Vector2.DOWN} +var towers : Dictionary + +func _ready(): + towers["place_warlock"] = preload("res://scenes/defenders/warlock.tscn") + position = position.snapped(Vector2.ONE * tile_size) + position += Vector2.ONE * tile_size/2 + +func _unhandled_input(event): + for dir in dirs.keys(): + if event.is_action_pressed(dir): + handle_move(dirs[dir]) + return + for tower in towers.keys(): + if event.is_action_pressed(tower): + handle_tower(towers[tower]) + return + +func handle_tower(tower): + var tmp = tower.instantiate() + var path = get_tree().get_root().get_node("Main/Defenders") + path.add_child(tmp) + tmp.global_position = position + +func handle_move(dir): + position += dir * tile_size + position.x = max(position.x, tile_size / 2) + position.y = max(position.y, tile_size / 2) + position.x = min(position.x, max_x - (tile_size / 2)) + position.y = min(position.y, max_y - (tile_size / 2)) diff --git a/scenes/UI/cursor.gd.uid b/scenes/UI/cursor.gd.uid new file mode 100644 index 0000000..015cefa --- /dev/null +++ b/scenes/UI/cursor.gd.uid @@ -0,0 +1 @@ +uid://bwiimenoyb5og diff --git a/scenes/UI/cursor.tscn b/scenes/UI/cursor.tscn new file mode 100644 index 0000000..9da5554 --- /dev/null +++ b/scenes/UI/cursor.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=3 format=3 uid="uid://cq6d7gmjbwl14"] + +[ext_resource type="Script" uid="uid://bwiimenoyb5og" path="res://scenes/UI/cursor.gd" id="1_4knn1"] +[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="2_gber1"] + +[node name="Cursor" type="Node2D"] +script = ExtResource("1_4knn1") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("2_gber1") +region_enabled = true +region_rect = Rect2(576, 192, 16, 16) |