@shipload/sdk 1.0.0-next.37 → 1.0.0-next.38

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/lib/shipload.m.js CHANGED
@@ -3719,11 +3719,11 @@ var recipes = [
3719
3719
  outputMass: 960000,
3720
3720
  inputs: [
3721
3721
  {
3722
- itemId: 10008,
3722
+ itemId: 10009,
3723
3723
  quantity: 300
3724
3724
  },
3725
3725
  {
3726
- itemId: 10009,
3726
+ itemId: 10006,
3727
3727
  quantity: 300
3728
3728
  }
3729
3729
  ],
@@ -3731,7 +3731,7 @@ var recipes = [
3731
3731
  {
3732
3732
  sources: [
3733
3733
  {
3734
- inputIndex: 1,
3734
+ inputIndex: 0,
3735
3735
  statIndex: 0
3736
3736
  }
3737
3737
  ]
@@ -3739,8 +3739,8 @@ var recipes = [
3739
3739
  {
3740
3740
  sources: [
3741
3741
  {
3742
- inputIndex: 0,
3743
- statIndex: 1
3742
+ inputIndex: 1,
3743
+ statIndex: 0
3744
3744
  }
3745
3745
  ]
3746
3746
  }
@@ -5121,8 +5121,8 @@ const itemMetadata = {
5121
5121
  color: '#B877FF',
5122
5122
  },
5123
5123
  10105: {
5124
- name: 'Storage',
5125
- description: 'Expands cargo capacity based on hull material quality.',
5124
+ name: 'Cargo Bay',
5125
+ description: 'Expanded cargo storage with reinforced internal holds.',
5126
5126
  color: '#8B7355',
5127
5127
  },
5128
5128
  10106: {
@@ -5136,8 +5136,8 @@ const itemMetadata = {
5136
5136
  color: '#9be4ff',
5137
5137
  },
5138
5138
  10108: {
5139
- name: 'Battery',
5140
- description: 'Extends energy capacity. Stores additional charge produced by generators, letting builds chain more high-drain actions between recharges.',
5139
+ name: 'Battery Bank',
5140
+ description: 'Stores additional charge produced by generators.',
5141
5141
  color: '#4ADBFF',
5142
5142
  },
5143
5143
  10200: {
@@ -13010,6 +13010,9 @@ const clampUint32 = (v) => Math.min(Math.max(Math.floor(v), 0), 4294967295);
13010
13010
  function applySlotMultiplier(value, outputPct) {
13011
13011
  return clampUint16(Math.floor((value * outputPct) / 100));
13012
13012
  }
13013
+ function applySlotMultiplierUint32(value, outputPct) {
13014
+ return clampUint32(Math.floor((value * outputPct) / 100));
13015
+ }
13013
13016
  function getSlotAmp(layout, slotIndex) {
13014
13017
  return layout[slotIndex]?.outputPct ?? 100;
13015
13018
  }
@@ -13082,10 +13085,10 @@ function computeLoaderCapabilities(stats) {
13082
13085
  }
13083
13086
  function computeCrafterCapabilities(stats) {
13084
13087
  const rea = stats.reactivity;
13085
- const fin = stats.fineness;
13088
+ const con = stats.conductivity;
13086
13089
  return {
13087
13090
  speed: 100 + Math.floor((rea * 4) / 5),
13088
- drain: Math.max(5, 30 - Math.floor(fin / 33)),
13091
+ drain: Math.max(5, 30 - Math.floor(con / 33)),
13089
13092
  };
13090
13093
  }
13091
13094
  function computeHaulerCapabilities(stats) {
@@ -13098,14 +13101,21 @@ function computeHaulerCapabilities(stats) {
13098
13101
  drain: Math.max(3, 15 - Math.floor(reflectivity / 80)),
13099
13102
  };
13100
13103
  }
13101
- function computeStorageCapabilities(stats, baseCapacity) {
13102
- const strength = stats.strength;
13103
- const density = stats.density;
13104
- const hardness = stats.hardness;
13105
- const cohesion = stats.cohesion;
13104
+ function computeStorageCapabilities(stats) {
13105
+ const strength = stats.strength ?? 0;
13106
+ const density = stats.density ?? 0;
13107
+ const hardness = stats.hardness ?? 0;
13108
+ const cohesion = stats.cohesion ?? 0;
13106
13109
  const statSum = strength + density + hardness + cohesion;
13107
- const capacityBonus = Math.floor((baseCapacity * (10 + Math.floor((statSum * 10) / 2997))) / 100);
13108
- return { capacityBonus };
13110
+ return { capacity: 10000000 + Math.floor((statSum * 50000000) / 3996) };
13111
+ }
13112
+ function computeBatteryCapabilities(stats) {
13113
+ const volatility = stats.volatility ?? 0;
13114
+ const thermal = stats.thermal ?? 0;
13115
+ const plasticity = stats.plasticity ?? 0;
13116
+ const insulation = stats.insulation ?? 0;
13117
+ const statSum = volatility + thermal + plasticity + insulation;
13118
+ return { capacity: 2500 + Math.floor((statSum * 7500) / 3996) };
13109
13119
  }
13110
13120
  function computeBaseCapacity(itemId, stats) {
13111
13121
  switch (itemId) {
@@ -13150,7 +13160,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
13150
13160
  let totalGathDrain = 0;
13151
13161
  let maxGathDepth = 0;
13152
13162
  let hasGatherer = false;
13153
- let totalStorageBonus = 0;
13163
+ let totalStorageCapacity = 0;
13154
13164
  const baseCapacity = computeBaseCapacity(itemId, stats);
13155
13165
  let installedModuleMass = 0;
13156
13166
  let totalCrafterSpeed = 0;
@@ -13162,8 +13172,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
13162
13172
  let hasHauler = false;
13163
13173
  let totalWarpRange = 0;
13164
13174
  let hasWarp = false;
13165
- let totalBatteryStatSum = 0;
13166
- let batteryCount = 0;
13175
+ let totalBatteryCapacity = 0;
13167
13176
  const gathererLanes = [];
13168
13177
  const crafterLanes = [];
13169
13178
  const loaderLanes = [];
@@ -13216,8 +13225,8 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
13216
13225
  });
13217
13226
  }
13218
13227
  else if (modType === MODULE_STORAGE) {
13219
- const caps = computeStorageCapabilities(decodedStats, baseCapacity);
13220
- totalStorageBonus += caps.capacityBonus;
13228
+ const caps = computeStorageCapabilities(decodedStats);
13229
+ totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
13221
13230
  }
13222
13231
  else if (modType === MODULE_CRAFTER) {
13223
13232
  hasCrafter = true;
@@ -13246,22 +13255,16 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
13246
13255
  totalWarpRange += applySlotMultiplier(caps.range, amp);
13247
13256
  }
13248
13257
  else if (modType === MODULE_BATTERY) {
13249
- batteryCount++;
13250
- const vol = decodedStats.volatility ?? 0;
13251
- const thm = decodedStats.thermal ?? 0;
13252
- const pla = decodedStats.plasticity ?? 0;
13253
- const ins = decodedStats.insulation ?? 0;
13254
- totalBatteryStatSum += vol + thm + pla + ins;
13258
+ const caps = computeBatteryCapabilities(decodedStats);
13259
+ totalBatteryCapacity += applySlotMultiplierUint32(caps.capacity, amp);
13255
13260
  }
13256
13261
  }
13257
- if (hasGenerator && batteryCount > 0) {
13258
- const genCapBase = totalGenCapacity;
13259
- const bonusPctNum = 10 * batteryCount + Math.floor((totalBatteryStatSum * 10) / 2997);
13260
- totalGenCapacity += Math.floor((genCapBase * bonusPctNum) / 100);
13262
+ if (hasGenerator && totalBatteryCapacity > 0) {
13263
+ totalGenCapacity += totalBatteryCapacity;
13261
13264
  }
13262
13265
  const result = {
13263
13266
  hullmass: computeBaseHullmass$1(stats) + installedModuleMass,
13264
- capacity: baseCapacity + totalStorageBonus,
13267
+ capacity: clampUint32(baseCapacity + totalStorageCapacity),
13265
13268
  };
13266
13269
  if (hasEngine) {
13267
13270
  result.engines = { thrust: totalThrust, drain: totalEngineDrain };
@@ -13914,11 +13917,12 @@ function validateDisplayName(input, opts = {}) {
13914
13917
  const key = (c) => `${c.x},${c.y}`;
13915
13918
  const sameCoord = (a, b) => a.x === b.x && a.y === b.y;
13916
13919
  const dist = (a, b) => Math.hypot(a.x - b.x, a.y - b.y);
13920
+ const MAX_LEGS = 12;
13917
13921
  function planRoute(params) {
13918
13922
  const { origin, dest, perLegReach, graph } = params;
13919
13923
  const corridorSlack = params.corridorSlack ?? perLegReach;
13920
13924
  const nodeBudget = params.nodeBudget ?? 5000;
13921
- const maxLegs = params.maxLegs ?? 12;
13925
+ const maxLegs = params.maxLegs ?? MAX_LEGS;
13922
13926
  if (!graph.hasSystem(dest)) {
13923
13927
  return { ok: false, reason: 'empty-destination' };
13924
13928
  }
@@ -13976,9 +13980,33 @@ function planRoute(params) {
13976
13980
  }
13977
13981
  }
13978
13982
  if (cappedByMaxLegs) {
13979
- return { ok: false, reason: 'max-legs', furthest };
13983
+ return {
13984
+ ok: false,
13985
+ reason: 'max-legs',
13986
+ furthest,
13987
+ partialWaypoints: reconstructWaypoints(cameFrom, origin, furthest),
13988
+ };
13980
13989
  }
13981
- return { ok: false, reason: 'no-path', furthest };
13990
+ return {
13991
+ ok: false,
13992
+ reason: 'no-path',
13993
+ furthest,
13994
+ partialWaypoints: reconstructWaypoints(cameFrom, origin, furthest),
13995
+ };
13996
+ }
13997
+ function reconstructWaypoints(cameFrom, origin, target) {
13998
+ if (sameCoord(target, origin))
13999
+ return [];
14000
+ const path = [target];
14001
+ let cur = target;
14002
+ while (!sameCoord(cur, origin)) {
14003
+ const prev = cameFrom.get(key(cur));
14004
+ if (!prev)
14005
+ break;
14006
+ path.unshift(prev);
14007
+ cur = prev;
14008
+ }
14009
+ return path.slice(1);
13982
14010
  }
13983
14011
  function reconstruct(cameFrom, origin, dest) {
13984
14012
  const path = [dest];
@@ -14063,6 +14091,8 @@ const computeHaulerCapacity = (fin) => Math.max(1, 1 + idiv(fin, 400));
14063
14091
  const computeHaulerEfficiency = (con) => 2000 + con * 6;
14064
14092
  const computeHaulerDrain$1 = (com) => Math.max(3, 15 - idiv(com, 80));
14065
14093
  const computeWarpRange = (stat) => 100 + stat * 3;
14094
+ const computeCargoBayCapacity = (strength, density, hardness, cohesion) => 10000000 + idiv((strength + density + hardness + cohesion) * 50000000, 3996);
14095
+ const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500 + idiv((volatility + thermal + plasticity + insulation) * 7500, 3996);
14066
14096
  function entityDisplayName(itemId) {
14067
14097
  switch (itemId) {
14068
14098
  case ITEM_SHIP_T1_PACKED:
@@ -14094,11 +14124,13 @@ function moduleDisplayName(itemId) {
14094
14124
  case ITEM_CRAFTER_T1:
14095
14125
  return 'Crafter';
14096
14126
  case ITEM_STORAGE_T1:
14097
- return 'Storage';
14127
+ return 'Cargo Bay';
14098
14128
  case ITEM_HAULER_T1:
14099
14129
  return 'Hauler';
14100
14130
  case ITEM_WARP_T1:
14101
14131
  return 'Warp';
14132
+ case ITEM_BATTERY_T1:
14133
+ return 'Battery Bank';
14102
14134
  default:
14103
14135
  return 'Module';
14104
14136
  }
@@ -14140,17 +14172,16 @@ function formatModuleLine(slot, itemId, stats) {
14140
14172
  }
14141
14173
  case MODULE_CRAFTER: {
14142
14174
  const rea = decodeStat(stats, 0);
14143
- const com = decodeStat(stats, 1);
14144
- out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
14175
+ const con = decodeStat(stats, 1);
14176
+ out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(con)}`;
14145
14177
  break;
14146
14178
  }
14147
14179
  case MODULE_STORAGE: {
14148
14180
  const str = decodeStat(stats, 0);
14149
- const fin = decodeStat(stats, 2);
14150
- const sat = decodeStat(stats, 3);
14151
- const sum = str + fin + sat;
14152
- const pct = 10 + idiv(sum * 10, 2997);
14153
- out += ` +${pct}% capacity`;
14181
+ const den = decodeStat(stats, 1);
14182
+ const hrd = decodeStat(stats, 2);
14183
+ const com = decodeStat(stats, 3);
14184
+ out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd, com)}`;
14154
14185
  break;
14155
14186
  }
14156
14187
  case MODULE_HAULER: {
@@ -14165,6 +14196,14 @@ function formatModuleLine(slot, itemId, stats) {
14165
14196
  out += ` Range ${computeWarpRange(stat)}`;
14166
14197
  break;
14167
14198
  }
14199
+ case MODULE_BATTERY: {
14200
+ const vol = decodeStat(stats, 0);
14201
+ const thm = decodeStat(stats, 1);
14202
+ const pla = decodeStat(stats, 2);
14203
+ const ins = decodeStat(stats, 3);
14204
+ out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
14205
+ break;
14206
+ }
14168
14207
  }
14169
14208
  return out;
14170
14209
  }
@@ -15487,19 +15526,21 @@ const capabilityNames = [
15487
15526
  'Crafter',
15488
15527
  'Launch',
15489
15528
  'Hauler',
15490
- 'Battery',
15491
15529
  ];
15492
15530
  const capabilityAttributes = [
15493
15531
  { capability: 'Hull', attribute: 'mass', description: 'Total mass of the hull' },
15494
- { capability: 'Storage', attribute: 'capacity', description: 'Maximum mass that can be stored' },
15495
15532
  {
15496
15533
  capability: 'Storage',
15497
- attribute: 'bonus',
15498
- description: 'Capacity bonus added by an installed Storage module',
15534
+ attribute: 'capacity',
15535
+ description: 'Cargo capacity added by hulls and installed Cargo Bay modules',
15499
15536
  },
15500
15537
  { capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
15501
15538
  { capability: 'Movement', attribute: 'drain', description: 'Energy consumed per movement' },
15502
- { capability: 'Energy', attribute: 'capacity', description: 'Maximum energy storage' },
15539
+ {
15540
+ capability: 'Energy',
15541
+ attribute: 'capacity',
15542
+ description: 'Energy capacity from Generators and installed Battery Bank modules',
15543
+ },
15503
15544
  { capability: 'Energy', attribute: 'recharge', description: 'Energy regeneration rate' },
15504
15545
  { capability: 'Loader', attribute: 'mass', description: 'Weight of the loader unit itself' },
15505
15546
  { capability: 'Loader', attribute: 'thrust', description: 'Loading speed/force' },
@@ -15537,11 +15578,6 @@ const capabilityAttributes = [
15537
15578
  attribute: 'drain',
15538
15579
  description: 'Energy consumed per target during haul-beam operation',
15539
15580
  },
15540
- {
15541
- capability: 'Battery',
15542
- attribute: 'bonus',
15543
- description: 'Energy capacity bonus added by an installed Battery module',
15544
- },
15545
15581
  ];
15546
15582
  const invertedAttributes = new Set(['drain', 'mass']);
15547
15583
  function isInvertedAttribute(attribute) {
@@ -15582,10 +15618,10 @@ const SLOT_FORMULAS = {
15582
15618
  1: { capability: 'Crafter', attribute: 'drain' },
15583
15619
  },
15584
15620
  storage: {
15585
- 0: { capability: 'Storage', attribute: 'bonus' },
15586
- 1: { capability: 'Storage', attribute: 'bonus' },
15587
- 2: { capability: 'Storage', attribute: 'bonus' },
15588
- 3: { capability: 'Storage', attribute: 'bonus' },
15621
+ 0: { capability: 'Storage', attribute: 'capacity' },
15622
+ 1: { capability: 'Storage', attribute: 'capacity' },
15623
+ 2: { capability: 'Storage', attribute: 'capacity' },
15624
+ 3: { capability: 'Storage', attribute: 'capacity' },
15589
15625
  },
15590
15626
  hauler: {
15591
15627
  0: { capability: 'Hauler', attribute: 'capacity' },
@@ -15596,10 +15632,10 @@ const SLOT_FORMULAS = {
15596
15632
  0: { capability: 'Warp', attribute: 'range' },
15597
15633
  },
15598
15634
  battery: {
15599
- 0: { capability: 'Battery', attribute: 'bonus' },
15600
- 1: { capability: 'Battery', attribute: 'bonus' },
15601
- 2: { capability: 'Battery', attribute: 'bonus' },
15602
- 3: { capability: 'Battery', attribute: 'bonus' },
15635
+ 0: { capability: 'Energy', attribute: 'capacity' },
15636
+ 1: { capability: 'Energy', attribute: 'capacity' },
15637
+ 2: { capability: 'Energy', attribute: 'capacity' },
15638
+ 3: { capability: 'Energy', attribute: 'capacity' },
15603
15639
  },
15604
15640
  'ship-t1': ENTITY_HULL_SLOTS,
15605
15641
  'container-t1': ENTITY_HULL_SLOTS,
@@ -15843,7 +15879,7 @@ function resolveComponent(id, stats) {
15843
15879
  stats: resolvedStats,
15844
15880
  };
15845
15881
  }
15846
- function computeCapabilityGroup(moduleType, stats, tier) {
15882
+ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
15847
15883
  switch (moduleType) {
15848
15884
  case MODULE_ENGINE: {
15849
15885
  const caps = computeEngineCapabilities(stats);
@@ -15909,13 +15945,28 @@ function computeCapabilityGroup(moduleType, stats, tier) {
15909
15945
  };
15910
15946
  }
15911
15947
  case MODULE_STORAGE: {
15912
- const str = stats.strength;
15913
- const den = stats.density;
15914
- const hrd = stats.hardness;
15915
- const com = stats.cohesion;
15916
- const statSum = str + den + hrd + com;
15917
- const pct = 10 + Math.floor((statSum * 10) / 2997);
15918
- return { capability: 'Storage', attributes: [{ label: 'Capacity Bonus', value: pct }] };
15948
+ const caps = computeStorageCapabilities(stats);
15949
+ return {
15950
+ capability: 'Storage',
15951
+ attributes: [
15952
+ {
15953
+ label: 'Cargo Capacity',
15954
+ value: applySlotMultiplierUint32(caps.capacity, outputPct),
15955
+ },
15956
+ ],
15957
+ };
15958
+ }
15959
+ case MODULE_BATTERY: {
15960
+ const caps = computeBatteryCapabilities(stats);
15961
+ return {
15962
+ capability: 'Energy',
15963
+ attributes: [
15964
+ {
15965
+ label: 'Energy Capacity',
15966
+ value: applySlotMultiplierUint32(caps.capacity, outputPct),
15967
+ },
15968
+ ],
15969
+ };
15919
15970
  }
15920
15971
  default:
15921
15972
  return undefined;
@@ -16000,9 +16051,10 @@ function resolveEntity(id, stats, modules) {
16000
16051
  catch {
16001
16052
  modName = itemMetadata[modItemId]?.name ?? 'Module';
16002
16053
  }
16003
- const group = computeCapabilityGroup(modType, decodedStats, modTier);
16054
+ const group = computeCapabilityGroup(modType, decodedStats, modTier, slot.outputPct);
16004
16055
  return {
16005
16056
  name: modName,
16057
+ capability: group?.capability,
16006
16058
  installed: true,
16007
16059
  attributes: group?.attributes,
16008
16060
  };
@@ -16086,9 +16138,15 @@ const TEMPLATES = {
16086
16138
  },
16087
16139
  storage: {
16088
16140
  id: 'module.storage.description',
16089
- template: 'boosts cargo capacity by {bonus}%',
16090
- params: [['bonus', 'Capacity Bonus']],
16091
- highlightKeys: ['bonus'],
16141
+ template: 'adds {capacity} cargo capacity',
16142
+ params: [['capacity', 'Cargo Capacity']],
16143
+ highlightKeys: ['capacity'],
16144
+ },
16145
+ energy: {
16146
+ id: 'module.energy-capacity.description',
16147
+ template: 'adds {capacity} energy capacity',
16148
+ params: [['capacity', 'Energy Capacity']],
16149
+ highlightKeys: ['capacity'],
16092
16150
  },
16093
16151
  hauler: {
16094
16152
  id: 'module.hauler.description',
@@ -16130,9 +16188,12 @@ function describeModuleForItem(resolved) {
16130
16188
  return describeModule({ capability: group.capability, attributes: group.attributes });
16131
16189
  }
16132
16190
  function describeModuleForSlot(slot) {
16133
- if (!slot.installed || !slot.name || !slot.attributes)
16191
+ if (!slot.installed || !slot.attributes)
16134
16192
  return null;
16135
- return describeModule({ capability: slot.name, attributes: slot.attributes });
16193
+ const capability = slot.capability ?? slot.name;
16194
+ if (!capability)
16195
+ return null;
16196
+ return describeModule({ capability, attributes: slot.attributes });
16136
16197
  }
16137
16198
  function renderDescription(desc, options) {
16138
16199
  const translate = options?.translate ?? ((_id, fallback) => fallback);
@@ -16287,11 +16348,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
16287
16348
  }
16288
16349
  case MODULE_CRAFTER: {
16289
16350
  const rea = decodeStat(stats, 0);
16290
- const fin = decodeStat(stats, 1);
16351
+ const con = decodeStat(stats, 1);
16291
16352
  base.push({ first: 'reactivity', second: ['uint16', rea] });
16292
- base.push({ first: 'fineness', second: ['uint16', fin] });
16353
+ base.push({ first: 'conductivity', second: ['uint16', con] });
16293
16354
  base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(rea)] });
16294
- base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(fin)] });
16355
+ base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(con)] });
16295
16356
  break;
16296
16357
  }
16297
16358
  case MODULE_STORAGE: {
@@ -16299,14 +16360,28 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
16299
16360
  const den = decodeStat(stats, 1);
16300
16361
  const hrd = decodeStat(stats, 2);
16301
16362
  const com = decodeStat(stats, 3);
16302
- const sum = str + den + hrd + com;
16303
16363
  base.push({ first: 'strength', second: ['uint16', str] });
16304
16364
  base.push({ first: 'density', second: ['uint16', den] });
16305
16365
  base.push({ first: 'hardness', second: ['uint16', hrd] });
16306
16366
  base.push({ first: 'cohesion', second: ['uint16', com] });
16307
16367
  base.push({
16308
- first: 'capacity_bonus_pct',
16309
- second: ['uint16', 10 + Math.floor((sum * 10) / 2997)],
16368
+ first: 'capacity',
16369
+ second: ['uint32', computeCargoBayCapacity(str, den, hrd, com)],
16370
+ });
16371
+ break;
16372
+ }
16373
+ case MODULE_BATTERY: {
16374
+ const vol = decodeStat(stats, 0);
16375
+ const thm = decodeStat(stats, 1);
16376
+ const pla = decodeStat(stats, 2);
16377
+ const ins = decodeStat(stats, 3);
16378
+ base.push({ first: 'volatility', second: ['uint16', vol] });
16379
+ base.push({ first: 'thermal', second: ['uint16', thm] });
16380
+ base.push({ first: 'plasticity', second: ['uint16', pla] });
16381
+ base.push({ first: 'insulation', second: ['uint16', ins] });
16382
+ base.push({
16383
+ first: 'capacity',
16384
+ second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
16310
16385
  });
16311
16386
  break;
16312
16387
  }
@@ -16392,6 +16467,8 @@ var index = /*#__PURE__*/Object.freeze({
16392
16467
  computeHaulerEfficiency: computeHaulerEfficiency,
16393
16468
  computeHaulerDrain: computeHaulerDrain$1,
16394
16469
  computeWarpRange: computeWarpRange,
16470
+ computeCargoBayCapacity: computeCargoBayCapacity,
16471
+ computeBatteryBankCapacity: computeBatteryBankCapacity,
16395
16472
  entityDisplayName: entityDisplayName,
16396
16473
  moduleDisplayName: moduleDisplayName,
16397
16474
  formatModuleLine: formatModuleLine,
@@ -16561,5 +16638,5 @@ function planParallelTransfer(entity, target) {
16561
16638
  return allocateProportional(laneWeights, requestedQty).filter((e) => e.quantity > 0);
16562
16639
  }
16563
16640
 
16564
- export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ConstructionManager, Coordinates, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_LOADER_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_REACTOR, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESONATOR, ITEM_SENSOR, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, InventoryAccessor, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION$1 as PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerDrain, computeHaulerEfficiency, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, estimateDealTravelTime, estimateTravelTime, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gathererDepthForTier, getCapabilityAttributes, getCategoryInfo, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getRecipe, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, kindCan, laneKeyForModule, lerp$1 as lerp, makeEntity, mapEntity, maxCraftable, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, planParallelGather, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, rawScheduleEnd, readCommonBase, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
16641
+ export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, CANCEL_CONTAINS_GROUPED_TASK, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ConstructionManager, Coordinates, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_LOADER_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_REACTOR, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESONATOR, ITEM_SENSOR, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, InventoryAccessor, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION$1 as PRECISION, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerDrain, computeHaulerEfficiency, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, estimateDealTravelTime, estimateTravelTime, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gathererDepthForTier, getCapabilityAttributes, getCategoryInfo, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getRecipe, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, kindCan, laneKeyForModule, lerp$1 as lerp, makeEntity, mapEntity, maxCraftable, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, planParallelGather, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, rawScheduleEnd, readCommonBase, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
16565
16642
  //# sourceMappingURL=shipload.m.js.map