48 lines
1.6 KiB
GDScript
48 lines
1.6 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: %s" % [cell_count])
|
|
|
|
for cell_pos:Vector2i in %GroundMapLayer.get_used_cells():
|
|
#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])
|
|
#print(cell_pos)
|
|
#print(source_id)
|
|
#print(atlas_coords)
|
|
map_data.ground_tiles.append( [cell_pos, source_id, atlas_coords] )
|
|
|
|
ResourceSaver.save(map_data, absolute_map_filename)
|
|
print("Saved {0}".format([absolute_map_filename]))
|
|
|
|
func loadMap(map_file_name):
|
|
%GroundMapLayer.clear()
|
|
|
|
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]
|
|
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:
|
|
# #%GroundMapLayer.get_used_cells() = map.cells#
|
|
# print(cell)
|