@shipload/sdk 2.0.0-rc14 → 2.0.0-rc16

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
@@ -2204,7 +2204,36 @@ function coordsToLocationId(coords) {
2204
2204
  const id = (x << BigInt(32)) | y;
2205
2205
  return UInt64.from(id);
2206
2206
  }
2207
+ const TIER_ADJECTIVES = {
2208
+ 1: 'Crude',
2209
+ 2: 'Dense',
2210
+ 3: 'Pure',
2211
+ 4: 'Prime',
2212
+ 5: 'Pristine',
2213
+ 6: 'Radiant',
2214
+ 7: 'Exotic',
2215
+ 8: 'Mythic',
2216
+ 9: 'Cosmic',
2217
+ 10: 'Ascendant',
2218
+ };
2219
+ const CATEGORY_LABELS = {
2220
+ ore: 'Ore',
2221
+ crystal: 'Crystal',
2222
+ gas: 'Gas',
2223
+ regolith: 'Regolith',
2224
+ biomass: 'Biomass',
2225
+ };
2226
+ function tierNumber(tier) {
2227
+ return Number(String(tier).replace(/^t/i, ''));
2228
+ }
2207
2229
  let Item = class Item extends Struct {
2230
+ get displayName() {
2231
+ if (this.name && this.name.length > 0)
2232
+ return this.name;
2233
+ const adj = TIER_ADJECTIVES[tierNumber(this.tier)] ?? 'Unknown';
2234
+ const cat = CATEGORY_LABELS[this.category] ?? 'Resource';
2235
+ return `${adj} ${cat}`;
2236
+ }
2208
2237
  };
2209
2238
  __decorate([
2210
2239
  Struct.field(UInt16)
@@ -2273,21 +2302,21 @@ const PLANET_SUBTYPE_ICY = 3;
2273
2302
  const PLANET_SUBTYPE_OCEAN = 4;
2274
2303
  const PLANET_SUBTYPE_INDUSTRIAL = 5;
2275
2304
  const RESOURCE_CATALOG = [
2276
- { id: 26, tier: 't1' },
2277
- { id: 13, tier: 't2' },
2278
- { id: 24, tier: 't3' },
2279
- { id: 29, tier: 't1' },
2280
- { id: 47, tier: 't2' },
2281
- { id: 79, tier: 't3' },
2282
- { id: 1, tier: 't1' },
2283
- { id: 2, tier: 't2' },
2284
- { id: 18, tier: 't3' },
2285
- { id: 14, tier: 't1' },
2286
- { id: 1000, tier: 't2' },
2287
- { id: 1001, tier: 't3' },
2288
- { id: 6, tier: 't1' },
2289
- { id: 1003, tier: 't2' },
2290
- { id: 1002, tier: 't3' },
2305
+ { id: 101, tier: 't1' },
2306
+ { id: 102, tier: 't2' },
2307
+ { id: 103, tier: 't3' },
2308
+ { id: 201, tier: 't1' },
2309
+ { id: 202, tier: 't2' },
2310
+ { id: 203, tier: 't3' },
2311
+ { id: 301, tier: 't1' },
2312
+ { id: 302, tier: 't2' },
2313
+ { id: 303, tier: 't3' },
2314
+ { id: 401, tier: 't1' },
2315
+ { id: 402, tier: 't2' },
2316
+ { id: 403, tier: 't3' },
2317
+ { id: 501, tier: 't1' },
2318
+ { id: 502, tier: 't2' },
2319
+ { id: 503, tier: 't3' },
2291
2320
  ];
2292
2321
  function getDepthThreshold(tier) {
2293
2322
  switch (tier) {
@@ -2344,14 +2373,14 @@ function getResourceWeight(itemId, stratum) {
2344
2373
  return 10;
2345
2374
  }
2346
2375
  }
2347
- const ASTEROID_RESOURCES = [26, 13, 24, 29, 47];
2348
- const NEBULA_RESOURCES = [47, 79, 1, 2, 18];
2349
- const GAS_GIANT_RESOURCES = [1, 2, 18, 14, 6];
2350
- const ROCKY_RESOURCES = [26, 13, 24, 14, 1000, 1001, 1002];
2351
- const TERRESTRIAL_RESOURCES = [29, 47, 14, 1000, 6, 1003, 1002];
2352
- const ICY_RESOURCES = [26, 1, 2, 14, 1001, 6, 1003];
2353
- const OCEAN_RESOURCES = [29, 79, 1, 18, 6, 1003, 1002];
2354
- const INDUSTRIAL_RESOURCES = [26, 13, 24, 29, 79, 1000, 1001];
2376
+ const ASTEROID_RESOURCES = [101, 102, 103, 201, 202];
2377
+ const NEBULA_RESOURCES = [202, 203, 301, 302, 303];
2378
+ const GAS_GIANT_RESOURCES = [301, 302, 303, 401, 501];
2379
+ const ROCKY_RESOURCES = [101, 102, 103, 401, 402, 403, 503];
2380
+ const TERRESTRIAL_RESOURCES = [201, 202, 401, 402, 501, 502, 503];
2381
+ const ICY_RESOURCES = [101, 301, 302, 401, 403, 501, 502];
2382
+ const OCEAN_RESOURCES = [201, 203, 301, 303, 501, 502, 503];
2383
+ const INDUSTRIAL_RESOURCES = [101, 102, 103, 201, 203, 402, 403];
2355
2384
  function getLocationCandidates(locationType, subtype) {
2356
2385
  if (locationType === 2)
2357
2386
  return ASTEROID_RESOURCES;
@@ -4772,139 +4801,139 @@ class BaseManager {
4772
4801
 
4773
4802
  var itemsData = [
4774
4803
  {
4775
- id: 26,
4776
- name: "Iron",
4777
- description: "A versatile metal used in hulls and structures.",
4804
+ id: 101,
4805
+ name: "",
4806
+ description: "",
4778
4807
  mass: 30000,
4779
- category: "metal",
4808
+ category: "ore",
4780
4809
  tier: "t1",
4781
- color: "#B7410E"
4810
+ color: "#C26D3F"
4782
4811
  },
4783
4812
  {
4784
- id: 13,
4785
- name: "Aluminum",
4786
- description: "A lightweight metal for structural components.",
4813
+ id: 102,
4814
+ name: "",
4815
+ description: "",
4787
4816
  mass: 27000,
4788
- category: "metal",
4817
+ category: "ore",
4789
4818
  tier: "t2",
4790
- color: "#A8B5C2"
4819
+ color: "#C26D3F"
4791
4820
  },
4792
4821
  {
4793
- id: 24,
4794
- name: "Chromium",
4795
- description: "A hard, corrosion-resistant alloy metal.",
4822
+ id: 103,
4823
+ name: "",
4824
+ description: "",
4796
4825
  mass: 52000,
4797
- category: "metal",
4826
+ category: "ore",
4798
4827
  tier: "t3",
4799
- color: "#D4E6F1"
4828
+ color: "#C26D3F"
4800
4829
  },
4801
4830
  {
4802
- id: 29,
4803
- name: "Copper",
4804
- description: "A conductive metal for electronics and wiring.",
4831
+ id: 201,
4832
+ name: "",
4833
+ description: "",
4805
4834
  mass: 40000,
4806
- category: "precious",
4835
+ category: "crystal",
4807
4836
  tier: "t1",
4808
- color: "#B87333"
4837
+ color: "#4ADBFF"
4809
4838
  },
4810
4839
  {
4811
- id: 47,
4812
- name: "Silver",
4813
- description: "A high-conductivity metal for precision components.",
4840
+ id: 202,
4841
+ name: "",
4842
+ description: "",
4814
4843
  mass: 55000,
4815
- category: "precious",
4844
+ category: "crystal",
4816
4845
  tier: "t2",
4817
- color: "#C0C0C0"
4846
+ color: "#4ADBFF"
4818
4847
  },
4819
4848
  {
4820
- id: 79,
4821
- name: "Gold",
4822
- description: "A corrosion-proof metal for advanced electronics.",
4849
+ id: 203,
4850
+ name: "",
4851
+ description: "",
4823
4852
  mass: 70000,
4824
- category: "precious",
4853
+ category: "crystal",
4825
4854
  tier: "t3",
4826
- color: "#FFD700"
4855
+ color: "#4ADBFF"
4827
4856
  },
4828
4857
  {
4829
- id: 1,
4830
- name: "Hydrogen",
4831
- description: "A lightweight gas used for fuel cells and propulsion.",
4858
+ id: 301,
4859
+ name: "",
4860
+ description: "",
4832
4861
  mass: 15000,
4833
4862
  category: "gas",
4834
4863
  tier: "t1",
4835
- color: "#7EC8E3"
4864
+ color: "#B8E4A0"
4836
4865
  },
4837
4866
  {
4838
- id: 2,
4839
- name: "Helium",
4840
- description: "An inert noble gas used in energy systems.",
4867
+ id: 302,
4868
+ name: "",
4869
+ description: "",
4841
4870
  mass: 2000,
4842
4871
  category: "gas",
4843
4872
  tier: "t2",
4844
- color: "#F5E6CC"
4873
+ color: "#B8E4A0"
4845
4874
  },
4846
4875
  {
4847
- id: 18,
4848
- name: "Argon",
4849
- description: "A noble gas used in industrial and energy applications.",
4876
+ id: 303,
4877
+ name: "",
4878
+ description: "",
4850
4879
  mass: 8000,
4851
4880
  category: "gas",
4852
4881
  tier: "t3",
4853
- color: "#9B59B6"
4882
+ color: "#B8E4A0"
4854
4883
  },
4855
4884
  {
4856
- id: 14,
4857
- name: "Silicon",
4858
- description: "A semiconductor used in sensors and computing.",
4885
+ id: 401,
4886
+ name: "",
4887
+ description: "",
4859
4888
  mass: 22000,
4860
- category: "mineral",
4889
+ category: "regolith",
4861
4890
  tier: "t1",
4862
- color: "#B8A9C9"
4891
+ color: "#C4A57B"
4863
4892
  },
4864
4893
  {
4865
- id: 1000,
4866
- name: "Quartz",
4867
- description: "A crystalline mineral for sensors and optics.",
4894
+ id: 402,
4895
+ name: "",
4896
+ description: "",
4868
4897
  mass: 35000,
4869
- category: "mineral",
4898
+ category: "regolith",
4870
4899
  tier: "t2",
4871
- color: "#E8D5B7"
4900
+ color: "#C4A57B"
4872
4901
  },
4873
4902
  {
4874
- id: 1001,
4875
- name: "Sapphire",
4876
- description: "A precious crystal for precision instruments.",
4903
+ id: 403,
4904
+ name: "",
4905
+ description: "",
4877
4906
  mass: 45000,
4878
- category: "mineral",
4907
+ category: "regolith",
4879
4908
  tier: "t3",
4880
- color: "#0F52BA"
4909
+ color: "#C4A57B"
4881
4910
  },
4882
4911
  {
4883
- id: 6,
4884
- name: "Carbon",
4885
- description: "A versatile element for life support and coatings.",
4912
+ id: 501,
4913
+ name: "",
4914
+ description: "",
4886
4915
  mass: 15000,
4887
- category: "organic",
4916
+ category: "biomass",
4888
4917
  tier: "t1",
4889
- color: "#4A4A4A"
4918
+ color: "#5A8B3E"
4890
4919
  },
4891
4920
  {
4892
- id: 1003,
4893
- name: "Biomass",
4894
- description: "Organic matter for life support systems.",
4921
+ id: 502,
4922
+ name: "",
4923
+ description: "",
4895
4924
  mass: 30000,
4896
- category: "organic",
4925
+ category: "biomass",
4897
4926
  tier: "t2",
4898
- color: "#8B4513"
4927
+ color: "#5A8B3E"
4899
4928
  },
4900
4929
  {
4901
- id: 1002,
4902
- name: "Resin",
4903
- description: "A fossilized organic compound for coatings and sealants.",
4930
+ id: 503,
4931
+ name: "",
4932
+ description: "",
4904
4933
  mass: 25000,
4905
- category: "organic",
4934
+ category: "biomass",
4906
4935
  tier: "t3",
4907
- color: "#DAA520"
4936
+ color: "#5A8B3E"
4908
4937
  }
4909
4938
  ];
4910
4939
 
@@ -4972,38 +5001,38 @@ const components = [
4972
5001
  {
4973
5002
  id: ITEM_HULL_PLATES,
4974
5003
  name: 'Hull Plates',
4975
- description: 'Structural plating formed from metal. Used in hulls, containers, and frames.',
5004
+ description: 'Structural plating formed from ore. Used in hulls, containers, and frames.',
4976
5005
  color: '#7B8D9E',
4977
5006
  mass: 50000,
4978
5007
  stats: [
4979
- { key: 'strength', source: 'metal' },
4980
- { key: 'density', source: 'metal' },
5008
+ { key: 'strength', source: 'ore' },
5009
+ { key: 'density', source: 'ore' },
4981
5010
  ],
4982
- recipe: [{ category: 'metal', quantity: 15 }],
5011
+ recipe: [{ category: 'ore', quantity: 15 }],
4983
5012
  usedIn: [
4984
5013
  { type: 'entity', name: 'Container' },
4985
- { type: 'entity', name: 'Warehouse T1' },
4986
- { type: 'entity', name: 'Ship T1' },
5014
+ { type: 'entity', name: 'Warehouse' },
5015
+ { type: 'entity', name: 'Ship' },
4987
5016
  ],
4988
5017
  },
4989
5018
  {
4990
5019
  id: ITEM_CARGO_LINING,
4991
5020
  name: 'Cargo Lining',
4992
- description: 'Precision-formed composite lining for cargo storage. Combines precious metal shaping with organic sealing.',
4993
- color: '#D4A843',
5021
+ description: 'Composite lining formed from fine regolith bound in biomass polymer. Dense enough to seal cargo holds, flexible enough to absorb vibration.',
5022
+ color: '#C4A57B',
4994
5023
  mass: 30000,
4995
5024
  stats: [
4996
- { key: 'ductility', source: 'precious' },
4997
- { key: 'purity', source: 'organic' },
5025
+ { key: 'fineness', source: 'regolith' },
5026
+ { key: 'saturation', source: 'biomass' },
4998
5027
  ],
4999
5028
  recipe: [
5000
- { category: 'precious', quantity: 6 },
5001
- { category: 'organic', quantity: 14 },
5029
+ { category: 'regolith', quantity: 10 },
5030
+ { category: 'biomass', quantity: 20 },
5002
5031
  ],
5003
5032
  usedIn: [
5004
5033
  { type: 'entity', name: 'Container' },
5005
- { type: 'entity', name: 'Warehouse T1' },
5006
- { type: 'entity', name: 'Ship T1' },
5034
+ { type: 'module', name: 'Loader' },
5035
+ { type: 'module', name: 'Storage' },
5007
5036
  ],
5008
5037
  },
5009
5038
  {
@@ -5022,73 +5051,76 @@ const components = [
5022
5051
  {
5023
5052
  id: ITEM_POWER_CELL,
5024
5053
  name: 'Power Cell',
5025
- description: 'Crystalline energy storage matrix formed from resonant minerals.',
5026
- color: '#7B5AE8',
5054
+ description: 'Crystalline energy storage matrix. Resonant lattices retain and release charge.',
5055
+ color: '#4ADBFF',
5027
5056
  mass: 30000,
5028
5057
  stats: [
5029
- { key: 'resonance', source: 'mineral' },
5030
- { key: 'clarity', source: 'mineral' },
5058
+ { key: 'resonance', source: 'crystal' },
5059
+ { key: 'reflectivity', source: 'crystal' },
5060
+ ],
5061
+ recipe: [{ category: 'crystal', quantity: 20 }],
5062
+ usedIn: [
5063
+ { type: 'module', name: 'Generator' },
5064
+ { type: 'module', name: 'Hauler' },
5031
5065
  ],
5032
- recipe: [{ category: 'mineral', quantity: 20 }],
5033
- usedIn: [{ type: 'module', name: 'Generator' }],
5034
5066
  },
5035
5067
  {
5036
5068
  id: ITEM_MATTER_CONDUIT,
5037
5069
  name: 'Matter Conduit',
5038
- description: 'Heavy-duty metal shaft used in gathering equipment.',
5070
+ description: 'Heavy-duty ore shaft used in gathering equipment.',
5039
5071
  color: '#7B8D9E',
5040
5072
  mass: 50000,
5041
5073
  stats: [
5042
- { key: 'strength', source: 'metal' },
5043
- { key: 'tolerance', source: 'metal' },
5074
+ { key: 'strength', source: 'ore' },
5075
+ { key: 'tolerance', source: 'ore' },
5044
5076
  ],
5045
- recipe: [{ category: 'metal', quantity: 15 }],
5077
+ recipe: [{ category: 'ore', quantity: 15 }],
5046
5078
  usedIn: [{ type: 'module', name: 'Gatherer' }],
5047
5079
  },
5048
5080
  {
5049
5081
  id: ITEM_SURVEY_PROBE,
5050
5082
  name: 'Survey Probe',
5051
- description: 'Precious metal sensor array for deep resource detection.',
5052
- color: '#D4A843',
5083
+ description: 'Crystal-lattice sensor array for deep resource detection.',
5084
+ color: '#4ADBFF',
5053
5085
  mass: 30000,
5054
5086
  stats: [
5055
- { key: 'conductivity', source: 'precious' },
5056
- { key: 'reflectivity', source: 'precious' },
5087
+ { key: 'conductivity', source: 'crystal' },
5088
+ { key: 'reflectivity', source: 'crystal' },
5057
5089
  ],
5058
- recipe: [{ category: 'precious', quantity: 10 }],
5090
+ recipe: [{ category: 'crystal', quantity: 10 }],
5059
5091
  usedIn: [{ type: 'module', name: 'Gatherer' }],
5060
5092
  },
5061
5093
  {
5062
5094
  id: ITEM_CARGO_ARM,
5063
5095
  name: 'Cargo Arm',
5064
- description: 'Flexible organic composite arm for cargo handling.',
5065
- color: '#6B8E5A',
5096
+ description: 'Flexible biomass composite arm for cargo handling.',
5097
+ color: '#5A8B3E',
5066
5098
  mass: 30000,
5067
5099
  stats: [
5068
- { key: 'plasticity', source: 'organic' },
5069
- { key: 'insulation', source: 'organic' },
5100
+ { key: 'plasticity', source: 'biomass' },
5101
+ { key: 'insulation', source: 'biomass' },
5070
5102
  ],
5071
- recipe: [{ category: 'organic', quantity: 32 }],
5103
+ recipe: [{ category: 'biomass', quantity: 32 }],
5072
5104
  usedIn: [{ type: 'module', name: 'Loader' }],
5073
5105
  },
5074
5106
  {
5075
5107
  id: ITEM_TOOL_BIT,
5076
5108
  name: 'Tool Bit',
5077
- description: 'Dense mineral cutting head for manufacturing operations.',
5078
- color: '#B8A9C9',
5109
+ description: 'Dense regolith cutting head for manufacturing operations.',
5110
+ color: '#C4A57B',
5079
5111
  mass: 30000,
5080
5112
  stats: [
5081
- { key: 'hardness', source: 'mineral' },
5082
- { key: 'clarity', source: 'mineral' },
5113
+ { key: 'hardness', source: 'regolith' },
5114
+ { key: 'composition', source: 'regolith' },
5083
5115
  ],
5084
- recipe: [{ category: 'mineral', quantity: 20 }],
5116
+ recipe: [{ category: 'regolith', quantity: 20 }],
5085
5117
  usedIn: [{ type: 'module', name: 'Manufacturing' }],
5086
5118
  },
5087
5119
  {
5088
5120
  id: ITEM_REACTION_CHAMBER,
5089
5121
  name: 'Reaction Chamber',
5090
5122
  description: 'Gas-pressurized vessel for controlled manufacturing reactions.',
5091
- color: '#7EC8E3',
5123
+ color: '#B8E4A0',
5092
5124
  mass: 50000,
5093
5125
  stats: [
5094
5126
  { key: 'reactivity', source: 'gas' },
@@ -5100,48 +5132,48 @@ const components = [
5100
5132
  {
5101
5133
  id: ITEM_FOCUSING_ARRAY,
5102
5134
  name: 'Focusing Array',
5103
- description: "Precision-formed precious-metal lens array. Routes the haul beam's energy efficiently to the target lock.",
5104
- color: '#D4A843',
5135
+ description: "Precision-formed crystal lens array. Routes the haul beam's energy efficiently to the target lock.",
5136
+ color: '#4ADBFF',
5105
5137
  mass: 40000,
5106
5138
  stats: [
5107
- { key: 'conductivity', source: 'precious' },
5108
- { key: 'ductility', source: 'precious' },
5139
+ { key: 'conductivity', source: 'crystal' },
5140
+ { key: 'resonance', source: 'crystal' },
5109
5141
  ],
5110
- recipe: [{ category: 'precious', quantity: 25 }],
5111
- usedIn: [{ type: 'module', name: 'Hauler Module T1' }],
5142
+ recipe: [{ category: 'crystal', quantity: 25 }],
5143
+ usedIn: [{ type: 'module', name: 'Hauler' }],
5112
5144
  },
5113
5145
  {
5114
5146
  id: ITEM_HULL_PLATES_T2,
5115
5147
  name: 'Hull Plates T2',
5116
- description: 'Advanced structural plating reinforced with tier 2 metals.',
5148
+ description: 'Advanced structural plating reinforced with tier 2 ore.',
5117
5149
  color: '#9BADB8',
5118
5150
  mass: 50000,
5119
5151
  stats: [
5120
- { key: 'strength', source: 'metal' },
5121
- { key: 'density', source: 'metal' },
5152
+ { key: 'strength', source: 'ore' },
5153
+ { key: 'density', source: 'ore' },
5122
5154
  ],
5123
5155
  recipe: [
5124
5156
  { itemId: ITEM_HULL_PLATES, quantity: 2 },
5125
- { category: 'metal', quantity: 15 },
5157
+ { category: 'ore', quantity: 15 },
5126
5158
  ],
5127
- usedIn: [{ type: 'entity', name: 'Container T2' }],
5159
+ usedIn: [{ type: 'entity', name: 'Container' }],
5128
5160
  },
5129
5161
  {
5130
5162
  id: ITEM_CARGO_LINING_T2,
5131
- name: 'Cargo Lining T2',
5132
- description: 'Advanced composite lining with improved storage properties.',
5133
- color: '#E0B84D',
5134
- mass: 30000,
5163
+ name: 'Cargo Lining',
5164
+ description: 'Advanced composite lining reinforced with tier 2 regolith and biomass polymer.',
5165
+ color: '#C4A57B',
5166
+ mass: 45000,
5135
5167
  stats: [
5136
- { key: 'ductility', source: 'precious' },
5137
- { key: 'purity', source: 'organic' },
5168
+ { key: 'fineness', source: 'regolith' },
5169
+ { key: 'saturation', source: 'biomass' },
5138
5170
  ],
5139
5171
  recipe: [
5140
5172
  { itemId: ITEM_CARGO_LINING, quantity: 2 },
5141
- { category: 'precious', quantity: 6 },
5142
- { category: 'organic', quantity: 14 },
5173
+ { category: 'regolith', quantity: 5 },
5174
+ { category: 'biomass', quantity: 10 },
5143
5175
  ],
5144
- usedIn: [{ type: 'entity', name: 'Container T2' }],
5176
+ usedIn: [{ type: 'entity', name: 'Container' }],
5145
5177
  },
5146
5178
  ];
5147
5179
  const entityRecipes = [
@@ -5158,13 +5190,13 @@ const entityRecipes = [
5158
5190
  stats: [
5159
5191
  { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
5160
5192
  { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
5161
- { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
5162
- { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
5193
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'fineness' },
5194
+ { key: 'saturation', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'saturation' },
5163
5195
  ],
5164
5196
  },
5165
5197
  {
5166
5198
  id: 'ship-t1',
5167
- name: 'Ship T1',
5199
+ name: 'Ship',
5168
5200
  description: 'General-purpose vessel with 5 module slots.',
5169
5201
  color: '#4AE898',
5170
5202
  packedItemId: ITEM_SHIP_T1_PACKED,
@@ -5175,8 +5207,8 @@ const entityRecipes = [
5175
5207
  stats: [
5176
5208
  { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
5177
5209
  { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
5178
- { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
5179
- { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
5210
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'fineness' },
5211
+ { key: 'saturation', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'saturation' },
5180
5212
  ],
5181
5213
  moduleSlots: [
5182
5214
  { type: MODULE_ANY },
@@ -5188,7 +5220,7 @@ const entityRecipes = [
5188
5220
  },
5189
5221
  {
5190
5222
  id: 'warehouse-t1',
5191
- name: 'Warehouse T1',
5223
+ name: 'Warehouse',
5192
5224
  description: 'Massive stationary storage facility with a single loader module slot.',
5193
5225
  color: '#EAB308',
5194
5226
  packedItemId: ITEM_WAREHOUSE_T1_PACKED,
@@ -5199,8 +5231,8 @@ const entityRecipes = [
5199
5231
  stats: [
5200
5232
  { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
5201
5233
  { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
5202
- { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
5203
- { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
5234
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'fineness' },
5235
+ { key: 'saturation', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'saturation' },
5204
5236
  ],
5205
5237
  moduleSlots: [
5206
5238
  { type: MODULE_LOADER, label: 'Loader' },
@@ -5212,7 +5244,7 @@ const entityRecipes = [
5212
5244
  },
5213
5245
  {
5214
5246
  id: 'container-t2',
5215
- name: 'Container T2',
5247
+ name: 'Container',
5216
5248
  description: 'Advanced cargo container with improved capacity formulas.',
5217
5249
  color: '#9BADB8',
5218
5250
  packedItemId: ITEM_CONTAINER_T2_PACKED,
@@ -5223,8 +5255,12 @@ const entityRecipes = [
5223
5255
  stats: [
5224
5256
  { key: 'strength', sourceComponentId: ITEM_HULL_PLATES_T2, sourceStatKey: 'strength' },
5225
5257
  { key: 'density', sourceComponentId: ITEM_HULL_PLATES_T2, sourceStatKey: 'density' },
5226
- { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING_T2, sourceStatKey: 'ductility' },
5227
- { key: 'purity', sourceComponentId: ITEM_CARGO_LINING_T2, sourceStatKey: 'purity' },
5258
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING_T2, sourceStatKey: 'fineness' },
5259
+ {
5260
+ key: 'saturation',
5261
+ sourceComponentId: ITEM_CARGO_LINING_T2,
5262
+ sourceStatKey: 'saturation',
5263
+ },
5228
5264
  ],
5229
5265
  },
5230
5266
  ];
@@ -5245,14 +5281,14 @@ const moduleRecipes = [
5245
5281
  {
5246
5282
  id: 'generator-t1',
5247
5283
  name: 'Generator',
5248
- description: 'Basic energy system. Stores and recharges energy from resonant minerals.',
5249
- color: '#7B5AE8',
5284
+ description: 'Basic energy system. Stores and recharges energy from resonant crystals.',
5285
+ color: '#4ADBFF',
5250
5286
  itemId: ITEM_GENERATOR_T1,
5251
5287
  moduleType: MODULE_GENERATOR,
5252
5288
  recipe: [{ itemId: ITEM_POWER_CELL, quantity: 5 }],
5253
5289
  stats: [
5254
5290
  { key: 'resonance', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'resonance' },
5255
- { key: 'clarity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'clarity' },
5291
+ { key: 'reflectivity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'reflectivity' },
5256
5292
  ],
5257
5293
  },
5258
5294
  {
@@ -5290,7 +5326,7 @@ const moduleRecipes = [
5290
5326
  id: 'loader-t1',
5291
5327
  name: 'Loader',
5292
5328
  description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
5293
- color: '#6B8E5A',
5329
+ color: '#5A8B3E',
5294
5330
  itemId: ITEM_LOADER_T1,
5295
5331
  moduleType: MODULE_LOADER,
5296
5332
  recipe: [
@@ -5298,7 +5334,7 @@ const moduleRecipes = [
5298
5334
  { itemId: ITEM_CARGO_ARM, quantity: 3 },
5299
5335
  ],
5300
5336
  stats: [
5301
- { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
5337
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'fineness' },
5302
5338
  { key: 'plasticity', sourceComponentId: ITEM_CARGO_ARM, sourceStatKey: 'plasticity' },
5303
5339
  ],
5304
5340
  },
@@ -5306,7 +5342,7 @@ const moduleRecipes = [
5306
5342
  id: 'manufacturing-t1',
5307
5343
  name: 'Manufacturing',
5308
5344
  description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
5309
- color: '#7EC8E3',
5345
+ color: '#B8E4A0',
5310
5346
  itemId: ITEM_MANUFACTURING_T1,
5311
5347
  moduleType: MODULE_CRAFTER,
5312
5348
  recipe: [
@@ -5319,7 +5355,7 @@ const moduleRecipes = [
5319
5355
  sourceComponentId: ITEM_REACTION_CHAMBER,
5320
5356
  sourceStatKey: 'reactivity',
5321
5357
  },
5322
- { key: 'clarity', sourceComponentId: ITEM_TOOL_BIT, sourceStatKey: 'clarity' },
5358
+ { key: 'composition', sourceComponentId: ITEM_TOOL_BIT, sourceStatKey: 'composition' },
5323
5359
  ],
5324
5360
  },
5325
5361
  {
@@ -5335,16 +5371,16 @@ const moduleRecipes = [
5335
5371
  ],
5336
5372
  stats: [
5337
5373
  { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
5338
- { key: 'ductility', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'ductility' },
5339
- { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
5340
- { key: 'density', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'density' },
5374
+ { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
5375
+ { key: 'fineness', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'fineness' },
5376
+ { key: 'saturation', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'saturation' },
5341
5377
  ],
5342
5378
  },
5343
5379
  {
5344
5380
  id: 'hauler-t1',
5345
- name: 'Hauler Module T1',
5381
+ name: 'Hauler',
5346
5382
  description: 'Projects a haul beam to lock onto and transport containers or warehouses through group travel.',
5347
- color: '#D4A843',
5383
+ color: '#4ADBFF',
5348
5384
  itemId: ITEM_HAULER_T1,
5349
5385
  moduleType: MODULE_HAULER,
5350
5386
  recipe: [
@@ -5353,13 +5389,12 @@ const moduleRecipes = [
5353
5389
  ],
5354
5390
  stats: [
5355
5391
  { key: 'resonance', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'resonance' },
5392
+ { key: 'reflectivity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'reflectivity' },
5356
5393
  {
5357
5394
  key: 'conductivity',
5358
5395
  sourceComponentId: ITEM_FOCUSING_ARRAY,
5359
5396
  sourceStatKey: 'conductivity',
5360
5397
  },
5361
- { key: 'clarity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'clarity' },
5362
- { key: 'ductility', sourceComponentId: ITEM_FOCUSING_ARRAY, sourceStatKey: 'ductility' },
5363
5398
  ],
5364
5399
  },
5365
5400
  ];
@@ -5420,7 +5455,7 @@ function getComponentsForStat(statKey) {
5420
5455
  return components.filter((c) => c.stats.some((s) => s.key === statKey));
5421
5456
  }
5422
5457
 
5423
- const METAL_STATS = [
5458
+ const ORE_STATS = [
5424
5459
  {
5425
5460
  key: 'strength',
5426
5461
  label: 'Strength',
@@ -5441,24 +5476,24 @@ const METAL_STATS = [
5441
5476
  inverted: true,
5442
5477
  },
5443
5478
  ];
5444
- const PRECIOUS_STATS = [
5479
+ const CRYSTAL_STATS = [
5445
5480
  {
5446
5481
  key: 'conductivity',
5447
5482
  label: 'Conductivity',
5448
5483
  abbreviation: 'CON',
5449
- purpose: 'Efficiency of energy/signal transfer',
5484
+ purpose: 'Efficiency of energy/signal transfer through crystalline lattice',
5450
5485
  },
5451
5486
  {
5452
- key: 'ductility',
5453
- label: 'Ductility',
5454
- abbreviation: 'DUC',
5455
- purpose: 'Ability to be worked into fine, precise shapes',
5487
+ key: 'resonance',
5488
+ label: 'Resonance',
5489
+ abbreviation: 'RES',
5490
+ purpose: 'Frequency tuning and piezoelectric response storage and amplification',
5456
5491
  },
5457
5492
  {
5458
5493
  key: 'reflectivity',
5459
5494
  label: 'Reflectivity',
5460
5495
  abbreviation: 'REF',
5461
- purpose: 'Surface quality for heat management and precision optics',
5496
+ purpose: 'Optical refraction and reflection lenses, mirrors, focus',
5462
5497
  },
5463
5498
  ];
5464
5499
  const GAS_STATS = [
@@ -5481,52 +5516,52 @@ const GAS_STATS = [
5481
5516
  purpose: 'Heat capacity for thermal management',
5482
5517
  },
5483
5518
  ];
5484
- const MINERAL_STATS = [
5519
+ const REGOLITH_STATS = [
5485
5520
  {
5486
- key: 'resonance',
5487
- label: 'Resonance',
5488
- abbreviation: 'RES',
5489
- purpose: 'Energy field interaction storage, focusing, projection',
5521
+ key: 'composition',
5522
+ label: 'Composition',
5523
+ abbreviation: 'COM',
5524
+ purpose: 'Mineral/metal mixdrives sensor, chip, and optic crafting quality',
5490
5525
  },
5491
5526
  {
5492
5527
  key: 'hardness',
5493
5528
  label: 'Hardness',
5494
5529
  abbreviation: 'HRD',
5495
- purpose: 'Resistance to wear — cutting surfaces, penetration',
5530
+ purpose: 'Particle hardness — cutting surfaces, abrasives, wear resistance',
5496
5531
  },
5497
5532
  {
5498
- key: 'clarity',
5499
- label: 'Clarity',
5500
- abbreviation: 'CLR',
5501
- purpose: 'Crystalline perfectionprecision optics',
5533
+ key: 'fineness',
5534
+ label: 'Fineness',
5535
+ abbreviation: 'FIN',
5536
+ purpose: 'Grain sizefine powder for smooth composites and sintering',
5502
5537
  },
5503
5538
  ];
5504
- const ORGANIC_STATS = [
5539
+ const BIOMASS_STATS = [
5505
5540
  {
5506
5541
  key: 'plasticity',
5507
5542
  label: 'Plasticity',
5508
5543
  abbreviation: 'PLA',
5509
- purpose: 'Ease of reshaping speeds processing',
5544
+ purpose: 'Flexibility and deformation under load',
5510
5545
  },
5511
5546
  {
5512
5547
  key: 'insulation',
5513
5548
  label: 'Insulation',
5514
5549
  abbreviation: 'INS',
5515
- purpose: 'Energy containment reduces energy loss',
5550
+ purpose: 'Thermal and electrical blocking capacity',
5516
5551
  },
5517
5552
  {
5518
- key: 'purity',
5519
- label: 'Purity',
5520
- abbreviation: 'PUR',
5521
- purpose: 'Biological cleanliness better composites and lubricants',
5553
+ key: 'saturation',
5554
+ label: 'Saturation',
5555
+ abbreviation: 'SAT',
5556
+ purpose: 'Concentration of useful organic compounds per unit',
5522
5557
  },
5523
5558
  ];
5524
5559
  const STAT_MAP = {
5525
- metal: METAL_STATS,
5526
- precious: PRECIOUS_STATS,
5560
+ ore: ORE_STATS,
5561
+ crystal: CRYSTAL_STATS,
5527
5562
  gas: GAS_STATS,
5528
- mineral: MINERAL_STATS,
5529
- organic: ORGANIC_STATS,
5563
+ regolith: REGOLITH_STATS,
5564
+ biomass: BIOMASS_STATS,
5530
5565
  };
5531
5566
  function getStatDefinitions(category) {
5532
5567
  return STAT_MAP[category];
@@ -5765,11 +5800,11 @@ function decodeStackStats(itemId, stats) {
5765
5800
  return { stat1: decodeStat(s, 0), stat2: decodeStat(s, 1), stat3: decodeStat(s, 2) };
5766
5801
  }
5767
5802
  const categoryItemMass = {
5768
- metal: 30000,
5769
- precious: 40000,
5803
+ ore: 30000,
5804
+ crystal: 40000,
5770
5805
  gas: 15000,
5771
- mineral: 22000,
5772
- organic: 15000,
5806
+ regolith: 22000,
5807
+ biomass: 15000,
5773
5808
  };
5774
5809
  function computeInputMass(itemId, itemType) {
5775
5810
  if (itemType === 'component') {
@@ -5907,7 +5942,7 @@ function synthesizeItem(id, source) {
5907
5942
  name: source.name,
5908
5943
  description: source.description,
5909
5944
  mass: source.mass,
5910
- category: 'metal',
5945
+ category: 'ore',
5911
5946
  tier: 't1',
5912
5947
  color: source.color,
5913
5948
  });
@@ -6889,7 +6924,7 @@ class EntityInventory extends Types.cargo_item {
6889
6924
  return this.item;
6890
6925
  }
6891
6926
  get name() {
6892
- return this.item.name;
6927
+ return this.item.displayName;
6893
6928
  }
6894
6929
  get unitMass() {
6895
6930
  return this.item.mass;
@@ -7089,10 +7124,10 @@ class Ship extends Types.entity_info {
7089
7124
  function computeShipHullCapabilities(stats) {
7090
7125
  const density = stats.density ?? 500;
7091
7126
  const strength = stats.strength ?? 500;
7092
- const ductility = stats.ductility ?? 500;
7093
- const purity = stats.purity ?? 500;
7127
+ const fineness = stats.fineness ?? 500;
7128
+ const saturation = stats.saturation ?? 500;
7094
7129
  const hullmass = 25000 + 75 * density;
7095
- const statSum = strength + ductility + purity;
7130
+ const statSum = strength + fineness + saturation;
7096
7131
  const exponent = statSum / 2997.0;
7097
7132
  const capacity = Math.floor(1000000 * Math.pow(10, exponent));
7098
7133
  return { hullmass, capacity };
@@ -7107,10 +7142,10 @@ function computeEngineCapabilities(stats) {
7107
7142
  }
7108
7143
  function computeGeneratorCapabilities(stats) {
7109
7144
  const res = stats.resonance ?? 500;
7110
- const clr = stats.clarity ?? 500;
7145
+ const ref = stats.reflectivity ?? 500;
7111
7146
  return {
7112
7147
  capacity: 300 + Math.floor(res / 6),
7113
- recharge: 1 + Math.floor((clr * 3) / 1000),
7148
+ recharge: 1 + Math.floor((ref * 3) / 1000),
7114
7149
  };
7115
7150
  }
7116
7151
  function computeGathererCapabilities(stats) {
@@ -7126,47 +7161,47 @@ function computeGathererCapabilities(stats) {
7126
7161
  };
7127
7162
  }
7128
7163
  function computeLoaderCapabilities(stats) {
7129
- const duc = stats.ductility ?? 500;
7164
+ const fin = stats.fineness ?? 500;
7130
7165
  const pla = stats.plasticity ?? 500;
7131
7166
  return {
7132
- mass: Math.max(200, 2000 - Math.floor(duc * 2)),
7167
+ mass: Math.max(200, 2000 - Math.floor(fin * 2)),
7133
7168
  thrust: 1 + Math.floor(pla / 500),
7134
7169
  quantity: 1,
7135
7170
  };
7136
7171
  }
7137
7172
  function computeManufacturingCapabilities(stats) {
7138
7173
  const rea = stats.reactivity ?? 500;
7139
- const clr = stats.clarity ?? 500;
7174
+ const com = stats.composition ?? 500;
7140
7175
  return {
7141
7176
  speed: 100 + Math.floor((rea * 4) / 5),
7142
- drain: Math.max(5, 30 - Math.floor(clr / 33)),
7177
+ drain: Math.max(5, 30 - Math.floor(com / 33)),
7143
7178
  };
7144
7179
  }
7145
7180
  function computeHaulerCapabilities(stats) {
7146
7181
  const res = stats.resonance ?? 500;
7147
7182
  const con = stats.conductivity ?? 500;
7148
- const clr = stats.clarity ?? 500;
7183
+ const ref = stats.reflectivity ?? 500;
7149
7184
  return {
7150
7185
  capacity: Math.max(1, 1 + Math.floor(res / 400)),
7151
7186
  efficiency: 2000 + con * 6,
7152
- drain: Math.max(3, 15 - Math.floor(clr / 80)),
7187
+ drain: Math.max(3, 15 - Math.floor(ref / 80)),
7153
7188
  };
7154
7189
  }
7155
7190
  function computeStorageCapabilities(stats, baseCapacity) {
7156
7191
  const strength = stats.strength ?? 500;
7157
- const ductility = stats.ductility ?? 500;
7158
- const purity = stats.purity ?? 500;
7159
- const statSum = strength + ductility + purity;
7192
+ const fineness = stats.fineness ?? 500;
7193
+ const saturation = stats.saturation ?? 500;
7194
+ const statSum = strength + fineness + saturation;
7160
7195
  const capacityBonus = Math.floor((baseCapacity * (10 + Math.floor((statSum * 10) / 2997))) / 100);
7161
7196
  return { capacityBonus };
7162
7197
  }
7163
7198
  function computeWarehouseHullCapabilities(stats) {
7164
7199
  const density = stats.density ?? 500;
7165
7200
  const strength = stats.strength ?? 500;
7166
- const ductility = stats.ductility ?? 500;
7167
- const purity = stats.purity ?? 500;
7201
+ const fineness = stats.fineness ?? 500;
7202
+ const saturation = stats.saturation ?? 500;
7168
7203
  const hullmass = 25000 + 75 * density;
7169
- const statSum = strength + ductility + purity;
7204
+ const statSum = strength + fineness + saturation;
7170
7205
  const exponent = statSum / 2997.0;
7171
7206
  const capacity = Math.floor(20000000 * Math.pow(10, exponent));
7172
7207
  return { hullmass, capacity };
@@ -7376,10 +7411,10 @@ class Container extends Types.entity_info {
7376
7411
  function computeContainerCapabilities(stats) {
7377
7412
  const density = stats['density'] ?? 500;
7378
7413
  const strength = stats['strength'] ?? 500;
7379
- const ductility = stats['ductility'] ?? 500;
7380
- const purity = stats['purity'] ?? 500;
7414
+ const fineness = stats['fineness'] ?? 500;
7415
+ const saturation = stats['saturation'] ?? 500;
7381
7416
  const hullmass = 25000 + 75 * density;
7382
- const statSum = strength + ductility + purity;
7417
+ const statSum = strength + fineness + saturation;
7383
7418
  const exponent = statSum / 2997;
7384
7419
  const capacity = Math.floor(1000000 * Math.pow(10, exponent));
7385
7420
  return { hullmass, capacity };
@@ -7387,10 +7422,10 @@ function computeContainerCapabilities(stats) {
7387
7422
  function computeContainerT2Capabilities(stats) {
7388
7423
  const strength = stats['strength'] ?? 0;
7389
7424
  const density = stats['density'] ?? 0;
7390
- const ductility = stats['ductility'] ?? 0;
7391
- const purity = stats['purity'] ?? 0;
7425
+ const fineness = stats['fineness'] ?? 0;
7426
+ const saturation = stats['saturation'] ?? 0;
7392
7427
  const hullmass = 20000 + 50 * density;
7393
- const statSum = strength + ductility + purity;
7428
+ const statSum = strength + fineness + saturation;
7394
7429
  const exponent = statSum / 2500;
7395
7430
  const capacity = Math.floor(1500000 * Math.pow(10, exponent));
7396
7431
  return { hullmass, capacity };
@@ -8119,11 +8154,11 @@ function computeHaulerDrain(distance, drain, haulCount) {
8119
8154
  }
8120
8155
 
8121
8156
  const categoryColors = {
8122
- metal: '#5B9BD5',
8123
- precious: '#D4A843',
8124
- gas: '#7EC8E3',
8125
- mineral: '#B8A9C9',
8126
- organic: '#6B8E5A',
8157
+ ore: '#C26D3F',
8158
+ crystal: '#4ADBFF',
8159
+ gas: '#B8E4A0',
8160
+ regolith: '#C4A57B',
8161
+ biomass: '#5A8B3E',
8127
8162
  };
8128
8163
  const tierColors = {
8129
8164
  t1: '#8b8b8b',
@@ -8140,18 +8175,18 @@ const tierLabels = {
8140
8175
  t5: 'Legendary',
8141
8176
  };
8142
8177
  const categoryIcons = {
8143
- metal: '⬡',
8144
- precious: '◈',
8178
+ ore: '⬡',
8179
+ crystal: '◈',
8145
8180
  gas: '◎',
8146
- mineral: '',
8147
- organic: '❋',
8181
+ regolith: '',
8182
+ biomass: '❋',
8148
8183
  };
8149
8184
  const categoryIconShapes = {
8150
- metal: 'hex',
8151
- precious: 'diamond',
8185
+ ore: 'hex',
8186
+ crystal: 'diamond',
8152
8187
  gas: 'circle',
8153
- mineral: 'square',
8154
- organic: 'star',
8188
+ regolith: 'square',
8189
+ biomass: 'star',
8155
8190
  };
8156
8191
  const componentIcon = '▣';
8157
8192
  const moduleIcon = '⬢';
@@ -8225,39 +8260,39 @@ function isCraftedItem(id) {
8225
8260
 
8226
8261
  const categories = [
8227
8262
  {
8228
- id: 'metal',
8229
- name: 'Metals',
8230
- label: 'Metal',
8231
- description: 'Structural, strong, heavy — hulls, frames, load-bearing components',
8232
- color: categoryColors.metal,
8263
+ id: 'ore',
8264
+ name: 'Ore',
8265
+ label: 'Ore',
8266
+ description: 'Structural metal-bearing rock — hulls, frames, load-bearing components',
8267
+ color: categoryColors.ore,
8233
8268
  },
8234
8269
  {
8235
- id: 'precious',
8236
- name: 'Precious Metals',
8237
- label: 'Precious Metal',
8238
- description: 'Conductive, corrosion-resistantelectronics, energy systems, precision components',
8239
- color: categoryColors.precious,
8270
+ id: 'crystal',
8271
+ name: 'Crystal',
8272
+ label: 'Crystal',
8273
+ description: 'Crystalline latticeconductors, energy storage, resonant systems',
8274
+ color: categoryColors.crystal,
8240
8275
  },
8241
8276
  {
8242
8277
  id: 'gas',
8243
- name: 'Gases',
8278
+ name: 'Gas',
8244
8279
  label: 'Gas',
8245
- description: 'Energy, fuel, volatile/reactive — propulsion, thermal processing, chemical reactions',
8280
+ description: 'Atmospheric volatile — propulsion, thermal processing, chemical reactions',
8246
8281
  color: categoryColors.gas,
8247
8282
  },
8248
8283
  {
8249
- id: 'mineral',
8250
- name: 'Minerals',
8251
- label: 'Mineral',
8252
- description: 'Crystalline, hard, precise — sensors, optics, energy storage, cutting surfaces',
8253
- color: categoryColors.mineral,
8284
+ id: 'regolith',
8285
+ name: 'Regolith',
8286
+ label: 'Regolith',
8287
+ description: 'Surface mineral dust — sensors, optics, computation, cutting surfaces',
8288
+ color: categoryColors.regolith,
8254
8289
  },
8255
8290
  {
8256
- id: 'organic',
8257
- name: 'Organics',
8258
- label: 'Organic',
8259
- description: 'Adaptive, biological, polymer — insulation, composites, bio-processes',
8260
- color: categoryColors.organic,
8291
+ id: 'biomass',
8292
+ name: 'Biomass',
8293
+ label: 'Biomass',
8294
+ description: 'Organic polymer — insulation, composites, bio-processes',
8295
+ color: categoryColors.biomass,
8261
8296
  },
8262
8297
  ];
8263
8298
  function getCategoryInfo(id) {
@@ -8723,7 +8758,7 @@ function resolveResource(id, stats) {
8723
8758
  }
8724
8759
  return {
8725
8760
  itemId: id,
8726
- name: String(item.name),
8761
+ name: item.displayName,
8727
8762
  icon: categoryIcons[cat] ?? '⬡',
8728
8763
  abbreviation: null,
8729
8764
  category: cat,
@@ -8739,14 +8774,14 @@ function resolveComponent(id, stats) {
8739
8774
  if (stats !== undefined) {
8740
8775
  const decoded = decodeCraftedItemStats(id, toBigStats(stats));
8741
8776
  resolvedStats = Object.entries(decoded).map(([key, value]) => {
8742
- const allDefs = getStatDefinitions('metal')
8743
- .concat(getStatDefinitions('precious'))
8777
+ const allDefs = getStatDefinitions('ore')
8778
+ .concat(getStatDefinitions('crystal'))
8744
8779
  .concat(getStatDefinitions('gas'))
8745
- .concat(getStatDefinitions('mineral'))
8746
- .concat(getStatDefinitions('organic'));
8780
+ .concat(getStatDefinitions('regolith'))
8781
+ .concat(getStatDefinitions('biomass'));
8747
8782
  const def = allDefs.find((d) => d.key === key);
8748
8783
  const statDef = comp.stats.find((s) => s.key === key);
8749
- const cat = (statDef?.source ?? 'metal');
8784
+ const cat = (statDef?.source ?? 'ore');
8750
8785
  return {
8751
8786
  key,
8752
8787
  label: def?.label ?? key,
@@ -8837,9 +8872,9 @@ function computeCapabilityGroup(moduleType, stats) {
8837
8872
  }
8838
8873
  case MODULE_STORAGE: {
8839
8874
  const str = stats.strength ?? 500;
8840
- const duc = stats.ductility ?? 500;
8841
- const pur = stats.purity ?? 500;
8842
- const statSum = str + duc + pur;
8875
+ const fin = stats.fineness ?? 500;
8876
+ const sat = stats.saturation ?? 500;
8877
+ const statSum = str + fin + sat;
8843
8878
  const pct = 10 + Math.floor((statSum * 10) / 2997);
8844
8879
  return { capability: 'Storage', attributes: [{ label: 'Capacity Bonus', value: pct }] };
8845
8880
  }
@@ -9128,25 +9163,25 @@ function computeBaseCapacityWarehouse(stats) {
9128
9163
  const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
9129
9164
  const computeEngineDrain = (thm) => Math.max(30, 50 - idiv(thm, 70));
9130
9165
  const computeGeneratorCap = (res) => 300 + idiv(res, 6);
9131
- const computeGeneratorRech = (clr) => 1 + idiv(clr * 3, 1000);
9166
+ const computeGeneratorRech = (ref) => 1 + idiv(ref * 3, 1000);
9132
9167
  const computeGathererYield = (str) => 200 + str;
9133
9168
  const computeGathererDrain = (con) => Math.max(250, 1250 - idiv(con * 25, 20));
9134
9169
  const computeGathererDepth = (tol) => 200 + idiv(tol * 3, 2);
9135
9170
  const computeGathererSpeed = (ref) => 100 + idiv(ref * 4, 5);
9136
- const computeLoaderMass = (duc) => Math.max(200, 2000 - duc * 2);
9171
+ const computeLoaderMass = (fin) => Math.max(200, 2000 - fin * 2);
9137
9172
  const computeLoaderThrust = (pla) => 1 + idiv(pla, 500);
9138
9173
  const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
9139
- const computeCrafterDrain = (clr) => Math.max(5, 30 - idiv(clr, 33));
9174
+ const computeCrafterDrain = (com) => Math.max(5, 30 - idiv(com, 33));
9140
9175
  function entityDisplayName(itemId) {
9141
9176
  switch (itemId) {
9142
9177
  case ITEM_SHIP_T1_PACKED:
9143
- return 'Ship T1';
9178
+ return 'Ship';
9144
9179
  case ITEM_WAREHOUSE_T1_PACKED:
9145
- return 'Warehouse T1';
9180
+ return 'Warehouse';
9146
9181
  case ITEM_CONTAINER_T1_PACKED:
9147
- return 'Container T1';
9182
+ return 'Container';
9148
9183
  case ITEM_CONTAINER_T2_PACKED:
9149
- return 'Container T2';
9184
+ return 'Container';
9150
9185
  default:
9151
9186
  return 'Entity';
9152
9187
  }
@@ -9154,17 +9189,17 @@ function entityDisplayName(itemId) {
9154
9189
  function moduleDisplayName(itemId) {
9155
9190
  switch (itemId) {
9156
9191
  case ITEM_ENGINE_T1:
9157
- return 'Engine T1';
9192
+ return 'Engine';
9158
9193
  case ITEM_GENERATOR_T1:
9159
- return 'Generator T1';
9194
+ return 'Generator';
9160
9195
  case ITEM_GATHERER_T1:
9161
- return 'Gatherer T1';
9196
+ return 'Gatherer';
9162
9197
  case ITEM_LOADER_T1:
9163
- return 'Loader T1';
9198
+ return 'Loader';
9164
9199
  case ITEM_MANUFACTURING_T1:
9165
- return 'Manufacturing T1';
9200
+ return 'Manufacturing';
9166
9201
  case ITEM_STORAGE_T1:
9167
- return 'Storage T1';
9202
+ return 'Storage';
9168
9203
  default:
9169
9204
  return 'Module';
9170
9205
  }
@@ -9186,8 +9221,8 @@ function formatModuleLine(slot, itemId, stats) {
9186
9221
  }
9187
9222
  case MODULE_GENERATOR: {
9188
9223
  const res = decodeStat(stats, 0);
9189
- const clr = decodeStat(stats, 1);
9190
- out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(clr)}`;
9224
+ const ref = decodeStat(stats, 1);
9225
+ out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(ref)}`;
9191
9226
  break;
9192
9227
  }
9193
9228
  case MODULE_GATHERER: {
@@ -9199,22 +9234,22 @@ function formatModuleLine(slot, itemId, stats) {
9199
9234
  break;
9200
9235
  }
9201
9236
  case MODULE_LOADER: {
9202
- const duc = decodeStat(stats, 0);
9237
+ const fin = decodeStat(stats, 0);
9203
9238
  const pla = decodeStat(stats, 1);
9204
- out += ` Mass ${computeLoaderMass(duc)} Thrust ${computeLoaderThrust(pla)}`;
9239
+ out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla)}`;
9205
9240
  break;
9206
9241
  }
9207
9242
  case MODULE_CRAFTER: {
9208
9243
  const rea = decodeStat(stats, 0);
9209
- const clr = decodeStat(stats, 1);
9210
- out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(clr)}`;
9244
+ const com = decodeStat(stats, 1);
9245
+ out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(com)}`;
9211
9246
  break;
9212
9247
  }
9213
9248
  case MODULE_STORAGE: {
9214
9249
  const str = decodeStat(stats, 0);
9215
- const duc = decodeStat(stats, 1);
9216
- const pur = decodeStat(stats, 2);
9217
- const sum = str + duc + pur;
9250
+ const fin = decodeStat(stats, 2);
9251
+ const sat = decodeStat(stats, 3);
9252
+ const sum = str + fin + sat;
9218
9253
  const pct = 10 + idiv(sum * 10, 2997);
9219
9254
  out += ` +${pct}% capacity`;
9220
9255
  break;
@@ -9274,5 +9309,39 @@ var index = /*#__PURE__*/Object.freeze({
9274
9309
  buildEntityDescription: buildEntityDescription
9275
9310
  });
9276
9311
 
9277
- export { ActionsManager, BASE_ORBITAL_MASS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, Container, Coordinates, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, ENTITY_CAPACITY_EXCEEDED, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GameState, INITIAL_CONTAINER_CAPACITY, INITIAL_CONTAINER_HULLMASS, INITIAL_WAREHOUSE_CAPACITY, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_CARGO_ARM, ITEM_CARGO_LINING, ITEM_CARGO_LINING_T2, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_FOCUSING_ARRAY, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_HULL_PLATES, ITEM_HULL_PLATES_T2, ITEM_LOADER_T1, ITEM_MANUFACTURING_T1, ITEM_MATTER_CONDUIT, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_POWER_CELL, ITEM_REACTION_CHAMBER, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_SURVEY_PROBE, ITEM_THRUSTER_CORE, ITEM_TOOL_BIT, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, InventoryAccessor, Item, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MODULE_ANY, MODULE_CRAFTER, MODULE_ENGINE, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_STORAGE, MODULE_WARP, index as NFT, NO_SCHEDULE, 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, PRECISION$1 as PRECISION, platform as PlatformContract, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CARGO_NOT_LOADED, SHIP_CARGO_NOT_OWNED, SHIP_INVALID_CARGO, SHIP_INVALID_DESTINATION, SHIP_INVALID_TRAVEL_DURATION, SHIP_NOT_ARRIVED, SHIP_NOT_ENOUGH_ENERGY, SHIP_NOT_ENOUGH_ENERGY_CAPACITY, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, ScheduleAccessor, server as ServerContract, Ship, Shipload, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, Warehouse, availableCapacity$1 as availableCapacity, availableCapacityFromMass, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildEntityDescription, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcLoadDuration, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, capabilityAttributes, capabilityNames, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItemToStack, cargoUtils, categoryColors, categoryIconShapes, categoryIcons, categoryItemMass, componentIcon, components, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererSpeed, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeHaulPenalty, computeHaulerCapabilities, computeHaulerDrain, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeManufacturingCapabilities, computeShipCapabilities, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseCapabilities, computeWarehouseHullCapabilities, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeCraftedItemStats, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStratum, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, distanceBetweenCoordinates, distanceBetweenPoints, encodeGatheredCargoStats, encodeStats, energyPercent, entityDisplayName, entityRecipes, estimateDealTravelTime, estimateTravelTime, findNearbyPlanets, formatModuleLine, getAllCraftableItems, getCapabilityAttributes, getCategoryInfo, getComponentById, getComponentsForCategory, getComponentsForStat, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEntityRecipe, getEntityRecipeByItemId, getEntitySlotLayout, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getLocationTypeName, getModuleCapabilityType, getModuleRecipe, getModuleRecipeByItemId, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getResourceTier, getResourceWeight, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, hasEnergy, hasEnergyForDistance$1 as hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, isCraftedItem, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isModuleItem, isRelatedItem, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, lerp, makeContainer, makeShip, makeWarehouse, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleRecipes, needsRecharge, projectEntity, projectEntityAt, readCommonBase, removeFromStacks, renderDescription, resolveItem, resolveStats, rollTier, rollWithinTier, rotation, schedule, stackKey, stackToCargoItem, stacksEqual, statMappings, tierColors, tierLabels, toLocation, validateSchedule };
9312
+ function formatMass(kg) {
9313
+ const t = kg / 1000;
9314
+ const fixed = t.toFixed(2);
9315
+ const trimmed = fixed.replace(/\.?0+$/, '');
9316
+ return `${trimmed} t`;
9317
+ }
9318
+ function formatMassDelta(kg) {
9319
+ if (kg === 0)
9320
+ return '0 t';
9321
+ const sign = kg > 0 ? '+' : '-';
9322
+ return `${sign}${formatMass(Math.abs(kg))}`;
9323
+ }
9324
+
9325
+ function displayName(resolved) {
9326
+ if (resolved.itemType === 'resource') {
9327
+ const adj = TIER_ADJECTIVES[tierNumber(resolved.tier)] ?? 'Unknown';
9328
+ const cat = resolved.category ? CATEGORY_LABELS[resolved.category] : 'Resource';
9329
+ return `${adj} ${cat}`;
9330
+ }
9331
+ return resolved.name;
9332
+ }
9333
+ function describeItem(resolved, opts) {
9334
+ const massFmt = opts?.formatMass ?? formatMass;
9335
+ const mass = massFmt(resolved.mass);
9336
+ const tier = `T${tierNumber(resolved.tier)}`;
9337
+ if (resolved.itemType === 'resource') {
9338
+ const cat = resolved.category ? CATEGORY_LABELS[resolved.category] : 'Resource';
9339
+ const header = `${tier} ${cat}`;
9340
+ const stats = resolved.stats?.map((s) => `${s.label} ${s.value}`).join(', ');
9341
+ return [header, stats, mass].filter(Boolean).join(' · ');
9342
+ }
9343
+ return `${tier} ${resolved.name} · ${mass}`;
9344
+ }
9345
+
9346
+ export { ActionsManager, BASE_ORBITAL_MASS, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, Container, Coordinates, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, ENTITY_CAPACITY_EXCEEDED, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, EntityInventory, EntityType, EpochsManager, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GameState, INITIAL_CONTAINER_CAPACITY, INITIAL_CONTAINER_HULLMASS, INITIAL_WAREHOUSE_CAPACITY, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_CARGO_ARM, ITEM_CARGO_LINING, ITEM_CARGO_LINING_T2, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_FOCUSING_ARRAY, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_HULL_PLATES, ITEM_HULL_PLATES_T2, ITEM_LOADER_T1, ITEM_MANUFACTURING_T1, ITEM_MATTER_CONDUIT, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_POWER_CELL, ITEM_REACTION_CHAMBER, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_SURVEY_PROBE, ITEM_THRUSTER_CORE, ITEM_TOOL_BIT, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, InventoryAccessor, Item, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MODULE_ANY, MODULE_CRAFTER, MODULE_ENGINE, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_STORAGE, MODULE_WARP, index as NFT, NO_SCHEDULE, 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, PRECISION$1 as PRECISION, platform as PlatformContract, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CARGO_NOT_LOADED, SHIP_CARGO_NOT_OWNED, SHIP_INVALID_CARGO, SHIP_INVALID_DESTINATION, SHIP_INVALID_TRAVEL_DURATION, SHIP_NOT_ARRIVED, SHIP_NOT_ENOUGH_ENERGY, SHIP_NOT_ENOUGH_ENERGY_CAPACITY, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, ScheduleAccessor, server as ServerContract, Ship, Shipload, TIER_ADJECTIVES, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, Warehouse, availableCapacity$1 as availableCapacity, availableCapacityFromMass, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildEntityDescription, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcLoadDuration, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_loader_acceleration, calc_loader_flighttime, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, capabilityAttributes, capabilityNames, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItemToStack, cargoUtils, categoryColors, categoryIconShapes, categoryIcons, categoryItemMass, componentIcon, components, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererSpeed, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeHaulPenalty, computeHaulerCapabilities, computeHaulerDrain, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeManufacturingCapabilities, computeShipCapabilities, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseCapabilities, computeWarehouseHullCapabilities, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeCraftedItemStats, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, encodeGatheredCargoStats, encodeStats, energyPercent, entityDisplayName, entityRecipes, estimateDealTravelTime, estimateTravelTime, findNearbyPlanets, formatMass, formatMassDelta, formatModuleLine, getAllCraftableItems, getCapabilityAttributes, getCategoryInfo, getComponentById, getComponentsForCategory, getComponentsForStat, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEntityRecipe, getEntityRecipeByItemId, getEntitySlotLayout, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getLocationTypeName, getModuleCapabilityType, getModuleRecipe, getModuleRecipeByItemId, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getResourceTier, getResourceWeight, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, hasEnergy, hasEnergyForDistance$1 as hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, isCraftedItem, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isModuleItem, isRelatedItem, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, lerp, makeContainer, makeShip, makeWarehouse, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleRecipes, needsRecharge, projectEntity, projectEntityAt, readCommonBase, removeFromStacks, renderDescription, resolveItem, resolveStats, rollTier, rollWithinTier, rotation, schedule, stackKey, stackToCargoItem, stacksEqual, statMappings, tierColors, tierLabels, tierNumber, toLocation, validateSchedule };
9278
9347
  //# sourceMappingURL=shipload.m.js.map