fix: compilation errors that were caused by the dragonproperties refactoring

This commit is contained in:
Gerard Gascón 2025-04-11 23:52:31 +02:00
parent 46726bca32
commit 50bc814367
14 changed files with 66 additions and 207 deletions

View file

@ -29,7 +29,7 @@ var rng: RandomNumberGenerator = RandomNumberGenerator.new()
func _ready():
_library = DragonLibrary.new(hat_outfits, shirt_outfits, shoes_outfits)
_library = DragonLibrary.new()
_instantiator = DragonInstantiator.new(dragon_template, get_viewport(), get_window())
_save_load = SaveLoad.new()
@ -60,7 +60,7 @@ func _instantiate_random_dragon():
# TODO: Search for dragon and if is in library or in instantiated dragons continue next iteration
pass
var dragon_entity: DragonEntity = _generate_entity(spot.position, dragon)
_filled_spots[spot] = dragon_entity.id
_filled_spots[spot] = dragon_entity.properties.id
return
@ -72,12 +72,8 @@ func _get_free_spot() -> Node2D:
func _generate_entity(pos: Vector2, properties: DragonProperties) -> DragonEntity:
var id: int = rng.randi()
var hat: Texture2D = hat_outfits.get_texture(properties.hat)
var shirt: Texture2D = shirt_outfits.get_texture(properties.shirt)
var shoes: Texture2D = shoes_outfits.get_texture(properties.decor)
var dragon_name: String = properties.name
return _instantiate_dragon_ingame(pos, hat, shirt, shoes, dragon_name, id)
properties.id = rng.randi()
return _instantiate_dragon_ingame(pos, properties)
func move_window_to_bottom_right():
@ -94,11 +90,11 @@ func move_window_to_bottom_right():
DisplayServer.window_set_position(new_position)
func add_dragon(hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String):
var id: int = _library.add_dragon(dragon_name, hat, shirt, shoes)
func add_dragon(properties: DragonProperties):
var id: int = _library.add_dragon(properties)
for spot in dragon_spots:
if not _filled_spots.has(spot):
_instantiate_dragon_ingame(spot.position, hat, shirt, shoes, dragon_name, id)
_instantiate_dragon_ingame(spot.position, properties)
_filled_spots[spot] = id
break
@ -109,35 +105,31 @@ func _load_game():
_library.add_dragons(dragons)
for d: DragonProperties in dragons:
if d.position != Vector2i(0, 0):
var hat: Texture2D = hat_outfits.get_texture(d.hat)
var shirt: Texture2D = shirt_outfits.get_texture(d.shirt)
var shoes: Texture2D = shoes_outfits.get_texture(d.decor)
_pick_dragon(rng.randi(), d.position, hat, shirt, shoes, false)
_pick_dragon(d, false)
print(_save_load.contents_to_save)
func _instantiate_dragon_ingame(position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, dragon_name: String, id: int) -> DragonEntity:
func _instantiate_dragon_ingame(window_position: Vector2, properties: DragonProperties) -> DragonEntity:
var dragon: DragonEntity = dragon_ingame.instantiate()
dragon.dress(hat, shirt, shoes)
dragon.dress(properties)
add_child(dragon)
dragon.id = id
dragon.position = position
dragon.properties = properties
dragon.position = window_position
dragon.on_pick.connect(_pick_dragon)
dragon.on_quit.connect(_quit_dragon)
_instantiated_dragons[id] = dragon
_instantiated_dragons[properties.id] = dragon
return dragon
func _pick_dragon(id: int, position: Vector2, hat: Texture2D, shirt: Texture2D, shoes: Texture2D, drag: bool = true):
var dragon: Dragon = _instantiator.instantiate(position, hat, shirt, shoes, drag)
dragon.id = id
_dragon_entities[id] = dragon
func _pick_dragon(properties: DragonProperties, drag: bool = true):
var dragon: Dragon = _instantiator.instantiate(properties, drag)
_dragon_entities[properties.id] = dragon
dragon.place_back.connect(_dragon_place_back)
add_child(dragon)
_instantiated_dragons.erase(id)
_instantiated_dragons.erase(properties.id)
for spot in _filled_spots:
if _filled_spots[spot] == id:
if _filled_spots[spot] == properties.id:
_filled_spots.erase(spot)