minerender 2.1.0-beta.6 → 2.1.0-beta.8

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.
Files changed (128) hide show
  1. package/README.md +10 -1
  2. package/dist/browser/esm/Materials.mjs +3 -1
  3. package/dist/browser/esm/Materials.mjs.map +1 -1
  4. package/dist/browser/esm/Ticker.mjs +3 -1
  5. package/dist/browser/esm/Ticker.mjs.map +1 -1
  6. package/dist/browser/esm/UVMapper.mjs +9 -9
  7. package/dist/browser/esm/UVMapper.mjs.map +1 -1
  8. package/dist/browser/esm/armor/Armor.mjs +84 -0
  9. package/dist/browser/esm/armor/Armor.mjs.map +1 -0
  10. package/dist/browser/esm/armor/index.mjs +3 -0
  11. package/dist/browser/esm/armor/index.mjs.map +1 -0
  12. package/dist/browser/esm/assets/AssetDefaults.mjs +8 -0
  13. package/dist/browser/esm/assets/AssetDefaults.mjs.map +1 -0
  14. package/dist/browser/esm/assets/AssetKey.mjs +1 -1
  15. package/dist/browser/esm/assets/AssetKey.mjs.map +1 -1
  16. package/dist/browser/esm/assets/AssetLoader.mjs +5 -5
  17. package/dist/browser/esm/assets/AssetLoader.mjs.map +1 -1
  18. package/dist/browser/esm/assets/Assets.mjs +1 -5
  19. package/dist/browser/esm/assets/Assets.mjs.map +1 -1
  20. package/dist/browser/esm/assets/BlockEntities.mjs +5 -1
  21. package/dist/browser/esm/assets/BlockEntities.mjs.map +1 -1
  22. package/dist/browser/esm/assets/BlockStates.mjs +1 -1
  23. package/dist/browser/esm/assets/BlockStates.mjs.map +1 -1
  24. package/dist/browser/esm/assets/Entities.mjs +40 -12
  25. package/dist/browser/esm/assets/Entities.mjs.map +1 -1
  26. package/dist/browser/esm/assets/MineRenderData.mjs +8 -17
  27. package/dist/browser/esm/assets/MineRenderData.mjs.map +1 -1
  28. package/dist/browser/esm/assets/ModelTextures.mjs +13 -7
  29. package/dist/browser/esm/assets/ModelTextures.mjs.map +1 -1
  30. package/dist/browser/esm/assets/Models.mjs +1 -1
  31. package/dist/browser/esm/assets/Models.mjs.map +1 -1
  32. package/dist/browser/esm/assets/_fonts/Unihex.mjs +5 -3
  33. package/dist/browser/esm/assets/_fonts/Unihex.mjs.map +1 -1
  34. package/dist/browser/esm/assets/_versions/DatasetVersions.mjs +22 -0
  35. package/dist/browser/esm/assets/_versions/DatasetVersions.mjs.map +1 -0
  36. package/dist/browser/esm/assets/index.mjs +1 -0
  37. package/dist/browser/esm/assets/index.mjs.map +1 -1
  38. package/dist/browser/esm/assets/source/HostedAssetSource.mjs +7 -8
  39. package/dist/browser/esm/assets/source/HostedAssetSource.mjs.map +1 -1
  40. package/dist/browser/esm/cache/Caching.mjs +8 -0
  41. package/dist/browser/esm/cache/Caching.mjs.map +1 -1
  42. package/dist/browser/esm/entity/scene/EntityObject.mjs +31 -5
  43. package/dist/browser/esm/entity/scene/EntityObject.mjs.map +1 -1
  44. package/dist/browser/esm/env/browser/BrowserCache.mjs +3 -3
  45. package/dist/browser/esm/env/browser/BrowserCache.mjs.map +1 -1
  46. package/dist/browser/esm/env/browser/BrowserEnv.mjs +11 -4
  47. package/dist/browser/esm/env/browser/BrowserEnv.mjs.map +1 -1
  48. package/dist/browser/esm/image/ImageLoader.mjs +3 -3
  49. package/dist/browser/esm/image/ImageLoader.mjs.map +1 -1
  50. package/dist/browser/esm/index.browser.d.mts +191 -22
  51. package/dist/browser/esm/index.browser.mjs.map +1 -1
  52. package/dist/browser/esm/index.mjs +1 -0
  53. package/dist/browser/esm/index.mjs.map +1 -1
  54. package/dist/browser/esm/inspector/SceneInspector.mjs +3 -3
  55. package/dist/browser/esm/inspector/SceneInspector.mjs.map +1 -1
  56. package/dist/browser/esm/instance/InstanceManager.mjs +4 -4
  57. package/dist/browser/esm/instance/InstanceManager.mjs.map +1 -1
  58. package/dist/browser/esm/model/ItemGlint.mjs +7 -6
  59. package/dist/browser/esm/model/ItemGlint.mjs.map +1 -1
  60. package/dist/browser/esm/model/block/scene/BlockObject.mjs +19 -6
  61. package/dist/browser/esm/model/block/scene/BlockObject.mjs.map +1 -1
  62. package/dist/browser/esm/model/multiblock/StructureParser.mjs +7 -4
  63. package/dist/browser/esm/model/multiblock/StructureParser.mjs.map +1 -1
  64. package/dist/browser/esm/model/scene/ModelObject.mjs +4 -4
  65. package/dist/browser/esm/model/scene/ModelObject.mjs.map +1 -1
  66. package/dist/browser/esm/nbt/NBTHelper.mjs +5 -2
  67. package/dist/browser/esm/nbt/NBTHelper.mjs.map +1 -1
  68. package/dist/browser/esm/renderer/Renderer.mjs +4 -2
  69. package/dist/browser/esm/renderer/Renderer.mjs.map +1 -1
  70. package/dist/browser/esm/renderer/SceneObject.mjs +0 -6
  71. package/dist/browser/esm/renderer/SceneObject.mjs.map +1 -1
  72. package/dist/browser/esm/request/Requests.mjs +3 -3
  73. package/dist/browser/esm/request/Requests.mjs.map +1 -1
  74. package/dist/browser/esm/scene/SceneDocument.mjs +35 -5
  75. package/dist/browser/esm/scene/SceneDocument.mjs.map +1 -1
  76. package/dist/browser/esm/scene/SceneDocumentLoader.mjs +14 -3
  77. package/dist/browser/esm/scene/SceneDocumentLoader.mjs.map +1 -1
  78. package/dist/browser/esm/skin/SkinGeometries.mjs +4 -1
  79. package/dist/browser/esm/skin/SkinGeometries.mjs.map +1 -1
  80. package/dist/browser/esm/skin/SkinPart.mjs +2 -0
  81. package/dist/browser/esm/skin/SkinPart.mjs.map +1 -1
  82. package/dist/browser/esm/skin/SkinTextureCoordinates.mjs +11 -1
  83. package/dist/browser/esm/skin/SkinTextureCoordinates.mjs.map +1 -1
  84. package/dist/browser/esm/skin/SkinTextures.mjs +1 -1
  85. package/dist/browser/esm/skin/SkinTextures.mjs.map +1 -1
  86. package/dist/browser/esm/skin/Skins.mjs +6 -4
  87. package/dist/browser/esm/skin/Skins.mjs.map +1 -1
  88. package/dist/browser/esm/skin/scene/SkinObject.mjs +119 -7
  89. package/dist/browser/esm/skin/scene/SkinObject.mjs.map +1 -1
  90. package/dist/browser/esm/texture/PalettedTextures.mjs +46 -0
  91. package/dist/browser/esm/texture/PalettedTextures.mjs.map +1 -0
  92. package/dist/browser/esm/texture/TextureLoader.mjs +4 -2
  93. package/dist/browser/esm/texture/TextureLoader.mjs.map +1 -1
  94. package/dist/browser/esm/texture/index.mjs +1 -0
  95. package/dist/browser/esm/texture/index.mjs.map +1 -1
  96. package/dist/browser/esm/util/log.mjs +75 -0
  97. package/dist/browser/esm/util/log.mjs.map +1 -1
  98. package/dist/browser/esm/util/performance.mjs.map +1 -1
  99. package/dist/browser/esm/util/util.mjs +0 -2
  100. package/dist/browser/esm/util/util.mjs.map +1 -1
  101. package/dist/browser/esm/world/Chunk.mjs +70 -38
  102. package/dist/browser/esm/world/Chunk.mjs.map +1 -1
  103. package/dist/browser/esm/world/MineRenderWorld.mjs +187 -60
  104. package/dist/browser/esm/world/MineRenderWorld.mjs.map +1 -1
  105. package/dist/browser/esm/world/SectionMesh.mjs +65 -9
  106. package/dist/browser/esm/world/SectionMesh.mjs.map +1 -1
  107. package/dist/browser/esm/world/SectionModels.mjs +21 -15
  108. package/dist/browser/esm/world/SectionModels.mjs.map +1 -1
  109. package/dist/browser/esm/world/SectionWorker.mjs +8 -2
  110. package/dist/browser/esm/world/SectionWorker.mjs.map +1 -1
  111. package/dist/browser/esm/world/WorldStreamer.mjs +129 -34
  112. package/dist/browser/esm/world/WorldStreamer.mjs.map +1 -1
  113. package/dist/browser/esm/world/_culling/BlockCulling.mjs +1 -1
  114. package/dist/browser/esm/world/_culling/BlockCulling.mjs.map +1 -1
  115. package/dist/browser/esm/world/_entities/WorldEntities.mjs +3 -1
  116. package/dist/browser/esm/world/_entities/WorldEntities.mjs.map +1 -1
  117. package/dist/browser/index.d.ts +191 -22
  118. package/dist/browser/index.js +4461 -3648
  119. package/dist/browser/index.js.map +1 -1
  120. package/dist/bundle.js +13482 -12651
  121. package/dist/bundle.js.map +1 -1
  122. package/dist/node/index.d.mts +179 -21
  123. package/dist/node/index.d.ts +179 -21
  124. package/dist/node/index.js +4495 -3666
  125. package/dist/node/index.js.map +1 -1
  126. package/dist/node/index.mjs +4412 -3586
  127. package/dist/node/index.mjs.map +1 -1
  128. package/package.json +2 -1
@@ -251,6 +251,15 @@ interface EntityLayer {
251
251
  render?: EntityRenderMode;
252
252
  /** Label of the state colour that multiplies the texture, from the pass that selected this draw. */
253
253
  tint?: string;
254
+ /** Fixed sRGB colour that multiplies the texture. A tint label with a colour in `EntityObjectOptions.tints` takes precedence. */
255
+ color?: number;
256
+ /** Recolours pixels matching `key` with the colour at the same index in `permutation`, as vanilla's `paletted_permutations` does. */
257
+ palette?: {
258
+ key: AssetKey;
259
+ permutation: AssetKey;
260
+ };
261
+ /** Draws vanilla's armor enchantment glint over this draw. */
262
+ glint?: boolean;
254
263
  }
255
264
  /** Selected entity data returned by {@link Entities.getEntity} for rendering. */
256
265
  interface EntityModel extends EntityLayer {
@@ -785,7 +794,10 @@ declare function toRadians(degrees: number): number;
785
794
  declare function toDegrees(radians: number): number;
786
795
  /** Resolves after a delay in milliseconds. */
787
796
  declare function sleep(timeout: number): Promise<void>;
788
- /** Yields to the next macrotask without timer clamping when the platform supports it. */
797
+ /**
798
+ * Yields to the next macrotask without timer clamping when the platform supports it.
799
+ * Not `scheduler.yield()`: Chrome runs its continuations ahead of rendering, so chained yields delay frames.
800
+ */
789
801
  declare function yieldToEventLoop(): Promise<void>;
790
802
  /** Reduces an angle modulo 360, retaining a negative sign for negative inputs. */
791
803
  declare function clampRotationDegrees(deg: number): number;
@@ -915,6 +927,33 @@ declare class MinecraftFaceUV {
915
927
  */
916
928
  declare function shutdown(): void;
917
929
 
930
+ type ArmorSlot = "head" | "chest" | "legs" | "feet";
931
+ interface ArmorTrim {
932
+ /** `trim_pattern` registry ID, such as `minecraft:sentry`. */
933
+ pattern: string;
934
+ /** `trim_material` registry ID, such as `minecraft:iron`. */
935
+ material: string;
936
+ }
937
+ /** An equipment asset ID, such as `minecraft:diamond`, or the asset with the worn item's state. */
938
+ type ArmorPiece = string | {
939
+ asset: string;
940
+ /** `dyed_color` as an RGB integer. */
941
+ color?: number;
942
+ trim?: ArmorTrim;
943
+ /** Draws the enchantment glint, as an enchanted item does. */
944
+ glint?: boolean;
945
+ };
946
+ type ArmorSet = Partial<Record<ArmorSlot, ArmorPiece>>;
947
+ /** Resolves humanoid equipment assets into armor draws. */
948
+ declare class Armor {
949
+ /** Loads 1.21.4+ armor in SkinObject's frame, or returns undefined when no layer draws. */
950
+ static getEntity(armor: ArmorSet): Promise<Maybe<EntityModel>>;
951
+ private static identifier;
952
+ }
953
+
954
+ declare const DEFAULT_ROOT = "https://assets.mcasset.cloud/1.21.11";
955
+ declare const DEFAULT_NAMESPACE = "minecraft";
956
+
918
957
  /** Runs queued tasks in bounded batches. Idle executors do not keep a timer running. */
919
958
  declare class BatchedExecutor {
920
959
  readonly interval: number;
@@ -932,6 +971,34 @@ declare class BatchedExecutor {
932
971
  }
933
972
  type Task<T = unknown> = () => T | Promise<T>;
934
973
 
974
+ /** Severity of a log message, from most to least verbose. */
975
+ type LogLevel = "debug" | "info" | "warn" | "error";
976
+ /** The lowest level that is printed, or `"silent"` to print nothing. */
977
+ type LogThreshold = LogLevel | "silent";
978
+ /** Receives each message that passes the threshold. `args` are the logger call's arguments, without a tag. */
979
+ type LogHandler = (level: LogLevel, namespace: string, args: unknown[]) => void;
980
+ interface LoggingOptions {
981
+ /** Threshold for namespaces without an override. Starts at `"warn"`. */
982
+ level?: LogThreshold;
983
+ /** Thresholds by logger name, such as `{ UVMapper: "debug" }`. Replaces earlier overrides. */
984
+ namespaces?: Record<string, LogThreshold>;
985
+ }
986
+ interface Logger {
987
+ debug(...args: unknown[]): void;
988
+ info(...args: unknown[]): void;
989
+ warn(...args: unknown[]): void;
990
+ error(...args: unknown[]): void;
991
+ }
992
+ /** Global log settings for every MineRender logger. */
993
+ declare class Logging {
994
+ /** Updates the given settings and keeps the others. */
995
+ static configure(options: LoggingOptions): void;
996
+ /** Sends messages to `handler` instead of the console. Call without an argument to restore console output. */
997
+ static setHandler(handler?: LogHandler): void;
998
+ }
999
+ /** Creates a logger whose messages are tagged and filtered as `namespace`. */
1000
+ declare function logger(namespace: string): Logger;
1001
+ /** @deprecated Use {@link logger}. */
935
1002
  declare function prefix(prefix?: string): string;
936
1003
 
937
1004
  /** Rotates geometry in place around the element's origin. The supplied angle is in degrees. */
@@ -943,8 +1010,11 @@ declare function addWireframeToObject(obj: Object3D, color?: number, w?: number)
943
1010
  /** Adds edge and axis helpers to a mesh and returns a function that disposes their resources. */
944
1011
  declare function addWireframeToMesh(geo: BufferGeometry, mesh: Mesh, color?: number, w?: number): () => void;
945
1012
 
1013
+ /** @deprecated Unused by MineRender. */
946
1014
  declare function captureException(e: any, ...extra: any[]): void;
1015
+ /** @deprecated Unused by MineRender. */
947
1016
  declare function timingStart(marker: string): void;
1017
+ /** @deprecated Unused by MineRender. */
948
1018
  declare function timingEnd(marker: string): void;
949
1019
 
950
1020
  declare function sha1(str: string): string;
@@ -1059,8 +1129,6 @@ type MultipartCondition = Record<string, string> | {
1059
1129
  AND: MultipartCondition[];
1060
1130
  };
1061
1131
 
1062
- declare const DEFAULT_ROOT = "https://assets.mcasset.cloud/1.21.11";
1063
- declare const DEFAULT_NAMESPACE = "minecraft";
1064
1132
  /** Convenience accessors for model and blockstate loading. */
1065
1133
  declare class Assets {
1066
1134
  /**
@@ -1229,9 +1297,16 @@ declare function sampleEntityAnimation(animation: EntityAnimation, time: number,
1229
1297
 
1230
1298
  /** Loads entity and block-entity geometry, texture selections, and animation clips from the dataset. */
1231
1299
  declare class Entities {
1300
+ /**
1301
+ * Resolves `root` (default: the active version). Uses the exact dataset when published or when the
1302
+ * version is not a release; otherwise selects the nearest published release, like {@link MineRenderData.resolve}.
1303
+ * Textures keep the requested root.
1304
+ */
1305
+ static getDatasetRoot(root?: string): Promise<Maybe<string>>;
1232
1306
  /** Lists model paths in the `minecraft` namespace, including subdirectories and excluding `.json`. */
1233
1307
  static getEntityList(): Promise<string[]>;
1234
- private static getModelFile;
1308
+ /** @internal */
1309
+ static getModelFile(modelKey: BasicAssetKey): Promise<Maybe<EntityModelFile>>;
1235
1310
  /** Returns selectable geometry-layer names, or an empty list when the model is missing. */
1236
1311
  static getLayerList(modelKey: BasicAssetKey): Promise<string[]>;
1237
1312
  /** The dataset's extra draws on top of `main`; their `when` labels are the states `EntityModelOptions.when` can enable. */
@@ -1645,6 +1720,7 @@ declare class EntityObject extends SceneObject {
1645
1720
  age: number;
1646
1721
  private readonly animationPlayers;
1647
1722
  private readonly partPoses;
1723
+ private glint?;
1648
1724
  constructor(entity: EntityModel, options?: Partial<EntityObjectOptions>);
1649
1725
  /** An optional shared material replaces texture loading for every selected draw; its owner retains disposal. */
1650
1726
  init(material?: Material): Promise<void>;
@@ -1702,7 +1778,7 @@ interface EntityObjectOptions extends SceneObjectOptions {
1702
1778
  * By default the model's dataset transform is used, or the flip for models without one.
1703
1779
  */
1704
1780
  flip?: boolean;
1705
- /** Colours for the dataset's tint labels, e.g. `{ wool_color: 0xf9801d }`; a pass whose label is absent stays untinted. */
1781
+ /** Colours for the dataset's tint labels, e.g. `{ wool_color: 0xf9801d }`; an absent label uses the draw's fixed colour, if any. */
1706
1782
  tints?: Record<string, ColorRepresentation>;
1707
1783
  /** Cube faces by layer key; omitted layers draw all six faces. */
1708
1784
  faces?: Record<string, CubeFace[]>;
@@ -1753,6 +1829,7 @@ declare class BlockObject extends SceneObject {
1753
1829
  */
1754
1830
  private createBlockEntities;
1755
1831
  private placeEntities;
1832
+ private placeEntity;
1756
1833
  get isOccluding(): boolean;
1757
1834
  private getModelMatrix;
1758
1835
  private getModelCullMask;
@@ -1875,7 +1952,9 @@ declare enum SkinPart {
1875
1952
  LEFT_SLEEVE = "leftSleeve",
1876
1953
  RIGHT_TROUSERS = "rightTrousers",
1877
1954
  LEFT_TROUSERS = "leftTrousers",
1878
- CAPE = "cape"
1955
+ CAPE = "cape",
1956
+ LEFT_EAR = "leftEar",
1957
+ RIGHT_EAR = "rightEar"
1879
1958
  }
1880
1959
  declare const SKIN_PARTS: SkinPart[];
1881
1960
 
@@ -1891,6 +1970,9 @@ declare class SkinObject extends SceneObject {
1891
1970
  private skinMaterial?;
1892
1971
  private skinLoad;
1893
1972
  private capeLoad;
1973
+ private armorLoad;
1974
+ private armorObjects;
1975
+ private model?;
1894
1976
  constructor(options?: DeepPartial<SkinObjectOptions>);
1895
1977
  init(): Promise<void>;
1896
1978
  protected removeMeshes(): void;
@@ -1906,9 +1988,20 @@ declare class SkinObject extends SceneObject {
1906
1988
  setSkinTexture(src: string): Promise<void>;
1907
1989
  /** Load a cape texture in the selected layout, or pass undefined to remove the cape. */
1908
1990
  setCapeTexture(src?: string, layout?: CapeLayout): Promise<void>;
1991
+ /**
1992
+ * Loads armor from 1.21.4+ equipment assets, or pass undefined to remove it.
1993
+ * Each piece moves with the skin part it covers.
1994
+ */
1995
+ setArmor(armor?: ArmorSet): Promise<void>;
1909
1996
  /** Select the arm model, or pass undefined to use texture detection. */
1910
1997
  setSlim(slim?: boolean): void;
1911
1998
  private updateSlim;
1999
+ /** Shows or hides deadmau5's ears, which vanilla draws from the skin texture at 24,0 for that player only. */
2000
+ setEars(ears: boolean): void;
2001
+ private updateEars;
2002
+ /** Turns the player upside down, as vanilla does for players named Dinnerbone or Grumm. */
2003
+ setUpsideDown(upsideDown: boolean): void;
2004
+ private updateUpsideDown;
1912
2005
  /** Select the texture layout, or pass undefined to detect it from image dimensions. */
1913
2006
  setLegacy(legacy?: boolean): Promise<void>;
1914
2007
  dispose(): void;
@@ -1920,6 +2013,10 @@ interface SkinObjectOptions extends SceneObjectOptions {
1920
2013
  slim?: boolean;
1921
2014
  /** Forces the legacy (`true`) or modern (`false`) texture layout. Omit it to detect the layout. */
1922
2015
  legacy?: boolean;
2016
+ /** Draws deadmau5's ears from the skin texture. Vanilla shows them only for that player name. */
2017
+ ears?: boolean;
2018
+ /** Turns the player upside down. Vanilla does this for players named Dinnerbone or Grumm. */
2019
+ upsideDown?: boolean;
1923
2020
  }
1924
2021
 
1925
2022
  /** Text appearance set on a GUI text layer or overridden by an individual text run. */
@@ -2192,7 +2289,7 @@ declare class ItemGlint {
2192
2289
  static create(owner: SceneObject, baseMap?: Texture, root?: string, entityMeshes?: readonly {
2193
2290
  mesh: Mesh;
2194
2291
  parent?: Mesh;
2195
- }[]): Promise<ItemGlint>;
2292
+ }[], kind?: "item" | "armor"): Promise<ItemGlint>;
2196
2293
  /**
2197
2294
  * Maps glint before model centering and display transforms. Ordinary sprites approximate Minecraft's shared atlas density.
2198
2295
  * @internal
@@ -2461,11 +2558,21 @@ interface Palette {
2461
2558
  };
2462
2559
  }
2463
2560
  interface PaletteEntry {
2464
- Name: {
2561
+ Name?: {
2465
2562
  type: "string";
2466
2563
  value: string;
2467
2564
  };
2468
- Properties: {
2565
+ id?: {
2566
+ type: "string";
2567
+ value: string;
2568
+ };
2569
+ Properties?: {
2570
+ type: "compound";
2571
+ value: {
2572
+ [property: string]: PalettePropertyValue;
2573
+ };
2574
+ };
2575
+ properties?: {
2469
2576
  type: "compound";
2470
2577
  value: {
2471
2578
  [property: string]: PalettePropertyValue;
@@ -2693,6 +2800,8 @@ interface UnihexFile {
2693
2800
 
2694
2801
  /** Shared in-memory caches for loaded assets and render resources. Persistent stores are managed separately. */
2695
2802
  declare class Caching {
2803
+ /** Cached in place of a missing asset. The caches drop `undefined` results, which would request the asset again. */
2804
+ static readonly MISSING: false;
2696
2805
  private static _generation;
2697
2806
  /** Changes when shared assets are cleared, so derived caches can discard their old values. */
2698
2807
  static get generation(): number;
@@ -2705,7 +2814,7 @@ declare class Caching {
2705
2814
  static readonly materialCache: SimpleCache<CacheKey, Material>;
2706
2815
  static readonly boxMeshCache: SimpleCache<CacheKey, Mesh>;
2707
2816
  static readonly textureAssetCache: AsyncLoadingCache<CacheKey, TextureAsset>;
2708
- static readonly textureMetaCache: AsyncLoadingCache<CacheKey, MinecraftTextureMeta>;
2817
+ static readonly textureMetaCache: AsyncLoadingCache<CacheKey, MinecraftTextureMeta | typeof Caching.MISSING>;
2709
2818
  static readonly rawModelCache: AsyncLoadingCache<CacheKey, Model>;
2710
2819
  static readonly mergedModelCache: AsyncLoadingCache<CacheKey, Model>;
2711
2820
  static readonly modelTextureAtlasCache: AsyncLoadingCache<CacheKey, TextureAtlas>;
@@ -2713,12 +2822,15 @@ declare class Caching {
2713
2822
  static readonly listAssetCache: AsyncLoadingCache<CacheKey, ListAsset>;
2714
2823
  static readonly blockTintCache: AsyncLoadingCache<CacheKey, number>;
2715
2824
  static readonly entityModelCache: AsyncLoadingCache<CacheKey, EntityModelFile>;
2716
- static readonly entityTextureCache: AsyncLoadingCache<CacheKey, AssetKey>;
2825
+ static readonly entityTextureCache: AsyncLoadingCache<CacheKey, AssetKey | typeof Caching.MISSING>;
2717
2826
  static readonly entityAnimationCache: AsyncLoadingCache<CacheKey, EntityAnimationFile>;
2718
2827
  static readonly blockEntityIndexCache: AsyncLoadingCache<CacheKey, BlockEntityIndex>;
2828
+ static readonly entityDatasetVersionCache: AsyncLoadingCache<CacheKey, string>;
2719
2829
  static readonly unihexCache: AsyncLoadingCache<CacheKey, UnihexFile>;
2720
2830
  static readonly fontCache: AsyncLoadingCache<CacheKey, BitmapFont>;
2721
2831
  static readonly bannerPatternCache: AsyncLoadingCache<CacheKey, BannerPattern>;
2832
+ static readonly equipmentCache: AsyncLoadingCache<CacheKey, unknown>;
2833
+ static readonly trimCache: AsyncLoadingCache<CacheKey, unknown>;
2722
2834
  static readonly mineRenderDataCache: AsyncLoadingCache<CacheKey, unknown>;
2723
2835
  static readonly usernameUuidCache: AsyncLoadingCache<CacheKey, string>;
2724
2836
  static readonly biomeCache: AsyncLoadingCache<CacheKey, Biome>;
@@ -3402,9 +3514,12 @@ interface SceneSkinDefinition extends SceneObjectDefinitionBase {
3402
3514
  texture: string;
3403
3515
  layout?: CapeLayout;
3404
3516
  };
3517
+ armor?: ArmorSet;
3405
3518
  options?: {
3406
3519
  slim?: boolean;
3407
3520
  legacy?: boolean;
3521
+ ears?: boolean;
3522
+ upsideDown?: boolean;
3408
3523
  };
3409
3524
  /** Mesh names from SkinPart; hiding a base part does not hide its overlay. */
3410
3525
  hiddenParts?: string[];
@@ -3451,8 +3566,17 @@ interface SceneEntityDefinition extends SceneObjectDefinitionBase {
3451
3566
  wireframe?: boolean;
3452
3567
  tints?: Record<string, string | number>;
3453
3568
  };
3454
- animation?: {
3569
+ /** Plays one named clip or blends clips with weights defaulting to 1, without normalization. */
3570
+ animation?: ({
3455
3571
  name: string;
3572
+ clips?: never;
3573
+ } | {
3574
+ name?: never;
3575
+ clips: {
3576
+ name: string;
3577
+ weight?: number;
3578
+ }[];
3579
+ }) & {
3456
3580
  loop?: boolean;
3457
3581
  speed?: number;
3458
3582
  time?: number;
@@ -3600,6 +3724,14 @@ declare class Colormaps {
3600
3724
  static getColor(kind: "grass" | "foliage" | "dry_foliage", origin?: AssetKey, temperature?: number, downfall?: number): Promise<number>;
3601
3725
  }
3602
3726
 
3727
+ /** Recolours textures using indexed pairs of palette images. */
3728
+ declare class PalettedTextures {
3729
+ /** Loads a texture with a palette permutation, sharing the resulting canvas between callers. */
3730
+ static get(texture: AssetKey, key: AssetKey, permutation: AssetKey): Promise<Maybe<ExtractableImageData>>;
3731
+ /** @internal */
3732
+ static permute(pixels: Uint8ClampedArray, key: Uint8ClampedArray, permutation: Uint8ClampedArray): Uint8ClampedArray;
3733
+ }
3734
+
3603
3735
  /** Creates sRGB textures immediately and fills their pixels after asynchronous image loading. */
3604
3736
  declare class TextureLoader {
3605
3737
  private static readonly failedTextures;
@@ -3963,6 +4095,8 @@ declare class SectionModels {
3963
4095
  pick(position?: Readonly<TripleArray>): SectionMeshTemplate[];
3964
4096
  biomeTint?: boolean;
3965
4097
  } | undefined>;
4098
+ /** Starts loading the state's models and atlases so a later `prepareState` with the same properties finds them loaded. */
4099
+ preload(blockState: BlockState, properties?: BlockStateProperties): Promise<void>;
3966
4100
  private state;
3967
4101
  /** Returns the shared still/flow atlas used by per-block fluid objects. */
3968
4102
  fluidAtlas(kind: FluidKind, root?: string): Promise<TextureAtlas>;
@@ -4036,7 +4170,7 @@ declare class Chunk<SectionMeshing extends boolean = false> {
4036
4170
  private ambientOcclusionCells?;
4037
4171
  private readonly blockChanges;
4038
4172
  private biomeChange?;
4039
- constructor(scene: MineRenderScene, x: number, y: number, z: number, onBlocksChanged?: ((positions: Vector3[]) => Promise<void>) | undefined, sectionModels?: SectionModels | undefined, neighborCell?: ((x: number, y: number, z: number) => number) | undefined, biomeAt?: ((x: number, y: number, z: number) => Maybe<string>) | undefined, onBiomesChanged?: ((biomes?: readonly string[]) => Promise<void>) | undefined, lightAt?: ((x: number, y: number, z: number) => number) | undefined, onLightCleared?: (() => Promise<void>) | undefined, ambientLight?: number, biomeBlend?: (() => BiomeBlend | undefined) | undefined);
4173
+ constructor(scene: MineRenderScene, x: number, y: number, z: number, onBlocksChanged?: ((positions: Vector3[], deferCulling?: boolean) => Promise<void>) | undefined, sectionModels?: SectionModels | undefined, neighborCell?: ((x: number, y: number, z: number) => number) | undefined, biomeAt?: ((x: number, y: number, z: number) => Maybe<string>) | undefined, onBiomesChanged?: ((biomes?: readonly string[]) => Promise<void>) | undefined, lightAt?: ((x: number, y: number, z: number) => number) | undefined, onLightCleared?: (() => Promise<void>) | undefined, ambientLight?: number, biomeBlend?: (() => BiomeBlend | undefined) | undefined);
4040
4174
  /** Finds the nearest owned block hit across sections, testing each shared mesh once. */
4041
4175
  static raycast<SectionMeshing extends boolean>(chunks: Iterable<Chunk<SectionMeshing>>, raycaster: Raycaster): WorldBlockIntersection | undefined;
4042
4176
  getBlockAt(x: number, y: number, z: number): Maybe<BlockInfo<SectionMeshing>>;
@@ -4048,11 +4182,14 @@ declare class Chunk<SectionMeshing extends boolean = false> {
4048
4182
  getBiomeAt(pos: TripleArray): Maybe<string>;
4049
4183
  /** Copies 64 biome IDs in x + z * 4 + y * 16 order and refreshes placed blocks. Omit the array to clear biome data. */
4050
4184
  setBiomes(biomes?: readonly string[]): Promise<void>;
4051
- /** Rebuilds biome-tinted blocks while preserving hidden blocks and unrelated render objects. */
4185
+ /**
4186
+ * Rebuilds biome-tinted blocks while preserving hidden blocks and unrelated render objects.
4187
+ * The owning world can defer neighbor culling until all affected chunks are refreshed.
4188
+ */
4052
4189
  refreshBiomes(columns?: readonly {
4053
4190
  x: number;
4054
4191
  z: number;
4055
- }[]): Promise<void>;
4192
+ }[], deferCulling?: boolean): Promise<void>;
4056
4193
  private refreshBiomeBlocks;
4057
4194
  /**
4058
4195
  * Places a block at integer world block coordinates. Pass `undefined` to remove it.
@@ -4063,7 +4200,7 @@ declare class Chunk<SectionMeshing extends boolean = false> {
4063
4200
  /**
4064
4201
  * Places a block at integer chunk-local coordinates from 0 to 15.
4065
4202
  */
4066
- setBlockInChunkAt(pos: Vector3, block?: Block, worldPos?: Vector3, onBlocksChanged?: ((positions: Vector3[]) => Promise<void>) | undefined): Promise<Maybe<BlockInfo<SectionMeshing>>>;
4203
+ setBlockInChunkAt(pos: Vector3, block?: Block, worldPos?: Vector3, onBlocksChanged?: ((positions: Vector3[], deferCulling?: boolean) => Promise<void>) | undefined): Promise<Maybe<BlockInfo<SectionMeshing>>>;
4067
4204
  /** Places cells in input order and returns changed world positions without refreshing neighbors. */
4068
4205
  placeBlocks(blocks: readonly {
4069
4206
  index: number;
@@ -4074,6 +4211,7 @@ declare class Chunk<SectionMeshing extends boolean = false> {
4074
4211
  /** Replaces every cell from parsed section data. The caller refreshes neighbor culling. */
4075
4212
  placeSection(data: ChunkData): Promise<void>;
4076
4213
  private replaceSection;
4214
+ private createBlockObject;
4077
4215
  private positionAt;
4078
4216
  /** Refreshes saved lighting after adjacent columns load or unload, including columns with only light data. */
4079
4217
  refreshLight(indices?: Iterable<number>): Promise<void>;
@@ -4223,11 +4361,25 @@ declare class MineRenderWorld<SectionMeshing extends boolean = false> {
4223
4361
  private placeChunkGroups;
4224
4362
  /** Replaces a chunk column's blocks, biomes, and saved light and, with `renderEntities`, its supported saved mobs. */
4225
4363
  placeChunk(chunk: AnvilChunk, executor?: BatchedExecutor): Promise<void>;
4364
+ /**
4365
+ * Replaces parsed columns in input order, then refreshes neighboring geometry once.
4366
+ * Duplicate coordinates retain their order. A failed column stops placement; queued refreshes finish before rejection.
4367
+ */
4368
+ placeChunks(chunks: readonly AnvilChunk[]): Promise<void>;
4369
+ private placeColumn;
4226
4370
  /**
4227
4371
  * Removes blocks and owned entities at chunk-column coordinates, then refreshes neighboring faces and fluids.
4228
4372
  * Coordinates match AnvilChunk.x/z, not block positions. Missing columns are ignored.
4229
4373
  */
4230
4374
  unloadChunkColumn(x: number, z: number): Promise<void>;
4375
+ /**
4376
+ * Removes chunk columns together and refreshes surviving neighbors once.
4377
+ * Coordinates are absolute chunk columns. Duplicate and missing columns are ignored.
4378
+ */
4379
+ unloadChunkColumns(positions: readonly {
4380
+ x: number;
4381
+ z: number;
4382
+ }[]): Promise<void>;
4231
4383
  private clearChunkColumn;
4232
4384
  private markSectionChanged;
4233
4385
  /** Removes all chunks and releases their blocks, section meshes, and owned entities. */
@@ -4247,7 +4399,7 @@ declare class MineRenderWorld<SectionMeshing extends boolean = false> {
4247
4399
  interface MineRenderWorldOptions<SectionMeshing extends boolean = boolean> {
4248
4400
  /** Render supported saved mobs at their position and yaw, including supported appearance fields. Defaults to false. */
4249
4401
  renderEntities?: boolean;
4250
- /** Merge static opaque cubes into section meshes. Merged blocks have no individual object. */
4402
+ /** Merge block models of any shape and fluid surfaces into per-section meshes; block entities keep individual objects. Merged blocks have no individual object. */
4251
4403
  sectionMeshing?: SectionMeshing;
4252
4404
  /** Shade blocks and fluids with saved sky/block light. Missing or invalid data keeps preview brightness. Defaults to false. Requires `sectionMeshing`. */
4253
4405
  savedLighting?: boolean;
@@ -4257,7 +4409,7 @@ interface MineRenderWorldOptions<SectionMeshing extends boolean = boolean> {
4257
4409
  ambientOcclusion?: boolean;
4258
4410
  /** Average neighboring biome colors within this horizontal radius, from 0 to 7 blocks. Defaults to 0 (off). Requires `sectionMeshing`. */
4259
4411
  biomeBlendRadius?: number;
4260
- /** Maximum width and height of each section atlas page, in pixels. */
4412
+ /** Maximum width and height of each section atlas page, in pixels. Defaults to 2048. */
4261
4413
  maxAtlasSize?: number;
4262
4414
  }
4263
4415
 
@@ -4302,10 +4454,11 @@ declare class WorldStreamer {
4302
4454
  private desired;
4303
4455
  private center?;
4304
4456
  private loading?;
4457
+ private readonly reads;
4305
4458
  private running?;
4306
4459
  private disposal?;
4307
4460
  private disposed;
4308
- constructor(world: Pick<MineRenderWorld<boolean>, "placeChunk" | "unloadChunkColumn">, source: WorldChunkSource, options?: WorldStreamerOptions);
4461
+ constructor(world: Pick<MineRenderWorld<boolean>, "placeChunk" | "unloadChunkColumns"> & Partial<Pick<MineRenderWorld<boolean>, "placeChunks">>, source: WorldChunkSource, options?: WorldStreamerOptions);
4309
4462
  /** Returns absolute coordinates of successfully placed columns, including retained columns. */
4310
4463
  get loadedChunks(): readonly {
4311
4464
  x: number;
@@ -4338,8 +4491,12 @@ declare class WorldStreamer {
4338
4491
  /** Aborts source reads, waits for active work, then unloads owned columns. The world and source remain caller-owned. */
4339
4492
  dispose(): Promise<void>;
4340
4493
  private drain;
4494
+ private fillReadSlots;
4495
+ /** Places only the ready prefix, so later source reads cannot delay the nearest ready column. */
4496
+ private placeReadyChunks;
4497
+ private placeOwnedColumns;
4341
4498
  private needsLoad;
4342
- private unload;
4499
+ private unloadMany;
4343
4500
  private validateChunk;
4344
4501
  private within;
4345
4502
  private key;
@@ -4373,6 +4530,7 @@ declare function registerNodeEnv(): NodeEnv;
4373
4530
  */
4374
4531
  declare class NodeCache extends PersistentCache<LocalStorage> {
4375
4532
  private initialized;
4533
+ private readonly pendingWrites;
4376
4534
  constructor(backing: LocalStorage);
4377
4535
  private ready;
4378
4536
  get<T>(key: string): Promise<T>;
@@ -4418,4 +4576,4 @@ declare class NodeRenderer extends Renderer {
4418
4576
  dispose(): void;
4419
4577
  }
4420
4578
 
4421
- export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, type AnvilEntityChunk, type AnvilExternalChunkReader, type AnvilParseOptions, AnvilParser, type AnvilRegion, type AnvilRegionReader, AnvilWorldSource, type AnvilWorldSourceOptions, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, type BannerPattern, type BannerPatternDraw, BannerPatterns, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type BinaryAsset, type Biome, type BiomeColorKind, Biomes, type BitmapFont, type BitmapGlyph, type Block, BlockEntities, type BlockEntityEntry, type BlockEntityIndex, type BlockEntityPart, type BlockEntityRotation, type BlockFluidState, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, BlockStateResolver, type BlockStateVariant, type BlockStateVariants, BlockStates, BlockTints, type BoxGeometryKey, BrowserArchiveProxy, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsMode, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, DYE_COLORS, type DebugOptions, type DecoratedPotSide, DecoratedPots, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, type DyeColor, ENTITY_ANIMATION_CHANNELS, type ElementFace, type ElementRotation, Entities, type EntityAnimation, type EntityAnimationBone, type EntityAnimationChannel, type EntityAnimationFile, type EntityAnimationKeyframe, type EntityAnimationOptions, EntityAnimationPlayer, type EntityAnimationPose, type EntityLayer, type EntityModel, type EntityModelCube, type EntityModelFile, type EntityModelLayer, type EntityModelOptions, type EntityModelPart, type EntityModelPass, EntityObject, type EntityObjectOptions, type EntityRenderMode, type EntityTransformOp, Env, type EnvProvider, type ExtractableImageData, type FluidKind, FluidModelObject, type FluidQuads, type FluidRules, type FluidSample, type FluidSampler, type FlyAction, FlyControls, type FlyControlsEventMap, Fonts, type FrameCallback, type FromTo, GUI_CONTAINER_LAYOUTS, Geometries, type GuiBookButtonState, type GuiBookOptions, type GuiBossBarColor, type GuiBossBarOptions, type GuiContainerType, GuiHelper, type GuiItemLayer, type GuiLayer, GuiLight, GuiObject, type GuiObjectOptions, type GuiRecipe, type GuiRecipeIngredient, type GuiRecipeOptions, type GuiSpriteScaling, type GuiText, type GuiTextLayer, type GuiTextLayout, type GuiTextOptions, type GuiTextRun, type GuiTextStyle, type GuiTextureLayer, type GuiTooltipOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, ItemDefaults, ItemGlint, type ItemModel, type ItemModelContext, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, LitematicaParser, type LitematicaRegion, type LitematicaStructure, type LoadedSceneDocument, type LoadedSceneObject, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderData, type MineRenderDataManifest, type MineRenderDatasets, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MineRenderWorldOptions, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, ModelCulling, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, ModelTextures, Models, type MultiBlockBlock, type MultiBlockEntity, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, NodeCache, NodeEnv, type NodeImageOptions, NodeRenderer, type NodeRendererOptions, OrbitControls, type PackFormat, PackFormats, PackMetadata, PersistentCache, PlayerHeadTextures, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenameKind, Renames, type RenderOptions, Renderer, type RendererControls, type RendererFrame, type RendererOptions, type RendererSurface, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResolvedMineRenderData, type ResponseParser, SCENE_DOCUMENT_MAX_BYTES, SKIN_PARTS, type SavedLightSample, type SceneBlockDefinition, type SceneDocument, SceneDocumentLoader, type SceneEntityDefinition, SceneExporter, type SceneGLTFExportOptions, type SceneGuiDefinition, type SceneGuiLayer, SceneInspector, type SceneItemContext, type SceneModelDefinition, SceneObject, type SceneObjectDefinition, type SceneObjectDefinitionBase, type SceneObjectOptions, type SceneSkinDefinition, type SceneSkinPosePart, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, type SectionAtlasSize, type SectionFluidInput, type SectionFluidKind, type SectionFluids, type SectionGeometryInput, type SectionGeometryPage, type SectionLightData, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type SectionTemplateData, SectionWorker, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, SpongeSchematicParser, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, type VideoExportOptions, VideoExporter, type WorldBlockIntersection, type WorldChunkSource, type WorldEntityIntersection, WorldStreamer, type WorldStreamerOptions, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, buildFluidQuads, buildSectionGeometry, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, copySectionLight, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, decodeSceneDocument, encodeSceneDocument, entityAnimationTime, estimateBytesUsed, fluidKindOf, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isFlyControls, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isResourceLocation, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, parseSceneDocument, prefix, registerNodeEnv, resolveBlockFluidState, resolveLegacyBlock, resolveLegacyBlockState, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, sampleSectionLight, sectionGeometryTransferables, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas, validateAnimationWeights, yieldToEventLoop };
4579
+ export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, type AnvilEntityChunk, type AnvilExternalChunkReader, type AnvilParseOptions, AnvilParser, type AnvilRegion, type AnvilRegionReader, AnvilWorldSource, type AnvilWorldSourceOptions, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, Armor, type ArmorPiece, type ArmorSet, type ArmorSlot, type ArmorTrim, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, type BannerPattern, type BannerPatternDraw, BannerPatterns, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, type BinaryAsset, type Biome, type BiomeColorKind, Biomes, type BitmapFont, type BitmapGlyph, type Block, BlockEntities, type BlockEntityEntry, type BlockEntityIndex, type BlockEntityPart, type BlockEntityRotation, type BlockFluidState, type BlockInfo, type BlockModel, type BlockModelTextures, BlockObject, type BlockObjectOptions, type BlockState, type BlockStateMultipart, type BlockStateProperties, type BlockStateProperty, type BlockStatePropertyDefaults, type BlockStatePropertyValue, BlockStateResolver, type BlockStateVariant, type BlockStateVariants, BlockStates, BlockTints, type BoxGeometryKey, BrowserArchiveProxy, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsMode, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, DYE_COLORS, type DebugOptions, type DecoratedPotSide, DecoratedPots, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, type DyeColor, ENTITY_ANIMATION_CHANNELS, type ElementFace, type ElementRotation, Entities, type EntityAnimation, type EntityAnimationBone, type EntityAnimationChannel, type EntityAnimationFile, type EntityAnimationKeyframe, type EntityAnimationOptions, EntityAnimationPlayer, type EntityAnimationPose, type EntityLayer, type EntityModel, type EntityModelCube, type EntityModelFile, type EntityModelLayer, type EntityModelOptions, type EntityModelPart, type EntityModelPass, EntityObject, type EntityObjectOptions, type EntityRenderMode, type EntityTransformOp, Env, type EnvProvider, type ExtractableImageData, type FluidKind, FluidModelObject, type FluidQuads, type FluidRules, type FluidSample, type FluidSampler, type FlyAction, FlyControls, type FlyControlsEventMap, Fonts, type FrameCallback, type FromTo, GUI_CONTAINER_LAYOUTS, Geometries, type GuiBookButtonState, type GuiBookOptions, type GuiBossBarColor, type GuiBossBarOptions, type GuiContainerType, GuiHelper, type GuiItemLayer, type GuiLayer, GuiLight, GuiObject, type GuiObjectOptions, type GuiRecipe, type GuiRecipeIngredient, type GuiRecipeOptions, type GuiSpriteScaling, type GuiText, type GuiTextLayer, type GuiTextLayout, type GuiTextOptions, type GuiTextRun, type GuiTextStyle, type GuiTextureLayer, type GuiTooltipOptions, HostedAssetSource, type IModelTextures, ITEM_GENERATED, type ImageInfo, ImageLoader, type ImageSizeInfo, InstanceManager, InstanceReference, type Instanceable, ItemDefaults, ItemGlint, type ItemModel, type ItemModelContext, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, LitematicaParser, type LitematicaRegion, type LitematicaStructure, type LoadedSceneDocument, type LoadedSceneObject, type LogHandler, type LogLevel, type LogThreshold, type Logger, Logging, type LoggingOptions, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, MineRenderData, type MineRenderDataManifest, type MineRenderDatasets, MineRenderError, MineRenderScene, type MineRenderSceneOptions, MineRenderWorld, type MineRenderWorldOptions, type MinecraftAsset, MinecraftCubeTexture, MinecraftFaceUV, type MinecraftTextureMeta, type Model, ModelCulling, type ModelDisplay, type ModelElement, type ModelFaces, ModelGenerator, ModelMerger, ModelObject, type ModelObjectOptions, ModelTextures, Models, type MultiBlockBlock, type MultiBlockEntity, type MultiBlockStructure, type MultipartCondition, type NBTAsset, NBTHelper, NodeCache, NodeEnv, type NodeImageOptions, NodeRenderer, type NodeRendererOptions, OrbitControls, type PackFormat, PackFormats, PackMetadata, PalettedTextures, PersistentCache, PlayerHeadTextures, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenameKind, Renames, type RenderOptions, Renderer, type RendererControls, type RendererFrame, type RendererOptions, type RendererSurface, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResolvedMineRenderData, type ResponseParser, SCENE_DOCUMENT_MAX_BYTES, SKIN_PARTS, type SavedLightSample, type SceneBlockDefinition, type SceneDocument, SceneDocumentLoader, type SceneEntityDefinition, SceneExporter, type SceneGLTFExportOptions, type SceneGuiDefinition, type SceneGuiLayer, SceneInspector, type SceneItemContext, type SceneModelDefinition, SceneObject, type SceneObjectDefinition, type SceneObjectDefinitionBase, type SceneObjectOptions, type SceneSkinDefinition, type SceneSkinPosePart, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, type SectionAtlasSize, type SectionFluidInput, type SectionFluidKind, type SectionFluids, type SectionGeometryInput, type SectionGeometryPage, type SectionLightData, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type SectionTemplateData, SectionWorker, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, SpongeSchematicParser, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, type VideoExportOptions, VideoExporter, type WorldBlockIntersection, type WorldChunkSource, type WorldEntityIntersection, WorldStreamer, type WorldStreamerOptions, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, buildFluidQuads, buildSectionGeometry, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, copySectionLight, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, decodeSceneDocument, encodeSceneDocument, entityAnimationTime, estimateBytesUsed, fluidKindOf, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isFlyControls, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isResourceLocation, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, logger, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, parseSceneDocument, prefix, registerNodeEnv, resolveBlockFluidState, resolveLegacyBlock, resolveLegacyBlockState, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, sampleSectionLight, sectionGeometryTransferables, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas, validateAnimationWeights, yieldToEventLoop };