hexmapper/hexmapper/scenes/MainMap/resource_saver.gd

37 lines
1.2 KiB
GDScript

extends Node
# Funktionen werden über signals ausgelöst
func _ready():
pass
func saveMap(absolute_map_filename:String):
print("Triggered ResourceSaver.saveMap(%s)" % [absolute_map_filename])
var map_data = MapData.new()
var cell_count:int = len(%GroundMapLayer.get_used_cells())
print("Number of used cells: %i" % [cell_count])
for cell_pos 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))
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:
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)
## TODO: Set TileMapLayer cells according to loaded info
#for cell in map.cells:
# #%GroundMapLayer.get_used_cells() = map.cells#
# print(cell)