From b8b41aa5846dae5a9bbf4fee82020f1d9e2b2a48 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Mon, 12 Aug 2024 17:08:54 -0400 Subject: Initial commit --- .../java/fyresmodjam/handlers/FyresKeyHandler.java | 186 +++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 src/main/java/fyresmodjam/handlers/FyresKeyHandler.java (limited to 'src/main/java/fyresmodjam/handlers/FyresKeyHandler.java') 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); + } + } + } + } + */ + } + } +} -- cgit v1.2.3