UNPKG

@xmcl/model

Version:
53 lines 1.85 kB
import { BlockModel, PackMeta } from '@xmcl/resourcepack'; import { Object3D } from 'three/src/core/Object3D'; import { TextureLoader } from 'three/src/loaders/TextureLoader'; import { MeshBasicMaterial } from 'three/src/materials/MeshBasicMaterial'; import { Vector3 } from 'three/src/math/Vector3'; import type { Texture } from 'three/src/textures/Texture'; interface TextureData { url: string; animation?: PackMeta.Animation; } export interface TextureManager { hasTexture(path: string): boolean; loadTexture(path: string): Texture; } export declare class BasicTextureManager implements TextureManager { private textures; private loader; constructor(textures?: Record<string, TextureData>, loader?: TextureLoader); hasTexture(path: string): boolean; loadTexture(path: string): Texture; } export declare const DEFAULT_TRANSFORM: BlockModel.Transform; export declare const DEFAULT_DISPLAY: BlockModel.Display; export declare const BUILTIN_GENERATED: BlockModel.Resolved; export declare class BlockModelObject extends Object3D { animationLoop: boolean; displayOption: BlockModel.Display; applyDisplay(option: string): void; getCenter(): Vector3; } export declare class BlockModelFactory { readonly textureManager: TextureManager; readonly option: { clipUVs?: boolean; modelOnly?: boolean; }; static TRANSPARENT_MATERIAL: MeshBasicMaterial; private cachedMaterial; constructor(textureManager: TextureManager, option?: { clipUVs?: boolean; modelOnly?: boolean; }); /** * Get threejs `Object3D` for that block model. */ getObject(model: BlockModel.Resolved, options?: { uvlock?: boolean; y?: number; x?: number; }, fix?: number): BlockModelObject; } export {}; //# sourceMappingURL=block.d.ts.map