@Override
 public void writeToNBT(NBTTagCompound compound) {
   super.writeToNBT(compound);
   // LogHelper.debugInfo("write mode = " + mode.getID());
   compound.setInteger("mode", mode.getID());
   if (stack != null) compound.setTag("item", stack.serializeNBT());
 }
  @Override
  public void readFromNBT(NBTTagCompound compound) {
    super.readFromNBT(compound);
    // LogHelper.debugInfo("read mode = " + ModeProximityTrigger.get(compound.getInteger("mode")));
    mode = ModeProximityTrigger.get(compound.getInteger("mode"));

    if (compound.hasKey("item"))
      stack = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("item"));
  }