Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ExtendedPlayerProperties implements IExtendedEntityProperties {
- public static final String EXT_PROPERTY_NAME = "ExtendedPlayer";
- private final EntityPlayer player;
- private int expToLevel, expOverflow, currentLevel, startingLevel;
- private int base, multiplier;
- public ExtendedPlayerProperties(EntityPlayer player)
- {
- this.player = player;
- this.currentLevel = this.startingLevel = 1;
- this.expOverflow = 0;
- this.base = 1000;
- this.multiplier = 20;
- this.expToLevel = this.base+(this.multiplier*this.currentLevel);
- }
- public static final void register(EntityPlayer player)
- {
- player.registerExtendedProperties(ExtendedPlayerProperties.EXT_PROPERTY_NAME, new ExtendedPlayerProperties(player));
- }
- public static final ExtendedPlayerProperties fetchProperties(EntityPlayer player)
- {
- return (ExtendedPlayerProperties)player.getExtendedProperties(EXT_PROPERTY_NAME);
- }
- @Override
- public void saveNBTData(NBTTagCompound tagComp)
- {
- NBTTagCompound properties = new NBTTagCompound();
- properties.setInteger("CurrentLevel", this.currentLevel);
- properties.setInteger("ExpRemaining", this.expToLevel);
- tagComp.setTag(EXT_PROPERTY_NAME, properties);
- System.out.println("(TEST) SAVING DATA");
- }
- @Override
- public void loadNBTData(NBTTagCompound tagComp)
- {
- NBTTagCompound properties = (NBTTagCompound) tagComp.getTag(EXT_PROPERTY_NAME);
- this.currentLevel = properties.getInteger("CurrentLevel");
- this.expToLevel = properties.getInteger("ExpRemaining");
- System.out.println("(TEST) Level: " +this.currentLevel+ ", Exp to next level: " +this.expToLevel);
- }
- private static final String getSaveKey(EntityPlayer player)
- {
- return player.getCommandSenderName() + ":" + EXT_PROPERTY_NAME;
- }
- public static final void saveProxyData(EntityPlayer player)
- {
- ExtendedPlayerProperties playerData = ExtendedPlayerProperties.fetchProperties(player);
- NBTTagCompound savedData = new NBTTagCompound();
- playerData.saveNBTData(savedData);
- ServerProxy.storeEntityData(getSaveKey(player), savedData);
- }
- public static final void loadProxyData(EntityPlayer player)
- {
- ExtendedPlayerProperties playerData = ExtendedPlayerProperties.fetchProperties(player);
- NBTTagCompound savedData = ServerProxy.getEntityData(getSaveKey(player));
- if (savedData != null)
- {
- playerData.loadNBTData(savedData);
- }
- MCHardcore.packetHandler.sendTo(new SyncPlayerPropsPacket(player), (EntityPlayerMP) player);
- }
- @Override
- public void init(Entity entity, World world)
- {
- }
- public void addExp(int amount)
- {
- expToLevel -= amount;
- System.out.println("Exp: " +expToLevel);
- if(expToLevel <= 0)
- {
- if(expToLevel == 0)
- {
- levelUp();
- }
- else
- {
- this.expOverflow = expToLevel;
- levelUp();
- }
- }
- }
- public int getLevel()
- {
- return this.currentLevel;
- }
- public void levelUp()
- {
- this.currentLevel += 1;
- expToLevel = calculateNewExpToLevel(this.currentLevel);
- this.expOverflow = 0;
- }
- public int calculateNewExpToLevel(int level)
- {
- return this.base + (this.multiplier * level) - this.expOverflow;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement