diff options
| -rw-r--r-- | patch.diff | 3087 |
1 files changed, 0 insertions, 3087 deletions
diff --git a/patch.diff b/patch.diff deleted file mode 100644 index db06287d97..0000000000 --- a/patch.diff +++ /dev/null @@ -1,3087 +0,0 @@ -From 9c09b6ebe1bfbef3d694b98b5e8c00f4fb37142e Mon Sep 17 00:00:00 2001 -From: Dream-Master <dream-master@gmx.net> -Date: Sat, 7 Oct 2017 22:49:34 +0200 -Subject: [PATCH] cherry pick Commit: f5abfcefe8d77e2c3c6284bff72de25c0a0ef774 - [f5abfce] - -The right method to find out whether the machine should break the block. ---- - .../common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java | 2 +- - .../machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java | 3 +-- - 2 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java -index cec1c5a..3bc1045 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java -+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Pump.java -@@ -201,7 +201,7 @@ public class GT_MetaTileEntity_Pump extends GT_MetaTileEntity_Hatch { - if (yHead <= 0) { - return false; - } -- if ((!consumeFluid(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord())) && (!getBaseMetaTileEntity().getAir(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()))) { -+ if ((!consumeFluid(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord())) && (!getBaseMetaTileEntity().getBlock(getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()).isAir(getBaseMetaTileEntity().getWorld(), getBaseMetaTileEntity().getXCoord(), yHead - 1, getBaseMetaTileEntity().getZCoord()))) { - - return false; - } -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java -index 3fa1a98..3f44900 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java -@@ -92,8 +92,7 @@ public abstract class GT_MetaTileEntity_ConcreteBackfillerBase extends GT_MetaTi - - private boolean isRefillableBlock(int aX, int aY, int aZ){ - IGregTechTileEntity aBaseTile = getBaseMetaTileEntity(); -- if (aBaseTile.getTileEntity(aX, aY, aZ) != null) return false; -- if (!aBaseTile.getAir(aX, aY, aZ) && aBaseTile.getBlock(aX, aY, aZ).getMaterial().isSolid()) return false; -+ if (!aBaseTile.getBlock(aX, aY, aZ).isAir(aBaseTile.getWorld(), aX, aY, aZ) || aBaseTile.getBlock(aX, aY, aZ).getMaterial().isSolid()) return false; - if (!GT_Utility.setBlockByFakePlayer(getFakePlayer(aBaseTile), aX, aY, aZ, GregTech_API.sBlockConcretes, 8, true)) return false; - return true; - } --- -1.9.5.msysgit.0 - -From 74199106670216396a0d2a9c9892969b13930e3e Mon Sep 17 00:00:00 2001 -From: Dream-Master <dream-master@gmx.net> -Date: Tue, 12 Sep 2017 23:18:27 +0200 -Subject: [PATCH] cherry pick bd305c45b038819de2a0e61166da7344dbc770c7 - 69d557908f447be138102676309e48e5f95b32b9 - -Fix localization of Item Distributor #1211 -https://github.com/Blood-Asp/GT5-Unofficial/pull/1211 ---- - src/main/java/gregtech/api/util/GT_LanguageManager.java | 1 + - .../tileentities/automation/GT_MetaTileEntity_ItemDistributor.java | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java -index 58e6d91..b2d977e 100644 ---- a/src/main/java/gregtech/api/util/GT_LanguageManager.java -+++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java -@@ -316,6 +316,7 @@ public class GT_LanguageManager { - // addStringLocalization("Interaction_DESCRIPTION_Index_208", "Grab"); - // addStringLocalization("Interaction_DESCRIPTION_Index_209", "Grab"); - // addStringLocalization("Interaction_DESCRIPTION_Index_210", "Grab"); -+ addStringLocalization("Interaction_DESCRIPTION_Index_211", "Items per side: "); - - } - -diff --git a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java -index 8239dc1..5fa3bc8 100644 ---- a/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java -+++ b/src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_ItemDistributor.java -@@ -153,7 +153,7 @@ public class GT_MetaTileEntity_ItemDistributor extends GT_MetaTileEntity_Buffer - //Adjust items per side by 1 or -1, constrained to the cyclic interval [0, 127] - itemsPerSide[aSide] += aPlayer.isSneaking() ? -1 : 1; - itemsPerSide[aSide] = (byte) ((itemsPerSide[aSide] + 128) % 128); -- GT_Utility.sendChatToPlayer(aPlayer, trans("110", "Items per side: " + itemsPerSide[aSide])); -+ GT_Utility.sendChatToPlayer(aPlayer, trans("211", "Items per side: ") + itemsPerSide[aSide]); - } - - @Override --- -1.9.5.msysgit.0 - -From 9956fee4454bc9ec54f5a0ed04e37d6589cbaf19 Mon Sep 17 00:00:00 2001 -From: Dream-Master <dream-master@gmx.net> -Date: Tue, 12 Sep 2017 23:16:04 +0200 -Subject: [PATCH] cherry pick - -dae15665ccb54a0a8d6a76ffcc7d48eae0abec15 - -Odp speed improving #1209 -https://github.com/Blood-Asp/GT5-Unofficial/pull/1209 ---- - .../multi/GT_MetaTileEntity_OreDrillingPlant1.java | 8 +- - .../multi/GT_MetaTileEntity_OreDrillingPlant2.java | 7 +- - .../multi/GT_MetaTileEntity_OreDrillingPlant3.java | 7 +- - .../multi/GT_MetaTileEntity_OreDrillingPlant4.java | 8 +- - .../GT_MetaTileEntity_OreDrillingPlantBase.java | 287 ++++++++++++++++++--- - 5 files changed, 274 insertions(+), 43 deletions(-) - -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant1.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant1.java -index 8d1f683..bd1c079 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant1.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant1.java -@@ -1,4 +1,3 @@ -- - package gregtech.common.tileentities.machines.multi; - - import gregtech.api.enums.ItemList; -@@ -49,4 +48,9 @@ public class GT_MetaTileEntity_OreDrillingPlant1 extends GT_MetaTileEntity_OreDr - protected int getMinTier() { - return 2; - } --} -+ -+ @Override -+ protected int getBaseProgressTime() { -+ return 960; -+ } -+} -\ No newline at end of file -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant2.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant2.java -index 2b161fe..272ea64 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant2.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant2.java -@@ -48,4 +48,9 @@ public class GT_MetaTileEntity_OreDrillingPlant2 extends GT_MetaTileEntity_OreDr - protected int getMinTier() { - return 3; - } --} -+ -+ @Override -+ protected int getBaseProgressTime() { -+ return 800; -+ } -+} -\ No newline at end of file -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant3.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant3.java -index 1be6391..f89c578 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant3.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant3.java -@@ -48,4 +48,9 @@ public class GT_MetaTileEntity_OreDrillingPlant3 extends GT_MetaTileEntity_OreDr - protected int getMinTier() { - return 4; - } --} -+ -+ @Override -+ protected int getBaseProgressTime() { -+ return 640; -+ } -+} -\ No newline at end of file -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant4.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant4.java -index 2488bc1..4059735 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant4.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlant4.java -@@ -1,4 +1,3 @@ -- - package gregtech.common.tileentities.machines.multi; - - import gregtech.api.enums.ItemList; -@@ -49,4 +48,9 @@ public class GT_MetaTileEntity_OreDrillingPlant4 extends GT_MetaTileEntity_OreDr - protected int getMinTier() { - return 5; - } --} -+ -+ @Override -+ protected int getBaseProgressTime() { -+ return 480; -+ } -+} -\ No newline at end of file -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java -index c34d8b0..a227ab7 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OreDrillingPlantBase.java -@@ -1,16 +1,18 @@ - package gregtech.common.tileentities.machines.multi; - --import static gregtech.api.enums.GT_Values.V; --import static gregtech.api.enums.GT_Values.VN; -- --import java.util.ArrayList; -- -+import gregtech.api.GregTech_API; - import gregtech.api.enums.ItemList; - import gregtech.api.enums.Materials; - import gregtech.api.enums.OrePrefixes; -+import gregtech.api.enums.Textures; - import gregtech.api.gui.GT_GUIContainer_MultiMachine; -+import gregtech.api.interfaces.ITexture; - import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; -+import gregtech.api.objects.GT_RenderedTexture; - import gregtech.api.objects.ItemData; -+import gregtech.api.util.GT_ModHandler; - import gregtech.api.util.GT_OreDictUnificator; - import gregtech.api.util.GT_Recipe; - import gregtech.api.util.GT_Utility; -@@ -20,40 +22,106 @@ import net.minecraft.block.Block; - import net.minecraft.entity.player.InventoryPlayer; - import net.minecraft.init.Blocks; - import net.minecraft.item.ItemStack; -+import net.minecraft.nbt.NBTTagCompound; - import net.minecraft.tileentity.TileEntity; - import net.minecraft.world.ChunkPosition; -+import net.minecraftforge.common.util.ForgeDirection; - import net.minecraftforge.fluids.FluidStack; - --public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTileEntity_DrillerBase { -+import java.util.ArrayList; -+ -+import static gregtech.api.enums.GT_Values.*; -+ -+public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTileEntity_MultiBlockBase { -+ private static final ItemStack miningPipe = GT_ModHandler.getIC2Item("miningPipe", 0); -+ private static final ItemStack miningPipeTip = GT_ModHandler.getIC2Item("miningPipeTip", 0); -+ private static final Block miningPipeBlock = GT_Utility.getBlockFromStack(miningPipe); -+ private static final Block miningPipeTipBlock = GT_Utility.getBlockFromStack(miningPipeTip); - - private final ArrayList<ChunkPosition> oreBlockPositions = new ArrayList<>(); - -+ private Block casingBlock; -+ private int casingMeta; -+ private int frameMeta; -+ private int casingTextureIndex; -+ -+ private ForgeDirection back; -+ private int xDrill, yDrill, zDrill, xCenter, zCenter, yHead; -+ -+ private boolean isPickingPipes; -+ - public GT_MetaTileEntity_OreDrillingPlantBase(int aID, String aName, String aNameRegional) { - super(aID, aName, aNameRegional); -+ initFields(); - } - - public GT_MetaTileEntity_OreDrillingPlantBase(String aName) { - super(aName); -+ initFields(); -+ } -+ -+ private void initFields() { -+ casingBlock = getCasingBlockItem().getBlock(); -+ casingMeta = getCasingBlockItem().get(0).getItemDamage(); -+ int frameId = 4096 + getFrameMaterial().mMetaItemSubID; -+ frameMeta = GregTech_API.METATILEENTITIES[frameId] != null ? GregTech_API.METATILEENTITIES[frameId].getTileEntityBaseType() : W; -+ casingTextureIndex = getCasingTextureIndex(); -+ isPickingPipes = false; -+ } -+ -+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) { -+ if (aSide == aFacing) -+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[casingTextureIndex],new GT_RenderedTexture(aActive ? Textures.BlockIcons.OVERLAY_FRONT_ORE_DRILL_ACTIVE : Textures.BlockIcons.OVERLAY_FRONT_ORE_DRILL)}; -+ return new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[casingTextureIndex]}; - } - -- @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "OreDrillingPlant.png"); - } - - @Override -- protected boolean workingDownward(ItemStack aStack, int xDrill, int yDrill, int zDrill, int xPipe, int zPipe, int yHead, int oldYHead){ -+ public void saveNBTData(NBTTagCompound aNBT) { -+ super.saveNBTData(aNBT); -+ aNBT.setBoolean("isPickingPipes", isPickingPipes); -+ } -+ -+ @Override -+ public void loadNBTData(NBTTagCompound aNBT) { -+ super.loadNBTData(aNBT); -+ isPickingPipes = aNBT.getBoolean("isPickingPipes"); -+ } -+ -+ @Override -+ public boolean checkRecipe(ItemStack aStack) { -+ setElectricityStats(); -+ int oldYHead = yHead; -+ if (!checkPipesAndSetYHead() || !isEnergyEnough()) { -+ stopMachine(); -+ return false; -+ } - if (yHead != oldYHead) oreBlockPositions.clear(); -+ if (isPickingPipes) { -+ if (tryPickPipe()) { -+ mOutputItems = new ItemStack[] {GT_Utility.copyAmount(1, miningPipe)}; -+ return true; -+ } else { -+ isPickingPipes = false; -+ stopMachine(); -+ return false; -+ } -+ } - -- fillMineListIfEmpty(xDrill, yDrill, zDrill, xPipe, zPipe, yHead); -+ putMiningPipesFromInputsInController(); -+ if (!tryConsumeDrillingFluid()) return false; -+ -+ fillMineListIfEmpty(); - if (oreBlockPositions.isEmpty()) { - if (!tryLowerPipe()) { -- if (waitForPipes()) return false; - isPickingPipes = true; - return true; - } - //new layer - fill again -- fillMineListIfEmpty(xDrill, yDrill, zDrill, xPipe, zPipe, yHead); -+ fillMineListIfEmpty(); - } - - ChunkPosition oreBlockPos = null; -@@ -64,7 +132,6 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile - oreBlock = getBaseMetaTileEntity().getBlock(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ); - } - -- if (!tryConsumeDrillingFluid()) return false; - if (oreBlock != null && oreBlock != Blocks.air) { - ArrayList<ItemStack> oreBlockDrops = getBlockDrops(oreBlock, oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ); - getBaseMetaTileEntity().getWorld().setBlockToAir(oreBlockPos.chunkPosX, oreBlockPos.chunkPosY, oreBlockPos.chunkPosZ); -@@ -74,29 +141,29 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile - return true; - } - -- @Override -- protected boolean checkHatches(){ -- return !mMaintenanceHatches.isEmpty() && !mInputHatches.isEmpty() && !mOutputBusses.isEmpty() && !mEnergyHatches.isEmpty(); -+ private boolean isEnergyEnough() { -+ long requiredEnergy = 512 + getMaxInputVoltage() * 4; -+ for (GT_MetaTileEntity_Hatch_Energy energyHatch : mEnergyHatches) { -+ requiredEnergy -= energyHatch.getEUVar(); -+ if (requiredEnergy <= 0) return true; -+ } -+ return false; - } - -- @Override -- protected void setElectricityStats() { -+ private boolean tryPickPipe() { -+ if (yHead == yDrill) return false; -+ if (checkBlockAndMeta(xCenter, yHead + 1, zCenter, miningPipeBlock, W)) -+ getBaseMetaTileEntity().getWorld().setBlock(xCenter, yHead + 1, zCenter, miningPipeTipBlock); -+ getBaseMetaTileEntity().getWorld().setBlockToAir(xCenter, yHead, zCenter); -+ return true; -+ } -+ -+ private void setElectricityStats() { - this.mEfficiency = getCurrentEfficiency(null); - this.mEfficiencyIncrease = 10000; -- //T1 = 12; T2 = 48; T3 = 192; T4 = 768 -- this.mEUt = 3 * (1 << (getMinTier() << 1)); -- //T1 = 960; T2 = 480; T3 = 240; T4 = 120 -- this.mMaxProgresstime = (isPickingPipes ? 80 : 1920) / (1 << getMinTier()); -- -- long voltage = getMaxInputVoltage(); -- long overclockEu = V[Math.max(1, GT_Utility.getTier(voltage)) - 1]; -- while (this.mEUt <= overclockEu) { -- this.mEUt *= 4; -- this.mMaxProgresstime /= 2; -- } -- -- this.mEUt = -this.mEUt; -- this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); -+ int overclock = 1 << GT_Utility.getTier(getMaxInputVoltage()) - 1; -+ this.mEUt = -12 * overclock * overclock; -+ this.mMaxProgresstime = (isPickingPipes ? 80 : getBaseProgressTime()) / overclock; - } - - private ItemStack[] getOutputByDrops(ArrayList<ItemStack> oreBlockDrops) { -@@ -149,17 +216,37 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile - } - - private boolean tryConsumeDrillingFluid() { -- if (!depleteInput(new FluidStack(ItemList.sDrillingFluid, 2000))) { -- mMaxProgresstime = 0; -- return false; -+ return depleteInput(new FluidStack(ItemList.sDrillingFluid, 2000)); -+ } -+ -+ private void putMiningPipesFromInputsInController() { -+ int maxPipes = miningPipe.getMaxStackSize(); -+ if (isHasMiningPipes(maxPipes)) return; -+ -+ ItemStack pipes = getStackInSlot(1); -+ for (ItemStack storedItem : getStoredInputs()) { -+ if (!storedItem.isItemEqual(miningPipe)) continue; -+ -+ if (pipes == null) { -+ setInventorySlotContents(1, GT_Utility.copy(miningPipe)); -+ pipes = getStackInSlot(1); -+ } -+ -+ if (pipes.stackSize == maxPipes) break; -+ -+ int needPipes = maxPipes - pipes.stackSize; -+ int transferPipes = storedItem.stackSize < needPipes ? storedItem.stackSize : needPipes; -+ -+ pipes.stackSize += transferPipes; -+ storedItem.stackSize -= transferPipes; - } -- return true; -+ updateSlots(); - } - -- private void fillMineListIfEmpty(int xDrill, int yDrill, int zDrill, int xPipe, int zPipe, int yHead) { -+ private void fillMineListIfEmpty() { - if (!oreBlockPositions.isEmpty()) return; - -- tryAddOreBlockToMineList(xPipe, yHead - 1, zPipe); -+ tryAddOreBlockToMineList(xCenter, yHead - 1, zCenter); - if (yHead == yDrill) return; //skip controller block layer - - int radius = getRadiusInChunks() << 4; -@@ -184,8 +271,134 @@ public abstract class GT_MetaTileEntity_OreDrillingPlantBase extends GT_MetaTile - } - } - -+ private boolean tryLowerPipe() { -+ if (!isHasMiningPipes()) return false; -+ -+ if (yHead <= 0) return false; -+ if (checkBlockAndMeta(xCenter, yHead - 1, zCenter, Blocks.bedrock, W)) return false; -+ -+ getBaseMetaTileEntity().getWorld().setBlock(xCenter, yHead - 1, zCenter, miningPipeTipBlock); -+ if (yHead != yDrill) getBaseMetaTileEntity().getWorld().setBlock(xCenter, yHead, zCenter, miningPipeBlock); -+ -+ getBaseMetaTileEntity().decrStackSize(1, 1); -+ return true; -+ } -+ -+ private boolean isHasMiningPipes() { -+ return isHasMiningPipes(1); -+ } -+ -+ private boolean isHasMiningPipes(int minCount) { -+ ItemStack pipe = getStackInSlot(1); -+ return pipe != null && pipe.stackSize > minCount - 1 && pipe.isItemEqual(miningPipe); -+ } -+ -+ @Override -+ public boolean checkMachine(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { -+ updateCoordinates(); -+ //check base layer -+ for (int xOff = -1 + back.offsetX; xOff <= 1 + back.offsetX; xOff++) { -+ for (int zOff = -1 + back.offsetZ; zOff <= 1 + back.offsetZ; zOff++) { -+ if (xOff == 0 && zOff == 0) continue; -+ -+ IGregTechTileEntity tTileEntity = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xOff, 0, zOff); -+ if (!checkCasingBlock(xOff, 0, zOff) -+ && !addMaintenanceToMachineList(tTileEntity, casingTextureIndex) -+ && !addInputToMachineList(tTileEntity, casingTextureIndex) -+ && !addOutputToMachineList(tTileEntity, casingTextureIndex) -+ && !addEnergyInputToMachineList(tTileEntity, casingTextureIndex)) -+ return false; -+ } -+ } -+ if (mMaintenanceHatches.isEmpty() || mInputHatches.isEmpty() || mOutputBusses.isEmpty() || mEnergyHatches.isEmpty()) return false; -+ if (GT_Utility.getTier(getMaxInputVoltage()) < getMinTier()) return false; -+ //check tower -+ for (int yOff = 1; yOff < 4; yOff++) { -+ if (!checkCasingBlock(back.offsetX, yOff, back.offsetZ) -+ || !checkFrameBlock(back.offsetX + 1, yOff, back.offsetZ) -+ || !checkFrameBlock(back.offsetX - 1, yOff, back.offsetZ) -+ || !checkFrameBlock(back.offsetX, yOff, back.offsetZ + 1) -+ || !checkFrameBlock(back.offsetX, yOff, back.offsetZ - 1) -+ || !checkFrameBlock(back.offsetX, yOff + 3, back.offsetZ)) -+ return false; -+ } -+ return true; -+ } -+ -+ private void updateCoordinates() { -+ xDrill = getBaseMetaTileEntity().getXCoord(); -+ yDrill = getBaseMetaTileEntity().getYCoord(); -+ zDrill = getBaseMetaTileEntity().getZCoord(); -+ back = ForgeDirection.getOrientation(getBaseMetaTileEntity().getBackFacing()); -+ xCenter = xDrill + back.offsetX; -+ zCenter = zDrill + back.offsetZ; -+ } -+ -+ private boolean checkPipesAndSetYHead() { -+ yHead = yDrill - 1; -+ while (checkBlockAndMeta(xCenter, yHead, zCenter, miningPipeBlock, W)) yHead--; //skip pipes -+ //is pipe tip OR is controller layer -+ if (checkBlockAndMeta(xCenter, yHead, zCenter, miningPipeTipBlock, W) || ++yHead == yDrill) return true; -+ //pipe column is broken - try fix -+ getBaseMetaTileEntity().getWorld().setBlock(xCenter, yHead, zCenter, miningPipeTipBlock); -+ return true; -+ } -+ -+ private boolean checkCasingBlock(int xOff, int yOff, int zOff) { -+ return checkBlockAndMetaOffset(xOff, yOff, zOff, casingBlock, casingMeta); -+ } -+ //meta of frame is getTileEntityBaseType; frame should be checked using its drops (possible a high weight operation) -+ private boolean checkFrameBlock(int xOff, int yOff, int zOff) { -+ return checkBlockAndMetaOffset(xOff, yOff, zOff, GregTech_API.sBlockMachines, frameMeta); -+ } -+ -+ private boolean checkBlockAndMetaOffset(int xOff, int yOff, int zOff, Block block, int meta) { -+ return checkBlockAndMeta(xDrill + xOff, yDrill + yOff, zDrill + zOff, block, meta); -+ } -+ -+ private boolean checkBlockAndMeta(int x, int y, int z, Block block, int meta) { -+ return (meta == W || getBaseMetaTileEntity().getMetaID(x, y, z) == meta) -+ && getBaseMetaTileEntity().getBlock(x, y, z) == block; -+ } -+ -+ @Override -+ public boolean isCorrectMachinePart(ItemStack aStack) { -+ return true; -+ } -+ -+ @Override -+ public int getMaxEfficiency(ItemStack aStack) { -+ return 10000; -+ } -+ -+ @Override -+ public int getPollutionPerTick(ItemStack aStack) { -+ return 0; -+ } -+ -+ @Override -+ public int getDamageToComponent(ItemStack aStack) { -+ return 0; -+ } -+ -+ @Override -+ public boolean explodesOnComponentBreak(ItemStack aStack) { -+ return false; -+ } -+ -+ protected abstract ItemList getCasingBlockItem(); -+ -+ protected abstract Materials getFrameMaterial(); -+ -+ protected abstract int getCasingTextureIndex(); -+ - protected abstract int getRadiusInChunks(); - -+ protected abstract int getMinTier(); -+ -+ //returns theoretical progress time for LV energy hatch -+ protected abstract int getBaseProgressTime(); -+ - protected String[] getDescriptionInternal(String tierSuffix) { - String casings = getCasingBlockItem().get(0).getDisplayName(); - return new String[]{ --- -1.9.5.msysgit.0 - -From a166a5bbd3a8d9809c2c3c3444451c2870a98cc7 Mon Sep 17 00:00:00 2001 -From: Dream-Master <dream-master@gmx.net> -Date: Tue, 12 Sep 2017 23:11:20 +0200 -Subject: [PATCH] cherry pick ded594c86c701a0ff1f2282b4d6bff9cc7b1b9f6 - c6d39f12fdf85edbeadc725e0b398fa70eb15bd0 - -Patched ME energy tunnel, now they can emit GT energy. #1200 -https://github.com/Blood-Asp/GT5-Unofficial/pull/1200 ---- - src/main/java/gregtech/GT_Mod.java | 1 + - .../loaders/postload/GT_AE2EnergyTunnelLoader.java | 27 +++++++ - .../gregtech/loaders/postload/PartP2PGTPower.java | 84 ++++++++++++++++++++++ - 3 files changed, 112 insertions(+) - create mode 100644 src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java - create mode 100644 src/main/java/gregtech/loaders/postload/PartP2PGTPower.java - -diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java -index 939d03a..e1f9842 100644 ---- a/src/main/java/gregtech/GT_Mod.java -+++ b/src/main/java/gregtech/GT_Mod.java -@@ -625,6 +625,7 @@ public class GT_Mod implements IGT_Mod { - new GT_CropLoader().run(); - new GT_Worldgenloader().run(); - new GT_CoverLoader().run(); -+ new GT_AE2EnergyTunnelLoader().run(); - LoadArmorComponents.init(); - - GT_RecipeRegistrator.registerUsagesForMaterials(new ItemStack(Blocks.planks, 1), null, false); -diff --git a/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java b/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java -new file mode 100644 -index 0000000..a558696 ---- /dev/null -+++ b/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java -@@ -0,0 +1,27 @@ -+package gregtech.loaders.postload; -+ -+import appeng.items.parts.PartType; -+import gregtech.GT_Mod; -+import gregtech.api.util.GT_Log; -+ -+import java.lang.reflect.Field; -+ -+public class GT_AE2EnergyTunnelLoader implements Runnable { -+ @Override -+ public void run() { -+ if (GT_Mod.gregtechproxy.mAE2Integration) { -+ try { -+ load(); -+ } catch (Throwable e) { -+ GT_Log.out.println("Failed to load P2P tunnel for GT electricity"); -+ e.printStackTrace(GT_Log.out); -+ } -+ } -+ } -+ -+ public void load() throws Throwable { -+ Field f = PartType.class.getDeclaredField("myPart"); -+ f.setAccessible(true); -+ f.set(PartType.P2PTunnelEU, PartP2PGTPower.class); -+ } -+} -diff --git a/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java -new file mode 100644 -index 0000000..30a3377 ---- /dev/null -+++ b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java -@@ -0,0 +1,84 @@ -+package gregtech.loaders.postload; -+ -+import appeng.api.networking.IGridNode; -+import appeng.api.networking.ticking.IGridTickable; -+import appeng.api.networking.ticking.TickRateModulation; -+import appeng.api.networking.ticking.TickingRequest; -+import appeng.parts.p2p.PartP2PIC2Power; -+import gregtech.api.interfaces.tileentity.IEnergyConnected; -+import gregtech.api.util.GT_Utility; -+import net.minecraft.item.ItemStack; -+import net.minecraft.tileentity.TileEntity; -+import net.minecraft.world.World; -+import net.minecraftforge.common.util.ForgeDirection; -+ -+public class PartP2PGTPower extends PartP2PIC2Power implements IGridTickable { -+ public PartP2PGTPower(ItemStack is) { -+ super(is); -+ } -+ -+ public final World getWorld() { -+ return tile.getWorldObj(); -+ } -+ -+ public final int getXCoord() { -+ return tile.xCoord; -+ } -+ -+ public final short getYCoord() { -+ return (short) tile.yCoord; -+ } -+ -+ public final int getZCoord() { -+ return tile.zCoord; -+ } -+ -+ public final int getOffsetX(byte aSide, int aMultiplier) { -+ return getXCoord() + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier; -+ } -+ -+ public final short getOffsetY(byte aSide, int aMultiplier) { -+ return (short) (getYCoord() + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier); -+ } -+ -+ public final int getOffsetZ(byte aSide, int aMultiplier) { -+ return getZCoord() + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier; -+ } -+ -+ public final TileEntity getTileEntity(int aX, int aY, int aZ) { -+ return getWorld().getTileEntity(aX, aY, aZ); -+ } -+ -+ public final TileEntity getTileEntityAtSide(byte aSide) { -+ int tX = getOffsetX(aSide, 1), tY = getOffsetY(aSide, 1), tZ = getOffsetZ(aSide, 1); -+ return getWorld().getTileEntity(tX, tY, tZ); -+ } -+ -+ public boolean outputEnergy() { -+ if (getOfferedEnergy() == 0) { -+ return false; -+ } -+ TileEntity t = getTileEntityAtSide((byte) side.ordinal()); -+ if (t instanceof IEnergyConnected) { -+ long voltage = 8 << (getSourceTier() * 2); -+ if (voltage > getOfferedEnergy()) { -+ voltage = (long) getOfferedEnergy(); -+ } -+ if (((IEnergyConnected) t).injectEnergyUnits(GT_Utility.getOppositeSide(side.ordinal()), voltage, 1) > 0) { -+ drawEnergy(voltage); -+ return true; -+ } -+ } -+ return false; -+ } -+ -+ @Override -+ public TickingRequest getTickingRequest(IGridNode iGridNode) { -+ return new TickingRequest(1, 20, false, false); -+ } -+ -+ @Override -+ public TickRateModulation tickingRequest(IGridNode iGridNode, int i) { -+ return outputEnergy() ? TickRateModulation.FASTER : TickRateModulation.SLOWER; -+ } -+} -\ No newline at end of file --- -1.9.5.msysgit.0 - -From a4a0a7c2cc3c299969c62e509cc3c366a90214f3 Mon Sep 17 00:00:00 2001 -From: Dream-Master <dream-master@gmx.net> -Date: Tue, 12 Sep 2017 23:06:55 +0200 -Subject: [PATCH] cherry pick 11213d18d7345ee29f2efce6c5d421a855bed056 - fb163d1be0aa291508bb6513e34cacba3ca06b36 - fb508132d91543d5e837dfa4fac09cf5e4b9e7a8 - d682ca0d36e3824b1bf73cc800f58c4126bcf104 - 0f2db4f76a88c26ca08b2da444b264444ce01316 - 50229e4506687d184c93ed702cdeeecea65e326a - -f5195f822d9951015c4ef6599e5b4f6544ec0714 -fbdb6ceecf60183ab382f043b78b61941157eccf -55af1972b86a82bf6038342aa1a3bf9013d0f164 - -c0d9d5a268da4b58385ee95e27408e06829c74b8 -416890142c0fa62617fc6e4537826689635e9eb3 -d532cb67f7bc68243e3d2dc2a12a466ed9c9e2d9 -d1671eaf33b3b4223da174e115f35b9bc1f19c5a -4d90afad87375e3f1013a493f4b3b5d4e92bf521 -3c397d61697c13f0467e0cb67fb127fff8401f71 -64957ccd0f51ef283cc561d52a5439c3752c4e71 - -b7e0863207253ee758742a22c607c3ccc37af6d3 - -ae5a1e117d47876de9d2d2e8ea581e15686c5e1a -a0eb30d03f8fc311598f628ad45b5365c7391917 -505a9c263e88e5519bade6a3167f829e41e13e64 - -9cbb9c66a2f63e7e0cb4aceebfc9c93776b82be2 - -Drillers upgrade #1163 -https://github.com/Blood-Asp/GT5-Unofficial/pull/1163 ---- - src/main/java/gregtech/api/enums/ItemList.java | 2 +- - .../api/gui/GT_GUIContainer_MultiMachine.java | 25 +- - .../GT_MetaTileEntity_Hatch_DataAccess.java | 4 + - .../multi/GT_MetaTileEntity_AssemblyLine.java | 2 +- - .../GT_MetaTileEntity_ConcreteBackfiller1.java | 51 +++ - .../GT_MetaTileEntity_ConcreteBackfiller2.java | 66 ++++ - .../GT_MetaTileEntity_ConcreteBackfillerBase.java | 125 ++++++++ - .../multi/GT_MetaTileEntity_DrillerBase.java | 357 +++++++++++++++++++++ - .../machines/multi/GT_MetaTileEntity_OilDrill.java | 270 ---------------- - .../multi/GT_MetaTileEntity_OilDrill1.java | 51 +++ - .../multi/GT_MetaTileEntity_OilDrill2.java | 51 +++ - .../multi/GT_MetaTileEntity_OilDrill3.java | 51 +++ - .../multi/GT_MetaTileEntity_OilDrillBase.java | 152 +++++++++ - .../GT_MetaTileEntity_OreDrillingPlantBase.java | 269 ++-------------- - .../preload/GT_Loader_MetaTileEntities.java | 13 +- - 15 files changed, 959 insertions(+), 530 deletions(-) - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfiller1.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfiller2.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ConcreteBackfillerBase.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DrillerBase.java - delete mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill1.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill2.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill3.java - create mode 100644 src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java - -diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java -index b1c993a..1e0f667 100644 ---- a/src/main/java/gregtech/api/enums/ItemList.java -+++ b/src/main/java/gregtech/api/enums/ItemList.java -@@ -661,7 +661,7 @@ public enum ItemList implements IItemContainer { - Casing_Tank_1, Casing_Tank_2, Casing_Tank_3, Casing_Tank_4, Casing_Tank_5, Casing_Tank_6, Casing_Tank_7, Casing_Tank_8, Casing_Tank_9, Casing_Tank_10, Casing_Tank_11, Casing_Tank_12, Casing_Tank_13, Casing_Tank_14, Casing_Tank_15, Casing_Tank_0, - MobRep_LV, MobRep_MV, MobRep_HV, MobRep_EV, MobRep_IV, MobRep_LuV, MobRep_ZPM, MobRep_UV, Cover_PlayerDetector, Machine_Multi_HeatExchanger, - Block_BronzePlate, Block_IridiumTungstensteel, Block_Plascrete, Block_TungstenSteelReinforced, -- Honeycomb, Charcoal_Pile, Block_BrittleCharcoal, Seismic_Prospector, Seismic_Prospector_Adv, OilDrill, OreDrill1, OreDrill2, OreDrill3, OreDrill4, PyrolyseOven, OilCracker, Crop_Drop_UUMBerry, Crop_Drop_UUABerry, Empty_Board_Basic, Empty_Board_Elite, -+ Honeycomb, Charcoal_Pile, Block_BrittleCharcoal, Seismic_Prospector, Seismic_Prospector_Adv, OilDrill1, OilDrill2, OilDrill3, ConcreteBackfiller1, ConcreteBackfiller2, OreDrill1, OreDrill2, OreDrill3, OreDrill4, PyrolyseOven, OilCracker, Crop_Drop_UUMBerry, Crop_Drop_UUABerry, Empty_Board_Basic, Empty_Board_Elite, - Battery_Charger_4by4_ULV, Battery_Charger_4by4_LV, Battery_Charger_4by4_MV, Battery_Charger_4by4_HV, Battery_Charger_4by4_EV, Battery_Charger_4by4_IV, Battery_Charger_4by4_LuV, Battery_Charger_4by4_ZPM, Battery_Charger_4by4_UV, Battery_Charger_4by4_MAX, - MicroTransmitter_HV, MicroTransmitter_EV, MicroTransmitter_IV, MicroTransmitter_LUV, MicroTransmitter_ZPM, - Crop_Drop_Bauxite, Crop_Drop_Ilmenite, Crop_Drop_Pitchblende, Crop_Drop_Uraninite, Crop_Drop_Thorium, Crop_Drop_Nickel, Crop_Drop_Zinc, Crop_Drop_Manganese, Crop_Drop_Scheelite, Crop_Drop_Platinum, Crop_Drop_Iridium, Crop_Drop_Osmium, Crop_Drop_Naquadah, Uraniumcell_1, Uraniumcell_2, Uraniumcell_4, Moxcell_1, Moxcell_2, Moxcell_4, -diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java -index 5a7c487..62e6f8c 100644 ---- a/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java -+++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java -@@ -1,14 +1,18 @@ - package gregtech.api.gui; - --import gregtech.api.interfaces.tileentity.IGregTechTileEntity; --import gregtech.api.util.GT_LanguageManager; --import gregtech.api.util.GT_ModHandler; --import gregtech.api.util.GT_Utility; --import gregtech.common.items.GT_MetaGenerated_Tool_01; --import net.minecraft.entity.player.InventoryPlayer; --import net.minecraft.item.ItemStack; -+ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -+ -+ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -+ import gregtech.api.util.GT_LanguageManager; -+ import gregtech.api.util.GT_ModHandler; -+ import gregtech.api.util.GT_Utility; -+ import gregtech.common.items.GT_MetaGenerated_Tool_01; -+ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_DrillerBase; -+ import gregtech.common.tileentities.machines.multi.GT_MetaTileEntity_LargeTurbine; -+ import net.minecraft.entity.player.InventoryPlayer; -+ import net.minecraft.item.ItemStack; -+ - --import static gregtech.api.enums.GT_Values.RES_PATH_GUI; - - /** - * NEVER INCLUDE THIS FILE IN YOUR MOD!!! -@@ -54,13 +58,12 @@ public class GT_GUIContainer_MultiMachine extends GT_GUIContainerMetaTile_Machin - } else { - fontRendererObj.drawString(trans("142","Running perfectly."), 10, 16, 16448255); - } -- int id = mContainer.mTileEntity.getMetaTileID(); -- if (id == 1157 || id == 1158 || id == 1177 || id == 1178 || id == 1179) { -+ if (mContainer.mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_DrillerBase) { - ItemStack tItem = mContainer.mTileEntity.getMetaTileEntity().getStackInSlot(1); - if (tItem == null || !GT_Utility.areStacksEqual(tItem, GT_ModHandler.getIC2Item("miningPipe", 1L))) { - fontRendererObj.drawString(trans("143", "Missing Mining Pipe"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); - } -- } else if (id == 1131 || id == 1151 || id == 1152 || id == 1153) { -+ } else if (mContainer.mTileEntity.getMetaTileEntity() instanceof GT_MetaTileEntity_LargeTurbine) { - ItemStack tItem = mContainer.mTileEntity.getMetaTileEntity().getStackInSlot(1); - if (tItem == null || !(tItem.getItem() == GT_MetaGenerated_Tool_01.INSTANCE && tItem.getItemDamage() >= 170 && tItem.getItemDamage() <= 177)) { - fontRendererObj.drawString(trans("144", "Missing Turbine Rotor"), 10, ((GT_Container_MultiMachine) mContainer).mActive == 0 ? 40 : 24, 16448255); -diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java -index e28f5e6..bbdf0ec 100644 ---- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java -+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_DataAccess.java -@@ -98,4 +98,8 @@ public class GT_MetaTileEntity_Hatch_DataAccess extends GT_MetaTileEntity_Hatch - public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { - return false; - } -+ @Override -+ public int getInventoryStackLimit() { -+ return 1; -+ } - } -diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java -index 85fa737..2934fc5 100644 ---- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java -+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java -@@ -322,7 +322,7 @@ public class GT_MetaTileEntity_AssemblyLine - * @param state using bitmask, 1 for IntegratedCircuit, 2 for DataStick, 4 for DataOrb - */ - private boolean isCorrectDataItem(ItemStack aStack, int state){ -- if ((state & 1) != 0 && ItemList.Circuit_Integrated.isStackEqual(aStack, false, true)) return true; |
