sprint cleanup: corpse_cremated signal, recipe_count, save_system
D: Workbench._last_consumed_ingredient transient field captures the carried item before queue_free so cremation_pyre.on_craft_complete can emit corpse_cremated with the real ref. Falls back to proximity scan. Pawn._on_corpse_cremated null-guarded. E: removed redundant r.ingredient_count = 0 from recipe_catalog. Field kept on Recipe for save round-trip compat; nothing reads it functionally. F: save_system._spawn_workbench simplified from 15 lines to 6 — let from_dict do all field restoration. Fixed workbench.from_dict to call _complete() instead of bare _completed=true, which was skipping light enable + beauty register + designation clear. Stale ingredient1/2 buffering comment in job_runner._tick_craft fixed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2afca16299
commit
cc6d60d044
6 changed files with 29 additions and 18 deletions
|
|
@ -693,7 +693,7 @@ func _on_corpse_buried(corpse, marker) -> void:
|
|||
## Phase 14 — fires when EventBus.corpse_cremated is emitted (CremationPyre).
|
||||
## Gives the cremated_friend thought if this pawn was nearby (8 tiles).
|
||||
func _on_corpse_cremated(corpse, pyre) -> void:
|
||||
if pyre == null:
|
||||
if corpse == null or pyre == null:
|
||||
return
|
||||
var pyre_tile: Vector2i = pyre.tile if pyre.get("tile") != null else Vector2i(-999, -999)
|
||||
var dist: int = abs(pyre_tile.x - tile.x) + abs(pyre_tile.y - tile.y)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue