@elite-dangerous-almanac/core 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/PROVENANCE/astro/SOURCES.md +13 -12
- package/PROVENANCE/commodities/SOURCES.md +50 -6
- package/PROVENANCE/equipment/SOURCES.md +229 -29
- package/PROVENANCE/i18n/SOURCES.md +328 -73
- package/PROVENANCE/ships/SOURCES.md +352 -216
- package/README.md +30 -7
- package/THIRD_PARTY_NOTICES.md +12 -1
- package/dist/astro/body-rings.d.ts +2 -2
- package/dist/astro/codex-region-lookup.d.ts +1 -1
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/hand-authored-regions.d.ts +1 -1
- package/dist/astro/index.d.ts +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/naming-region-origins.d.ts +1 -1
- package/dist/astro/naming-region-origins.js +1 -1
- package/dist/astro/nebulae-all.d.ts +4 -6
- package/dist/astro/nebulae-all.js +1 -1
- package/dist/astro/nebulae-all.js.map +1 -1
- package/dist/astro/nebulae-planetary.d.ts +4 -5
- package/dist/astro/nebulae-planetary.js +1 -1
- package/dist/astro/nebulae-procgen.d.ts +3 -3
- package/dist/astro/nebulae-real.d.ts +3 -3
- package/dist/astro/nebulae.d.ts +8 -8
- package/dist/astro/permit-locked-regions.d.ts +2 -2
- package/dist/astro/permit-locked-systems.d.ts +1 -1
- package/dist/astro/permit-locks.d.ts +2 -2
- package/dist/astro/procedural-system.d.ts +3 -3
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/system-address.d.ts +1 -1
- package/dist/astro/system-address.js +1 -1
- package/dist/astro/system-name.js +1 -1
- package/dist/{chunk-XSLPWM5N.js → chunk-2J6NNI3Y.js} +1 -1
- package/dist/{chunk-DWRNXUAX.js → chunk-2KIZN3BY.js} +1 -1
- package/dist/{chunk-J7BM5NGK.js → chunk-2TY42PTF.js} +1 -1
- package/dist/{chunk-MVBVXK3G.js → chunk-3GNYPM6J.js} +1 -1
- package/dist/{chunk-MVBVXK3G.js.map → chunk-3GNYPM6J.js.map} +1 -1
- package/dist/{chunk-773VO2GK.js → chunk-4T3TTYUT.js} +1 -1
- package/dist/{chunk-773VO2GK.js.map → chunk-4T3TTYUT.js.map} +1 -1
- package/dist/chunk-7C7NJWCF.js +1 -0
- package/dist/chunk-7C7NJWCF.js.map +1 -0
- package/dist/{chunk-FMA36V6A.js → chunk-7Y5EK2VO.js} +1 -1
- package/dist/{chunk-FMA36V6A.js.map → chunk-7Y5EK2VO.js.map} +1 -1
- package/dist/chunk-AC3U7LRK.js +1 -0
- package/dist/{chunk-MGRDB2BZ.js.map → chunk-AC3U7LRK.js.map} +1 -1
- package/dist/{chunk-BJU27V6C.js → chunk-AUBV6S7V.js} +1 -1
- package/dist/{chunk-BJU27V6C.js.map → chunk-AUBV6S7V.js.map} +1 -1
- package/dist/{chunk-DI5RXSJR.js → chunk-BVLBS2QY.js} +1 -1
- package/dist/{chunk-DI5RXSJR.js.map → chunk-BVLBS2QY.js.map} +1 -1
- package/dist/chunk-C3YZ5KTA.js +1 -0
- package/dist/chunk-C3YZ5KTA.js.map +1 -0
- package/dist/{chunk-6UNAD74Z.js → chunk-C4FUV6GF.js} +1 -1
- package/dist/{chunk-6UNAD74Z.js.map → chunk-C4FUV6GF.js.map} +1 -1
- package/dist/chunk-CEF7SMB2.js +1 -0
- package/dist/chunk-CEF7SMB2.js.map +1 -0
- package/dist/chunk-E2HDF6PJ.js +1 -0
- package/dist/chunk-E2HDF6PJ.js.map +1 -0
- package/dist/{chunk-OFZGNWBT.js → chunk-ETREYN5U.js} +1 -1
- package/dist/{chunk-OFZGNWBT.js.map → chunk-ETREYN5U.js.map} +1 -1
- package/dist/{chunk-KBCA4GEZ.js → chunk-FP2TQJZP.js} +1 -1
- package/dist/{chunk-F7VWRDSL.js → chunk-G7WARJ3X.js} +1 -1
- package/dist/chunk-G7WARJ3X.js.map +1 -0
- package/dist/{chunk-Z4OUB4SJ.js → chunk-GLTCCDN5.js} +1 -1
- package/dist/{chunk-Z4OUB4SJ.js.map → chunk-GLTCCDN5.js.map} +1 -1
- package/dist/chunk-GVNTKCVF.js +1 -0
- package/dist/chunk-GVNTKCVF.js.map +1 -0
- package/dist/{chunk-Q6YDPREF.js → chunk-GZLD7RTK.js} +1 -1
- package/dist/{chunk-Q6YDPREF.js.map → chunk-GZLD7RTK.js.map} +1 -1
- package/dist/chunk-HIJR7DOC.js +1 -0
- package/dist/chunk-HIJR7DOC.js.map +1 -0
- package/dist/{chunk-ETWMPMZP.js → chunk-K5JK3XQB.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js → chunk-KY7KSPU6.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js.map → chunk-KY7KSPU6.js.map} +1 -1
- package/dist/{chunk-EHFHRQEP.js → chunk-M4STXLXO.js} +1 -1
- package/dist/{chunk-EHFHRQEP.js.map → chunk-M4STXLXO.js.map} +1 -1
- package/dist/{chunk-NZXSIHAW.js → chunk-OSMBAFRW.js} +1 -1
- package/dist/{chunk-NZXSIHAW.js.map → chunk-OSMBAFRW.js.map} +1 -1
- package/dist/chunk-PIU24HRN.js +1 -0
- package/dist/chunk-PIU24HRN.js.map +1 -0
- package/dist/{chunk-ELT3FEA4.js → chunk-PKKBYBL4.js} +1 -1
- package/dist/{chunk-ELT3FEA4.js.map → chunk-PKKBYBL4.js.map} +1 -1
- package/dist/{chunk-6HMIF2RJ.js → chunk-Q647OXON.js} +1 -1
- package/dist/{chunk-6HMIF2RJ.js.map → chunk-Q647OXON.js.map} +1 -1
- package/dist/{chunk-BMQM4JBL.js → chunk-QPT2WJYN.js} +1 -1
- package/dist/{chunk-BMQM4JBL.js.map → chunk-QPT2WJYN.js.map} +1 -1
- package/dist/{chunk-A6OINYNP.js → chunk-R2AEZYX7.js} +1 -1
- package/dist/chunk-RA4YJBU5.js +1 -0
- package/dist/chunk-RA4YJBU5.js.map +1 -0
- package/dist/{chunk-MRLUWHGI.js → chunk-RJ3ZLQRB.js} +1 -1
- package/dist/{chunk-MRLUWHGI.js.map → chunk-RJ3ZLQRB.js.map} +1 -1
- package/dist/chunk-SFEQXUIA.js +1 -0
- package/dist/chunk-SIL356HB.js +1 -0
- package/dist/chunk-SIL356HB.js.map +1 -0
- package/dist/chunk-SS7HVNP5.js +1 -0
- package/dist/chunk-SS7HVNP5.js.map +1 -0
- package/dist/chunk-TRGHPX2O.js +1 -0
- package/dist/chunk-TRGHPX2O.js.map +1 -0
- package/dist/{chunk-GMTAFUAG.js → chunk-TYRH73MO.js} +1 -1
- package/dist/{chunk-GMTAFUAG.js.map → chunk-TYRH73MO.js.map} +1 -1
- package/dist/{chunk-7TVFV3VO.js → chunk-U3IRMXMR.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js → chunk-U73MBQ45.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js.map → chunk-U73MBQ45.js.map} +1 -1
- package/dist/{chunk-IZIIGK3W.js → chunk-UE22QU7A.js} +1 -1
- package/dist/{chunk-IZIIGK3W.js.map → chunk-UE22QU7A.js.map} +1 -1
- package/dist/{chunk-DBDCOHI4.js → chunk-UI5RROGI.js} +1 -1
- package/dist/{chunk-DBDCOHI4.js.map → chunk-UI5RROGI.js.map} +1 -1
- package/dist/chunk-URRPEUIK.js +1 -0
- package/dist/{chunk-QJECDMQQ.js.map → chunk-URRPEUIK.js.map} +1 -1
- package/dist/chunk-UTWZZOSA.js +1 -0
- package/dist/chunk-UTWZZOSA.js.map +1 -0
- package/dist/{chunk-ZEN5K3GE.js → chunk-UVX7RCMP.js} +1 -1
- package/dist/{chunk-ZEN5K3GE.js.map → chunk-UVX7RCMP.js.map} +1 -1
- package/dist/{chunk-7ATBEOVC.js → chunk-WG4DPXJI.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js → chunk-WZIBBJHA.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js.map → chunk-WZIBBJHA.js.map} +1 -1
- package/dist/{chunk-7S7ZTZZY.js → chunk-X3MXPE7G.js} +1 -1
- package/dist/{chunk-7S7ZTZZY.js.map → chunk-X3MXPE7G.js.map} +1 -1
- package/dist/{chunk-SD6GNFDX.js → chunk-YBE5M27G.js} +1 -1
- package/dist/{chunk-SD6GNFDX.js.map → chunk-YBE5M27G.js.map} +1 -1
- package/dist/chunk-ZBUTGTZ3.js +1 -0
- package/dist/chunk-ZBUTGTZ3.js.map +1 -0
- package/dist/commodities/commodities-all.d.ts +2 -2
- package/dist/commodities/commodities-all.js +1 -1
- package/dist/commodities/commodities-rare.d.ts +3 -4
- package/dist/commodities/commodities-rare.js +1 -1
- package/dist/commodities/commodities-standard.d.ts +7 -7
- package/dist/commodities/commodities-standard.js +1 -1
- package/dist/commodities/commodities.d.ts +12 -12
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/engineering.d.ts +58 -1
- package/dist/equipment/engineering.js +1 -1
- package/dist/equipment/index.d.ts +14 -3
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.d.ts +43 -11
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.d.ts +2 -115
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/tools.d.ts +102 -0
- package/dist/equipment/tools.js +1 -0
- package/dist/equipment/tools.js.map +1 -0
- package/dist/equipment/upgrade-costs.d.ts +2 -3
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/weapons.d.ts +2 -121
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/blueprints.d.ts +2 -3
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/commodities.d.ts +36 -0
- package/dist/i18n/commodities.js +1 -0
- package/dist/i18n/commodities.js.map +1 -0
- package/dist/i18n/experimental-effect-descriptions.d.ts +5 -6
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.d.ts +2 -3
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +87 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.d.ts +2 -4
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.d.ts +2 -4
- package/dist/i18n/micro-resources.js +1 -1
- package/dist/i18n/module-families.d.ts +3 -5
- package/dist/i18n/module-families.js +1 -1
- package/dist/i18n/modules.d.ts +3 -6
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/personal-modifications.d.ts +66 -0
- package/dist/i18n/personal-modifications.js +1 -0
- package/dist/i18n/personal-modifications.js.map +1 -0
- package/dist/i18n/personal-tools.d.ts +33 -0
- package/dist/i18n/personal-tools.js +1 -0
- package/dist/i18n/personal-tools.js.map +1 -0
- package/dist/i18n/personal-weapons.d.ts +32 -0
- package/dist/i18n/personal-weapons.js +1 -0
- package/dist/i18n/personal-weapons.js.map +1 -0
- package/dist/i18n/pre-engineered.d.ts +1 -1
- package/dist/i18n/slots.d.ts +2 -2
- package/dist/i18n/suits.d.ts +89 -0
- package/dist/i18n/suits.js +1 -0
- package/dist/i18n/suits.js.map +1 -0
- package/dist/materials/index.d.ts +4 -3
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials-all.d.ts +2 -2
- package/dist/materials/materials-all.js +1 -1
- package/dist/materials/materials-raw.d.ts +3 -4
- package/dist/materials/materials-raw.js +1 -1
- package/dist/materials/materials.d.ts +18 -15
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.d.ts +2 -2
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources-component.d.ts +2 -2
- package/dist/materials/micro-resources-consumable.d.ts +2 -2
- package/dist/materials/micro-resources-data.d.ts +2 -2
- package/dist/materials/micro-resources-item.d.ts +2 -2
- package/dist/materials/micro-resources.d.ts +17 -14
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/ammunition.d.ts +4 -4
- package/dist/ships/blueprint-costs.d.ts +13 -13
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-journal.d.ts +3 -3
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/blueprints.d.ts +3 -3
- package/dist/ships/build-metrics.d.ts +2 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/default-loadouts.d.ts +2 -3
- package/dist/ships/default-loadouts.js +1 -1
- package/dist/ships/engineering-options.d.ts +29 -32
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/engineering.d.ts +1 -2
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/experimental-effect-costs.d.ts +1 -1
- package/dist/ships/gunsights.d.ts +3 -3
- package/dist/ships/heat.d.ts +1 -1
- package/dist/ships/index.d.ts +4 -5
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-validation.d.ts +8 -3
- package/dist/ships/loadout-validation.js +1 -1
- package/dist/ships/module-families.d.ts +1 -1
- package/dist/ships/modules-all.d.ts +2 -3
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.d.ts +3 -3
- package/dist/ships/modules-hardpoint.d.ts +4 -5
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.d.ts +19 -9
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +3 -4
- package/dist/ships/modules-utility.js +1 -1
- package/dist/ships/modules.d.ts +31 -25
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +1 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +9 -10
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/ship-loadout.d.ts +13 -7
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/ships.d.ts +1 -2
- package/dist/ships/ships.js +1 -1
- package/dist/ships/slots.d.ts +5 -5
- package/dist/suits-B37rAORs.d.ts +414 -0
- package/dist/{system-address-cyJaeZIS.d.ts → system-address-DmzXRD48.d.ts} +6 -4
- package/package.json +25 -1
- package/dist/chunk-4U7KYQGK.js +0 -1
- package/dist/chunk-4U7KYQGK.js.map +0 -1
- package/dist/chunk-6GJHUWMO.js +0 -1
- package/dist/chunk-6GJHUWMO.js.map +0 -1
- package/dist/chunk-77TT4K53.js +0 -1
- package/dist/chunk-B7EYTZRK.js +0 -1
- package/dist/chunk-B7EYTZRK.js.map +0 -1
- package/dist/chunk-C5HG4GJI.js +0 -1
- package/dist/chunk-C5HG4GJI.js.map +0 -1
- package/dist/chunk-F7VWRDSL.js.map +0 -1
- package/dist/chunk-KLC5XT6F.js +0 -1
- package/dist/chunk-KLC5XT6F.js.map +0 -1
- package/dist/chunk-MGRDB2BZ.js +0 -1
- package/dist/chunk-QJECDMQQ.js +0 -1
- package/dist/chunk-TSEDU73T.js +0 -1
- package/dist/chunk-TSEDU73T.js.map +0 -1
- package/dist/chunk-XRGECU7S.js +0 -1
- package/dist/chunk-XRGECU7S.js.map +0 -1
- /package/dist/{chunk-XSLPWM5N.js.map → chunk-2J6NNI3Y.js.map} +0 -0
- /package/dist/{chunk-DWRNXUAX.js.map → chunk-2KIZN3BY.js.map} +0 -0
- /package/dist/{chunk-J7BM5NGK.js.map → chunk-2TY42PTF.js.map} +0 -0
- /package/dist/{chunk-KBCA4GEZ.js.map → chunk-FP2TQJZP.js.map} +0 -0
- /package/dist/{chunk-ETWMPMZP.js.map → chunk-K5JK3XQB.js.map} +0 -0
- /package/dist/{chunk-A6OINYNP.js.map → chunk-R2AEZYX7.js.map} +0 -0
- /package/dist/{chunk-77TT4K53.js.map → chunk-SFEQXUIA.js.map} +0 -0
- /package/dist/{chunk-7TVFV3VO.js.map → chunk-U3IRMXMR.js.map} +0 -0
- /package/dist/{chunk-7ATBEOVC.js.map → chunk-WG4DPXJI.js.map} +0 -0
|
@@ -31,7 +31,7 @@ interface DefaultLoadout {
|
|
|
31
31
|
readonly modules: readonly DefaultLoadoutModule[];
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
|
-
* Default loadouts for
|
|
34
|
+
* Default loadouts for every player-flyable hull, in
|
|
35
35
|
* {@link ships!SHIPS | SHIPS} catalogue order.
|
|
36
36
|
*
|
|
37
37
|
* @remarks
|
|
@@ -42,7 +42,6 @@ interface DefaultLoadout {
|
|
|
42
42
|
* ```ts
|
|
43
43
|
* import { DEFAULT_LOADOUTS } from '@elite-dangerous-almanac/core/ships/default-loadouts';
|
|
44
44
|
*
|
|
45
|
-
* DEFAULT_LOADOUTS.length; // -> 48
|
|
46
45
|
* DEFAULT_LOADOUTS[0]?.modules.find((module) => module.slot === 'FrameShiftDrive')?.symbol;
|
|
47
46
|
* // -> 'Int_Hyperdrive_Size2_Class1'
|
|
48
47
|
* ```
|
|
@@ -60,7 +59,7 @@ declare const DEFAULT_LOADOUTS: readonly DefaultLoadout[];
|
|
|
60
59
|
* ```ts
|
|
61
60
|
* import { getDefaultLoadout } from '@elite-dangerous-almanac/core/ships/default-loadouts';
|
|
62
61
|
*
|
|
63
|
-
* getDefaultLoadout(' sidewinder ')?.
|
|
62
|
+
* getDefaultLoadout(' sidewinder ')?.symbol; // -> 'SideWinder'
|
|
64
63
|
* getDefaultLoadout('not_a_ship'); // -> null
|
|
65
64
|
* ```
|
|
66
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{DEFAULT_LOADOUTS,getDefaultLoadout}from"../chunk-
|
|
1
|
+
export{DEFAULT_LOADOUTS,getDefaultLoadout}from"../chunk-KY7KSPU6.js"; //# sourceMappingURL=default-loadouts.js.map
|
|
@@ -8,20 +8,17 @@
|
|
|
8
8
|
* this module?" is the question the game actually answers. So modules are grouped, and
|
|
9
9
|
* each group lists what it offers.
|
|
10
10
|
*
|
|
11
|
-
* The catalogue groups
|
|
12
|
-
*
|
|
11
|
+
* The catalogue groups every stock module with an ordinary engineering menu. The rest
|
|
12
|
+
* have no ordinary menu: whole families (fuel tanks,
|
|
13
13
|
* cargo racks, passenger cabins, the repair, recon, research, decontamination and
|
|
14
14
|
* multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
|
|
15
15
|
* Analyser, the mining launchers, Shock Cannons, Nanite Torpedo Pylons, fighter and vehicle
|
|
16
16
|
* hangars, docking computers and Supercruise Assist, the module stabilisers, the planetary
|
|
17
17
|
* approach suites, the cargo hatch and the AX utility modules), plus the individual
|
|
18
18
|
* modules denied every ordinary blueprint — every anti-xeno multi-cannon and missile rack,
|
|
19
|
-
* the Enzyme Missile Rack,
|
|
20
|
-
* Plasma Shock Accelerator.
|
|
21
|
-
* route
|
|
22
|
-
* Module Reinforcement Package, and size-5 and size-6 cargo racks. Their qualifying articles can
|
|
23
|
-
* take grades 2–5 of their bespoke recipes through
|
|
24
|
-
* `ships/pre-engineered`; fixed community-goal cargo racks remain final articles.
|
|
19
|
+
* the Enzyme Missile Rack, every mining tool, the remote-release launchers and the Mk II
|
|
20
|
+
* Plasma Shock Accelerator. A few module symbols without a menu still have a Mercenary
|
|
21
|
+
* upgrade route through `ships/pre-engineered`; {@link getEngineeringGroup} names them.
|
|
25
22
|
*
|
|
26
23
|
* **A group is one menu.** Where the same kind of module comes in two flavours with
|
|
27
24
|
* different menus, they are two groups: a Guardian Power Plant takes only Anti-Guardian
|
|
@@ -102,8 +99,7 @@ interface EngineeringOptionGroup {
|
|
|
102
99
|
* ```ts
|
|
103
100
|
* import { ENGINEERING_OPTION_GROUPS } from '@elite-dangerous-almanac/core/ships/engineering-options';
|
|
104
101
|
*
|
|
105
|
-
* ENGINEERING_OPTION_GROUPS['beamLasers'].
|
|
106
|
-
* ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.length; // -> 7
|
|
102
|
+
* ENGINEERING_OPTION_GROUPS['beamLasers'].blueprints.includes('Weapon_Efficient'); // -> true
|
|
107
103
|
* ```
|
|
108
104
|
*/
|
|
109
105
|
declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, EngineeringOptionGroup>>;
|
|
@@ -111,11 +107,13 @@ declare const ENGINEERING_OPTION_GROUPS: Readonly<Record<EngineeringGroupId, Eng
|
|
|
111
107
|
* The group id a module is engineered as, or `null` when this catalogue does not group
|
|
112
108
|
* it.
|
|
113
109
|
*
|
|
114
|
-
* `null` means **"this stock module has no ordinary engineering menu"**. For
|
|
115
|
-
*
|
|
116
|
-
*
|
|
110
|
+
* `null` means **"this stock module has no ordinary engineering menu"**. For nearly every
|
|
111
|
+
* ungrouped module that is the same as "has no engineering route". A few instead keep a
|
|
112
|
+
* Mercenary upgrade route: the Enzyme Missile Rack, fixed Mining Laser and Abrasion
|
|
117
113
|
* Blaster, size-5 and size-6 cargo racks, and size-5 class-2 Module Reinforcement Package
|
|
118
|
-
* have no stock menu while their qualifying Mercenary articles
|
|
114
|
+
* have no stock menu, while their qualifying Mercenary articles take grades 2–5 of their
|
|
115
|
+
* bespoke recipes through `ships/pre-engineered`. The fixed community-goal cargo racks are
|
|
116
|
+
* final articles.
|
|
119
117
|
* The build corpus also contains an unsupported declaration on the Mk II Plasma Shock
|
|
120
118
|
* Accelerator, which upstream denies every blueprint.
|
|
121
119
|
*
|
|
@@ -184,15 +182,15 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
|
|
|
184
182
|
* Every experimental effect in a stock module's ordinary menu — its group's list, minus
|
|
185
183
|
* the effects that particular module is excluded from.
|
|
186
184
|
*
|
|
187
|
-
* Most modules take their whole group's list, but
|
|
188
|
-
* cannot take Phasing Sequence,
|
|
185
|
+
* Most modules take their whole group's list, but some are exceptions: most Multi-cannons
|
|
186
|
+
* cannot take Phasing Sequence, dumbfire racks cannot take Drag Munitions, and some
|
|
189
187
|
* missile racks are short of Penetrator Munitions or FSD Interrupt. Those are applied
|
|
190
188
|
* here, so the result is the exact set for this module.
|
|
191
189
|
*
|
|
192
|
-
* **An empty array is the common answer, and it usually means "blueprints only".**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
190
|
+
* **An empty array is the common answer, and it usually means "blueprints only".** Whole
|
|
191
|
+
* groups offer no experimental effect at all — life support, sensors, the limpet
|
|
192
|
+
* controllers, the utility scanners, and every Guardian group, weapons and modules alike
|
|
193
|
+
* — so every module in them answers empty. An ungrouped module answers empty
|
|
196
194
|
* too; {@link getEngineeringGroup} tells the two apart.
|
|
197
195
|
*
|
|
198
196
|
* @param symbol - A module symbol. Leading/trailing whitespace and case are ignored.
|
|
@@ -204,10 +202,10 @@ declare function getBlueprintsForModule(symbol: string): readonly string[];
|
|
|
204
202
|
* ```ts
|
|
205
203
|
* import { getExperimentalsForModule } from '@elite-dangerous-almanac/core/ships/engineering-options';
|
|
206
204
|
*
|
|
207
|
-
* getExperimentalsForModule('Hpt_MultiCannon_Fixed_Medium').
|
|
205
|
+
* getExperimentalsForModule('Hpt_MultiCannon_Fixed_Medium').includes('special_phasing_sequence'); // -> true
|
|
208
206
|
*
|
|
209
207
|
* // The small Multi-cannon is one effect short — no Phasing Sequence.
|
|
210
|
-
* getExperimentalsForModule('Hpt_MultiCannon_Fixed_Small').
|
|
208
|
+
* getExperimentalsForModule('Hpt_MultiCannon_Fixed_Small').includes('special_phasing_sequence'); // -> false
|
|
211
209
|
*
|
|
212
210
|
* // The stock Abrasion Blaster has no ordinary engineering menu.
|
|
213
211
|
* getExperimentalsForModule('Hpt_Mining_AbrBlstr_Fixed_Small'); // -> []
|
|
@@ -222,19 +220,18 @@ declare function getExperimentalsForModule(symbol: string): readonly string[];
|
|
|
222
220
|
* `Weapon_LongRange` does not offer every effect listed here, only its own group's. Use
|
|
223
221
|
* {@link getExperimentalsForModule} once you know the module — that is the exact answer.
|
|
224
222
|
*
|
|
225
|
-
* The groups
|
|
226
|
-
*
|
|
227
|
-
* `ships/pre-engineered`)
|
|
228
|
-
*
|
|
223
|
+
* The groups do not name every id in `BLUEPRINTS`. The ones they miss are Operations keys
|
|
224
|
+
* of modules sold already engineered rather than offered in a menu (see
|
|
225
|
+
* `ships/pre-engineered`), plus the fixed Expanded Cargo Rack reward identity.
|
|
226
|
+
* They answer `[]` here exactly as an unknown id would, so read this function's empty answer with
|
|
229
227
|
* {@link getExperimentalsForModule} rather than as a claim about the recipe.
|
|
230
228
|
*
|
|
231
|
-
*
|
|
229
|
+
* Some Operations keys **are** named by a group, because they are recipes a player applies
|
|
232
230
|
* rather than a purchase: the Merc-Coin blueprints published with a full grade 1–5,
|
|
233
|
-
* `FuelScoop_Efficiency` and the
|
|
234
|
-
* `BurstLaser_ThermalPlasmaConversion` and
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* than a miss: it has no experimental slot, on any of the nine groups that offer it.
|
|
231
|
+
* `FuelScoop_Efficiency` and the lasers' `PulseLaser_ThermalPlasmaConversion`,
|
|
232
|
+
* `BurstLaser_ThermalPlasmaConversion` and `BeamLaser_ThermalPlasmaConversion`.
|
|
233
|
+
* Anti-Guardian Zone Resistance answers `[]`, and there that is the exact answer rather
|
|
234
|
+
* than a miss: it has no experimental slot, on any group that offers it.
|
|
238
235
|
*
|
|
239
236
|
* @param blueprintSymbol - A blueprint recipe's Frontier symbol, e.g. `"Weapon_Efficient"`.
|
|
240
237
|
* Leading/trailing whitespace and case are ignored.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-
|
|
1
|
+
export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-M4STXLXO.js"; //# sourceMappingURL=engineering-options.js.map
|
|
@@ -37,8 +37,7 @@ import './slots.js';
|
|
|
37
37
|
* Frontier exposes; {@link ShipLoadout.applyBlueprint} performs that presentation step.
|
|
38
38
|
*
|
|
39
39
|
* The catalogues live in `./blueprints` and `./experimental-effects`; this module
|
|
40
|
-
* holds no data.
|
|
41
|
-
* its result in Frontier's journal form.
|
|
40
|
+
* holds no data.
|
|
42
41
|
*
|
|
43
42
|
* @example
|
|
44
43
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{computeModifiers,sumMaterials}from"../chunk-
|
|
1
|
+
export{computeModifiers,sumMaterials}from"../chunk-U73MBQ45.js"; //# sourceMappingURL=engineering.js.map
|
|
@@ -41,7 +41,7 @@ declare const EXPERIMENTAL_EFFECT_COSTS: Readonly<Record<string, readonly Engine
|
|
|
41
41
|
*
|
|
42
42
|
* @remarks
|
|
43
43
|
* Materials are the whole cost: an experimental effect charges no Merc Coin, unlike the
|
|
44
|
-
*
|
|
44
|
+
* blueprints whose {@link ships/blueprint-costs!getBlueprintCost | getBlueprintCost}
|
|
45
45
|
* reports a non-zero `mercCoins`.
|
|
46
46
|
*
|
|
47
47
|
* @param experimentalEffectSymbol - The effect id, e.g. `"special_fsd_heavy"`, matched
|
|
@@ -49,9 +49,9 @@ type ShipGunsightCatalogue = Readonly<Record<string, ShipGunsight>>;
|
|
|
49
49
|
* by {@link ships!SHIPS | SHIPS}.
|
|
50
50
|
*
|
|
51
51
|
* @remarks
|
|
52
|
-
* The map, each hull array and every offset pair are deeply frozen. It
|
|
53
|
-
*
|
|
54
|
-
* does not import the ship or outfitting catalogues.
|
|
52
|
+
* The map, each hull array and every offset pair are deeply frozen. It covers every
|
|
53
|
+
* hardpoint of every player-flyable hull. Importing this module adds only the compact
|
|
54
|
+
* offset map; it does not import the ship or outfitting catalogues.
|
|
55
55
|
*
|
|
56
56
|
* @example
|
|
57
57
|
* ```ts
|
package/dist/ships/heat.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* settles at heatLevel = √(thermal load / heatDissipation)
|
|
14
14
|
* ```
|
|
15
15
|
*
|
|
16
|
-
* Two consequences
|
|
16
|
+
* Two consequences follow, and they are what the numbers mean:
|
|
17
17
|
* a build whose thermal load stays under the hull's `heatDissipation` **always settles**
|
|
18
18
|
* below heat level `1` and never overheats, however long it holds the trigger; and one
|
|
19
19
|
* whose load goes over it **never settles** — heat climbs until the ship cooks, and the
|
package/dist/ships/index.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* {@link ships/default-loadouts!DEFAULT_LOADOUTS | default-loadouts} subpath carries
|
|
29
29
|
* the stock modules {@link ShipLoadout.default} turns into a live build.
|
|
30
30
|
* - **Modules** — the {@link OutfittingModule} type and the lookups
|
|
31
|
-
* ({@link getModuleBySymbol} & co.), which search
|
|
31
|
+
* ({@link getModuleBySymbol} & co.), which search the whole catalogue unless you hand
|
|
32
32
|
* them a narrower set; capability guards such as {@link hasWeaponDamageStats} narrow
|
|
33
33
|
* the sparse record before stat access. The catalogues live on explicit subpaths split
|
|
34
34
|
* by Frontier's four outfitting categories —
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
* ```
|
|
112
112
|
*
|
|
113
113
|
* @example
|
|
114
|
-
* **The lookup layer.** One small hull catalogue, and
|
|
115
|
-
* four
|
|
114
|
+
* **The lookup layer.** One small hull catalogue, and the outfitting modules split by
|
|
115
|
+
* Frontier's four categories. Lookups ignore case and surrounding whitespace.
|
|
116
116
|
*
|
|
117
117
|
* ```ts
|
|
118
118
|
* import { getShipBySymbol } from '@elite-dangerous-almanac/core/ships/ships';
|
|
@@ -121,8 +121,7 @@
|
|
|
121
121
|
*
|
|
122
122
|
* getShipBySymbol('empire_trader')?.name; // -> 'Imperial Clipper'
|
|
123
123
|
*
|
|
124
|
-
* // Pass a category to bound what you bundle; omit it to search
|
|
125
|
-
* CORE_MODULES.length; // -> 516
|
|
124
|
+
* // Pass a category to bound what you bundle; omit it to search every module.
|
|
126
125
|
* getModuleBySymbol('Int_Hyperdrive_Size6_Class5', CORE_MODULES)?.name;
|
|
127
126
|
* // -> 'Frame Shift Drive'
|
|
128
127
|
* ```
|
package/dist/ships/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{LoadoutEditError,ShipLoadout}from"../chunk-
|
|
1
|
+
export{LoadoutEditError,ShipLoadout}from"../chunk-HIJR7DOC.js";export{validateLoadout}from"../chunk-3GNYPM6J.js";export{SHIP_MODULE_LIMITS,calculateModuleLimits}from"../chunk-KPETDYQX.js";export{hasFrameShiftDriveJumpStats,hasMassCurveStats,hasPowerDistributorStats,hasPowerGenerationStats,hasShieldRegenerationStats,hasWeaponDamageStats}from"../chunk-JTQVWIGL.js";export{OUTFITTING_FAMILIES}from"../chunk-M6G3UDTX.js";export{SHIP_GUNSIGHTS,getShipGunsight,projectGunsight}from"../chunk-XSN53F7W.js";export{BuildMetrics}from"../chunk-G7WARJ3X.js";export{weaponsCapacitorMetrics}from"../chunk-M4FZRDAH.js";export{shieldCapacitorMetrics}from"../chunk-XQJERZUS.js";export{cellBankSummary,shieldRecovery}from"../chunk-JMAXSXXQ.js"; export{getLoadoutModifier,inspectSlef,parseSlef,stringifySlef,toSlef}from"../chunk-T4MKUKYS.js";export{getSourceModuleValue,sourcePurchaseFromLoadout,sumSourceModuleValues}from"../chunk-NIURLW2F.js";export{armourPiercingFactor,combinedRateOfFire,damageFalloff,damagePerSecond,energyPerSecond,heatPerSecond,splitDamage,sumWeaponMetrics,sustainedDamagePerSecond,sustainedFireFactor,weaponMetrics}from"../chunk-AAU7OM47.js";export{getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,unresolvedModifiers}from"../chunk-C3YZ5KTA.js";export{PRE_ENGINEERED_MODULES,getPreEngineeredVariants,isPreEngineered}from"../chunk-AUBV6S7V.js";export{shieldMassCurveMultiplier,shieldMetrics,shieldStrength}from"../chunk-5VWACBTN.js";export{SHIPS,getShipByName,getShipBySymbol,getShipSlots}from"../chunk-C4FUV6GF.js";export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-OSMBAFRW.js"; export{powerBudget}from"../chunk-GGQMIQPC.js";export{frameShiftDriveMassFactor,fuelPerJump,singleJumpRange,totalRange}from"../chunk-VTMCSCXV.js";export{calculateCargoCapacity,calculateFuelCapacity,calculatePassengerCapacity,calculateUnladenMass}from"../chunk-C3LLPLLD.js"; export{mobilityCapacitorMetrics}from"../chunk-VEEBJFJ7.js";export{mobilityMetrics,thrusterMassCurveMultiplier}from"../chunk-A4QKXXZD.js"; export{distributorMetrics}from"../chunk-M2TCZKRT.js"; export{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"../chunk-77I24V6B.js";export{OVERHEAT_HEAT_LEVEL,effectiveWeaponThermalLoad,equilibriumHeatLevel,heatLevelAtTime,heatMetrics,secondsToHeatLevel}from"../chunk-6HA2YIKW.js";export{ammunitionCapacity}from"../chunk-AA3K5XUE.js";export{armourMetrics}from"../chunk-Q5ALV3DI.js";export{effectiveHitPoints,mapDamageTypes,stackArmourResistance,stackShieldResistance,systemsResistance}from"../chunk-F44QX47A.js"; export{computeModifiers,sumMaterials}from"../chunk-U73MBQ45.js"; export{resolveBlueprintForModule}from"../chunk-2J6NNI3Y.js";export{ENGINEERING_OPTION_GROUPS,getBlueprintsForModule,getEngineeringGroup,getExperimentalsForBlueprint,getExperimentalsForModule}from"../chunk-M4STXLXO.js";export{BLUEPRINTS,getBlueprint,getBlueprintGrade}from"../chunk-AYAKU4YA.js"; export{SLOT_RESTRICTION_LABELS,enumerateSlots,parseSlotName}from"../chunk-RAO35XDF.js"; //# sourceMappingURL=index.js.map
|
|
@@ -31,7 +31,7 @@ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot'
|
|
|
31
31
|
* @remarks
|
|
32
32
|
* `dry` is the fit alone — hull plus modules, an empty tank and no cargo. `unladen`
|
|
33
33
|
* adds a full main tank, and is the figure the game and every outfitting tool call a
|
|
34
|
-
* ship's unladen mass;
|
|
34
|
+
* ship's unladen mass; {@link ships!ShipLoadout.unladenMass} is the `dry`
|
|
35
35
|
* figure, because that is what a journal's `UnladenMass` states. `laden` adds a full
|
|
36
36
|
* hold on top.
|
|
37
37
|
*
|
|
@@ -39,8 +39,13 @@ type LoadoutIssueCode = 'duplicateSlot' | 'unknownSlot' | 'missingRequiredSlot'
|
|
|
39
39
|
* Failing only at `laden` is a warning: the hold is the one load a pilot chooses.
|
|
40
40
|
*/
|
|
41
41
|
type ThrusterLoad = 'dry' | 'unladen' | 'laden';
|
|
42
|
-
/**
|
|
43
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Stable machine-readable constraint behind an `incompatibleModule` issue.
|
|
44
|
+
*
|
|
45
|
+
* `builtInHullModule` is the only one that does not depend on the mount: the cargo hatch
|
|
46
|
+
* comes with the hull and goes in no mount an editor can set.
|
|
47
|
+
*/
|
|
48
|
+
type ModuleFitConstraint = 'immutableSlot' | 'builtInHullModule' | 'armourRequired' | 'wrongHullArmour' | 'restrictedHull' | 'restrictedMount' | 'wrongCoreType' | 'hardpointRequired' | 'utilityRequired' | 'optionalInternalRequired' | 'coreModuleInOptionalSlot' | 'oversized' | 'unknownConstraint';
|
|
44
49
|
/**
|
|
45
50
|
* One language-neutral value carried by a structured loadout diagnostic: a scalar
|
|
46
51
|
* string/number, or a string list the consumer can format for its locale. Paired name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{validateLoadout}from"../chunk-
|
|
1
|
+
export{validateLoadout}from"../chunk-3GNYPM6J.js"; //# sourceMappingURL=loadout-validation.js.map
|
|
@@ -32,7 +32,7 @@ type OutfittingFamilyId = 'armour' | 'powerPlants' | 'engines' | 'fsd' | 'lifeSu
|
|
|
32
32
|
*
|
|
33
33
|
* @remarks
|
|
34
34
|
* The names are Frontier's own outfitting category labels where the game publishes one,
|
|
35
|
-
* and the Almanac's descriptive name for the
|
|
35
|
+
* and the Almanac's descriptive name for the families it does not. They are
|
|
36
36
|
* canonical English, not localized UI text: use
|
|
37
37
|
* `getOutfittingFamilyName` for a locale.
|
|
38
38
|
*
|
|
@@ -9,7 +9,7 @@ import './slots.js';
|
|
|
9
9
|
*
|
|
10
10
|
* @remarks
|
|
11
11
|
* **This module pulls in every module catalogue** — it exists for consumers that
|
|
12
|
-
* really do want to search
|
|
12
|
+
* really do want to search every module (a "resolve any module id" lookup, say).
|
|
13
13
|
* If you only need one category, import that catalogue's module
|
|
14
14
|
* (`./modules-core`, `./modules-internal`, `./modules-hardpoint`,
|
|
15
15
|
* `./modules-utility`) and nothing else gets bundled.
|
|
@@ -35,8 +35,7 @@ import './slots.js';
|
|
|
35
35
|
* ```ts
|
|
36
36
|
* import { ALL_MODULES } from '@elite-dangerous-almanac/core/ships/modules-all';
|
|
37
37
|
*
|
|
38
|
-
* ALL_MODULES.
|
|
39
|
-
* ALL_MODULES.filter((m) => m.category === 'utility').length; // -> 35
|
|
38
|
+
* ALL_MODULES.find((m) => m.symbol === 'Hpt_PulseLaser_Fixed_Small')?.category; // -> 'hardpoint'
|
|
40
39
|
* ```
|
|
41
40
|
*/
|
|
42
41
|
declare const ALL_MODULES: readonly OutfittingModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{ALL_MODULES}from"../chunk-
|
|
1
|
+
export{ALL_MODULES}from"../chunk-UVX7RCMP.js"; //# sourceMappingURL=modules-all.js.map
|
|
@@ -20,20 +20,20 @@ import './slots.js';
|
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Every core internal module, in Frontier's registry order.
|
|
24
24
|
*
|
|
25
25
|
* @remarks
|
|
26
26
|
* Every record has `category: 'core'`, added from the file it was read from
|
|
27
27
|
* rather than repeated on every record. To keep the other three categories out of
|
|
28
28
|
* your bundle, search this array directly — `CORE_MODULES.find((m) =>
|
|
29
29
|
* m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
|
|
30
|
-
* rather than with the lookups in `./modules`, which default to
|
|
30
|
+
* rather than with the lookups in `./modules`, which default to the whole catalogue.
|
|
31
31
|
*
|
|
32
32
|
* @example
|
|
33
33
|
* ```ts
|
|
34
34
|
* import { CORE_MODULES } from '@elite-dangerous-almanac/core/ships/modules-core';
|
|
35
35
|
*
|
|
36
|
-
* CORE_MODULES.
|
|
36
|
+
* CORE_MODULES.find((m) => m.symbol === 'Int_Powerplant_Size3_Class5')?.rating; // -> 'A'
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
declare const CORE_MODULES: readonly OutfittingModule[];
|
|
@@ -21,22 +21,21 @@ import './slots.js';
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Every hardpoint module, in Frontier's registry order.
|
|
25
25
|
*
|
|
26
26
|
* @remarks
|
|
27
27
|
* Every record has `category: 'hardpoint'`, added from the file it was read from
|
|
28
28
|
* rather than repeated on every record. To keep the other three categories out of
|
|
29
29
|
* your bundle, search this array directly — `HARDPOINT_MODULES.find((m) =>
|
|
30
30
|
* m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
|
|
31
|
-
* rather than with the lookups in `./modules`, which default to
|
|
31
|
+
* rather than with the lookups in `./modules`, which default to the whole catalogue.
|
|
32
32
|
*
|
|
33
33
|
* @example
|
|
34
34
|
* ```ts
|
|
35
35
|
* import { HARDPOINT_MODULES } from '@elite-dangerous-almanac/core/ships/modules-hardpoint';
|
|
36
36
|
*
|
|
37
|
-
* HARDPOINT_MODULES.
|
|
38
|
-
* HARDPOINT_MODULES.
|
|
39
|
-
* HARDPOINT_MODULES.filter((m) => m.mount === 'Turreted').length; // turreted variants
|
|
37
|
+
* HARDPOINT_MODULES.find((m) => m.symbol === 'Hpt_PulseLaser_Fixed_Small')?.mount; // -> 'Fixed'
|
|
38
|
+
* HARDPOINT_MODULES.find((m) => m.familyId === 'beamLasers')?.name; // -> 'Beam Laser'
|
|
40
39
|
* ```
|
|
41
40
|
*/
|
|
42
41
|
declare const HARDPOINT_MODULES: readonly OutfittingModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{HARDPOINT_MODULES}from"../chunk-
|
|
1
|
+
export{HARDPOINT_MODULES}from"../chunk-4T3TTYUT.js"; //# sourceMappingURL=modules-hardpoint.js.map
|
|
@@ -7,12 +7,14 @@ import './slots.js';
|
|
|
7
7
|
* The **optional internal** modules — the `internal` outfitting category:
|
|
8
8
|
* everything that fills an optional internal slot (cargo racks, shield generators,
|
|
9
9
|
* fuel scoops, refineries, passenger cabins, limpet and planetary controllers,
|
|
10
|
-
* hull/module reinforcement, …)
|
|
10
|
+
* hull/module reinforcement, …), plus the articles the registry files here that an
|
|
11
|
+
* optional slot does not take: the hull's own Cargo Hatch and the Guardian hybrid
|
|
12
|
+
* power plants and distributors, which go in a core mount.
|
|
11
13
|
*
|
|
12
14
|
* The other categories live in `./modules-core`, `./modules-hardpoint` and
|
|
13
15
|
* `./modules-utility`, so importing this module never bundles them.
|
|
14
16
|
*
|
|
15
|
-
* Identity primarily from EDCD FDevIDs (`outfitting.csv`), with
|
|
17
|
+
* Identity primarily from EDCD FDevIDs (`outfitting.csv`), with the bundle-granted
|
|
16
18
|
* Vessel Hangar variants from a public CAPI capture; stats from EDCD/coriolis-data and
|
|
17
19
|
* EDSY, joined on `symbol`. See [`data/ships/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/ships/SOURCES.md).
|
|
18
20
|
*
|
|
@@ -20,21 +22,29 @@ import './slots.js';
|
|
|
20
22
|
*/
|
|
21
23
|
|
|
22
24
|
/**
|
|
23
|
-
*
|
|
25
|
+
* Every module in the `internal` outfitting category, in registry order.
|
|
24
26
|
*
|
|
25
27
|
* @remarks
|
|
26
28
|
* Every record has `category: 'internal'`, added from the file it was read from
|
|
27
|
-
* rather than repeated on every record.
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
29
|
+
* rather than repeated on every record. **The category is the registry's filing, not a
|
|
30
|
+
* fitting rule**, so do not read a fit off it: `ModularCargoBayDoor` (family
|
|
31
|
+
* `cargoHatches`) is the hull's built-in Cargo Hatch and goes in the fixed `CargoHatch`
|
|
32
|
+
* mount alone; the Guardian hybrid power plants and distributors carry a core
|
|
33
|
+
* {@link ships!OutfittingModule.slot | slot} and fit only that core mount; and others
|
|
34
|
+
* here reserve a restricted mount or a named hull. Ask
|
|
35
|
+
* {@link ships!ShipLoadout.modulesForSlot | ShipLoadout.modulesForSlot} what a mount
|
|
36
|
+
* takes rather than filtering this array by size.
|
|
37
|
+
*
|
|
38
|
+
* To keep the other three categories out of your bundle, search this array directly —
|
|
39
|
+
* `INTERNAL_MODULES.find((m) => m.symbol.toLowerCase() === wanted)`, lower-cased because
|
|
40
|
+
* a journal's symbols are — rather than with the lookups in `./modules`, which default
|
|
41
|
+
* to the whole catalogue.
|
|
31
42
|
*
|
|
32
43
|
* @example
|
|
33
44
|
* ```ts
|
|
34
45
|
* import { INTERNAL_MODULES } from '@elite-dangerous-almanac/core/ships/modules-internal';
|
|
35
46
|
*
|
|
36
|
-
* INTERNAL_MODULES.
|
|
37
|
-
* INTERNAL_MODULES.filter((m) => m.familyId === 'cargoRacks').length; // -> 16
|
|
47
|
+
* INTERNAL_MODULES.find((m) => m.symbol === 'Int_CargoRack_Size1_Class1')?.familyId; // -> 'cargoRacks'
|
|
38
48
|
* ```
|
|
39
49
|
*/
|
|
40
50
|
declare const INTERNAL_MODULES: readonly OutfittingModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{INTERNAL_MODULES}from"../chunk-
|
|
1
|
+
export{INTERNAL_MODULES}from"../chunk-7Y5EK2VO.js"; //# sourceMappingURL=modules-internal.js.map
|
|
@@ -20,21 +20,20 @@ import './slots.js';
|
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* Every utility-mount module, in Frontier's registry order.
|
|
24
24
|
*
|
|
25
25
|
* @remarks
|
|
26
26
|
* Every record has `category: 'utility'`, added from the file it was read from
|
|
27
27
|
* rather than repeated on every record. To keep the other three categories out of
|
|
28
28
|
* your bundle, search this array directly — `UTILITY_MODULES.find((m) =>
|
|
29
29
|
* m.symbol.toLowerCase() === wanted)`, lower-cased because a journal's symbols are —
|
|
30
|
-
* rather than with the lookups in `./modules`, which default to
|
|
30
|
+
* rather than with the lookups in `./modules`, which default to the whole catalogue.
|
|
31
31
|
*
|
|
32
32
|
* @example
|
|
33
33
|
* ```ts
|
|
34
34
|
* import { UTILITY_MODULES } from '@elite-dangerous-almanac/core/ships/modules-utility';
|
|
35
35
|
*
|
|
36
|
-
* UTILITY_MODULES.
|
|
37
|
-
* UTILITY_MODULES.filter((m) => m.familyId === 'shieldBoosters').length; // -> 5
|
|
36
|
+
* UTILITY_MODULES.find((m) => m.familyId === 'shieldBoosters')?.symbol; // -> 'Hpt_ShieldBooster_Size0_Class1'
|
|
38
37
|
* ```
|
|
39
38
|
*/
|
|
40
39
|
declare const UTILITY_MODULES: readonly OutfittingModule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{UTILITY_MODULES}from"../chunk-
|
|
1
|
+
export{UTILITY_MODULES}from"../chunk-PKKBYBL4.js"; //# sourceMappingURL=modules-utility.js.map
|
package/dist/ships/modules.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Outfitting-module types and lookups.
|
|
7
7
|
*
|
|
8
|
-
* Elite Dangerous
|
|
8
|
+
* Elite Dangerous fits ships from a large outfitting registry. This module holds the
|
|
9
9
|
* {@link OutfittingModule} record shape — a module's **identity and its stats**
|
|
10
10
|
* together — and the functions that find one ({@link getModuleBySymbol},
|
|
11
11
|
* {@link getModulesByName}, {@link getBulkheadsForShip}).
|
|
12
12
|
*
|
|
13
|
-
* **Every lookup searches
|
|
13
|
+
* **Every lookup searches every module by default.** A journal `Item` string does
|
|
14
14
|
* not identify its outfitting category, so callers need no category for lookup:
|
|
15
15
|
*
|
|
16
16
|
* ```ts
|
|
@@ -21,13 +21,16 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
|
|
|
21
21
|
* subset — any array you have filtered yourself. The catalogue is also exported split
|
|
22
22
|
* by Frontier's four outfitting categories:
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* |
|
|
28
|
-
* |
|
|
29
|
-
* | `./modules-
|
|
30
|
-
* | `./modules-
|
|
24
|
+
* Sizes are each module's import graph once your bundler has minified it — the
|
|
25
|
+
* published package itself is not minified — before any transport compression.
|
|
26
|
+
*
|
|
27
|
+
* | Module | Export | Minified | Gzipped |
|
|
28
|
+
* | --- | --- | --- | --- |
|
|
29
|
+
* | `./modules-core` | `CORE_MODULES` | ~129 KiB | ~12 KiB |
|
|
30
|
+
* | `./modules-internal` | `INTERNAL_MODULES` | ~128 KiB | ~13 KiB |
|
|
31
|
+
* | `./modules-hardpoint` | `HARDPOINT_MODULES` | ~70 KiB | ~8 KiB |
|
|
32
|
+
* | `./modules-utility` | `UTILITY_MODULES` | ~10 KiB | ~2 KiB |
|
|
33
|
+
* | `./modules-all` | `ALL_MODULES` | ~335 KiB | ~33 KiB |
|
|
31
34
|
*
|
|
32
35
|
* Those four are for **listing** a category — an outfitting screen's hardpoint tab.
|
|
33
36
|
* They make poor narrowing arguments: no module symbol or display name is shared
|
|
@@ -44,7 +47,7 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
|
|
|
44
47
|
*
|
|
45
48
|
* @remarks
|
|
46
49
|
* **This is the one default that costs real bundle weight.** A lookup imported from
|
|
47
|
-
* here pulls all four catalogues — ~
|
|
50
|
+
* here pulls all four catalogues — ~337 KiB minified (~33 KiB gzipped) — since
|
|
48
51
|
* that is what it falls back to, and passing an explicit catalogue does not undo it.
|
|
49
52
|
* A build that must carry only one category should import that catalogue and search
|
|
50
53
|
* it directly:
|
|
@@ -73,7 +76,11 @@ import { ModuleSlot, SlotRestriction } from './slots.js';
|
|
|
73
76
|
* which are the same seven {@link CoreSlotType}s plus armour. A fuel tank is a `core`
|
|
74
77
|
* module that also fits an optional slot.
|
|
75
78
|
* - `internal` — optional internals (cargo racks, shield generators, fuel scoops,
|
|
76
|
-
* passenger cabins, limpet and planetary controllers, …).
|
|
79
|
+
* passenger cabins, limpet and planetary controllers, …). The registry also files two
|
|
80
|
+
* kinds of article here that no optional slot takes: the built-in Cargo Hatch, which
|
|
81
|
+
* fits the hull's own fixed `CargoHatch` mount, and the Guardian hybrid power plants
|
|
82
|
+
* and distributors, which carry a core {@link OutfittingModule.slot | slot} and fit
|
|
83
|
+
* only that core mount.
|
|
77
84
|
* - `hardpoint` — the weapons and tools mounted on a hardpoint.
|
|
78
85
|
* - `utility` — the small utility-mount fittings (chaff, heat sinks, point defence,
|
|
79
86
|
* shield boosters, scanners).
|
|
@@ -262,7 +269,7 @@ interface OutfittingModuleIdentity {
|
|
|
262
269
|
* the seven {@link CoreSlotType} core functions.
|
|
263
270
|
*
|
|
264
271
|
* @remarks
|
|
265
|
-
* Present on every `core` module, and on the
|
|
272
|
+
* Present on every `core` module, and on the Guardian Hybrid power plants
|
|
266
273
|
* and power distributors — which Frontier files under `internal`, but which go in
|
|
267
274
|
* a core mount. Absent on everything else, because there is no one mount to name:
|
|
268
275
|
* a weapon, a utility fitting or an ordinary optional internal fits any mount of
|
|
@@ -338,8 +345,8 @@ interface OutfittingModuleIdentity {
|
|
|
338
345
|
* that no outfitting screen sells. Absent on every module a station offers.
|
|
339
346
|
*
|
|
340
347
|
* @remarks
|
|
341
|
-
*
|
|
342
|
-
*
|
|
348
|
+
* They are the starter `*_free` fittings and the bundle-granted Vessel Hangars. Each
|
|
349
|
+
* is a second identity for an article the game already sells:
|
|
343
350
|
* `Int_Engine_Size2_Class1_free` is the 2E Thrusters again, which is why
|
|
344
351
|
* {@link ShipLoadout.modulesForSlot} leaves them out — a picker that offered both
|
|
345
352
|
* would list "2E Thrusters" twice, once unpriced.
|
|
@@ -377,7 +384,7 @@ interface OutfittingModuleIdentity {
|
|
|
377
384
|
* rule: a mount's restriction says which modules it takes, this says which mounts
|
|
378
385
|
* a module goes in. Most restricted families bind one way only — a cargo rack fits
|
|
379
386
|
* a `cargo` mount *and* any unrestricted optional — so this is present on just the
|
|
380
|
-
*
|
|
387
|
+
* records the game sells for one kind of mount and nowhere else:
|
|
381
388
|
*
|
|
382
389
|
* | Module | Requires |
|
|
383
390
|
* | --- | --- |
|
|
@@ -434,12 +441,11 @@ interface OutfittingModuleIdentity {
|
|
|
434
441
|
* discount or markup, which is what an outfitting screen quotes at 0% discount.
|
|
435
442
|
*
|
|
436
443
|
* @remarks
|
|
437
|
-
* Absent on the handful of records no registry prices: the
|
|
438
|
-
*
|
|
439
|
-
* shield generator
|
|
440
|
-
*
|
|
441
|
-
*
|
|
442
|
-
* as free — see [`data/ships/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/ships/SOURCES.md).
|
|
444
|
+
* Absent on the handful of records no registry prices: the grant-only `*_free`
|
|
445
|
+
* articles, the Community Goal Corrosion Resistant Cargo Racks, which no station
|
|
446
|
+
* sells but which are not free, and the 1B shield generator. Treat `undefined` as
|
|
447
|
+
* "unknown", never as free; see
|
|
448
|
+
* [`data/ships/SOURCES.md`](https://github.com/DarkSession/Elite-Dangerous-Almanac/blob/main/data/ships/SOURCES.md).
|
|
443
449
|
*/
|
|
444
450
|
readonly cost?: number;
|
|
445
451
|
}
|
|
@@ -525,8 +531,8 @@ interface OutfittingModuleStats {
|
|
|
525
531
|
* outfitting screen labels SCO.
|
|
526
532
|
*
|
|
527
533
|
* @remarks
|
|
528
|
-
* A sparse capability flag on the
|
|
529
|
-
* including on the
|
|
534
|
+
* A sparse capability flag on the Overcharge drives and absent everywhere else,
|
|
535
|
+
* including on the ordinary drives of the same sizes and ratings. Read it rather
|
|
530
536
|
* than matching `Int_Hyperdrive_Overcharge` on the symbol: the capability is the
|
|
531
537
|
* record's to state, and a pre-engineered or fitted article carries the flag
|
|
532
538
|
* through while its symbol is not always the one you looked up.
|
|
@@ -601,7 +607,7 @@ interface OutfittingModuleStats {
|
|
|
601
607
|
* @remarks
|
|
602
608
|
* A sparse capability flag rather than a percentage: `true` means the protection is
|
|
603
609
|
* inherent or the grade-1 blueprint grants it, while absence means it is not granted.
|
|
604
|
-
* The
|
|
610
|
+
* The Guardian Nanite Torpedo Pylons carry it inherently; read engineered
|
|
605
611
|
* protection from a fitted module's {@link FittedModule.effectiveStats}.
|
|
606
612
|
*/
|
|
607
613
|
readonly guardianZoneResistance?: boolean;
|
|
@@ -798,7 +804,7 @@ interface OutfittingModule extends OutfittingModuleIdentity, OutfittingModuleSta
|
|
|
798
804
|
* @param symbol - The internal identifier, e.g. `"Hpt_PulseLaser_Fixed_Small"`.
|
|
799
805
|
* Leading/trailing whitespace and case are ignored, so the journal's lower-cased
|
|
800
806
|
* form resolves too.
|
|
801
|
-
* @param modules - Optional subset to search instead of
|
|
807
|
+
* @param modules - Optional subset to search instead of every module —
|
|
802
808
|
* `CORE_MODULES`, `INTERNAL_MODULES`, `HARDPOINT_MODULES`, `UTILITY_MODULES`, or any
|
|
803
809
|
* array you have filtered yourself. Omit it unless you specifically want to exclude
|
|
804
810
|
* the other categories; a symbol is unique across all four.
|
package/dist/ships/modules.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-
|
|
1
|
+
export{getBulkheadsForShip,getModuleBySymbol,getModulesByName}from"../chunk-OSMBAFRW.js"; //# sourceMappingURL=modules.js.map
|