diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-05 13:23:14 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2017-01-05 13:23:14 +1000 |
commit | c65a2acb9f8d0caf7b3345364ce62291b77a3454 (patch) | |
tree | 29d17dbf80565d2cfc2328ef90fc4b414692d2b6 /src/Java | |
parent | 2a8498a5344e4abff763bea21797088709adcee5 (diff) | |
download | GT5-Unofficial-c65a2acb9f8d0caf7b3345364ce62291b77a3454.tar.gz GT5-Unofficial-c65a2acb9f8d0caf7b3345364ce62291b77a3454.tar.bz2 GT5-Unofficial-c65a2acb9f8d0caf7b3345364ce62291b77a3454.zip |
% More work on the Tree Farmer.
+ Added TreefarmManager.java, for static forestry related content.
Diffstat (limited to 'src/Java')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/forestry/trees/TreefarmManager.java | 84 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java | 212 |
2 files changed, 245 insertions, 51 deletions
diff --git a/src/Java/gtPlusPlus/xmod/forestry/trees/TreefarmManager.java b/src/Java/gtPlusPlus/xmod/forestry/trees/TreefarmManager.java new file mode 100644 index 0000000000..a965cd408d --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/forestry/trees/TreefarmManager.java @@ -0,0 +1,84 @@ +package gtPlusPlus.xmod.forestry.trees; + +import gregtech.api.enums.OrePrefixes; +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.reflect.ReflectionUtils; +import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.common.Optional; + +public class TreefarmManager { + + public static boolean isHumusLoaded = false; + public static boolean isForestryLogsLoaded = false; + public static boolean isForestryFenceLoaded = false; + public static boolean isForestrySaplingsLoaded = false; + public static boolean isForestryLeavesLoaded = false; + public static Block blockHumus; + + public static boolean isForestryValid(){ + if (!LoadedMods.Forestry){ + return false; + } + if (ReflectionUtils.doesClassExist("forestry.core.blocks.BlockSoil")){ + isHumusLoaded = true; + } + if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockLog")){ + isForestryLogsLoaded = true; + } + if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockArbFence")){ + isForestryFenceLoaded = true; + } + if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockSapling")){ + isForestrySaplingsLoaded = true; + } + if (ReflectionUtils.doesClassExist("forestry.arboriculture.blocks.BlockForestryLeaves")){ + isForestryLeavesLoaded = true; + } + return true; + } + + @Optional.Method(modid = "Forestry") + public static Block getHumus(){ + if(blockHumus != null){ + return blockHumus; + } + else if (ReflectionUtils.doesClassExist("forestry.core.blocks.BlockSoil")){ + try { + Class<?> humusClass = Class.forName("forestry.core.blocks.BlockSoil"); + ItemStack humusStack = ItemUtils.getCorrectStacktype("Forestry:soil", 1); + if (humusClass != null){ + blockHumus = Block.getBlockFromItem(humusStack.getItem()); + return Block.getBlockFromItem(humusStack.getItem()); + } + } catch (ClassNotFoundException e) {} + } + return null; +} + + public static boolean isWoodLog(Block log){ + String tTool = log.getHarvestTool(0); + return OrePrefixes.log.contains(new ItemStack(log, 1))&& ((tTool != null) && (tTool.equals("axe"))) || (log.getMaterial() == Material.wood); + } + + public static boolean isDirtBlock(Block dirt){ + return (dirt == Blocks.dirt ? true : (dirt == Blocks.grass ? true : (getHumus() == null ? false : (dirt == blockHumus ? true : false)))); + } + + public static boolean isFenceBlock(Block fence){ + return (fence == Blocks.fence ? true : (fence == Blocks.fence_gate ? true : (fence == Blocks.nether_brick_fence ? true : false))); + } + + public static boolean isAirBlock(Block air){ + return (air == Blocks.air ? true : (air instanceof BlockAir ? true : false)); + } + + /*public static boolean isSaplingBlock(Block sapling){ + return (sapling == Blocks.sapling ? true : (sapling == Blocks.)) + }*/ + +} diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java index ec475a6b6b..5341ebbf3e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntityTreeFarm.java @@ -1,7 +1,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi; import gregtech.api.GregTech_API; -import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -10,17 +9,15 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockB import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Recipe; +import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.item.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.xmod.forestry.trees.TreefarmManager; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import net.minecraft.block.Block; -import net.minecraft.block.BlockAir; -import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -43,6 +40,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock public ItemStack mOutputItem1; public ItemStack mOutputItem2; private Block Humus; + private boolean isForestryLoaded = TreefarmManager.isForestryValid(); public GregtechMetaTileEntityTreeFarm(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -150,7 +148,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Block tBlock = this.getBaseMetaTileEntity().getBlockOffset(0, +1, 0); Utils.LOG_INFO("Looking for air above the controller."); - if (!isAirBlock(tBlock)) { + if (!TreefarmManager.isAirBlock(tBlock)) { Utils.LOG_INFO("Did not find air above the controller."); return false; } else { @@ -166,7 +164,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock } if (running) { for (ChunkPosition tPos : tList1) { - if (isWoodLog(this.getBaseMetaTileEntity().getBlockOffset(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ))){ + if (TreefarmManager.isWoodLog(this.getBaseMetaTileEntity().getBlockOffset(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ))){ //This does the block change to brittle charcoal. //this.getBaseMetaTileEntity().getWorld().setBlock(this.getBaseMetaTileEntity().getXCoord() + tPos.chunkPosX, this.getBaseMetaTileEntity().getYCoord() + tPos.chunkPosY, this.getBaseMetaTileEntity().getZCoord() + tPos.chunkPosZ, GregTech_API.sBlockConcretes, 4, 3); @@ -192,7 +190,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Utils.LOG_INFO("Testing Side 1"); Block tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX + 1, aY, aZ); - if (aX + 1 < 6 && (isDirtBlock(tBlock))) { + if (aX + 1 < 6 && (TreefarmManager.isDirtBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX + 1, aY, aZ)) && (!aList2.contains(new ChunkPosition(aX + 1, aY, aZ)))){ p1 = true; Utils.LOG_INFO("set p1 true"); @@ -204,7 +202,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Utils.LOG_INFO("Testing Side 2"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX - 1, aY, aZ); - if (aX - 1 > -6 && (isDirtBlock(tBlock))) { + if (aX - 1 > -6 && (TreefarmManager.isDirtBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX - 1, aY, aZ)) && (!aList2.contains(new ChunkPosition(aX - 1, aY, aZ)))){ p2 = true; Utils.LOG_INFO("set p2 true"); @@ -216,45 +214,45 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Utils.LOG_INFO("Testing For Fence X+1"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX+1, aY+1, aZ); - if ((aY+1) == 1 && (isFenceBlock(tBlock))) { + if ((aY+1) == 1 && (TreefarmManager.isFenceBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX+1, aY+1, aZ)) && (!aList2.contains(new ChunkPosition(aX+1, aY+1, aZ)))){ //p3 = true; Utils.LOG_INFO("set p3 true"); } - } else if (!(isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX+1, aY+1, aZ)) { + } else if (!(TreefarmManager.isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX+1, aY+1, aZ)) { Utils.LOG_INFO("3- Looking for Fence at X:"+(aX+1)+" Y:"+(aY+1)+" Z:"+aZ+" but instead found "+tBlock.getLocalizedName()); return false; } Utils.LOG_INFO("Testing For Fence X-1"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX-1, aY+1, aZ); - if ((aY+1) == 1 && (isFenceBlock(tBlock))) { + if ((aY+1) == 1 && (TreefarmManager.isFenceBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX-1, aY+1, aZ)) && (!aList2.contains(new ChunkPosition(aX-1, aY+1, aZ)))){ //p3 = true; Utils.LOG_INFO("set p3 true"); } - } else if (!(isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX-1, aY+1, aZ)) { + } else if (!(TreefarmManager.isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX-1, aY+1, aZ)) { Utils.LOG_INFO("3- Looking for Fence at X:"+(aX-1)+" Y:"+(aY+1)+" Z:"+aZ+" but instead found "+tBlock.getLocalizedName()); return false; } Utils.LOG_INFO("Testing For Fence Z+1"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX, aY+1, aZ+1); - if ((aY+1) == 1 && (isFenceBlock(tBlock))) { + if ((aY+1) == 1 && (TreefarmManager.isFenceBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX, aY+1, aZ+1)) && (!aList2.contains(new ChunkPosition(aX, aY+1, aZ+1)))){ //p3 = true; Utils.LOG_INFO("set p3 true"); } - } else if (!(isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX, aY+1, aZ+1)) { + } else if (!(TreefarmManager.isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX, aY+1, aZ+1)) { Utils.LOG_INFO("3- Looking for Fence at X:"+(aX)+" Y:"+(aY+1)+" Z:"+(aZ+1)+" but instead found "+tBlock.getLocalizedName()); return false; } Utils.LOG_INFO("Testing For Fence Z-1"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX, aY+1, aZ-1); - if ((aY+1) == 1 && (isFenceBlock(tBlock))) { + if ((aY+1) == 1 && (TreefarmManager.isFenceBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX, aY+1, aZ-1)) && (!aList2.contains(new ChunkPosition(aX, aY+1, aZ-1)))){ //p3 = true; Utils.LOG_INFO("set p3 true"); } - } else if (!(isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX, aY+1, aZ-1)) { + } else if (!(TreefarmManager.isFenceBlock(tBlock)) || !this.getBaseMetaTileEntity().getAirOffset(aX, aY+1, aZ-1)) { Utils.LOG_INFO("3- Looking for Fence at X:"+(aX)+" Y:"+(aY+1)+" Z:"+(aZ-1)+" but instead found "+tBlock.getLocalizedName()); return false; } @@ -277,7 +275,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Utils.LOG_INFO("Testing Side 5"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX, aY, aZ + 1); - if (aZ + 1 < 6 && (isDirtBlock(tBlock))) { + if (aZ + 1 < 6 && (TreefarmManager.isDirtBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX, aY, aZ + 1)) && (!aList2.contains(new ChunkPosition(aX, aY, aZ + 1)))){ p5 = true; Utils.LOG_INFO("set p5 true"); @@ -289,7 +287,7 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock Utils.LOG_INFO("Testing Side 6"); tBlock = this.getBaseMetaTileEntity().getBlockOffset(aX, aY, aZ - 1); - if (aZ - 1 > -6 && (isDirtBlock(tBlock))) { + if (aZ - 1 > -6 && (TreefarmManager.isDirtBlock(tBlock))) { if (!aList1.contains(new ChunkPosition(aX, aY, aZ - 1)) && (!aList2.contains(new ChunkPosition(aX, aY, aZ - 1)))){ p6 = true; Utils.LOG_INFO("set p6 true"); @@ -308,51 +306,163 @@ public class GregtechMetaTileEntityTreeFarm extends GT_MetaTileEntity_MultiBlock return true; } - public boolean isWoodLog(Block log){ - String tTool = log.getHarvestTool(0); - return OrePrefixes.log.contains(new ItemStack(log, 1))&& ((tTool != null) && (tTool.equals("axe"))) || (log.getMaterial() == Material.wood); - } - - public boolean isDirtBlock(Block dirt){ - return (dirt == Blocks.dirt ? true : (dirt == Blocks.grass ? true : (getHumus() == null ? false : (dirt == Humus ? true : false)))); - } - - public boolean isFenceBlock(Block fence){ - return (fence == Blocks.fence ? true : (fence == Blocks.fence_gate ? true : (fence == Blocks.nether_brick_fence ? true : false))); - } - public boolean isAirBlock(Block air){ - return (air == Blocks.air ? true : (air instanceof BlockAir ? true : false)); - } private Block getHumus(){ - if (!LoadedMods.Forestry){ - return null; - } - else if(this.Humus != null){ - return this.Humus; - } - else if (ReflectionUtils.doesClassExist("forestry.core.blocks.BlockSoil")){ - try { - Class<?> humusClass = Class.forName("forestry.core.blocks.BlockSoil"); - ItemStack humusStack = ItemUtils.getCorrectStacktype("Forestry:soil", 1); - if (humusClass != null){ - this.Humus = Block.getBlockFromItem(humusStack.getItem()); - return Block.getBlockFromItem(humusStack.getItem()); - } - } catch (ClassNotFoundException e) {} - } + if (!LoadedMods.Forestry){ return null; } + return TreefarmManager.getHumus(); + } @Override public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + + // Life Lessons from Greg. + /** + [23:41:15] <GregoriusTechneticies> xdir and zdir are x2 and not x3 + [23:41:26] <GregoriusTechneticies> thats you issue + [23:44:33] <Alkalus> mmm? + [23:44:49] <Alkalus> Should they be x3? + [23:44:50] <GregoriusTechneticies> you just do a x2, what is for a 5x5 multiblock + [23:45:01] <GregoriusTechneticies> x3 is for a 7x7 one + [23:45:06] <Alkalus> I have no idea what that value does, tbh.. + [23:45:15] <GregoriusTechneticies> its the offset + [23:45:23] <Alkalus> Debugging checkMachine has been a pain and I usually trash designs that don't work straight up.. + [23:45:28] <GregoriusTechneticies> it determines the horizontal middle of the multiblock + [23:45:47] <GregoriusTechneticies> which is in your case THREE blocks away from the controller + [23:45:51] <Alkalus> Ahh + [23:45:57] <GregoriusTechneticies> and not 2 + [23:46:06] <Alkalus> Noted, thanks :D + */ + + int xDir = net.minecraftforge.common.util.ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetX * 7; + int zDir = net.minecraftforge.common.util.ForgeDirection.getOrientation(aBaseMetaTileEntity.getBackFacing()).offsetZ * 7; + + for (int i = -7; i <= 7; i++) { + for (int j = -7; j <= 7; j++) { + for (int h = 0; h <= 1; h++) { + + + IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, h, zDir + j); + + // Reactor Floor/Roof inner 14x14 + if ((i != -7 && i != 7) && (j != -7 && j != 7)) { + + // Reactor Floor & Roof (Inner 5x5) + Mufflers, Dynamos and Fluid outputs. + if (h == 0) { + + //If not a hatch, continue, else add hatch and continue. + if ((!addMufflerToMachineList(tTileEntity, 70)) && (!addOutputToMachineList(tTileEntity, 70)) && (!addDynamoToMachineList(tTileEntity, 70))) { + if (!TreefarmManager.isDirtBlock(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j))) { + Utils.LOG_INFO("Dirt like block missing from inner 14x14."); + Utils.LOG_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()); + aBaseMetaTileEntity.getWorld().setBlock( + (aBaseMetaTileEntity.getXCoord()+(xDir+i)), + (aBaseMetaTileEntity.getYCoord()+(h)), + (aBaseMetaTileEntity.getZCoord()+(zDir+j)), + Blocks.melon_block); + return false; + } + } + } + + // Inside 2 layers, mostly air + else { + //Farm Inner 14x14 + if (!TreefarmManager.isWoodLog(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j)) || !TreefarmManager.isAirBlock(aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j)) || !aBaseMetaTileEntity.getAirOffset(xDir+i, h, zDir+j)) { + Utils.LOG_INFO("Dirt like block missing from inner 14x14, layer 2."); //TODO + Utils.LOG_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()); + aBaseMetaTileEntity.getWorld().setBlock( + (aBaseMetaTileEntity.getXCoord()+(xDir+i)), + (aBaseMetaTileEntity.getYCoord()+(h)), + (aBaseMetaTileEntity.getZCoord()+(zDir+j)), + Blocks.melon_block); + return false; + } + + } + + } + + //Dealt with inner 5x5, now deal with the exterior. + else { + + //Deal with all 4 sides (Reactor walls) + if (h == 1 || h == 2) { + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasingsMisc) { + Utils.LOG_INFO("Glass Casings Missing from somewhere in the second layer."); + Utils.LOG_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()); + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 13) { + Utils.LOG_INFO("Glass Casings Missing from somewhere in the second layer."); + return false; + } + } + + //Deal with top and Bottom edges (Inner 5x5) + else if (h == 0 || h == 3) { + if ((!addMaintenanceToMachineList(tTileEntity, 70)) && (!addInputToMachineList(tTileEntity, 70)) && (!addOutputToMachineList(tTileEntity, 70)) && (!addDynamoToMachineList(tTileEntity, 70))) { + if ((xDir + i != 0) || (zDir + j != 0)) {//no controller + if (aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j) != ModBlocks.blockCasingsMisc) { + Utils.LOG_INFO("Matter Fabricator Casings Missing from one of the edges on the top layer."); + Utils.LOG_INFO("Instead, found "+aBaseMetaTileEntity.getBlockOffset(xDir + i, h, zDir + j).getLocalizedName()); + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, h, zDir + j) != 12) { + Utils.LOG_INFO("Matter Fabricator Casings Missing from one of the edges on the top layer."); + return false; + } + } + } + } + } + } + } + } + + if (this.mMufflerHatches.size() != 4){ + Utils.LOG_INFO("You require EXACTLY 4 muffler hatches on top. FOUR."); + return false; + } + if (this.mEnergyHatches != null) { + for (int i = 0; i < this.mEnergyHatches.size(); i++) { + if (this.mEnergyHatches.get(i).mTier < 5){ + Utils.LOG_INFO("You require at LEAST V tier Energy Hatches."); + Utils.LOG_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord()); + return false; + } + } + } + if (this.mOutputHatches != null) { + for (int i = 0; i < this.mOutputHatches.size(); i++) { + + if (this.mOutputHatches.get(i).mTier < 5 && (this.mOutputHatches.get(i).getBaseMetaTileEntity() instanceof GregtechMTE_NuclearReactor)){ + Utils.LOG_INFO("You require at LEAST V tier Output Hatches."); + Utils.LOG_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord()); + Utils.LOG_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getInventoryName()); + return false; + } + } + } + if (this.mInputHatches != null) { + for (int i = 0; i < this.mInputHatches.size(); i++) { + if (this.mInputHatches.get(i).mTier < 5){ + Utils.LOG_INFO("You require at LEAST V tier Input Hatches."); + Utils.LOG_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getXCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getYCoord()+","+this.mOutputHatches.get(i).getBaseMetaTileEntity().getZCoord()); + Utils.LOG_INFO(this.mOutputHatches.get(i).getBaseMetaTileEntity().getInventoryName()); + return false; + } + } + } mWrench = true; mScrewdriver = true; mSoftHammer = true; mHardHammer = true; mSolderingTool = true; - mCrowbar = true; + mCrowbar = true; + Utils.LOG_INFO("Multiblock Formed."); return true; } |