DotNet.Ships.Class.EngineeringOptions - Elite-Dangerous-Almanac/Almanac-Core GitHub Wiki

EliteDangerousAlmanac / Ships / EngineeringOptions

Class: EngineeringOptions

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:44

The ordinary engineering options: which blueprints and experimental effects appear in a stock module's ordinary engineering menu.

Remarks

Availability is a property of the module, not of the blueprint. A Pulse Laser accepts the Efficient blueprint and a Rail Gun does not, and the two offer different experimental effects even where their blueprints overlap. So modules are grouped, and each group lists what it offers.

A group is one menu. Where the same kind of module comes in two flavours with different menus, they are two groups: a Guardian power plant takes only Anti-Guardian Zone Resistance and an ordinary one takes only the ordinary recipes. The Guardian half of each pair takes no experimental effect, because Anti-Guardian Zone Resistance is the whole menu and it has no experimental slot.

A stock module with no ordinary menu is absent. A few of those still keep a Mercenary upgrade route through their bespoke recipes, which no menu lists.

Properties

Groups

static Groups: IReadOnlyDictionary<EngineeringGroupId, EngineeringOptionGroup>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:49

Every module group that can be engineered, keyed by its group identifier.

Methods

BlueprintsFor()

static BlueprintsFor(symbol): IReadOnlyList<string>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:82

Every blueprint in a stock module's ordinary engineering menu.

Parameters

symbol

string?

A module symbol. Whitespace and case are ignored.

Returns

IReadOnlyList<string>

The blueprint identifiers, sorted. A module this catalogue does not group answers an empty list rather than null, so the result is always safe to iterate.

Remarks

Where a modification applies to several module families the game writes a family-specific identifier, and BlueprintCatalogue carries both that and the generic spelling. The family-specific identifier is the one listed, so compare identifiers with that in mind: the two are the same recipe. The three colliding journal spellings are not such pairs, and BlueprintJournal settles them.

ExperimentalsFor()

static ExperimentalsFor(symbol): IReadOnlyList<string>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:101

Every experimental effect in a stock module's ordinary menu: its group's list, less the effects that particular module is excluded from.

Parameters

symbol

string?

A module symbol. Whitespace and case are ignored.

Returns

IReadOnlyList<string>

The experimental-effect identifiers this module accepts.

Remarks

Most modules take their whole group's list, but some are exceptions: most multi-cannons cannot take Phasing Sequence, and dumbfire racks cannot take Drag Munitions. An empty list is the common answer, and it usually means "blueprints only": whole groups offer no experimental effect at all. An ungrouped module answers empty too, and GroupFor tells the two apart.

ExperimentalsForBlueprint()

static ExperimentalsForBlueprint(blueprintSymbol): IReadOnlyList<string>

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:135

Every experimental effect that can be paired with a blueprint, across all the module groups that accept it.

Parameters

blueprintSymbol

string?

A blueprint identifier, such as Weapon_Efficient. Whitespace and case are ignored.

Returns

IReadOnlyList<string>

The experimental-effect identifiers, sorted and without duplicates. It is empty when no group names the blueprint, and when its groups take no experimental effect.

Remarks

Because availability is per module, this is the union: engineering a Rail Gun with Long Range does not offer every effect listed here, only its own group's. Use ExperimentalsFor once you know the module, which is the exact answer.

GroupFor()

static GroupFor(symbol): EngineeringGroupId?

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/EngineeringOptions.cs:62

The group a module is engineered as.

Parameters

symbol

string?

A module symbol, such as Hpt_BeamLaser_Fixed_Small. Leading and trailing whitespace and case are ignored.

Returns

EngineeringGroupId?

The group identifier, or null when this catalogue does not group the module. That answer means the stock module has no ordinary engineering menu, which for nearly every ungrouped module is the same as having no engineering route at all.

⚠️ **GitHub.com Fallback** ⚠️