summaryrefslogtreecommitdiff
path: root/java/darkknight/jewelrycraft/events/EntityEventHandler.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-03 21:09:09 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-03 21:09:09 +0000
commit3f4c717de5ebc9b942d65ae45ac87c43bdf8a31b (patch)
tree15c68c8b61dbd0b7f44937a5c790c4b844e50f58 /java/darkknight/jewelrycraft/events/EntityEventHandler.java
parent73ca377dc01f859dabd7b07738cb7aeb762272b1 (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.java146
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());
}