diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-04 22:03:24 +0000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-04 22:03:24 +0000 |
commit | b78556a3e82ff893dcb4fbf3dc03e84aab208f01 (patch) | |
tree | 15fc089be3846107ee9e412c1293a24de2cd039e /src/Java/gtPlusPlus/xmod/thaumcraft/objects | |
parent | 94f842fa9223d1d0fa233266495a20a00eafa030 (diff) | |
download | GT5-Unofficial-b78556a3e82ff893dcb4fbf3dc03e84aab208f01.tar.gz GT5-Unofficial-b78556a3e82ff893dcb4fbf3dc03e84aab208f01.tar.bz2 GT5-Unofficial-b78556a3e82ff893dcb4fbf3dc03e84aab208f01.zip |
+ Added some ASM to fix Aspect safety in TC.
$ Minor fixes to the 5 custom TC4 Aspects.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/thaumcraft/objects')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java b/src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java index ba448442d2..4759a04158 100644 --- a/src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java @@ -131,28 +131,32 @@ public class TC_Aspect_Wrapper { this(tag, color, components, vanilla ? new ResourceLocation("thaumcraft", "textures/aspects/" + tag.toLowerCase() + ".png") : new ResourceLocation(CORE.MODID, "textures/aspects/" + tag.toLowerCase() + ".png"), vanilla, blend); } + private static int aInternalAspectIDAllocation = 0; - public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, ResourceLocation image, boolean vanilla, int blend) { + public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, ResourceLocation image, boolean vanilla, int blend) { + if (components == null) { + components = new TC_Aspect_Wrapper[] {}; + } + String aTag = vanilla ? tag.toLowerCase() : "custom"+(aInternalAspectIDAllocation++); if (getAspectList().containsKey(tag.toLowerCase())) { - this.tag = tag.toLowerCase(); + this.tag = aTag; this.components = components; this.color = color; this.image = image; this.blend = blend; this.mAspect = null; this.mGtEnumField = null; - } else { - this.tag = tag.toLowerCase(); + } else { + this.tag = aTag; this.components = components; this.color = color; this.image = image; this.blend = blend; this.mAspect = vanilla ? getVanillaAspectObject(this.tag) : this.generateTcAspect(); - //Set GT Type if exists + // Set GT Type if exists TC_Aspects y = null; for (TC_Aspects e : TC_Aspects.values()) { - TC_Aspect_Wrapper g; try { String gtTag = ThaumcraftUtils.getTagFromAspectObject(e.mAspect); if (gtTag != null) { @@ -166,7 +170,11 @@ public class TC_Aspect_Wrapper { } } this.mGtEnumField = y; - mInternalAspectCache.put(this.tag, this); + mInternalAspectCache.put(this.tag, this); + // Double link custom Aspects, but internalise names using custom# instead + if (!vanilla) { + mInternalAspectCache.put(tag.toLowerCase(), this); + } Logger.INFO("[Thaumcraft++] Adding support for Aspect: "+tag); } } @@ -282,7 +290,7 @@ public class TC_Aspect_Wrapper { public Object generateTcAspect() { try { //thaumcraft.api.aspects.Aspect.Aspect() - Object aAspectArray = (Object[]) Array.newInstance(mClass_Aspect, 1); + Object aAspectArray = (Object[]) Array.newInstance(mClass_Aspect, 0); if (components.length > 0) { aAspectArray = (Object[]) Array.newInstance(mClass_Aspect, components.length); int i = 0; |