diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-04 16:35:50 +0000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2019-03-04 16:35:50 +0000 |
commit | 91371c9020ec10827653414d58dc7311b73ea686 (patch) | |
tree | 6c940991ab81ef1fa6491fe9d7d2987aadc5601d | |
parent | f8814f83fa9f34e6088e98bed0561ce6cb13842d (diff) | |
download | GT5-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.java | 106 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/xmod/thaumcraft/aspect/TC_Aspect.java | 52 |
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) { |