feat: add player resource node harvesting

This commit is contained in:
2026-07-04 19:47:31 +02:00
parent f5e7326d49
commit 326df51cbe
6 changed files with 117 additions and 18 deletions
+21 -5
View File
@@ -208,24 +208,40 @@ func notify_npc_navigation_failed(npc_id: int) -> void:
func notify_npc_target_unavailable(npc_id: int) -> void:
notify_npc_navigation_failed(npc_id)
func harvest_resource_node(node: ResourceNode) -> float:
if node == null or not node.can_player_use:
return 0.0
var extracted := node.extract()
if extracted <= 0.0:
return 0.0
village.apply_resource_delta(node.resource_id, extracted)
village_changed.emit(village)
if DEBUG_LOGS:
print("[SimulationManager] Player extracted ", extracted, " ", node.resource_id, " from ", node.node_id)
return extracted
func eat_food(amount: float) -> void:
village.food -= amount
village.apply_resource_delta(&"food", -amount)
village_changed.emit(village)
func add_food(amount: float) -> void:
village.food += amount
village.apply_resource_delta(&"food", amount)
village_changed.emit(village)
func add_wood(amount: float) -> void:
village.wood += amount
village.apply_resource_delta(&"wood", amount)
village_changed.emit(village)
func add_safety(amount: float) -> void:
village.safety = clamp(village.safety + amount, 0.0, 100.0)
village.apply_resource_delta(&"safety", amount)
village_changed.emit(village)
func add_knowledge(amount: float) -> void:
village.knowledge += amount
village.apply_resource_delta(&"knowledge", amount)
village_changed.emit(village)
func get_starving_count() -> int: