From 73ca377dc01f859dabd7b07738cb7aeb762272b1 Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Thu, 29 Jan 2015 18:28:37 +0000 Subject: Made lots of changes --- .../jewelrycraft/events/BucketHandler.java | 10 +- .../jewelrycraft/events/EntityEventHandler.java | 158 ++++++++++++++++++++- .../jewelrycraft/events/KeyBindings.java | 32 +++++ .../jewelrycraft/events/ScreenHandler.java | 57 ++++++++ 4 files changed, 243 insertions(+), 14 deletions(-) create mode 100644 java/darkknight/jewelrycraft/events/KeyBindings.java create mode 100644 java/darkknight/jewelrycraft/events/ScreenHandler.java (limited to 'java/darkknight/jewelrycraft/events') diff --git a/java/darkknight/jewelrycraft/events/BucketHandler.java b/java/darkknight/jewelrycraft/events/BucketHandler.java index ec0b280..6eef59b 100644 --- a/java/darkknight/jewelrycraft/events/BucketHandler.java +++ b/java/darkknight/jewelrycraft/events/BucketHandler.java @@ -36,12 +36,9 @@ public class BucketHandler @SubscribeEvent public void onBucketFill(FillBucketEvent event) - { - - ItemStack result = fillCustomBucket(event.world, event.target); - - if (result == null) return; - + { + ItemStack result = fillCustomBucket(event.world, event.target); + if (result == null) return; event.result = result; event.setResult(Result.ALLOW); } @@ -67,7 +64,6 @@ public class BucketHandler { itemID = Integer.parseInt(splitData[0]); itemDamage = Integer.parseInt(splitData[1]); - JewelryNBT.addMetal(item, new ItemStack(Item.getItemById(itemID), 1, itemDamage)); } catch (Exception e) diff --git a/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/java/darkknight/jewelrycraft/events/EntityEventHandler.java index ed7c3e7..c791d74 100644 --- a/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -6,24 +6,31 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.client.event.EntityViewRenderEvent; import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.event.world.WorldEvent; + +import org.lwjgl.opengl.GL11; + import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.container.JewelryInventory; import darkknight.jewelrycraft.item.ItemList; +import darkknight.jewelrycraft.lib.Reference; import darkknight.jewelrycraft.network.PacketClearColorCache; import darkknight.jewelrycraft.util.BlockUtils; +import darkknight.jewelrycraft.util.JewelrycraftUtil; import darkknight.jewelrycraft.util.PlayerUtils; /** @@ -32,11 +39,8 @@ import darkknight.jewelrycraft.util.PlayerUtils; public class EntityEventHandler { - public static final String OPENBLOCKS_PERSIST_TAG = "Jewelrycraft"; - public static final String GIVEN_GUIDE_TAG = "givenGuive"; @SubscribeEvent - @SideOnly(Side.SERVER) public void onEntityJoinWorld(EntityJoinWorldEvent event) { if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP) event.entity); @@ -48,7 +52,7 @@ public class EntityEventHandler EntityPlayer player = (EntityPlayer) entity; NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean(GIVEN_GUIDE_TAG); + boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide"); if (shouldGiveManual) { ItemStack manual = new ItemStack(ItemList.guide); @@ -56,8 +60,107 @@ public class EntityEventHandler { BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); } - persistTag.setBoolean(GIVEN_GUIDE_TAG, true); + persistTag.setBoolean("givenGuide", true); } + + boolean render = persistTag.getBoolean("fancyRender"); + JewelrycraftMod.fancyRender = render; + // System.out.println("FancyRender: " + JewelrycraftMod.fancyRender + // + " Render:" + render); + } + } + + @SubscribeEvent + public void onEntityUpdate(LivingUpdateEvent event) + { + final Entity entity = event.entity; + if (!entity.worldObj.isRemote && entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + for (String l : JewelrycraftUtil.curses.keySet()) + if (!persistTag.hasKey(l) || player.getHealth() >= 19F) persistTag.setInteger(l, -1); + if (!player.isDead && player.getHealth() > 0F && player.getHealth() < 19F) persistTag.setInteger(Reference.MODNAME + ":" + "Blind", 0); + // boolean render = persistTag.getBoolean("fancyRender"); + // System.out.println("FancyRender: " + JewelrycraftMod.fancyRender + // + " Render:" + render); + // circle(player.worldObj, player.posX, player.posY, player.posZ, + // 4); + } + if (entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + persistTag.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + } + } + + // public static void circle(World world, double x, double y, double z, int + // radius) + // { + // for (int i = 0; i < radius; i++) + // for (int j = 0; j < radius; j++) + // for (int k = 0; k < radius; k++) + // { + // double distance = (radius - i) * (radius - i) + (radius - j) * (radius - + // j) + (radius - k) * (radius - k); + // + // if (distance - 1 == (radius * radius) || distance - 2 == (radius * + // radius)) + // { + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x + i - radius + 1F, y + j - radius / 2 - 1.5f, z + // + k - radius + 1F, 2F, 0.05F)); + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x - i + radius - 1F, y + j - radius / 2 - 1.5f, z + // + k - radius + 1F, 2F, 0.05F)); + // + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x + i - radius + 1F, y + j - radius / 2 - 1.5f, z + // - k + radius - 1F, 2F, 0.05F)); + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x - i + radius - 1F, y + j - radius / 2 - 1.5f, z + // - k + radius - 1F, 2F, 0.05F)); + // } + // } + // + // for (int i = 0; i < radius; i++) + // for (int j = radius - 1; j >= 0; j--) + // for (int k = 0; k < radius; k++) + // { + // double distance = (radius - i) * (radius - i) + (radius - j) * (radius - + // j) + (radius - k) * (radius - k); + // + // if (distance - 1 == (radius * radius) || distance - 2 == (radius * + // radius)) + // { + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x + i - radius + 1F, y - j + radius / 2 + 0.5f, z + // + k - radius + 1F, 2F, 0.05F)); + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x - i + radius - 1F, y - j + radius / 2 + 0.5f, z + // + k - radius + 1F, 2F, 0.05F)); + // + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x + i - radius + 1F, y - j + radius / 2 + 0.5f, z + // - k + radius - 1F, 2F, 0.05F)); + // Minecraft.getMinecraft().effectRenderer.addEffect(new + // EntityShadowsFX(world, x - i + radius - 1F, y - j + radius / 2 + 0.5f, z + // - k + radius - 1F, 2F, 0.05F)); + // } + // } + // } + + @SubscribeEvent + public void onEntityDead(LivingDeathEvent event) + { + final Entity entity = event.entity; + if (!entity.worldObj.isRemote && entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + for (String l : JewelrycraftUtil.curses.keySet()) + if (persistTag.getInteger(l) == 0) persistTag.setInteger(l, -1); } } @@ -115,4 +218,45 @@ public class EntityEventHandler } } } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void fogColors(EntityViewRenderEvent.FogColors event) + { + if (event.entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + if (persistTag.getBoolean("nearStartedRitual")) + { + event.red = 0f; + event.green = 0f; + event.blue = 0f; + } + } + if (event.isCancelable()) event.setCanceled(true); + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void fogDensity(EntityViewRenderEvent.FogDensity event) + { + } + + @SubscribeEvent + @SideOnly(Side.CLIENT) + public void renderFog(EntityViewRenderEvent.RenderFogEvent event) + { + if (event.entity instanceof EntityPlayer) + { + EntityPlayer player = (EntityPlayer) event.entity; + NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + if (persistTag.getBoolean("nearStartedRitual")) + { + GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP); + GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F); + } + } + if (event.isCancelable()) event.setCanceled(true); + } } \ No newline at end of file diff --git a/java/darkknight/jewelrycraft/events/KeyBindings.java b/java/darkknight/jewelrycraft/events/KeyBindings.java new file mode 100644 index 0000000..462be0c --- /dev/null +++ b/java/darkknight/jewelrycraft/events/KeyBindings.java @@ -0,0 +1,32 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.KeyBinding; + +import org.lwjgl.input.Keyboard; + +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.network.PacketKeyPressEvent; + +public class KeyBindings +{ + public static KeyBinding render = new KeyBinding("Pretty Render", Keyboard.KEY_Z, "Jewelrycraft"); + public static KeyBinding inventory = new KeyBinding("Jewelry Inventory", Keyboard.KEY_J, "Jewelrycraft"); + + public KeyBindings() + { + ClientRegistry.registerKeyBinding(render); + ClientRegistry.registerKeyBinding(inventory); + } + + @SubscribeEvent + public void onKeyInput(InputEvent.KeyInputEvent event) + { + if (render.isPressed()) JewelrycraftMod.fancyRender = !JewelrycraftMod.fancyRender; + if (inventory.isPressed()) JewelrycraftMod.netWrapper.sendToServer(new PacketKeyPressEvent(0)); + } +} \ No newline at end of file diff --git a/java/darkknight/jewelrycraft/events/ScreenHandler.java b/java/darkknight/jewelrycraft/events/ScreenHandler.java new file mode 100644 index 0000000..300968a --- /dev/null +++ b/java/darkknight/jewelrycraft/events/ScreenHandler.java @@ -0,0 +1,57 @@ +package darkknight.jewelrycraft.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiChat; +import net.minecraft.client.settings.KeyBinding; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.RenderGameOverlayEvent; +import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; + +import org.lwjgl.input.Keyboard; + +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent; +import darkknight.jewelrycraft.JewelrycraftMod; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.util.JewelrycraftUtil; +import darkknight.jewelrycraft.util.PlayerUtils; + +public class ScreenHandler extends Gui +{ + private Minecraft mc; + + public static NBTTagCompound tagCache; + public static int cooldown; + + public ScreenHandler(Minecraft mc) + { + super(); + this.mc = mc; + } + + @SubscribeEvent + public void onEntityJoinWorld(RenderGameOverlayEvent event) + { + if (cooldown == 0) + { + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + cooldown = 500; + } + else cooldown--; + + if (event.isCancelable() || event.type != ElementType.EXPERIENCE || tagCache == null) return; + mc.renderEngine.bindTexture(new ResourceLocation("jewelrycraft", "textures/gui/curses1.png")); + for (String l : JewelrycraftUtil.curses.keySet()) + if (tagCache.getInteger(l) > -1){ + int tag = JewelrycraftUtil.curses.get(l) + 1; + int size = 32; + this.drawTexturedModalRect(2 + size * tag, 2, tag % size * size, tag / size * size, size, size); + } + } +} \ No newline at end of file -- cgit v1.2.3