feat: v0.11.0 crafting integration
Stick pickup neben rock spawnt; 2 Recipes (rock_pick, rock_pile); C-key oeffnet Crafting-Panel via lib-core.crafting-display. Craft + Inspect Actions konsumieren notify-Channels fuer Erfolg + Detail-Modal. Deps: +crafting 0.1.0, +crafting-display 0.1.0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
39
README.md
39
README.md
@@ -8,9 +8,9 @@ callback, foot-body-orientation ("tactical twist"), scale-deformation walk
|
||||
cycle, and inheritance-decoupled foot sprites. End-to-end inventory pickup/drop
|
||||
demo: pick up a rock into a backpack container, drop it back into the world.
|
||||
|
||||
**Version:** 0.10.0
|
||||
**Version:** 0.11.0
|
||||
**Module-ID:** vagrant-skeleton
|
||||
**Requires:** lib-core.input >=0.4.0, lib-core.camera >=0.3.0, lib-core.render >=0.1.0, lib-core.maps >=0.1.2, lib-core.puppet >=0.4.4, lib-core.interaction >=0.1.0, lib-core.composition >=0.2.0, lib-core.actor >=0.1.0, lib-core.inventory-list >=0.1.0, lib-core.panel >=0.1.0, lib-core.inventory-list-display >=0.1.0, lib-core.notify >=0.1.0, lib-core.notify-display >=0.1.0, lib-core.world-overlay >=0.1.0, lib-asset.prototype-subterrain >=0.1.0
|
||||
**Requires:** lib-core.input >=0.4.0, lib-core.camera >=0.3.0, lib-core.render >=0.1.0, lib-core.maps >=0.1.2, lib-core.puppet >=0.4.4, lib-core.interaction >=0.1.0, lib-core.composition >=0.3.0, lib-core.actor >=0.1.0, lib-core.inventory-list >=0.1.0, lib-core.panel >=0.1.0, lib-core.inventory-list-display >=0.1.0, lib-core.notify >=0.1.0, lib-core.notify-display >=0.1.0, lib-core.world-overlay >=0.1.0, lib-core.crafting >=0.1.0, lib-core.crafting-display >=0.1.0, lib-asset.prototype-subterrain >=0.1.0
|
||||
**Tags:** test-chamber, puppet, walking-sim, interaction
|
||||
|
||||
## Topology
|
||||
@@ -23,25 +23,31 @@ demo: pick up a rock into a backpack container, drop it back into the world.
|
||||
- **W A S D** — direct movement (4-way, normalized for diagonals)
|
||||
- **Shift + WASD** — sprint (2x player speed + 2x walk-anim cadence)
|
||||
- **Mouse** — body + head look-at targets (same position, different smoothing)
|
||||
- **E** — interact: if within range of the rock, picks it up into the backpack
|
||||
- **E** — interact: if within range of the rock or stick, picks it up into the backpack
|
||||
- **Q** — quick-drop (LIFO): places the most-recently-added backpack item at player position (+30px right)
|
||||
- **Tab** — toggle inventory panel (Backpack contents)
|
||||
- **Right-Click on item row** (while panel open): context menu with **Drop** / **Inspect** options
|
||||
- **C** — toggle Crafting panel (lists known recipes; availability dimmed by inventory)
|
||||
- **Right-Click on item row** (inventory panel): context menu with **Drop** / **Inspect**
|
||||
- **Right-Click on recipe row** (crafting panel): context menu with **Craft** / **Inspect**
|
||||
- **L** — toggle game-log (chronological list of all events)
|
||||
- **Right-Click on item row → Inspect** — opens a modal Item Details panel (instead of console-only output)
|
||||
- **Pickup (E)** — shows "+1 <name>" floating above the player + toast at top-right + log entry
|
||||
- **Drop (right-click on item → Drop, or Q for LIFO quick-drop)** — toast at top-right + log entry
|
||||
- **Craft (right-click on recipe → Craft)** — consumes inputs from backpack, adds output, posts a success/failure toast
|
||||
- **ESC** — return to launcher
|
||||
|
||||
## Demo Walkthrough
|
||||
|
||||
The world contains three notable entities at startup:
|
||||
The world contains four notable entities at startup:
|
||||
|
||||
1. **Player** — spawns at (320, 240), controlled via WASD + mouse.
|
||||
2. **Backpack** — a visible sprite at (350, 400). Acts as a container (kind="list").
|
||||
Not directly interactable; it receives items via inventory.add.
|
||||
3. **Rock** — a standalone stone tile at (270, 400), 80px to the left of the backpack.
|
||||
Tagged "renderable" + "item"; starts visible on the ground.
|
||||
4. **Stick** — a placeholder pickup-item at (190, 400), 160px to the left of the backpack.
|
||||
Re-uses the `slot_04_straight` blob_rect_stone tile for its visual (Phase C-Q10
|
||||
pragmatic resolution — echtes Stick-Sprite folgt mit dem ersten atlas-baker-decals-Slice).
|
||||
|
||||
**Pickup flow:**
|
||||
- Walk toward the rock (it sits to the left of the backpack).
|
||||
@@ -115,6 +121,29 @@ Only one rock is spawned per session.
|
||||
|
||||
## CHANGELOG
|
||||
|
||||
### v0.11.0 — crafting integration
|
||||
|
||||
- **New: stick pickup-item** neben rock am Boden (Position 190,400 — 160px links
|
||||
vom Backpack). Re-uses `slot_04_straight` aus blob_rect_stone als Visual-
|
||||
Placeholder (Phase C-Q10).
|
||||
- **New: 2 Recipes** via `lib-core.crafting`:
|
||||
- **Stone Pick** = 1 rock + 1 stick → `rock_pick`
|
||||
- **Rock Pile** = 3 rocks → `rock_pile`
|
||||
- **New: C-Taste** öffnet ein Crafting-Panel via `lib-core.crafting-display`.
|
||||
Recipe-Zeilen sind dimmed, wenn inputs im Backpack fehlen.
|
||||
- **New: Right-Click auf Recipe-Row** → Context-Menu mit **Craft** + **Inspect**.
|
||||
Craft konsumiert inputs aus dem Backpack und legt das Output-Template als
|
||||
neues item-Entity in den Backpack. Inspect routet recipe details (name,
|
||||
description, inputs, output) zum notify-detail-channel.
|
||||
- **New: 3 item-templates** — `stick`, `rock_pick`, `rock_pile` — jedes mit
|
||||
player-facing properties (name, description, weight, volume,
|
||||
composition.<material>). Placeholder atlas-slots: stick=slot_04_straight,
|
||||
rock_pick=slot_05_tee_open, rock_pile=slot_13_solid.
|
||||
- **Deps**: +lib-core.crafting 0.1.0, +lib-core.crafting-display 0.1.0.
|
||||
composition bleibt auf 0.3.0 (gebumpt in Phase C.0).
|
||||
- **Notify events-Channel**: filter um `"craft"` erweitert, damit Craft-
|
||||
Erfolgs- und Fehler-Toasts im events-channel landen.
|
||||
|
||||
### v0.10.0 — notification system integration
|
||||
- **Inspect modal**: Inspect action replaced with `notify.post{tags={"inspect"}, ...}` routing
|
||||
to a modal detail-panel (`notify-display` detail-channel). Item name, description, weight,
|
||||
|
||||
Reference in New Issue
Block a user