diff --git a/hexmapper/resources/map_data.gd b/hexmapper/resources/map_data.gd index 800acf7..de5af89 100644 --- a/hexmapper/resources/map_data.gd +++ b/hexmapper/resources/map_data.gd @@ -1,4 +1,4 @@ class_name MapData extends Resource -@export var ground_tiles:Array[Vector3i] = [] # x,y,tile_id +@export var ground_tiles= [] diff --git a/hexmapper/scenes/MainMap/resource_saver.gd b/hexmapper/scenes/MainMap/resource_saver.gd index 7d59844..7545c59 100644 --- a/hexmapper/scenes/MainMap/resource_saver.gd +++ b/hexmapper/scenes/MainMap/resource_saver.gd @@ -12,25 +12,37 @@ func saveMap(absolute_map_filename:String): var cell_count:int = len(%GroundMapLayer.get_used_cells()) print("Number of used cells: %s" % [cell_count]) - for cell_pos in %GroundMapLayer.get_used_cells(): + for cell_pos:Vector2i in %GroundMapLayer.get_used_cells(): var tile_id = %GroundMapLayer.get_cell_source_id(cell_pos) - map_data.ground_tiles.append( Vector3i(cell_pos.x, cell_pos.y, tile_id)) + 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]) + print(cell_pos) + print(source_id) + print(atlas_coords) + + map_data.ground_tiles.append( [cell_pos, source_id, atlas_coords] ) + print(">>", map_data.ground_tiles) + print(map_data.ground_tiles) ResourceSaver.save(map_data, absolute_map_filename) print("Saved {0}".format([absolute_map_filename])) func loadMap(map_file_name): - # TODO: Clear TilemapLayers before loading %GroundMapLayer.clear() print("loadMap: {0}".format([map_file_name])) - #var map:MapData = load(map_file_name) var map:MapData = ResourceLoader.load(map_file_name) - for tile_info:Vector3i in map.ground_tiles: - print(tile_info) - var cell_pos:Vector2i = Vector2i(tile_info[0], tile_info[1]) - var tile_id:int = tile_info[2] - %GroundMapLayer.set_cell(cell_pos, tile_id) + for tile_info in map.ground_tiles: + var cell_pos = tile_info[0] + var source_id:int = tile_info[1] + var atlas_coords = tile_info[2] + #var tile_id = tile_info.tile_id + + print("Setting tile") + print(cell_pos, ',', source_id, ',', atlas_coords) + + %GroundMapLayer.set_cell(cell_pos, source_id, atlas_coords) ## TODO: Set TileMapLayer cells according to loaded info #for cell in map.cells: