@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
99 lines (98 loc) • 2.81 kB
TypeScript
export default interface IModelGeometry {
format_version: string;
__comment__?: string;
"minecraft:geometry": IGeometry[];
}
export interface IGeometry {
description: IGeometryDescription;
bones: IGeometryBone[];
item_display_transforms?: ItemDisplayTransformsCollection;
texturewidth?: number;
textureheight?: number;
visible_bounds_width?: number;
visible_bounds_height?: number;
visible_bounds_offset?: number[];
}
export interface ItemDisplayTransformsCollection {
thirdperson_righthand?: ItemDisplayTransforms;
thirdperson_lefthand?: ItemDisplayTransforms;
firstperson_righthand?: ItemDisplayTransforms;
firstperson_lefthand?: ItemDisplayTransforms;
head?: ItemDisplayTransforms;
embedded?: ItemDisplayTransforms;
gui?: ItemDisplayTransforms;
ground?: ItemDisplayTransforms;
fixed?: ItemDisplayTransforms;
}
export interface ItemDisplayTransforms {
rotation?: number[];
translation?: number[];
scale?: number[];
rotation_pivot?: number[];
scale_pivot?: number[];
fit_to_frame?: boolean;
}
export interface IGeometryDescription {
identifier: string;
texture_width: number;
texture_height: number;
visible_bounds_width: number;
visible_bounds_height: number;
visible_bounds_offset: number[];
}
export interface IGeometryPolyMesh {
normalized_uvs?: boolean;
positions?: number[][];
normals?: number[][];
uvs?: number[][];
polys?: number[][][] | "tri_list" | "quad_list";
}
export interface IGeometryBone {
name: string;
pivot: number[];
rotation?: number[];
parent?: string;
binding?: string;
bind_pose_rotation?: number[];
cubes?: IGeometryBoneCube[];
locators?: {
[name: string]: number[];
};
poly_mesh?: IGeometryPolyMesh;
texture_meshes?: IGeometryBoneTextureMesh[];
}
/**
* A texture_mesh creates a flat billboard/sprite from a texture image.
* Each pixel becomes a 1×1 unit (1/16 block) on a plane.
* Used by attachables like bow, crossbow to render 2D item sprites in 3D.
*/
export interface IGeometryBoneTextureMesh {
texture: string;
local_pivot?: number[];
position?: number[];
rotation?: number[];
scale?: number[];
}
export interface IGeometryBoneCube {
origin: number[];
size: number[];
uv: number[] | IGeometryUVFaces;
rotation?: number[];
pivot?: number[];
inflate?: number;
mirror?: boolean;
}
export interface IGeometryUVFaces {
north?: IGeometryUVFace;
east?: IGeometryUVFace;
south?: IGeometryUVFace;
west?: IGeometryUVFace;
up?: IGeometryUVFace;
down?: IGeometryUVFace;
}
export interface IGeometryUVFace {
uv: number[];
uv_size: number[];
uv_rotation?: number;
material_instance?: string;
}