-
Notifications
You must be signed in to change notification settings - Fork 0
DotNet.Ships.Class.Power
EliteDangerousAlmanac / Ships / Power
Defined in: dotnet/src/EliteDangerousAlmanac/Ships/Power.cs:125
What the power plant makes, what the build draws, and which priority groups stay lit when it draws more than the plant makes.
The model is the game's own. Every powered module draws its megawatts continuously, except the ones bolted to a hardpoint. Weapons and most utility fittings only draw while the hardpoints are deployed, which is why a build has two totals. Each module sits in one of five priority groups. When the draw goes over what the plant makes, the game keeps groups powered from group one down, and shuts off the first group whose running total would go over, and everything below it.
Reference implementation: EDCD/Coriolis, src/app/shipyard/Ship.js. The algorithm is ported as fact rather than as code. See ATTRIBUTIONS.md for credit and licence terms.
staticBudget(available,consumers):PowerBudget
Defined in: dotnet/src/EliteDangerousAlmanac/Ships/Power.cs:158
Works out a build's power budget: what the plant makes, what the modules draw retracted and deployed, and which priority groups survive.
double
The power the plant generates, in megawatts. It is zero when no plant is fitted, and every group then reads as unpowered.
IReadOnlyList<PowerConsumer>
The power consumers to include. A module switched off is left out of the totals, and the rest fall into their priority group.
The build's power budget.
A group that draws exactly the power available stays online, which matches the game. Only going over shuts anything down.
ArgumentNullException
consumers is null.
ArgumentOutOfRangeException
The available power, or a consumer's draw, is not a finite number of zero or more.
Guides
Astronomy
Classes (16)
Records (29)
- AbsoluteBoxel
- AtmosphereComponent
- BodyComposition
- BodyParent
- BodyProperties
- BodyRing
- BodyScanEvent
- BoxelCodexRegion
- BoxelLetters
- CodexRegion
- CodexRegionBounds
- DecodedSystemAddress
- GalacticPlanePosition
- GalacticPosition
- HandAuthoredRegion
- HandAuthoredSphere
- MassStabilityAssessment
- NamingRegionOrigin
- Nebula
- NebulaNearby
- OrbitExtents
- PermitLock
- PermitLockedSystem
- RingDynamics
- RocheLimits
- SectorGridPosition
- SpinOrbitResonance
- SurfaceMaterial
- SystemNameParts
Commodities
Classes (2)
Records (1)
Enumerations (1)
Equipment
Classes (8)
Records (19)
- FittedPersonalModification
- FittedPersonalWeapon
- PersonalEngineeringIngredient
- PersonalModification
- PersonalModifier
- PersonalMount
- PersonalTool
- PersonalWeapon
- PersonalWeaponGrade
- PersonalWeaponMetrics
- ReloadTime
- ScopeMagnification
- Suit
- SuitGrade
- SuitIdentity
- SuitLoadout
- SuitLoadoutEvent
- SuitLoadoutImportOutcome
- SuitLoadoutModuleEvent
Materials
Classes (5)
Records (2)
Enumerations (4)
Ships
Classes (42)
- Ammunition
- Armour
- BlueprintCatalogue
- BlueprintCosts
- BlueprintJournal
- BuildMetrics
- BuildSlots
- CalculationResult\<T\>
- CalculationResult
- DefaultLoadouts
- Distributor
- Engineering
- EngineeringOptions
- ExperimentalEffectCatalogue
- ExperimentalEffectCosts
- Gunsights
- Heat
- JumpRange
- LoadoutCalculations
- LoadoutEditException
- LoadoutValidator
- Mobility
- MobilityCapacitor
- ModuleCapabilities
- ModuleCatalogue
- ModuleLimits
- ModuleStats
- OutfittingFamilies
- Power
- PreEngineeredCatalogue
- PreEngineeredStats
- Resistances
- ShieldCapacitor
- ShieldRecovery
- Shields
- ShipCatalogue
- ShipLoadout
- Slef
- SlotRestrictions
- SourcePurchase
- Weapons
- WeaponsCapacitor
Records (115)
- AmmunitionCapacity
- ApplyBlueprintOptions
- ArmourInput
- ArmourMetrics
- AvailableBlueprint
- Blueprint
- BlueprintCost
- BlueprintFeature
- BlueprintGrade
- BuildCost
- BuildCredits
- BuildLoad
- BuildMass
- BuildSlot
- BuildWeaponMetrics
- BulkheadParams
- CalculationIssue
- CellBankInput
- CellBankMetrics
- CellBankSummary
- CoreSlots
- DamageComponents
- DamageDistribution
- DamageSplit
- DamageTypeValues
- DefaultLoadout
- DefaultLoadoutModule
- DistributorCapacitorMetrics
- DistributorInput
- DistributorMetrics
- DistributorPips
- EngineeringAmbiguous
- EngineeringEditDetail
- EngineeringGradeEdit
- EngineeringMaterial
- EngineeringModifier
- EngineeringOptionGroup
- EngineeringRerolled
- EngineeringUnresolved
- ExperimentalContribution
- ExperimentalEffect
- ExperimentalEffectEdit
- FittedModule
- FittedWeaponMetrics
- FixedMountRepair
- FrameShiftDriveParams
- GunsightOffset
- GunsightPoint
- HardpointSlotSpec
- HeatInput
- HeatMetrics
- HeatState
- HeatWeapon
- HullReinforcementParams
- JumpRangeSummary
- LoadoutCalculationModule
- LoadoutEvent
- LoadoutExportOptions
- LoadoutFuelCapacity
- LoadoutImportOutcome
- LoadoutIssue
- LoadoutMass
- LoadoutModule
- LoadoutSlot
- LoadoutValidation
- LoadoutValidationInput
- MobilityCapacitorMetrics
- MobilityInput
- MobilityMetrics
- ModuleDefaulted
- ModuleEmptied
- ModuleEngineering
- ModuleFitProblem
- ModuleLimitEntry
- ModuleLimitIncrease
- ModuleLimitUsage
- ModuleReinforcementParams
- OptionalSlotSpec
- OutfittingModule
- ParsedSlot
- PowerBand
- PowerBudget
- PowerConsumer
- PowerConsumerResult
- PreEngineeredModifier
- PreEngineeredVariant
- ProjectileRangeBoundaries
- ShieldBoosterParams
- ShieldCapacitorInput
- ShieldCapacitorMetrics
- ShieldGeneratorParams
- ShieldInput
- ShieldMetrics
- ShieldRecoveryInput
- ShieldRecoveryMetrics
- Ship
- ShipSlots
- SlefDiagnostic
- SlefEntry
- SlefExportOptions
- SlefHeader
- SlefInspection
- SourceModuleValue
- SourcePurchaseRecord
- StandardLoadFigures
- ThrusterCurveParams
- ThrusterParams
- TotalRangeDetails
- UnpricedModule
- ValidationModule
- WeaponMetrics
- WeaponsCapacitorInput
- WeaponsCapacitorMetrics
- WeaponStats
- WeaponTotals
Interfaces (1)
Enumerations (35)
- BlueprintRoute
- CalculationField
- CalculationIssueReason
- CoreSlotType
- DamageType
- EngineeringEditCode
- EngineeringEditKind
- EngineeringGroupId
- FixedMountRepairStatus
- ImmovableReason
- LoadoutCredits
- LoadoutEditErrorCode
- LoadoutImportAction
- LoadoutIssueCode
- LoadoutIssueSeverity
- LoadoutModuleOrder
- ModifierMethod
- ModuleCategory
- ModuleExclusionGroup
- ModuleFitConstraint
- ModuleGuidance
- ModuleLimitGroup
- ModuleMount
- ModuleRating
- ModuleSlot
- ModuleStat
- OutfittingFamilyId
- PreEngineeredAcquisition
- ShipSize
- SlefConstraint
- SlefDiagnosticCode
- SlotKind
- SlotRestriction
- StandardLoad
- ThrusterLoad