aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util/minecraft
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 18:20:28 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 18:20:28 +1000
commitaf61708010aef717ecc3537fa115547acb9aa9c7 (patch)
tree663bd3d765daa0fc1d053840dad558ab7bb62dba /src/Java/gtPlusPlus/core/util/minecraft
parent70a0df8a68725c16f0c0b959639b8e82cbbcf3a0 (diff)
downloadGT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.tar.gz
GT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.tar.bz2
GT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.zip
$ More fixes.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util/minecraft')
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java35
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java10
2 files changed, 40 insertions, 5 deletions
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
index 839cb164cb..844bb0bcaf 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
@@ -1,10 +1,13 @@
package gtPlusPlus.core.util.minecraft;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
import cpw.mods.fml.common.registry.EntityRegistry;
-
+import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.entity.*;
import net.minecraft.entity.player.EntityPlayer;
@@ -16,6 +19,7 @@ import net.minecraft.world.biome.BiomeGenBase;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.minecraft.BlockPos;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import ic2.core.IC2Potion;
import ic2.core.item.armor.ItemArmorHazmat;
@@ -125,5 +129,34 @@ public class EntityUtils {
public static void doDamage(Entity entity, DamageSource dmg, int i) {
entity.attackEntityFrom(dmg, i);
}
+
+ public static boolean isTileEntityRegistered(Class aTileClass, String aTileName) {
+ Field aRegistry = ReflectionUtils.getField(ReflectionUtils.getClass("net.minecraft.tileentity.TileEntity"), "nameToClassMap");
+ Field aRegistry2 = ReflectionUtils.getField(ReflectionUtils.getClass("net.minecraft.tileentity.TileEntity"), "classToNameMap");
+ try {
+ Object o = aRegistry.get(null);
+ if (o != null) {
+ Map nameToClassMap = (Map) o;
+ if (!nameToClassMap.containsKey(aTileName)) {
+ o = aRegistry2.get(null);
+ if (o != null) {
+ Map classToNameMap = (Map) o;
+ if (!classToNameMap.containsKey(aTileClass)) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ }
+ }
+ else {
+ return true;
+ }
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index e266ee02d4..9617d12b66 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -30,6 +30,8 @@ import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool;
+import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
@@ -1120,14 +1122,14 @@ public class ItemUtils {
return false;
}
final Item mItem = aStack.getItem();
- if (mItem instanceof GT_MetaGenerated_Tool_01) {
+ if (mItem instanceof GT_MetaGenerated_Tool_01 || mItem instanceof MetaGeneratedGregtechTools || mItem instanceof Gregtech_MetaTool) {
return true;
- }
+ }
return false;
}
public static boolean isToolWrench(ItemStack aWrench) {
- if (isItemGregtechTool(aWrench) && (aWrench.getItemDamage() == 16 || aWrench.getItemDamage() == 120 || aWrench.getItemDamage() == 122 || aWrench.getItemDamage() == 124)) {
+ if (isItemGregtechTool(aWrench) && (aWrench.getItemDamage() == 16 || aWrench.getItemDamage() == 120 || aWrench.getItemDamage() == 122 || aWrench.getItemDamage() == 124 || aWrench.getItemDamage() == 7734)) {
return true;
}
return false;
@@ -1162,7 +1164,7 @@ public class ItemUtils {
}
public static boolean isToolHammer(ItemStack aHammer) {
- if (isItemGregtechTool(aHammer) && (aHammer.getItemDamage() == 12)) {
+ if (isItemGregtechTool(aHammer) && (aHammer.getItemDamage() == 12 || aHammer.getItemDamage() == 7734)) {
return true;
}
return false;