feat: add stylized villager presentation

This commit is contained in:
Rijad Zuzo
2026-07-09 23:47:46 +02:00
parent 8419116008
commit 39989002ca
20 changed files with 395 additions and 32 deletions
+17
View File
@@ -27,6 +27,15 @@ func _run() -> void:
body.material_override.albedo_color == profession_definition.visual_color,
"NPC body color should come from its profession definition"
)
_check(
(
body.mesh is CylinderMesh
and visual.has_node("Head")
and visual.has_node("ArmLeft")
and visual.has_node("LegRight/Foot")
),
"NPC presentation should use a readable multi-part villager silhouette"
)
_check(
visual.get_node("ProfessionProp").mesh != null
and profession_definition.display_name in visual.get_node("ProfessionLabel").text,
@@ -74,6 +83,14 @@ func _run() -> void:
npc.remove_inventory(SimulationIds.RESOURCE_FOOD, 1.0)
manager.emit_signal("npc_inventory_changed", npc, SimulationIds.RESOURCE_FOOD, 0.0)
_check(not carried_food.visible, "Deposited or eaten food should be hidden")
var carried_wood: Node3D = visual.get_node("CarriedWood")
_check(not carried_wood.visible, "NPC should begin without carried logs")
npc.add_inventory(SimulationIds.RESOURCE_WOOD, 2.0)
manager.emit_signal("npc_inventory_changed", npc, SimulationIds.RESOURCE_WOOD, 2.0)
_check(carried_wood.visible, "Carried wood should show a visible log bundle")
npc.remove_inventory(SimulationIds.RESOURCE_WOOD, 2.0)
manager.emit_signal("npc_inventory_changed", npc, SimulationIds.RESOURCE_WOOD, 0.0)
_check(not carried_wood.visible, "Deposited wood should hide the log bundle")
var resource_state: ResourceStateRecord = manager.get_resource_state(&"berry_bush_01")
npc.set_task(SimulationIds.ACTION_GATHER_FOOD)