diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-01-29 18:28:37 +0000 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-01-29 18:28:37 +0000 |
| commit | 73ca377dc01f859dabd7b07738cb7aeb762272b1 (patch) | |
| tree | 9c0acccbfbf78e813fb838ab566c96a40c5f36bb /java/darkknight/jewelrycraft/events/EntityEventHandler.java | |
| parent | 06f62473f0622efe6decc32b70516a7c5d3d3572 (diff) | |
Made lots of changes
Diffstat (limited to 'java/darkknight/jewelrycraft/events/EntityEventHandler.java')
| -rw-r--r-- | java/darkknight/jewelrycraft/events/EntityEventHandler.java | 158 |
1 files changed, 151 insertions, 7 deletions
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 |
