UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

151 lines (150 loc) 7.19 kB
import BlockBaseType from "./BlockBaseType"; import { BlockRenderType } from "./BlockRenderType"; import { IEventHandler } from "ste-events"; import IFile from "../storage/IFile"; import IComponent from "./IComponent"; import IBlockTypeBehaviorPack from "./IBlockTypeBehaviorPack"; import IManagedComponentSetItem from "./IManagedComponentSetItem"; import IManagedComponent from "./IManagedComponent"; import { ManagedComponent } from "./ManagedComponent"; import IDefinition from "./IDefinition"; import ManagedPermutation from "./ManagedPermutation"; import Project from "../app/Project"; import ProjectItem from "../app/ProjectItem"; import RelationsIndex from "../app/RelationsIndex"; import { IBlockResource } from "./IBlocksCatalog"; import { IBlockTypeCreationData } from "./IBlockTypeCreationData"; import { ITerrainTextureDataItem } from "./ITerrainTextureCatalog"; export declare enum BlockStateType { string = 0, boolean = 1, number = 2 } export default class BlockTypeDefinition implements IManagedComponentSetItem, IDefinition { private _typeId; private _typeData; private _baseType?; private _baseTypeId; private _material; private _isCustom; private _wrapper; private _file?; private _id?; private _isLoaded; private _loadedWithComments; _data?: IBlockTypeBehaviorPack; private _managed; private _onLoaded; private _onComponentAdded; private _onComponentRemoved; private _onComponentChanged; get data(): IBlockTypeBehaviorPack; get numericId(): number; get baseTypeId(): string; get mapColor(): string; get isCustom(): boolean; get baseType(): BlockBaseType; /** * Returns true if this block uses a unit cube geometry. * Unit cube blocks can be rendered with textures from blocks.json or material_instances. * * A block is considered a unit cube if: * 1. It has minecraft:unit_cube component (legacy) * 2. It has geometry = "minecraft:geometry.full_block" or "geometry.full_block" * 3. It has no geometry component at all (defaults to unit cube) */ get isUnitCube(): boolean; get geometryIdentifier(): any; /** * Gets the blocks.json catalog resource for this block, if it exists. * Returns the IBlockResource which contains texture references for unit cube blocks. */ getBlockCatalogResource(project: Project): Promise<IBlockResource | undefined>; setBlockCatalogTexture(project: Project, sideId: "north" | "east" | "west" | "south" | "up" | "down", textureId: string): Promise<void>; setTerrainTexture(project: Project, terrainTextureId: string, textureData: ITerrainTextureDataItem): Promise<void>; ensureBlockAndTerrainLinks(project: Project, creationData: IBlockTypeCreationData): Promise<void>; getFormatVersionIsCurrent(): Promise<boolean>; getMissingPermutations(): string[]; addNextPermutation(): void; addPermutation(condition: string): void; ensurePermutations(): void; hasCustomPermutationConditions(): boolean; ensureDescription(): void; getManagedPermutations(): ManagedPermutation[]; getPermutations(): import("./IBlockTypeBehaviorPack").IBlockPermutation[]; getPlacementDirectionTrait(): import("./IBlockTraits").IPlacementDirectionBlockTrait; getPlacementPositionTrait(): import("./IBlockTraits").IPlacementPositionBlockTrait; ensurePlacementDirectionTrait(): void; removePlacementDirectionTrait(): void; ensurePlacementPositionTrait(): void; removePlacementPositionTrait(): void; ensureBlockTraits(): void; removeState(stateName: string): void; get formatVersion(): string | undefined; getFormatVersion(): number[] | undefined; getStateValues(stateId: string): string[] | number[] | boolean[]; getStates(): { [id: string]: string[] | number[] | boolean[]; }; addState(stateName: string, stateType: BlockStateType): void; getExpandedStateList(): any[]; getStateList(): any[]; set baseType(baseType: BlockBaseType); get material(): string; renderType: BlockRenderType; get icon(): string; get typeId(): string; get shortTypeName(): string; get title(): string; constructor(name: string); get id(): string; set id(newId: string); get onComponentAdded(): import("ste-events").IEvent<BlockTypeDefinition, IManagedComponent>; get onComponentRemoved(): import("ste-events").IEvent<BlockTypeDefinition, string>; get onComponentChanged(): import("ste-events").IEvent<BlockTypeDefinition, IManagedComponent>; get isLoaded(): boolean; get behaviorPackFile(): IFile | undefined; get onLoaded(): import("ste-events").IEvent<BlockTypeDefinition, BlockTypeDefinition>; set behaviorPackFile(newFile: IFile | undefined); _handleFileUpdated(file: IFile, fileB: IFile): void; get shortId(): string; getPermutationByCondition(permutationCondition: string): import("./IBlockTypeBehaviorPack").IBlockPermutation; static getComponentFromBaseFileName(name: string): string; ensureComponent(id: string, defaultData?: IComponent | string | string[] | boolean | number[] | number | undefined): IManagedComponent | ManagedComponent; getComponent(id: string): IManagedComponent; getComponentsInBaseAndPermutations(id: string): IManagedComponent[]; notifyComponentUpdated(id: string): void; getAllComponents(): IManagedComponent[]; getComponents(): IManagedComponent[]; addComponent(id: string, componentOrData: ManagedComponent | IComponent | string | string[] | boolean | number[] | number | undefined): ManagedComponent; removeComponent(id: string): void; getTextureItems(blockTypeProjectItem: ProjectItem, project?: Project): Promise<{ [name: string]: ProjectItem; } | undefined>; getGeometryList(): any[]; /** * Gets the list of texture IDs used by this block. * Checks both material_instances component and blocks.json catalog. */ getTextureList(): string[]; /** * Gets texture IDs from blocks.json catalog for this block. * Used for unit cube blocks that define textures via blocks.json. */ getTextureListFromBlocksCatalog(project: Project): Promise<string[]>; _ensureBehaviorPackDataInitialized(): void; getPackRootFolder(): any; getCustomComponentIds(): string[]; getLootTablePaths(): string[]; addChildItems(project: Project, item: ProjectItem, index?: RelationsIndex): Promise<void>; static ensureOnFile(file: IFile, loadHandler?: IEventHandler<BlockTypeDefinition, BlockTypeDefinition>, preserveComments?: boolean): Promise<BlockTypeDefinition>; addCustomComponent(blockTypeItem: ProjectItem, componentName: string): Promise<void>; persist(): boolean; /** * 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>; }