fix(camping): use air/liquid check for tent ground + legacy geo format
All checks were successful
Deploy Addons / deploy (push) Successful in 15s

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>
This commit is contained in:
2026-04-24 15:19:39 +01:00
parent 7e3432d868
commit ad5c365c2c
2 changed files with 5 additions and 19 deletions

View File

@@ -130,7 +130,7 @@ function tryPlaceTent(player) {
for (const g of groundCells) { for (const g of groundCells) {
const b = dim.getBlock(g); const b = dim.getBlock(g);
if (!b || !b.isSolid) { if (!b || b.isAir || b.isLiquid) {
const seen = b ? b.typeId : "unloaded"; const seen = b ? b.typeId : "unloaded";
player.sendMessage(`§c[Camping] §7Ground at §f${g.x},${g.y},${g.z}§7 is §f${seen}§7 — need solid ground there.`); player.sendMessage(`§c[Camping] §7Ground at §f${g.x},${g.y},${g.z}§7 is §f${seen}§7 — need solid ground there.`);
return false; return false;

View File

@@ -1,32 +1,18 @@
{ {
"format_version": "1.21.0", "format_version": "1.12.0",
"minecraft:geometry": [ "minecraft:geometry": [
{ {
"description": { "description": {
"identifier": "geometry.silverlabs.hammock_slab", "identifier": "geometry.silverlabs.hammock_slab",
"texture_width": 16, "texture_width": 16,
"texture_height": 16, "texture_height": 16
"visible_bounds_width": 2,
"visible_bounds_height": 1,
"visible_bounds_offset": [0, 0.25, 0]
}, },
"bones": [ "bones": [
{ {
"name": "root", "name": "slab",
"pivot": [0, 0, 0], "pivot": [0, 0, 0],
"cubes": [ "cubes": [
{ { "origin": [-8, 0, -8], "size": [16, 4, 16], "uv": [0, 0] }
"origin": [-8, 0, -8],
"size": [16, 4, 16],
"uv": {
"north": { "uv": [0, 12], "uv_size": [16, 4] },
"south": { "uv": [0, 12], "uv_size": [16, 4] },
"east": { "uv": [0, 12], "uv_size": [16, 4] },
"west": { "uv": [0, 12], "uv_size": [16, 4] },
"up": { "uv": [0, 0], "uv_size": [16, 16] },
"down": { "uv": [0, 0], "uv_size": [16, 16] }
}
}
] ]
} }
] ]