summaryrefslogtreecommitdiff
path: root/java/darkknight/jewelrycraft/events
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-21 21:31:16 +0000
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-02-21 21:31:16 +0000
commit420faddca46e70e3a70def168fb4e452ef193b0d (patch)
tree247e334012e4bf9e4fa6d42718bf601ce6bd42d9 /java/darkknight/jewelrycraft/events
parent3f4c717de5ebc9b942d65ae45ac87c43bdf8a31b (diff)
Added just a butt ton of stuff, also thanks to pau101 for helping me with the Hand Pedestal animation :)
Diffstat (limited to 'java/darkknight/jewelrycraft/events')
-rw-r--r--java/darkknight/jewelrycraft/events/BucketHandler.java48
-rw-r--r--java/darkknight/jewelrycraft/events/EntityEventHandler.java387
-rw-r--r--java/darkknight/jewelrycraft/events/KeyBindings.java10
-rw-r--r--java/darkknight/jewelrycraft/events/PlayerRenderHandler.java20
-rw-r--r--java/darkknight/jewelrycraft/events/ScreenHandler.java112
5 files changed, 396 insertions, 181 deletions
diff --git a/java/darkknight/jewelrycraft/events/BucketHandler.java b/java/darkknight/jewelrycraft/events/BucketHandler.java
index a7b40cd..871f26e 100644
--- a/java/darkknight/jewelrycraft/events/BucketHandler.java
+++ b/java/darkknight/jewelrycraft/events/BucketHandler.java
@@ -9,9 +9,7 @@ package darkknight.jewelrycraft.events;
import java.util.HashMap;
import java.util.Map;
-
import net.minecraft.block.Block;
-import net.minecraft.client.Minecraft;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@@ -26,54 +24,56 @@ import darkknight.jewelrycraft.util.JewelryNBT;
public class BucketHandler
{
-
public static BucketHandler INSTANCE = new BucketHandler();
public Map<Block, Item> buckets = new HashMap<Block, Item>();
+ /**
+ *
+ */
private BucketHandler()
- {
- }
+ {}
+ /**
+ * @param event
+ */
@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);
}
+ /**
+ * @param world
+ * @param pos
+ * @return
+ */
private ItemStack fillCustomBucket(World world, MovingObjectPosition pos)
- {
+ {
Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
Item bucket = buckets.get(block);
-
- if (bucket != null && world.getBlock(pos.blockX, pos.blockY, pos.blockZ) != Blocks.air && world.getBlock(pos.blockX, pos.blockY, pos.blockZ) instanceof BlockMoltenMetal)
- {
+ if (bucket != null && world.getBlock(pos.blockX, pos.blockY, pos.blockZ) != Blocks.air && world.getBlock(pos.blockX, pos.blockY, pos.blockZ) instanceof BlockMoltenMetal){
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
ItemStack item = new ItemStack(bucket);
String ingotData = JewelrycraftMod.saveData.getString(pos.blockX + " " + pos.blockY + " " + pos.blockZ + " " + world.provider.dimensionId);
- if (ingotData != null && ingotData != "")
- {
+ if (ingotData != null && ingotData != ""){
String[] splitData = ingotData.split(":");
- if (splitData.length == 3)
- {
- int itemID, itemDamage, color;
- try
- {
+ if (splitData.length == 3){
+ int itemID, itemDamage;
+ try{
itemID = Integer.parseInt(splitData[0]);
itemDamage = Integer.parseInt(splitData[1]);
- color = Integer.parseInt(splitData[2]);
+ Integer.parseInt(splitData[2]);
JewelryNBT.addMetal(item, new ItemStack(Item.getItemById(itemID), 1, itemDamage));
}
- catch (Exception e)
- {
+ catch(Exception e){
e.printStackTrace();
}
}
}
return item;
- }
- else return null;
+ }else return null;
}
} \ No newline at end of file
diff --git a/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/java/darkknight/jewelrycraft/events/EntityEventHandler.java
index 7229318..9231ada 100644
--- a/java/darkknight/jewelrycraft/events/EntityEventHandler.java
+++ b/java/darkknight/jewelrycraft/events/EntityEventHandler.java
@@ -5,27 +5,40 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-
+import java.util.Iterator;
+import java.util.List;
+import java.util.Random;
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.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.MathHelper;
import net.minecraftforge.client.event.EntityViewRenderEvent;
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.LivingEvent.LivingUpdateEvent;
+import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.WorldEvent;
-
import org.lwjgl.opengl.GL11;
-
import cpw.mods.fml.common.FMLCommonHandler;
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.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.ItemList;
import darkknight.jewelrycraft.network.PacketClearColorCache;
import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
@@ -36,185 +49,342 @@ import darkknight.jewelrycraft.util.PlayerUtils;
/**
* Code taken from OpenBlocks
*/
-
public class EntityEventHandler
{
-
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onEntityJoinWorld(EntityJoinWorldEvent event)
{
- if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP) event.entity);
-
+ if (event.entity instanceof EntityPlayerMP) JewelrycraftMod.netWrapper.sendTo(new PacketClearColorCache(), (EntityPlayerMP)event.entity);
+ if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
final Entity entity = event.entity;
-
- if (!event.world.isRemote && entity instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) entity;
+ if (!event.world.isRemote && entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)entity;
NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
-
boolean shouldGiveManual = ItemList.guide != null && !persistTag.getBoolean("givenGuide");
- if (shouldGiveManual)
- {
+ if (shouldGiveManual){
ItemStack manual = new ItemStack(ItemList.guide);
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;
+ for(Curse curse: Curse.getCurseList())
+ if (!persistTag.hasKey(curse.getName())) persistTag.setInteger(curse.getName(), 0);
}
- JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onEntityUpdate(LivingUpdateEvent event)
{
- final Entity entity = event.entity;
- if (entity instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) entity;
+ Entity entity = event.entity;
+ if (entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)entity;
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 (!player.worldObj.isRemote){
+ if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){
+ playerInfo.setInteger("curseTime", playerInfo.getInteger("curseTime") - 10000);
if (playerInfo.getInteger("curseTime") <= 0) playerInfo.setBoolean("reselectCurses", true);
}
+ if (playerInfo.hasKey("playerCursePointsChanged") && playerInfo.getBoolean("playerCursePointsChanged")){
+ int points = playerInfo.getInteger("cursePoints");
+ for(int i = 0; i <= 5; i++)
+ if (points > i * 750) addCurse(player, playerInfo, ("curse" + i).toString());
+ if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){
+ playerInfo.setInteger("curseTime", 23000);
+ playerInfo.setBoolean("reselectCurses", false);
+ }
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ }
+ for(int i = 0; i < 18; i++)
+ if (playerInfo.hasKey("ext" + i)){
+ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
+ ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
+ ((ItemBaseJewelry)item.getItem()).action(item, player);
+ }
+ if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false);
+// for(Curse curse: Curse.getCurseList())
+// if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player);
+ }
+ }
+ }
+
+ /**
+ * @param event
+ */
+ @SubscribeEvent
+ public void onEntityAttacked(LivingAttackEvent event)
+ {
+ Entity entity = event.entityLiving;
+ if (entity instanceof EntityPlayer && !(event.source.getEntity() instanceof EntityPlayer)){
+ EntityPlayer player = (EntityPlayer)entity;
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++)
+ if (playerInfo.hasKey("ext" + i)){
+ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
+ ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
+ if (((ItemBaseJewelry)item.getItem()).onPlayerAttackedCacellable(item, player, event.source, event.ammount)){
+ event.setCanceled(true);
+ break;
+ }
+ ((ItemBaseJewelry)item.getItem()).onPlayerAttacked(item, player, event.source, event.ammount);
+ }
+ if (!player.worldObj.isRemote && player.getHealth() != player.prevHealth){
+ if (playerInfo.getFloat("WhiteHeart") > 0){
+ playerInfo.setFloat("WhiteHeart", 0f);
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ }
+ if (playerInfo.getFloat("BlueHeart") > 0){
+ float damage = playerInfo.getFloat("BlueHeart") - event.ammount;
+ if (damage >= 0){
+ playerInfo.setFloat("BlueHeart", damage);
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ player.heal(event.ammount);
+ }else{
+ playerInfo.setFloat("BlueHeart", 0f);
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ player.heal(Math.abs(damage));
+ }
+ }else if (playerInfo.getFloat("BlackHeart") > 0){
+ AxisAlignedBB axisalignedbb = player.boundingBox.expand(2.0D, 0.0D, 2.0D);
+ List enemies = player.worldObj.getEntitiesWithinAABBExcludingEntity(player, axisalignedbb);
+ if (enemies != null && !enemies.isEmpty()){
+ Iterator iterator = enemies.iterator();
+ while (iterator.hasNext()){
+ Entity enemy = (Entity)iterator.next();
+ enemy.attackEntityFrom(DamageSourceList.blackHeart, 5f * event.ammount);
+ }
+ }
+ float damage = playerInfo.getFloat("BlackHeart") - event.ammount;
+ if (damage >= 0){
+ playerInfo.setFloat("BlackHeart", damage);
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ player.heal(event.ammount);
+ }else{
+ playerInfo.setFloat("BlackHeart", 0f);
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ player.heal(Math.abs(damage));
+ }
+ }
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
+ }else if (event.source.getEntity() instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.source.getEntity();
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++)
+ if (playerInfo.hasKey("ext" + i)){
+ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
+ ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
+ ((ItemBaseJewelry)item.getItem()).onEntityAttackedCacellable(item, player, entity, event.ammount);
+ ((ItemBaseJewelry)item.getItem()).onEntityAttacked(item, player, entity, event.ammount);
+ }
}
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onPlayerRespawn(PlayerEvent.Clone event)
{
EntityPlayer player = event.entityPlayer;
- if (!player.worldObj.isRemote)
- {
+ if (!player.worldObj.isRemote){
NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
- if (playerInfo.hasKey("cursePoints") && playerInfo.getInteger("cursePoints") > 0)
- {
+ 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"))
- {
+ for(int i = 0; i <= 5; i++)
+ if (points > i * 750) addCurse(player, playerInfo, ("curse" + i).toString());
+ if (!playerInfo.hasKey("curseTime") || !playerInfo.hasKey("reselectCurses") || playerInfo.getBoolean("reselectCurses")){
playerInfo.setInteger("curseTime", 23000);
playerInfo.setBoolean("reselectCurses", false);
}
}
}
- JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ }
+
+ @SubscribeEvent
+ public void onPlayerFall(LivingFallEvent event)
+ {
+ Entity entity = event.entity;
+ if (entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)entity;
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
+ if (!player.worldObj.isRemote) for(int i = 0; i < 18; i++)
+ if (playerInfo.hasKey("ext" + i)){
+ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
+ ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
+ if (((ItemBaseJewelry)item.getItem()).onPlayerFall(item, player)){
+ event.setCanceled(true);
+ break;
+ }
+ }
+ }
}
+ /**
+ * @param player
+ * @param playerInfo
+ * @param curse
+ */
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));
+ if ((!playerInfo.hasKey(curse) || playerInfo.getInteger(curse) == 0) && Curse.availableCurses.size() > 0){
+ int no = JewelrycraftUtil.rand.nextInt(Curse.availableCurses.size());
+ Curse cur = Curse.availableCurses.get(no);
+ int grade = 1 + player.worldObj.rand.nextInt(2);
+ playerInfo.setInteger(cur.getName(), grade);
+ Curse.availableCurses.remove(cur);
playerInfo.setInteger(curse, grade);
}
}
+ public static void addCurse(EntityPlayer player, NBTTagCompound playerInfo, String curseNo, int curseID)
+ {
+ if ((!playerInfo.hasKey(curseNo) || playerInfo.getInteger(curseNo) <= 0) && Curse.availableCurses.size() > 0){
+ Curse cur = Curse.availableCurses.get(curseID);
+ int grade = 1 + player.worldObj.rand.nextInt(2);
+ playerInfo.setInteger(cur.getName(), grade);
+ Curse.availableCurses.remove(cur);
+ playerInfo.setInteger(curseNo, grade);
+ }
+ }
+
+ @SubscribeEvent
+ public void itemToss(ItemTossEvent event)
+ {
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(event.player, "Jewelrycraft");
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0 && curse.itemToss()){
+ EntityItem entityitem = new EntityItem(event.player.worldObj, event.player.posX + 0.5D, event.player.posY + 0.5D, event.player.posZ + 0.5D, event.entityItem.getEntityItem());
+ entityitem.motionX = 0;
+ entityitem.motionZ = 0;
+ entityitem.motionY = 0.11000000298023224D;
+ event.player.worldObj.spawnEntityInWorld(entityitem);
+ event.player.addChatComponentMessage(new ChatComponentText("<" + event.player.getDisplayName() + "> This is MY item! MINE! I will NEVER give it to you! Mine! Mine! MINE!"));
+ event.setCanceled(true);
+ }
+ }
+
+ /**
+ * @param event
+ */
@SubscribeEvent
public void playerFileSave(PlayerEvent.SaveToFile event)
{
- JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onEntityDead(LivingDeathEvent event)
{
final Entity entity = event.entity;
- if (!entity.worldObj.isRemote && entity instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) entity;
+ Random rand = new Random();
+ String[] types = {"Red", "Blue", "White", "Black"};
+ if (!entity.worldObj.isRemote && !(entity instanceof EntityPlayer) && entity instanceof EntityLiving){
+ EntityLiving live = (EntityLiving)entity;
+ String type = types[rand.nextInt(4)];
+ if (rand.nextInt(6) == 0){
+ if (type == "White"){
+ EntityHeart h = new EntityHalfHeart(live.worldObj);
+ h.setType(type);
+ h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F);
+ live.worldObj.spawnEntityInWorld(h);
+ }else{
+ for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(live.getMaxHealth() / 20)); i++){
+ EntityHeart[] hearts = {new EntityHeart(live.worldObj), new EntityHalfHeart(entity.worldObj)};
+ EntityHeart h = hearts[rand.nextInt(2)];
+ h.setType(type);
+ h.setLocationAndAngles(live.posX, live.posY, live.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F);
+ live.worldObj.spawnEntityInWorld(h);
+ }
+ }
+ }
+ }
+ if (!entity.worldObj.isRemote && entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)entity;
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("reselectCurses") && playerInfo.getBoolean("reselectCurses")){
+ for(Curse l: Curse.getCurseList()){
+ if (playerInfo.getInteger(l.getName()) == 1){
+ playerInfo.setInteger(l.getName(), 0);
+ if(!Curse.availableCurses.contains(l)) Curse.availableCurses.add(l);
+ }else if (playerInfo.getInteger(l.getName()) >= 2) playerInfo.setInteger(l.getName(), 1);
+ }
+ for(int i = 0; i <= 5; i++)
+ if (playerInfo.hasKey(("curse" + i).toString()))
+ playerInfo.setInteger(("curse" + i).toString(), playerInfo.getInteger(("curse" + i).toString()) == 1 ? 0:1);
+
+ JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
- if (!playerInfo.hasKey("Deaths") || playerInfo.getInteger("Deaths") == 2) playerInfo.setInteger("Deaths", 0);
- playerInfo.setInteger("Deaths", playerInfo.getInteger("Deaths") + 1);
}
- JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
+ if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onWorldLoad(WorldEvent.Load event)
{
- if (!event.world.isRemote)
- {
+ if (!event.world.isRemote){
new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft").mkdirs();
JewelrycraftMod.liquidsConf = new File(JewelrycraftMod.dir + File.separator + "Jewelrycraft", "JLP" + event.world.getWorldInfo().getWorldName() + ".cfg");
- try
- {
+ try{
if (!JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.liquidsConf.createNewFile();
}
- catch (IOException e)
- {
+ catch(IOException e){
e.printStackTrace();
}
}
-
- if (FMLCommonHandler.instance().getEffectiveSide().isServer())
- {
- try
- {
- if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf));
- }
- catch (EOFException e)
- {
- e.printStackTrace();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{
+ if (JewelrycraftMod.liquidsConf.exists()) JewelrycraftMod.saveData = CompressedStreamTools.readCompressed(new FileInputStream(JewelrycraftMod.liquidsConf));
+ }
+ catch(EOFException e){
+ e.printStackTrace();
+ }
+ catch(IOException e){
+ e.printStackTrace();
}
- JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
-
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onWorldSave(WorldEvent.Save event)
{
- if (FMLCommonHandler.instance().getEffectiveSide().isServer())
- {
- try
- {
- if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf));
- }
- catch (EOFException e)
- {
- e.printStackTrace();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
+ if (FMLCommonHandler.instance().getEffectiveSide().isServer()) try{
+ if (JewelrycraftMod.liquidsConf.exists()) CompressedStreamTools.writeCompressed(JewelrycraftMod.saveData, new FileOutputStream(JewelrycraftMod.liquidsConf));
+ }
+ catch(EOFException e){
+ e.printStackTrace();
+ }
+ catch(IOException e){
+ e.printStackTrace();
}
}
+ /**
+ * @param event
+ */
@SubscribeEvent
- @SideOnly(Side.CLIENT)
+ @SideOnly (Side.CLIENT)
public void fogColors(EntityViewRenderEvent.FogColors event)
{
- if (event.entity instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) event.entity;
+ if (event.entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.entity;
NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
- if (persistTag.getBoolean("nearStartedRitual"))
- {
+ if (persistTag.getBoolean("nearStartedRitual")){
event.red = 0f;
event.green = 0f;
event.blue = 0f;
@@ -223,22 +393,25 @@ public class EntityEventHandler
if (event.isCancelable()) event.setCanceled(true);
}
+ /**
+ * @param event
+ */
@SubscribeEvent
- @SideOnly(Side.CLIENT)
+ @SideOnly (Side.CLIENT)
public void fogDensity(EntityViewRenderEvent.FogDensity event)
- {
- }
+ {}
+ /**
+ * @param event
+ */
@SubscribeEvent
- @SideOnly(Side.CLIENT)
+ @SideOnly (Side.CLIENT)
public void renderFog(EntityViewRenderEvent.RenderFogEvent event)
{
- if (event.entity instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer) event.entity;
+ if (event.entity instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.entity;
NBTTagCompound persistTag = PlayerUtils.getModPlayerPersistTag(player, "Jewelrycraft");
- if (persistTag.getBoolean("nearStartedRitual"))
- {
+ if (persistTag.getBoolean("nearStartedRitual")){
GL11.glFogi(GL11.GL_FOG_MODE, GL11.GL_EXP);
GL11.glFogf(GL11.GL_FOG_DENSITY, 0.6F);
}
diff --git a/java/darkknight/jewelrycraft/events/KeyBindings.java b/java/darkknight/jewelrycraft/events/KeyBindings.java
index 462be0c..a032047 100644
--- a/java/darkknight/jewelrycraft/events/KeyBindings.java
+++ b/java/darkknight/jewelrycraft/events/KeyBindings.java
@@ -1,14 +1,10 @@
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;
@@ -17,12 +13,18 @@ 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);
}
+ /**
+ * @param event
+ */
@SubscribeEvent
public void onKeyInput(InputEvent.KeyInputEvent event)
{
diff --git a/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java b/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java
new file mode 100644
index 0000000..c66a07a
--- /dev/null
+++ b/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java
@@ -0,0 +1,20 @@
+package darkknight.jewelrycraft.events;
+
+import net.minecraft.client.Minecraft;
+import net.minecraftforge.client.event.RenderPlayerEvent;
+import cpw.mods.fml.common.eventhandler.SubscribeEvent;
+import darkknight.jewelrycraft.model.ModelMask;
+import darkknight.jewelrycraft.tileentity.renders.MaskRender;
+
+public class PlayerRenderHandler
+{
+ ModelMask maskModel = new ModelMask();
+ MaskRender mask = new MaskRender();
+
+ @SubscribeEvent
+ public void renderScreen(RenderPlayerEvent.Pre event)
+ {
+// if (event.entityPlayer.equals(Minecraft.getMinecraft().thePlayer)) mask.doRender(event.entityPlayer, 0F, 0F, 0F, event.entityPlayer.rotationPitch, event.entityPlayer.rotationYawHead);
+ // mask.renderTileEntityAt(null, event.x, event.entity.rotationPitch, event.entity.rotationYawHead, 0F);
+ }
+}
diff --git a/java/darkknight/jewelrycraft/events/ScreenHandler.java b/java/darkknight/jewelrycraft/events/ScreenHandler.java
index 237a452..4d8013d 100644
--- a/java/darkknight/jewelrycraft/events/ScreenHandler.java
+++ b/java/darkknight/jewelrycraft/events/ScreenHandler.java
@@ -1,76 +1,96 @@
package darkknight.jewelrycraft.events;
-import java.awt.Color;
-
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiChat;
import net.minecraft.client.gui.ScaledResolution;
-import net.minecraft.client.settings.KeyBinding;
-import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
-
-import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
-
-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;
+import darkknight.jewelrycraft.curses.Curse;
public class ScreenHandler extends Gui
{
private Minecraft mc;
-
public static NBTTagCompound tagCache;
public static int cooldown;
+ static ResourceLocation texture;
+ static ResourceLocation hearts = new ResourceLocation("jewelrycraft", "textures/gui/hearts.png");
- public ScreenHandler(Minecraft mc)
+ public ScreenHandler(Minecraft mc, ResourceLocation tex)
{
super();
this.mc = mc;
+ texture = tex;
}
@SubscribeEvent
public void renderScreen(RenderGameOverlayEvent event)
{
- if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return;
- mc.renderEngine.bindTexture(new ResourceLocation("jewelrycraft", "textures/gui/curses.png"));
- int count = 0;
- for (String l : JewelrycraftUtil.curseValues.keySet())
- if (tagCache.getByte(l) > -1){
- int tag = JewelrycraftUtil.curseValues.get(l);
- int size = 16;
- this.drawRect(0, (size + 6) * count, 24 + mc.fontRenderer.getStringWidth(l.split(":")[1]), 4 + (size + 6) * count + 16, 0xaf000000);
- this.drawRect(2, 2 + (size + 6) * count, 22 + mc.fontRenderer.getStringWidth(l.split(":")[1]), 2 + (size + 6) * count + 16, 0x95700064);
- count++;
- }
- count = 0;
- for (String l : JewelrycraftUtil.curseValues.keySet())
- if (tagCache.getByte(l) > -1){
- int tag = JewelrycraftUtil.curseValues.get(l);
- int size = 16;
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- GL11.glDisable(GL11.GL_LIGHTING);
- this.drawTexturedModalRect(2, 2 + (size + 6) * count, tag % size * size, tag / size * size, size, size);
- count++;
+ if (event.isCancelable() || event.type != ElementType.ALL || tagCache == null) return;
+ if (!mc.gameSettings.showDebugInfo && !(mc.currentScreen instanceof GuiChat)){
+ int count = 0;
+ int size = 32;
+ ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
+ if (tagCache.hasKey("cursePoints") && tagCache.getInteger("cursePoints") > 0){
+ mc.renderEngine.bindTexture(texture);
+ for(Curse curse: Curse.getCurseList()){
+ if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){
+ Gui.drawRect(0, (size / 2 + 6) * count, 24 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 4 + (size / 2 + 6) * count + 16, 0xaf000000);
+ Gui.drawRect(2, 2 + (size / 2 + 6) * count, 22 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 2 + (size / 2 + 6) * count + 16, 0x95700064);
+ count++;
+ }
+ }
+ count = 0;
+ for(Curse curse: Curse.getCurseList())
+ if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){
+ int tag = curse.getID();
+ GL11.glPushMatrix();
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glScalef(0.5f, 0.5f, 0.0f);
+ drawTexturedModalRect(4, 4 + (size + 12) * count, tag % size * size, tag / size * size, size, size);
+ GL11.glPopMatrix();
+ count++;
+ }
+ count = 0;
+ size = 16;
+ for(Curse curse: Curse.getCurseList())
+ if (tagCache.hasKey(curse.getName()) && tagCache.getInteger(curse.getName()) > 0){
+ int tag = curse.getID();
+ mc.fontRenderer.drawStringWithShadow(curse.getName().split(":")[1], 20, 7 + (size + 6) * count, 16777215);
+ if (tagCache.getInteger(curse.getName()) == 2){
+ mc.renderEngine.bindTexture(hearts);
+ GL11.glPushMatrix();
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GL11.glColor4f(1f, 1f, 1f, 0.5f);
+ drawTexturedModalRect(15 + mc.fontRenderer.getStringWidth(curse.getName().split(":")[1]), 8 + (size + 6) * count, 3 * size, 0, size, size);
+ GL11.glPopMatrix();
+ }
+ count++;
+ }
+ }
+ mc.renderEngine.bindTexture(hearts);
+ count = 0;
+ if (tagCache.getFloat("BlueHeart") > 0){
+ for(int i = 0; i < (int)tagCache.getFloat("BlueHeart") / 2; i++)
+ drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 0 * size, size, size);
+ if (tagCache.getFloat("BlueHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlueHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 0 * size, 1 * size, size, size);
+ }
+ count++;
+ if (tagCache.getFloat("BlackHeart") > 0){
+ for(int i = 0; i < MathHelper.ceiling_float_int((tagCache.getFloat("BlackHeart")) / 2.0F); i++)
+ drawTexturedModalRect(2 + 13 * i, resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 0 * size, size, size);
+ if (tagCache.getFloat("BlackHeart") % 2 != 0) drawTexturedModalRect(2 + 13 * ((int)tagCache.getFloat("BlackHeart") / 2), resolution.getScaledHeight() / 2 - 25 + 16 * count, 1 * size, 1 * size, size, size);
}
- count = 0;
- for (String l : JewelrycraftUtil.curseValues.keySet())
- if (tagCache.getByte(l) > -1){
- int tag = JewelrycraftUtil.curseValues.get(l);
- int size = 16;
- mc.fontRenderer.drawStringWithShadow(l.split(":")[1], 20, 7 + (size + 6) * count, 16777215);
- if(tagCache.getByte(l) == 1) mc.fontRenderer.drawStringWithShadow("Leech", mc.fontRenderer.getStringWidth(l.split(":")[1]) + 25, 7 + (size + 6) * count, 16777215);
- count++;
- }
+ count++;
+ if (tagCache.getFloat("WhiteHeart") > 0)
+ drawTexturedModalRect(2, resolution.getScaledHeight() / 2 - 25 + 16 * count, 2 * size, 1 * size, size, size);
+ }
}
} \ No newline at end of file