- camping: replace cube tent with A-frame slope panels (tent_panel_l/r) +
cardinal_direction permutations; vote-skip sleep that mixes
player.isSleeping bed sleepers with tent occupants and respects the
playersSleepingPercentage gamerule; new weathered-canvas texture.
- lobby: walk-through silverlabs:portal_field block (no collision,
translucent swirl, cross-plane geo) auto-placed above each portal frame;
invisible silverlabs:portal_label entity floats above each portal with
the destination world name; transfer detection now scans down through
the field to find the destination frame.
- postal: regenerate post_office and mailbox block textures so they fill
the full block face (brick + POST plaque, full red panel with slot/latch
/flag/rivets) instead of small sprites floating on transparent.
- dynamite + tow-boat: ship the addons (volumes wired into all four
worlds; enabled_packs registers them into Mya's world).
- art: build-textures.py extended; build-art-catalog.py added to project.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two live-testing regressions:
- block.isSolid is not a reliable member of the @minecraft/server Block
API in BDS 1.26 — it returned undefined, so !b.isSolid was always
true and every ground cell failed. Replaced with !b.isAir &&
!b.isLiquid (same predicate the clear-space check below already
uses), which correctly accepts grass/dirt/stone and only rejects air
or water/lava.
- The half-slab hammock geometry was silently rejected and rendered
invisible. The block-model parser wants the legacy 1.12.0 format
with simple "uv": [0, 0], not 1.21.0 with per-face UV objects.
Rewritten hammock_slab.geo.json to match the working
addon/spark_pet_RP/models/blocks/dragon_basket.geo.json format.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Hammock now uses a custom geometry.silverlabs.hammock_slab (8-voxel
tall half-slab instead of a full cube), matching its thin collision
box so the block reads visually as a hammock cradle, not a brick.
- Tent placement now projects the player's feet down to the nearest
solid block (up to 3 blocks) before picking the base Y, so mid-jump
fractional positions or standing-on-slab cases don't mis-place the
footprint one block too high.
- Failure messages now include the exact failing cell coordinates and
the block type that's in the way, so we can diagnose live pitch
attempts without guesswork.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The nested {"texture": "..."} form for minecraft:icon is rejected by the
1.21.0 item schema (BDS warned: "this member was found in the input,
but is not present in the Schema"), so tent and hammock had no inventory
icons at all. Switched to the plain-string form used by every other
addon in the repo.
While here, replaced the placeholder PNGs (a flat green triangle and a
red squiggle) with proper 16x16 pixel art:
- tent: A-frame canvas silhouette with doorway slit and ground line
- hammock: side-view sling with rope ends rising off-screen and a
sagging red-and-white striped fabric
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tent pitches over a 2x3 flat footprint and lets players skip to dawn
without touching their spawn point. Hammock strings between two posts
3-6 blocks apart (straight or diagonal, +/-1 block height) and keeps
hostile mobs at bay while occupied. Both are craftable (wool/sticks and
wool/string) and mounted in all four worlds.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>