@Override
  protected void writeData(final ByteBuf stream) {
    // Write the workbench
    ThEBasePacket.writeTileEntity(this.workbench, stream);

    switch (this.mode) {
      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_ADD_ASPECT:
      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_REMOVE_ASPECT:
        // Write the aspect
        ThEBasePacket.writeAspect(this.arAspect, stream);
        break;

      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_REPLACE_ASPECT:
        // Write the original aspect
        ThEBasePacket.writeAspect(this.arAspect, stream);

        // Write the replacement aspect
        ThEBasePacket.writeAspect(this.replaceAspect, stream);
        break;
    }
  }
  @Override
  protected void readData(final ByteBuf stream) {
    // Read the workbench
    this.workbench = (TileEssentiaCellWorkbench) ThEBasePacket.readTileEntity(stream);

    switch (this.mode) {
      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_ADD_ASPECT:
      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_REMOVE_ASPECT:
        // Read the aspect
        this.arAspect = ThEBasePacket.readAspect(stream);
        break;

      case Packet_S_EssentiaCellWorkbench.MODE_REQUEST_REPLACE_ASPECT:
        // Read the original aspect
        this.arAspect = ThEBasePacket.readAspect(stream);

        // Read the replacement aspect
        this.replaceAspect = ThEBasePacket.readAspect(stream);
        break;
    }
  }