- 1,471
- 19
- 189
Вот код класса, который не работает. Что можно сделать?
При попытки использовать метод getTemp в gui, крашит
ExtendedPlayer
При попытки использовать метод getTemp в gui, крашит
ExtendedPlayer
Код:
public final static String EXT_PROP_NAME = "ExtendedPlayer";
public final EntityPlayer player;
private double currentTemp, normalTemp, highTemp, lowTemp;
public ExtendedPlayer(EntityPlayer player) {
this.player = player;
this.currentTemp = this.normalTemp = 36.6;
}
public static final void register(EntityPlayer player)
{
player.registerExtendedProperties(ExtendedPlayer.EXT_PROP_NAME, new ExtendedPlayer(player));
}
public static final ExtendedPlayer get(EntityPlayer player)
{
return (ExtendedPlayer) player.getExtendedProperties(EXT_PROP_NAME);
}
@Override
public void saveNBTData(NBTTagCompound compound) {
NBTTagCompound properties = new NBTTagCompound();
properties.setDouble("CurrentTemp", this.currentTemp);
properties.setDouble("LowTemp", this.lowTemp);
properties.setDouble("HighTemp", this.highTemp);
properties.setDouble("NormalTemp", this.normalTemp);
compound.setTag(EXT_PROP_NAME, properties);
}
@Override
public void loadNBTData(NBTTagCompound compound) {
NBTTagCompound properties = new NBTTagCompound();
properties.getDouble("CurrentTemp");
properties.getDouble("LowTemp");
properties.getDouble("HighTemp");
properties.getDouble("NormalTemp");
if(RCC.DEBUG) {
Log.info("Temp from NBT:" + this.currentTemp);
}
}
@Override
public void init(Entity entity, World world) {
}
public boolean consumeTemp(double amount) {
boolean sufficient = amount <= this.currentTemp;
this.currentTemp -= (amount < this.currentTemp ? amount : this.currentTemp);
return sufficient;
}
public boolean addTemp(double amount) {
boolean sufficient = amount <= this.currentTemp;
this.currentTemp += (amount < this.currentTemp ? amount : this.currentTemp);
return sufficient;
}
public double getTemp() {
return this.currentTemp;
}