Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jokekid.terraria.extendentity;
- import com.jokekid.terraria.inventory.AccesoryInventory;
- import net.minecraft.entity.DataWatcher;
- import net.minecraft.entity.Entity;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.world.World;
- import net.minecraftforge.common.IExtendedEntityProperties;
- public class ExtendedPlayer implements IExtendedEntityProperties {
- public final AccesoryInventory inventory = new AccesoryInventory();
- public final static String PROP_NAME = "ExtendedPlayer";
- public final EntityPlayer player;
- //public int currentMana;
- public boolean canCloudJump;
- public final int MAXMANA = 20;
- public static final int MANA_WATCHER = 15;
- //DataWatcher dw;
- public ExtendedPlayer(EntityPlayer player) {
- this.player = player;
- this.canCloudJump = true;
- this.player.getDataWatcher().addObject(MANA_WATCHER, this.MAXMANA);
- }
- @Override
- public void saveNBTData(NBTTagCompound compound) {
- NBTTagCompound properties = new NBTTagCompound();
- properties.setInteger("CurrentMana", this.player.getDataWatcher().getWatchableObjectInt(MANA_WATCHER));
- this.inventory.writeToNBT(properties);
- compound.setTag(PROP_NAME, properties);
- System.out.println("saved extendedPlayer NBTData");
- }
- @Override
- public void loadNBTData(NBTTagCompound compound) {
- NBTTagCompound properties = (NBTTagCompound) compound.getTag(PROP_NAME);
- this.inventory.readFromNBT(properties);
- this.player.getDataWatcher().updateObject(MANA_WATCHER, properties.getInteger("CurrentMana"));
- System.out.println("Mana from NBT: " + this.player.getDataWatcher().getWatchableObjectInt(MANA_WATCHER));
- }
- public boolean consumeMana(int amount) {
- int currentMana = this.player.getDataWatcher().getWatchableObjectInt(MANA_WATCHER);
- boolean success = amount <= currentMana;
- if(success){
- this.player.getDataWatcher().updateObject(MANA_WATCHER, currentMana - amount);
- }
- // Return TRUE if the player had enough mana
- return success;
- }
- public int replenishMana(int amount){
- int replenish;
- int oldMana = player.getDataWatcher().getWatchableObjectInt(MANA_WATCHER);
- int newMana = oldMana + amount;
- if (newMana > this.MAXMANA){
- newMana = this.MAXMANA;
- }
- replenish = newMana - oldMana;
- player.getDataWatcher().updateObject(MANA_WATCHER, newMana);
- return replenish;
- }
- @Override
- public void init(Entity entity, World world) {
- }
- // CONVENIENCE METHODS:
- public static final void register(EntityPlayer player) {
- player.registerExtendedProperties(ExtendedPlayer.PROP_NAME, new ExtendedPlayer(player));
- System.out.println("extended player registered");
- }
- public static final ExtendedPlayer get(EntityPlayer player) {
- return (ExtendedPlayer) player.getExtendedProperties(PROP_NAME);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment