Пример #1
0
        void IBinarySerializable.Read(EndianBinaryReader reader, object context)
        {
            Type = ( FieldObjectResourceType )reader.ReadInt32();
            var count = reader.ReadInt32();

            reader.ReadOffset(() =>
            {
                for (int i = 0; i < count; i++)
                {
                    Add(reader.ReadObject <FieldObject>());
                }
            });
        }
Пример #2
0
        public FieldObjectList(IEnumerable <FieldObject> objects)
        {
            mList = new List <FieldObject>();

            var typeKnown = false;

            foreach (var fieldObject in objects)
            {
                if (!typeKnown)
                {
                    Type      = fieldObject.ResourceType;
                    typeKnown = true;
                }
                else if (Type != fieldObject.ResourceType)
                {
                    throw new InvalidOperationException($"{nameof( FieldObjectList )} only supports a list of field objects of the same type");
                }

                Add(fieldObject);
            }
        }