package lumaceon.mods.clockworkphase2.api.block;
import net.minecraft.block.Block;
import net.minecraft.util.math.BlockPos;
public interface IMultiblockTemplate
{
/**
* @return The number of blocks in this multiblock minus one.
*/
public int getMaxIndex();
/**
* Used first to get the offset to put down the construction block, and then to set the new block at the end, once
* all the construction blocks are placed.
* @param index The index of this template, ranging between 0 and the return value of getMaxIndex.
* @return The data for the block
*/
public BlockData getBlockForIndex(int index);
/**
* Note, the x,y,z coordinates are local to the multiblock assembler. So 0,1,0 is one block above it. Metadata can
* range from 0 to 15 (both inclusive) and should be the metadata representing your final block.
*/
public class BlockData
{
public int meta;
public Block block;
protected BlockPos pos;
public BlockData(int x, int y, int z, int meta, Block block)
{
this.pos = new BlockPos(x, y, z);
this.meta = meta;
this.block = block;
}
public Block getBlock() {
return block;
}
public BlockPos getPosition() {
return pos;
}
}
}