diff --git a/Chunk0_0 b/Chunk0_0 index a051bc4..9479498 100644 Binary files a/Chunk0_0 and b/Chunk0_0 differ diff --git a/etc/default_theme.tres b/etc/default_theme.tres index b14a6c0..c5c0d0a 100644 --- a/etc/default_theme.tres +++ b/etc/default_theme.tres @@ -1,14 +1,26 @@ -[gd_resource type="Theme" load_steps=3 format=3 uid="uid://ypdn3bt0bsw"] +[gd_resource type="Theme" load_steps=5 format=3 uid="uid://ypdn3bt0bsw"] [ext_resource type="FontFile" uid="uid://ciqqp7ps6fpm2" path="res://etc/fonts/pixel_operator/PixelOperator8.ttf" id="1_d85by"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_71vis"] -bg_color = Color(0, 0, 0, 1) +bg_color = Color(0, 0, 0, 0) border_width_left = 2 border_width_top = 2 border_width_right = 2 border_width_bottom = 2 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xm34r"] +bg_color = Color(0.435192, 0.435192, 0.435192, 1) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4ss0k"] +bg_color = Color(0, 0, 0, 1) + [resource] default_font = ExtResource("1_d85by") Button/styles/focus = SubResource("StyleBoxFlat_71vis") +Button/styles/pressed = SubResource("StyleBoxFlat_xm34r") +PopupMenu/styles/panel = SubResource("StyleBoxFlat_4ss0k") diff --git a/project.godot b/project.godot index b5f3b48..16225b0 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,10 @@ run/main_scene="res://scenes/world.tscn" config/features=PackedStringArray("4.3", "GL Compatibility") config/icon="res://icon.svg" +[autoload] + +Globals="*res://scripts/globals.gd" + [debug] gdscript/warnings/untyped_declaration=2 diff --git a/scenes/map_editor.tscn b/scenes/map_editor.tscn index d628015..4658348 100644 --- a/scenes/map_editor.tscn +++ b/scenes/map_editor.tscn @@ -1,10 +1,25 @@ -[gd_scene format=3 uid="uid://b36mrl1orxgqc"] +[gd_scene load_steps=6 format=3 uid="uid://b36mrl1orxgqc"] -[node name="MapEditor" type="Window"] +[ext_resource type="Script" path="res://scripts/map_editor.gd" id="1_5dotd"] +[ext_resource type="Texture2D" uid="uid://c7eq6tbstw18j" path="res://sprites/tiles/tileatlas.png" id="1_5ghci"] +[ext_resource type="Texture2D" uid="uid://xy3bire6ba3t" path="res://sprites/tiles/tile_atlas_texture.tres" id="1_m6mu8"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_l6av2"] +atlas = ExtResource("1_5ghci") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tg82d"] +atlas = ExtResource("1_5ghci") +region = Rect2(16, 0, 16, 16) + +[node name="MapEditor" type="Window" node_paths=PackedStringArray("LeftMouseSelector", "RightMouseSelector")] title = "Map Editor" initial_position = 1 size = Vector2i(128, 128) unresizable = true +script = ExtResource("1_5dotd") +LeftMouseSelector = NodePath("List/MouseButtonTiles/Left") +RightMouseSelector = NodePath("List/MouseButtonTiles/Right") [node name="List" type="VBoxContainer" parent="."] anchors_preset = 15 @@ -20,3 +35,28 @@ text = "TEST" [node name="Button2" type="Button" parent="List"] layout_mode = 2 text = "TEST" + +[node name="MouseButtonTiles" type="HBoxContainer" parent="List"] +layout_mode = 2 + +[node name="Left" type="MenuButton" parent="List/MouseButtonTiles"] +layout_mode = 2 +icon = ExtResource("1_m6mu8") +flat = false +item_count = 2 +popup/item_0/text = "Wall" +popup/item_0/icon = SubResource("AtlasTexture_l6av2") +popup/item_1/text = "Air" +popup/item_1/icon = SubResource("AtlasTexture_tg82d") +popup/item_1/id = 1 + +[node name="Right" type="MenuButton" parent="List/MouseButtonTiles"] +layout_mode = 2 +icon = ExtResource("1_m6mu8") +flat = false +item_count = 2 +popup/item_0/text = "Wall" +popup/item_0/icon = SubResource("AtlasTexture_l6av2") +popup/item_1/text = "Air" +popup/item_1/icon = SubResource("AtlasTexture_tg82d") +popup/item_1/id = 1 diff --git a/scenes/world.tscn b/scenes/world.tscn index b7f4060..252d2b4 100644 --- a/scenes/world.tscn +++ b/scenes/world.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=4 format=4 uid="uid://cj745xdkfs07e"] +[gd_scene load_steps=5 format=4 uid="uid://cj745xdkfs07e"] [ext_resource type="Script" path="res://scripts/world.gd" id="1_esegs"] [ext_resource type="TileSet" uid="uid://stnhmu4q2gsn" path="res://etc/main_tileset.tres" id="1_xai1s"] [ext_resource type="PackedScene" uid="uid://qf1tj52hbpvv" path="res://scenes/player.tscn" id="2_6pie4"] +[ext_resource type="PackedScene" uid="uid://b36mrl1orxgqc" path="res://scenes/map_editor.tscn" id="4_hc035"] [node name="World" type="Node2D"] script = ExtResource("1_esegs") @@ -14,3 +15,6 @@ tile_set = ExtResource("1_xai1s") [node name="Player" parent="." instance=ExtResource("2_6pie4")] position = Vector2(128, 128) + +[node name="MapEditor" parent="." node_paths=PackedStringArray("WorldTiles") instance=ExtResource("4_hc035")] +WorldTiles = NodePath("../TileMapLayer") diff --git a/scripts/globals.gd b/scripts/globals.gd new file mode 100644 index 0000000..a7e44c9 --- /dev/null +++ b/scripts/globals.gd @@ -0,0 +1,12 @@ +extends Node + +enum {WALL, AIR} + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + pass diff --git a/scripts/map_editor.gd b/scripts/map_editor.gd new file mode 100644 index 0000000..f87da60 --- /dev/null +++ b/scripts/map_editor.gd @@ -0,0 +1,30 @@ +extends Window + + +@export var WorldTiles : TileMapLayer +@export_category("Node Assignments") +@export var LeftMouseSelector : MenuButton +@export var RightMouseSelector : MenuButton + + +var leftMouseTile : int = Globals.WALL +var rightMouseTile : int = Globals.AIR + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + LeftMouseSelector.get_popup().id_pressed.connect(_on_mouse_selector_pressed) + RightMouseSelector.get_popup().id_pressed.connect(_on_mouse_selector_pressed) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): + var setPos : Vector2i = WorldTiles.local_to_map(WorldTiles.get_local_mouse_position()) + WorldTiles.set_cell(setPos,leftMouseTile,Vector2i(0,0)) + + if Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT): + var setPos : Vector2i = WorldTiles.local_to_map(WorldTiles.get_local_mouse_position()) + WorldTiles.set_cell(setPos,rightMouseTile,Vector2i(0,0)) + +func _on_mouse_selector_pressed(mouse : int, id: int) -> void: + pass diff --git a/scripts/world.gd b/scripts/world.gd index 2bf143a..e2797c3 100644 --- a/scripts/world.gd +++ b/scripts/world.gd @@ -4,7 +4,7 @@ extends Node2D var chunkPos : Vector2i = Vector2i(0,0) -enum {WALL, AIR} + # Called when the node enters the scene tree for the first time. func _ready() -> void: @@ -13,14 +13,8 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: - - if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT): - var setPos : Vector2i = WorldTiles.local_to_map(get_local_mouse_position()) - WorldTiles.set_cell(setPos,WALL,Vector2i(0,0)) - - if Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT): - var setPos : Vector2i = WorldTiles.local_to_map(get_local_mouse_position()) - WorldTiles.set_cell(setPos,AIR,Vector2i(0,0)) + pass + func load_game(path:String, tile_map_layer:TileMapLayer) -> void: var file : FileAccess = FileAccess.open(path, FileAccess.READ) diff --git a/sprites/tiles/tile_atlas_texture.tres b/sprites/tiles/tile_atlas_texture.tres new file mode 100644 index 0000000..84db90d --- /dev/null +++ b/sprites/tiles/tile_atlas_texture.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://xy3bire6ba3t"] + +[ext_resource type="Texture2D" uid="uid://c7eq6tbstw18j" path="res://sprites/tiles/tileatlas.png" id="1_71cii"] + +[resource] +atlas = ExtResource("1_71cii") +region = Rect2(0, 0, 16, 16)