minerender 2.1.0-alpha.45 → 2.1.0-alpha.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.js CHANGED
@@ -79706,10 +79706,34 @@ ${key}` : key;
79706
79706
  }
79707
79707
  });
79708
79708
 
79709
+ // src/model/fluid/fluidBlocks.json
79710
+ var fluidBlocks_default;
79711
+ var init_fluidBlocks = __esm({
79712
+ "src/model/fluid/fluidBlocks.json"() {
79713
+ fluidBlocks_default = {
79714
+ "minecraft:water": { kind: "water", levelProperty: "level", renderModel: false },
79715
+ "minecraft:lava": { kind: "lava", levelProperty: "level", renderModel: false },
79716
+ "minecraft:kelp": { kind: "water", renderModel: true },
79717
+ "minecraft:kelp_plant": { kind: "water", renderModel: true },
79718
+ "minecraft:seagrass": { kind: "water", renderModel: true },
79719
+ "minecraft:tall_seagrass": { kind: "water", renderModel: true },
79720
+ "minecraft:bubble_column": { kind: "water", renderModel: false }
79721
+ };
79722
+ }
79723
+ });
79724
+
79709
79725
  // src/model/fluid/FluidGeometry.ts
79726
+ function getBlockFluidState(key, state) {
79727
+ const rule = key && fluidRules[key.toNamespacedString()];
79728
+ if (rule) return {
79729
+ kind: rule.kind,
79730
+ level: rule.levelProperty ? Number(state?.[rule.levelProperty] ?? 0) : 0,
79731
+ renderModel: rule.renderModel
79732
+ };
79733
+ return state?.waterlogged === "true" ? { kind: "water", level: 0, renderModel: true } : void 0;
79734
+ }
79710
79735
  function getFluidKind(key, state) {
79711
- if (key?.namespace === "minecraft" && !key.type && (key.path === "water" || key.path === "lava")) return key.path;
79712
- return state?.waterlogged === "true" ? "water" : void 0;
79736
+ return getBlockFluidState(key, state)?.kind;
79713
79737
  }
79714
79738
  function ownHeight(sample) {
79715
79739
  const level = sample.level ?? 0;
@@ -79821,13 +79845,15 @@ ${key}` : key;
79821
79845
  geometry.setIndex(indices);
79822
79846
  return geometry;
79823
79847
  }
79824
- var HORIZONTAL, EPSILON;
79848
+ var fluidRules, HORIZONTAL, EPSILON;
79825
79849
  var init_FluidGeometry = __esm({
79826
79850
  "src/model/fluid/FluidGeometry.ts"() {
79827
79851
  init_dirname();
79828
79852
  init_buffer2();
79829
79853
  init_process2();
79830
79854
  init_three_module();
79855
+ init_fluidBlocks();
79856
+ fluidRules = fluidBlocks_default;
79831
79857
  HORIZONTAL = [[0, -1], [0, 1], [-1, 0], [1, 0]];
79832
79858
  EPSILON = 1e-3;
79833
79859
  }
@@ -82849,6 +82875,7 @@ ${key}` : key;
82849
82875
  createFluidGeometry: () => createFluidGeometry,
82850
82876
  createImage: () => createImage,
82851
82877
  estimateBytesUsed: () => estimateBytesUsed,
82878
+ getBlockFluidState: () => getBlockFluidState,
82852
82879
  getFluidKind: () => getFluidKind,
82853
82880
  interleaveAttributes: () => interleaveAttributes,
82854
82881
  isAssetKey: () => isAssetKey,
@@ -84358,7 +84385,7 @@ ${key}` : key;
84358
84385
  return getFluidKind(this.blockState.key, this.state);
84359
84386
  }
84360
84387
  get fluidLevel() {
84361
- return getFluidKind(this.blockState.key) ? Number(this.state.level ?? 0) : 0;
84388
+ return getBlockFluidState(this.blockState.key, this.state)?.level ?? 0;
84362
84389
  }
84363
84390
  /** Refreshes fluid surfaces from relative neighbors; standalone previews use air around the block. */
84364
84391
  async updateFluid(sample) {
@@ -84400,7 +84427,7 @@ ${key}` : key;
84400
84427
  }
84401
84428
  async recreateModels() {
84402
84429
  this.clearModels();
84403
- if (getFluidKind(this.blockState.key)) {
84430
+ if (getBlockFluidState(this.blockState.key, this.state)?.renderModel === false) {
84404
84431
  await this.updateFluid(this._fluidSampler);
84405
84432
  return;
84406
84433
  }