Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.krokoyt.gswords.Skills;
- import de.krokoyt.gswords.GiantSword;
- import de.krokoyt.gswords.events.AddPackets;
- import de.krokoyt.gswords.events.Skills;
- import net.minecraft.client.Minecraft;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.world.World;
- import net.minecraftforge.common.IExtendedEntityProperties;
- public class HealthHelper implements IExtendedEntityProperties{
- private EntityPlayer player;
- private float exp;
- private int level;
- public HealthHelper(EntityPlayer player) {
- this.player = player;
- this.level = 1;
- this.exp = 0.0F;
- }
- @Override
- public void saveNBTData(NBTTagCompound compound) {
- NBTTagCompound tag = this.player.getEntityData().getCompoundTag("PlayerPersisted");
- tag.setInteger("HeLevel", this.level);
- tag.setFloat("HeExp", this.exp);
- compound.setTag("HealthSkill", tag);
- this.player.getEntityData().setTag("PlayerPersisted", tag);
- }
- public static void addProperties(EntityPlayer player)
- {
- player.registerExtendedProperties("HealthSkill", new HealthHelper(player));
- }
- public static HealthHelper getProperties(EntityPlayer player)
- {
- return (HealthHelper)player.getExtendedProperties("HealthSkill");
- }
- @Override
- public void loadNBTData(NBTTagCompound compound) {
- NBTTagCompound tag = this.player.getEntityData().getCompoundTag("PlayerPersisted");
- if (!tag.equals("HeLevel")) {
- return;
- }
- this.level = tag.getInteger("HeLevel");
- this.exp = tag.getFloat("HeExp");
- this.player.getEntityData().setTag("PlayerPersisted", tag);
- }
- public int getExpAdded()
- {
- if (this.level <= 4) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 6.0D);
- }
- if (this.level <= 14) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 14.0D);
- }
- if (this.level <= 29) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 30.0D);
- }
- if (this.level <= 44) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 60.0D);
- }
- if (this.level <= 59) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 100.0D);
- }
- if (this.level <= 74) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 160.0D);
- }
- if (this.level <= 89) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 250.0D);
- }
- if (this.level <= 94) {
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 310.0D);
- }
- return (int)(Math.pow(1.1D, this.level - 1) * 50.0D / 400.0D);
- }
- public int getLevel()
- {
- return this.level;
- }
- public float getExperience()
- {
- return this.exp;
- }
- public float getExpRequired()
- {
- return (float)(Math.pow(1.1D, this.level - 1) * 50.0D);
- }
- public void setExperience(float i)
- {
- this.exp = i;
- if ((this.player instanceof EntityPlayerMP)) {
- AddPackets.network.sendTo(new HealthMessage(this.level, progressPercentage()), (EntityPlayerMP)this.player);
- }
- }
- public void setLevel(int i)
- {
- this.level = i;
- if ((this.player instanceof EntityPlayerMP)) {
- AddPackets.network.sendTo(new HealthMessage(this.level, progressPercentage()), (EntityPlayerMP)this.player);
- }
- }
- public int progressPercentage()
- {
- return (int)Math.floor(this.exp / getExpRequired() * 100.0F);
- }
- ///playsound gswords:LevelUp @a
- public void levelUp()
- {
- if (this.level != 100) {
- Minecraft.getMinecraft().thePlayer.playSound("gswords:LevelUp", 3.85F, 1.0F);
- }
- this.level += 1;
- if (this.level == 100) {
- Minecraft.getMinecraft().thePlayer.playSound("gswords:Level100", 3.85F, 1.0F);
- }
- if (this.level == 101) {
- this.level = 100;
- }
- this.exp = 0.0F;
- if ((this.player instanceof EntityPlayerMP)) {
- AddPackets.network.sendTo(new HealthMessage(this.level, progressPercentage()), (EntityPlayerMP)this.player);
- }
- }
- public float getExpLeft()
- {
- return (float)(Math.pow(1.1D, this.level - 1) * 50.0D) - this.exp;
- }
- public void addExperience(float i)
- {
- if (i > getExpLeft())
- {
- float x = i;
- boolean run = true;
- while (run) {
- if (x > getExpLeft())
- {
- x -= getExpLeft();
- levelUp();
- }
- else
- {
- this.exp += x;
- run = false;
- if ((this.player instanceof EntityPlayerMP)) {
- AddPackets.network.sendTo(new HealthMessage(this.level, progressPercentage()), (EntityPlayerMP)this.player);
- }
- }
- }
- }
- else
- {
- this.exp += i;
- if (this.exp >= getExpRequired()) {
- levelUp();
- } else if ((this.player instanceof EntityPlayerMP)) {
- AddPackets.network.sendTo(new HealthMessage(this.level, progressPercentage()), (EntityPlayerMP)this.player);
- }
- }
- }
- @Override
- public void init(Entity entity, World world) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement