aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java14
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java20
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java1
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java9
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java13
5 files changed, 49 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index 8fb0b04089..2abe195212 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -40,6 +40,7 @@ import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.data.LocaleUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.PlayerUtils;
+import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.core.util.sys.GeoUtils;
import gtPlusPlus.core.util.sys.NetworkUtils;
import gtPlusPlus.plugin.manager.Core_Manager;
@@ -202,19 +203,28 @@ public class GTplusplus implements ActionListener {
public void onLoadComplete(FMLLoadCompleteEvent event) {
RecipeGen_BlastSmelterGT_GTNH.generateGTNHBlastSmelterRecipesFromEBFList();
FishPondFakeRecipe.generateFishPondRecipes();
-
+
+ //Large Centrifuge generation
for (GT_Recipe x : GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.mRecipeList) {
if (x != null) {
CORE.RA.addMultiblockCentrifugeRecipe(x.mInputs, x.mFluidInputs, x.mFluidOutputs, x.mOutputs, x.mDuration, x.mEUt);
}
}
-
+
+ //Large Electrolyzer generation
for (GT_Recipe x : GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes.mRecipeList) {
if (x != null) {
CORE.RA.addMultiblockElectrolyzerRecipe(x.mInputs, x.mFluidInputs, x.mFluidOutputs, x.mOutputs, x.mDuration, x.mEUt);
}
}
+ //Advanced Vacuum Freezer generation
+ for (GT_Recipe x : GT_Recipe.GT_Recipe_Map.sVacuumRecipes.mRecipeList) {
+ if (x != null && RecipeUtils.doesGregtechRecipeHaveEqualCells(x)) {
+ CORE.RA.addAdvancedFreezerRecipe(x.mInputs, x.mFluidInputs, x.mFluidOutputs, x.mOutputs, (x.mDuration/2), x.mEUt);
+ }
+ }
+
}
protected void dumpGtRecipeMap(final GT_Recipe_Map r) {
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
index d3367cc46b..e5e4bb1181 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
@@ -11,7 +11,10 @@ import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.Materials;
import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_Recipe;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.handler.COMPAT_HANDLER;
@@ -492,4 +495,21 @@ public class RecipeUtils {
aOutput);
}
+ public static boolean doesGregtechRecipeHaveEqualCells(GT_Recipe x) {
+ if (x.mInputs.length < 1) {
+ return false;
+ }
+ final int tInputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(x.mInputs);
+ final int tOutputAmount = GT_ModHandler.getCapsuleCellContainerCountMultipliedWithStackSize(x.mOutputs);
+ if (tInputAmount < tOutputAmount) {
+ if (!Materials.Tin.contains(x.mInputs)) {
+ return false;
+ }
+ } else if (tInputAmount > tOutputAmount && !Materials.Tin.contains(x.mOutputs)) {
+ return false;
+ }
+
+ return true;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index 63393d2081..1f3d14fd0c 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -158,5 +158,6 @@ public interface IGregtech_RecipeAdder {
public boolean addMultiblockElectrolyzerRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUtick);
+ public boolean addAdvancedFreezerRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUtick);
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java
index 9e5ccf0dc0..29a1b0ff78 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java
@@ -11,6 +11,7 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech
import net.minecraft.item.ItemStack;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.Recipe_GT;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import net.minecraft.entity.player.InventoryPlayer;
import gregtech.api.interfaces.IIconContainer;
@@ -53,8 +54,8 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta
"Size(WxHxD): 3x3x3 (Hollow), Controller (Front centered)",
"1x Input Bus (Any casing)",
"1x Output Bus (Any casing)",
- "1x Input Hatch (Any casing)",
- "1x Output Hatch (Any casing)",
+ "1x Input Hatch (Any casing, optional)",
+ "1x Output Hatch (Any casing, optional)",
"1x Maintenance Hatch (Any casing)",
"1x Energy Hatch (Any casing)",
mCasingName+"s for the rest (10 at least!)"};
@@ -78,7 +79,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta
}
public GT_Recipe.GT_Recipe_Map getRecipeMap() {
- return GT_Recipe.GT_Recipe_Map.sVacuumRecipes;
+ return Recipe_GT.Gregtech_Recipe_Map.sAdvFreezerRecipes;
}
public boolean isCorrectMachinePart(final ItemStack aStack) {
@@ -90,7 +91,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta
}
public boolean checkRecipe(final ItemStack aStack) {
- return this.checkRecipeGeneric(4, 100, 200);
+ return this.checkRecipeGeneric(4, 100, 100);
}
public boolean checkMachine(final IGregTechTileEntity aBaseMetaTileEntity, final ItemStack aStack) {
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index 28923578de..29c05c4045 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -505,8 +505,17 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
return true;
}
-
-
+
+ public boolean addAdvancedFreezerRecipe(ItemStack[] aInputs, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUtick) {
+ if (areItemsAndFluidsBothNull(aInputs, aFluidInputs) || areItemsAndFluidsBothNull(aOutputs, aFluidOutputs)) {
+ return false;
+ }
+ if (aEUtick <= 0) {
+ return false;
+ }
+ Recipe_GT.Gregtech_Recipe_Map.sAdvFreezerRecipes.addRecipe(false, aInputs, aOutputs, null, null, aFluidInputs, aFluidOutputs, aDuration, aEUtick, 0);
+ return true;
+ }