started adding mouse selector for mouse editor

This commit is contained in:
ObeseTermite 2024-10-12 19:56:12 -07:00
parent 6a2f2b4236
commit 503dea0511
9 changed files with 117 additions and 14 deletions

BIN
Chunk0_0

Binary file not shown.

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -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")

12
scripts/globals.gd Normal file
View file

@ -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

30
scripts/map_editor.gd Normal file
View file

@ -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

View file

@ -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)

View file

@ -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)