feat(0.6.0): Backpack as composition-Entity (Phase A.4)

Refactor: Backpack ist composition-Entity mit Atlas-UV-Render-Pfad.
Template at top-level declares sprite_atlas + sprite_uv.{x,y,w,h} +
position. create() in M.init nach atlas-load setzt reale UV-Werte aus
state.furniture_uvs["backpack_001"].

render.draw_entities{tag="renderable"} ersetzt den direkten
draw_sprite_transform-Call für Backpack. interaction.register liest
position aus entity-properties.

Bed + Bench bleiben hardcoded Atlas-Furniture — kein
Interaction-Trigger, kein Demo-Pflicht zur Entity-Promotion in
Phase A. Phase B (container-on-bed) oder Phase D wäre der Trigger.

Atlas-Texture wird doppelt geladen (state.world_tex für bed/bench,
render-internal-cache für backpack) — ineffizient aber nicht
kaputt; single-handle-merge ist späterer Slice.

Bumps: render 0.1.0 → 0.2.0; +composition v0.1.0; module 0.4.4 → 0.6.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Axel Meyer
2026-06-09 13:51:02 +00:00
parent 77550149cb
commit c976353637
2 changed files with 69 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
{
"id": "vagrant-skeleton",
"version": "0.4.4",
"version": "0.6.0",
"kind": "module",
"api": "^0.1",
"ci_frames": 60,
@@ -14,7 +14,8 @@
"deps": [
{"id": "lib-core.input", "version": "0.4.0"},
{"id": "lib-core.camera", "version": "0.3.0"},
{"id": "lib-core.render", "version": "0.1.0"},
{"id": "lib-core.render", "version": "0.2.0"},
{"id": "lib-core.composition", "version": "0.1.0"},
{"id": "lib-core.maps","version":"0.5.7"},
{"id": "lib-core.puppet", "version": "0.5.0"},
{"id": "lib-core.interaction", "version": "0.1.0"},