public static void init() { Utils.LOG_INFO("Registering Tile Entities."); // GameRegistry.registerTileEntity(TileEntityReverter.class, "TE_blockGriefSaver"); // GameRegistry.registerTileEntity(TileEntityReverter.class, "Tower Reverter"); // GameRegistry.registerTileEntity(TileEntityNHG.class, "NuclearFueledHeliumGenerator"); // GameRegistry.registerTileEntity(TileEntityCharger.class, "TE_Charger"); // GameRegistry.registerTileEntity(TileEntityHeliumGenerator.class, "Helium"); GameRegistry.registerTileEntity(TileEntityWorkbench.class, "TileWorkbench"); GameRegistry.registerTileEntity(TileEntityWorkbenchAdvanced.class, "TileWorkbenchAdvanced"); }
@Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { int controllerX = aBaseMetaTileEntity.getXCoord(); int controllerY = aBaseMetaTileEntity.getYCoord(); int controllerZ = aBaseMetaTileEntity.getZCoord(); byte tSide = getBaseMetaTileEntity().getBackFacing(); if ((getBaseMetaTileEntity() .getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 1)) && (getBaseMetaTileEntity() .getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 2) && (getBaseMetaTileEntity() .getAirAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 3)))) { int tAirCount = 0; for (byte i = -1; i < 2; i = (byte) (i + 1)) { for (byte j = -1; j < 2; j = (byte) (j + 1)) { for (byte k = -1; k < 2; k = (byte) (k + 1)) { if (getBaseMetaTileEntity().getAirOffset(i, j, k)) { Utils.LOG_INFO( "Found Air at: " + (controllerX + i) + " " + (controllerY + k) + " " + (controllerZ + k)); // if (aBaseMetaTileEntity.getWorld().isRemote){ // asdasd.renderStandardBlock(ModBlocks.MatterFabricatorEffectBlock, (controllerX+i), // (controllerY+k), (controllerZ+k)); // UtilsRendering.drawBlockInWorld((controllerX+i), (controllerY+k), (controllerZ+k), // Color.YELLOW_GREEN); // } tAirCount++; } } } } if (tAirCount != 10) { Utils.LOG_INFO("False. Air != 10. Air == " + tAirCount); // return false; } for (byte i = 2; i < 6; i = (byte) (i + 1)) { // UtilsRendering.drawBlockInWorld((controllerX+i), (controllerY), (controllerZ), // Color.LIME_GREEN); IGregTechTileEntity tTileEntity; if ((null != (tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntityAtSideAndDistance(i, 2))) && (tTileEntity.getFrontFacing() == getBaseMetaTileEntity().getFrontFacing()) && (tTileEntity.getMetaTileEntity() != null) && ((tTileEntity.getMetaTileEntity() instanceof GregtechMetaTileEntity_IndustrialSinter))) { // Utils.LOG_INFO("False 1"); return false; } } int tX = getBaseMetaTileEntity().getXCoord(); int tY = getBaseMetaTileEntity().getYCoord(); int tZ = getBaseMetaTileEntity().getZCoord(); for (byte i = -1; i < 2; i = (byte) (i + 1)) { for (byte j = -1; j < 2; j = (byte) (j + 1)) { if ((i != 0) || (j != 0)) { for (byte k = 0; k < 5; k = (byte) (k + 1)) { // UtilsRendering.drawBlockInWorld((controllerX+i), (controllerY+k), (controllerZ+k), // Color.ORANGE); if (((i == 0) || (j == 0)) && ((k == 1) || (k == 2) || (k == 3))) { // UtilsRendering.drawBlockInWorld((controllerX+i), (controllerY+k), // (controllerZ+k), Color.TOMATO); if (getBaseMetaTileEntity() .getBlock( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity() .getMetaID( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) { } else if (!addToMachineList( getBaseMetaTileEntity() .getIGregTechTileEntity( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i))) && (!addEnergyInputToMachineList( getBaseMetaTileEntity() .getIGregTechTileEntity( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i))))) { Utils.LOG_INFO("False 2"); return false; } } else if (getBaseMetaTileEntity() .getBlock( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingBlock() && getBaseMetaTileEntity() .getMetaID( tX + (tSide == 5 ? k : tSide == 4 ? -k : i), tY + j, tZ + (tSide == 2 ? -k : tSide == 3 ? k : i)) == getCasingMeta()) { } else { Utils.LOG_INFO("False 3"); return false; } } } } } if (this.mOutputHatches.size() != 0 || this.mInputHatches.size() != 0) { Utils.LOG_INFO("Use Busses, Not Hatches for Input/Output."); return false; } if (this.mInputBusses.size() != 2 || this.mOutputBusses.size() != 2) { Utils.LOG_INFO("Incorrect amount of Input & Output busses."); return false; } this.mMaintenanceHatches.clear(); IGregTechTileEntity tTileEntity = getBaseMetaTileEntity() .getIGregTechTileEntityAtSideAndDistance(getBaseMetaTileEntity().getBackFacing(), 4); if ((tTileEntity != null) && (tTileEntity.getMetaTileEntity() != null)) { if ((tTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_Hatch_Maintenance)) { this.mMaintenanceHatches.add( (GT_MetaTileEntity_Hatch_Maintenance) tTileEntity.getMetaTileEntity()); ((GT_MetaTileEntity_Hatch) tTileEntity.getMetaTileEntity()).mMachineBlock = getCasingTextureIndex(); } else { Utils.LOG_INFO("Maintenance hatch must be in the middle block on the back."); return false; } } if (this.mMaintenanceHatches.size() != 1 || this.mEnergyHatches.size() != 1) { Utils.LOG_INFO("Incorrect amount of Maintenance or Energy hatches."); return false; } } else { Utils.LOG_INFO("False 5"); return false; } Utils.LOG_INFO("True"); return true; }