diff options
Diffstat (limited to 'src')
20 files changed, 0 insertions, 1721 deletions
diff --git a/src/main/java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java b/src/main/java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java index f511e3e6ae..0593c833f3 100644 --- a/src/main/java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java +++ b/src/main/java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java @@ -12,7 +12,6 @@ import gtPlusPlus.xmod.gregtech.HANDLER_GT; import gtPlusPlus.xmod.ic2.HANDLER_IC2; import gtPlusPlus.xmod.ob.HANDLER_OpenBlocks; import gtPlusPlus.xmod.railcraft.HANDLER_Railcraft; -import gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft; import gtPlusPlus.xmod.thermalfoundation.HANDLER_TF; import gtPlusPlus.xmod.tinkers.HANDLER_Tinkers; @@ -31,7 +30,6 @@ public class COMPAT_IntermodStaging { public static void init(FMLInitializationEvent init) { HANDLER_GT.init(); HANDLER_TF.init(); - HANDLER_Thaumcraft.init(); HANDLER_OpenBlocks.init(); } diff --git a/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java b/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java index b54811947f..485e508805 100644 --- a/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java +++ b/src/main/java/gtPlusPlus/core/item/base/BaseItemComponent.java @@ -2,7 +2,6 @@ package gtPlusPlus.core.item.base; import static gregtech.api.enums.Mods.GTPlusPlus; import static gregtech.api.enums.Mods.GregTech; -import static gregtech.api.enums.Mods.Thaumcraft; import java.awt.Color; import java.util.HashMap; @@ -78,14 +77,6 @@ public class BaseItemComponent extends Item { if (componentType == ComponentTypes.GEAR) { GT_OreDictUnificator.registerOre("gear" + material.getUnlocalizedName(), ItemUtils.getSimpleStack(this)); } - if (Thaumcraft.isModLoaded()) { - // ThaumcraftUtils.addAspectToItem(ItemUtils.getSimpleStack(this), - // TC_Aspect_Wrapper.generate(TC_Aspects.METALLUM.mAspect), 1); - if (componentMaterial.isRadioactive) { - // ThaumcraftUtils.addAspectToItem(ItemUtils.getSimpleStack(this), - // TC_Aspect_Wrapper.generate(TC_Aspects.RADIO.mAspect), componentMaterial.vRadiationLevel); - } - } registerComponent(); GT_LanguageManager.addStringLocalization("gtplusplus.item." + unlocalName + ".name", getFormattedLangName()); diff --git a/src/main/java/gtPlusPlus/core/material/Material.java b/src/main/java/gtPlusPlus/core/material/Material.java index 8068d6ab35..fe1dcd618d 100644 --- a/src/main/java/gtPlusPlus/core/material/Material.java +++ b/src/main/java/gtPlusPlus/core/material/Material.java @@ -32,7 +32,6 @@ import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; import gtPlusPlus.xmod.tinkers.material.BaseTinkersMaterial; public class Material { @@ -85,8 +84,6 @@ public class Material { public int vToolQuality; public int vHarvestLevel; - private TC_Aspect_Wrapper[] vAspects; - public BaseTinkersMaterial vTiConHandler; public short werkstoffID; @@ -531,8 +528,6 @@ public class Material { this.vNeutrons = this.calculateNeutrons(); } - this.vAspects = null; - this.vMass = this.getMass(); // Sets tool Durability diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java deleted file mode 100644 index 0bca8535fe..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java +++ /dev/null @@ -1,32 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft; - -import static gregtech.api.enums.Mods.Thaumcraft; - -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_AspectCompat; -import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_AspectStack; - -public class HANDLER_Thaumcraft { - - public static GTPP_AspectCompat sThaumcraftCompat; - public static Item mResearchNotes; - public static final AutoMap<Pair<ItemStack, GTPP_AspectStack[]>> sItemsToGetAspects = new AutoMap<Pair<ItemStack, GTPP_AspectStack[]>>(); - - public static void init() { - if (Thaumcraft.isModLoaded()) { - try { - mResearchNotes = (Item) ReflectionUtils - .getField(ReflectionUtils.getClass("thaumcraft.common.config.ConfigItems"), "itemResearchNotes") - .get(null); - } catch (IllegalArgumentException | IllegalAccessException e) { - mResearchNotes = Items.paper; - } - } - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java deleted file mode 100644 index feda254313..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectCompat.java +++ /dev/null @@ -1,147 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.aspect; - -import static gregtech.api.enums.Mods.GTPlusPlus; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.enums.TC_Aspects; -import gregtech.common.GT_ThaumcraftCompat; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_AspectList_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; - -public class GTPP_AspectCompat { - - public static volatile Method m = null; - - private static HashMap<String, TC_Aspect_Wrapper> mAspectCache = new LinkedHashMap<String, TC_Aspect_Wrapper>(); - - public static TC_Aspect_Wrapper ASPECT_BALANCE; - public static TC_Aspect_Wrapper ASPECT_LUST; - public static TC_Aspect_Wrapper ASPECT_STARBOUND; - public static TC_Aspect_Wrapper ASPECT_TOXIC; - public static TC_Aspect_Wrapper 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 - LinkedHashMap<String, Object> h = TC_Aspect_Wrapper.getVanillaAspectList(); - for (String g : h.keySet()) { - Object aBaseAspect = h.get(g); - if (aBaseAspect != null && TC_Aspect_Wrapper.isObjectAnAspect(aBaseAspect)) { - TC_Aspect_Wrapper aS = TC_Aspect_Wrapper.getAspect(g); - if (aS != null) { - mAspectCache.put(g, aS); - continue; - } - } - } - - // Custom Aspects - ASPECT_BALANCE = new TC_Aspect_Wrapper( - "Sagrausten", - Utils.rgbtoHexValue(125, 125, 125), - new TC_Aspect_Wrapper[] { ASPECT_STARBOUND, get(TC_Aspects.RADIO) }, - new ResourceLocation(GTPlusPlus.ID + ":textures/aspects/" + "Sagrausten.png"), - false, - 1, - "Ancient Knowledge"); - - ASPECT_LUST = new TC_Aspect_Wrapper( - "Slusium", - Utils.rgbtoHexValue(175, 125, 25), - new TC_Aspect_Wrapper[] { ASPECT_BALANCE, get(TC_Aspects.NEBRISUM) }, - new ResourceLocation(GTPlusPlus.ID + ":textures/aspects/" + "Slusium.png"), - false, - 1, - "Warped Thoughts"); - - ASPECT_STARBOUND = new TC_Aspect_Wrapper( - "Xenil", - Utils.rgbtoHexValue(25, 25, 25), - new TC_Aspect_Wrapper[] { get(TC_Aspects.MAGNETO), get(TC_Aspects.RADIO) }, - new ResourceLocation(GTPlusPlus.ID + ":textures/aspects/" + "Xenil.png"), - false, - 1, - "A beginning to something new"); - - ASPECT_TOXIC = new TC_Aspect_Wrapper( - "Xablum", - Utils.rgbtoHexValue(25, 185, 25), - new TC_Aspect_Wrapper[] { ASPECT_STARBOUND, ASPECT_LUST }, - new ResourceLocation(GTPlusPlus.ID + ":textures/aspects/" + "Xablum.png"), - false, - 1, - "Insanity"); - - ASPECT_HEAVEN = new TC_Aspect_Wrapper( - "Zetralt", - Utils.rgbtoHexValue(225, 225, 225), - new TC_Aspect_Wrapper[] { get(TC_Aspects.AURAM), ASPECT_TOXIC }, - new ResourceLocation(GTPlusPlus.ID + ":textures/aspects/" + "Zetralt.png"), - false, - 1, - "Control, Respect, Glory"); - } - - private TC_Aspect_Wrapper get(TC_Aspects aGtObjects) { - try { - return TC_Aspect_Wrapper.generate(aGtObjects.mAspect); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - return null; - } - } - - public static final synchronized TC_AspectList_Wrapper getTC_AspectList_Wrapper( - final List<GTPP_AspectStack> aAspects) { - TC_AspectList_Wrapper o = null; - try { - if (m == null || (m != null && !m.isAccessible())) { - m = GT_ThaumcraftCompat.class.getDeclaredMethod("getTC_AspectList_Wrapper", List.class); - m.setAccessible(true); - } - if (m != null) { - o = (TC_AspectList_Wrapper) m.invoke(null, aAspects); - } - } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException - | InvocationTargetException e) { - e.printStackTrace(); - } - if (o == null) { - Logger.REFLECTION("[Aspect] Did not retrieve valid aspect list from reflective invocation."); - } - return o; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectStack.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectStack.java deleted file mode 100644 index e48bd64e53..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/aspect/GTPP_AspectStack.java +++ /dev/null @@ -1,14 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.aspect; - -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; - -public class GTPP_AspectStack { - - public final TC_Aspect_Wrapper mAspect; - public final int mAmount; - - public GTPP_AspectStack(TC_Aspect_Wrapper aAspect, int aAmount) { - mAspect = aAspect; - mAmount = aAmount; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_AspectList_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_AspectList_Wrapper.java deleted file mode 100644 index 346d0d3c8b..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_AspectList_Wrapper.java +++ /dev/null @@ -1,32 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect; - -import net.minecraft.item.ItemStack; - -public class TC_AspectList_Wrapper { - - // thaumcraft.api.aspects.Aspect; - // thaumcraft.api.aspects.AspectList; - - public TC_AspectList_Wrapper() {} - - public TC_AspectList_Wrapper(ItemStack stack) {} - - public TC_AspectList_Wrapper(Object invoke) { - // TODO Auto-generated constructor stub - } - - public int size() { - // TODO Auto-generated method stub - return 0; - } - - public Object getVanillaAspectList() { - // TODO Auto-generated method stub - return null; - } - - public void add(TC_Aspect_Wrapper mAspect, int mAmount) { - // TODO Auto-generated method stub - - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java deleted file mode 100644 index 76d1998527..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/aspect/TC_Aspect_Wrapper.java +++ /dev/null @@ -1,327 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect; - -import static gregtech.api.enums.Mods.GTPlusPlus; - -import java.lang.reflect.Array; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.LinkedHashMap; -import java.util.Map; - -import net.minecraft.util.ResourceLocation; - -import gregtech.api.enums.TC_Aspects; -import gregtech.api.util.GT_LanguageManager; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.xmod.thaumcraft.util.ThaumcraftUtils; - -/** - * Wrapper class for Thaumcraft Aspects. Used to avoid compile time dependencies. - * - * @author Alkalus - * - */ -public class TC_Aspect_Wrapper { - - private static Class mClass_Aspect; - private static Field mField_Aspects; - - private final String tag; - private final TC_Aspect_Wrapper[] components; - private final int color; - private String chatcolor; - private final ResourceLocation image; - private final int blend; - - public final Object mAspect; - - /** - * May be null, but links back to the TC_Aspects class from GT for convinience. - */ - public final TC_Aspects mGtEnumField; - - /** - * Statically set the Class objects - */ - static { - mClass_Aspect = ReflectionUtils.getClass("thaumcraft.api.aspects.Aspect"); - } - - /** - * Gets the total aspect list from Thaumcraft, which should contain all other registered aspects. - * - * @return - A LinkedHashMap(String, Aspect); - */ - public static LinkedHashMap<String, Object> getVanillaAspectList() { - try { - if (mField_Aspects == null) { - mField_Aspects = ReflectionUtils.getField(mClass_Aspect, "aspects"); - } - return (LinkedHashMap<String, Object>) mField_Aspects.get(null); - } catch (IllegalArgumentException | IllegalAccessException e) { - Logger.REFLECTION("Failed configuring TC Aspect compatibility."); - return new LinkedHashMap<String, Object>(); - } - } - - public static Object getVanillaAspectObject(String aAspectName) { - return getVanillaAspectList().get(aAspectName); - } - - /** - * Vanilla Aspect Constructor - * - * @param tag - Aspect Name - * @param color - * @param chatcolor - * @param blend - */ - public TC_Aspect_Wrapper(String tag, int color, String chatcolor, int blend, String aTooltip) { - this(tag, color, (TC_Aspect_Wrapper[]) null, blend, aTooltip); - this.chatcolor = chatcolor; - } - - /** - * - * Vanilla Aspect Constructor - * - * @param tag - Aspect Name - * @param color - * @param components - */ - public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, String aTooltip) { - this(tag, color, components, false, 1, aTooltip); - } - - /** - * - * Vanilla Aspect Constructor - * - * @param tag - Aspect Name - * @param color - * @param components - * @param blend - */ - public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, int blend, String aTooltip) { - this(tag, color, components, false, blend, aTooltip); - } - - /** - * - * Vanilla Aspect Constructor - * - * @param tag - Aspect Name - * @param color - * @param components - * @param image - * @param blend - */ - public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, boolean vanilla, int blend, - String aTooltip) { - this( - tag, - color, - components, - vanilla ? new ResourceLocation("thaumcraft", "textures/aspects/" + tag.toLowerCase() + ".png") - : new ResourceLocation(GTPlusPlus.ID, "textures/aspects/" + tag.toLowerCase() + ".png"), - vanilla, - blend, - aTooltip); - } - - private static int aInternalAspectIDAllocation = 1; - - public TC_Aspect_Wrapper(String tag, int color, TC_Aspect_Wrapper[] components, ResourceLocation image, - boolean vanilla, int blend, String aTooltip) { - if (components == null) { - components = new TC_Aspect_Wrapper[] {}; - } - // String aTag = vanilla ? tag.toLowerCase() : "custom"+(aInternalAspectIDAllocation++); - String aTag = tag.toLowerCase(); - if (getAspectList().containsKey(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 = 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 - TC_Aspects y = null; - for (TC_Aspects e : TC_Aspects.values()) { - try { - String gtTag = ThaumcraftUtils.getTagFromAspectObject(e.mAspect); - if (gtTag != null) { - if (gtTag.equals(this.tag)) { - y = e; - break; - } - } - } catch (IllegalArgumentException e1) { - e1.printStackTrace(); - } - } - this.mGtEnumField = y; - mInternalAspectCache.put(this.tag, this); - // Double link custom Aspects, but internalise names using custom# instead - if (!vanilla) { - mInternalAspectCache.put("custom" + (aInternalAspectIDAllocation++), this); - GT_LanguageManager.addStringLocalization("tc.aspect." + aTag, aTooltip); - } - Logger.INFO("[Thaumcraft++] Adding support for Aspect: " + tag); - } - } - - /** - * 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 - */ - @SuppressWarnings("unused") - public static TC_Aspect_Wrapper generate(Object aBaseAspect) { - try { - Field aTagF = ReflectionUtils.getField(mClass_Aspect, "tag"); - if (aTagF == null) { - return null; - } - String aTafB = (String) aTagF.get(aBaseAspect); - if (aTafB == null) { - return null; - } - String aTag = aTafB.toLowerCase(); - if (aTag != null && getAspectList().containsKey(aTag.toLowerCase())) { - return getAspect(aTag); - } else { - TC_Aspect_Wrapper aTemp = new TC_Aspect_Wrapper( - 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; - } - } - } catch (Throwable t) { - t.printStackTrace(); - return null; - } - } - - /** - * Internal Map containing all the TC_Aspects. - */ - private static Map<String, TC_Aspect_Wrapper> mInternalAspectCache = new LinkedHashMap<String, TC_Aspect_Wrapper>(); - - /** - * Public getter for all TC_Aspects - * - * @param aAspectName - Aspect Name - * @return - A GT++ Aspect wrapper or null. (TC_Aspect) - */ - public static TC_Aspect_Wrapper getAspect(String aAspectName) { - String aName = aAspectName.toLowerCase(); - TC_Aspect_Wrapper g = mInternalAspectCache.get(aName); - if (g != null) { - return g; - } else { - try { - TC_Aspect_Wrapper aTemp = generate(getVanillaAspectList().get(aName)); - if (aTemp != null) { - mInternalAspectCache.put(aName, aTemp); - return aTemp; - } - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } - } - return null; - } - - public static Map<String, TC_Aspect_Wrapper> getAspectList() { - return mInternalAspectCache; - } - - private static TC_Aspect_Wrapper[] generateAspectArrayInternal(Field aField, Object aInstance) { - // thaumcraft.api.aspects.Aspect.Aspect() - Object[] components; - TC_Aspect_Wrapper[] aAspectArray; - try { - components = (Object[]) aField.get(aInstance); - aAspectArray = new TC_Aspect_Wrapper[components == null ? 0 : components.length]; - if (aAspectArray.length > 0) { - int i = 0; - for (Object g : components) { - aAspectArray[i] = getAspect((String) ReflectionUtils.getField(mClass_Aspect, "tag").get(g)); - i++; - } - } - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - aAspectArray = new TC_Aspect_Wrapper[0]; - } - return aAspectArray; - } - - /** - * Tasty code to generate TC Aspects reflectively. - * - * @return - */ - public Object generateTcAspect() { - try { - // thaumcraft.api.aspects.Aspect.Aspect() - Object aAspectArray = (Object[]) Array.newInstance(mClass_Aspect, 0); - if (components.length > 0) { - aAspectArray = (Object[]) Array.newInstance(mClass_Aspect, components.length); - int i = 0; - for (TC_Aspect_Wrapper g : components) { - if (g != null && g.mAspect != null) ((Object[]) aAspectArray)[i++] = g.mAspect; - } - } - Constructor constructor = mClass_Aspect.getConstructor( - String.class, - int.class, - aAspectArray.getClass(), - ResourceLocation.class, - int.class); - Object myObject = constructor.newInstance(tag, color, aAspectArray, image, blend); - - // Set chat colour - if (chatcolor != null && chatcolor.length() > 0) { - Method setChatColour = ReflectionUtils.getMethod(mClass_Aspect, "setChatcolor", String.class); - if (setChatColour != null) { - setChatColour.invoke(myObject, chatcolor); - } - } - return myObject; - } catch (Throwable t) { - t.printStackTrace(); - return null; - } - } - - public static boolean isObjectAnAspect(Object aAspect) { - return mClass_Aspect.isInstance(aAspect); - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/Base_Recipe_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/Base_Recipe_Wrapper.java deleted file mode 100644 index 8a173e2b0a..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/Base_Recipe_Wrapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe; - -import net.minecraft.item.ItemStack; - -public interface Base_Recipe_Wrapper { - - public abstract ItemStack getRecipeOutput(); - - public abstract ItemStack getRecipeInput(); -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_CrucibleRecipe_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_CrucibleRecipe_Wrapper.java deleted file mode 100644 index 004c18955c..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_CrucibleRecipe_Wrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe; - -import net.minecraft.item.ItemStack; - -public class TC_CrucibleRecipe_Wrapper implements Base_Recipe_Wrapper { - - @Override - public ItemStack getRecipeInput() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ItemStack getRecipeOutput() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_IArcaneRecipe_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_IArcaneRecipe_Wrapper.java deleted file mode 100644 index 8276af9f0e..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_IArcaneRecipe_Wrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe; - -import net.minecraft.item.ItemStack; - -public class TC_IArcaneRecipe_Wrapper implements Base_Recipe_Wrapper { - - @Override - public ItemStack getRecipeInput() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ItemStack getRecipeOutput() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionEnchantmentRecipe_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionEnchantmentRecipe_Wrapper.java deleted file mode 100644 index 9431978ca0..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionEnchantmentRecipe_Wrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe; - -import net.minecraft.item.ItemStack; - -public class TC_InfusionEnchantmentRecipe_Wrapper implements Base_Recipe_Wrapper { - - @Override - public ItemStack getRecipeInput() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ItemStack getRecipeOutput() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionRecipe_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionRecipe_Wrapper.java deleted file mode 100644 index 0338644949..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/recipe/TC_InfusionRecipe_Wrapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe; - -import net.minecraft.item.ItemStack; - -public class TC_InfusionRecipe_Wrapper implements Base_Recipe_Wrapper { - - @Override - public ItemStack getRecipeInput() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ItemStack getRecipeOutput() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_PageType_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_PageType_Wrapper.java deleted file mode 100644 index 3a06ac1b90..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_PageType_Wrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -public class TC_PageType_Wrapper { - - public static final TC_PageType_Wrapper TEXT = null; - public static final TC_PageType_Wrapper TEXT_CONCEALED = null; - public static final TC_PageType_Wrapper NORMAL_CRAFTING = null; - public static final TC_PageType_Wrapper ARCANE_CRAFTING = null; - public static final TC_PageType_Wrapper CRUCIBLE_CRAFTING = null; - public static final TC_PageType_Wrapper INFUSION_CRAFTING = null; - public static final TC_PageType_Wrapper COMPOUND_CRAFTING = null; - public static final TC_PageType_Wrapper SMELTING = null; - public static final TC_PageType_Wrapper INFUSION_ENCHANTMENT = null; - public static final TC_PageType_Wrapper IMAGE = null; - public static final TC_PageType_Wrapper ASPECTS = null; -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategories_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategories_Wrapper.java deleted file mode 100644 index 5ed57574d2..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategories_Wrapper.java +++ /dev/null @@ -1,92 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -import java.util.Collection; -import java.util.Iterator; -import java.util.LinkedHashMap; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -import org.apache.logging.log4j.Level; - -import cpw.mods.fml.common.FMLLog; - -public class TC_ResearchCategories_Wrapper { - - public static LinkedHashMap<String, TC_ResearchCategoryList_Wrapper> researchCategories = new LinkedHashMap<String, TC_ResearchCategoryList_Wrapper>(); - - public static TC_ResearchCategoryList_Wrapper getResearchList(String key) { - return (TC_ResearchCategoryList_Wrapper) researchCategories.get(key); - } - - public static String getCategoryName(String key) { - return StatCollector.translateToLocal("tc.research_category." + key); - } - - public static TC_ResearchItem_Wrapper getResearch(String key) { - Collection rc = researchCategories.values(); - Iterator i$ = rc.iterator(); - - while (i$.hasNext()) { - Object cat = i$.next(); - Collection rl = ((TC_ResearchCategoryList_Wrapper) cat).research.values(); - Iterator i$1 = rl.iterator(); - - while (i$1.hasNext()) { - Object ri = i$1.next(); - if (((TC_ResearchItem_Wrapper) ri).key.equals(key)) { - return (TC_ResearchItem_Wrapper) ri; - } - } - } - - return null; - } - - public static void registerCategory(String key, ResourceLocation icon, ResourceLocation background) { - if (getResearchList(key) == null) { - TC_ResearchCategoryList_Wrapper rl = new TC_ResearchCategoryList_Wrapper(icon, background); - researchCategories.put(key, rl); - } - } - - public static void addResearch(TC_ResearchItem_Wrapper ri) { - TC_ResearchCategoryList_Wrapper rl = getResearchList(ri.category); - if (rl != null && !rl.research.containsKey(ri.key)) { - if (!ri.isVirtual()) { - Iterator i$ = rl.research.values().iterator(); - - while (i$.hasNext()) { - TC_ResearchItem_Wrapper rr = (TC_ResearchItem_Wrapper) i$.next(); - if (rr.displayColumn == ri.displayColumn && rr.displayRow == ri.displayRow) { - FMLLog.log( - Level.FATAL, - "[Thaumcraft] Research [" + ri.getName() - + "] not added as it overlaps with existing research [" - + rr.getName() - + "]", - new Object[0]); - return; - } - } - } - - rl.research.put(ri.key, ri); - if (ri.displayColumn < rl.minDisplayColumn) { - rl.minDisplayColumn = ri.displayColumn; - } - - if (ri.displayRow < rl.minDisplayRow) { - rl.minDisplayRow = ri.displayRow; - } - - if (ri.displayColumn > rl.maxDisplayColumn) { - rl.maxDisplayColumn = ri.displayColumn; - } - - if (ri.displayRow > rl.maxDisplayRow) { - rl.maxDisplayRow = ri.displayRow; - } - } - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategoryList_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategoryList_Wrapper.java deleted file mode 100644 index f8066abe2d..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchCategoryList_Wrapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.util.ResourceLocation; - -public class TC_ResearchCategoryList_Wrapper { - - public int minDisplayColumn; - public int minDisplayRow; - public int maxDisplayColumn; - public int maxDisplayRow; - public ResourceLocation icon; - public ResourceLocation background; - public Map<String, TC_ResearchItem_Wrapper> research = new HashMap<String, TC_ResearchItem_Wrapper>(); - - public TC_ResearchCategoryList_Wrapper(ResourceLocation icon, ResourceLocation background) { - this.icon = icon; - this.background = background; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchItem_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchItem_Wrapper.java deleted file mode 100644 index 1baefdc465..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchItem_Wrapper.java +++ /dev/null @@ -1,245 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_AspectList_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; -import gtPlusPlus.xmod.thaumcraft.util.ThaumcraftUtils; - -public class TC_ResearchItem_Wrapper { - - public final String key; - public final String category; - public final TC_AspectList_Wrapper tags; - public String[] parents = null; - public String[] parentsHidden = null; - public String[] siblings = null; - public final int displayColumn; - public final int displayRow; - public final ItemStack icon_item; - public final ResourceLocation icon_resource; - private int complexity; - private boolean isSpecial; - private boolean isSecondary; - private boolean isRound; - private boolean isStub; - private boolean isVirtual; - private boolean isConcealed; - private boolean isHidden; - private boolean isLost; - private boolean isAutoUnlock; - private ItemStack[] itemTriggers; - private String[] entityTriggers; - private TC_Aspect_Wrapper[] aspectTriggers; - private Object[] pages = null; - - public TC_ResearchItem_Wrapper(String key, String category) { - this.key = key; - this.category = category; - this.tags = new TC_AspectList_Wrapper(); - this.icon_resource = null; - this.icon_item = null; - this.displayColumn = 0; - this.displayRow = 0; - this.setVirtual(); - } - - public TC_ResearchItem_Wrapper(String key, String category, TC_AspectList_Wrapper tags, int col, int row, - int complex, ResourceLocation icon) { - this.key = key; - this.category = category; - this.tags = tags; - this.icon_resource = icon; - this.icon_item = null; - this.displayColumn = col; - this.displayRow = row; - this.complexity = complex; - if (this.complexity < 1) { - this.complexity = 1; - } - - if (this.complexity > 3) { - this.complexity = 3; - } - } - - public TC_ResearchItem_Wrapper(String key, String category, TC_AspectList_Wrapper tags, int col, int row, - int complex, ItemStack icon) { - this.key = key; - this.category = category; - this.tags = tags; - this.icon_item = icon; - this.icon_resource = null; - this.displayColumn = col; - this.displayRow = row; - this.complexity = complex; - if (this.complexity < 1) { - this.complexity = 1; - } - - if (this.complexity > 3) { - this.complexity = 3; - } - } - - public TC_ResearchItem_Wrapper setSpecial() { - this.isSpecial = true; - return this; - } - - public TC_ResearchItem_Wrapper setStub() { - this.isStub = true; - return this; - } - - public TC_ResearchItem_Wrapper setLost() { - this.isLost = true; - return this; - } - - public TC_ResearchItem_Wrapper setConcealed() { - this.isConcealed = true; - return this; - } - - public TC_ResearchItem_Wrapper setHidden() { - this.isHidden = true; - return this; - } - - public TC_ResearchItem_Wrapper setVirtual() { - this.isVirtual = true; - return this; - } - - public TC_ResearchItem_Wrapper setParents(String... par) { - this.parents = par; - return this; - } - - public TC_ResearchItem_Wrapper setParentsHidden(String... par) { - this.parentsHidden = par; - return this; - } - - public TC_ResearchItem_Wrapper setSiblings(String... sib) { - this.siblings = sib; - return this; - } - - public TC_ResearchItem_Wrapper setPages(Object... par) { - this.pages = par; - return this; - } - - public Object[] getPages() { - return this.pages; - } - - public TC_ResearchItem_Wrapper setItemTriggers(ItemStack... par) { - this.itemTriggers = par; - return this; - } - - public TC_ResearchItem_Wrapper setEntityTriggers(String... par) { - this.entityTriggers = par; - return this; - } - - public TC_ResearchItem_Wrapper setAspectTriggers(TC_Aspect_Wrapper... par) { - this.aspectTriggers = par; - return this; - } - - public ItemStack[] getItemTriggers() { - return this.itemTriggers; - } - - public String[] getEntityTriggers() { - return this.entityTriggers; - } - - public TC_Aspect_Wrapper[] getAspectTriggers() { - return this.aspectTriggers; - } - - public TC_ResearchItem_Wrapper registerResearchItem() { - ThaumcraftUtils.addResearch(this); - return this; - } - - public String getName() { - return StatCollector.translateToLocal("tc.research_name." + this.key); - } - - public String getText() { - return StatCollector.translateToLocal("tc.research_text." + this.key); - } - - public boolean isSpecial() { - return this.isSpecial; - } - - public boolean isStub() { - return this.isStub; - } - - public boolean isLost() { - return this.isLost; - } - - public boolean isConcealed() { - return this.isConcealed; - } - - public boolean isHidden() { - return this.isHidden; - } - - public boolean isVirtual() { - return this.isVirtual; - } - - public boolean isAutoUnlock() { - return this.isAutoUnlock; - } - - public TC_ResearchItem_Wrapper setAutoUnlock() { - this.isAutoUnlock = true; - return this; - } - - public boolean isRound() { - return this.isRound; - } - - public TC_ResearchItem_Wrapper setRound() { - this.isRound = true; - return this; - } - - public boolean isSecondary() { - return this.isSecondary; - } - - public TC_ResearchItem_Wrapper setSecondary() { - this.isSecondary = true; - return this; - } - - public int getComplexity() { - return this.complexity; - } - - public TC_ResearchItem_Wrapper setComplexity(int complexity) { - this.complexity = complexity; - return this; - } - - public TC_Aspect_Wrapper getResearchPrimaryTag() { - // TODO - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchNoteData_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchNoteData_Wrapper.java deleted file mode 100644 index df8d21bbaa..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchNoteData_Wrapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -public class TC_ResearchNoteData_Wrapper { - - public TC_ResearchNoteData_Wrapper(Object researchNoteData) { - // TODO Auto-generated constructor stub - } - - public Object getResearchNoteData() { - // TODO Auto-generated method stub - return null; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchPage_Wrapper.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchPage_Wrapper.java deleted file mode 100644 index 4632909620..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/objects/wrapper/research/TC_ResearchPage_Wrapper.java +++ /dev/null @@ -1,229 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.objects.wrapper.research; - -import java.util.List; - -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_AspectList_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_CrucibleRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_IArcaneRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_InfusionEnchantmentRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_InfusionRecipe_Wrapper; - -public class TC_ResearchPage_Wrapper { - - public TC_PageType_Wrapper type; - public String text; - public String research; - public ResourceLocation image; - public TC_AspectList_Wrapper aspects; - public Object recipe; - public ItemStack recipeOutput; - - public TC_ResearchPage_Wrapper(String text) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.TEXT; - this.text = text; - } - - public TC_ResearchPage_Wrapper(String research, String text) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.TEXT_CONCEALED; - this.research = research; - this.text = text; - } - - public TC_ResearchPage_Wrapper(IRecipe recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.NORMAL_CRAFTING; - this.recipe = recipe; - this.recipeOutput = recipe.getRecipeOutput(); - } - - public TC_ResearchPage_Wrapper(IRecipe[] recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.NORMAL_CRAFTING; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(TC_IArcaneRecipe_Wrapper[] recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.ARCANE_CRAFTING; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(TC_CrucibleRecipe_Wrapper[] recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.CRUCIBLE_CRAFTING; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(TC_InfusionRecipe_Wrapper[] recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.INFUSION_CRAFTING; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(List recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.COMPOUND_CRAFTING; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(TC_IArcaneRecipe_Wrapper recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.ARCANE_CRAFTING; - this.recipe = recipe; - this.recipeOutput = recipe.getRecipeOutput(); - } - - public TC_ResearchPage_Wrapper(TC_CrucibleRecipe_Wrapper recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.CRUCIBLE_CRAFTING; - this.recipe = recipe; - this.recipeOutput = recipe.getRecipeOutput(); - } - - public TC_ResearchPage_Wrapper(ItemStack input) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.SMELTING; - this.recipe = input; - this.recipeOutput = FurnaceRecipes.smelting().getSmeltingResult(input); - } - - public TC_ResearchPage_Wrapper(TC_InfusionRecipe_Wrapper recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.INFUSION_CRAFTING; - this.recipe = recipe; - if (recipe.getRecipeOutput() instanceof ItemStack) { - this.recipeOutput = (ItemStack) recipe.getRecipeOutput(); - } else { - this.recipeOutput = recipe.getRecipeInput(); - } - } - - public TC_ResearchPage_Wrapper(TC_InfusionEnchantmentRecipe_Wrapper recipe) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.INFUSION_ENCHANTMENT; - this.recipe = recipe; - } - - public TC_ResearchPage_Wrapper(ResourceLocation image, String caption) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.IMAGE; - this.image = image; - this.text = caption; - } - - public TC_ResearchPage_Wrapper(TC_AspectList_Wrapper as) { - this.type = TC_PageType_Wrapper.TEXT; - this.text = null; - this.research = null; - this.image = null; - this.aspects = null; - this.recipe = null; - this.recipeOutput = null; - this.type = TC_PageType_Wrapper.ASPECTS; - this.aspects = as; - } - - public String getTranslatedText() { - String ret = ""; - if (this.text != null) { - ret = StatCollector.translateToLocal(this.text); - if (ret.isEmpty()) { - ret = this.text; - } - } - - return ret; - } -} diff --git a/src/main/java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java b/src/main/java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java deleted file mode 100644 index 78da4ff31f..0000000000 --- a/src/main/java/gtPlusPlus/xmod/thaumcraft/util/ThaumcraftUtils.java +++ /dev/null @@ -1,454 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.util; - -import static gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft.sItemsToGetAspects; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.world.World; - -import gregtech.api.GregTech_API; -import gregtech.api.enums.ConfigCategories; -import gregtech.api.enums.TC_Aspects; -import gregtech.api.util.GT_LanguageManager; -import gregtech.api.util.GT_Utility; -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft; -import gtPlusPlus.xmod.thaumcraft.aspect.GTPP_AspectStack; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_AspectList_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.aspect.TC_Aspect_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_CrucibleRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_IArcaneRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_InfusionEnchantmentRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.recipe.TC_InfusionRecipe_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.research.TC_ResearchCategories_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.research.TC_ResearchCategoryList_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.research.TC_ResearchItem_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.research.TC_ResearchNoteData_Wrapper; -import gtPlusPlus.xmod.thaumcraft.objects.wrapper.research.TC_ResearchPage_Wrapper; - -public class ThaumcraftUtils { - - private static Class<?> mClass_Aspect; - private static Field mField_Aspects; - - static { - mClass_Aspect = ReflectionUtils.getClass("thaumcraft.api.aspects.Aspect"); - if (mClass_Aspect != null) { - Field aTagF = ReflectionUtils.getField(mClass_Aspect, "tag"); - if (aTagF != null) { - mField_Aspects = aTagF; - } - } - } - - public static boolean addAspectToItem(ItemStack item, TC_Aspect_Wrapper aspect, int amount) { - return addAspectToItem(item, new TC_Aspect_Wrapper[] { aspect }, new Integer[] { amount }); - } - - public static boolean addAspectToItem(ItemStack item, TC_Aspect_Wrapper[] aspect, Integer[] amounts) { - GTPP_AspectStack[] aspects = new GTPP_AspectStack[aspect.length]; - for (int g = 0; g < aspect.length; g++) { - if (amounts[g] != null && amounts[g] > 0) { - // aspects[g] = new GTPP_AspectStack(aspect[g], amounts[g]); - } - } - Pair<ItemStack, GTPP_AspectStack[]> k = new Pair<ItemStack, GTPP_AspectStack[]>(item, aspects); - int mSizeA = sItemsToGetAspects.size(); - sItemsToGetAspects.put(k); - if (sItemsToGetAspects.size() > mSizeA) { - Logger.MATERIALS("[Aspect] Successfully queued an ItemStack for Aspect addition."); - return true; - } - Logger.MATERIALS("[Aspect] Failed to queue an ItemStack for Aspect addition."); - // Logger.INFO("[Aspect] "); - return false; - } - - public static TC_Aspect_Wrapper getAspect(String name) { - return TC_Aspect_Wrapper.getAspect(name); - } - - public static TC_Aspects getEnumAspect(String name) { - TC_Aspect_Wrapper r = getAspect(name); - return r.mGtEnumField; - } - - public static Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, - String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, - List<GTPP_AspectStack> aAspects, ItemStack[] aResearchTriggers, Object[] aPages) { - if (!GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { - return null; - } - TC_ResearchCategoryList_Wrapper tCategory = TC_ResearchCategories_Wrapper.getResearchList(aCategory); - if (tCategory == null) { - return null; - } - for (Iterator<TC_ResearchItem_Wrapper> i$ = tCategory.research.values().iterator(); i$.hasNext();) { - TC_ResearchItem_Wrapper tResearch = (TC_ResearchItem_Wrapper) i$.next(); - if ((tResearch.displayColumn == aX) && (tResearch.displayRow == aY)) { - aX += (aX > 0 ? 5 : -5); - aY += (aY > 0 ? 5 : -5); - } - } - TC_ResearchItem_Wrapper rResearch = new TC_ResearchItem_Wrapper( - aResearch, - aCategory, - getAspectList_Ex(aAspects), - aX, - aY, - aComplexity, - aIcon); - ArrayList<Object> tPages = new ArrayList<Object>(aPages.length); - GT_LanguageManager.addStringLocalization("tc.research_name." + aResearch, aName); - GT_LanguageManager.addStringLocalization("tc.research_text." + aResearch, "[GT++] " + aText); - for (Object tPage : aPages) { - if ((tPage instanceof String)) { - tPages.add(new TC_ResearchPage_Wrapper((String) tPage)); - } else if ((tPage instanceof IRecipe)) { - tPages.add(new TC_ResearchPage_Wrapper((IRecipe) tPage)); - } else if ((tPage instanceof TC_IArcaneRecipe_Wrapper)) { - tPages.add(new TC_ResearchPage_Wrapper((TC_IArcaneRecipe_Wrapper) tPage)); - } else if ((tPage instanceof TC_CrucibleRecipe_Wrapper)) { - tPages.add(new TC_ResearchPage_Wrapper((TC_CrucibleRecipe_Wrapper) tPage)); - } else if ((tPage instanceof TC_InfusionRecipe_Wrapper)) { - tPages.add(new TC_ResearchPage_Wrapper((TC_InfusionRecipe_Wrapper) tPage)); - } else if ((tPage instanceof TC_InfusionEnchantmentRecipe_Wrapper)) { - tPages.add(new TC_ResearchPage_Wrapper((TC_InfusionEnchantmentRecipe_Wrapper) tPage)); - } - } - if ((aType & 0x40) != 0) { - rResearch.setAutoUnlock(); - } - if ((aType & 0x1) != 0) { - rResearch.setSecondary(); - } - if ((aType & 0x20) != 0) { - rResearch.setSpecial(); - } - if ((aType & 0x8) != 0) { - rResearch.setVirtual(); - } - if ((aType & 0x4) != 0) { - rResearch.setHidden(); - } - if ((aType & 0x10) != 0) { - rResearch.setRound(); - } - if ((aType & 0x2) != 0) { - rResearch.setStub(); - } - if (aParentResearches != null) { - ArrayList<String> tParentResearches = new ArrayList<String>(); - for (String tParent : aParentResearches) { - if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.researches, aResearch, true)) { - tParentResearches.add(tParent); - } - } - if (tParentResearches.size() > 0) { - rResearch.setParents((String[]) tParentResearches.toArray(new String[tParentResearches.size()])); - rResearch.setConcealed(); - } - } - if (aResearchTriggers != null) { - rResearch.setItemTriggers(aResearchTriggers); - rResearch.setHidden(); - } - - Object[] aVarArgs = (TC_ResearchPage_Wrapper[]) tPages.toArray(new TC_ResearchPage_Wrapper[tPages.size()]); - rResearch.setPages(aVarArgs); - return rResearch.registerResearchItem(); - } - - public static Object addCrucibleRecipe(final String aResearch, final Object aInput, final ItemStack aOutput, - final List<GTPP_AspectStack> aAspects) { - if (GT_Utility.isStringInvalid((Object) aResearch) || aInput == null - || aOutput == null - || aAspects == null - || aAspects.isEmpty()) { - return null; - } - return addCrucibleRecipe( - aResearch, - GT_Utility.copy(new Object[] { aOutput }), - (aInput instanceof ItemStack || aInput instanceof ArrayList) ? aInput : aInput.toString(), - getAspectList_Ex(aAspects)); - } - - public static Object addInfusionRecipe(final String aResearch, final ItemStack aMainInput, - final ItemStack[] aSideInputs, final ItemStack aOutput, final int aInstability, - final List<GTPP_AspectStack> aAspects) { - if (GT_Utility.isStringInvalid((Object) aResearch) || aMainInput == null - || aSideInputs == null - || aOutput == null - || aAspects == null - || aAspects.isEmpty()) { - return null; - } - return addInfusionCraftingRecipe( - aResearch, - (Object) GT_Utility.copy(new Object[] { aOutput }), - aInstability, - getAspectList_Ex(aAspects), - aMainInput, - aSideInputs); - } - - public static boolean registerThaumcraftAspectsToItem(final ItemStack aExampleStack, - final List<GTPP_AspectStack> aAspects, final String aOreDict) { - if (aAspects.isEmpty()) { - return false; - } - registerObjectTag(aOreDict, getAspectList_Ex(aAspects)); - return true; - } - - public static boolean registerThaumcraftAspectsToItem(final ItemStack aStack, final List<GTPP_AspectStack> aAspects, - final boolean aAdditive) { - try { - if (aAspects.isEmpty()) { - return false; - } - TC_AspectList_Wrapper h = getAspectList_Ex(aAspects); - if (aAdditive && (h != null && h.size() > 0)) { - registerComplexObjectTag(aStack, getAspectList_Ex(aAspects)); - return true; - } else { - Logger.MATERIALS("[Aspect] Failed adding aspects to " + aStack.getDisplayName() + "."); - } - final TC_AspectList_Wrapper tAlreadyRegisteredAspects = getObjectAspects(aStack); - if (tAlreadyRegisteredAspects == null || tAlreadyRegisteredAspects.size() <= 0) { - registerObjectTag(aStack, getAspectList_Ex(aAspects)); - } - return true; - } catch (Throwable t) { - Logger.MATERIALS("[Aspect] Failed adding aspects to " + aStack.getDisplayName() + "."); - t.printStackTrace(); - return false; - } - } - - private static final Class<?> mClass_ThaumcraftApi; - private static final Class<?> mClass_ThaumcraftApiHelper; - private static final Class<?> mClass_AspectList; - private static final Class<?> mClass_ResearchManager; - private static final Method mMethod_registerObjectTag1; - private static final Method mMethod_registerObjectTag2; - private static final Method mMethod_registerComplexObjectTag; - private static final Method mMethod_addInfusionCraftingRecipe; - private static final Method mMethod_addCrucibleRecipe; - private static final Method mMethod_getObjectAspects; - private static final Method mMethod_updateData; - private static final Method mMethod_getData; - - private static final Field mField_PortholeBlacklist; - - static { - /* - * Classes - */ - mClass_ThaumcraftApi = ReflectionUtils.getClass("thaumcraft.api.ThaumcraftApi"); - mClass_ThaumcraftApiHelper = ReflectionUtils.getClass("thaumcraft.api.ThaumcraftApiHelper"); - mClass_AspectList = ReflectionUtils.getClass("thaumcraft.api.aspects.AspectList"); - mClass_ResearchManager = ReflectionUtils.getClass("thaumcraft.common.lib.research.ResearchManager"); - - /* - * Methods - */ - mMethod_registerObjectTag1 = ReflectionUtils - .getMethod(mClass_ThaumcraftApi, "registerObjectTag", ItemStack.class, mClass_AspectList); - - mMethod_registerObjectTag2 = ReflectionUtils - .getMethod(mClass_ThaumcraftApi, "registerObjectTag", String.class, mClass_AspectList); - - mMethod_registerComplexObjectTag = ReflectionUtils - .getMethod(mClass_ThaumcraftApi, "registerComplexObjectTag", ItemStack.class, mClass_AspectList); - - mMethod_addInfusionCraftingRecipe = ReflectionUtils.getMethod( - mClass_ThaumcraftApi, - "addInfusionCraftingRecipe", - String.class, - Object.class, - int.class, - mClass_AspectList, - ItemStack.class, - ItemStack[].class); - - mMethod_addCrucibleRecipe = ReflectionUtils.getMethod( - mClass_ThaumcraftApi, - "addCrucibleRecipe", - String.class, - ItemStack.class, - Object.class, - mClass_AspectList); - - mMethod_getObjectAspects = ReflectionUtils - .getMethod(mClass_ThaumcraftApiHelper, "getObjectAspects", ItemStack.class); - - mMethod_updateData = ReflectionUtils.getMethod( - mClass_ResearchManager, - "updateData", - ItemStack.class, - ReflectionUtils.getClass("thaumcraft.common.lib.research.ResearchNoteData")); - mMethod_getData = ReflectionUtils.getMethod(mClass_ResearchManager, "getData", ItemStack.class); - - /* - * Fields - */ - mField_PortholeBlacklist = ReflectionUtils.getField(mClass_ThaumcraftApi, "portableHoleBlackList"); - } - - public static void registerObjectTag(ItemStack aStack, TC_AspectList_Wrapper aAspectList) { - try { - mMethod_registerObjectTag1.invoke(null, aStack, aAspectList.getVanillaAspectList()); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - - public static void registerObjectTag(String aOreDict, TC_AspectList_Wrapper aAspectList) { - try { - mMethod_registerObjectTag2.invoke(null, aOreDict, aAspectList.getVanillaAspectList()); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - - public static void registerComplexObjectTag(ItemStack aStack, TC_AspectList_Wrapper aAspectList) { - try { - mMethod_registerComplexObjectTag.invoke(null, aStack, aAspectList.getVanillaAspectList()); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - - public static TC_AspectList_Wrapper getObjectAspects(ItemStack aStack) { - try { - return new TC_AspectList_Wrapper(mMethod_getObjectAspects.invoke(null, aStack)); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - return null; - } - - public static Object addCrucibleRecipe(String aResearch, ItemStack copy, Object aOutput, - TC_AspectList_Wrapper aAspectList) { - try { - return mMethod_addCrucibleRecipe.invoke(null, aResearch, copy, aOutput, aAspectList); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - return null; - } - - public static Object addInfusionCraftingRecipe(String aResearch, Object copy, int aInstability, - TC_AspectList_Wrapper aAspectList, ItemStack aMainInput, ItemStack[] aSideInputs) { - try { - return mMethod_addInfusionCraftingRecipe - .invoke(null, aResearch, copy, aInstability, aAspectList, aMainInput, aSideInputs); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - return null; - } - - public static boolean registerPortholeBlacklistedBlock(final Block aBlock) { - try { - ((ArrayList<Block>) mField_PortholeBlacklist.get(null)).add(aBlock); - } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); - return false; - } - return true; - } - - public static String getTagFromAspectObject(Object aAspect) { - try { - if (mClass_Aspect == null || mField_Aspects == null) { - return null; - } - String aTafB = (String) mField_Aspects.get(aAspect); - if (aTafB == null) { - return null; - } - String aTag = aTafB.toLowerCase(); - return aTag; - } catch (IllegalArgumentException | IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return "error"; - } - } - - public static void updateResearchNote(ItemStack a, TC_ResearchNoteData_Wrapper b) { - // updateData(a, b.getResearchNoteData()); - try { - mMethod_updateData.invoke(a, b.getResearchNoteData()); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - } - - public static Object getResearchNoteData(ItemStack a) { - // getData(a); - try { - return mMethod_getData.invoke(a); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { - e.printStackTrace(); - } - return null; - } - - public static boolean isItemResearchNotes(ItemStack aStack) { - if (aStack != null && aStack.getItem() == HANDLER_Thaumcraft.mResearchNotes - && HANDLER_Thaumcraft.mResearchNotes.getClass().isInstance(aStack.getItem())) { - return true; - } - return false; - } - - public static boolean isItemStackValidResearchNotes(ItemStack aStack) { - if (isItemResearchNotes(aStack) && aStack.getItemDamage() < 64) { - return true; - } - return false; - } - - public static TC_ResearchNoteData_Wrapper gatherResults(ItemStack note) { - TC_ResearchNoteData_Wrapper research = null; - if (isItemResearchNotes(note)) { - research = new TC_ResearchNoteData_Wrapper(getResearchNoteData(note)); - } - return research; - } - - public static void completeResearchNote(World aWorld, ItemStack aStack) { - if (!aWorld.isRemote) { - if (isItemResearchNotes(aStack)) { - aStack.setItemDamage(64); - } - } - } - - public static final synchronized TC_AspectList_Wrapper getAspectList_Ex(final List<GTPP_AspectStack> aAspects) { - final TC_AspectList_Wrapper rAspects = new TC_AspectList_Wrapper(); - for (final GTPP_AspectStack tAspect : aAspects) { - rAspects.add(tAspect.mAspect, tAspect.mAmount); - } - return rAspects; - } - - public static void addResearch(TC_ResearchItem_Wrapper tc_ResearchItem_Wrapper) { - // TODO Auto-generated method stub - - } -} |