aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
index a375f77cda..913b72fb0a 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java
@@ -9,17 +9,22 @@ import java.util.List;
import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.Element;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.util.GTPP_Recipe;
+import gregtech.api.util.GTPP_Recipe.GTPP_Recipe_Map;
import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_ModHandler.RecipeBits;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
+import gregtech.common.items.behaviors.Behaviour_DataOrb;
import gtPlusPlus.api.helpers.GregtechPlusPlus_API.Multiblock_API;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
@@ -32,6 +37,7 @@ import gtPlusPlus.core.handler.COMPAT_HANDLER;
import gtPlusPlus.core.handler.OldCircuitHandler;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.CORE.ConfigSwitches;
+import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.ELEMENT;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -48,7 +54,10 @@ import gtPlusPlus.xmod.gregtech.api.world.GTPP_Worldgen;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.StaticFields59;
import gtPlusPlus.xmod.gregtech.common.blocks.fluid.GregtechFluidHandler;
+import gtPlusPlus.xmod.gregtech.common.computer.GT_ComputerCube_Setup;
+import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Description;
import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.GregtechMTE_ElementalDuplicator;
import gtPlusPlus.xmod.gregtech.loaders.Gregtech_Blocks;
import gtPlusPlus.xmod.gregtech.loaders.ProcessingAngleGrinder;
import gtPlusPlus.xmod.gregtech.loaders.ProcessingElectricButcherKnife;
@@ -57,11 +66,13 @@ import gtPlusPlus.xmod.gregtech.loaders.ProcessingElectricSnips;
import gtPlusPlus.xmod.gregtech.loaders.ProcessingToolHeadChoocher;
import gtPlusPlus.xmod.gregtech.loaders.misc.AddCustomMachineToPA;
import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoader_AlgaeFarm;
+import gtPlusPlus.xmod.gregtech.loaders.recipe.RecipeLoader_MolecularTransformer;
import gtPlusPlus.xmod.gregtech.recipes.RecipesToRemove;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechConduits;
import gtPlusPlus.xmod.gregtech.registration.gregtech.GregtechNitroDieselFix;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
public class HANDLER_GT {
@@ -165,8 +176,14 @@ public class HANDLER_GT {
}
RecipesToRemove.go();
convertPyroToCokeOven();
+ generateElementalDuplicatorRecipes();
Meta_GT_Proxy.fixIC2FluidNames();
+ GT_Computercube_Description.addStandardDescriptions();
+ GT_ComputerCube_Setup.init();
RecipeLoader_AlgaeFarm.generateRecipes();
+ if (LoadedMods.AdvancedSolarPanel) {
+ RecipeLoader_MolecularTransformer.run();
+ }
}
public static void addNewOrePrefixes() {
@@ -176,6 +193,59 @@ public class HANDLER_GT {
}
}
+
+ private static void generateElementalDuplicatorRecipes() {
+ for (GT_Recipe aRecipe : GT_Recipe_Map.sReplicatorFakeRecipes.mRecipeList) {
+ Object aDataOrb = aRecipe.mSpecialItems;
+ if (aDataOrb != null) {
+ ItemStack aOutput = aRecipe.mOutputs[0];
+ if (aOutput != null) {
+ FluidStack aFluid = aRecipe.mFluidInputs[0];
+ if (aFluid != null && aFluid.amount > 0) {
+ ItemStack tDataOrb = GregtechMTE_ElementalDuplicator.getSpecialSlotStack(aRecipe);
+ Materials tMaterial = Element.get(Behaviour_DataOrb.getDataName(tDataOrb)).mLinkedMaterials.get(0);
+ FluidStack aOutputFluid = null;
+ ItemStack aOutputItem = null;
+ if (tMaterial != null) {
+ boolean aUsingFluid = false;
+ if ((aOutputItem = GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial, 1L)) == null) {
+ if ((aOutputItem = GT_OreDictUnificator.get(OrePrefixes.cell, tMaterial, 1L)) != null) {
+ aOutputFluid = GT_Utility.getFluidForFilledItem(aOutputItem, true);
+ aUsingFluid = true;
+ }
+ }
+ GTPP_Recipe aNewRecipe = new GTPP_Recipe(
+ false,
+ new ItemStack[] {},
+ new ItemStack[] {!aUsingFluid ? aOutputItem : null},
+ aRecipe.mSpecialItems,
+ null,
+ aRecipe.mFluidInputs,
+ new FluidStack[] {aUsingFluid ? aOutputFluid : null},
+ aRecipe.mDuration,
+ aRecipe.mEUt,
+ aRecipe.mFluidInputs[0].amount);
+ GTPP_Recipe_Map.sElementalDuplicatorRecipes.add(aNewRecipe);
+
+ Logger.INFO("[EM] Generated recipe for "+tMaterial.mLocalizedName+", Outputs "+(aUsingFluid ? "Fluid" : "Dust"));
+ }
+ }
+ else {
+ Logger.INFO("[EM] Bad UU Requirement. "+RecipeUtils.getRecipeInfo(aRecipe));
+ }
+ }
+ else {
+ Logger.INFO("[EM] Bad Output. "+RecipeUtils.getRecipeInfo(aRecipe));
+ }
+ }
+ else {
+ Logger.INFO("[EM] Bad Data Orb. "+RecipeUtils.getRecipeInfo(aRecipe));
+ }
+ }
+ int aSize = GTPP_Recipe_Map.sElementalDuplicatorRecipes.mRecipeList.size();
+ Logger.INFO("[EM] Generated "+aSize+"/"+GT_Recipe_Map.sReplicatorFakeRecipes.mRecipeList.size()+" Replicator recipes.");
+ }
+
private static void convertPyroToCokeOven() {
if (ReflectionUtils.doesFieldExist(GT_Recipe.GT_Recipe_Map.class, "sPyrolyseRecipes")) {
int aCount = 0;