Source: block.jsdoc

/**
 *
 * @namespace   Block
 * @description Static methods for the Block API
 *
 * @see http://www.minecraftforum.net/forums/minecraft-pocket-edition/mcpe-mods-tools/mcpe-mod-tool-discussion/1987726-custom-blocks-tutorial
 * @see https://github.com/Connor4898/ModPE-Scripts/wiki/Custom-blocks
 * @see https://github.com/zhuowei/ModPEScripts/blob/master/500ise_blocktest.js
 * @see https://github.com/zhuowei/ModPEScripts/blob/master/500ise_enchantingbench.js
 *
 *////

/**
 *
 * @memberof    Block
 * @function    defineBlock
 * @description Define a custom block with the specified blockId and attributes.
 *              See __*[MCPE Textures](textures)*__ for a list of current textures.
 *
 * @param {int}                blockId          - a valid, unused block ID between 0 and 255;
 *                                                see: {@tutorial block-ids}
 * @param {string}             blockName        - the block name
 * @param {Array<string, int>} texture          - the texture and offset used to decorate this block
 * @param {int}                [materialSource] - the material (block ID) this block is
 *                                                based on (useful for determining which
 *                                                tool is best used to break your block;
 *                                                see: {@tutorial block-ids})
 * @param {boolean}            [isOpaque]       - opaque if true, transparent if false
 * @param {int}                [renderType]     - the type of block to render
 *                                                see: {@tutorial block-render-types}
 *
 * @example
 * <caption>Credit: {@link https://goo.gl/58zbrm|Zhuowei Zhang}</caption>
 *
 * // create new block at level startup
 * var initialized = false;
 * var ID = 220;
 *
 * function selectLevelHook() {
 *   if (!initialized) {
 *     // make a Foo Stone
 *     Block.defineBlock(ID, "Foo Stone", ["glass", 0], 1, false, 0);
 *     Block.setDestroyTime(ID, 0);
 *     Block.setLightLevel(ID, 15);
 *     Block.setLightOpacity(ID, 0);
 *     Block.setColor(ID, [0xF5A9D0]);
 *     Block.setRenderLayer(ID, 1);
 *     initialized = true;
 *   }
 * }
 *
 *////

/**
 *
 * @memberof    Block
 * @function    getAllBlockIds
 * @description Return all available block IDs.
 *
 * @return {int[]} - the block IDs
 *
 * @see {@link Block.getRenderType} for example
 *
 *////

/**
 *
 * @memberof    Block
 * @function    getDestroyTime
 * @description desc
 *
 *////
function getDestroyTime(par1int, par2int) {}

/**
 *
 * @memberof    Block
 * @function    getFriction
 * @description desc
 *
 *////
function getFriction(par1int, par2int) {}

/**
 *
 * @memberof    Block
 * @function    getRenderType
 * @description Return the render type (shape) of a block with the specified blockId.
 *
 * @param  {int} blockId - the block ID (see: {@tutorial block-ids})
 *
 * @return {int}         - the render type (see: {@tutorial block-render-types})
 *
 * @example
 * // write all render types to a file
 * function writeRenderTypes() {
 *   var bids = Block.getAllBlockIds();
 *   var file = "rendertypes.txt";
 *   var bw = new java.io.BufferedWriter(new java.io.FileWriter(file));
 *   for (var i = 0; i < bids.length; i++) {
 *     var rt = Block.getRenderType(bids[i]);
 *     var name = Item.getName(bids[i], 0, false);
 *     bw.write(name + " - " + rt + "\n");
 *   }
 *   bw.close();
 * }
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setColor
 * @description Set the color of a block with the specified blockId and color.
 *
 * @param {int}      blockId - the block ID (see: {@tutorial block-ids})
 * @param {number[]} color   - a hexadecimal color value in the form: `[0xRRGGBB]`
 *
 * @see {@link http://html-color-codes.info|HTML Color Codes}
 *
 * @example
 * // make a block red
 * Block.setColor(220, [0xFF0000])
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setDestroyTime
 * @description Set the hardness of a block with the specified blockId and hardness.
 *
 * @param {int}    blockId  - the block ID (see: {@tutorial block-ids})
 * @param {double} hardness - the hardness (-1 = unbreakable; destroy time will
 *                            vary depending on tool used)
 *
 * @see {@link http://minecraft.gamepedia.com/Breaking#Blocks_by_hardness|Block Hardness}
 *
 * @example
 * // make Glass Pane unbreakable
 * Block.setDestroyTime(102, -1);
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setExplosionResistance
 * @description Set the explosion resistance of a block with the specified blockId and resistance.
 *
 * @param {int}    blockId    - the block ID (see: {@tutorial block-ids})
 * @param {double} resistance - the explosion resistance
 *
 * @see {@link http://minecraft.gamepedia.com/Explosion#Blast_resistance|Blast Resistance}
 *
 * @example
 * // make Gorilla Glass by changing Glass Pane from 1.5 to 6000 (same as obsidian)
 * Block.setExplosionResistance(102, 6000);
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setFriction
 * @description desc
 *
 *////
function setFriction(par1int, par2double) {}

/**
 *
 * @memberof    Block
 * @function    setLightLevel
 * @description Set the light level of a block with the specified blockId and lightLevel.
 *
 * @param {int} blockId    - the block ID (see: {@tutorial block-ids})
 * @param {int} lightLevel - the light level of the block (0-15)
 *
 * @see {@link http://minecraft.gamepedia.com/Light#Brightness|Brightness}
 *
 * @example
 * // tone down that glowstone
 * Block.setLightLevel(89, 4);
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setLightOpacity
 * @description Set the light opacity of a block with the specified blockId and opacity.
 *
 * @param {int} blockId - the block ID (see: {@tutorial block-ids})
 * @param {int} opacity - the block's opacity to light passing through
 *                        (0-10 where 0 = most light can pass through,
 *                        10 = least light can pass through)
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setRedstoneConsumer
 * @description desc
 *
 *////
function setRedstoneConsumer(par1int, par2boolean) {}

/**
 *
 * @todo find out if translucent (2) is working
 *
 * @memberof    Block
 * @function    setRenderLayer
 * @description Set the render layer for a block with the specified blockId and layer.
 *
 * @param {int} blockId - the block ID (see: {@tutorial block-ids})
 * @param {int} layer   - the render layer [0: opaque, 1: transparent, 2 : translucent - __broken?__]
 *
 * @example
 * // render a transparent block
 * Block.setRenderLayer(220, 1);
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setRenderType
 * @description Set the render type for a block with the specified blockId and type.
 *
 * @param {int} blockId - the block ID (see: {@tutorial block-ids})
 * @param {int} type    - the type of block to render (see:
 *                        {@tutorial block-render-types})
 *
 * @example
 * // render custom block with blockId 220 using the cactus shape
 * Block.setRenderType(220, 13);
 *
 *////

/**
 *
 * @memberof    Block
 * @function    setShape
 * @descriptio * @license CC-BY-SA-4.0 * @license CC-BY-SA-4.0n Set the size of a block with the specified blockId and start/finish coordinates.
 *
 * @param {int}    blockId - the block ID (see: {@tutorial block-ids})
 * @param {double} startX  - the starting x coordinate
 * @param {double} startY  - the starting y coordinate
 * @param {double} startZ  - the starting z coordinate
 * @param {double} finishX - the finishing x coordinate
 * @param {double} finishY - the finishing y coordinate
 * @param {double} finishZ - the finishing z coordinate
 *
 * @example
 * // set the shape of a block to be 1m wide(X) by 1m long(Z) by .75m high(Y)
 * Block.setShape(45, 0, 0, 0, 1, 0.75, 1);
 *
 *////