diff options
Diffstat (limited to 'src/main/java/fyresmodjam/handlers/FyresKeyHandler.java')
| -rw-r--r-- | src/main/java/fyresmodjam/handlers/FyresKeyHandler.java | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java b/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java new file mode 100644 index 0000000..3938c4f --- /dev/null +++ b/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java @@ -0,0 +1,186 @@ +package fyresmodjam.handlers;
+
+import org.lwjgl.input.Keyboard;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.blessings.BlessingUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.settings.KeyBinding;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.math.RayTraceResult;
+import net.minecraftforge.fml.client.registry.ClientRegistry;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent;
+
+public class FyresKeyHandler {
+
+ public static KeyBinding examine = new KeyBinding(
+ "Examine", Keyboard.KEY_X, "YWD");
+ public static KeyBinding activateBlessing = new KeyBinding(
+ "Activate Blessing", Keyboard.KEY_K, "YWD");
+
+ public static KeyBinding[] keyBindings = new KeyBinding[] {
+ examine, activateBlessing
+ };
+
+ public FyresKeyHandler() {
+ for (KeyBinding k : keyBindings) {
+ ClientRegistry.registerKeyBinding(k);
+ }
+ }
+
+ @SubscribeEvent
+ public void keyInput(KeyInputEvent event) {
+ if (Minecraft.getMinecraft().inGameHasFocus) {
+ Minecraft minecraft = Minecraft.getMinecraft();
+ EntityPlayer player = minecraft.player;
+
+ // TODO fix this
+ /*
+ if (player != null) {
+ if (examine.isPressed()) {
+ if (minecraft.objectMouseOver != null) {
+
+ RayTraceResult o = minecraft.objectMouseOver;
+
+ if (o.typeOfHit == RayTraceResult.Type.BLOCK) {
+ int x = minecraft.objectMouseOver.blockX;
+ int y = minecraft.objectMouseOver.blockY;
+ int z = minecraft.objectMouseOver.blockZ;
+
+ if (minecraft.theWorld
+ .getBlock(x, y, z) == ModjamMod.blockPillar
+ && (minecraft.theWorld
+ .getBlockMetadata(
+ x,
+ y,
+ z)
+ % 2) == 1) {
+ y--;
+ }
+
+ TileEntity te = minecraft.theWorld
+ .getTileEntity(x,
+ y,
+ z);
+
+ if (te != null && te instanceof TileEntityPillar) {
+ Blessing bless = BlessingUtils
+ .getBlessingInstance(
+ ((TileEntityPillar) te).blessing);
+
+ String s = "@\u00A7e "
+ + bless.customName()
+ + "\n"
+ + bless.description()
+ + ".";
+
+ for (String s2 : s
+ .split("@")) {
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] {
+ s2
+ };
+ NewPacketHandler.SEND_MESSAGE
+ .executeClient(Minecraft
+ .getMinecraft().player);
+ }
+
+ } else if (te != null
+ && te instanceof TileEntityTrap) {
+ String placedBy = ((TileEntityTrap) te).placedBy;
+
+ String s = (placedBy != null
+ ? "\u00A7eThis " + ItemTrap.names[te
+ .getBlockMetadata()
+ % BlockTrap.trapTypes]
+ .toLowerCase()
+ + " was placed by "
+ + (placedBy.equals(
+ player.getCommandSenderName())
+ ? "you"
+ : placedBy)
+ + "."
+ : "\u00A7eThis " + ItemTrap.names[te
+ .getBlockMetadata()
+ % BlockTrap.trapTypes]
+ .toLowerCase()
+ + " doesn't seem to have been placed by anyone.");
+ s += " \u00A7eTrap is set to "
+ + TileEntityTrap.settings[((TileEntityTrap) te).setting]
+ + ".";
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] {
+ s
+ };
+ NewPacketHandler.SEND_MESSAGE
+ .executeClient(Minecraft
+ .getMinecraft().player);
+ } else {
+ ItemStack stack = new ItemStack(
+ minecraft.theWorld
+ .getBlock(x, y, z),
+ 1,
+ minecraft.theWorld
+ .getBlockMetadata(
+ x,
+ y,
+ z));
+
+ if (stack.getItem() != null) {
+ String name = stack
+ .getDisplayName()
+ .toLowerCase();
+
+ NewPacketHandler.SEND_MESSAGE.data = new Object[] {
+ "\u00A7eIt's a " + name
+ + (!name.contains(
+ "block") ? " block."
+ : ".")
+ };
+ NewPacketHandler.SEND_MESSAGE
+ .executeClient(Minecraft
+ .getMinecraft().player);
+ }
+ }
+ } else if (o.typeOfHit == MovingObjectType.ENTITY
+ && o.entityHit != null) {
+ NewPacketHandler.EXAMINE_MOB
+ .sendToServer(o.entityHit.dimension,
+ o.entityHit.getEntityId());
+ }
+ }
+ }
+
+ if (activateBlessing.isPressed()) {
+ String blessing = player
+ .getEntityData()
+ .getString("Blessing");
+
+ if (blessing != null) {
+ FMLLog.info("Triggering blessing");
+
+ if (minecraft.objectMouseOver != null) {
+ MovingObjectPosition o = minecraft.objectMouseOver;
+ if (o.typeOfHit == MovingObjectType.BLOCK) {
+ NewPacketHandler.ACTIVATE_BLESSING
+ .sendToServer(minecraft.objectMouseOver.blockX,
+ minecraft.objectMouseOver.blockY,
+ minecraft.objectMouseOver.blockZ);
+ }
+ } else {
+ NewPacketHandler.ACTIVATE_BLESSING
+ .sendToServer(player.chunkCoordX,
+ player.chunkCoordY,
+ player.chunkCoordZ);
+ }
+ }
+ }
+ }
+ */
+ }
+ }
+}
|
