From 38feb2195108dae9806a546da261cf000a6decc9 Mon Sep 17 00:00:00 2001 From: David Allemang Date: Fri, 3 Jul 2026 22:54:51 -0400 Subject: [PATCH] actually useful --- blockstate.js | 17 +++++- index.html | 155 +++++++++++++++----------------------------------- renderer.js | 99 +++++++++++++++++++++++++++----- world.js | 4 ++ 4 files changed, 149 insertions(+), 126 deletions(-) diff --git a/blockstate.js b/blockstate.js index e7c799ae..1a9a2f73 100644 --- a/blockstate.js +++ b/blockstate.js @@ -22,9 +22,17 @@ export function resolveBlock(state, properties) { // Handle standard variants const propStr = Object.keys(properties).sort().map(k => `${k}=${properties[k]}`).join(','); let variantDef = state.variants[propStr] || state.variants[""] || state.variants["normal"]; - if (Array.isArray(variantDef)) variantDef = variantDef[0]; // Take first random model - if (variantDef) parts.push(variantDef); + // --- NEW ERROR REPORTING --- + if (!variantDef) { + console.warn("Available states:", Object.keys(state.variants)); + throw new Error( + `Failed to resolve block variant.\nRequested: "${propStr}"\nCheck the console for available states.` + ); + } + + if (Array.isArray(variantDef)) variantDef = variantDef[0]; // Take first random model + parts.push(variantDef); } else if (state.multipart) { // Handle multipart for (const part of state.multipart) { @@ -34,9 +42,12 @@ export function resolveBlock(state, properties) { parts.push(applyDef); } } + + if (parts.length === 0) { + console.warn("Possibly malformed multipart block with no parts.") + } } - // Returns an array of definitions: [{ model: "block/wall_post", y: 90, uvlock: true }, ...] return parts; } diff --git a/index.html b/index.html index bf134aee..54b369ac 100644 --- a/index.html +++ b/index.html @@ -37,138 +37,73 @@