feat(vagrant): v0.14.0 — TC_Basics first-consumer + UI item icons

ADR-0054 Item-Visual-Identity validated end-to-end.

World-sprite migration off the proprietary Subterrain world-atlas:
  - Bed + Bench promoted to composition-entities with renderable tag;
    rendered via the existing draw_entities path (the hardcoded
    draw_sprite_transform calls for furniture are gone).
  - Backpack sprite source: Subterrain backpack_001 → TC_Basics sack1.
  - Stick visual: blob_rect_stone slot_04_straight → TC_Basics log_pile1.
  - rock_pick crafted-output visual: blob_rect_stone slot_05_tee_open →
    TC_Basics spade.
  - rock + rock_pile + workbench stay on blob_rect_stone (no TC_Basics
    equivalent yet).

Scale resolution is now atlas-level (no more module-side constants):
M.init reads tc_meta.atlas_meta.pixels_per_meter and divides into
PROJECT_PIXELS_PER_METER (128 per puppet shoulder anchor) to derive
tc_scale, applied per-entity via lib-core.render v0.3.0's sprite_
scale property.

UI item icons via ADR-0054 §3 Konsum:
  - Backpack + Workbench-Inventory rows now show item icons via the
    inventory-list-display v0.2.0 default resolver (fallback chain
    icon_atlas → sprite_atlas), fit-to-bounds.
  - Backpack-Crafting + Workbench-Crafting panels get an icon column
    via crafting-display v0.3.0; vagrant supplies a small recipe-
    output → {atlas, uv} lookup (craft_icons) and wires it as
    icon_resolver on both widgets.

Deps cascaded: lib-core.render 0.2.0 → 0.3.0, lib-core.inventory-
list-display 0.1.1 → 0.2.0, lib-core.crafting-display 0.2.0 → 0.3.0,
lib-asset.prototype-tc-basics 0.1.0 → 0.3.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
calic
2026-06-21 11:45:24 +02:00
parent 088e14aeb2
commit c3290058c1
3 changed files with 161 additions and 61 deletions

View File

@@ -1,24 +1,24 @@
{
"id": "vagrant-skeleton",
"version": "0.13.0",
"version": "0.14.0",
"kind": "module",
"api": "^0.1",
"ci_frames": 60,
"entry_point": "init.lua",
"asset_aliases": {
"subterrain_player": "lib-asset.prototype-subterrain",
"subterrain_world": "lib-asset.prototype-subterrain",
"blob_testbench": "lib-asset.prototype-blob-geom",
"blob_rect_stone": "lib-asset.prototype-blob-geom"
"blob_rect_stone": "lib-asset.prototype-blob-geom",
"tc_basics": "lib-asset.prototype-tc-basics"
},
"deps": [
{"id": "lib-core.input", "version": "0.4.0"},
{"id": "lib-core.camera", "version": "0.3.0"},
{"id": "lib-core.render", "version": "0.2.0"},
{"id": "lib-core.render", "version": "0.3.0"},
{"id": "lib-core.composition", "version": "0.3.0"},
{"id": "lib-core.actor", "version": "0.1.0"},
{"id": "lib-core.panel", "version": "0.4.0"},
{"id": "lib-core.inventory-list-display", "version": "0.1.1"},
{"id": "lib-core.inventory-list-display", "version": "0.2.0"},
{"id": "lib-core.notify", "version": "0.1.0"},
{"id": "lib-core.notify-display", "version": "0.1.0"},
{"id": "lib-core.world-overlay", "version": "0.1.0"},
@@ -27,8 +27,9 @@
{"id": "lib-core.interaction", "version": "0.1.0"},
{"id": "lib-core.inventory-list", "version": "0.1.0"},
{"id": "lib-core.crafting", "version": "0.2.0"},
{"id": "lib-core.crafting-display", "version": "0.2.0"},
{"id": "lib-core.crafting-display", "version": "0.3.0"},
{"id": "lib-asset.prototype-subterrain", "version": "0.2.0"},
{"id": "lib-asset.prototype-blob-geom", "version": "0.1.0"}
{"id": "lib-asset.prototype-blob-geom", "version": "0.1.0"},
{"id": "lib-asset.prototype-tc-basics", "version": "0.3.0"}
]
}