New basic/improved/advanced detectors (8/16/32 block range). Aim and
right-click to ping the nearest ore on the view ray; pitch-coded sound
and action-bar text show distance and ore type. Any ore within 4 blocks
of a silverlabs:private_chest is hidden — chests act as faraday cages
so claimed bases stay private from neighbours' detectors.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bedrock mirrors the panel geometry across the block's local X axis
relative to the .geo.json, so the player's column needs panel_r and
the adjacent column needs panel_l for the roof seam to peak correctly.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 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>
The tent's scan-down-for-ground loop still used b.isSolid (undefined
in BDS), so it always fell through the break conditions and
decremented feetY by 3 blocks before checking ground. That's why
clicking grass reported "dirt" and stone reported "dirt/stone from
underneath the surface". Replaced both solid checks with
!isAir && !isLiquid like the main ground check.
Also added a cinematic third-person camera when climbing into the
hammock (ease 0.8s out_sine), cleared on exit. Gives the player a
"lying back, can see myself" view while resting.
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>
Three fixes for feedback from live testing:
1) Tent pitch check required 3 blocks of air above the footprint but
the tent is only 2 blocks tall. Relaxed clearance to match the
actual structure height (h <= 1).
2) Hammock block had a 4px-tall collision box which pushed the player
on TOP of the cloth. Reduced collision to 1px so the player stands
inside the hammock cell. Selection box stays at 4px for easy click.
3) Climbing in now actually locks the player: applies slowness 255,
weakness, mining_fatigue for the duration, saves the anchor point
in a dynamic property, and the upkeep loop re-teleports them if
they drift off. Sneak-exit nudges them ~1.2 blocks forward of the
cradle so they don't immediately re-enter.
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>
Original 5x2 pattern (T T / TWWWT) exceeded the vanilla crafting grid
and BDS rejected it with "Adding a recipe larger than 3x3". Replaced
with a 3x3 layout: strings on the four corners as suspension points,
wool row across the middle as the cloth.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Bedrock 1.26 rejects { context } variants as "malformed unlocking context"
and [] as "empty unlocking ingredient array". The unlock field must contain
at least one ingredient item; players who have that item unlock the recipe.
Using minecraft:crafting_table as the unlock ingredient makes semantic sense
(all 26 recipes already require the crafting_table tag) and effectively means
"visible once the player has any crafting table".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Follow-up to 4324882. The { "context": "always_unlocked" } form triggered
"malformed unlocking context" on 1.26-series Bedrock (AlwaysUnlocked pascal
form fared no better). Empty-array form is the universally accepted "recipe
always known" shape. This unblocks mc-lobby which was crashing on boot.
Also reverts block format_version on mailbox.json + smart_crafting_table.json
to 1.21.0 — every other working block in the repo uses that, so the prior
1.21.60 choice was unnecessary.
- 19 dragon + portal recipes (spark_pet_BP, lobby_transfer_BP): unlock -> []
- 7 other recipes touching unlock { context: ... }: same
- 2 block files: format_version 1.21.60 -> 1.21.0
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>