UNPKG

bedrock-development

Version:

APIs for creating and editing files related to Minecraft Bedrock development.

53 lines (52 loc) 1.99 kB
import { Directories } from "../../file_manager.js"; import { currentFormatVersion } from "../../utils.js"; import { MinecraftDataType } from "../minecraft.js"; export class ServerBlock extends MinecraftDataType { static get DirectoryPath() { return Directories.BEHAVIOR_PATH + 'blocks/'; } constructor(filepath, template) { super(filepath, template); this.format_version = template.format_version; this["minecraft:block"] = template["minecraft:block"]; } static createFromTemplate(nameData) { return new ServerBlock(this.createFilePath(nameData), { format_version: currentFormatVersion, "minecraft:block": { description: { identifier: nameData.fullname, }, components: {} } }); } setDisplayData(name) { this["minecraft:block"].description.identifier = name.fullname; this["minecraft:block"].components["minecraft:display_name"] = `tile.${name.fullname}.name`; this["minecraft:block"].components["minecraft:material_instances"] = { "*": { texture: name.shortname } }; } setExplosionResistance(resistance) { if (typeof (resistance) === 'boolean') { this["minecraft:block"].components["minecraft:destructible_by_explosion"] = resistance; } else { this["minecraft:block"].components["minecraft:destructible_by_explosion"] = { explosion_resistance: resistance }; } } setFriction(friction = 0.4) { this["minecraft:block"].components["minecraft:friction"] = friction; } setLightEmission(emission) { this["minecraft:block"].components["minecraft:light_emission"] = emission; } setLootTable(table = "loot_tables/blocks/empty.json") { this["minecraft:block"].components["minecraft:loot"] = table; } }