aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-04-20 00:11:21 +0800
committerGlodBlock <1356392126@qq.com>2021-04-20 00:11:21 +0800
commit157de8bbb03c3ed007c21a78017f2a3911ec16dc (patch)
treeb2770753b84efb6abd4a9f14c25e607998470b64 /src/main
parent610cebd3f0d8a464aa88f5ce12e1d935fd222bbe (diff)
downloadGT5-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')
-rw-r--r--src/main/java/GoodGenerator/Blocks/TEs/MultiNqGenerator.java79
-rw-r--r--src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java12
-rw-r--r--src/main/java/GoodGenerator/Main/GoodGenerator.java2
-rw-r--r--src/main/java/GoodGenerator/util/MyRecipeAdder.java44
-rw-r--r--src/main/resources/assets/goodgenerator/lang/en_US.lang4
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