diff options
author | GlodBlock <1356392126@qq.com> | 2021-05-16 21:26:26 +0800 |
---|---|---|
committer | GlodBlock <1356392126@qq.com> | 2021-05-16 21:26:26 +0800 |
commit | c5ed533e90322f598d693f145010336c6c0edf29 (patch) | |
tree | 4daff4a3c72e35c7ebfc0d73b4c43f6ce53d039c | |
parent | 249abe49ca06d81c9734c08a1dd7f4e4481d16a8 (diff) | |
download | GT5-Unofficial-c5ed533e90322f598d693f145010336c6c0edf29.tar.gz GT5-Unofficial-c5ed533e90322f598d693f145010336c6c0edf29.tar.bz2 GT5-Unofficial-c5ed533e90322f598d693f145010336c6c0edf29.zip |
add recipe check for FRF
-rw-r--r-- | src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java | 66 | ||||
-rw-r--r-- | src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java | 5 | ||||
-rw-r--r-- | src/main/java/GoodGenerator/Loader/RecipeLoader.java | 2 | ||||
-rw-r--r-- | src/main/java/GoodGenerator/util/CrackRecipeAdder.java | 6 | ||||
-rw-r--r-- | src/main/java/GoodGenerator/util/MyRecipeAdder.java | 39 | ||||
-rw-r--r-- | src/main/resources/assets/goodgenerator/lang/en_US.lang | 3 | ||||
-rw-r--r-- | src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png | bin | 0 -> 3376 bytes |
7 files changed, 105 insertions, 16 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java index 329912935b..aeb8027486 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/FuelRefineFactory.java @@ -1,6 +1,7 @@ package GoodGenerator.Blocks.TEs; import GoodGenerator.Loader.Loaders; +import GoodGenerator.util.MyRecipeAdder; import com.github.bartimaeusnek.bartworks.util.Coords; import com.github.bartimaeusnek.crossmod.tectech.TecTechEnabledMulti; import com.github.technus.tectech.mechanics.constructable.IConstructable; @@ -17,11 +18,15 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.world.World; +import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -32,7 +37,7 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple @SideOnly(Side.CLIENT) protected String name; private IStructureDefinition<FuelRefineFactory> multiDefinition = null; - private int Tire = -1; + private int Tier = -1; private final HashSet<Coords> vis = new HashSet<>(64); public FuelRefineFactory(String name){super(name);} @@ -141,7 +146,7 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple vis.clear(); if (aTile.getBlockOffset(dx[i],dy[i],dz[i]) == block[j]) if (dfs(block[j], aTile.getWorld(),aTile.getXCoord() + dx[i],aTile.getYCoord() + dy[i],aTile.getZCoord() + dz[i],32)){ - Tire = j; + Tier = j; return true; } } @@ -164,11 +169,61 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple @Override public boolean checkMachine_EM(IGregTechTileEntity aBaseMetaTileEntity, ItemStack aStack) { + mWrench = true; + mScrewdriver = true; + mSoftHammer = true; + mHardHammer = true; + mSolderingTool = true; + mCrowbar = true; return structureCheck_EM(name, 7,12,1) && checkCoil(); } @Override public boolean checkRecipe_EM(ItemStack aStack){ + + ArrayList<FluidStack> tFluids = getStoredFluids(); + ArrayList<ItemStack> tItems = getStoredInputs(); + Collection<GT_Recipe> tRecipes = MyRecipeAdder.instance.FRF.mRecipeList; + long maxVoltage = getMaxInputVoltage(); + + for (int i = 0; i < tFluids.size() - 1; i++) { + for (int j = i + 1; j < tFluids.size(); j++) { + if (GT_Utility.areFluidsEqual(tFluids.get(i), tFluids.get(j))) { + if ((tFluids.get(i)).amount >= (tFluids.get(j)).amount) { + tFluids.remove(j--); + } else { + tFluids.remove(i--); + break; + } + } + } + } + + for (int i = 0; i < tItems.size() - 1; i++) { + for (int j = i + 1; j < tItems.size(); j++) { + if (GT_Utility.areStacksEqual(tItems.get(i), tItems.get(j))) { + if ((tItems.get(i)).stackSize >= (tItems.get(j)).stackSize) { + tItems.remove(j--); + } else { + tItems.remove(i--); + break; + } + } + } + } + + for (GT_Recipe recipe : tRecipes){ + + checkCoil(); + if (recipe.mSpecialValue > Tier) continue; + + if (recipe.isRecipeInputEqual(true, tFluids.toArray(new FluidStack[tFluids.size()]), tItems.toArray(new ItemStack[tItems.size()]))){ + calculatePerfectOverclockedNessMulti(recipe.mEUt, recipe.mDuration / (Tier - recipe.mSpecialValue + 1), 1, maxVoltage); + this.mOutputFluids = recipe.mFluidOutputs; + this.updateSlots(); + return true; + } + } return false; } @@ -201,6 +256,11 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple } @Override + public boolean onRunningTick(ItemStack stack) { + return true; + } + + @Override public String[] getStructureDescription(ItemStack itemStack) { return new String[0]; } @@ -227,7 +287,7 @@ public class FuelRefineFactory extends GT_MetaTileEntity_MultiblockBase_EM imple @Override public boolean explodesOnComponentBreak(ItemStack aStack) { - return false; + return true; } @Override diff --git a/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java b/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java index 93f3f99bad..7e677bb706 100644 --- a/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java +++ b/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java @@ -11,8 +11,7 @@ public class FuelRecipeLoader { MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.uraniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.uraniumBasedLiquidFuelDepleted.getFluidOrGas(1),12960,100); MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.thoriumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.thoriumBasedLiquidFuelDepleted.getFluidOrGas(1),4320,500); MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.plutoniumBasedLiquidFuelExcited.getFluidOrGas(1),MyMaterial.plutoniumBasedLiquidFuelDepleted.getFluidOrGas(1),32400,150); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1),96000,950); - MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1),145000,850); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkI.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIDepleted.getFluidOrGas(1),288000,320); + MyRecipeAdder.instance.addLiquidMentalFuel(MyMaterial.naquadahBasedFuelMkII.getFluidOrGas(1),MyMaterial.naquadahBasedFuelMkIIDepleted.getFluidOrGas(1),1276000,100); } - } diff --git a/src/main/java/GoodGenerator/Loader/RecipeLoader.java b/src/main/java/GoodGenerator/Loader/RecipeLoader.java index 0622269a86..4d57b75716 100644 --- a/src/main/java/GoodGenerator/Loader/RecipeLoader.java +++ b/src/main/java/GoodGenerator/Loader/RecipeLoader.java @@ -36,7 +36,7 @@ public class RecipeLoader { ItemList.Field_Generator_ZPM.get(2), ItemList.Electric_Pump_UV.get(2), GT_OreDictUnificator.get(OrePrefixes.circuit,Materials.Infinite,2), - GT_OreDictUnificator.get(OrePrefixes.wireGt08,Materials.SuperconductorUV,8), + GT_OreDictUnificator.get(OrePrefixes.wireGt08,Materials.SuperconductorLuV,8), GT_OreDictUnificator.get(OrePrefixes.pipeHuge,Materials.Lead,4), GT_OreDictUnificator.get(OrePrefixes.plate,Materials.NaquadahAlloy,8), GT_OreDictUnificator.get(OrePrefixes.screw,Materials.Osmium,16) diff --git a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java b/src/main/java/GoodGenerator/util/CrackRecipeAdder.java index 3d3e3a356c..2c74128073 100644 --- a/src/main/java/GoodGenerator/util/CrackRecipeAdder.java +++ b/src/main/java/GoodGenerator/util/CrackRecipeAdder.java @@ -26,7 +26,7 @@ public class CrackRecipeAdder { actOutput[j] = new FluidStack(tmp1, tmp2); } - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("lightlycracked"+name,1000),actOutput,outputItem,2400,7680); + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("lightlycracked"+name,1000),actOutput,outputItem,120,7680); for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ Fluid tmp1 = outputFluids[i].getFluid(); @@ -34,7 +34,7 @@ public class CrackRecipeAdder { actOutput[j] = new FluidStack(tmp1, tmp2); } - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("moderatelycracked"+name,1000),actOutput,outputItem,2400,7680); + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("moderatelycracked"+name,1000),actOutput,outputItem,120,7680); for ( int i = num - 1, j = 0; i >= 0; i --, j ++ ){ Fluid tmp1 = outputFluids[i].getFluid(); @@ -42,6 +42,6 @@ public class CrackRecipeAdder { actOutput[j] = new FluidStack(tmp1, tmp2); } - GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("heavilycracked"+name,1000),actOutput,outputItem,2400,7680); + GT_Values.RA.addUniversalDistillationRecipe(FluidRegistry.getFluidStack("heavilycracked"+name,1000),actOutput,outputItem,120,7680); } } diff --git a/src/main/java/GoodGenerator/util/MyRecipeAdder.java b/src/main/java/GoodGenerator/util/MyRecipeAdder.java index 7b72ec68f3..4bb42288cc 100644 --- a/src/main/java/GoodGenerator/util/MyRecipeAdder.java +++ b/src/main/java/GoodGenerator/util/MyRecipeAdder.java @@ -1,6 +1,7 @@ package GoodGenerator.util; import gregtech.api.util.GT_Recipe; +import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidStack; @@ -16,7 +17,7 @@ public class MyRecipeAdder { "gg.recipe.naquadah_reactor", StatCollector.translateToLocal("tile.recipe.naquadah_reactor"), null, - "gregtech:textures/gui/basicmachines/Default", + "goodgenerator:textures/gui/naquadah_reactor", 0,0,1,1,1, "Basic Output Voltage: ", 1, @@ -25,6 +26,20 @@ public class MyRecipeAdder { true ); + public final NaqFuelRefineMapper FRF = new NaqFuelRefineMapper( + new HashSet<>(50), + "gg.recipe.naquadah_fuel_refine_factory", + StatCollector.translateToLocal("tile.naquadah_fuel_refine_factory"), + null, + "gregtech:textures/gui/basicmachines/Default", + 6,0, 0, 1, 1, + "Need Tier ", + 1, + " Coil", + true, + true + ); + public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel{ int lasting = 0; @@ -32,13 +47,27 @@ public class MyRecipeAdder { super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); } - public GT_Recipe addFuel(FluidStack input,FluidStack output,int EUt,int ticks){ + public void addFuel(FluidStack input, FluidStack output, int EUt, int ticks){ lasting = ticks; - return super.addRecipe(true,null,null,null,new FluidStack[]{input},new FluidStack[]{output},ticks,0,EUt); + super.addRecipe(true, null, null, null, new FluidStack[]{input}, new FluidStack[]{output}, ticks, 0, EUt); + } + } + + public void addLiquidMentalFuel(FluidStack input, FluidStack output, int EUt, int ticks){ + NqGFuels.addFuel(input, output, EUt, ticks); + } + + public static class NaqFuelRefineMapper extends GT_Recipe.GT_Recipe_Map{ + public NaqFuelRefineMapper(Collection<GT_Recipe> aRecipeList, String aUnlocalizedName, String aLocalName, String aNEIName, String aNEIGUIPath, int aUsualInputCount, int aUsualOutputCount, int aMinimalInputItems, int aMinimalInputFluids, int aAmperage, String aNEISpecialValuePre, int aNEISpecialValueMultiplier, String aNEISpecialValuePost, boolean aShowVoltageAmperageInNEI, boolean aNEIAllowed){ + super(aRecipeList, aUnlocalizedName, aLocalName, aNEIName, aNEIGUIPath, aUsualInputCount, aUsualOutputCount, aMinimalInputItems, aMinimalInputFluids, aAmperage, aNEISpecialValuePre, aNEISpecialValueMultiplier, aNEISpecialValuePost, aShowVoltageAmperageInNEI, aNEIAllowed); + } + + public void addNaqFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ + super.addRecipe(false, input2, null, null, input1, new FluidStack[]{output}, ticks, EUt, tier); } } - public boolean addLiquidMentalFuel(FluidStack input,FluidStack output,int EUt,int ticks){ - return NqGFuels.addFuel(input,output,EUt,ticks)!=null; + public void addNaquadahFuelRefineRecipe(FluidStack[] input1, ItemStack[] input2, FluidStack output, int EUt, int ticks, int tier){ + FRF.addNaqFuelRefineRecipe(input1, input2, output, EUt, ticks, tier); } } diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index 053de6dc13..9130780645 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -47,4 +47,5 @@ tile.heavilyCrackedNaquadahAsphalt.name=Severely Cracked Naquadah Asphalt itemGroup.Good Generator=Good Generator -tile.recipe.naquadah_reactor=Large Naquadah Reactor
\ No newline at end of file +tile.recipe.naquadah_reactor=Large Naquadah Reactor +tile.naquadah_fuel_refine_factory=Naquadah Fuel Refine Factory
\ No newline at end of file diff --git a/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png b/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png Binary files differnew file mode 100644 index 0000000000..f2cbb5ffe0 --- /dev/null +++ b/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png |