From 3eb8c7a8fca3f22475d53e30f0b90a6737f313fa Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 24 May 2018 15:53:20 -0400 Subject: Initial commit --- .../java/fyresmodjam/handlers/FyresKeyHandler.java | 189 +++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100755 YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java (limited to 'YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java') diff --git a/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java b/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java new file mode 100755 index 0000000..4b3dd35 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/handlers/FyresKeyHandler.java @@ -0,0 +1,189 @@ +package fyresmodjam.handlers; + +import org.lwjgl.input.Keyboard; + +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.FMLLog; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; +import fyresmodjam.ModjamMod; +import fyresmodjam.blessings.Blessing; +import fyresmodjam.blessings.BlessingUtils; +import fyresmodjam.blocks.BlockTrap; +import fyresmodjam.items.ItemTrap; +import fyresmodjam.tileentities.TileEntityPillar; +import fyresmodjam.tileentities.TileEntityTrap; +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.MovingObjectPosition; +import net.minecraft.util.MovingObjectPosition.MovingObjectType; + +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.thePlayer; + + if (player != null) { + if (examine.isPressed()) { + if (minecraft.objectMouseOver != null) { + + MovingObjectPosition o = minecraft.objectMouseOver; + + if (o.typeOfHit == MovingObjectType.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().thePlayer); + } + + } 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().thePlayer); + } 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().thePlayer); + } + } + } 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); + } + } + } + } + } + } +} -- cgit v1.2.3