diff options
author | draknyte1 <draknyte1@hotmail.com> | 2017-02-02 10:42:04 +1000 |
---|---|---|
committer | draknyte1 <draknyte1@hotmail.com> | 2017-02-02 10:42:04 +1000 |
commit | 2a688e006c07c1240966c2829906a1752031153c (patch) | |
tree | 67468ecacaa6e77ec2581532e2fe96fcced6b39c /src/Java/gtPlusPlus/core | |
parent | 233ee8c9a0a1c72953cfa6f7f5a439f2859daaf1 (diff) | |
download | GT5-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')
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"); |