Would this work for the forming of the multiblock.
public void onNeighborBlockChange(World world, int x, int y, int z , Block neighborBlock){
updateMutiBlockStructure(world, x, y, z);
}
public void onBlockAdded(World world, int x, int y, int z){
updateMutiBlockStructure(world, x, y, z);
}
public void updateMutiBlockStructure(World world, int x, int y, int z){
isMutiBlockStructure(world, x, y, z);
}
public boolean isMutiBlockStructure(World world, int x1, int y1, int z1){
boolean mStructure = false;
boolean currentCheckStructure = true;
for(int x2 = 0; x2 < 3; x2++){
for(int z2 = 0; z2 < 3; z2++){
if(!mStructure){
currentCheckStructure = true;
for(int x3 = 0; x3 < 3; x3++){
for(int y3 = 0; y3 < 1; y3++){
for(int z3 = 0; z3 < 3; z3++){
if(currentCheckStructure && !world.getBlock(x1+x2-x3, y1+y3, z1+z2-z3).equals(ModBlocks.blockLaunchPad)){
currentCheckStructure = false;
}
}
}
}
if(currentCheckStructure){
for(int x3 = 0; x3 < 3; x3++){
for(int y3 = 0; y3 < 1; y3++){
for(int z3 = 0; z3 < 3; z3++){
world.setBlockMetadataWithNotify(x1+x2-x3, y1+y3, z1+z2-z3, x3*3+z3+1, 2);
}
}
}
}
}
mStructure = currentCheckStructure;
}
}
if(mStructure) return true;
if(world.getBlockMetadata(x1, y1, z1) > 0) world.setBlockMetadataWithNotify(x1, y1, z1, 0, 3);
return false;
}