From d0ae5807fd6f192e7678a456ea67fcc5ef54a227 Mon Sep 17 00:00:00 2001 From: Torsten Date: Sun, 16 Nov 2025 13:05:55 +0100 Subject: [PATCH] Karte speichern als... --- hexmapper/scenes/MainMap/map/map_manager.gd | 29 ++++++++++++++++----- hexmapper/scenes/MainMap/resource_saver.gd | 5 ++-- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/hexmapper/scenes/MainMap/map/map_manager.gd b/hexmapper/scenes/MainMap/map/map_manager.gd index da0468c..c5dce64 100644 --- a/hexmapper/scenes/MainMap/map/map_manager.gd +++ b/hexmapper/scenes/MainMap/map/map_manager.gd @@ -4,17 +4,19 @@ extends Node @onready var ground_map = %GroundMapLayer @onready var map_menu_container = %MapMenuContainer -@onready var ui_logic = %UILogic - var content = null var coord2tilename = {} var tilename2coord = {} +signal selected_mapname_for_saving + func _ready(): load_csv() ground_map.hex_clicked.connect(_on_hex_clicked) + selected_mapname_for_saving.connect(_on_save_map) + var atlas_texture = AtlasTexture.new() var atlas_image = Image.new() @@ -112,11 +114,24 @@ func save_map_as(): %FileDialog.file_selected.connect(func(full_filename): if not full_filename.ends_with(".tres"): full_filename = full_filename + ".tres" - print("Selected file: ", full_filename) + #print("Mapname to save as: ", full_filename) var filename:String = full_filename.split("/")[-1] - print("Shortname: ", filename) - Global.settings.current_map_name = filename - #save_settings() + #print("Shortname: ", filename) - #emit_signal("selected_map_for_loading", full_filename) + var dir_elems = full_filename.split("/") + var sublist= dir_elems.slice(0, dir_elems.size() - 1) + var dir_str = "/".join(sublist) + + #var full_map_name = Global.settings.current_project_dir + "/" + Global.settings.current_map_name + Global.settings.current_project_dir = dir_str + Global.settings.current_map_name = filename + + %MapName.text=filename + + ResourceSaver.save(Global.settings, "user://settings.tres") + + emit_signal("selected_mapname_for_saving", full_filename) ) + +func _on_save_map(full_filename): + %ResourceSaver.saveMap(full_filename) diff --git a/hexmapper/scenes/MainMap/resource_saver.gd b/hexmapper/scenes/MainMap/resource_saver.gd index 0518654..c2e6f00 100644 --- a/hexmapper/scenes/MainMap/resource_saver.gd +++ b/hexmapper/scenes/MainMap/resource_saver.gd @@ -13,7 +13,8 @@ func saveMap(absolute_map_filename:String): print("Number of used cells: %s" % [cell_count]) for cell_pos:Vector2i in %GroundMapLayer.get_used_cells(): - var tile_id = %GroundMapLayer.get_cell_source_id(cell_pos) + #var tile_id = %GroundMapLayer.get_cell_source_id(cell_pos) Letzen Endes nicht benötigt, weil die atlas_coords verwendet werden + var atlas_coords = %GroundMapLayer.get_cell_atlas_coords(cell_pos) var source_id = %GroundMapLayer.get_cell_source_id(cell_pos) #print("Storing %s,%s,%s" % [cell_pos, source_id, atlas_coords]) @@ -28,7 +29,7 @@ func saveMap(absolute_map_filename:String): func loadMap(map_file_name): %GroundMapLayer.clear() - print("loadMap: {0}".format([map_file_name])) + print("ResourceSave.loadMap: {0}".format([map_file_name])) var map:MapData = ResourceLoader.load(map_file_name) for tile_info in map.ground_tiles: var cell_pos = tile_info[0]