aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
authordraknyte1 <draknyte1@hotmail.com>2017-02-02 10:42:04 +1000
committerdraknyte1 <draknyte1@hotmail.com>2017-02-02 10:42:04 +1000
commit2a688e006c07c1240966c2829906a1752031153c (patch)
tree67468ecacaa6e77ec2581532e2fe96fcced6b39c /src/Java/gtPlusPlus/core
parent233ee8c9a0a1c72953cfa6f7f5a439f2859daaf1 (diff)
downloadGT5-Unofficial-2a688e006c07c1240966c2829906a1752031153c.tar.gz
GT5-Unofficial-2a688e006c07c1240966c2829906a1752031153c.tar.bz2
GT5-Unofficial-2a688e006c07c1240966c2829906a1752031153c.zip
+ Added a check for BuildCraft.
% Changed handling of Wrench interfaces for the Workbench. - Removed classes I borrowed from MFR. (useless) - Removed Psychedelicraft support. (useless)
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java42
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java4
-rw-r--r--src/Java/gtPlusPlus/core/lib/LoadedMods.java6
3 files changed, 40 insertions, 12 deletions
diff --git a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
index 3038f77ac0..9d33550bc3 100644
--- a/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
+++ b/src/Java/gtPlusPlus/core/block/machine/Machine_Workbench.java
@@ -7,6 +7,7 @@ import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.player.PlayerUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import ic2.core.item.tool.ItemToolWrench;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
@@ -18,6 +19,7 @@ import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import buildcraft.api.tools.IToolWrench;
import cpw.mods.fml.common.Optional;
+import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
@@ -101,26 +103,50 @@ public class Machine_Workbench extends BlockContainer
return new TileEntityWorkbench();
}
- public static boolean isWrench(ItemStack item){
-
+ public static boolean isWrench(ItemStack item){
if (item.getItem() instanceof ItemToolWrench){
return true;
}
- if (item.getItem() instanceof IToolWrench){
- return true;
+ if (LoadedMods.BuildCraft){
+ return checkBuildcraftWrench(item);
}
if (LoadedMods.EnderIO){
return checkEnderIOWrench(item);
}
-
return false;
}
@Optional.Method(modid = "EnderIO")
private static boolean checkEnderIOWrench(ItemStack item){
- if (item.getItem() instanceof crazypants.enderio.api.tool.ITool){
- return true;
- }
+ if (ReflectionUtils.doesClassExist("crazypants.enderio.api.tool.ITool")){
+ Class<?> wrenchClass;
+ try {
+ wrenchClass = Class.forName("crazypants.enderio.api.tool.ITool");
+ if (wrenchClass.isInstance(item.getItem())){
+ return true;
+ }
+ }
+ catch (ClassNotFoundException e1) {
+ return false;
+ }
+ }
+ return false;
+ }
+
+ @Optional.Method(modid = "Buildcraft")
+ private static boolean checkBuildcraftWrench(ItemStack item){
+ if (ReflectionUtils.doesClassExist("buildcraft.api.tools.IToolWrench")){
+ Class<?> wrenchClass;
+ try {
+ wrenchClass = Class.forName("buildcraft.api.tools.IToolWrench");
+ if (wrenchClass.isInstance(item.getItem())){
+ return true;
+ }
+ }
+ catch (ClassNotFoundException e1) {
+ return false;
+ }
+ }
return false;
}
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
index ccf2b83837..b30487c070 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java
@@ -5,7 +5,6 @@ import gtPlusPlus.xmod.forestry.HANDLER_FR;
import gtPlusPlus.xmod.gregtech.HANDLER_GT;
import gtPlusPlus.xmod.growthcraft.HANDLER_GC;
import gtPlusPlus.xmod.ic2.HANDLER_IC2;
-import gtPlusPlus.xmod.psychedelicraft.HANDLER_Psych;
import gtPlusPlus.xmod.thermalfoundation.HANDLER_TF;
public class COMPAT_IntermodStaging {
@@ -15,7 +14,6 @@ public class COMPAT_IntermodStaging {
HANDLER_GC.preInit();
HANDLER_TF.preInit();
HANDLER_FR.preInit();
- HANDLER_Psych.preInit();
HANDLER_IC2.preInit();
HANDLER_Computronics.preInit();
@@ -26,7 +24,6 @@ public class COMPAT_IntermodStaging {
HANDLER_GC.init();
HANDLER_TF.init();
HANDLER_FR.Init();
- HANDLER_Psych.init();
HANDLER_IC2.init();
HANDLER_Computronics.init();
}
@@ -36,7 +33,6 @@ public class COMPAT_IntermodStaging {
HANDLER_GC.postInit();
HANDLER_TF.postInit();
HANDLER_FR.postInit();
- HANDLER_Psych.postInit();
HANDLER_IC2.postInit();
HANDLER_Computronics.postInit();
}
diff --git a/src/Java/gtPlusPlus/core/lib/LoadedMods.java b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
index 440f72d2c8..9e07f48bf3 100644
--- a/src/Java/gtPlusPlus/core/lib/LoadedMods.java
+++ b/src/Java/gtPlusPlus/core/lib/LoadedMods.java
@@ -11,6 +11,7 @@ public class LoadedMods {
//Initialize Variables
public static boolean Gregtech = false;
+ public static boolean BuildCraft = false;
public static boolean EnderIO = false;
public static boolean Big_Reactors = false;
public static boolean IndustrialCraft2 = false;
@@ -60,6 +61,11 @@ public class LoadedMods {
totalMods++;
}
+ if (Loader.isModLoaded("BuildCraft") == true){
+ BuildCraft = true;
+ Utils.LOG_INFO("Components enabled for: BuildCraft");
+ totalMods++;
+ }
if (Loader.isModLoaded("EnderIO") == true && !configSwitches.disableEnderIOIntegration){
EnderIO = true;
Utils.LOG_INFO("Components enabled for: EnderIO");