package net.minecraft.entity.player;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.nbt.NBTTagCompound;
public class PlayerCapabilities
{
/** Disables player damage. */
public boolean disableDamage = false;
/** Sets/indicates whether the player is flying. */
public boolean isFlying = false;
/** whether or not to allow the player to fly when they double jump. */
public boolean allowFlying = false;
/**
* Used to determine if creative mode is enabled, and therefore if items should be depleted on usage
*/
public boolean isCreativeMode = false;
/** Indicates whether the player is allowed to modify the surroundings */
public boolean allowEdit = true;
private float flySpeed = 0.05F;
private float walkSpeed = 0.1F;
public void writeCapabilitiesToNBT(NBTTagCompound par1NBTTagCompound)
{
NBTTagCompound var2 = new NBTTagCompound();
var2.setBoolean("invulnerable", this.disableDamage);
var2.setBoolean("flying", this.isFlying);
var2.setBoolean("mayfly", this.allowFlying);
var2.setBoolean("instabuild", this.isCreativeMode);
var2.setBoolean("mayBuild", this.allowEdit);
var2.setFloat("flySpeed", this.flySpeed);
var2.setFloat("walkSpeed", this.walkSpeed);
par1NBTTagCompound.setTag("abilities", var2);
}
public void readCapabilitiesFromNBT(NBTTagCompound par1NBTTagCompound)
{
if (par1NBTTagCompound.hasKey("abilities"))
{
NBTTagCompound var2 = par1NBTTagCompound.getCompoundTag("abilities");
this.disableDamage = var2.getBoolean("invulnerable");
this.isFlying = var2.getBoolean("flying");
this.allowFlying = var2.getBoolean("mayfly");
this.isCreativeMode = var2.getBoolean("instabuild");
if (var2.hasKey("flySpeed"))
{
this.flySpeed = var2.getFloat("flySpeed");
this.walkSpeed = var2.getFloat("walkSpeed");
}
if (var2.hasKey("mayBuild"))
{
this.allowEdit = var2.getBoolean("mayBuild");
}
}
}
public float getFlySpeed()
{
return this.flySpeed;
}
@SideOnly(Side.CLIENT)
public void setFlySpeed(float par1)
{
this.flySpeed = par1;
}
public float getWalkSpeed()
{
return this.walkSpeed;
}
@SideOnly(Side.CLIENT)
public void func_82877_b(float par1)
{
this.walkSpeed = par1;
}
}