50 lines
1.2 KiB
Java
Executable file
50 lines
1.2 KiB
Java
Executable file
package game.tileentity;
|
|
|
|
import game.nbt.NBTTagCompound;
|
|
|
|
public abstract class TileEntityLockable extends TileEntity implements IInteractionObject, ILockableContainer
|
|
{
|
|
private LockCode code = LockCode.EMPTY_CODE;
|
|
|
|
public void readFromNBT(NBTTagCompound compound)
|
|
{
|
|
super.readFromNBT(compound);
|
|
this.code = LockCode.fromNBT(compound);
|
|
}
|
|
|
|
public void writeToNBT(NBTTagCompound compound)
|
|
{
|
|
super.writeToNBT(compound);
|
|
|
|
if (this.code != null)
|
|
{
|
|
this.code.toNBT(compound);
|
|
}
|
|
}
|
|
|
|
public boolean isLocked()
|
|
{
|
|
return this.code != null && !this.code.isEmpty();
|
|
}
|
|
|
|
public LockCode getLockCode()
|
|
{
|
|
return this.code;
|
|
}
|
|
|
|
public void setLockCode(LockCode code)
|
|
{
|
|
this.code = code;
|
|
}
|
|
|
|
public abstract String getName();
|
|
public abstract boolean hasCustomName();
|
|
|
|
/**
|
|
* Get the formatted ChatComponent that will be used for the sender's username in chat
|
|
*/
|
|
public String getCommandName()
|
|
{
|
|
return this.getName(); // (TextComponent)(this.hasCustomName() ? new TextComponent(this.getName()) : new TextComponent(this.getName()));
|
|
}
|
|
}
|