Search in sources :

Example 1 with EnumStructureState

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]);
    }
}
Also used : ITileStructure(forestry.api.core.ITileStructure) EnumStructureState(forestry.core.gadgets.BlockStructure.EnumStructureState)

Aggregations

ITileStructure (forestry.api.core.ITileStructure)1 EnumStructureState (forestry.core.gadgets.BlockStructure.EnumStructureState)1