summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/events
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-04-23 18:08:44 +0100
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-04-23 18:08:44 +0100
commit05f43b228ae0de5bd33ccd303ebbadfaaa464bc7 (patch)
treedf2067001e0b28c2d40edc5ccde43830616ec8ce /src/main/java/darkknight/jewelrycraft/events
parent2a7e0a624f482a28af1c770dbcf2a20f52f94f78 (diff)
Added new curses!
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/events')
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java1
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java55
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java12
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java32
4 files changed, 54 insertions, 46 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java
index 81fe34b..3cd8084 100644
--- a/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java
+++ b/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java
@@ -21,7 +21,6 @@ public class BlockEventHandler
@SubscribeEvent
public void onBlockDestroyed(BlockEvent.BreakEvent event)
{
- // System.out.println("Broken " + event.getResult());
ItemStack item = event.getPlayer().inventory.getCurrentItem();
if (event.block instanceof BlockMidasTouch && item != null && item.getItem().getHarvestLevel(item, "pickaxe") >= event.block.getHarvestLevel(event.blockMetadata)){
TileEntityMidasTouch te = (TileEntityMidasTouch)event.world.getTileEntity(event.x, event.y, event.z);
diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
index f9152a7..c608658 100644
--- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
+++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
@@ -1,6 +1,5 @@
package darkknight.jewelrycraft.events;
-import ibxm.Player;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
@@ -9,13 +8,11 @@ import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
-import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
@@ -24,15 +21,13 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.MathHelper;
import net.minecraftforge.client.event.EntityViewRenderEvent;
-import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
-import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
-import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent;
import net.minecraftforge.event.world.WorldEvent;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.common.FMLCommonHandler;
@@ -40,20 +35,16 @@ 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.config.ConfigHandler;
import darkknight.jewelrycraft.curses.Curse;
import darkknight.jewelrycraft.damage.DamageSourceList;
import darkknight.jewelrycraft.entities.EntityHalfHeart;
import darkknight.jewelrycraft.entities.EntityHeart;
import darkknight.jewelrycraft.item.ItemBaseJewelry;
-import darkknight.jewelrycraft.item.ItemBracelet;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.network.PacketClearColorCache;
import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
-import darkknight.jewelrycraft.network.PacketSendCurseStats;
-import darkknight.jewelrycraft.network.PacketSendPlayerInfo;
+import darkknight.jewelrycraft.network.PacketSendServerPlayersInfo;
import darkknight.jewelrycraft.util.BlockUtils;
-import darkknight.jewelrycraft.util.JewelryNBT;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
import darkknight.jewelrycraft.util.PlayerUtils;
import darkknight.jewelrycraft.util.Variables;
@@ -63,6 +54,8 @@ import darkknight.jewelrycraft.util.Variables;
*/
public class EntityEventHandler
{
+ int updateTime = 0;
+
/**
* @param event
*/
@@ -110,6 +103,7 @@ public class EntityEventHandler
EntityPlayer player = (EntityPlayer)entity;
NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender);
+ if (updateTime > 0) updateTime--;
if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){
player.motionX *= 0D;
player.motionZ *= 0D;
@@ -124,7 +118,7 @@ public class EntityEventHandler
if (playerInfo.hasKey("ext" + i)){
NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
- if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player);
+ if (item != null) ((ItemBaseJewelry)item.getItem()).action(item, player);
}
if (!player.worldObj.isRemote){
if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){
@@ -142,9 +136,9 @@ public class EntityEventHandler
JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false);
- if (playerInfo.getBoolean("sendInfo")){
- JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats());
- playerInfo.setBoolean("sendInfo", false);
+ if (updateTime == 0){
+ JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo());
+ updateTime = 200;
}
for(Curse curse: Curse.getCurseList())
if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player);
@@ -152,6 +146,17 @@ public class EntityEventHandler
}
}
+ @SubscribeEvent
+ public void onEntityLivingDropItems(LivingDropsEvent event)
+ {
+ if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.source.getEntity();
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDropItems(player, event.entityLiving, event.drops);
+ }
+ }
+
/**
* @param event
*/
@@ -259,10 +264,10 @@ public class EntityEventHandler
playerInfo.setBoolean("reselectCurses", false);
}
}
- playerInfo.setBoolean("sendInfo", true);
+
playerInfo.setFloat("BlueHeart", 0f);
playerInfo.setFloat("BlackHeart", 0f);
- playerInfo.setFloat("WhiteHeart", 0f);
+ playerInfo.setFloat("WhiteHeart", 0f);
for(Curse curse: Curse.getCurseList())
if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player);
}
@@ -281,7 +286,7 @@ public class EntityEventHandler
Curse cur = Curse.availableCurses.get(no);
playerInfo.setInteger(cur.getName(), 1);
Curse.availableCurses.remove(cur);
- playerInfo.setBoolean("sendInfo", true);
+
}
}
@@ -291,7 +296,7 @@ public class EntityEventHandler
if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){
playerInfo.setInteger(cur.getName(), grade);
Curse.availableCurses.remove(cur);
- playerInfo.setBoolean("sendInfo", true);
+
}
}
@@ -351,13 +356,19 @@ public class EntityEventHandler
}
}
}
+ if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.source.getEntity();
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDeathAction(player.worldObj, event.entityLiving, player);
+ }
}
if (entity instanceof EntityPlayer){
EntityPlayer player = (EntityPlayer)entity;
NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
playerInfo.setFloat("BlueHeart", 0f);
playerInfo.setFloat("BlackHeart", 0f);
- playerInfo.setFloat("WhiteHeart", 0f);
+ playerInfo.setFloat("WhiteHeart", 0f);
if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){
for(Curse l: Curse.getCurseList()){
if (playerInfo.getInteger(l.getName()) == 1){
@@ -367,9 +378,9 @@ public class EntityEventHandler
}
if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
- playerInfo.setBoolean("sendInfo", true);
+
for(Curse curse: Curse.getCurseList())
- if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player);
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.playerDeathAction(player.worldObj, player);
}
if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
diff --git a/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java b/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java
index 9919a3f..dea04f9 100644
--- a/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java
+++ b/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java
@@ -1,7 +1,13 @@
package darkknight.jewelrycraft.events;
+import net.minecraft.nbt.NBTTagCompound;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent;
+import cpw.mods.fml.common.gameevent.TickEvent;
+import cpw.mods.fml.common.gameevent.TickEvent.Phase;
+import cpw.mods.fml.relauncher.Side;
+import darkknight.jewelrycraft.util.PlayerUtils;
+import darkknight.jewelrycraft.util.Variables;
/**
* @author Sorin
@@ -12,6 +18,10 @@ public class EventCommonHandler
@SubscribeEvent
public void onItemCrafted(PlayerEvent.ItemCraftedEvent event)
{
-// System.out.println(event.crafting + " " + event.craftMatrix.getInventoryName());
+ }
+
+ @SubscribeEvent
+ public void onPlayerTick(TickEvent.PlayerTickEvent event)
+ {
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java
index 3ff5ed4..c5595fa 100644
--- a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java
+++ b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java
@@ -11,6 +11,8 @@ import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderPlayerEvent;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import darkknight.jewelrycraft.curses.Curse;
+import darkknight.jewelrycraft.curses.CurseList;
import darkknight.jewelrycraft.entities.renders.RenderHelper;
import darkknight.jewelrycraft.item.render.BraceletRender;
import darkknight.jewelrycraft.item.render.EarringsRender;
@@ -22,36 +24,22 @@ import darkknight.jewelrycraft.util.Variables;
public class PlayerRenderHandler
{
- MaskRender mask = new MaskRender();
EarringsRender earrings = new EarringsRender();
BraceletRender bracelet = new BraceletRender();
- public static String[] infamyCache = new String[]{};
+ public static NBTTagCompound playersInfo = new NBTTagCompound();
@SubscribeEvent
public void renderScreen(RenderPlayerEvent.Specials.Post event)
{
ModelBiped main = event.renderer.modelBipedMain;
Iterator<EntityPlayer> players = event.entityPlayer.worldObj.playerEntities.iterator();
- if (infamyCache != null){
+ if (playersInfo != null){
while (players.hasNext()){
EntityPlayer player = players.next();
- NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
- if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0){
- float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick;
- float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick;
- float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick;
- GL11.glPushMatrix();
- GL11.glColor4f(1, 1, 1, 1);
- GL11.glRotatef(yawOffset, 0, -1, 0);
- GL11.glRotatef(yaw - 90, 0, 1, 0);
- GL11.glRotatef(pitch, 0, 0, -1);
- GL11.glRotatef(90F, 0, 1F, 0F);
- RenderHelper.translateToHeadLevel(player);
- GL11.glScalef(1.6f, 1.6f, 1.6f);
- GL11.glTranslatef(-0.25F, -0.25F, -0.25F);
- mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F);
- GL11.glPopMatrix();
- }
+ NBTTagCompound playerInfo = (NBTTagCompound)playersInfo.getTag(player.getDisplayName());
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0 && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0)
+ curse.playerRender(player, event);
if (playerInfo.hasKey("ext17") && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){
NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17");
ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
@@ -115,8 +103,8 @@ public class PlayerRenderHandler
*/
private boolean checkPlayerInfamy(String string)
{
- for(int i = 0; i < infamyCache.length; i++)
- if (infamyCache[i].equals(string)) return true;
+ NBTTagCompound playerInfo = (NBTTagCompound)playersInfo.getTag(string);
+ if(playerInfo.getInteger(CurseList.infamy.getName()) > 0) return true;
return false;
}
}