@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
49 lines (48 loc) • 2.24 kB
TypeScript
import IFile from "../storage/IFile";
import { IEventHandler } from "ste-events";
import IModelGeometry, { IGeometry } from "./IModelGeometry";
export default class ModelGeometryDefinition {
private _file?;
private _isLoaded;
private _loadedWithComments;
private _data?;
definitions: IGeometry[];
private _identifiers;
private _onLoaded;
get data(): IModelGeometry;
get formatVersion(): string;
get isLoaded(): boolean;
get defaultGeometry(): IGeometry;
get file(): IFile | undefined;
set file(newFile: IFile | undefined);
get onLoaded(): import("ste-events").IEvent<ModelGeometryDefinition, ModelGeometryDefinition>;
get identifiers(): string[];
getById(id: string): IGeometry | undefined;
getVisibleBoundsWidth(defIndex: number): number | undefined;
getVisibleBoundsHeight(defIndex: number): number | undefined;
getVisibleBoundsOffset(defIndex: number): number[] | undefined;
getTextureWidth(defIndex: number): number | undefined;
ensureDefault(id: string): void;
getTextureHeight(defIndex: number): number | undefined;
static ensureOnFile(file: IFile, loadHandler?: IEventHandler<ModelGeometryDefinition, ModelGeometryDefinition>): Promise<ModelGeometryDefinition>;
getFormatVersionIsCurrent(): Promise<boolean>;
getFormatVersion(): number[];
persist(): boolean;
ensureDefinition(name: string): void;
save(): Promise<void>;
populateDefsAndIds(): void;
/**
* Load geometry data from a raw JavaScript object (parsed JSON).
* Useful for loading geometry data without a file reference.
* @param data The geometry JSON data object
* @param geometryId Optional specific geometry identifier to select from multi-geometry files
*/
loadFromData(data: object, geometryId?: string): void;
/**
* Loads the definition from the file.
* @param preserveComments If true, uses comment-preserving JSON parsing for edit/save cycles.
* If false (default), uses efficient standard JSON parsing.
* Can be called again with true to "upgrade" a read-only load to read/write.
*/
load(preserveComments?: boolean): Promise<void>;
}