public void Write(AssetWriter writer)
 {
     for (int i = 0; i < Fields.Length; i++)
     {
         SerializableType.Field etalon = Type.GetField(i);
         if (IsAvailable(etalon))
         {
             Fields[i].Write(writer, etalon);
         }
     }
 }
 public void Read(AssetReader reader)
 {
     for (int i = 0; i < Fields.Length; i++)
     {
         SerializableType.Field etalon = Type.GetField(i);
         if (IsAvailable(etalon))
         {
             Fields[i].Read(reader, Depth, etalon);
         }
     }
 }
 public IEnumerable <PPtr <Object> > FetchDependencies(DependencyContext context)
 {
     for (int i = 0; i < Fields.Length; i++)
     {
         SerializableType.Field etalon = Type.GetField(i);
         if (IsAvailable(etalon))
         {
             foreach (PPtr <Object> asset in Fields[i].FetchDependencies(context, etalon))
             {
                 yield return(asset);
             }
         }
     }
 }
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            for (int i = 0; i < Fields.Length; i++)
            {
                SerializableType.Field etalon = Type.GetField(i);
                if (IsAvailable(etalon))
                {
                    node.Add(etalon.Name, Fields[i].ExportYAML(container, etalon));
                }
            }
            return(node);
        }