// Path: src/com/jaquadro/minecraft/chameleon/block/tiledata/LockableData.java
// public class LockableData extends TileDataShim
// {
//     private LockCode code = LockCode.EMPTY_CODE;
// 
//     @Override
//     public void readFromNBT (NBTTagCompound tag) {
//         code = LockCode.fromNBT(tag);
//     }
// 
//     @Override
//     public NBTTagCompound writeToNBT (NBTTagCompound tag) {
//         if (code != null)
//             code.toNBT(tag);
// 
//         return tag;
//     }
// 
//     public boolean isLocked ()
//     {
//         return this.code != null && !this.code.isEmpty();
//     }
// 
//     public LockCode getLockCode ()
//     {
//         return this.code;
//     }
// 
//     public void setLockCode (LockCode code)
//     {
//         this.code = code;
//     }
// }
// 
// Path: src/com/jaquadro/minecraft/chameleon/block/tiledata/TileDataShim.java
// public abstract class TileDataShim implements INBTSerializable<NBTTagCompound>
// {
//     public abstract void readFromNBT (NBTTagCompound tag);
// 
//     public abstract NBTTagCompound writeToNBT (NBTTagCompound tag);
// 
//     @Override
//     public NBTTagCompound serializeNBT () {
//         NBTTagCompound tag = new NBTTagCompound();
//         return writeToNBT(tag);
//     }
// 
//     @Override
//     public void deserializeNBT (NBTTagCompound nbt) {
//         readFromNBT(nbt);
//     }
// }


import com.jaquadro.minecraft.chameleon.block.tiledata.LockableData;
import com.jaquadro.minecraft.chameleon.block.tiledata.TileDataShim;
import net.minecraft.world.ILockableContainer;
import net.minecraft.world.LockCode;
package com.jaquadro.minecraft.chameleon.block;


public abstract class ChamLockableTileEntity extends ChamInvTileEntity implements ILockableContainer
{
    private LockableData lockableData;

    @Override
    public void injectData (TileDataShim shim) {
        super.injectData(shim);
        if (shim instanceof LockableData)
// Path: src/com/jaquadro/minecraft/chameleon/block/tiledata/LockableData.java
// public class LockableData extends TileDataShim
// {
//     private LockCode code = LockCode.EMPTY_CODE;
// 
//     @Override
//     public void readFromNBT (NBTTagCompound tag) {
//         code = LockCode.fromNBT(tag);
//     }
// 
//     @Override
//     public NBTTagCompound writeToNBT (NBTTagCompound tag) {
//         if (code != null)
//             code.toNBT(tag);
// 
//         return tag;
//     }
// 
//     public boolean isLocked ()
//     {
//         return this.code != null && !this.code.isEmpty();
//     }
// 
//     public LockCode getLockCode ()
//     {
//         return this.code;
//     }
// 
//     public void setLockCode (LockCode code)
//     {
//         this.code = code;
//     }
// }
// 
// Path: src/com/jaquadro/minecraft/chameleon/block/tiledata/TileDataShim.java
// public abstract class TileDataShim implements INBTSerializable<NBTTagCompound>
// {
//     public abstract void readFromNBT (NBTTagCompound tag);
// 
//     public abstract NBTTagCompound writeToNBT (NBTTagCompound tag);
// 
//     @Override
//     public NBTTagCompound serializeNBT () {
//         NBTTagCompound tag = new NBTTagCompound();
//         return writeToNBT(tag);
//     }
// 
//     @Override
//     public void deserializeNBT (NBTTagCompound nbt) {
//         readFromNBT(nbt);
//     }
// }


// Path: src/com/jaquadro/minecraft/chameleon/block/ChamLockableTileEntity.java
import com.jaquadro.minecraft.chameleon.block.tiledata.LockableData;
import com.jaquadro.minecraft.chameleon.block.tiledata.TileDataShim;
import net.minecraft.world.ILockableContainer;
import net.minecraft.world.LockCode;

package com.jaquadro.minecraft.chameleon.block;


public abstract class ChamLockableTileEntity extends ChamInvTileEntity implements ILockableContainer
{
    private LockableData lockableData;

    @Override
    public void injectData (TileDataShim shim) {
        super.injectData(shim);
        if (shim instanceof LockableData)
            lockableData = (LockableData)shim;