diff --git a/common/ic2/api/keyboard/Keys.java b/common/ic2/api/keyboard/Keys.java new file mode 100644 index 000000000..8469da5b6 --- /dev/null +++ b/common/ic2/api/keyboard/Keys.java @@ -0,0 +1,45 @@ +package ic2.api.keyboard; + +import net.minecraft.entity.player.EntityPlayer; + +public class Keys { + public static boolean isModeKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isModeSwitchKeyDown"); + } + + public static boolean isAltKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isAltKeyDown"); + } + + public static boolean isHudModeKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isHudModeKeyDown"); + } + + public static boolean isBoostKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isBoostKeyDown"); + } + + public static boolean isForwardKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isForwardKeyDown"); + } + + public static boolean isJumpKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isJumpKeyDown"); + } + + public static boolean isSideInventoryKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isSideinventoryKeyDown"); + } + + public static boolean isSneakKeyPressed(EntityPlayer aPlayer) { + return getKeyPressed(aPlayer, "isSneakKeyDown"); + } + + public static boolean getKeyPressed(EntityPlayer aPlayer, String aKeyName) { + Object tObject = ic2.api.util.ReflectionHelper.callMethod(ic2.api.util.ReflectionHelper.getField(ic2.api.info.Info.ic2ModInstance, "keyboard", false, true), "isModeSwitchKeyDown", false, false, true, aPlayer); + if (tObject != null && tObject instanceof Boolean) { + return (Boolean)tObject; + } + return false; + } +} \ No newline at end of file diff --git a/common/ic2/api/recipe/Recipes.java b/common/ic2/api/recipe/Recipes.java index d135c9abb..3e0acd5f6 100644 --- a/common/ic2/api/recipe/Recipes.java +++ b/common/ic2/api/recipe/Recipes.java @@ -13,9 +13,9 @@ public class Recipes { public static IMachineRecipeManager compressor; public static IMachineRecipeManager centrifuge; public static IMachineRecipeManager recycler; - public static IMachineRecipeManager metalformerExtruding; - public static IMachineRecipeManager metalformerCutting; - public static IMachineRecipeManager metalformerRolling; + public static IMachineRecipeManager metalformerextruding; + public static IMachineRecipeManager metalformercutting; + public static IMachineRecipeManager metalformerrolling; public static IMachineRecipeManager orewasching; /** diff --git a/common/ic2/api/util/IKeyboard.java b/common/ic2/api/util/IKeyboard.java deleted file mode 100644 index ff6eaea5e..000000000 --- a/common/ic2/api/util/IKeyboard.java +++ /dev/null @@ -1,14 +0,0 @@ -package ic2.api.util; - -import net.minecraft.entity.player.EntityPlayer; - -public interface IKeyboard { - boolean isAltKeyDown(EntityPlayer player); - boolean isBoostKeyDown(EntityPlayer player); - boolean isForwardKeyDown(EntityPlayer player); - boolean isJumpKeyDown(EntityPlayer player); - boolean isModeSwitchKeyDown(EntityPlayer player); - boolean isSideinventoryKeyDown(EntityPlayer player); - boolean isHudModeKeyDown(EntityPlayer player); - boolean isSneakKeyDown(EntityPlayer player); -} diff --git a/common/ic2/api/util/Keys.java b/common/ic2/api/util/Keys.java deleted file mode 100644 index 84d175676..000000000 --- a/common/ic2/api/util/Keys.java +++ /dev/null @@ -1,6 +0,0 @@ -package ic2.api.util; - - -public class Keys { - public static IKeyboard instance; -} \ No newline at end of file diff --git a/common/ic2/api/util/ReflectionHelper.java b/common/ic2/api/util/ReflectionHelper.java new file mode 100644 index 000000000..b302de5b8 --- /dev/null +++ b/common/ic2/api/util/ReflectionHelper.java @@ -0,0 +1,55 @@ +package ic2.api.util; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class ReflectionHelper { + public static Object callMethod(Object aObject, String aMethod, boolean aPrivate, boolean aUseUpperCasedDataTypes, boolean aLogErrors, Object... aParameters) { + try { + Class[] tParameterTypes = new Class[aParameters.length]; + for (byte i = 0; i < aParameters.length; i++) { + if (aParameters[i] instanceof Class) { + tParameterTypes[i] = (Class)aParameters[i]; + aParameters[i] = null; + } else { + tParameterTypes[i] = aParameters[i].getClass(); + } + if (!aUseUpperCasedDataTypes) { + if (tParameterTypes[i] == Boolean.class ) tParameterTypes[i] = boolean.class; + if (tParameterTypes[i] == Byte.class ) tParameterTypes[i] = byte.class; + if (tParameterTypes[i] == Short.class ) tParameterTypes[i] = short.class; + if (tParameterTypes[i] == Integer.class ) tParameterTypes[i] = int.class; + if (tParameterTypes[i] == Long.class ) tParameterTypes[i] = long.class; + if (tParameterTypes[i] == Float.class ) tParameterTypes[i] = float.class; + if (tParameterTypes[i] == Double.class ) tParameterTypes[i] = double.class; + } + } + Method tMethod = (aObject instanceof Class)?((Class)aObject).getMethod(aMethod, tParameterTypes):aObject.getClass().getMethod(aMethod, tParameterTypes); + if (aPrivate) tMethod.setAccessible(true); + return tMethod.invoke(aObject, aParameters); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(); + } + return null; + } + + public static Object callConstructor(String aClass, int aConstructorIndex, Object aReplacementObject, boolean aLogErrors, Object... aParameters) { + try { + return Class.forName(aClass).getConstructors()[aConstructorIndex].newInstance(aParameters); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(); + } + return aReplacementObject; + } + + public static Object getField(Object aObject, String aField, boolean aPrivate, boolean aLogErrors) { + try { + Field tField = (aObject instanceof Class)?((Class)aObject).getDeclaredField(aField):aObject.getClass().getDeclaredField(aField); + if (aPrivate) tField.setAccessible(true); + return tField.get(aObject); + } catch (Throwable e) { + if (aLogErrors) e.printStackTrace(); + } + return null; + } +} \ No newline at end of file diff --git a/common/mekanism/common/ItemNetworkMeter.java b/common/mekanism/common/ItemEnergyMeter.java similarity index 84% rename from common/mekanism/common/ItemNetworkMeter.java rename to common/mekanism/common/ItemEnergyMeter.java index c9c953e8b..eed395212 100644 --- a/common/mekanism/common/ItemNetworkMeter.java +++ b/common/mekanism/common/ItemEnergyMeter.java @@ -9,11 +9,11 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatMessageComponent; import net.minecraft.world.World; -public class ItemNetworkMeter extends ItemEnergized +public class ItemEnergyMeter extends ItemEnergized { public static double ENERGY_PER_USE = 400; - public ItemNetworkMeter(int id) + public ItemEnergyMeter(int id) { super(id, 60000, 120); } @@ -31,13 +31,13 @@ public class ItemNetworkMeter extends ItemEnergized { setEnergy(stack, getEnergy(stack)-ENERGY_PER_USE); - ITransmitter transmitter = (ITransmitter)tileEntity; + ITransmitter cable = (ITransmitter)tileEntity; player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " -------------")); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Transmitters: " + EnumColor.DARK_GREY + transmitter.getNetworkSize())); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Acceptors: " + EnumColor.DARK_GREY + transmitter.getNetworkAcceptorSize())); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Needed: " + EnumColor.DARK_GREY + transmitter.getNetworkNeeded())); - player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Power: " + EnumColor.DARK_GREY + transmitter.getNetworkFlow())); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Cables: " + EnumColor.DARK_GREY + cable.getNetworkSize())); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Acceptors: " + EnumColor.DARK_GREY + cable.getNetworkAcceptorSize())); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Needed energy: " + EnumColor.DARK_GREY + cable.getNetworkNeeded())); + player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + " *Power: " + EnumColor.DARK_GREY + cable.getNetworkFlow() )); player.sendChatToPlayer(ChatMessageComponent.func_111066_d(EnumColor.GREY + "------------- " + EnumColor.DARK_BLUE + "[=======]" + EnumColor.GREY + " -------------")); } } diff --git a/common/mekanism/common/Mekanism.java b/common/mekanism/common/Mekanism.java index 36defb733..dd2ee2ef0 100644 --- a/common/mekanism/common/Mekanism.java +++ b/common/mekanism/common/Mekanism.java @@ -156,7 +156,7 @@ public class Mekanism public static Item PortableTeleporter; public static Item TeleportationCore; public static Item Configurator; - public static Item NetworkMeter; + public static Item EnergyMeter; //Blocks public static Block BasicBlock; @@ -374,7 +374,7 @@ public class Mekanism CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(Robit.getUnchargedItem(), new Object[] { " S ", "ECE", "OIO", Character.valueOf('S'), "ingotSteel", Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('C'), AtomicCore, Character.valueOf('O'), "ingotRefinedObsidian", Character.valueOf('I'), new ItemStack(MachineBlock, 1, 13) })); - CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(NetworkMeter), new Object[] { + CraftingManager.getInstance().getRecipeList().add(new MekanismRecipe(new ItemStack(EnergyMeter), new Object[] { " G ", "AEA", " I ", Character.valueOf('G'), Block.glass, Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), "ingotSteel" })); @@ -493,7 +493,7 @@ public class Mekanism LanguageRegistry.addName(PortableTeleporter, "Portable Teleporter"); LanguageRegistry.addName(TeleportationCore, "Teleportation Core"); LanguageRegistry.addName(Configurator, "Configurator"); - LanguageRegistry.addName(NetworkMeter, "NetworkMeter"); + LanguageRegistry.addName(EnergyMeter, "EnergyMeter"); //Localization for BasicBlock LanguageRegistry.instance().addStringLocalization("tile.BasicBlock.OsmiumBlock.name", "Osmium Block"); @@ -613,7 +613,7 @@ public class Mekanism Clump = new ItemClump(configuration.getItem("Clump", 11219).getInt()-256); DirtyDust = new ItemDirtyDust(configuration.getItem("DirtyDust", 11220).getInt()-256); Configurator = new ItemConfigurator(configuration.getItem("Configurator", 11221).getInt()).setUnlocalizedName("Configurator"); - NetworkMeter = new ItemNetworkMeter(configuration.getItem("NetworkMeter", 11222).getInt()).setUnlocalizedName("NetworkMeter"); + EnergyMeter = new ItemEnergyMeter(configuration.getItem("EnergyMeter", 11222).getInt()).setUnlocalizedName("EnergyMeter"); configuration.save(); //Registrations @@ -643,7 +643,7 @@ public class Mekanism GameRegistry.registerItem(Clump, "Clump"); GameRegistry.registerItem(DirtyDust, "DirtyDust"); GameRegistry.registerItem(Configurator, "Configurator"); - GameRegistry.registerItem(NetworkMeter, "NetworkMeter"); + GameRegistry.registerItem(EnergyMeter, "EnergyMeter"); } /**