minerender 2.1.0-alpha.45 → 2.1.0-alpha.47

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
@@ -33044,7 +33044,12 @@ var MineRender = (() => {
33044
33044
  const vertShader = `
33045
33045
  uniform bool SHADE;
33046
33046
 
33047
+ // Keep MSAA edge pixels from sampling outside the face's atlas region.
33048
+ #if __VERSION__ >= 300
33049
+ centroid out vec2 vUv;
33050
+ #else
33047
33051
  varying vec2 vUv;
33052
+ #endif
33048
33053
  varying vec3 vTint;
33049
33054
  varying float light;
33050
33055
  varying float lift;
@@ -33101,7 +33106,11 @@ var MineRender = (() => {
33101
33106
  uniform bool EMISSIVE;
33102
33107
  uniform float BRIGHTNESS;
33103
33108
 
33109
+ #if __VERSION__ >= 300
33110
+ centroid in vec2 vUv;
33111
+ #else
33104
33112
  varying vec2 vUv;
33113
+ #endif
33105
33114
  varying vec3 vTint;
33106
33115
  varying float light;
33107
33116
  varying float lift;
@@ -79706,10 +79715,34 @@ ${key}` : key;
79706
79715
  }
79707
79716
  });
79708
79717
 
79718
+ // src/model/fluid/fluidBlocks.json
79719
+ var fluidBlocks_default;
79720
+ var init_fluidBlocks = __esm({
79721
+ "src/model/fluid/fluidBlocks.json"() {
79722
+ fluidBlocks_default = {
79723
+ "minecraft:water": { kind: "water", levelProperty: "level", renderModel: false },
79724
+ "minecraft:lava": { kind: "lava", levelProperty: "level", renderModel: false },
79725
+ "minecraft:kelp": { kind: "water", renderModel: true },
79726
+ "minecraft:kelp_plant": { kind: "water", renderModel: true },
79727
+ "minecraft:seagrass": { kind: "water", renderModel: true },
79728
+ "minecraft:tall_seagrass": { kind: "water", renderModel: true },
79729
+ "minecraft:bubble_column": { kind: "water", renderModel: false }
79730
+ };
79731
+ }
79732
+ });
79733
+
79709
79734
  // src/model/fluid/FluidGeometry.ts
79735
+ function getBlockFluidState(key, state) {
79736
+ const rule = key && fluidRules[key.toNamespacedString()];
79737
+ if (rule) return {
79738
+ kind: rule.kind,
79739
+ level: rule.levelProperty ? Number(state?.[rule.levelProperty] ?? 0) : 0,
79740
+ renderModel: rule.renderModel
79741
+ };
79742
+ return state?.waterlogged === "true" ? { kind: "water", level: 0, renderModel: true } : void 0;
79743
+ }
79710
79744
  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;
79745
+ return getBlockFluidState(key, state)?.kind;
79713
79746
  }
79714
79747
  function ownHeight(sample) {
79715
79748
  const level = sample.level ?? 0;
@@ -79821,13 +79854,15 @@ ${key}` : key;
79821
79854
  geometry.setIndex(indices);
79822
79855
  return geometry;
79823
79856
  }
79824
- var HORIZONTAL, EPSILON;
79857
+ var fluidRules, HORIZONTAL, EPSILON;
79825
79858
  var init_FluidGeometry = __esm({
79826
79859
  "src/model/fluid/FluidGeometry.ts"() {
79827
79860
  init_dirname();
79828
79861
  init_buffer2();
79829
79862
  init_process2();
79830
79863
  init_three_module();
79864
+ init_fluidBlocks();
79865
+ fluidRules = fluidBlocks_default;
79831
79866
  HORIZONTAL = [[0, -1], [0, 1], [-1, 0], [1, 0]];
79832
79867
  EPSILON = 1e-3;
79833
79868
  }
@@ -82849,6 +82884,7 @@ ${key}` : key;
82849
82884
  createFluidGeometry: () => createFluidGeometry,
82850
82885
  createImage: () => createImage,
82851
82886
  estimateBytesUsed: () => estimateBytesUsed,
82887
+ getBlockFluidState: () => getBlockFluidState,
82852
82888
  getFluidKind: () => getFluidKind,
82853
82889
  interleaveAttributes: () => interleaveAttributes,
82854
82890
  isAssetKey: () => isAssetKey,
@@ -84358,7 +84394,7 @@ ${key}` : key;
84358
84394
  return getFluidKind(this.blockState.key, this.state);
84359
84395
  }
84360
84396
  get fluidLevel() {
84361
- return getFluidKind(this.blockState.key) ? Number(this.state.level ?? 0) : 0;
84397
+ return getBlockFluidState(this.blockState.key, this.state)?.level ?? 0;
84362
84398
  }
84363
84399
  /** Refreshes fluid surfaces from relative neighbors; standalone previews use air around the block. */
84364
84400
  async updateFluid(sample) {
@@ -84400,7 +84436,7 @@ ${key}` : key;
84400
84436
  }
84401
84437
  async recreateModels() {
84402
84438
  this.clearModels();
84403
- if (getFluidKind(this.blockState.key)) {
84439
+ if (getBlockFluidState(this.blockState.key, this.state)?.renderModel === false) {
84404
84440
  await this.updateFluid(this._fluidSampler);
84405
84441
  return;
84406
84442
  }