using AssetRipper.DocExtraction.DataStructures; namespace AssetRipper.AssemblyDumper.Documentation; internal static partial class InterfaceDocumenter { public static void AddInterfaceDocumentation(ClassGroupBase group) { AddDocumentationFromHistory(group); AddInterfaceTypeDocumentation(group); AddInterfacePropertyDocumentation(group); } private static void AddDocumentationFromHistory(ClassGroupBase group) { if (group.History is not null) { VersionedListDocumenter.AddSet(group.Interface, group.History.NativeName, "Native Name: "); VersionedListDocumenter.AddSet(group.Interface, group.History.DocumentationString, "Summary: "); VersionedListDocumenter.AddList(group.Interface, group.History.ObsoleteMessage, "Obsolete Message: "); } foreach (InterfaceProperty interfaceProperty in group.InterfaceProperties) { if (interfaceProperty.History is not null) { AddPropertyDocumentationFromHistory(interfaceProperty.Definition, interfaceProperty.History); if (interfaceProperty.SpecialDefinition is not null) { AddPropertyDocumentationFromHistory(interfaceProperty.SpecialDefinition, interfaceProperty.History); } } if (interfaceProperty.SpecialDefinition is not null) { if (interfaceProperty.HasEnumVariant) { DocumentationHandler.AddPropertyDefinitionLine(interfaceProperty.Definition, "Enum variant available."); } else { DocumentationHandler.AddPropertyDefinitionLine(interfaceProperty.Definition, "PPtr variant available."); } } } } private static void AddPropertyDocumentationFromHistory(PropertyDefinition property, DataMemberHistory history) { VersionedListDocumenter.AddSet(property, history.NativeName, "Native Name: "); VersionedListDocumenter.AddList(property, history.TypeFullName, "Managed Type: "); VersionedListDocumenter.AddSet(property, history.DocumentationString, "Summary: "); VersionedListDocumenter.AddList(property, history.ObsoleteMessage, "Obsolete Message: "); } }