aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorBlood-Asp <bloodasphendrik@gmail.com>2016-09-15 16:36:08 +0200
committerBlood-Asp <bloodasphendrik@gmail.com>2016-09-15 16:36:08 +0200
commitc997df59522511e899b4bb01a667b48646029450 (patch)
treeb339af410e4f91ecb9919aeab8da523ca5230a22 /src/main/java/gregtech
parent059cf34455b326abfed19da176d62ad478fca7c6 (diff)
downloadGT5-Unofficial-c997df59522511e899b4bb01a667b48646029450.tar.gz
GT5-Unofficial-c997df59522511e899b4bb01a667b48646029450.tar.bz2
GT5-Unofficial-c997df59522511e899b4bb01a667b48646029450.zip
Add Magneticraft compat
and remove Thaumcraft changes because of bugs/no improvements And add config to arc smelt not annealed/wought.
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r--src/main/java/gregtech/GT_Mod.java3
-rw-r--r--src/main/java/gregtech/api/util/GT_ModHandler.java31
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeRegistrator.java4
-rw-r--r--src/main/java/gregtech/common/GT_Proxy.java3
-rw-r--r--src/main/java/gregtech/common/GT_ThaumcraftCompat.java41
5 files changed, 64 insertions, 18 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 7c27dd987c..1a22ab7409 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -231,6 +231,9 @@ public class GT_Mod implements IGT_Mod {
gregtechproxy.mNerfedCombs = tMainConfig.get(aTextGeneral, "NerfCombs", true).getBoolean(true);
gregtechproxy.mHideUnusedOres = tMainConfig.get(aTextGeneral, "HideUnusedOres", true).getBoolean(true);
gregtechproxy.mHideRecyclingRecipes = tMainConfig.get(aTextGeneral, "HideRecyclingRecipes", true).getBoolean(true);
+ gregtechproxy.mArcSmeltIntoAnnealed = tMainConfig.get(aTextGeneral, "ArcSmeltIntoAnnealedWrought", true).getBoolean(true);
+ gregtechproxy.mMagneticraftRecipes = tMainConfig.get(aTextGeneral, "EnableMagneticraftSupport", true).getBoolean(true);
+ gregtechproxy.mMagneticraftBonusOutputPercent = tMainConfig.get(aTextGeneral, "MagneticraftBonusOutputPercent", 100.0f).getDouble();
GregTech_API.mOutputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "OutputRF", true);
GregTech_API.mInputRF = GregTech_API.sOPStuff.get(ConfigCategories.general, "InputRF", false);
diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java
index 00d637398d..05205cfb97 100644
--- a/src/main/java/gregtech/api/util/GT_ModHandler.java
+++ b/src/main/java/gregtech/api/util/GT_ModHandler.java
@@ -1,7 +1,9 @@
package gregtech.api.util;
+import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.*;
import gregtech.api.interfaces.IDamagableItem;
@@ -37,6 +39,8 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.util.*;
import java.util.Map.Entry;
@@ -555,7 +559,7 @@ public class GT_ModHandler {
if (GregTech_API.sRecipeFile.get(ConfigCategories.Machines.maceration, aInput, true)) {
GT_Utility.addSimpleIC2MachineRecipe(aInput, getMaceratorRecipeList(), null, aOutput1);
}
-
+ addMagneticraftRecipe(aInput, aOutput1, aOutput2, aChance2, aOutput3, aChance3);
RA.addPulveriserRecipe(aInput, new ItemStack[]{aOutput1, aOutput2, aOutput3}, new int[]{10000, aChance2 <= 0 ? 1000 : 100 * aChance2, aChance3 <= 0 ? 1000 : 100 * aChance3}, 400, 2);
if (!OrePrefixes.log.contains(aInput)) {
@@ -589,6 +593,31 @@ public class GT_ModHandler {
}
}
return true;
+ }
+
+ static Class tClass;
+ static Method tMethod1;
+ static Method tMethod2;
+
+ public static boolean addMagneticraftRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3){
+ if(GT_Mod.gregtechproxy.mMagneticraftRecipes && Loader.isModLoaded("Magneticraft")){
+ try {
+ if(tClass==null)tClass = Class.forName("com.cout970.magneticraft.api.access.MgRecipeRegister");
+ if(tMethod1==null)tMethod1 = tClass.getMethod("registerCrusherRecipe", ItemStack.class, ItemStack.class,ItemStack.class, float.class, ItemStack.class, float.class);
+ if(tMethod2==null)tMethod2 = tClass.getMethod("registerGrinderRecipe", ItemStack.class, ItemStack.class,ItemStack.class, float.class, ItemStack.class, float.class);
+
+ ItemData tData = GT_OreDictUnificator.getAssociation(aInput);
+ if(tData!=null&&tData.mPrefix!=null){
+ if(tData.mPrefix==OrePrefixes.ore||tData.mPrefix==OrePrefixes.oreBlackgranite||tData.mPrefix==OrePrefixes.oreEndstone||tData.mPrefix==OrePrefixes.oreNetherrack||tData.mPrefix==OrePrefixes.oreRedgranite){
+ tMethod1.invoke(null, aInput, aOutput1, aOutput2,(float)((float)aChance2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), aOutput3,(float)((float)aChance3/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
+ }else if(tData.mPrefix==OrePrefixes.crushed||tData.mPrefix==OrePrefixes.crushedCentrifuged||tData.mPrefix==OrePrefixes.crushedPurified){
+ tMethod2.invoke(null, aInput, aOutput1, aOutput2,(float)((float)aChance2/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent), aOutput3,(float)((float)aChance3/GT_Mod.gregtechproxy.mMagneticraftBonusOutputPercent));
+ }
+ }
+
+ } catch (Exception e) {e.printStackTrace();}
+ }
+ return true;
}
/**
diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
index 27d3aed199..0c05e5738a 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
@@ -212,7 +212,11 @@ public class GT_RecipeRegistrator {
continue;
}
if (tMaterial.mMaterial.contains(SubTag.METAL)) {
+ if(GT_Mod.gregtechproxy.mArcSmeltIntoAnnealed){
tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mArcSmeltInto;
+ }else{
+ tMaterial.mMaterial = tMaterial.mMaterial.mSmeltInto.mSmeltInto;
+ }
continue;
}
tMaterial.mAmount = 0;
diff --git a/src/main/java/gregtech/common/GT_Proxy.java b/src/main/java/gregtech/common/GT_Proxy.java
index f080c33924..a8da7cb208 100644
--- a/src/main/java/gregtech/common/GT_Proxy.java
+++ b/src/main/java/gregtech/common/GT_Proxy.java
@@ -147,6 +147,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public boolean mDisableIC2Cables = false;
public boolean mAchievements = true;
public boolean mAE2Integration = true;
+ public boolean mArcSmeltIntoAnnealed = true;
+ public boolean mMagneticraftRecipes = true;
public int mSkeletonsShootGTArrows = 16;
public int mMaxEqualEntitiesAtOneSpot = 3;
public int mFlintChance = 30;
@@ -164,6 +166,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public int mWireHeatingTicks = 4;
public boolean mHideUnusedOres = true;
public boolean mHideRecyclingRecipes = true;
+ public double mMagneticraftBonusOutputPercent = 100.0d;
private final String aTextThermalExpansion = "ThermalExpansion";
private final String aTextRailcraft = "Railcraft";
private final String aTextTwilightForest = "TwilightForest";
diff --git a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java
index aa3d120357..7c2cfed0ae 100644
--- a/src/main/java/gregtech/common/GT_ThaumcraftCompat.java
+++ b/src/main/java/gregtech/common/GT_ThaumcraftCompat.java
@@ -191,24 +191,31 @@ public class GT_ThaumcraftCompat
return ThaumcraftApi.addInfusionCraftingRecipe(aResearch, GT_Utility.copy(new Object[]{aOutput}), aInstability, getAspectList(aAspects), aMainInput, aSideInputs);
}
- public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List<TC_Aspects.TC_AspectStack> aAspects, String aOreDict) {
- if (aAspects.isEmpty()) return false;
- ThaumcraftApi.registerObjectTag(aOreDict, (AspectList)getAspectList(aAspects));
- return true;
- }
+ public boolean registerThaumcraftAspectsToItem(ItemStack aExampleStack, List<TC_Aspects.TC_AspectStack> aAspects, String aOreDict) {
+ if (aAspects.isEmpty()) {
+ return false;
+ }
+ AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aExampleStack);
+ if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) {
+ ThaumcraftApi.registerObjectTag(aOreDict, getAspectList(aAspects));
+ }
+ return true;
+ }
- public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_Aspects.TC_AspectStack> aAspects, boolean aAdditive) {
- if (aAspects.isEmpty()) return false;
- if (aAdditive) {
- ThaumcraftApi.registerComplexObjectTag(aStack, (AspectList)getAspectList(aAspects));
- return true;
- }
- AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aStack);
- if (tAlreadyRegisteredAspects == null || tAlreadyRegisteredAspects.size() <= 0) {
- ThaumcraftApi.registerObjectTag(aStack, (AspectList)getAspectList(aAspects));
- }
- return true;
- }
+ public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_Aspects.TC_AspectStack> aAspects, boolean aAdditive) {
+ if (aAspects.isEmpty()) {
+ return false;
+ }
+ if (aAdditive) {
+ ThaumcraftApi.registerComplexObjectTag(aStack, getAspectList(aAspects));
+ return true;
+ }
+ AspectList tAlreadyRegisteredAspects = ThaumcraftApiHelper.getObjectAspects(aStack);
+ if ((tAlreadyRegisteredAspects == null) || (tAlreadyRegisteredAspects.size() <= 0)) {
+ ThaumcraftApi.registerObjectTag(aStack, getAspectList(aAspects));
+ }
+ return true;
+ }
public boolean registerPortholeBlacklistedBlock(Block aBlock) {
ThaumcraftApi.portableHoleBlackList.add(aBlock);