From a83692f9d6c9b23710912d8894671d3dfab68091 Mon Sep 17 00:00:00 2001 From: Torsten Date: Sun, 23 Nov 2025 14:28:48 +0100 Subject: [PATCH] Start fixing map scrolling by moving TileMapLayer outside of container --- hexmapper/scenes/MainMap/_MainMap.tscn | 74 ++++++++++--------- .../scenes/MainMap/map/map_layer_logic.gd | 37 ++++++++++ hexmapper/scenes/MainMap/map/map_manager.gd | 2 + hexmapper/scenes/MainMap/resource_saver.gd | 12 ++- 4 files changed, 86 insertions(+), 39 deletions(-) diff --git a/hexmapper/scenes/MainMap/_MainMap.tscn b/hexmapper/scenes/MainMap/_MainMap.tscn index 9a6706e..a94c346 100644 --- a/hexmapper/scenes/MainMap/_MainMap.tscn +++ b/hexmapper/scenes/MainMap/_MainMap.tscn @@ -1,23 +1,23 @@ [gd_scene load_steps=24 format=4 uid="uid://li0mfftily5e"] -[ext_resource type="Texture2D" uid="uid://berwv00k5ffjm" path="res://assets/spritesheets/map_hex_terrain_72x72_spritesheet.png" id="1_4oycp"] -[ext_resource type="Script" uid="uid://dnfabi8ksjvm2" path="res://scenes/MainMap/map/map_layer_logic.gd" id="1_74o3d"] -[ext_resource type="Script" uid="uid://rxaxc2114upf" path="res://scenes/MainMap/map/map_manager.gd" id="1_fax2j"] -[ext_resource type="Script" uid="uid://wvdosjbdlsjd" path="res://scenes/MainMap/ui/btn_palette.gd" id="2_fax2j"] -[ext_resource type="Texture2D" uid="uid://cit5dnn6eoun1" path="res://assets/spritesheets/ui_72x72_spritesheet.png" id="3_gpn0d"] -[ext_resource type="Texture2D" uid="uid://bf0ux0t00blb7" path="res://assets/spritesheets/map_buildings_72x72_spritesheet.png" id="3_kyvod"] -[ext_resource type="Script" uid="uid://bcrhouavyrrm" path="res://scenes/MainMap/map/cursor_map_layer.gd" id="4_qib1m"] -[ext_resource type="Script" uid="uid://bqj8p0m6qt43k" path="res://scenes/MainMap/map/cursor_timer.gd" id="5_8wy1m"] -[ext_resource type="Script" uid="uid://csi8if4m6a78v" path="res://scenes/MainMap/map_menu.gd" id="7_cooet"] -[ext_resource type="Script" uid="uid://1nbd6r3bgx6i" path="res://scenes/MainMap/resource_saver.gd" id="8_4uh5x"] -[ext_resource type="Script" uid="uid://b5v0k8cmkbrsr" path="res://scenes/MainMap/startup.gd" id="8_y3acc"] -[ext_resource type="Texture2D" uid="uid://cqb2af3gx5fp6" path="res://assets/ui_images/button_up.png" id="9_e5fbg"] -[ext_resource type="Texture2D" uid="uid://4rr1pyik2cer" path="res://assets/ui_images/button_down.png" id="10_26b7d"] -[ext_resource type="Texture2D" uid="uid://imyg8w7q7edx" path="res://assets/ui_images/button_left.png" id="11_33jd8"] -[ext_resource type="Texture2D" uid="uid://b81ubyqonighc" path="res://assets/ui_images/button_right.png" id="12_myd42"] +[ext_resource type="Texture2D" uid="uid://berwv00k5ffjm" path="res://assets/spritesheets/map_hex_terrain_72x72_spritesheet.png" id="1_b7yd6"] +[ext_resource type="Script" uid="uid://dnfabi8ksjvm2" path="res://scenes/MainMap/map/map_layer_logic.gd" id="2_phmqw"] +[ext_resource type="Texture2D" uid="uid://bf0ux0t00blb7" path="res://assets/spritesheets/map_buildings_72x72_spritesheet.png" id="3_37pm7"] +[ext_resource type="Texture2D" uid="uid://cit5dnn6eoun1" path="res://assets/spritesheets/ui_72x72_spritesheet.png" id="4_hv2ps"] +[ext_resource type="Script" uid="uid://bcrhouavyrrm" path="res://scenes/MainMap/map/cursor_map_layer.gd" id="5_hkmvc"] +[ext_resource type="Script" uid="uid://bqj8p0m6qt43k" path="res://scenes/MainMap/map/cursor_timer.gd" id="6_p0er2"] +[ext_resource type="Script" uid="uid://csi8if4m6a78v" path="res://scenes/MainMap/map_menu.gd" id="7_r14cd"] +[ext_resource type="Script" uid="uid://wvdosjbdlsjd" path="res://scenes/MainMap/ui/btn_palette.gd" id="8_00k7a"] +[ext_resource type="Texture2D" uid="uid://cqb2af3gx5fp6" path="res://assets/ui_images/button_up.png" id="9_02xsc"] +[ext_resource type="Texture2D" uid="uid://4rr1pyik2cer" path="res://assets/ui_images/button_down.png" id="10_tt8tc"] +[ext_resource type="Texture2D" uid="uid://imyg8w7q7edx" path="res://assets/ui_images/button_left.png" id="11_op3rv"] +[ext_resource type="Texture2D" uid="uid://b81ubyqonighc" path="res://assets/ui_images/button_right.png" id="12_vfed4"] +[ext_resource type="Script" uid="uid://1nbd6r3bgx6i" path="res://scenes/MainMap/resource_saver.gd" id="13_pc813"] +[ext_resource type="Script" uid="uid://b5v0k8cmkbrsr" path="res://scenes/MainMap/startup.gd" id="14_j4tso"] +[ext_resource type="Script" uid="uid://rxaxc2114upf" path="res://scenes/MainMap/map/map_manager.gd" id="15_sjwfn"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_trqik"] -texture = ExtResource("1_4oycp") +texture = ExtResource("1_b7yd6") separation = Vector2i(1, 1) texture_region_size = Vector2i(72, 72) 0:0/0 = 0 @@ -86,7 +86,7 @@ sources/1 = SubResource("TileSetAtlasSource_trqik") tile_proxies/coords_level = [[0, Vector2i(0, 0)], [51, Vector2i(0, 0)], [1, Vector2i(0, 0)], [51, Vector2i(1, 0)], [2, Vector2i(0, 0)], [51, Vector2i(2, 0)], [3, Vector2i(0, 0)], [51, Vector2i(3, 0)], [4, Vector2i(0, 0)], [51, Vector2i(4, 0)], [5, Vector2i(0, 0)], [51, Vector2i(5, 0)], [6, Vector2i(0, 0)], [51, Vector2i(6, 0)], [7, Vector2i(0, 0)], [51, Vector2i(0, 1)], [8, Vector2i(0, 0)], [51, Vector2i(1, 1)], [9, Vector2i(0, 0)], [51, Vector2i(2, 1)], [10, Vector2i(0, 0)], [51, Vector2i(3, 1)], [11, Vector2i(0, 0)], [51, Vector2i(4, 1)], [12, Vector2i(0, 0)], [51, Vector2i(5, 1)], [13, Vector2i(0, 0)], [51, Vector2i(6, 1)], [14, Vector2i(0, 0)], [51, Vector2i(0, 2)], [15, Vector2i(0, 0)], [51, Vector2i(1, 2)], [16, Vector2i(0, 0)], [51, Vector2i(2, 2)], [17, Vector2i(0, 0)], [51, Vector2i(3, 2)], [18, Vector2i(0, 0)], [51, Vector2i(4, 2)], [19, Vector2i(0, 0)], [51, Vector2i(5, 2)], [20, Vector2i(0, 0)], [51, Vector2i(6, 2)], [21, Vector2i(0, 0)], [51, Vector2i(0, 3)], [22, Vector2i(0, 0)], [51, Vector2i(1, 3)], [23, Vector2i(0, 0)], [51, Vector2i(2, 3)], [24, Vector2i(0, 0)], [51, Vector2i(3, 3)], [25, Vector2i(0, 0)], [51, Vector2i(4, 3)], [26, Vector2i(0, 0)], [51, Vector2i(5, 3)], [27, Vector2i(0, 0)], [51, Vector2i(6, 3)], [28, Vector2i(0, 0)], [51, Vector2i(0, 4)], [29, Vector2i(0, 0)], [51, Vector2i(1, 4)], [30, Vector2i(0, 0)], [51, Vector2i(2, 4)], [31, Vector2i(0, 0)], [51, Vector2i(3, 4)], [32, Vector2i(0, 0)], [51, Vector2i(4, 4)], [33, Vector2i(0, 0)], [51, Vector2i(5, 4)], [34, Vector2i(0, 0)], [51, Vector2i(6, 4)], [35, Vector2i(0, 0)], [51, Vector2i(0, 5)], [36, Vector2i(0, 0)], [51, Vector2i(1, 5)], [37, Vector2i(0, 0)], [51, Vector2i(2, 5)], [38, Vector2i(0, 0)], [51, Vector2i(3, 5)], [39, Vector2i(0, 0)], [51, Vector2i(4, 5)], [40, Vector2i(0, 0)], [51, Vector2i(5, 5)], [41, Vector2i(0, 0)], [51, Vector2i(6, 5)], [42, Vector2i(0, 0)], [51, Vector2i(0, 6)], [43, Vector2i(0, 0)], [51, Vector2i(1, 6)], [44, Vector2i(0, 0)], [51, Vector2i(2, 6)], [45, Vector2i(0, 0)], [51, Vector2i(3, 6)], [46, Vector2i(0, 0)], [51, Vector2i(4, 6)], [47, Vector2i(0, 0)], [51, Vector2i(5, 6)], [48, Vector2i(0, 0)], [51, Vector2i(6, 6)], [49, Vector2i(0, 0)], [51, Vector2i(0, 7)], [50, Vector2i(0, 0)], [51, Vector2i(1, 7)]] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4uh5x"] -texture = ExtResource("3_kyvod") +texture = ExtResource("3_37pm7") texture_region_size = Vector2i(72, 72) 0:0/0 = 0 1:0/0 = 0 @@ -99,7 +99,7 @@ tile_size = Vector2i(72, 72) sources/1 = SubResource("TileSetAtlasSource_4uh5x") [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qib1m"] -texture = ExtResource("3_gpn0d") +texture = ExtResource("4_hv2ps") texture_region_size = Vector2i(72, 72) 0:0/0 = 0 @@ -129,10 +129,20 @@ metadata/_edit_use_anchors_ = true [node name="Camera2D" type="Camera2D" parent="."] unique_name_in_owner = true anchor_mode = 0 +drag_horizontal_enabled = true +drag_vertical_enabled = true editor_draw_limits = true editor_draw_drag_margin = true +[node name="GroundMapLayer" type="TileMapLayer" parent="."] +unique_name_in_owner = true +position = Vector2(0, 44) +tile_map_data = PackedByteArray("AAAEAAMAAQAHAAEAAAAEAAIAAQAHAAEAAAAFAAIAAQAHAAEAAAAFAAEAAQAHAAEAAAAGAAEAAQAHAAEAAAAGAAAAAQADAAIAAAAHAAAAAQAHAAEAAAAHAP//AQADAAIAAAAIAP//AQAHAAEAAAAIAP7/AQAHAAEAAAAJAP7/AQAHAAEAAAAKAP7/AQAHAAEAAAAKAP3/AQAHAAEAAAALAP3/AQAHAAEAAAALAPz/AQAHAAEAAAAMAPz/AQAHAAEAAAAMAPv/AQAHAAEAAAANAPv/AQAHAAEAAAANAPr/AQAHAAEAAAAOAPr/AQAHAAEAAAAOAPn/AQADAAIAAAAPAPn/AQADAAIAAAAPAPj/AQAFAAAAAAAQAPj/AQADAAIAAAAKAPz/AQADAAIAAAAJAP3/AQADAAIAAAAIAAAAAQAHAAEAAAAJAAAAAQAHAAEAAAAJAP//AQAHAAEAAAAKAP//AQAHAAEAAAALAP7/AQAHAAEAAAAPAPr/AQAHAAEAAAAOAPv/AQAHAAEAAAANAPz/AQAHAAEAAAAMAP3/AQAHAAEAAAALAP//AQAHAAEAAAAMAP//AQAHAAEAAAAMAP7/AQAHAAEAAAAPAPv/AQAHAAEAAAAQAPr/AQADAAIAAAAQAPv/AQAHAAEAAAAOAPz/AQAHAAEAAAANAP3/AQAHAAEAAAAIAAEAAQAHAAEAAAAHAAEAAQAHAAEAAAAIAAIAAQAHAAEAAAAHAAIAAQAHAAEAAAAHAAMAAQAHAAEAAAAGAAMAAQAHAAEAAAAGAAIAAQAHAAEAAAAJAAIAAQAHAAEAAAAJAAEAAQAHAAEAAAAKAAEAAQAHAAEAAAAKAAAAAQAHAAEAAAALAAAAAQAHAAEAAAAIAAMAAQAHAAEAAAAHAAQAAQAHAAEAAAAGAAQAAQAHAAEAAAAGAAUAAQAHAAEAAAAFAAUAAQAHAAEAAAAHAAUAAQAHAAEAAAAIAAUAAQAHAAEAAAAIAAQAAQAHAAEAAAAJAAQAAQAHAAEAAAAJAAMAAQAHAAEAAAAKAAMAAQAHAAEAAAAKAAIAAQAHAAEAAAALAAIAAQAHAAEAAAALAAEAAQAHAAEAAAAMAAEAAQAHAAEAAAAMAAAAAQAHAAEAAAANAAAAAQAHAAEAAAAOAAAAAQAHAAEAAAAOAP//AQAHAAEAAAAPAP//AQAHAAEAAAAQAP//AQAHAAEAAAAQAP7/AQAHAAEAAAARAP7/AQAHAAEAAAARAP3/AQAHAAEAAAASAP3/AQAHAAEAAAASAP7/AQAHAAEAAAARAP//AQAHAAEAAAAQAAAAAQAHAAEAAAAPAAAAAQAHAAEAAAAPAAEAAQAHAAEAAAAOAAEAAQAHAAEAAAANAAEAAQAHAAEAAAANAAIAAQAHAAEAAAAMAAIAAQAHAAEAAAAMAAMAAQAHAAEAAAALAAMAAQAHAAEAAAALAAQAAQAHAAEAAAAKAAQAAQAHAAEAAAAKAAUAAQAHAAEAAAAJAAUAAQAHAAEAAAAJAAYAAQAHAAEAAAAOAAIAAQAHAAEAAAANAAMAAQAHAAEAAAAMAAQAAQAHAAEAAAAPAP7/AQAHAAEAAAAPAP3/AQAHAAEAAAAOAP3/AQAHAAEAAAANAP7/AQAHAAEAAAANAP//AQAHAAEAAAASAPz/AQAHAAEAAAATAPz/AQAHAAEAAAATAPv/AQAHAAEAAAAUAPv/AQAHAAEAAAAUAPr/AQAHAAEAAAAVAPr/AQAHAAEAAAAVAPn/AQAHAAEAAAAWAPn/AQAHAAEAAAAVAPj/AQAHAAEAAAAUAPf/AQAHAAEAAAATAPf/AQADAAIAAAASAPf/AQADAAIAAAARAPf/AQADAAIAAAARAPj/AQADAAIAAAAQAP3/AQAHAAEAAAARAPz/AQAHAAEAAAARAPv/AQAHAAEAAAASAPv/AQAHAAEAAAASAPr/AQAHAAEAAAATAPr/AQAHAAEAAAATAPn/AQAHAAEAAAAQAPz/AQAHAAEAAAAPAPz/AQAHAAEAAAAOAP7/AQAHAAEAAAASAPn/AQADAAIAAAARAPr/AQAHAAEAAAAFAAMAAQAHAAEAAAANAPn/AQAFAAAAAAAMAPr/AQADAAIAAAALAPr/AQADAAIAAAAKAPr/AQAHAAEAAAAKAPv/AQADAAIAAAAJAPv/AQAHAAEAAAAIAPv/AQAHAAEAAAAHAPv/AQAHAAEAAAAHAPz/AQAHAAEAAAAGAPz/AQAHAAEAAAAGAP3/AQADAAIAAAAFAP3/AQAHAAEAAAAFAP7/AQADAAIAAAAEAP7/AQAHAAEAAAAEAP//AQADAAIAAAADAP//AQAHAAEAAAADAAAAAQADAAIAAAAEAAAAAQADAAIAAAAJAPz/AQADAAIAAAAIAPz/AQADAAIAAAAIAP3/AQADAAIAAAAHAP3/AQADAAIAAAAGAP7/AQADAAIAAAAFAP//AQADAAIAAAAEAAEAAQADAAIAAAAFAAAAAQADAAIAAAAGAP//AQADAAIAAAAHAP7/AQADAAIAAAALAPv/AQADAAIAAAAQAPn/AQADAAIAAAARAPn/AQADAAIAAAASAPj/AQADAAIAAAATAPj/AQADAAIAAAAMAPn/AQAFAAAAAAALAPb/AQAFAAAAAAAMAPb/AQAFAAAAAAANAPb/AQAFAAAAAAANAPX/AQAFAAAAAAAOAPX/AQAFAAAAAAAPAPX/AQAFAAAAAAAQAPX/AQAFAAAAAAAPAPT/AQAFAAAAAAAOAPT/AQAFAAAAAAANAPf/AQAFAAAAAAAOAPf/AQAFAAAAAAAOAPb/AQAFAAAAAAAMAPf/AQAFAAAAAAAMAPj/AQAFAAAAAAANAPj/AQAFAAAAAAAOAPj/AQAFAAAAAAAPAPf/AQAFAAAAAAAPAPb/AQAFAAAAAAALAPj/AQAFAAAAAAALAPn/AQAFAAAAAAAQAPf/AQAFAAAAAAAQAPb/AQAFAAAAAAARAPb/AQAFAAAAAAARAPX/AQAFAAAAAAARAPT/AQAFAAAAAAAQAPT/AQAFAAAAAAA=") +tile_set = SubResource("TileSet_oxvhj") +script = ExtResource("2_phmqw") + [node name="VBoxContainer" type="VBoxContainer" parent="."] +visible = false layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -152,12 +162,6 @@ clip_contents = true layout_mode = 2 size_flags_vertical = 3 -[node name="GroundMapLayer" type="TileMapLayer" parent="VBoxContainer/Map"] -unique_name_in_owner = true -tile_map_data = PackedByteArray("AAAEAAMAAQAHAAEAAAAEAAIAAQAHAAEAAAAFAAIAAQAHAAEAAAAFAAEAAQAHAAEAAAAGAAEAAQAHAAEAAAAGAAAAAQADAAIAAAAHAAAAAQAHAAEAAAAHAP//AQADAAIAAAAIAP//AQAHAAEAAAAIAP7/AQAHAAEAAAAJAP7/AQAHAAEAAAAKAP7/AQAHAAEAAAAKAP3/AQAHAAEAAAALAP3/AQAHAAEAAAALAPz/AQAHAAEAAAAMAPz/AQAHAAEAAAAMAPv/AQAHAAEAAAANAPv/AQAHAAEAAAANAPr/AQAHAAEAAAAOAPr/AQAHAAEAAAAOAPn/AQADAAIAAAAPAPn/AQADAAIAAAAPAPj/AQAFAAAAAAAQAPj/AQADAAIAAAAKAPz/AQADAAIAAAAJAP3/AQADAAIAAAAIAAAAAQAHAAEAAAAJAAAAAQAHAAEAAAAJAP//AQAHAAEAAAAKAP//AQAHAAEAAAALAP7/AQAHAAEAAAAPAPr/AQAHAAEAAAAOAPv/AQAHAAEAAAANAPz/AQAHAAEAAAAMAP3/AQAHAAEAAAALAP//AQAHAAEAAAAMAP//AQAHAAEAAAAMAP7/AQAHAAEAAAAPAPv/AQAHAAEAAAAQAPr/AQADAAIAAAAQAPv/AQAHAAEAAAAOAPz/AQAHAAEAAAANAP3/AQAHAAEAAAAIAAEAAQAHAAEAAAAHAAEAAQAHAAEAAAAIAAIAAQAHAAEAAAAHAAIAAQAHAAEAAAAHAAMAAQAHAAEAAAAGAAMAAQAHAAEAAAAGAAIAAQAHAAEAAAAJAAIAAQAHAAEAAAAJAAEAAQAHAAEAAAAKAAEAAQAHAAEAAAAKAAAAAQAHAAEAAAALAAAAAQAHAAEAAAAIAAMAAQAHAAEAAAAHAAQAAQAHAAEAAAAGAAQAAQAHAAEAAAAGAAUAAQAHAAEAAAAFAAUAAQAHAAEAAAAHAAUAAQAHAAEAAAAIAAUAAQAHAAEAAAAIAAQAAQAHAAEAAAAJAAQAAQAHAAEAAAAJAAMAAQAHAAEAAAAKAAMAAQAHAAEAAAAKAAIAAQAHAAEAAAALAAIAAQAHAAEAAAALAAEAAQAHAAEAAAAMAAEAAQAHAAEAAAAMAAAAAQAHAAEAAAANAAAAAQAHAAEAAAAOAAAAAQAHAAEAAAAOAP//AQAHAAEAAAAPAP//AQAHAAEAAAAQAP//AQAHAAEAAAAQAP7/AQAHAAEAAAARAP7/AQAHAAEAAAARAP3/AQAHAAEAAAASAP3/AQAHAAEAAAASAP7/AQAHAAEAAAARAP//AQAHAAEAAAAQAAAAAQAHAAEAAAAPAAAAAQAHAAEAAAAPAAEAAQAHAAEAAAAOAAEAAQAHAAEAAAANAAEAAQAHAAEAAAANAAIAAQAHAAEAAAAMAAIAAQAHAAEAAAAMAAMAAQAHAAEAAAALAAMAAQAHAAEAAAALAAQAAQAHAAEAAAAKAAQAAQAHAAEAAAAKAAUAAQAHAAEAAAAJAAUAAQAHAAEAAAAJAAYAAQAHAAEAAAAOAAIAAQAHAAEAAAANAAMAAQAHAAEAAAAMAAQAAQAHAAEAAAAPAP7/AQAHAAEAAAAPAP3/AQAHAAEAAAAOAP3/AQAHAAEAAAANAP7/AQAHAAEAAAANAP//AQAHAAEAAAASAPz/AQAHAAEAAAATAPz/AQAHAAEAAAATAPv/AQAHAAEAAAAUAPv/AQAHAAEAAAAUAPr/AQAHAAEAAAAVAPr/AQAHAAEAAAAVAPn/AQAHAAEAAAAWAPn/AQAHAAEAAAAVAPj/AQAHAAEAAAAUAPf/AQAHAAEAAAATAPf/AQADAAIAAAASAPf/AQADAAIAAAARAPf/AQADAAIAAAARAPj/AQADAAIAAAAQAP3/AQAHAAEAAAARAPz/AQAHAAEAAAARAPv/AQAHAAEAAAASAPv/AQAHAAEAAAASAPr/AQAHAAEAAAATAPr/AQAHAAEAAAATAPn/AQAHAAEAAAAQAPz/AQAHAAEAAAAPAPz/AQAHAAEAAAAOAP7/AQAHAAEAAAASAPn/AQADAAIAAAARAPr/AQAHAAEAAAAFAAMAAQAHAAEAAAANAPn/AQAFAAAAAAAMAPr/AQADAAIAAAALAPr/AQADAAIAAAAKAPr/AQAHAAEAAAAKAPv/AQADAAIAAAAJAPv/AQAHAAEAAAAIAPv/AQAHAAEAAAAHAPv/AQAHAAEAAAAHAPz/AQAHAAEAAAAGAPz/AQAHAAEAAAAGAP3/AQADAAIAAAAFAP3/AQAHAAEAAAAFAP7/AQADAAIAAAAEAP7/AQAHAAEAAAAEAP//AQADAAIAAAADAP//AQAHAAEAAAADAAAAAQADAAIAAAAEAAAAAQADAAIAAAAJAPz/AQADAAIAAAAIAPz/AQADAAIAAAAIAP3/AQADAAIAAAAHAP3/AQADAAIAAAAGAP7/AQADAAIAAAAFAP//AQADAAIAAAAEAAEAAQADAAIAAAAFAAAAAQADAAIAAAAGAP//AQADAAIAAAAHAP7/AQADAAIAAAALAPv/AQADAAIAAAAQAPn/AQADAAIAAAARAPn/AQADAAIAAAASAPj/AQADAAIAAAATAPj/AQADAAIAAAAMAPn/AQAFAAAAAAALAPb/AQAFAAAAAAAMAPb/AQAFAAAAAAANAPb/AQAFAAAAAAANAPX/AQAFAAAAAAAOAPX/AQAFAAAAAAAPAPX/AQAFAAAAAAAQAPX/AQAFAAAAAAAPAPT/AQAFAAAAAAAOAPT/AQAFAAAAAAANAPf/AQAFAAAAAAAOAPf/AQAFAAAAAAAOAPb/AQAFAAAAAAAMAPf/AQAFAAAAAAAMAPj/AQAFAAAAAAANAPj/AQAFAAAAAAAOAPj/AQAFAAAAAAAPAPf/AQAFAAAAAAAPAPb/AQAFAAAAAAALAPj/AQAFAAAAAAALAPn/AQAFAAAAAAAQAPf/AQAFAAAAAAAQAPb/AQAFAAAAAAARAPb/AQAFAAAAAAARAPX/AQAFAAAAAAARAPT/AQAFAAAAAAAQAPT/AQAFAAAAAAA=") -tile_set = SubResource("TileSet_oxvhj") -script = ExtResource("1_74o3d") - [node name="BuildingMapLayer" type="TileMapLayer" parent="VBoxContainer/Map"] tile_map_data = PackedByteArray("AAANAAMAAQABAAAAAAAFAP7/AQABAAAAAAAFAP3/AQAAAAAAAAAOAP3/AQABAAAAAAA=") tile_set = SubResource("TileSet_y3acc") @@ -165,11 +169,11 @@ tile_set = SubResource("TileSet_y3acc") [node name="CursorMapLayer" type="TileMapLayer" parent="VBoxContainer/Map"] visible = false tile_set = SubResource("TileSet_fax2j") -script = ExtResource("4_qib1m") +script = ExtResource("5_hkmvc") [node name="MapCursorTimer" type="Timer" parent="VBoxContainer/Map"] unique_name_in_owner = true -script = ExtResource("5_8wy1m") +script = ExtResource("6_p0er2") [node name="UI" type="CanvasLayer" parent="."] @@ -231,7 +235,7 @@ size_flags_vertical = 0 unique_name_in_owner = true layout_mode = 2 text = "Karte" -script = ExtResource("7_cooet") +script = ExtResource("7_r14cd") [node name="MapMenuContainer" type="VBoxContainer" parent="UI/MenuTop/MapMenu"] unique_name_in_owner = true @@ -261,7 +265,7 @@ item_3/text = "Speichern als" unique_name_in_owner = true layout_mode = 2 text = "Palette" -script = ExtResource("2_fax2j") +script = ExtResource("8_00k7a") [node name="MapName" type="Label" parent="UI/MenuTop"] unique_name_in_owner = true @@ -278,7 +282,7 @@ clip_contents = true custom_minimum_size = Vector2(32, 32) layout_mode = 2 size_flags_horizontal = 3 -texture_normal = ExtResource("9_e5fbg") +texture_normal = ExtResource("9_02xsc") ignore_texture_size = true stretch_mode = 4 @@ -288,7 +292,7 @@ clip_contents = true custom_minimum_size = Vector2(32, 32) layout_mode = 2 size_flags_horizontal = 3 -texture_normal = ExtResource("10_26b7d") +texture_normal = ExtResource("10_tt8tc") ignore_texture_size = true stretch_mode = 4 @@ -298,7 +302,7 @@ clip_contents = true custom_minimum_size = Vector2(32, 32) layout_mode = 2 size_flags_horizontal = 3 -texture_normal = ExtResource("11_33jd8") +texture_normal = ExtResource("11_op3rv") ignore_texture_size = true stretch_mode = 4 @@ -308,7 +312,7 @@ clip_contents = true custom_minimum_size = Vector2(32, 32) layout_mode = 2 size_flags_horizontal = 3 -texture_normal = ExtResource("12_myd42") +texture_normal = ExtResource("12_vfed4") ignore_texture_size = true stretch_mode = 4 @@ -321,13 +325,13 @@ unique_name_in_owner = true [node name="ResourceSaver" type="Node" parent="Data"] unique_name_in_owner = true -script = ExtResource("8_4uh5x") +script = ExtResource("13_pc813") [node name="Logic" type="Node" parent="."] [node name="Startup" type="Node" parent="Logic"] -script = ExtResource("8_y3acc") +script = ExtResource("14_j4tso") [node name="MapManager" type="Node" parent="Logic"] unique_name_in_owner = true -script = ExtResource("1_fax2j") +script = ExtResource("15_sjwfn") diff --git a/hexmapper/scenes/MainMap/map/map_layer_logic.gd b/hexmapper/scenes/MainMap/map/map_layer_logic.gd index 5fa8e52..6ff47f4 100644 --- a/hexmapper/scenes/MainMap/map/map_layer_logic.gd +++ b/hexmapper/scenes/MainMap/map/map_layer_logic.gd @@ -33,3 +33,40 @@ func _input(event: InputEvent): elif event.button_index == MOUSE_BUTTON_RIGHT: print("Click right") set_cell(cell_pos, -1) # Erase tile + + + +# Demo code from AI +# Demo funcs from AI +func _draw(): + var used_cells = %GroundMapLayer.get_used_cells() + + if used_cells.size() == 0: + return + + # Calculate bounds of used cells + var min_x = used_cells[0].x + var max_x = used_cells[0].x + var min_y = used_cells[0].y + var max_y = used_cells[0].y + + for cell in used_cells: + min_x = min(min_x, cell.x) + max_x = max(max_x, cell.x) + min_y = min(min_y, cell.y) + max_y = max(max_y, cell.y) + + var cell_size = %GroundMapLayer.tile_set.tile_size + + # Rectangle in pixels to draw border + var rect_pos = Vector2i(min_x, min_y) * cell_size + var rect_size = (Vector2i(max_x - min_x + 1, max_y - min_y + 1)) * cell_size + + print(rect_pos,rect_size) + + # Draw rectangle border + #draw_rect(Rect2(rect_pos, rect_size), Color(1, 0, 0), false, 2) + draw_rect(Rect2(Vector2(100,100), Vector2i(800,800)), Color(1, 0, 0), false, 2) + +#func _process(delta): +# queue_redraw() # Redraw continuously diff --git a/hexmapper/scenes/MainMap/map/map_manager.gd b/hexmapper/scenes/MainMap/map/map_manager.gd index 9c2ac13..a613bf8 100644 --- a/hexmapper/scenes/MainMap/map/map_manager.gd +++ b/hexmapper/scenes/MainMap/map/map_manager.gd @@ -188,6 +188,8 @@ func scroll_down(): func scroll_left(): var tile_width = ground_map.tile_set.tile_size.x camera_2d.position.x -= tile_width + %GroundMapLayer.update_internals() + %GroundMapLayer.queue_redraw() func scroll_right(): var tile_width = ground_map.tile_set.tile_size.x diff --git a/hexmapper/scenes/MainMap/resource_saver.gd b/hexmapper/scenes/MainMap/resource_saver.gd index c2e6f00..6103524 100644 --- a/hexmapper/scenes/MainMap/resource_saver.gd +++ b/hexmapper/scenes/MainMap/resource_saver.gd @@ -42,7 +42,11 @@ func loadMap(map_file_name): %GroundMapLayer.set_cell(cell_pos, source_id, atlas_coords) - ## TODO: Set TileMapLayer cells according to loaded info - #for cell in map.cells: -# #%GroundMapLayer.get_used_cells() = map.cells# -# print(cell) + # Set fake cells to ensure map size + #%GroundMapLayer.set_cell(Vector2i(-1000,-1000), 0, Vector2i(0,0)) + #%GroundMapLayer.set_cell(Vector2i(1000,-1000), 0, Vector2i(0,0)) + #%GroundMapLayer.set_cell(Vector2i(-1000,1000), 0, Vector2i(0,0)) + #%GroundMapLayer.set_cell(Vector2i(1000,1000), 0, Vector2i(0,0)) + %GroundMapLayer.update_internals() + %GroundMapLayer.queue_redraw() + #