gros dev pre proto

* Changement de l'UI, ajouts de l'inspecteur par carte et changement de police
* Ajout d'un semblant d'exploration
* Ajout de la sauvegarde des entités
* Restructuration mineure de l'arborescence
* Fix divers et réécriture des textes
This commit is contained in:
2025-10-31 13:52:45 +01:00
parent ceae7af589
commit ed7a8bcb6e
167 changed files with 2665 additions and 1201 deletions

View File

@@ -9,17 +9,43 @@ var player : Player
@onready var entity_container : Node2D = create_entity_container()
func add_entity(e : Node2D, container : Node2D = entity_container):
if e.get_parent():
e.get_parent().remove_child(e)
func instantiate_entity(s: PackedScene, entity_position : Vector2):
var entity = s.instantiate() as Node2D
if "terrain" in e:
e.terrain = self
add_entity(entity, entity_position)
if e is Player:
player = e
entity.global_position = entity_position
container.add_child(e)
func add_entity(entity : Node2D, entity_global_position : Vector2 = Vector2.ZERO, container : Node2D = entity_container):
if entity.get_parent():
if entity.get_parent().get_parent() is Terrain:
entity.get_parent().get_parent().remove_entity(entity)
else:
entity.get_parent().remove_child(entity)
if "terrain" in entity:
entity.terrain = self
if entity is Player:
player = entity
container.add_child(entity)
entity.global_position = entity_global_position
func save_entities() -> Array[EntityData]:
var saved_entities_data : Array[EntityData] = []
for e in entity_container.get_children():
if e is Entity:
var saved_data : EntityData = e.save()
if saved_data:
saved_entities_data.append(saved_data)
return saved_entities_data
func load_entities(saved_entities_data : Array[EntityData]):
for save_data in saved_entities_data:
var entity = save_data.load()
if entity:
add_entity(entity, save_data.position)
func remove_entity(e : Node2D, container : Node2D = entity_container):
if e.get_parent() == entity_container:
@@ -33,14 +59,17 @@ func create_entity_container() -> Node2D:
if import_entities_from_node:
for child in import_entities_from_node.get_children():
add_entity(child, container)
add_entity(
child,
child.global_position + (container.global_position - import_entities_from_node.global_position),
container
)
return container
func drop_item(item: Item, item_position : Vector2, random_displacement_factor = 0) -> ItemObject:
var item_object = ItemObject.new(item)
add_entity(item_object)
item_object.global_position = item_position
add_entity(item_object, item_position)
if random_displacement_factor:
var displacement_direction = randf_range(0,2*PI)