public override unsafe void WriteTo(ref byte *Buffer)
        {
            base.WriteTo(ref Buffer);

            ObjectID.WriteTo(ref Buffer);

            *((ushort *)Buffer) = (ushort)ContentObjects.Length;
            Buffer += TypeSizes.SHORT;

            foreach (ObjectBase obj in ContentObjects)
            {
                obj.WriteTo(ref Buffer);
            }
        }
        public override int WriteTo(byte[] Buffer, int StartIndex = 0)
        {
            int cursor = StartIndex;

            cursor += base.WriteTo(Buffer, cursor);

            cursor += ObjectID.WriteTo(Buffer, cursor);

            Array.Copy(BitConverter.GetBytes(Convert.ToUInt16(ContentObjects.Length)), 0, Buffer, cursor, TypeSizes.SHORT);
            cursor += TypeSizes.SHORT;

            foreach (ObjectBase inventoryObject in ContentObjects)
            {
                cursor += inventoryObject.WriteTo(Buffer, cursor);
            }

            return(cursor - StartIndex);
        }