diff options
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java new file mode 100644 index 0000000000..34fa657bd7 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java @@ -0,0 +1,148 @@ +package gtPlusPlus.xmod.thaumcraft.aspect; + +import gregtech.common.GT_ThaumcraftCompat; + +import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_Aspects.TC_AspectStack_Ex; +import gtPlusPlus.xmod.thaumcraft.util.ThaumcraftUtils; + +import gregtech.api.enums.TC_Aspects; +import gregtech.api.enums.TC_Aspects.TC_AspectStack; +import gregtech.api.interfaces.internal.IThaumcraftCompat; +import gregtech.api.util.GT_LanguageManager; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; + +public class GTPP_AspectCompat implements IThaumcraftCompat { + + public static volatile Method m = null; + + public GTPP_AspectCompat() { + // Standard Aspects + GTPP_Aspects.AER.mAspect = Aspect.AIR; + GTPP_Aspects.ALIENIS.mAspect = Aspect.ELDRITCH; + GTPP_Aspects.AQUA.mAspect = Aspect.WATER; + GTPP_Aspects.ARBOR.mAspect = Aspect.TREE; + GTPP_Aspects.AURAM.mAspect = Aspect.AURA; + GTPP_Aspects.BESTIA.mAspect = Aspect.BEAST; + GTPP_Aspects.COGNITIO.mAspect = Aspect.MIND; + GTPP_Aspects.CORPUS.mAspect = Aspect.FLESH; + GTPP_Aspects.EXANIMIS.mAspect = Aspect.UNDEAD; + GTPP_Aspects.FABRICO.mAspect = Aspect.CRAFT; + GTPP_Aspects.FAMES.mAspect = Aspect.HUNGER; + GTPP_Aspects.GELUM.mAspect = Aspect.COLD; + GTPP_Aspects.GRANUM.mAspect = Aspect.PLANT; + GTPP_Aspects.HERBA.mAspect = Aspect.PLANT; + GTPP_Aspects.HUMANUS.mAspect = Aspect.MAN; + GTPP_Aspects.IGNIS.mAspect = Aspect.FIRE; + GTPP_Aspects.INSTRUMENTUM.mAspect = Aspect.TOOL; + GTPP_Aspects.ITER.mAspect = Aspect.TRAVEL; + GTPP_Aspects.LIMUS.mAspect = Aspect.SLIME; + GTPP_Aspects.LUCRUM.mAspect = Aspect.GREED; + GTPP_Aspects.LUX.mAspect = Aspect.LIGHT; + GTPP_Aspects.MACHINA.mAspect = Aspect.MECHANISM; + GTPP_Aspects.MESSIS.mAspect = Aspect.CROP; + GTPP_Aspects.METALLUM.mAspect = Aspect.METAL; + GTPP_Aspects.METO.mAspect = Aspect.HARVEST; + GTPP_Aspects.MORTUUS.mAspect = Aspect.DEATH; + GTPP_Aspects.MOTUS.mAspect = Aspect.MOTION; + GTPP_Aspects.ORDO.mAspect = Aspect.ORDER; + GTPP_Aspects.PANNUS.mAspect = Aspect.CLOTH; + GTPP_Aspects.PERDITIO.mAspect = Aspect.ENTROPY; + GTPP_Aspects.PERFODIO.mAspect = Aspect.MINE; + GTPP_Aspects.PERMUTATIO.mAspect = Aspect.EXCHANGE; + GTPP_Aspects.POTENTIA.mAspect = Aspect.ENERGY; + GTPP_Aspects.PRAECANTATIO.mAspect = Aspect.MAGIC; + GTPP_Aspects.SANO.mAspect = Aspect.HEAL; + GTPP_Aspects.SENSUS.mAspect = Aspect.SENSES; + GTPP_Aspects.SPIRITUS.mAspect = Aspect.SOUL; + GTPP_Aspects.TELUM.mAspect = Aspect.WEAPON; + GTPP_Aspects.TERRA.mAspect = Aspect.EARTH; + GTPP_Aspects.TEMPESTAS.mAspect = Aspect.WEATHER; + GTPP_Aspects.TENEBRAE.mAspect = Aspect.DARKNESS; + GTPP_Aspects.TUTAMEN.mAspect = Aspect.ARMOR; + GTPP_Aspects.VACUOS.mAspect = Aspect.VOID; + GTPP_Aspects.VENENUM.mAspect = Aspect.POISON; + GTPP_Aspects.VICTUS.mAspect = Aspect.LIFE; + GTPP_Aspects.VINCULUM.mAspect = Aspect.TRAP; + GTPP_Aspects.VITIUM.mAspect = Aspect.TAINT; + GTPP_Aspects.VITREUS.mAspect = Aspect.CRYSTAL; + GTPP_Aspects.VOLATUS.mAspect = Aspect.FLIGHT; + GTPP_Aspects.STRONTIO.mAspect = (Aspect) TC_Aspects.STRONTIO.mAspect; + GTPP_Aspects.NEBRISUM.mAspect = (Aspect) TC_Aspects.NEBRISUM.mAspect; + GTPP_Aspects.ELECTRUM.mAspect = (Aspect) TC_Aspects.ELECTRUM.mAspect; + GTPP_Aspects.MAGNETO.mAspect = (Aspect) TC_Aspects.MAGNETO.mAspect; + GTPP_Aspects.RADIO.mAspect = (Aspect) TC_Aspects.RADIO.mAspect; + + // 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}, + 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"); + GT_LanguageManager.addStringLocalization("tc.aspect.custom3", "Starbound"); + GT_LanguageManager.addStringLocalization("tc.aspect.custom4", "Toxic"); + GT_LanguageManager.addStringLocalization("tc.aspect.custom5", "Heaven"); + } + + public static synchronized final AspectList getAspectList_Ex(final List<TC_AspectStack_Ex> aAspects) { + AspectList o = null; + try { + if (m == null || (m != null && !m.isAccessible())) { + m = GT_ThaumcraftCompat.class.getDeclaredMethod("getAspectList", List.class); + m.setAccessible(true); + } + if (m != null) { + o = (AspectList) m.invoke(null, aAspects); + } + } + catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {} + return o; + } + + @Override + public boolean registerPortholeBlacklistedBlock(Block p0) { + return ThaumcraftUtils.registerPortholeBlacklistedBlock(p0); + } + + @Override + public boolean registerThaumcraftAspectsToItem(ItemStack p0, List<TC_AspectStack> p1, boolean p2) { + return ThaumcraftUtils.registerThaumcraftAspectsToItem(p0, ThaumcraftUtils.convertAspectStack(p1), p2); + } + + @Override + public boolean registerThaumcraftAspectsToItem(ItemStack p0, List<TC_AspectStack> p1, String p2) { + return ThaumcraftUtils.registerThaumcraftAspectsToItem(p0, ThaumcraftUtils.convertAspectStack(p1), p2); + } + + @Override + public Object addCrucibleRecipe(String p0, Object p1, ItemStack p2, List<TC_AspectStack> p3) { + return ThaumcraftUtils.addCrucibleRecipe(p0, p1, p2, ThaumcraftUtils.convertAspectStack(p3)); + } + + @Override + public Object addInfusionRecipe(String p0, ItemStack p1, ItemStack[] p2, ItemStack p3, int p4, List<TC_AspectStack> p5) { + return ThaumcraftUtils.addInfusionRecipe(p0, p1, p2, p3, p4, ThaumcraftUtils.convertAspectStack(p5)); + } + + @Override + public Object addResearch(String p0, String p1, String p2, String[] p3, String p4, ItemStack p5, int p6, int p7, + int p8, int p9, List<TC_AspectStack> p10, ItemStack[] p11, Object[] p12) { + return ThaumcraftUtils.addResearch(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, ThaumcraftUtils.convertAspectStack(p10), p11, p12); + } + +}
\ No newline at end of file |