use of forestry.core.gadgets.BlockStructure.EnumStructureState in project ForestryMC by ForestryMC.
the class StructureLogic method validateStructure.
@Override
public void validateStructure() {
ITileStructure master = structure.getCentralTE();
if (!structure.isMaster() && master != null) {
master.validateStructure();
return;
}
EnumStructureState state = EnumStructureState.INDETERMINATE;
boolean rotate;
for (int i = 0; i < schematas.length; i++) {
if (!schematas[i].isEnabled()) {
continue;
}
state = determineMasterState(schematas[i], false);
rotate = false;
if (state == EnumStructureState.INVALID && schematas[i].getWidth() != schematas[i].getDepth()) {
state = determineMasterState(schematas[i], true);
rotate = true;
}
if (state == EnumStructureState.VALID) {
activeSchemata = (short) i;
isRotated = rotate;
break;
}
}
// Structure state is indeterminate, possibly caused by chunkloading. Remain calm, do nothing.
if (state == EnumStructureState.INDETERMINATE) {
return;
}
if (state == EnumStructureState.VALID) {
// ((TileEntity)structure).zCoord));
if (!structure.isMaster()) {
structure.makeMaster();
markStructureBlocks(schematas[activeSchemata]);
}
/*
* int offsetX = schematas[activeSchemata].getxOffset(); int offsetZ = schematas[activeSchemata].getzOffset(); if(isRotated) { offsetX =
* schematas[activeSchemata].getzOffset(); offsetZ = schematas[activeSchemata].getxOffset();
*
* }
*/
// System.out.println(String.format("Offsets: %s and %s.", offsetX, offsetZ));
} else if (structure.isMaster()) // Structure is invalid, break it up.
{
resetStructureBlocks(schematas[activeSchemata]);
}
}
Aggregations