UNPKG

mcstructure-js

Version:

A NodeJS package for .mcstructure read & write

234 lines (165 loc) 11.3 kB
# MCStructure.js v1.2.0 documentation <a name="MCS"></a> - Table of Contents * [Class: MCStructure](#MCS) * [new MCStructure(xL, yL, zL)](#new_MCS_new) * _instance_ * [mcs.getVolume()](#MCS+getVolume) ⇒ [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * [mcs.getBlock(pos)](#MCS+getBlock) ⇒ [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) * [mcs.getBlockData(pos)](#MCS+getBlockData) ⇒ [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) * [mcs.getEntity(uniqueID)](#MCS+getEntity) ⇒ [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) * [mcs.setBlock(pos, block)](#MCS+setBlock) ⇒ [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) * [mcs.setBlockData(pos, data)](#MCS+setBlockData) ⇒ [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) * [mcs.fill(from, to, block)](#MCS+fill) ⇒ [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) * [mcs.summon(entity, pos)](#MCS+summon) ⇒ [``<BigInt>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) * [mcs.kill(uniqueID)](#MCS+kill) ⇒ [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) * [mcs.serialize()](#MCS+serialize) ⇒ [``<ArrayBuffer>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) * _static_ * [MCStructure.deserialize(buf)](#MCS+deserialize) <a name="new_MCS_new"></a> ## new MCStructure(xL, yL, zL) * ``xL`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) X side length. * ``yL`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Y side length. * ``zL`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Z side length. Create a mcstructure with given size. <a name="MCS+getVolume"></a> ## mcs.getVolume() * Returns: [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Get volume of of the structure. <a name="MCS+getBlock"></a> ## mcs.getBlock(pos) * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * Returns: [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Get a block in the structure. Returns a [general tag of block](https://minecraft.wiki/w/Bedrock_Edition_level_format/Other_data_format#Block) in normal. <a name="MCS+getBlockData"></a> ## mcs.getBlockData(pos) * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * Returns: [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Get the block entity of a block. <a name="MCS+getEntity"></a> ## mcs.getEntity(uniqueID) * ``uniqueID`` [``<BigInt>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) Entity ID. * Returns: [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)|[``null``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null) The specified entity or null. Get the block entity of a block. <a name="MCS+setBlock"></a> ## mcs.setBlock(pos, block) * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * ``block`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Data of the block. * Returns: [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Place a block, and put given NBT data into block indices. Accepts a [general tag of block](https://minecraft.wiki/w/Bedrock_Edition_level_format/Other_data_format#Block) in ParseNBT.js object. Example: ```js const PMR = require("project-mirror-registry") , MCS = require("mcstructure-js"); var mcs = new MCS(1, 1, 1); mcs.setBlock( { x: 0, y: 0, z: 0 }, PMR.createUniversalTag("block", "minecraft:bedrock") ); ``` <a name="MCS+setBlockData"></a> ## mcs.setBlockData(pos, data) * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * ``data`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Data of the block entity. * Returns: [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Set the block entity of a block. Example: ```js const PMR = require("project-mirror-registry") , MCS = require("mcstructure-js"); var mcs = new MCS(1, 1, 1); mcs.setBlock( { x: 0, y: 0, z: 0 }, PMR.createUniversalTag("block", "minecraft:command_block") ); var be = PMR.createBlockEntity("command_block"); be["str>Command"] = "say Hello Minecraft!"; mcs.setBlockData( { x: 0, y: 0, z: 0 }, be ); ``` <a name="MCS+fill"></a> ## mcs.fill(from, to, block) * ``from`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``to`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) * ``block`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Block data. * Returns: [``<Boolean>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) Fill an area with given block. <a name="MCS+summon"></a> ## mcs.summon(entity, pos) * ``entity`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Block data. * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * Returns: [``<BigInt>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) Entity ID. Place an entity. Example: ```js const PMR = require("project-mirror-registry") , MCS = require("mcstructure-js"); var mcs = new MCS(1, 1, 1); var entity = PMR.createUniversalTag("entity"); entity["str>identifier"] = "minecraft:creeper"; entity["list>definitions"].push("+minecraft:creeper"); entity["list>definitions"].push("+"); mcs.summon( entity, { x: 0, y: 0, z: 0 } ); ``` <a name="MCS+kill"></a> ## mcs.kill(uniqueID) * ``uniqueID`` [``<BigInt>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) Entity ID. * ``pos`` [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) Position in the structure. * ``x`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos X. * ``y`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Y. * ``z`` [``<Number>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#number_type) Pos Z. * Returns: [``<Object>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)|[``null``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null) The entity removed or null. Remove specified entity. <a name="MCS+serialize"></a> ## mcs.serialize() * Returns: [``<ArrayBuffer>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) Serialize a MCStructure to NBT. Example: ```js const PMR = require("project-mirror-registry") , MCS = require("mcstructure-js") , fs = require("fs"); var mcs = new MCS(1, 1, 1); var entity = PMR.createUniversalTag("entity"); entity["str>identifier"] = "minecraft:creeper"; entity["list>definitions"].push("+minecraft:creeper"); entity["list>definitions"].push("+"); mcs.summon( entity, { x: 0, y: 0, z: 0 } ); var buffer = Buffer.from(mcs.serialize()); fs.writeFileSync("./creeper.mcstructure", buffer); // Then you can import it into MCBE. ``` <a name="MCS+deserialize"></a> ## MCStructure.deserialize(buf) * ``buf`` [``<ArrayBuffer>``](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) Input buffer. * Returns: [``<MCStrucure>``](#MCS) Deserialize mcstructure from blob.