package com.minestellar.utils.frontier; import java.lang.ref.WeakReference; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; public class MSPlayerStats implements IExtendedEntityProperties { public static final String MS_PLAYER_PROP = "MSPlayerStats"; public WeakReference<EntityPlayerMP> player; public int airRemaining; public int damageCounter; public int gravityLevel; public boolean oxygenValid; public boolean lastOxygenValid; public MSPlayerStats(EntityPlayerMP player) { this.player = new WeakReference<EntityPlayerMP>(player); } @Override public void saveNBTData(NBTTagCompound nbt) { nbt.setInteger("playerAirRemaining", this.airRemaining); nbt.setInteger("damageCounter", this.damageCounter); nbt.setInteger("gravityLevel", this.gravityLevel); nbt.setBoolean("OxygenValid", this.oxygenValid); } @Override public void loadNBTData(NBTTagCompound nbt) { this.airRemaining = nbt.getInteger("playerAirRemaining"); this.damageCounter = nbt.getInteger("damageCounter"); this.gravityLevel = nbt.getInteger("gravityLevel"); this.oxygenValid = this.lastOxygenValid = nbt.getBoolean("OxygenValid"); } @Override public void init(Entity entity, World world) { } public static void register(EntityPlayerMP player) { player.registerExtendedProperties(MSPlayerStats.MS_PLAYER_PROP, new MSPlayerStats(player)); } public static MSPlayerStats get(EntityPlayerMP player) { return (MSPlayerStats) player.getExtendedProperties(MSPlayerStats.MS_PLAYER_PROP); } }