bedrock-development
Version:
APIs for creating and editing files related to Minecraft Bedrock development.
111 lines (110 loc) • 3.6 kB
TypeScript
import { NameData } from "../../utils.js";
import { GeometryName } from "../client";
import { MinecraftDataType } from "../minecraft.js";
import { FormatVersion, Identifier, MolangTripleArray } from "../shared_types.js";
export interface IServerBlock {
format_version: FormatVersion;
["minecraft:block"]: {
description: IServerBlockDescription;
components: IServerBlockComponents;
permutations?: {
condition: string;
components: IServerBlockComponents;
}[];
};
}
export interface IServerBlockDescription {
identifier: Identifier;
register_to_creative_menu?: boolean;
is_experimental?: boolean;
menu_category?: {
category: string;
group?: string;
is_hidden_in_commands?: boolean;
};
states?: {
[key: string]: any;
};
traits?: {
[key: string]: any;
};
}
export interface IServerBlockComponents {
["minecraft:collision_box"]?: boolean | {
origin: MolangTripleArray;
size: MolangTripleArray;
};
["minecraft:crafting_table"]?: {
table_name: string;
crafting_tags: string[];
};
["minecraft:destructible_by_explosion"]?: boolean | {
explosion_resistance: number;
};
["minecraft:destructible_by_mining"]?: boolean | {
seconds_to_destroy: number;
};
["minecraft:flammable"]?: boolean | {
catch_chance_multiplier: number;
destroy_chance_multiplier: number;
};
["minecraft:display_name"]?: string;
["minecraft:friction"]?: number;
["minecraft:geometry"]?: GeometryName | {
identifier: GeometryName;
bone_visibility?: {
[key: string]: boolean | string;
};
};
["minecraft:light_dampening"]?: number;
["minecraft:light_emission"]?: number;
["minecraft:loot"]?: string;
["minecraft:map_color"]?: string | MolangTripleArray;
["minecraft:material_instances"]?: {
['*']: IServerBlockMaterialInstance;
[key: string]: IServerBlockMaterialInstance;
};
["minecraft:placement_filter"]?: {
conditions: {
allowed_faces?: 'up' | 'down' | 'north' | 'east' | 'south' | 'west' | 'side'[];
block_filter?: Identifier | {
tags: string;
}[];
}[];
};
["minecraft:selection_box"]?: boolean | {
origin: MolangTripleArray;
size: MolangTripleArray;
};
["minecraft:transformation"]?: {
translation?: MolangTripleArray;
rotation?: MolangTripleArray;
scale?: MolangTripleArray;
};
[key: string]: any;
}
export interface IServerBlockMaterialInstance {
texture: string;
render_method?: 'opaque' | 'double_sided' | 'alpha_test' | 'blend';
face_dimming?: boolean;
ambient_occlusion?: boolean;
}
export declare class ServerBlock extends MinecraftDataType implements IServerBlock {
format_version: FormatVersion;
["minecraft:block"]: {
description: IServerBlockDescription;
components: IServerBlockComponents;
permutations?: {
condition: string;
components: IServerBlockComponents;
}[];
};
static get DirectoryPath(): string;
constructor(filepath: string, template: IServerBlock);
static createFromTemplate(nameData: NameData): ServerBlock;
setDisplayData(name: NameData): void;
setExplosionResistance(resistance: number | boolean): void;
setFriction(friction?: number): void;
setLightEmission(emission: number): void;
setLootTable(table?: string): void;
}