feat: add deterministic goat routine
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Jajce Dunja Habitat 08
|
||||
|
||||
Captured: 2026-07-26
|
||||
|
||||
## File
|
||||
|
||||
- [shelter and clover pasture](jajce_dunja_habitat_08.png)
|
||||
|
||||
The 1280×720 Metal frame shows Dunja's small timber shelter, fixed feed bowl,
|
||||
straw bed, warm lantern, and adjacent fenced clover patch in the south-village
|
||||
clearing. The bowl now belongs to the static habitat instead of moving with
|
||||
the goat. Dunja also joins the existing `grass_interactors` group, so the
|
||||
camera-local grass shader bends around her real loaded position.
|
||||
|
||||
## Routine proof
|
||||
|
||||
The two habitat markers expose stable `dunja_shelter` and `dunja_pasture` IDs.
|
||||
When the saved routine tick becomes due, `AnimalCareSystem` alternates to the
|
||||
other site in stable-ID order without drawing RNG. The selected site ID, exact
|
||||
target position, current position, and next due tick remain in
|
||||
`AnimalStateRecord`.
|
||||
|
||||
`tests/animal_routine_vertical_slice_test.gd` proves the complete loaded-world
|
||||
contract:
|
||||
|
||||
- the authored endpoints are connected by the Jajce navigation map;
|
||||
- Dunja follows the returned path and reports authoritative position;
|
||||
- a mid-route schema-v11 save restores the same checksum, destination, and NPC
|
||||
RNG streams;
|
||||
- unloading and re-instantiating the goat scene rebinds that same moving state;
|
||||
- arrival promotes the destination to the current site exactly; and
|
||||
- hunger stops travel so feeding targets a stationary animal.
|
||||
|
||||
## Structure refinement
|
||||
|
||||
The reusable goat scene, visual script, habitat, and lookdev scene now live
|
||||
together under `world/animals/goat/`. Their file names use `snake_case`, while
|
||||
scene node names remain `PascalCase`. `docs/.gdignore` keeps documentation and
|
||||
review captures out of Godot's runtime import database, so baseline PNGs no
|
||||
longer need tracked `.import` sidecars.
|
||||
|
||||
## Capture command
|
||||
|
||||
```bash
|
||||
HOME="$PWD/logs/quality/godot_profile" \
|
||||
APPDATA="$PWD/logs/quality/godot_profile" \
|
||||
LOCALAPPDATA="$PWD/logs/quality/godot_profile" \
|
||||
/Applications/Godot.app/Contents/MacOS/Godot \
|
||||
--path "$PWD" --script res://tools/capture_jajce_lookdev.gd -- \
|
||||
--scene=res://world/animals/goat/dunja_lookdev.tscn \
|
||||
--output=res://docs/baselines/jajce_dunja_habitat_08.png \
|
||||
--hide-debug-labels
|
||||
```
|
||||
Reference in New Issue
Block a user