diff options
author | Alkalus <draknyte1@hotmail.com> | 2017-08-24 12:22:13 +1000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2017-08-24 12:22:13 +1000 |
commit | 7dfe9ef6ce26546b06fd8b08e9ffe2cd5e24ec0f (patch) | |
tree | c5ae1078b15260e4925c02813ff258c8d929af75 /src/Java/gtPlusPlus/xmod/gregtech/common | |
parent | e7da0d15a5663a17e664f13a04ce2d4b6998ffea (diff) | |
download | GT5-Unofficial-7dfe9ef6ce26546b06fd8b08e9ffe2cd5e24ec0f.tar.gz GT5-Unofficial-7dfe9ef6ce26546b06fd8b08e9ffe2cd5e24ec0f.tar.bz2 GT5-Unofficial-7dfe9ef6ce26546b06fd8b08e9ffe2cd5e24ec0f.zip |
% Heavily changed the structure of the FFPP.
$ Began fix for FFPP recipe handling.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java | 136 |
1 files changed, 101 insertions, 35 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java index 96cb21d84a..a3a62aa7d5 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_Refinery.java @@ -10,8 +10,11 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.CustomRecipeMap; import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; +import gregtech.api.util.Recipe_GT; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; @@ -67,7 +70,62 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc @Override public boolean checkRecipe(final ItemStack aStack) { - + + ArrayList<FluidStack> tFluidList = getStoredFluids(); + for (int i = 0; i < tFluidList.size() - 1; i++) { + for (int j = i + 1; j < tFluidList.size(); j++) { + if (GT_Utility.areFluidsEqual((FluidStack) tFluidList.get(i), (FluidStack) tFluidList.get(j))) { + if (((FluidStack) tFluidList.get(i)).amount >= ((FluidStack) tFluidList.get(j)).amount) { + tFluidList.remove(j--); + } else { + tFluidList.remove(i--); + break; + } + } + } + } + + long tVoltage = getMaxInputVoltage(); + byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); + FluidStack[] tFluids = tFluidList.toArray(new FluidStack[tFluidList.size()]); + if (tFluids.length > 0) { + Utils.LOG_INFO("Good Recipe. [1]"); + for(int i = 0;i<tFluids.length;i++){ + Utils.LOG_INFO("Good Recipe. [1-"+i+"]"); + GT_Recipe tRecipe = CustomRecipeMap.sFissionFuelProcessing.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tFluids[i]}, new ItemStack[]{}); + if (tRecipe != null) { + Utils.LOG_INFO("Good Recipe. [2]"); + if (tRecipe.isRecipeInputEqual(true, tFluids, new ItemStack[]{})) { + Utils.LOG_INFO("Good Recipe. [3]"); + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + if (tRecipe.mEUt <= 16) { + this.mEUt = (tRecipe.mEUt * (1 << tTier - 1) * (1 << tTier - 1)); + this.mMaxProgresstime = (tRecipe.mDuration / (1 << tTier - 1)); + } else { + this.mEUt = tRecipe.mEUt; + this.mMaxProgresstime = tRecipe.mDuration; + while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { + this.mEUt *= 4; + this.mMaxProgresstime /= 2; + } + } + if (this.mEUt > 0) { + this.mEUt = (-this.mEUt); + } + this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); + this.mOutputItems = new ItemStack[]{tRecipe.getOutput(0)}; + this.mOutputFluids = tRecipe.mFluidOutputs.clone(); + updateSlots(); + return true; + } + } + else { + Utils.LOG_INFO("Could not find valid Recipe. [1]"); + } + } + } + Utils.LOG_INFO("Bad Recipe. [1]"); return false; } @@ -83,55 +141,68 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc if ((!this.addToMachineList(tTileEntity, TAE.GTPP_INDEX(18))) && (!this.addEnergyInputToMachineList(tTileEntity, TAE.GTPP_INDEX(18)))) { if (aBaseMetaTileEntity.getBlockOffset(xDir + i, Y, zDir + j) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block."); + Utils.LOG_INFO("1 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()); return false; } if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, Y, zDir + j) != 2) { - Utils.LOG_INFO("Wrong Meta 1."); + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()+" | Expected Meta 2 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, Y, zDir)); return false; } } else { - Utils.LOG_INFO("Added Hatch. "+tTileEntity.getInventoryName()); + //Utils.LOG_INFO("Added Hatch. "+tTileEntity.getInventoryName()); } } Y = 1; - Utils.LOG_INFO("Checking at Y+1 as well."); + //Utils.LOG_INFO("Checking at Y+1 as well."); final IGregTechTileEntity tTileEntity2 = aBaseMetaTileEntity.getIGregTechTileEntityOffset(xDir + i, Y, zDir + j); if ((!this.addToMachineList(tTileEntity2, TAE.GTPP_INDEX(18))) && (!this.addEnergyInputToMachineList(tTileEntity2, TAE.GTPP_INDEX(18)))) { if (aBaseMetaTileEntity.getBlockOffset(xDir + i, Y, zDir + j) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block."); + Utils.LOG_INFO("2 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()); return false; } if (aBaseMetaTileEntity.getMetaIDOffset(xDir + i, Y, zDir + j) != 2) { - Utils.LOG_INFO("Wrong Meta 1."); + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, Y, zDir).getLocalizedName()+" | Expected Meta 2 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, Y, zDir)); return false; } } else { - Utils.LOG_INFO("Added Hatch. "+tTileEntity2.getInventoryName()); + //Utils.LOG_INFO("Added Hatch. "+tTileEntity2.getInventoryName()); } } } - for (int y = 2; y < 6; y++) { - if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir) != ModBlocks.blockCasings2Misc) { //Must Define meta for center blocks - Utils.LOG_INFO("Wrong Block."); - return false; + for (int y = 2; y < 7; y++) { + if (y<=6){ + if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir) != ModBlocks.blockCasings2Misc) { //Must Define meta for center blocks + Utils.LOG_INFO("3 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()); + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir) != 3) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 3 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir)); + return false; + } } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir) != 3) { - Utils.LOG_INFO("Wrong Meta. 2"); - return false; + if (y==6){ + if (aBaseMetaTileEntity.getBlockOffset(xDir, y + 1, zDir) != ModBlocks.blockCasings2Misc) { + Utils.LOG_INFO("8 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y+1, zDir).getLocalizedName()+" | "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y+1, zDir)); + return false; + } + if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 1, zDir) != 1) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y+1, zDir).getLocalizedName()+" | Expected Meta 1 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 1, zDir)); + return false; + } } if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block.1"); + //Utils.LOG_INFO("4 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()); if (y==3){ if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) { if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir)); return false; } - Utils.LOG_INFO("Found Zeron-Casing."); + Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y)); } } else { @@ -141,13 +212,14 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc } if (aBaseMetaTileEntity.getBlockOffset(xDir - 1, y, zDir) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block.2"); + //Utils.LOG_INFO("5 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()); if (y==3){ if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) { if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir)); return false; } - Utils.LOG_INFO("Found Zeron-Casing."); + Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y)); } } else { @@ -157,13 +229,14 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc } if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir + 1) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block.3"); + //Utils.LOG_INFO("6 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()); if (y==3){ if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) { if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir)); return false; } - Utils.LOG_INFO("Found Zeron-Casing."); + Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y)); } } else { @@ -172,33 +245,26 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc } } if (aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir - 1) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block.4"); + //Utils.LOG_INFO("7 Wrong Block. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()); if (y==3){ if (aBaseMetaTileEntity.getBlockOffset(xDir + 1, y, zDir) == ModBlocks.blockCasingsMisc) { if (aBaseMetaTileEntity.getMetaIDOffset(xDir + 1, y, zDir) != 13) { + Utils.LOG_INFO("Wrong Meta. Found "+aBaseMetaTileEntity.getBlockOffset(xDir, y, zDir).getLocalizedName()+" | Expected Meta 13 | Got Meta "+aBaseMetaTileEntity.getMetaIDOffset(xDir, y, zDir)); return false; } - Utils.LOG_INFO("Found Zeron-Casing."); + Utils.LOG_INFO("Found Zeron-Casing at "+(aBaseMetaTileEntity.getYCoord()+y)); } } else { Utils.LOG_INFO("debug.4"); return false; } - } - if (aBaseMetaTileEntity.getBlockOffset(xDir, y + 3, zDir) != ModBlocks.blockCasings2Misc) { - Utils.LOG_INFO("Wrong Block.5"); - return false; - } - if (aBaseMetaTileEntity.getMetaIDOffset(xDir, y + 3, zDir) != 3) { - Utils.LOG_INFO("Wrong Meta. 3"); - return false; - } + } } if ((this.mInputHatches.size() != 4) || (this.mOutputHatches.size() != 2) || (this.mOutputBusses.size() != 1) || (this.mMufflerHatches.size() != 1) || - (this.mMaintenanceHatches.size() != 2) || (this.mEnergyHatches.size() < 1)){ + (this.mMaintenanceHatches.size() != 2) || (this.mEnergyHatches.size() != 1)){ Utils.LOG_INFO("Wrong Hatch count."); return false; } @@ -206,8 +272,8 @@ public class GregtechMetaTileEntity_Refinery extends GT_MetaTileEntity_MultiBloc if (this.mMufflerHatches.get(0).mTier < 7){ Utils.LOG_INFO("Your Muffler must be AT LEAST ZPM tier or higher."); } - } - Utils.LOG_INFO("Multiblock Formed."); + } + Utils.LOG_INFO("Fission Fuel Production Plant Formed."); return true; } |