minerender 2.1.0-alpha.76 → 2.1.0-alpha.78

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/README.md CHANGED
@@ -62,3 +62,60 @@ Filter expressions use JavaScript regular expressions with substring matching.
62
62
  Namespace and path matches can come from different rules, following vanilla's
63
63
  filter behavior. Paths include the asset type and extension, such as
64
64
  `textures/block/stone.png`. Java-only regular expression syntax is not supported.
65
+
66
+ ## Load an editable scene
67
+
68
+ The web scene editor saves versioned JSON that the library can load directly:
69
+
70
+ ```ts
71
+ import { AssetLoader, Renderer, SceneDocumentLoader } from "minerender";
72
+
73
+ const response = await fetch("./scene.json");
74
+ if (!response.ok) throw new Error("Could not fetch scene.json");
75
+ const definition = SceneDocumentLoader.parse(await response.json());
76
+ if (definition.minecraftVersion) AssetLoader.setVersion(definition.minecraftVersion);
77
+
78
+ const renderer = new Renderer({
79
+ controls: { enabled: true },
80
+ ...(definition.camera ? { camera: {
81
+ position: definition.camera.position,
82
+ lookingAt: definition.camera.target
83
+ } } : {})
84
+ });
85
+ renderer.appendTo(document.body);
86
+ const scene = await SceneDocumentLoader.load(renderer.scene, definition);
87
+ const unsubscribe = renderer.onFrame(({ delta }) => scene.advanceAnimations(delta));
88
+ renderer.start();
89
+
90
+ // Release the scene when its view closes.
91
+ function dispose() {
92
+ unsubscribe();
93
+ scene.dispose();
94
+ renderer.dispose();
95
+ }
96
+ ```
97
+
98
+ A minimal document contains a format, schema version, and object definitions:
99
+
100
+ ```json
101
+ {
102
+ "format": "minerender-scene",
103
+ "version": 1,
104
+ "minecraftVersion": "1.21.11",
105
+ "objects": [
106
+ {
107
+ "id": "stairs",
108
+ "type": "block",
109
+ "asset": "minecraft:oak_stairs",
110
+ "state": { "facing": "east", "half": "bottom", "shape": "straight" },
111
+ "position": [0, 0, 0],
112
+ "rotation": [0, 0, 0]
113
+ }
114
+ ]
115
+ }
116
+ ```
117
+
118
+ Supported object types are `skin`, `block`, `item`, `model`, `entity`, and `gui`.
119
+ Positions use model units (16 per block); JSON rotations use radians.
120
+
121
+ Callers apply the saved camera settings and select the matching asset version.
@@ -1,5 +1,5 @@
1
1
  import * as three from 'three';
2
- import { Vector3, PixelFormat, BoxGeometry, Material, ColorRepresentation, MeshBasicMaterial, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Box2, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, DataTexture, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points, Group } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, ColorRepresentation, MeshBasicMaterial, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Box2, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, Group, DataTexture, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
3
3
  import * as nodeCanvas from 'canvas';
4
4
  import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
5
5
  import { Buffer } from 'buffer';
@@ -2334,8 +2334,45 @@ declare class SceneExporter {
2334
2334
  static toGLTF(root: Object3D, options?: SceneGLTFExportOptions): Promise<Record<string, any> | ArrayBuffer>;
2335
2335
  }
2336
2336
 
2337
+ /** Container coordinates in GUI pixels. Crops refer to vanilla's 256×256 sheets; {@link GuiHelper.container} scales them for resource packs. */
2338
+ declare const GUI_CONTAINER_LAYOUTS: {
2339
+ readonly generic_54: {
2340
+ readonly texture: "minecraft:gui/container/generic_54";
2341
+ readonly crop: readonly [0, 0, 176, 222];
2342
+ readonly slotOrigin: readonly [8, 18];
2343
+ readonly slotOffset: readonly [18, 18];
2344
+ readonly rowSize: 9;
2345
+ readonly slotCount: 54;
2346
+ };
2347
+ readonly crafting_table: {
2348
+ readonly texture: "minecraft:gui/container/crafting_table";
2349
+ readonly crop: readonly [0, 0, 176, 166];
2350
+ readonly slotOrigin: readonly [30, 17];
2351
+ readonly slotOffset: readonly [18, 18];
2352
+ readonly rowSize: 3;
2353
+ readonly slotCount: 9;
2354
+ readonly resultPosition: readonly [124, 35];
2355
+ };
2356
+ };
2357
+ type GuiContainerType = keyof typeof GUI_CONTAINER_LAYOUTS;
2358
+ type GuiBossBarColor = "pink" | "blue" | "red" | "green" | "yellow" | "purple" | "white";
2359
+ type GuiBookButtonState = "hidden" | "normal" | "hover";
2337
2360
  /** Creates GUI positions and layer lists for {@link MineRenderScene.addGui}. */
2338
2361
  declare class GuiHelper {
2362
+ /**
2363
+ * Creates a 182×5 boss bar using the active resource pack. Finite progress is clamped to 0–1.
2364
+ * The fill crops the source image; explicit crops do not apply `.mcmeta` sprite scaling.
2365
+ */
2366
+ static bossBar(options?: GuiBossBarOptions): Promise<GuiLayer[]>;
2367
+ /**
2368
+ * Creates a 192×192 book page with optional arrows and supplied text. Buttons are hidden by default.
2369
+ * Callers choose the page content and button states; this helper does not paginate or handle clicks.
2370
+ */
2371
+ static book(options?: GuiBookOptions): Promise<GuiLayer[]>;
2372
+ /** Creates a container background. Use {@link GUI_CONTAINER_LAYOUTS} with {@link inventorySlot} to place its items. */
2373
+ static container(type: GuiContainerType, position?: [number, number]): Promise<GuiLayer[]>;
2374
+ private static validatePosition;
2375
+ private static cropTexture;
2339
2376
  /** Sizes a tooltip around supplied text; the first entry is its title. */
2340
2377
  static tooltip(lines: readonly GuiText[], options?: GuiTooltipOptions): Promise<GuiLayer[]>;
2341
2378
  /**
@@ -2345,10 +2382,28 @@ declare class GuiHelper {
2345
2382
  * @param offset - Horizontal and vertical spacing between slot origins, in pixels.
2346
2383
  * @param rowSize - Slots per row when `slot` is an index.
2347
2384
  */
2348
- static inventorySlot(slot: number | [number, number], origin?: [number, number], offset?: [number, number], rowSize?: number): [number, number];
2385
+ static inventorySlot(slot: number | readonly [number, number], origin?: readonly [number, number], offset?: readonly [number, number], rowSize?: number): [number, number];
2349
2386
  /** Creates crafting-table layers for ingredients and the result; stack counts are not drawn. */
2350
2387
  static recipe(recipe: GuiRecipe, options?: GuiRecipeOptions): GuiLayer[];
2351
2388
  }
2389
+ /** Settings passed to {@link GuiHelper.bossBar}. */
2390
+ interface GuiBossBarOptions {
2391
+ /** Vanilla sprite color. Defaults to `pink`. */
2392
+ color?: GuiBossBarColor;
2393
+ /** Fill from 0 to 1, rounded to vanilla's discrete pixel width. Defaults to 1. */
2394
+ progress?: number;
2395
+ /** Top-left position in GUI pixels. Defaults to `[0, 0]`. */
2396
+ position?: [number, number];
2397
+ }
2398
+ /** Settings passed to {@link GuiHelper.book}. Text defaults to black, unshadowed, and wrapped at 114 pixels. */
2399
+ interface GuiBookOptions extends GuiTextOptions {
2400
+ /** Top-left position of the book background in GUI pixels. Defaults to `[0, 0]`. */
2401
+ position?: [number, number];
2402
+ previous?: GuiBookButtonState;
2403
+ next?: GuiBookButtonState;
2404
+ /** Content for one page. The caller keeps it within the 128-pixel text height. */
2405
+ text?: GuiText;
2406
+ }
2352
2407
  /** Settings passed to {@link GuiHelper.tooltip}. Its default `lineHeight` is 10 GUI pixels. */
2353
2408
  interface GuiTooltipOptions extends GuiTextOptions {
2354
2409
  /** Top-left text position, inside the tooltip's padding. */
@@ -2674,6 +2729,125 @@ declare class StatLine {
2674
2729
  update(): void;
2675
2730
  }
2676
2731
 
2732
+ /** Portable scene setup. Positions use model units (16 per block); rotations use radians. */
2733
+ interface SceneDocument {
2734
+ format: "minerender-scene";
2735
+ version: 1;
2736
+ minecraftVersion?: string;
2737
+ camera?: {
2738
+ position: TripleArray;
2739
+ target: TripleArray;
2740
+ };
2741
+ objects: SceneObjectDefinition[];
2742
+ }
2743
+ interface SceneObjectDefinitionBase {
2744
+ id: string;
2745
+ name?: string;
2746
+ position?: TripleArray;
2747
+ rotation?: TripleArray;
2748
+ scale?: TripleArray;
2749
+ visible?: boolean;
2750
+ }
2751
+ type SceneSkinPosePart = "head" | "body" | "rightArm" | "leftArm" | "rightLeg" | "leftLeg" | "cape";
2752
+ interface SceneSkinDefinition extends SceneObjectDefinitionBase {
2753
+ type: "skin";
2754
+ /** Texture URL, Minecraft username, or UUID. Omit for Steve, or Alex with slim: true, from the active asset version. */
2755
+ skin?: string;
2756
+ cape?: {
2757
+ texture: string;
2758
+ layout?: CapeLayout;
2759
+ };
2760
+ options?: {
2761
+ slim?: boolean;
2762
+ legacy?: boolean;
2763
+ };
2764
+ /** Mesh names from SkinPart; hiding a base part does not hide its overlay. */
2765
+ hiddenParts?: string[];
2766
+ /** Absolute local XYZ joint rotations in radians; omitted joints keep their default pose. */
2767
+ pose?: Partial<Record<SceneSkinPosePart, TripleArray>>;
2768
+ }
2769
+ interface SceneBlockDefinition extends SceneObjectDefinitionBase {
2770
+ type: "block";
2771
+ asset: string;
2772
+ state?: Record<string, string>;
2773
+ options?: {
2774
+ wireframe?: boolean;
2775
+ tints?: Record<number, number>;
2776
+ };
2777
+ }
2778
+ interface SceneModelDefinition extends SceneObjectDefinitionBase {
2779
+ type: "item" | "model";
2780
+ asset: string;
2781
+ options?: {
2782
+ wireframe?: boolean;
2783
+ displayPosition?: DisplayPosition;
2784
+ tints?: Record<number, number>;
2785
+ };
2786
+ }
2787
+ interface SceneEntityDefinition extends SceneObjectDefinitionBase {
2788
+ type: "entity";
2789
+ asset: string;
2790
+ texture?: string;
2791
+ layers?: string[];
2792
+ when?: string[];
2793
+ textures?: Record<string, string>;
2794
+ options?: {
2795
+ flip?: boolean;
2796
+ wireframe?: boolean;
2797
+ tints?: Record<string, string | number>;
2798
+ };
2799
+ animation?: {
2800
+ name: string;
2801
+ loop?: boolean;
2802
+ speed?: number;
2803
+ time?: number;
2804
+ paused?: boolean;
2805
+ };
2806
+ }
2807
+ type SceneGuiLayer = (Omit<GuiTextureLayer, "texture"> & {
2808
+ texture: string;
2809
+ }) | (Omit<GuiItemLayer, "item"> & {
2810
+ item: string;
2811
+ }) | (Omit<GuiTextLayer, "font"> & {
2812
+ font?: string;
2813
+ });
2814
+ interface SceneGuiDefinition extends SceneObjectDefinitionBase {
2815
+ type: "gui";
2816
+ layers: SceneGuiLayer[];
2817
+ }
2818
+ type SceneObjectDefinition = SceneSkinDefinition | SceneBlockDefinition | SceneModelDefinition | SceneEntityDefinition | SceneGuiDefinition;
2819
+ /** Validates and copies a scene document without requesting assets or changing the active asset version. */
2820
+ declare function parseSceneDocument(value: unknown): SceneDocument;
2821
+
2822
+ interface LoadedSceneObject {
2823
+ readonly root: Group;
2824
+ readonly object: SceneObject;
2825
+ readonly definition: SceneObjectDefinition;
2826
+ /** Advances entity playback in seconds unless the definition has paused it. */
2827
+ advanceAnimation(delta: number): void;
2828
+ /** Removes this object and releases its owned resources. Safe to call more than once. */
2829
+ dispose(): void;
2830
+ }
2831
+ interface LoadedSceneDocument {
2832
+ readonly root: Group;
2833
+ readonly objects: LoadedSceneObject[];
2834
+ readonly definition: SceneDocument;
2835
+ advanceAnimations(delta: number): void;
2836
+ dispose(): void;
2837
+ }
2838
+ /** Loads portable scene documents using the asset sources already configured by the caller. */
2839
+ declare class SceneDocumentLoader {
2840
+ static parse(value: unknown): SceneDocument;
2841
+ /**
2842
+ * Loads objects concurrently and attaches them in document order after every load succeeds.
2843
+ * A failure waits for all loads, disposes staged objects, and reports the first error in document order.
2844
+ */
2845
+ static load(scene: MineRenderScene, value: unknown, parent?: Object3D): Promise<LoadedSceneDocument>;
2846
+ /** Loads an independently editable object. Its root owns the document's position, rotation, and scale. */
2847
+ static loadObject(scene: MineRenderScene, value: SceneObjectDefinition, parent?: Object3D): Promise<LoadedSceneObject>;
2848
+ private static loadValidatedObject;
2849
+ }
2850
+
2677
2851
  type SkinGeometries = Record<SkinPart, TripleArray>;
2678
2852
  declare const classicSkinGeometries: SkinGeometries;
2679
2853
  declare const slimSkinGeometries: SkinGeometries;
@@ -3036,4 +3210,4 @@ declare class BrowserCache extends PersistentCache<LocalForage> {
3036
3210
  */
3037
3211
  declare function probeImageSize(data: Uint8Array): ImageSizeInfo;
3038
3212
 
3039
- export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, AnvilParser, type AnvilRegion, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, 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, BrowserCache, BrowserEnv, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, 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 FluidSample, type FluidSampler, Fonts, type FrameCallback, type FromTo, Geometries, 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, type ItemModel, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, 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, OrbitControls, type PackFormat, PackFormats, PackMetadata, PersistentCache, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererFrame, type RendererOptions, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResponseParser, SKIN_PARTS, SceneExporter, type SceneGLTFExportOptions, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, entityAnimationTime, estimateBytesUsed, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas };
3213
+ export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, AnvilParser, type AnvilRegion, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, 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, BrowserCache, BrowserEnv, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, 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 FluidSample, type FluidSampler, 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, type ItemModel, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, type LoadedSceneDocument, type LoadedSceneObject, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, 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, OrbitControls, type PackFormat, PackFormats, PackMetadata, PersistentCache, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererFrame, type RendererOptions, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResponseParser, SKIN_PARTS, type SceneBlockDefinition, type SceneDocument, SceneDocumentLoader, type SceneEntityDefinition, SceneExporter, type SceneGLTFExportOptions, type SceneGuiDefinition, type SceneGuiLayer, SceneInspector, type SceneModelDefinition, SceneObject, type SceneObjectDefinition, type SceneObjectDefinitionBase, type SceneObjectOptions, type SceneSkinDefinition, type SceneSkinPosePart, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, entityAnimationTime, estimateBytesUsed, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, parseSceneDocument, prefix, probeImageSize, registerBrowserEnv, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas };
@@ -1,5 +1,5 @@
1
1
  import * as three from 'three';
2
- import { Vector3, PixelFormat, BoxGeometry, Material, ColorRepresentation, MeshBasicMaterial, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Box2, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, DataTexture, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points, Group } from 'three';
2
+ import { Vector3, PixelFormat, BoxGeometry, Material, ColorRepresentation, MeshBasicMaterial, Mesh, Euler, Vector2, BufferAttribute, Float32BufferAttribute, BufferGeometry, Object3D, Box3, InstancedMesh, PerspectiveCamera, OrthographicCamera, Matrix4, Box2, Scene, Object3DEventMap, Texture, Camera, MOUSE, TOUCH, WebGLRenderer, EventDispatcher, Raycaster, Intersection, Group, DataTexture, CanvasTexture, InterleavedBufferAttribute, TrianglesDrawModes, Line, Points } from 'three';
3
3
  import * as nodeCanvas from 'canvas';
4
4
  import { ImageData as ImageData$1, CanvasRenderingContext2D } from 'canvas';
5
5
  import { Buffer } from 'buffer';
@@ -2334,8 +2334,45 @@ declare class SceneExporter {
2334
2334
  static toGLTF(root: Object3D, options?: SceneGLTFExportOptions): Promise<Record<string, any> | ArrayBuffer>;
2335
2335
  }
2336
2336
 
2337
+ /** Container coordinates in GUI pixels. Crops refer to vanilla's 256×256 sheets; {@link GuiHelper.container} scales them for resource packs. */
2338
+ declare const GUI_CONTAINER_LAYOUTS: {
2339
+ readonly generic_54: {
2340
+ readonly texture: "minecraft:gui/container/generic_54";
2341
+ readonly crop: readonly [0, 0, 176, 222];
2342
+ readonly slotOrigin: readonly [8, 18];
2343
+ readonly slotOffset: readonly [18, 18];
2344
+ readonly rowSize: 9;
2345
+ readonly slotCount: 54;
2346
+ };
2347
+ readonly crafting_table: {
2348
+ readonly texture: "minecraft:gui/container/crafting_table";
2349
+ readonly crop: readonly [0, 0, 176, 166];
2350
+ readonly slotOrigin: readonly [30, 17];
2351
+ readonly slotOffset: readonly [18, 18];
2352
+ readonly rowSize: 3;
2353
+ readonly slotCount: 9;
2354
+ readonly resultPosition: readonly [124, 35];
2355
+ };
2356
+ };
2357
+ type GuiContainerType = keyof typeof GUI_CONTAINER_LAYOUTS;
2358
+ type GuiBossBarColor = "pink" | "blue" | "red" | "green" | "yellow" | "purple" | "white";
2359
+ type GuiBookButtonState = "hidden" | "normal" | "hover";
2337
2360
  /** Creates GUI positions and layer lists for {@link MineRenderScene.addGui}. */
2338
2361
  declare class GuiHelper {
2362
+ /**
2363
+ * Creates a 182×5 boss bar using the active resource pack. Finite progress is clamped to 0–1.
2364
+ * The fill crops the source image; explicit crops do not apply `.mcmeta` sprite scaling.
2365
+ */
2366
+ static bossBar(options?: GuiBossBarOptions): Promise<GuiLayer[]>;
2367
+ /**
2368
+ * Creates a 192×192 book page with optional arrows and supplied text. Buttons are hidden by default.
2369
+ * Callers choose the page content and button states; this helper does not paginate or handle clicks.
2370
+ */
2371
+ static book(options?: GuiBookOptions): Promise<GuiLayer[]>;
2372
+ /** Creates a container background. Use {@link GUI_CONTAINER_LAYOUTS} with {@link inventorySlot} to place its items. */
2373
+ static container(type: GuiContainerType, position?: [number, number]): Promise<GuiLayer[]>;
2374
+ private static validatePosition;
2375
+ private static cropTexture;
2339
2376
  /** Sizes a tooltip around supplied text; the first entry is its title. */
2340
2377
  static tooltip(lines: readonly GuiText[], options?: GuiTooltipOptions): Promise<GuiLayer[]>;
2341
2378
  /**
@@ -2345,10 +2382,28 @@ declare class GuiHelper {
2345
2382
  * @param offset - Horizontal and vertical spacing between slot origins, in pixels.
2346
2383
  * @param rowSize - Slots per row when `slot` is an index.
2347
2384
  */
2348
- static inventorySlot(slot: number | [number, number], origin?: [number, number], offset?: [number, number], rowSize?: number): [number, number];
2385
+ static inventorySlot(slot: number | readonly [number, number], origin?: readonly [number, number], offset?: readonly [number, number], rowSize?: number): [number, number];
2349
2386
  /** Creates crafting-table layers for ingredients and the result; stack counts are not drawn. */
2350
2387
  static recipe(recipe: GuiRecipe, options?: GuiRecipeOptions): GuiLayer[];
2351
2388
  }
2389
+ /** Settings passed to {@link GuiHelper.bossBar}. */
2390
+ interface GuiBossBarOptions {
2391
+ /** Vanilla sprite color. Defaults to `pink`. */
2392
+ color?: GuiBossBarColor;
2393
+ /** Fill from 0 to 1, rounded to vanilla's discrete pixel width. Defaults to 1. */
2394
+ progress?: number;
2395
+ /** Top-left position in GUI pixels. Defaults to `[0, 0]`. */
2396
+ position?: [number, number];
2397
+ }
2398
+ /** Settings passed to {@link GuiHelper.book}. Text defaults to black, unshadowed, and wrapped at 114 pixels. */
2399
+ interface GuiBookOptions extends GuiTextOptions {
2400
+ /** Top-left position of the book background in GUI pixels. Defaults to `[0, 0]`. */
2401
+ position?: [number, number];
2402
+ previous?: GuiBookButtonState;
2403
+ next?: GuiBookButtonState;
2404
+ /** Content for one page. The caller keeps it within the 128-pixel text height. */
2405
+ text?: GuiText;
2406
+ }
2352
2407
  /** Settings passed to {@link GuiHelper.tooltip}. Its default `lineHeight` is 10 GUI pixels. */
2353
2408
  interface GuiTooltipOptions extends GuiTextOptions {
2354
2409
  /** Top-left text position, inside the tooltip's padding. */
@@ -2674,6 +2729,125 @@ declare class StatLine {
2674
2729
  update(): void;
2675
2730
  }
2676
2731
 
2732
+ /** Portable scene setup. Positions use model units (16 per block); rotations use radians. */
2733
+ interface SceneDocument {
2734
+ format: "minerender-scene";
2735
+ version: 1;
2736
+ minecraftVersion?: string;
2737
+ camera?: {
2738
+ position: TripleArray;
2739
+ target: TripleArray;
2740
+ };
2741
+ objects: SceneObjectDefinition[];
2742
+ }
2743
+ interface SceneObjectDefinitionBase {
2744
+ id: string;
2745
+ name?: string;
2746
+ position?: TripleArray;
2747
+ rotation?: TripleArray;
2748
+ scale?: TripleArray;
2749
+ visible?: boolean;
2750
+ }
2751
+ type SceneSkinPosePart = "head" | "body" | "rightArm" | "leftArm" | "rightLeg" | "leftLeg" | "cape";
2752
+ interface SceneSkinDefinition extends SceneObjectDefinitionBase {
2753
+ type: "skin";
2754
+ /** Texture URL, Minecraft username, or UUID. Omit for Steve, or Alex with slim: true, from the active asset version. */
2755
+ skin?: string;
2756
+ cape?: {
2757
+ texture: string;
2758
+ layout?: CapeLayout;
2759
+ };
2760
+ options?: {
2761
+ slim?: boolean;
2762
+ legacy?: boolean;
2763
+ };
2764
+ /** Mesh names from SkinPart; hiding a base part does not hide its overlay. */
2765
+ hiddenParts?: string[];
2766
+ /** Absolute local XYZ joint rotations in radians; omitted joints keep their default pose. */
2767
+ pose?: Partial<Record<SceneSkinPosePart, TripleArray>>;
2768
+ }
2769
+ interface SceneBlockDefinition extends SceneObjectDefinitionBase {
2770
+ type: "block";
2771
+ asset: string;
2772
+ state?: Record<string, string>;
2773
+ options?: {
2774
+ wireframe?: boolean;
2775
+ tints?: Record<number, number>;
2776
+ };
2777
+ }
2778
+ interface SceneModelDefinition extends SceneObjectDefinitionBase {
2779
+ type: "item" | "model";
2780
+ asset: string;
2781
+ options?: {
2782
+ wireframe?: boolean;
2783
+ displayPosition?: DisplayPosition;
2784
+ tints?: Record<number, number>;
2785
+ };
2786
+ }
2787
+ interface SceneEntityDefinition extends SceneObjectDefinitionBase {
2788
+ type: "entity";
2789
+ asset: string;
2790
+ texture?: string;
2791
+ layers?: string[];
2792
+ when?: string[];
2793
+ textures?: Record<string, string>;
2794
+ options?: {
2795
+ flip?: boolean;
2796
+ wireframe?: boolean;
2797
+ tints?: Record<string, string | number>;
2798
+ };
2799
+ animation?: {
2800
+ name: string;
2801
+ loop?: boolean;
2802
+ speed?: number;
2803
+ time?: number;
2804
+ paused?: boolean;
2805
+ };
2806
+ }
2807
+ type SceneGuiLayer = (Omit<GuiTextureLayer, "texture"> & {
2808
+ texture: string;
2809
+ }) | (Omit<GuiItemLayer, "item"> & {
2810
+ item: string;
2811
+ }) | (Omit<GuiTextLayer, "font"> & {
2812
+ font?: string;
2813
+ });
2814
+ interface SceneGuiDefinition extends SceneObjectDefinitionBase {
2815
+ type: "gui";
2816
+ layers: SceneGuiLayer[];
2817
+ }
2818
+ type SceneObjectDefinition = SceneSkinDefinition | SceneBlockDefinition | SceneModelDefinition | SceneEntityDefinition | SceneGuiDefinition;
2819
+ /** Validates and copies a scene document without requesting assets or changing the active asset version. */
2820
+ declare function parseSceneDocument(value: unknown): SceneDocument;
2821
+
2822
+ interface LoadedSceneObject {
2823
+ readonly root: Group;
2824
+ readonly object: SceneObject;
2825
+ readonly definition: SceneObjectDefinition;
2826
+ /** Advances entity playback in seconds unless the definition has paused it. */
2827
+ advanceAnimation(delta: number): void;
2828
+ /** Removes this object and releases its owned resources. Safe to call more than once. */
2829
+ dispose(): void;
2830
+ }
2831
+ interface LoadedSceneDocument {
2832
+ readonly root: Group;
2833
+ readonly objects: LoadedSceneObject[];
2834
+ readonly definition: SceneDocument;
2835
+ advanceAnimations(delta: number): void;
2836
+ dispose(): void;
2837
+ }
2838
+ /** Loads portable scene documents using the asset sources already configured by the caller. */
2839
+ declare class SceneDocumentLoader {
2840
+ static parse(value: unknown): SceneDocument;
2841
+ /**
2842
+ * Loads objects concurrently and attaches them in document order after every load succeeds.
2843
+ * A failure waits for all loads, disposes staged objects, and reports the first error in document order.
2844
+ */
2845
+ static load(scene: MineRenderScene, value: unknown, parent?: Object3D): Promise<LoadedSceneDocument>;
2846
+ /** Loads an independently editable object. Its root owns the document's position, rotation, and scale. */
2847
+ static loadObject(scene: MineRenderScene, value: SceneObjectDefinition, parent?: Object3D): Promise<LoadedSceneObject>;
2848
+ private static loadValidatedObject;
2849
+ }
2850
+
2677
2851
  type SkinGeometries = Record<SkinPart, TripleArray>;
2678
2852
  declare const classicSkinGeometries: SkinGeometries;
2679
2853
  declare const slimSkinGeometries: SkinGeometries;
@@ -3036,4 +3210,4 @@ declare class BrowserCache extends PersistentCache<LocalForage> {
3036
3210
  */
3037
3211
  declare function probeImageSize(data: Uint8Array): ImageSizeInfo;
3038
3212
 
3039
- export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, AnvilParser, type AnvilRegion, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, 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, BrowserCache, BrowserEnv, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, 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 FluidSample, type FluidSampler, Fonts, type FrameCallback, type FromTo, Geometries, 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, type ItemModel, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, 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, OrbitControls, type PackFormat, PackFormats, PackMetadata, PersistentCache, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererFrame, type RendererOptions, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResponseParser, SKIN_PARTS, SceneExporter, type SceneGLTFExportOptions, SceneInspector, SceneObject, type SceneObjectOptions, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, entityAnimationTime, estimateBytesUsed, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, prefix, probeImageSize, registerBrowserEnv, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas };
3213
+ export { AXES, type AnimationFrame, type AnimationMeta, type AnimatorFunction, type AnvilChunk, AnvilParser, type AnvilRegion, ArchiveAssetSource, type ArchiveAssetSourceOptions, type ArchiveEntry, type ArchiveProxy, AssetKey, AssetLoadError, AssetLoader, AssetParser, AssetSource, type AssetType, Assets, Axis, BUILTIN_ENTITY, BUILTIN_GENERATED, BasicAssetKey, type BasicMinecraftAsset, BatchedExecutor, type BedrockBone, type BedrockCube, type BedrockEntityDescription, type BedrockEntityFile, type BedrockGeometry, type BedrockGeometryFile, 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, BrowserCache, BrowserEnv, CUBE_FACES, CUBE_FACE_OFFSETS, type CacheKey, Caching, type CameraOptions, CanvasImage, type CapeLayout, Chunk, ChunkData, Colormaps, type CompatCanvas, type CompatImage, type ComposerOptions, type ControlsOptions, CubeFace, CubeFaceIndex, DEFAULT_ELEMENTS, DEFAULT_NAMESPACE, DEFAULT_ROOT, DEFAULT_UV, DISPLAY_POSITIONS, type DebugOptions, type DeepPartial, DefaultBlockStates, DisplayPosition, DisplayTransforms, type Disposable, type DoubleArray, 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 FluidSample, type FluidSampler, 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, type ItemModel, type ItemModelTextures, type ItemTintColor, type ItemTintSource, ItemTints, type ListAsset, type LoadedSceneDocument, type LoadedSceneObject, MapControls, type MaterialKey, Materials, type Maybe, type MeshKey, Meshes, 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, OrbitControls, type PackFormat, PackFormats, PackMetadata, PersistentCache, type PositionedGuiGlyph, type QuadArray, type RawImageKey, type RenderOptions, Renderer, type RendererFrame, type RendererOptions, type RequestConfig, RequestError, type RequestResponse, Requests, type ResolvedBlockEntity, type ResponseParser, SKIN_PARTS, type SceneBlockDefinition, type SceneDocument, SceneDocumentLoader, type SceneEntityDefinition, SceneExporter, type SceneGLTFExportOptions, type SceneGuiDefinition, type SceneGuiLayer, SceneInspector, type SceneModelDefinition, SceneObject, type SceneObjectDefinition, type SceneObjectDefinitionBase, type SceneObjectOptions, type SceneSkinDefinition, type SceneSkinPosePart, SceneStats, SceneStatsDisplay, SchematicParser, type SchematicParserOptions, SectionMesh, type SectionMeshEntry, type SectionMeshTemplate, SectionModels, type Serializable, type SkinGeometries, SkinImage, SkinObject, type SkinObjectOptions, SkinPart, type SkinTexture, type SkinTextureCoordinates, SkinTextures, Skins, type SpecialItemPart, type SpecialItemRenderer, SpecialItems, type StructureNBT, StructureParser, type TextureAsset, TextureAtlas, type TextureKey, TextureLoader, Textures, Ticker, type TickerFunction, TintColors, type Transformable, type TripleArray, UVMapper, WrappedImage, addBox3WireframeToObject, addWireframeToMesh, addWireframeToObject, applyElementRotation, applyGenericRotation, axisToVec3, base64decode, base64encode, capeTextureSizes, captureException, changeEvent, clampRotationDegrees, classicSkinGeometries, classicSkinTextureCoordinates, computeMorphedAttributes, createCanvas, createFluidGeometry, createGuiTextGeometry, createGuiTextureGeometry, createImage, entityAnimationTime, estimateBytesUsed, getBlockFluidState, getFluidKind, interleaveAttributes, isAssetKey, isBasicAssetKey, isBlockObject, isDisposable, isDoubleArray, isEntityObject, isGuiObject, isInstanceManager, isInstanceReference, isInstanceable, isInstancedMesh, isMesh, isMineRenderScene, isModelObject, isObject3D, isOrthographicCamera, isPerspectiveCamera, isQuadArray, isSceneObject, isTransformable, isTripleArray, isVector3, layoutGuiText, md5, mergeBufferAttributes, mergeBufferGeometries, mergeVertices, parseSceneDocument, prefix, probeImageSize, registerBrowserEnv, sampleEntityAnimation, sampleEntityKeyframes, sampleFluid, serializeBoxGeometryKey, serializeImageKey, serializeMaterialKey, serializeMeshKey, serializeTextureKey, sha1, sha256, sha512, shutdown, sleep, slimSkinGeometries, slimSkinTextureCoordinates, timingEnd, timingStart, toDegrees, toRadians, toTrianglesDrawMode, trimCanvas };