Advertisement
Guest User

Untitled

a guest
Jun 10th, 2014
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.17 KB | None | 0 0
  1. public class ExtendedPlayerProperties implements IExtendedEntityProperties {
  2.    
  3.     public static final String EXT_PROPERTY_NAME = "ExtendedPlayer";
  4.     private final EntityPlayer player;
  5.     private int expToLevel, expOverflow, currentLevel, startingLevel;
  6.    
  7.     private int base, multiplier;
  8.    
  9.     public ExtendedPlayerProperties(EntityPlayer player)
  10.     {
  11.         this.player = player;
  12.         this.currentLevel = this.startingLevel = 1;
  13.         this.expOverflow = 0;
  14.        
  15.         this.base = 1000;
  16.         this.multiplier = 20;
  17.        
  18.         this.expToLevel = this.base+(this.multiplier*this.currentLevel);
  19.     }
  20.    
  21.     public static final void register(EntityPlayer player)
  22.     {
  23.         player.registerExtendedProperties(ExtendedPlayerProperties.EXT_PROPERTY_NAME, new ExtendedPlayerProperties(player));
  24.     }
  25.    
  26.     public static final ExtendedPlayerProperties fetchProperties(EntityPlayer player)
  27.     {
  28.         return (ExtendedPlayerProperties)player.getExtendedProperties(EXT_PROPERTY_NAME);
  29.     }
  30.    
  31.     @Override
  32.     public void saveNBTData(NBTTagCompound tagComp)
  33.     {
  34.         NBTTagCompound properties = new NBTTagCompound();
  35.        
  36.         properties.setInteger("CurrentLevel", this.currentLevel);
  37.         properties.setInteger("ExpRemaining", this.expToLevel);
  38.        
  39.         tagComp.setTag(EXT_PROPERTY_NAME, properties);
  40.        
  41.         System.out.println("(TEST) SAVING DATA");
  42.     }
  43.    
  44.     @Override
  45.     public void loadNBTData(NBTTagCompound tagComp)
  46.     {
  47.         NBTTagCompound properties = (NBTTagCompound) tagComp.getTag(EXT_PROPERTY_NAME);
  48.        
  49.         this.currentLevel = properties.getInteger("CurrentLevel");
  50.         this.expToLevel = properties.getInteger("ExpRemaining");
  51.        
  52.         System.out.println("(TEST) Level: " +this.currentLevel+ ", Exp to next level: " +this.expToLevel);
  53.     }
  54.    
  55.     private static final String getSaveKey(EntityPlayer player)
  56.     {
  57.         return player.getCommandSenderName() + ":" + EXT_PROPERTY_NAME;
  58.     }
  59.    
  60.     public static final void saveProxyData(EntityPlayer player)
  61.     {
  62.         ExtendedPlayerProperties playerData = ExtendedPlayerProperties.fetchProperties(player);
  63.         NBTTagCompound savedData = new NBTTagCompound();
  64.         playerData.saveNBTData(savedData);
  65.         ServerProxy.storeEntityData(getSaveKey(player), savedData);
  66.     }
  67.    
  68.     public static final void loadProxyData(EntityPlayer player)
  69.     {
  70.         ExtendedPlayerProperties playerData = ExtendedPlayerProperties.fetchProperties(player);
  71.         NBTTagCompound savedData = ServerProxy.getEntityData(getSaveKey(player));
  72.        
  73.         if (savedData != null)
  74.         {
  75.             playerData.loadNBTData(savedData); 
  76.         }
  77.        
  78.         MCHardcore.packetHandler.sendTo(new SyncPlayerPropsPacket(player), (EntityPlayerMP) player);
  79.     }
  80.    
  81.     @Override
  82.     public void init(Entity entity, World world)
  83.     {
  84.  
  85.     }
  86.    
  87.     public void addExp(int amount)
  88.     {
  89.         expToLevel -= amount;
  90.        
  91.         System.out.println("Exp: " +expToLevel);
  92.        
  93.         if(expToLevel <= 0)
  94.         {
  95.             if(expToLevel == 0)
  96.             {
  97.                 levelUp();
  98.             }
  99.             else
  100.             {
  101.                 this.expOverflow = expToLevel;
  102.                 levelUp();
  103.             }
  104.         }
  105.     }
  106.    
  107.     public int getLevel()
  108.     {
  109.         return this.currentLevel;
  110.     }
  111.    
  112.     public void levelUp()
  113.     {
  114.         this.currentLevel += 1;
  115.         expToLevel = calculateNewExpToLevel(this.currentLevel);
  116.         this.expOverflow = 0;
  117.     }
  118.    
  119.     public int calculateNewExpToLevel(int level)
  120.     {
  121.         return this.base + (this.multiplier * level) - this.expOverflow;
  122.     }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement