package net.minecraftforge.common.util;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.WorldSavedData;
public class WorldCapabilityData extends WorldSavedData
{
public static final String ID = "capabilities";
private INBTSerializable<NBTTagCompound> serializable;
private NBTTagCompound capNBT = null;
public WorldCapabilityData(String name)
{
super(name);
}
public WorldCapabilityData(INBTSerializable<NBTTagCompound> serializable)
{
super(ID);
this.serializable = serializable;
}
@Override
public void readFromNBT(NBTTagCompound nbt)
{
this.capNBT = nbt;
if (serializable != null)
{
serializable.deserializeNBT(this.capNBT);
this.capNBT = null;
}
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbt)
{
if (serializable != null)
nbt = serializable.serializeNBT();
return nbt;
}
@Override
public boolean isDirty()
{
return true;
}
public void setCapabilities(WorldProvider provider, INBTSerializable<NBTTagCompound> capabilities)
{
this.serializable = capabilities;
if (this.capNBT != null && serializable != null)
{
serializable.deserializeNBT(this.capNBT);
this.capNBT = null;
}
}
}