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>()); } }); }
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); } }