Working on keybindings
This commit is contained in:
parent
61e9278915
commit
99527d35a8
13 changed files with 134 additions and 33 deletions
|
@ -6,13 +6,9 @@ import com.pahimar.ee3.handler.FuelHandler;
|
|||
import com.pahimar.ee3.handler.GuiHandler;
|
||||
import com.pahimar.ee3.init.ModBlocks;
|
||||
import com.pahimar.ee3.init.ModItems;
|
||||
import com.pahimar.ee3.item.EquivalencyStack;
|
||||
import com.pahimar.ee3.network.PacketHandler;
|
||||
import com.pahimar.ee3.proxy.IProxy;
|
||||
import com.pahimar.ee3.reference.EventHandlers;
|
||||
import com.pahimar.ee3.reference.Reference;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.Mod;
|
||||
import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.Mod.Instance;
|
||||
|
@ -21,8 +17,6 @@ import cpw.mods.fml.common.event.*;
|
|||
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
@ -50,16 +44,15 @@ public class EquivalentExchange3
|
|||
@EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
{
|
||||
// Initialize the configuration
|
||||
ConfigurationHandler.init(event.getModConfigurationDirectory().getAbsolutePath() + File.separator + Reference.MOD_ID.toLowerCase() + File.separator);
|
||||
|
||||
// Initialize mod items
|
||||
PacketHandler.init();
|
||||
|
||||
proxy.registerKeybindings();
|
||||
|
||||
ModItems.init();
|
||||
|
||||
// Initialize mod blocks
|
||||
ModBlocks.init();
|
||||
|
||||
PacketHandler.init();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -75,8 +68,7 @@ public class EquivalentExchange3
|
|||
proxy.initRenderingAndTextures();
|
||||
|
||||
// Register the Items Event Handler
|
||||
FMLCommonHandler.instance().bus().register(EventHandlers.itemEventHandler);
|
||||
MinecraftForge.EVENT_BUS.register(EventHandlers.itemEventHandler);
|
||||
proxy.registerEventHandlers();
|
||||
|
||||
CraftingHandler.init();
|
||||
|
||||
|
@ -87,12 +79,7 @@ public class EquivalentExchange3
|
|||
@EventHandler
|
||||
public void postInit(FMLPostInitializationEvent event)
|
||||
{
|
||||
EquivalencyStack equivalencyStack = new EquivalencyStack(Items.beef);
|
||||
|
||||
for (Object object : equivalencyStack.getEquivalentStacks())
|
||||
{
|
||||
LogHelper.info(object);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
|
|
@ -1,20 +1,69 @@
|
|||
package com.pahimar.ee3.client.handler;
|
||||
|
||||
import com.pahimar.ee3.client.settings.Keybindings;
|
||||
import com.pahimar.ee3.item.IKeyBound;
|
||||
import com.pahimar.ee3.network.PacketHandler;
|
||||
import com.pahimar.ee3.network.message.MessageKeyPressed;
|
||||
import com.pahimar.ee3.reference.Key;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.InputEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class KeyInputEventHandler
|
||||
{
|
||||
private static Key getPressedKeybinding()
|
||||
{
|
||||
if (Keybindings.charge.isPressed())
|
||||
{
|
||||
return Key.CHARGE;
|
||||
}
|
||||
else if (Keybindings.extra.isPressed())
|
||||
{
|
||||
return Key.EXTRA;
|
||||
}
|
||||
else if (Keybindings.release.isPressed())
|
||||
{
|
||||
return Key.RELEASE;
|
||||
}
|
||||
else if (Keybindings.toggle.isPressed())
|
||||
{
|
||||
return Key.TOGGLE;
|
||||
}
|
||||
|
||||
return Key.UNKNOWN;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void handleKeyInputEvent(InputEvent.KeyInputEvent event)
|
||||
{
|
||||
if (FMLClientHandler.instance().getClient().inGameHasFocus)
|
||||
{
|
||||
if (FMLClientHandler.instance().getClientPlayerEntity() != null)
|
||||
{
|
||||
EntityPlayer entityPlayer = FMLClientHandler.instance().getClientPlayerEntity();
|
||||
|
||||
if (entityPlayer.getCurrentEquippedItem() != null)
|
||||
{
|
||||
ItemStack currentlyEquippedItemStack = entityPlayer.getCurrentEquippedItem();
|
||||
|
||||
if (currentlyEquippedItemStack.getItem() instanceof IKeyBound)
|
||||
{
|
||||
if (entityPlayer.worldObj.isRemote)
|
||||
{
|
||||
PacketHandler.INSTANCE.sendToServer(new MessageKeyPressed(Key.CHARGE));
|
||||
}
|
||||
else
|
||||
{
|
||||
((IKeyBound) currentlyEquippedItemStack.getItem()).doKeyBindingAction(entityPlayer, currentlyEquippedItemStack, getPressedKeybinding());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
package com.pahimar.ee3.configuration;
|
||||
|
||||
import com.pahimar.ee3.client.settings.Keybindings;
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import com.pahimar.ee3.reference.Reference;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
@ -21,6 +25,11 @@ public class ClientConfiguration
|
|||
|
||||
/* KeyBindings */
|
||||
configuration.addCustomCategoryComment(CATEGORY_KEYBIND, "Keybindings for Equivalent Exchange 3. See http://www.minecraftwiki.net/wiki/Key_codes for mapping of key codes to keyboard keys");
|
||||
|
||||
Keybindings.charge = new KeyBinding(Names.Keys.CHARGE, configuration.get(CATEGORY_KEYBIND, Names.Keys.CHARGE, Keyboard.KEY_V).getInt(Keyboard.KEY_V), "Equivalent Exchange 3");
|
||||
Keybindings.extra = new KeyBinding(Names.Keys.EXTRA, configuration.get(CATEGORY_KEYBIND, Names.Keys.EXTRA, Keyboard.KEY_C).getInt(Keyboard.KEY_C), "Equivalent Exchange 3");
|
||||
Keybindings.release = new KeyBinding(Names.Keys.RELEASE, configuration.get(CATEGORY_KEYBIND, Names.Keys.RELEASE, Keyboard.KEY_R).getInt(Keyboard.KEY_R), "Equivalent Exchange 3");
|
||||
Keybindings.toggle = new KeyBinding(Names.Keys.TOGGLE, configuration.get(CATEGORY_KEYBIND, Names.Keys.TOGGLE, Keyboard.KEY_G).getInt(Keyboard.KEY_G), "Equivalent Exchange 3");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package com.pahimar.ee3.item;
|
||||
|
||||
import com.pahimar.ee3.reference.Key;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IKeyBound
|
||||
{
|
||||
public abstract void doKeyBindingAction(EntityPlayer entityPlayer, ItemStack itemStack, String keyBinding);
|
||||
public abstract void doKeyBindingAction(EntityPlayer entityPlayer, ItemStack itemStack, Key key);
|
||||
}
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
package com.pahimar.ee3.item;
|
||||
|
||||
import com.pahimar.ee3.reference.Key;
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import com.pahimar.ee3.util.LogHelper;
|
||||
import com.pahimar.ee3.util.NBTHelper;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemMiniumStone extends ItemEE
|
||||
public class ItemMiniumStone extends ItemEE implements IKeyBound
|
||||
{
|
||||
public ItemMiniumStone()
|
||||
{
|
||||
|
@ -44,4 +47,10 @@ public class ItemMiniumStone extends ItemEE
|
|||
{
|
||||
return NBTHelper.hasTag(itemStack, Names.NBT.CRAFTING_GUI_OPEN) || NBTHelper.hasTag(itemStack, Names.NBT.TRANSMUTATION_GUI_OPEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doKeyBindingAction(EntityPlayer entityPlayer, ItemStack itemStack, Key key)
|
||||
{
|
||||
LogHelper.info(String.format("%s %s %s", entityPlayer.toString(), itemStack.toString(), key.toString()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package com.pahimar.ee3.item;
|
||||
|
||||
import com.pahimar.ee3.reference.Key;
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemPhilosophersStone extends ItemEE
|
||||
public class ItemPhilosophersStone extends ItemEE implements IKeyBound
|
||||
{
|
||||
private int maxChargeLevel;
|
||||
|
||||
|
@ -37,4 +39,10 @@ public class ItemPhilosophersStone extends ItemEE
|
|||
|
||||
return copiedStack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doKeyBindingAction(EntityPlayer entityPlayer, ItemStack itemStack, Key key)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
package com.pahimar.ee3.network;
|
||||
|
||||
import com.pahimar.ee3.network.message.MessageTileCalcinator;
|
||||
import com.pahimar.ee3.network.message.MessageTileEntityAludel;
|
||||
import com.pahimar.ee3.network.message.MessageTileEntityEE;
|
||||
import com.pahimar.ee3.network.message.MessageTileEntityGlassBell;
|
||||
import com.pahimar.ee3.network.message.*;
|
||||
import com.pahimar.ee3.reference.Reference;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
|
||||
|
@ -19,5 +16,6 @@ public class PacketHandler
|
|||
INSTANCE.registerMessage(MessageTileCalcinator.class, MessageTileCalcinator.class, 1, Side.CLIENT);
|
||||
INSTANCE.registerMessage(MessageTileEntityAludel.class, MessageTileEntityAludel.class, 2, Side.CLIENT);
|
||||
INSTANCE.registerMessage(MessageTileEntityGlassBell.class, MessageTileEntityGlassBell.class, 3, Side.CLIENT);
|
||||
INSTANCE.registerMessage(MessageKeyPressed.class, MessageKeyPressed.class, 4, Side.SERVER);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,17 +1,36 @@
|
|||
package com.pahimar.ee3.proxy;
|
||||
|
||||
import com.pahimar.ee3.client.handler.KeyInputEventHandler;
|
||||
import com.pahimar.ee3.client.renderer.item.*;
|
||||
import com.pahimar.ee3.client.renderer.tileentity.*;
|
||||
import com.pahimar.ee3.client.settings.Keybindings;
|
||||
import com.pahimar.ee3.init.ModBlocks;
|
||||
import com.pahimar.ee3.reference.RenderIds;
|
||||
import com.pahimar.ee3.tileentity.*;
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
|
||||
public class ClientProxy extends CommonProxy
|
||||
{
|
||||
@Override
|
||||
public void registerEventHandlers()
|
||||
{
|
||||
super.registerEventHandlers();
|
||||
FMLCommonHandler.instance().bus().register(new KeyInputEventHandler());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerKeybindings()
|
||||
{
|
||||
ClientRegistry.registerKeyBinding(Keybindings.charge);
|
||||
ClientRegistry.registerKeyBinding(Keybindings.extra);
|
||||
ClientRegistry.registerKeyBinding(Keybindings.release);
|
||||
ClientRegistry.registerKeyBinding(Keybindings.toggle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initRenderingAndTextures()
|
||||
{
|
||||
|
|
|
@ -1,11 +1,22 @@
|
|||
package com.pahimar.ee3.proxy;
|
||||
|
||||
import com.pahimar.ee3.handler.ItemEventHandler;
|
||||
import com.pahimar.ee3.reference.Names;
|
||||
import com.pahimar.ee3.tileentity.*;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
public abstract class CommonProxy implements IProxy
|
||||
{
|
||||
public void registerEventHandlers()
|
||||
{
|
||||
ItemEventHandler itemEventHandler = new ItemEventHandler();
|
||||
|
||||
FMLCommonHandler.instance().bus().register(itemEventHandler);
|
||||
MinecraftForge.EVENT_BUS.register(itemEventHandler);
|
||||
}
|
||||
|
||||
public void registerTileEntities()
|
||||
{
|
||||
GameRegistry.registerTileEntity(TileEntityAlchemicalChest.class, "tile." + Names.Blocks.ALCHEMICAL_CHEST);
|
||||
|
|
|
@ -5,4 +5,8 @@ public interface IProxy
|
|||
public abstract void registerTileEntities();
|
||||
|
||||
public abstract void initRenderingAndTextures();
|
||||
|
||||
public abstract void registerEventHandlers();
|
||||
|
||||
public abstract void registerKeybindings();
|
||||
}
|
||||
|
|
|
@ -7,4 +7,10 @@ public class ServerProxy extends CommonProxy
|
|||
{
|
||||
// NOOP
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerKeybindings()
|
||||
{
|
||||
// NOOP
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
package com.pahimar.ee3.reference;
|
||||
|
||||
import com.pahimar.ee3.handler.ItemEventHandler;
|
||||
|
||||
public class EventHandlers
|
||||
{
|
||||
public static final ItemEventHandler itemEventHandler = new ItemEventHandler();
|
||||
}
|
|
@ -59,4 +59,12 @@ public class Names
|
|||
|
||||
public static final String GLASS_BELL = "container.ee3:" + Blocks.GLASS_BELL;
|
||||
}
|
||||
|
||||
public static class Keys
|
||||
{
|
||||
public static final String CHARGE = "key.charge";
|
||||
public static final String EXTRA = "key.extra";
|
||||
public static final String RELEASE = "key.release";
|
||||
public static final String TOGGLE = "key.toggle";
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue