diff --git a/assets/scifi_tilesheet@2.png b/assets/scifi_tilesheet@2.png index 4fcc627..9a0cca9 100644 Binary files a/assets/scifi_tilesheet@2.png and b/assets/scifi_tilesheet@2.png differ diff --git a/scene/world.tscn b/scene/world.tscn index 2597e9e..36d55d0 100644 --- a/scene/world.tscn +++ b/scene/world.tscn @@ -1,7 +1,9 @@ -[gd_scene load_steps=5 format=3 uid="uid://m0us5xqa3gnk"] +[gd_scene load_steps=7 format=3 uid="uid://m0us5xqa3gnk"] [ext_resource type="Script" path="res://scripts/world.gd" id="1_yf6q1"] [ext_resource type="TileSet" uid="uid://d1sh6dy2w10b0" path="res://data/scifi_tileset.tres" id="2_sa7dm"] +[ext_resource type="Script" path="res://scripts/Window.gd" id="3_bfjot"] +[ext_resource type="Script" path="res://scripts/BuildingManager.gd" id="4_61js3"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_teaou"] @@ -16,12 +18,18 @@ noise_texture = SubResource("NoiseTexture2D_8pjar") tile_set = ExtResource("2_sa7dm") format = 2 layer_0/name = "ground" -layer_1/name = "environment" +layer_1/name = "Cursor" layer_1/tile_data = PackedInt32Array() -layer_2/name = "buildings" +layer_2/name = "environment" layer_2/tile_data = PackedInt32Array() +layer_3/name = "buildings" +layer_3/tile_data = PackedInt32Array() [node name="Camera2D" type="Camera2D" parent="."] -zoom = Vector2(0.05, 0.05) +zoom = Vector2(0.3, 0.3) drag_horizontal_enabled = true drag_vertical_enabled = true +script = ExtResource("3_bfjot") + +[node name="BuildingManager" type="Node2D" parent="."] +script = ExtResource("4_61js3") diff --git a/scripts/BuildingManager.gd b/scripts/BuildingManager.gd new file mode 100644 index 0000000..5fadcb4 --- /dev/null +++ b/scripts/BuildingManager.gd @@ -0,0 +1,8 @@ +extends Node2D + +@onready var world_grid = $"../world_grid" + +func _unhandled_input(event): + if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_LEFT: + prints(event.position, get_global_mouse_position(), world_grid.local_to_map(event.position), get_global_mouse_position(), world_grid.local_to_map(get_global_mouse_position())) + world_grid.set_cell(2, world_grid.local_to_map(get_global_mouse_position()), 0, Vector2i(16,2)) diff --git a/scripts/Window.gd b/scripts/Window.gd new file mode 100644 index 0000000..e748efd --- /dev/null +++ b/scripts/Window.gd @@ -0,0 +1,13 @@ +extends Camera2D + +@export var drag_sens: float = 2.0 + +func _unhandled_input(event): + if event is InputEventMouseButton: + match event.button_index: + MOUSE_BUTTON_WHEEL_DOWN: + zoom -= Vector2(0.01, 0.01) + MOUSE_BUTTON_WHEEL_UP: + zoom += Vector2(0.01, 0.01) + if event is InputEventMouseMotion and Input.is_mouse_button_pressed(MOUSE_BUTTON_MIDDLE): + position -= event.relative * drag_sens / zoom diff --git a/scripts/world.gd b/scripts/world.gd index 7971fa0..c21d974 100644 --- a/scripts/world.gd +++ b/scripts/world.gd @@ -31,3 +31,8 @@ func _ready(): for region in noise_regions.size(): prints(region, noise_regions[region], temp_noise_reg.count(region)) #get_tree().quit() + +func _process(delta): + var mouse_pos = world_grid.local_to_map(get_local_mouse_position()) + world_grid.clear_layer(1) + world_grid.set_cell(1, mouse_pos,0,Vector2i(0,7))