aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/thaumcraft/objects
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 22:03:24 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 22:03:24 +0000
commitb78556a3e82ff893dcb4fbf3dc03e84aab208f01 (patch)
tree15fc089be3846107ee9e412c1293a24de2cd039e /src/Java/gtPlusPlus/xmod/thaumcraft/objects
parent94f842fa9223d1d0fa233266495a20a00eafa030 (diff)
downloadGT5-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.java24
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;