diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-02-03 21:09:09 +0000 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-02-03 21:09:09 +0000 |
| commit | 3f4c717de5ebc9b942d65ae45ac87c43bdf8a31b (patch) | |
| tree | 15c68c8b61dbd0b7f44937a5c790c4b844e50f58 /java/darkknight/jewelrycraft/events/EntityEventHandler.java | |
| parent | 73ca377dc01f859dabd7b07738cb7aeb762272b1 (diff) | |
Made a few modifications to some classes, added earrings and bracelets. Improved coloring algorithm and balanced the Thieving Glove
Diffstat (limited to 'java/darkknight/jewelrycraft/events/EntityEventHandler.java')
| -rw-r--r-- | java/darkknight/jewelrycraft/events/EntityEventHandler.java | 146 |
1 files changed, 66 insertions, 80 deletions
diff --git a/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/java/darkknight/jewelrycraft/events/EntityEventHandler.java index c791d74..7229318 100644 --- a/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -16,6 +16,7 @@ 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.entity.player.PlayerEvent; import net.minecraftforge.event.world.WorldEvent; import org.lwjgl.opengl.GL11; @@ -25,10 +26,9 @@ 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.network.PacketRequestPlayerInfo; import darkknight.jewelrycraft.util.BlockUtils; import darkknight.jewelrycraft.util.JewelrycraftUtil; import darkknight.jewelrycraft.util.PlayerUtils; @@ -56,100 +56,76 @@ public class EntityEventHandler if (shouldGiveManual) { ItemStack manual = new ItemStack(ItemList.guide); - if (!player.inventory.addItemStackToInventory(manual)) - { - BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); - } + if (!player.inventory.addItemStackToInventory(manual)) BlockUtils.dropItemStackInWorld(player.worldObj, player.posX, player.posY, player.posZ, manual); persistTag.setBoolean("givenGuide", true); } boolean render = persistTag.getBoolean("fancyRender"); JewelrycraftMod.fancyRender = render; - // System.out.println("FancyRender: " + JewelrycraftMod.fancyRender - // + " Render:" + render); } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } @SubscribeEvent public void onEntityUpdate(LivingUpdateEvent event) { final Entity entity = event.entity; - if (!entity.worldObj.isRemote && entity instanceof EntityPlayer) + if (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); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (!player.worldObj.isRemote) + { +// System.out.println(playerInfo.getInteger("curseTime") + " " + playerInfo.getBoolean("reselectCurses")); + if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")) + { + playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 100); + if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true); + } + } } - if (entity instanceof EntityPlayer) + } + + @SubscribeEvent + public void onPlayerRespawn(PlayerEvent.Clone event) + { + EntityPlayer player = event.entityPlayer; + if (!player.worldObj.isRemote) { - EntityPlayer player = (EntityPlayer) entity; - NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); - persistTag.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0) + { + int points = playerInfo.getInteger("cursePoints"); + addCurse(player, playerInfo, "curse1"); + if (points > 50) addCurse(player, playerInfo, "curse2"); + if(!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")) + { + playerInfo.setInteger("curseTime", 23000); + playerInfo.setBoolean("reselectCurses", false); + } + } } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } - // 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)); - // } - // } - // } + public void addCurse(EntityPlayer player, NBTTagCompound playerInfo, String curse) + { + if ((!playerInfo.hasKey(curse) || playerInfo.getInteger(curse) == -1) && JewelrycraftUtil.availableCurseNames.size() > 0) + { + String name = JewelrycraftUtil.availableCurseNames.get(JewelrycraftUtil.rand.nextInt(JewelrycraftUtil.availableCurseNames.size())); + int grade = player.worldObj.rand.nextInt(2); + playerInfo.setByte(name, (byte) grade); + JewelrycraftUtil.availableCurseNames.remove(JewelrycraftUtil.curseValues.get(name)); + playerInfo.setInteger(curse, grade); + } + } + + @SubscribeEvent + public void playerFileSave(PlayerEvent.SaveToFile event) + { + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + } @SubscribeEvent public void onEntityDead(LivingDeathEvent event) @@ -158,10 +134,19 @@ public class EntityEventHandler 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); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft"); + if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")) + { + for (String l : JewelrycraftUtil.curseValues.keySet()) + if (playerInfo.getInteger(l) == 0 || playerInfo.getInteger("Deaths") == 2) playerInfo.setByte(l, (byte) -1); + for (int i = 1; i <= 2; i++) + if ((playerInfo.hasKey(("curse" + i).toString()) && playerInfo.getInteger(("curse" + i).toString()) == 0) || playerInfo.getInteger("Deaths") == 2) playerInfo.setInteger(("curse" + i).toString(), -1); + JewelrycraftUtil.availableCurseNames.putAll(JewelrycraftUtil.curseNames); + } + if (!playerInfo.hasKey("Deaths") || playerInfo.getInteger("Deaths") == 2) playerInfo.setInteger("Deaths", 0); + playerInfo.setInteger("Deaths", playerInfo.getInteger("Deaths") + 1); } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } @SubscribeEvent @@ -196,6 +181,7 @@ public class EntityEventHandler e.printStackTrace(); } } + JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } |
