aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlodBlock <1356392126@qq.com>2021-05-16 21:26:26 +0800
committerGlodBlock <1356392126@qq.com>2021-05-16 21:26:26 +0800
commitc5ed533e90322f598d693f145010336c6c0edf29 (patch)
tree4daff4a3c72e35c7ebfc0d73b4c43f6ce53d039c
parent249abe49ca06d81c9734c08a1dd7f4e4481d16a8 (diff)
downloadGT5-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.java66
-rw-r--r--src/main/java/GoodGenerator/Loader/FuelRecipeLoader.java5
-rw-r--r--src/main/java/GoodGenerator/Loader/RecipeLoader.java2
-rw-r--r--src/main/java/GoodGenerator/util/CrackRecipeAdder.java6
-rw-r--r--src/main/java/GoodGenerator/util/MyRecipeAdder.java39
-rw-r--r--src/main/resources/assets/goodgenerator/lang/en_US.lang3
-rw-r--r--src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.pngbin0 -> 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
new file mode 100644
index 0000000000..f2cbb5ffe0
--- /dev/null
+++ b/src/main/resources/assets/goodgenerator/textures/gui/naquadah_reactor.png
Binary files differ