package chbachman.armour.handler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
import net.minecraftforge.event.entity.living.LivingHurtEvent;
import com.badlogic.gdx.utils.ObjectFloatMap;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
/**
* This class is used during development to detail the amount of damage dealt
* with each hit.
*
* @author CBachman
*
*/
public class DamageEventHandler {
ObjectFloatMap<EntityPlayer> otherMap = new ObjectFloatMap<EntityPlayer>();
@SubscribeEvent
public void onEntityDamaged(LivingHurtEvent e) {
if (e.entityLiving instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) e.entityLiving;
player.addChatMessage(new ChatComponentText(String.format("Damage is %s.", e.ammount)));
otherMap.put(player, e.ammount);
}
}
ObjectFloatMap<EntityPlayer> map = new ObjectFloatMap<EntityPlayer>();
@SubscribeEvent
public void onEntityUpdate(LivingUpdateEvent e) {
if (e.entityLiving instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) e.entityLiving;
if (player == null) {
return;
}
float health = player.getHealth();
if (map.containsKey(player)) {
map.put(player, health);
}
float f = map.get(player, 0);
if (f == health) {
return;
} else {
player.addChatMessage(new ChatComponentText(String.format("Damage is %s", f - health)));
map.put(player, health);
if (!otherMap.containsKey(player)) {
return;
}
player.addChatMessage(new ChatComponentText(String.format("Percentage is %s", (1 - ((f - health) / otherMap.get(player, 0))) * 100)));
}
}
}
}