Skip to content

DotNet.Astronomy.Class.ProceduralSystem

github-actions[bot] edited this page Sep 20, 2026 · 11 revisions

EliteDangerousAlmanac / Astronomy / ProceduralSystem

Class: ProceduralSystem

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:31

One system the generator named, read from its name or its address.

Remarks

This is a value over the calculations beside it. Build one from a name or an address, and read the name, the naming region, the mass code, the position and both addresses back. A caller that wants one calculation reaches for that calculation instead. The algorithms are not here. What is here is what holds them together, which includes giving a system inside a region the game names by hand that region's name.

A system is immutable, and the address is worked out while it is built, so reading one back never fails. The modulated address is absent where the narrower field of that layout has no room for the system's own number.

A system the game named outright, such as Sol, is not one of these. It carries no procedural name, and no calculation reaches its address.

Read the codex region of a system by handing its address to CodexRegionMap.FindForBoxel, which is kept apart from this so a caller that wants a name does not read the region grid.

Properties

MassCode

MassCode: char

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:73

The mass-code letter, a through h.

ModulatedSystemAddress

ModulatedSystemAddress: ulong?

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:93

The system's address in the modulated layout, or null where that layout has no room for the system's own number.

Name

Name: string

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:63

The system name as the game writes it.

NamingRegionName

NamingRegionName: string

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:70

The region name: a sector the generator names, or, where the system sits inside a region the game names by hand, that region.

Remarks

UsesHandAuthoredRegion tells which of the two it is.

Parts

Parts: SystemNameParts

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:84

The parts the name is written from.

Remarks

The letters and the mass code are held as counts, which is the form the address maths reads. Take Name and MassCode for the written forms.

Position

Position: GalacticPosition?

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:102

The position in light years, with Sol at the origin, where one is known.

Remarks

This is the position that was handed over, and nothing else. Neither a name nor an address carries an exact position, so a system built from either alone states none. CodexRegionMap.FindForBoxel reads a position from an address that is true to one boxel edge.

RequiresRegionPermit

RequiresRegionPermit: bool

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:60

Whether the system's region asks a commander for a permit.

Remarks

This reads the region alone. A system that asks for a permit of its own carries a name the game wrote, so it never reaches this class. PermitLocks reads both kinds from a name.

Sequence

Sequence: long

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:76

The system's own number inside its boxel.

SystemAddress

SystemAddress: ulong

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:87

The system's 64-bit address.

UsesHandAuthoredRegion

UsesHandAuthoredRegion: bool

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:52

Whether the name reads a region the game names by hand, and not a sector.

Methods

FromModulatedSystemAddress()

static FromModulatedSystemAddress(id64, position?): ProceduralSystem

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:179

Builds a system from its address in the modulated layout.

Parameters

id64

ulong

The modulated system address.

position

GalacticPosition? = null

The position in light years, with Sol at the origin, which names a region the game names by hand.

Returns

ProceduralSystem

The system at that address.

Exceptions

ArgumentOutOfRangeException

The grid position carries no procedural name, or the system's own number has no room in the usual layout that every system here carries.

FromName()

static FromName(name): ProceduralSystem?

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:121

Builds a system from a procedural name.

Parameters

name

string

The name in any casing, with any surrounding whitespace.

Returns

ProceduralSystem?

The system, or null where the name is not one the generator writes. A system the game named outright answers null too, because no address follows from such a name.

Remarks

A region is re-cased where a sector or the catalogue answers to it. A name that cannot be written as an address is refused here, rather than building a system whose address fails to be read later.

Exceptions

ArgumentNullException

The name is absent.

ArgumentOutOfRangeException

The name reads cleanly, and no region answers to it, or a field of it has no room in the address layout.

FromSystemAddress()

static FromSystemAddress(id64, position?): ProceduralSystem

Defined in: dotnet/src/EliteDangerousAlmanac/Astronomy/ProceduralSystem.cs:165

Builds a system from its 64-bit address.

Parameters

id64

ulong

The system address, as a journal event reports it.

position

GalacticPosition? = null

The position in light years, with Sol at the origin. It is what gives a system inside a region the game names by hand the name the game shows.

Returns

ProceduralSystem

The system at that address.

Remarks

Hand over the position wherever one is at hand. An address states the boxel and not the place, so it alone cannot tell whether the system falls inside a region the game names by hand. Without it, such a system quietly carries its procedural name.

Exceptions

ArgumentOutOfRangeException

The grid position the address states carries no procedural name.

.NET

Guides
Astronomy
Classes (16)
Records (29)
Enumerations (6)
Commodities
Classes (2)
Records (1)
Enumerations (1)
Equipment
Classes (8)
Records (19)
Enumerations (8)
GalaxyMap
Classes (1)
Records (1)
Localization
Classes (2)
Enumerations (1)
Materials
Classes (5)
Records (2)
Enumerations (4)
Ships
Classes (42)
Records (115)
Interfaces (1)
Enumerations (35)

Clone this wiki locally