aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 16:35:50 +0000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-03-04 16:35:50 +0000
commit91371c9020ec10827653414d58dc7311b73ea686 (patch)
tree6c940991ab81ef1fa6491fe9d7d2987aadc5601d
parentf8814f83fa9f34e6088e98bed0561ce6cb13842d (diff)
downloadGT5-Unofficial-91371c9020ec10827653414d58dc7311b73ea686.tar.gz
GT5-Unofficial-91371c9020ec10827653414d58dc7311b73ea686.tar.bz2
GT5-Unofficial-91371c9020ec10827653414d58dc7311b73ea686.zip
% More TC Work.
-rw-r--r--src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java106
-rw-r--r--src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java52
2 files changed, 137 insertions, 21 deletions
diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java
index 96df6485f8..c363cba459 100644
--- a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java
+++ b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java
@@ -29,10 +29,69 @@ public class GTPP_AspectCompat implements IThaumcraftCompat {
private static HashMap<String, TC_Aspect> mAspectCache = new LinkedHashMap<String, TC_Aspect>();
+
+ public static TC_Aspect ASPECT_BALANCE;
+ public static TC_Aspect ASPECT_LUST;
+ public static TC_Aspect ASPECT_STARBOUND;
+ public static TC_Aspect ASPECT_TOXIC;
+ public static TC_Aspect ASPECT_HEAVEN;
+
+
+/* TC_Aspects.AER.mAspect = Aspect.AIR;
+ TC_Aspects.ALIENIS.mAspect = Aspect.ELDRITCH;
+ TC_Aspects.AQUA.mAspect = Aspect.WATER;
+ TC_Aspects.ARBOR.mAspect = Aspect.TREE;
+ TC_Aspects.AURAM.mAspect = Aspect.AURA;
+ TC_Aspects.BESTIA.mAspect = Aspect.BEAST;
+ TC_Aspects.COGNITIO.mAspect = Aspect.MIND;
+ TC_Aspects.CORPUS.mAspect = Aspect.FLESH;
+ TC_Aspects.EXANIMIS.mAspect = Aspect.UNDEAD;
+ TC_Aspects.FABRICO.mAspect = Aspect.CRAFT;
+ TC_Aspects.FAMES.mAspect = Aspect.HUNGER;
+ TC_Aspects.GELUM.mAspect = Aspect.COLD;
+ TC_Aspects.GRANUM.mAspect = Aspect.PLANT;
+ TC_Aspects.HERBA.mAspect = Aspect.PLANT;
+ TC_Aspects.HUMANUS.mAspect = Aspect.MAN;
+ TC_Aspects.IGNIS.mAspect = Aspect.FIRE;
+ TC_Aspects.INSTRUMENTUM.mAspect = Aspect.TOOL;
+ TC_Aspects.ITER.mAspect = Aspect.TRAVEL;
+ TC_Aspects.LIMUS.mAspect = Aspect.SLIME;
+ TC_Aspects.LUCRUM.mAspect = Aspect.GREED;
+ TC_Aspects.LUX.mAspect = Aspect.LIGHT;
+ TC_Aspects.MACHINA.mAspect = Aspect.MECHANISM;
+ TC_Aspects.MESSIS.mAspect = Aspect.CROP;
+ TC_Aspects.METALLUM.mAspect = Aspect.METAL;
+ TC_Aspects.METO.mAspect = Aspect.HARVEST;
+ TC_Aspects.MORTUUS.mAspect = Aspect.DEATH;
+ TC_Aspects.MOTUS.mAspect = Aspect.MOTION;
+ TC_Aspects.ORDO.mAspect = Aspect.ORDER;
+ TC_Aspects.PANNUS.mAspect = Aspect.CLOTH;
+ TC_Aspects.PERDITIO.mAspect = Aspect.ENTROPY;
+ TC_Aspects.PERFODIO.mAspect = Aspect.MINE;
+ TC_Aspects.PERMUTATIO.mAspect = Aspect.EXCHANGE;
+ TC_Aspects.POTENTIA.mAspect = Aspect.ENERGY;
+ TC_Aspects.PRAECANTATIO.mAspect = Aspect.MAGIC;
+ TC_Aspects.SANO.mAspect = Aspect.HEAL;
+ TC_Aspects.SENSUS.mAspect = Aspect.SENSES;
+ TC_Aspects.SPIRITUS.mAspect = Aspect.SOUL;
+ TC_Aspects.TELUM.mAspect = Aspect.WEAPON;
+ TC_Aspects.TERRA.mAspect = Aspect.EARTH;
+ TC_Aspects.TEMPESTAS.mAspect = Aspect.WEATHER;
+ TC_Aspects.TENEBRAE.mAspect = Aspect.DARKNESS;
+ TC_Aspects.TUTAMEN.mAspect = Aspect.ARMOR;
+ TC_Aspects.VACUOS.mAspect = Aspect.VOID;
+ TC_Aspects.VENENUM.mAspect = Aspect.POISON;
+ TC_Aspects.VICTUS.mAspect = Aspect.LIFE;
+ TC_Aspects.VINCULUM.mAspect = Aspect.TRAP;
+ TC_Aspects.VITIUM.mAspect = Aspect.TAINT;
+ TC_Aspects.VITREUS.mAspect = Aspect.CRYSTAL;
+ TC_Aspects.VOLATUS.mAspect = Aspect.FLIGHT;*/
+
+
public GTPP_AspectCompat() {
- //Generate all existing Aspects as TC_Aspects
+ // Generate all existing Aspects as TC_Aspects
LinkedHashMap<String, Object> h = TC_Aspect.getVanillaAspectList();
for (String g : h.keySet()) {
Object aBaseAspect = h.get(g);
@@ -49,22 +108,55 @@ public class GTPP_AspectCompat implements IThaumcraftCompat {
// Custom Aspects
- GTPP_Aspects.CUSTOM_1.mAspect = new Aspect("custom1", 15647411, new Aspect[]{Aspect.COLD, Aspect.FIRE},
- new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);
- GTPP_Aspects.CUSTOM_2.mAspect = new Aspect("custom2", 15658622, new Aspect[]{Aspect.MAGIC, Aspect.SLIME},
+ ASPECT_BALANCE =
+ new TC_Aspect(
+ "Purity",
+ 15647411,
+ new TC_Aspect[]{
+ get(TC_Aspects.GELUM),
+ get(TC_Aspects.IGNIS)
+ },
+ new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"),
+ false,
+ 1);
+ ASPECT_LUST =
+ new TC_Aspect(
+ "Vengeance",
+ 15647411,
+ new TC_Aspect[]{
+ get(TC_Aspects.CORPUS),
+ get(TC_Aspects.ORDO)
+ },
+ new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.NEBRISUM.name() + ".png"),
+ false,
+ 1);
+
+
+
+
+ /*GTPP_Aspects.CUSTOM_2.mAspect = new Aspect("custom2", 15658622, new Aspect[]{Aspect.MAGIC, Aspect.SLIME},
new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);
GTPP_Aspects.CUSTOM_3.mAspect = new Aspect("custom3", 12644078, new Aspect[]{Aspect.ENERGY, Aspect.ARMOR},
new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);
GTPP_Aspects.CUSTOM_4.mAspect = new Aspect("custom4", 12632256, new Aspect[]{Aspect.METAL, Aspect.POISON},
new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);
GTPP_Aspects.CUSTOM_5.mAspect = new Aspect("custom4", 12648384, new Aspect[]{Aspect.LIGHT, Aspect.SOUL},
- new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);
- GT_LanguageManager.addStringLocalization("tc.aspect.custom1", "Balance");
- GT_LanguageManager.addStringLocalization("tc.aspect.custom2", "Lust");
+ new ResourceLocation("gregtech:textures/aspects/" + TC_Aspects.RADIO.name() + ".png"), 1);*/
+ GT_LanguageManager.addStringLocalization("tc.aspect.Purity", "Balance");
+ GT_LanguageManager.addStringLocalization("tc.aspect.Vengeance", "Lust");
GT_LanguageManager.addStringLocalization("tc.aspect.custom3", "Starbound");
GT_LanguageManager.addStringLocalization("tc.aspect.custom4", "Toxic");
GT_LanguageManager.addStringLocalization("tc.aspect.custom5", "Heaven");
}
+
+ private TC_Aspect get(TC_Aspects aGtObjects) {
+ try {
+ return TC_Aspect.generate(aGtObjects.mAspect);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
public static synchronized final AspectList getAspectList(final List<TC_AspectStack_Ex> aAspects) {
AspectList o = null;
diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java
index b05b6f1e2b..5b84733dd1 100644
--- a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java
+++ b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java
@@ -58,6 +58,10 @@ public class TC_Aspect {
}
}
+ public static Object getVanillaAspectObject(String aAspectName) {
+ return getVanillaAspectList().get(aAspectName);
+ }
+
@@ -91,7 +95,7 @@ public class TC_Aspect {
* @param components
*/
public TC_Aspect(String tag, int color, TC_Aspect[] components) {
- this(tag, color, components, true, 1);
+ this(tag, color, components, false, 1);
}
/**
@@ -103,7 +107,7 @@ public class TC_Aspect {
* @param blend
*/
public TC_Aspect(String tag, int color, TC_Aspect[] components, int blend) {
- this(tag, color, components, true, blend);
+ this(tag, color, components, false, blend);
}
@@ -117,20 +121,20 @@ public class TC_Aspect {
* @param blend
*/
public TC_Aspect(String tag, int color, TC_Aspect[] components, boolean vanilla, int blend) {
- this(tag, color, components, vanilla ? new ResourceLocation("thaumcraft", "textures/aspects/" + tag.toLowerCase() + ".png") : new ResourceLocation(CORE.MODID, "textures/aspects/" + tag.toLowerCase() + ".png"), blend);
+ this(tag, color, components, vanilla ? new ResourceLocation("thaumcraft", "textures/aspects/" + tag.toLowerCase() + ".png") : new ResourceLocation(CORE.MODID, "textures/aspects/" + tag.toLowerCase() + ".png"), vanilla, blend);
}
- public TC_Aspect(String tag, int color, TC_Aspect[] components, ResourceLocation image, int blend) {
- if (getAspectList().containsKey(tag)) {
+ public TC_Aspect(String tag, int color, TC_Aspect[] components, ResourceLocation image, boolean vanilla, int blend) {
+ if (getAspectList().containsKey(tag.toLowerCase())) {
throw new IllegalArgumentException(tag + " already registered!");
} else {
- this.tag = tag;
+ this.tag = tag.toLowerCase();
this.components = components;
this.color = color;
this.image = image;
this.blend = blend;
- this.mAspect = this.generateTcAspect();
+ this.mAspect = vanilla ? getVanillaAspectObject(this.tag) : this.generateTcAspect();
}
}
@@ -139,13 +143,32 @@ public class TC_Aspect {
/**
* Generates a TC_Aspect from an object, presummed to be a TC Aspect.
* @param aBaseAspect - The TC Aspect to generate from.
+ * @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
- public TC_Aspect(Object aBaseAspect) throws IllegalArgumentException, IllegalAccessException {
- this((String) ReflectionUtils.getField(mClass_Aspect, "tag").get(aBaseAspect), (int) ReflectionUtils.getField(mClass_Aspect, "color").get(aBaseAspect), generateAspectArrayInternal(ReflectionUtils.getField(mClass_Aspect, "components"), aBaseAspect), (ResourceLocation) ReflectionUtils.getField(mClass_Aspect, "image").get(aBaseAspect), (int) ReflectionUtils.getField(mClass_Aspect, "blend").get(aBaseAspect));
- Field aChatColour = ReflectionUtils.getField(mClass_Aspect, "chatcolor");
- chatcolor = (String) aChatColour.get(aBaseAspect);
+ @SuppressWarnings("unused")
+ public static TC_Aspect generate(Object aBaseAspect) throws IllegalArgumentException, IllegalAccessException {
+ String aTag = ((String) ReflectionUtils.getField(mClass_Aspect, "tag").get(aBaseAspect)).toLowerCase();
+ if (aTag != null && getAspectList().containsKey(aTag.toLowerCase())) {
+ return getAspect(aTag);
+ } else {
+ TC_Aspect aTemp = new TC_Aspect(
+ aTag,
+ (int) ReflectionUtils.getField(mClass_Aspect, "color").get(aBaseAspect),
+ generateAspectArrayInternal(ReflectionUtils.getField(mClass_Aspect, "components"), (aBaseAspect)),
+ (ResourceLocation) ReflectionUtils.getField(mClass_Aspect, "image").get(aBaseAspect),
+ true,
+ (int) ReflectionUtils.getField(mClass_Aspect, "blend").get(aBaseAspect)
+ );
+ if (aTemp != null) {
+ aTemp.chatcolor = (String) ReflectionUtils.getField(mClass_Aspect, "chatcolor").get(aBaseAspect);
+ return aTemp;
+ }
+ else {
+ return null;
+ }
+ }
}
@@ -160,15 +183,16 @@ public class TC_Aspect {
* @return - A GT++ Aspect wrapper or null. (TC_Aspect)
*/
public static TC_Aspect getAspect(String aAspectName) {
- TC_Aspect g = mInternalAspectCache.get(aAspectName);
+ String aName = aAspectName.toLowerCase();
+ TC_Aspect g = mInternalAspectCache.get(aName);
if (g != null) {
return g;
}
else {
try {
- TC_Aspect aTemp = new TC_Aspect(getAspectList().get(aAspectName));
+ TC_Aspect aTemp = generate(getVanillaAspectList().get(aName));
if (aTemp != null) {
- mInternalAspectCache.put(aAspectName, aTemp);
+ mInternalAspectCache.put(aName, aTemp);
return aTemp;
}
} catch (IllegalArgumentException | IllegalAccessException e) {