/// <summary>
        /// Send the TagCompound in binary over the network to the client, make thing easier
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="lightSend"></param>
        public sealed override void NetSend(BinaryWriter writer, bool lightSend)
        {
            MemoryStream stream = new MemoryStream(65536);

            EnergyContainer.WriteTagCompound(tag);
            TagIO.ToStream(tag, stream, true);
            writer.Write((ushort)stream.Length);
            writer.Write(stream.ToArray());
        }
        /// <summary>
        /// The client receive the tag compound from the server and sync it
        /// </summary>
        /// <param name="trueReader"></param>
        /// <param name="lightReceive"></param>
        public sealed override void NetReceive(BinaryReader trueReader, bool lightReceive)
        {
            int          len    = trueReader.ReadUInt16();
            MemoryStream stream = new MemoryStream(trueReader.ReadBytes(len));

            tag = TagIO.FromStream(stream, true);
            ErrorLogger.Log(tag.Count);
            EnergyContainer.ReadTagCompound(tag);
        }
 public TileEntityEnergyHandler(long capacity, long maxTransfer, long maxReceive)
 {
     tag = new TagCompound();
     _energyContainer = new EnergyContainer(capacity, maxTransfer, maxReceive);
 }