diff options
author | draknyte1 <draknyte1@hotmail.com> | 2016-11-03 02:36:56 +1000 |
---|---|---|
committer | draknyte1 <draknyte1@hotmail.com> | 2016-11-03 02:36:56 +1000 |
commit | d0ef0e0a7eadc60ea640d395f948d9b522932e1b (patch) | |
tree | 491421b6dcd2b962a5473d73f1549c50f1e04806 /src/Java/gtPlusPlus | |
parent | c043d88a57a690b1f40cdcd997cdf00cfe06ad09 (diff) | |
download | GT5-Unofficial-d0ef0e0a7eadc60ea640d395f948d9b522932e1b.tar.gz GT5-Unofficial-d0ef0e0a7eadc60ea640d395f948d9b522932e1b.tar.bz2 GT5-Unofficial-d0ef0e0a7eadc60ea640d395f948d9b522932e1b.zip |
+ Now turns scrap into UU-A, pre-fuel check, so you can funnel Scrap in and create UU-A on the fly, for a reduced cost.
+ Much Logging, many reads.
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java | 89 |
1 files changed, 64 insertions, 25 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java index 626a7b5c81..cb2996ca97 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/GregtechMetaTileEntity_MassFabricator.java @@ -6,6 +6,7 @@ import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Config; import gregtech.api.util.GT_Recipe; @@ -25,6 +26,7 @@ import java.util.Arrays; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -39,14 +41,17 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo public static boolean sRequiresUUA = false; private int mAmplifierUsed = 0; private int mMatterProduced = 0; + ItemStack scrapPile = ItemUtils.getSimpleStack(ItemUtils.getItem("IC2:itemScrap")); + ItemStack scrapBox = ItemUtils.getSimpleStack(ItemUtils.getItem("IC2:itemScrapbox")); + private static Block IC2Glass = Block.getBlockFromItem(ItemUtils.getItem("IC2:blockAlloyGlass")); FluidStack tempFake = FluidUtils.getFluidStack("uuamplifier", 1); GT_Recipe fakeRecipe; - + public int getAmplifierUsed(){ return mAmplifierUsed; } - + public int getMatterProduced(){ return mMatterProduced; } @@ -103,21 +108,29 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo @Override public boolean checkRecipe(ItemStack aStack) { - - ArrayList<ItemStack> tInputList = getStoredInputs(); - for (int i = 0; i < tInputList.size() - 1; i++) { - for (int j = i + 1; j < tInputList.size(); j++) { - if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) { - if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) { - tInputList.remove(j--); - } else { - tInputList.remove(i--); - break; - } - } - } - } - ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); + Utils.LOG_INFO("Fabricating Matter."); + if (mInputHatches.size() != 1){ + Utils.LOG_INFO("Too many input hatches. Found: "+mInputHatches.size()+" | Expected: 1"); + return false; + } + + ArrayList<ItemStack> tInputList = getStoredInputs(); + for (int i = 0; i < tInputList.size() - 1; i++) { + for (int j = i + 1; j < tInputList.size(); j++) { + if (GT_Utility.areStacksEqual((ItemStack) tInputList.get(i), (ItemStack) tInputList.get(j))) { + if (((ItemStack) tInputList.get(i)).stackSize >= ((ItemStack) tInputList.get(j)).stackSize) { + tInputList.remove(j--); + } else { + tInputList.remove(i--); + break; + } + } + } + } + + ItemStack[] tInputs = (ItemStack[]) Arrays.copyOfRange(tInputList.toArray(new ItemStack[tInputList.size()]), 0, 2); + + ArrayList<FluidStack> tFluidList = getStoredFluids(); for (int i = 0; i < tFluidList.size() - 1; i++) { @@ -136,8 +149,33 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo long tVoltage = getMaxInputVoltage(); byte tTier = (byte) Math.max(1, GT_Utility.getTier(tVoltage)); FluidStack[] tFluids = (FluidStack[]) Arrays.copyOfRange(tFluidList.toArray(new FluidStack[tFluidList.size()]), 0, tFluidList.size()); + + + for (int scrapSlots=0;scrapSlots<tInputs.length;scrapSlots++){ + if (tInputs[scrapSlots].getItem() == scrapPile.getItem()){ + if (tInputs[scrapSlots].stackSize >= 9 ){ + Utils.LOG_INFO("Found enough scrap for a special recipe. x"+tInputs[scrapSlots].stackSize); + for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) { + if (isValidMetaTileEntity(tHatch)) { + Utils.LOG_INFO("Input fluid empty - Time to generate 1UU-A."); + if (tHatch.mFluid == null){ + tHatch.mFluid = FluidUtils.getFluidStack("uuamplifier", 2); + } + else{ + tHatch.mFluid.amount++; + tHatch.mFluid.amount++; + } + tInputs[scrapSlots].stackSize = tInputs[scrapSlots].stackSize - 9; + Utils.LOG_INFO("Remaining after recipe. x"+tInputs[scrapSlots].stackSize); + } + } + } + } + } + + if (tFluids.length > 0) { - //Utils.LOG_INFO("Input fluid found"); + Utils.LOG_INFO("Input fluid found"); for(int i = 0;i<tFluids.length;i++){ GT_Recipe tRecipe = Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tFluids[i]}, new ItemStack[]{}); if (tRecipe != null) { @@ -151,8 +189,8 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo this.mEUt = tRecipe.mEUt; this.mMaxProgresstime = (tRecipe.mDuration/**sDurationMultiplier*/); while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { - this.mEUt *= 4; - this.mMaxProgresstime /= 2; + this.mEUt *= 2; + this.mMaxProgresstime /= 4; } } if (this.mEUt > 0) { @@ -176,9 +214,9 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo } } else if (tFluids.length == 0) { - //Utils.LOG_INFO("Input fluid not found"); + Utils.LOG_INFO("Input fluid not found"); fakeRecipe = Recipe_GT.Gregtech_Recipe_Map.sMatterFab2Recipes.findRecipe(getBaseMetaTileEntity(), false, gregtech.api.enums.GT_Values.V[tTier], new FluidStack[]{tempFake}, new ItemStack[]{}); - + this.mEfficiency = (10000 - (getIdealStatus() - getRepairStatus()) * 1000); this.mEfficiencyIncrease = 10000; @@ -192,7 +230,7 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo if (this.mEUt > 0) { this.mEUt = (-this.mEUt); } - + if (fakeRecipe != null) { this.mMaxProgresstime = Math.max(1, this.mMaxProgresstime); this.mOutputItems = new ItemStack[]{fakeRecipe.getOutput(0)}; @@ -205,8 +243,9 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo } } else { - //Utils.LOG_INFO("Invalid no input Recipe"); + Utils.LOG_INFO("Invalid no input Recipe"); } + Utils.LOG_INFO("Fabricating Matter.bad"); return false; } @@ -341,7 +380,7 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo @Override public int getAmountOfOutputs() { - return 1; + return 10; } @Override |