aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/eio
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/eio')
-rw-r--r--src/main/java/gtPlusPlus/xmod/eio/handler/HandlerTooltip_EIO.java87
-rw-r--r--src/main/java/gtPlusPlus/xmod/eio/material/MaterialEIO.java121
2 files changed, 208 insertions, 0 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/eio/handler/HandlerTooltip_EIO.java b/src/main/java/gtPlusPlus/xmod/eio/handler/HandlerTooltip_EIO.java
new file mode 100644
index 0000000000..5b3210d58a
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/eio/handler/HandlerTooltip_EIO.java
@@ -0,0 +1,87 @@
+package gtPlusPlus.xmod.eio.handler;
+
+import static gtPlusPlus.core.lib.CORE.ConfigSwitches.disableEnderIOIngotTooltips;
+
+import java.lang.reflect.Field;
+
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import gregtech.api.enums.Materials;
+
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.xmod.eio.material.MaterialEIO;
+import net.minecraftforge.event.entity.player.ItemTooltipEvent;
+
+public class HandlerTooltip_EIO {
+
+ private static Item mIngot;
+ Class oMainClass;
+ Class oIngotClass;
+
+ @SubscribeEvent
+ public void onItemTooltip(ItemTooltipEvent event){
+ //Is EIO loaded?
+ if (!disableEnderIOIngotTooltips && LoadedMods.EnderIO){
+
+ //Is the EIO Ingot Item null?
+ //If it is, reflect in.
+ if (mIngot == null){
+ try {
+ oMainClass = ReflectionUtils.getClass("crazypants.enderio.EnderIO");
+ oIngotClass = ReflectionUtils.getClass("crazypants.enderio.material.ItemAlloy");
+ if (oMainClass != null && oIngotClass != null){
+ Field oAlloyField = ReflectionUtils.getField(oMainClass, "itemAlloy");
+ Object oAlloy = oAlloyField.get(oMainClass);
+ if (oAlloy != null){
+ if (oIngotClass.isInstance(oAlloy) || Item.class.isInstance(oAlloy)){
+ mIngot = (Item) oAlloy;
+ }
+ }
+ }
+ }
+ catch (Throwable e) {
+ }
+ }
+
+ if (mIngot != null){
+ //If the Item is an instance of ItemAlloy.class then proceed
+ if (event.itemStack.getItem() == mIngot || oIngotClass.isInstance(event.itemStack.getItem()) || event.itemStack.getUnlocalizedName().toLowerCase().contains("item.itemAlloy")){
+
+ //If stacks match, add a tooltip.
+ if (mIngot != null){
+ if (event.itemStack.getItem() == mIngot){
+ if (event.itemStack.getItemDamage() == 0){
+ event.toolTip.add(MaterialEIO.ELECTRICAL_STEEL.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 1){
+ event.toolTip.add(MaterialEIO.ENERGETIC_ALLOY.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 2){
+ event.toolTip.add(MaterialEIO.VIBRANT_ALLOY.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 3){
+ event.toolTip.add(MaterialEIO.REDSTONE_ALLOY.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 4){
+ event.toolTip.add(MaterialEIO.CONDUCTIVE_IRON.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 5){
+ event.toolTip.add(MaterialEIO.PULSATING_IRON.vChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 6){
+ event.toolTip.add(Materials.DarkSteel.mChemicalFormula);
+ }
+ else if (event.itemStack.getItemDamage() == 7){
+ event.toolTip.add(MaterialEIO.SOULARIUM.vChemicalFormula);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/eio/material/MaterialEIO.java b/src/main/java/gtPlusPlus/xmod/eio/material/MaterialEIO.java
new file mode 100644
index 0000000000..a5c87342e7
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/eio/material/MaterialEIO.java
@@ -0,0 +1,121 @@
+package gtPlusPlus.xmod.eio.material;
+
+import gtPlusPlus.core.material.*;
+import gtPlusPlus.core.material.state.MaterialState;
+
+public class MaterialEIO {
+
+ public static final Material SOULARIUM = new Material(
+ "Soularium", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{95,90,54, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ false, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().GOLD, 1),
+ new MaterialStack(NONMATERIAL.SOULSAND, 1)
+ });
+
+ public static final Material CONDUCTIVE_IRON = new Material(
+ "Conductive Iron", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{164,109,100, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ false, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().IRON, 1),
+ new MaterialStack(NONMATERIAL.REDSTONE, 1)
+ });
+
+ public static final Material PULSATING_IRON = new Material(
+ "Pulsating Iron", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{50,91,21, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ false, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().IRON, 1),
+ new MaterialStack(NONMATERIAL.ENDERPEARL, 1)
+ });
+
+ public static final Material ELECTRICAL_STEEL = new Material(
+ "Electrical Steel", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{194,194,194, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ true, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ALLOY.STEEL, 3),
+ new MaterialStack(ELEMENT.getInstance().SILICON, 1)
+ });
+
+ public static final Material ENERGETIC_ALLOY = new Material(
+ "Energetic Alloy", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{252,151,45, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ true, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().GOLD, 1),
+ new MaterialStack(NONMATERIAL.REDSTONE, 1),
+ new MaterialStack(NONMATERIAL.GLOWSTONE, 1)
+ });
+
+ public static final Material VIBRANT_ALLOY = new Material(
+ "Vibrant Alloy", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{204,242,142, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ true, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ENERGETIC_ALLOY, 1),
+ new MaterialStack(NONMATERIAL.ENDERPEARL, 1)
+ });
+
+ public static final Material REDSTONE_ALLOY = new Material(
+ "Redstone Alloy", //Material Name
+ MaterialState.SOLID, //State
+ new short[]{178,34,34, 0}, //Material Colour
+ 10, //Melting Point in C
+ 10,
+ 10,
+ 10,
+ false, //Uses Blast furnace?
+ false, //Generates a cell
+ //Material Stacks with Percentage of required elements.
+ new MaterialStack[]{
+ new MaterialStack(ELEMENT.getInstance().SILICON, 1),
+ new MaterialStack(NONMATERIAL.REDSTONE, 1)
+ });
+
+}