Fixed save and load Map
This commit is contained in:
parent
51bba3238b
commit
46741f7e52
2 changed files with 22 additions and 10 deletions
|
|
@ -1,4 +1,4 @@
|
|||
class_name MapData
|
||||
extends Resource
|
||||
|
||||
@export var ground_tiles:Array[Vector3i] = [] # x,y,tile_id
|
||||
@export var ground_tiles= []
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue