diff options
author | GlodBlock <1356392126@qq.com> | 2021-04-20 00:11:21 +0800 |
---|---|---|
committer | GlodBlock <1356392126@qq.com> | 2021-04-20 00:11:21 +0800 |
commit | 157de8bbb03c3ed007c21a78017f2a3911ec16dc (patch) | |
tree | b2770753b84efb6abd4a9f14c25e607998470b64 /src/main | |
parent | 610cebd3f0d8a464aa88f5ce12e1d935fd222bbe (diff) | |
download | GT5-Unofficial-157de8bbb03c3ed007c21a78017f2a3911ec16dc.tar.gz GT5-Unofficial-157de8bbb03c3ed007c21a78017f2a3911ec16dc.tar.bz2 GT5-Unofficial-157de8bbb03c3ed007c21a78017f2a3911ec16dc.zip |
use GT_Recipe_Map to add generator recipes
Diffstat (limited to 'src/main')
5 files changed, 95 insertions, 46 deletions
diff --git a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java index cfba9d3900..fb00965600 100644 --- a/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java +++ b/src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java @@ -3,6 +3,7 @@ package GoodGenerator.Blocks.TEs; import GoodGenerator.Items.MyMaterial; import GoodGenerator.Loader.Loaders; import GoodGenerator.Main.GoodGenerator; +import GoodGenerator.util.MyRecipeAdder; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; @@ -14,6 +15,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gregtech.api.util.GT_Recipe; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -23,6 +25,7 @@ import net.minecraftforge.fluids.FluidStack; import org.lwjgl.input.Keyboard; import java.util.ArrayList; +import java.util.Collection; public class MultiNqGenerator extends GT_MetaTileEntity_MultiBlockBase { @@ -47,6 +50,7 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiBlockBase { public boolean checkRecipe(ItemStack aStack) { ArrayList<FluidStack> tFluids = getStoredFluids(); + Collection<GT_Recipe> tRecipes = MyRecipeAdder.instance.NqGFuels.mRecipeList; FluidStack f1=null,f2=null; float booster = 1.0f; @@ -81,52 +85,37 @@ public class MultiNqGenerator extends GT_MetaTileEntity_MultiBlockBase { } } - if(tFluids.size()>0){ - if(tFluids.contains(Materials.NaquadahEnriched.getMolten(times)) && tFluids.get(tFluids.indexOf(Materials.NaquadahEnriched.getMolten(times))).amount >= times){ - if(f1 != null) - depleteInput(f1); - if(f2 != null) - depleteInput(f2); - if(mRuntime == 0 || mRuntime%1200 == 0){ - depleteInput(Materials.NaquadahEnriched.getMolten(times)); - this.mOutputFluids = new FluidStack[]{Materials.Naquadah.getMolten(times)}; - } - else this.mOutputFluids = null; - if(tFluids.contains(Materials.LiquidAir.getFluid(120)) && tFluids.get(tFluids.indexOf(Materials.LiquidAir.getFluid(120))).amount >= 120){ - depleteInput(Materials.LiquidAir.getFluid(120)); - addEnergyOutput((long)(32768*times*booster)); - this.mEUt = (int)(32768*times*booster); - } - else{ - addEnergyOutput(0); - this.mEUt = 0; - } - this.mProgresstime = 1; - this.mMaxProgresstime = 1; - return true; - } - if(tFluids.contains(Materials.Naquadria.getMolten(times)) && tFluids.get(tFluids.indexOf(Materials.Naquadria.getMolten(times))).amount >= times){ - if(f1 != null) - depleteInput(f1); - if(f2 != null) - depleteInput(f2); - if(mRuntime == 0 || mRuntime%100 == 0){ - depleteInput(Materials.Naquadria.getMolten(times)); - this.mOutputFluids = new FluidStack[]{Materials.Naquadah.getMolten(times)}; - } - else this.mOutputFluids = null; - if(tFluids.contains(Materials.LiquidAir.getFluid(120)) && tFluids.get(tFluids.indexOf(Materials.LiquidAir.getFluid(120))).amount >= 120){ - depleteInput(Materials.LiquidAir.getFluid(120)); - addEnergyOutput((long)(262144*times*booster)); - this.mEUt = (int)(262144*times*booster); - } - else{ - addEnergyOutput(0); - this.mEUt = 0; + if (tFluids.size()>0 && tRecipes != null){ + for (GT_Recipe recipe : tRecipes){ + FluidStack recipeFluid = recipe.mFluidInputs[0].copy(); + FluidStack recipeFluidOut = recipe.mFluidOutputs[0].copy(); + recipeFluid.amount = times; + recipeFluidOut.amount = times; + int lasting = recipe.mDuration; + int outputEU = recipe.mSpecialValue; + if (tFluids.contains(recipeFluid) && tFluids.get(tFluids.indexOf(recipeFluid)).amount >= times){ + if(f1 != null) + depleteInput(f1); + if(f2 != null) + depleteInput(f2); + if (mRuntime == 0 || mRuntime%lasting == 0){ + depleteInput(recipeFluid); + this.mOutputFluids = new FluidStack[]{recipeFluidOut}; + } + else this.mOutputFluids = null; + if (tFluids.contains(Materials.LiquidAir.getFluid(120)) && tFluids.get(tFluids.indexOf(Materials.LiquidAir.getFluid(120))).amount >= 120){ + depleteInput(Materials.LiquidAir.getFluid(120)); + addEnergyOutput((long)(outputEU*times*booster)); + this.mEUt = (int)(outputEU*times*booster); + } + else{ + addEnergyOutput(0); + this.mEUt = 0; + } + this.mProgresstime = 1; + this.mMaxProgresstime = 1; + return true; } - this.mProgresstime = 1; - this.mMaxProgresstime = 1; - return true; } } this.mEUt = 0; diff --git a/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java b/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java new file mode 100644 index 0000000000..82e6f3201f --- /dev/null +++ b/src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java @@ -0,0 +1,12 @@ +package GoodGenerator.Loader; + +import GoodGenerator.util.MyRecipeAdder; +import gregtech.api.enums.Materials; + +public class FuelRecipeLoader { + public static void RegisterFuel(){ + MyRecipeAdder.instance.addLiquidMentalFuel(Materials.NaquadahEnriched.getMolten(1L),Materials.Naquadah.getMolten(1L),32768,1200); + MyRecipeAdder.instance.addLiquidMentalFuel(Materials.Naquadria.getMolten(1L),Materials.Naquadah.getMolten(1L),262144,100); + } + +} diff --git a/src/main/java/GoodGenerator/Main/GoodGenerator.java b/src/main/java/GoodGenerator/Main/GoodGenerator.java index c674b8b6b6..4751270c4f 100644 --- a/src/main/java/GoodGenerator/Main/GoodGenerator.java +++ b/src/main/java/GoodGenerator/Main/GoodGenerator.java @@ -2,6 +2,7 @@ package GoodGenerator.Main; import GoodGenerator.Common.CommonProxy; import GoodGenerator.Items.MyMaterial; +import GoodGenerator.Loader.FuelRecipeLoader; import GoodGenerator.Loader.Loaders; import GoodGenerator.Loader.RecipeLoader; import GoodGenerator.Tabs.MyTabs; @@ -37,6 +38,7 @@ public final class GoodGenerator { proxy.init(event); Loaders.Register(); RecipeLoader.RecipeLoad(); + FuelRecipeLoader.RegisterFuel(); } @Mod.EventHandler public static void postInit(FMLPostInitializationEvent event){ diff --git a/src/main/java/GoodGenerator/util/MyRecipeAdder.java b/src/main/java/GoodGenerator/util/MyRecipeAdder.java new file mode 100644 index 0000000000..7b72ec68f3 --- /dev/null +++ b/src/main/java/GoodGenerator/util/MyRecipeAdder.java @@ -0,0 +1,44 @@ +package GoodGenerator.util; + +import gregtech.api.util.GT_Recipe; +import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; + +import java.util.Collection; +import java.util.HashSet; + +public class MyRecipeAdder { + + public static final MyRecipeAdder instance = new MyRecipeAdder(); + + public final liquidMentalFuelMapper NqGFuels = new liquidMentalFuelMapper( + new HashSet<>(50), + "gg.recipe.naquadah_reactor", + StatCollector.translateToLocal("tile.recipe.naquadah_reactor"), + null, + "gregtech:textures/gui/basicmachines/Default", + 0,0,1,1,1, + "Basic Output Voltage: ", + 1, + " EU/t", + false, + true + ); + + public static class liquidMentalFuelMapper extends GT_Recipe.GT_Recipe_Map_Fuel{ + int lasting = 0; + + public liquidMentalFuelMapper(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 GT_Recipe 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); + } + } + + public boolean addLiquidMentalFuel(FluidStack input,FluidStack output,int EUt,int ticks){ + return NqGFuels.addFuel(input,output,EUt,ticks)!=null; + } +} diff --git a/src/main/resources/assets/goodgenerator/lang/en_US.lang b/src/main/resources/assets/goodgenerator/lang/en_US.lang index a1e9c91845..c7e0b0bc16 100644 --- a/src/main/resources/assets/goodgenerator/lang/en_US.lang +++ b/src/main/resources/assets/goodgenerator/lang/en_US.lang @@ -6,4 +6,6 @@ item.wrappedUraniumIngot.name=Wrapped Uranium Ingot item.highDensityUraniumNugget.name=High Density Uranium Nugget item.highDensityUranium.name=High Density Uranium -itemGroup.Good Generator=Good Generator
\ No newline at end of file +itemGroup.Good Generator=Good Generator + +tile.recipe.naquadah_reactor=Large Naquadah Reactor
\ No newline at end of file |