mcstructure-js
Version:
A NodeJS package for .mcstructure read & write
234 lines (165 loc) • 11.3 kB
Markdown
# 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.