DotNet.Materials.Class.MaterialCatalogue - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki
EliteDangerousAlmanac / Materials / MaterialCatalogue
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:34
The engineering-material catalogues and the lookups that search them.
Elite Dangerous groups its engineering materials into three categories — raw, manufactured and encoded — and every material carries a MaterialGrade and sits in a MaterialLine.
Every lookup searches All by default. The by-key lookups take an optional second argument that narrows the search to a subset — one category's catalogue, or a list you filtered yourself. Passing All, or omitting the argument, answers from an index; every other list is scanned.
A catalogue loads from its shared data file on first use. The lists and the records in them are immutable, so one caller cannot change another caller's answers.
The data originates from EDCD FDevIDs, with Thargoid materials absent from that pinned source supplied by INARA. See data/materials/SOURCES.md for provenance and ATTRIBUTIONS.md for credit.
staticAll:IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:73
Every material across every category: raw, then manufactured, then encoded.
staticEncoded:IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:68
Every encoded material, in six lines of five grades.
Every record has MaterialCategory.Encoded.
staticManufactured:IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:64
Every manufactured material, in ten lines of five grades.
Every record has MaterialCategory.Manufactured.
staticRaw:IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:60
Every raw material — the chemical elements, in seven lines of four grades.
Every record has MaterialCategory.Raw.
staticByGrade(grade):IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:127
Every material of one grade, across all three categories.
The grade to match. A grade no material carries matches nothing.
IReadOnlyList<Material>
The matches, in catalogue order.
staticFindByElementSymbol(elementSymbol,materials?):Material?
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:119
Finds a raw material by its chemical element symbol.
string?
The element symbol, such as Fe. Leading and trailing whitespace and case are ignored.
IReadOnlyList<Material>? = null
The subset to search. Omit it to search every material.
The material, or null. Only raw materials carry an element symbol, so a manufactured or encoded subset never matches.
staticFindByName(name,materials?):Material?
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:104
Finds a material by its display name.
string?
The display name as the catalogue spells it, such as Grid Resistors. Leading and trailing whitespace and case are ignored.
IReadOnlyList<Material>? = null
The subset to search. Omit it to search every material.
The material, or null when no material has that name.
staticFindBySymbol(symbol,materials?):Material?
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:92
Finds a material by its Frontier symbol, the id the player journal reports.
string?
The internal symbol, such as GridResistors, or the lower-cased form the player journal reports. Leading and trailing whitespace and case are ignored.
IReadOnlyList<Material>? = null
The subset to search. Omit it to search every material, which is also the only indexed path.
The material, or null when no material has that symbol.
MaterialCatalogue.FindBySymbol("temperedalloys")?.Name; // "Tempered Alloys"
staticInCategory(category):IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:166
Every material in one category, in catalogue order.
The category to match.
IReadOnlyList<Material>
The category's own catalogue.
staticInCategory(category):IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:181
Every material in one category, named as the data files spell it.
string?
The category name: raw, manufactured or encoded.
IReadOnlyList<Material>
The matches, or an empty list when no category has that name.
The same answer as the MaterialCategory overload, reached from a string. Leading and trailing whitespace and case are ignored.
staticInLine(line):IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:141
Every material in one line, in catalogue order.
The line to match.
IReadOnlyList<Material>
The matches, in catalogue order.
staticInLine(line):IReadOnlyList<Material>
Defined in: dotnet/src/EliteDangerousAlmanac/Materials/MaterialCatalogue.cs:160
Every material in one line, named as the game spells it.
string?
The line name, such as Mechanical Components.
IReadOnlyList<Material>
The matches, or an empty list when no line has that name.
The same answer as the MaterialLine overload, reached from a string — which is what you have when the line came from a dropdown or a saved filter. Leading and trailing whitespace and case are ignored.