@shipload/sdk 1.0.0-next.60 → 1.0.0-next.61

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.js CHANGED
@@ -3904,28 +3904,30 @@ const ITEM_WRIGHT_T1A_PACKED = 10213;
3904
3904
  const ITEM_TUG_T1A_PACKED = 10214;
3905
3905
  const ITEM_PORTER_T1A_PACKED = 10215;
3906
3906
  const ITEM_SMITH_T1A_PACKED = 10218;
3907
- const ITEM_PLATE_T2 = 20001;
3908
- const ITEM_FRAME_T2 = 20002;
3909
- const ITEM_PLASMA_CELL_T2 = 20003;
3910
- const ITEM_RESONATOR_T2 = 20004;
3911
- const ITEM_BEAM_T2 = 20005;
3912
- const ITEM_SENSOR_T2 = 20006;
3913
- const ITEM_POLYMER_T2 = 20007;
3914
- const ITEM_CERAMIC_T2 = 20008;
3915
- const ITEM_REACTOR_T2 = 20009;
3916
- const ITEM_RESIN_T2 = 20010;
3917
- const ITEM_ENGINE_T2 = 20100;
3918
- const ITEM_GENERATOR_T2 = 20101;
3919
- const ITEM_GATHERER_T2 = 20102;
3920
- const ITEM_LOADER_T2 = 20103;
3921
- const ITEM_CRAFTER_T2 = 20104;
3922
- const ITEM_HAULER_T2 = 20106;
3923
- const ITEM_WARP_T2 = 20107;
3924
- const ITEM_BUILDER_T2 = 20110;
3925
- const ITEM_CONTAINER_T2_PACKED = 20200;
3926
- const ITEM_PROSPECTOR_T2A_PACKED = 20212;
3927
- const ITEM_PROSPECTOR_T2B_PACKED = 20213;
3928
- const ITEM_DREDGER_T2A_PACKED = 20214;
3907
+ const ITEM_PLATE_T2 = 11001;
3908
+ const ITEM_FRAME_T2 = 11002;
3909
+ const ITEM_PLASMA_CELL_T2 = 11003;
3910
+ const ITEM_RESONATOR_T2 = 11004;
3911
+ const ITEM_BEAM_T2 = 11005;
3912
+ const ITEM_SENSOR_T2 = 11006;
3913
+ const ITEM_POLYMER_T2 = 11007;
3914
+ const ITEM_CERAMIC_T2 = 11008;
3915
+ const ITEM_REACTOR_T2 = 11009;
3916
+ const ITEM_RESIN_T2 = 11010;
3917
+ const ITEM_ENGINE_T2 = 11100;
3918
+ const ITEM_GENERATOR_T2 = 11101;
3919
+ const ITEM_GATHERER_T2 = 11102;
3920
+ const ITEM_LOADER_T2 = 11103;
3921
+ const ITEM_CRAFTER_T2 = 11104;
3922
+ const ITEM_STORAGE_T2 = 11105;
3923
+ const ITEM_HAULER_T2 = 11106;
3924
+ const ITEM_WARP_T2 = 11107;
3925
+ const ITEM_BATTERY_T2 = 11108;
3926
+ const ITEM_BUILDER_T2 = 11110;
3927
+ const ITEM_CONTAINER_T2_PACKED = 11200;
3928
+ const ITEM_PROSPECTOR_T2A_PACKED = 11212;
3929
+ const ITEM_PROSPECTOR_T2B_PACKED = 11213;
3930
+ const ITEM_DREDGER_T2A_PACKED = 11214;
3929
3931
 
3930
3932
  var recipes = [
3931
3933
  {
@@ -4967,6 +4969,56 @@ var recipes = [
4967
4969
  blendWeights: [
4968
4970
  ]
4969
4971
  },
4972
+ {
4973
+ outputItemId: 10208,
4974
+ outputMass: 4800000,
4975
+ inputs: [
4976
+ {
4977
+ itemId: 10006,
4978
+ quantity: 1000
4979
+ },
4980
+ {
4981
+ itemId: 10003,
4982
+ quantity: 1000
4983
+ },
4984
+ {
4985
+ itemId: 10007,
4986
+ quantity: 1000
4987
+ }
4988
+ ],
4989
+ statSlots: [
4990
+ {
4991
+ sources: [
4992
+ ]
4993
+ },
4994
+ {
4995
+ sources: [
4996
+ {
4997
+ inputIndex: 1,
4998
+ statIndex: 0
4999
+ }
5000
+ ]
5001
+ },
5002
+ {
5003
+ sources: [
5004
+ {
5005
+ inputIndex: 0,
5006
+ statIndex: 0
5007
+ }
5008
+ ]
5009
+ },
5010
+ {
5011
+ sources: [
5012
+ {
5013
+ inputIndex: 2,
5014
+ statIndex: 0
5015
+ }
5016
+ ]
5017
+ }
5018
+ ],
5019
+ blendWeights: [
5020
+ ]
5021
+ },
4970
5022
  {
4971
5023
  outputItemId: 10209,
4972
5024
  outputMass: 1900000,
@@ -5650,7 +5702,7 @@ var recipes = [
5650
5702
  sourceSubclass: 10210
5651
5703
  },
5652
5704
  {
5653
- outputItemId: 20001,
5705
+ outputItemId: 11001,
5654
5706
  outputMass: 4800,
5655
5707
  inputs: [
5656
5708
  {
@@ -5688,7 +5740,7 @@ var recipes = [
5688
5740
  ]
5689
5741
  },
5690
5742
  {
5691
- outputItemId: 20002,
5743
+ outputItemId: 11002,
5692
5744
  outputMass: 4800,
5693
5745
  inputs: [
5694
5746
  {
@@ -5738,7 +5790,7 @@ var recipes = [
5738
5790
  ]
5739
5791
  },
5740
5792
  {
5741
- outputItemId: 20003,
5793
+ outputItemId: 11003,
5742
5794
  outputMass: 4800,
5743
5795
  inputs: [
5744
5796
  {
@@ -5776,7 +5828,7 @@ var recipes = [
5776
5828
  ]
5777
5829
  },
5778
5830
  {
5779
- outputItemId: 20004,
5831
+ outputItemId: 11004,
5780
5832
  outputMass: 4800,
5781
5833
  inputs: [
5782
5834
  {
@@ -5818,7 +5870,7 @@ var recipes = [
5818
5870
  ]
5819
5871
  },
5820
5872
  {
5821
- outputItemId: 20005,
5873
+ outputItemId: 11005,
5822
5874
  outputMass: 4800,
5823
5875
  inputs: [
5824
5876
  {
@@ -5860,7 +5912,7 @@ var recipes = [
5860
5912
  ]
5861
5913
  },
5862
5914
  {
5863
- outputItemId: 20006,
5915
+ outputItemId: 11006,
5864
5916
  outputMass: 4800,
5865
5917
  inputs: [
5866
5918
  {
@@ -5898,7 +5950,7 @@ var recipes = [
5898
5950
  ]
5899
5951
  },
5900
5952
  {
5901
- outputItemId: 20007,
5953
+ outputItemId: 11007,
5902
5954
  outputMass: 4800,
5903
5955
  inputs: [
5904
5956
  {
@@ -5936,7 +5988,7 @@ var recipes = [
5936
5988
  ]
5937
5989
  },
5938
5990
  {
5939
- outputItemId: 20008,
5991
+ outputItemId: 11008,
5940
5992
  outputMass: 4800,
5941
5993
  inputs: [
5942
5994
  {
@@ -5966,7 +6018,7 @@ var recipes = [
5966
6018
  ]
5967
6019
  },
5968
6020
  {
5969
- outputItemId: 20009,
6021
+ outputItemId: 11009,
5970
6022
  outputMass: 4800,
5971
6023
  inputs: [
5972
6024
  {
@@ -6016,7 +6068,7 @@ var recipes = [
6016
6068
  ]
6017
6069
  },
6018
6070
  {
6019
- outputItemId: 20010,
6071
+ outputItemId: 11010,
6020
6072
  outputMass: 4800,
6021
6073
  inputs: [
6022
6074
  {
@@ -6058,11 +6110,11 @@ var recipes = [
6058
6110
  ]
6059
6111
  },
6060
6112
  {
6061
- outputItemId: 20100,
6113
+ outputItemId: 11100,
6062
6114
  outputMass: 1536000,
6063
6115
  inputs: [
6064
6116
  {
6065
- itemId: 20003,
6117
+ itemId: 11003,
6066
6118
  quantity: 600
6067
6119
  },
6068
6120
  {
@@ -6100,11 +6152,11 @@ var recipes = [
6100
6152
  ]
6101
6153
  },
6102
6154
  {
6103
- outputItemId: 20101,
6155
+ outputItemId: 11101,
6104
6156
  outputMass: 1536000,
6105
6157
  inputs: [
6106
6158
  {
6107
- itemId: 20004,
6159
+ itemId: 11004,
6108
6160
  quantity: 600
6109
6161
  },
6110
6162
  {
@@ -6142,15 +6194,15 @@ var recipes = [
6142
6194
  ]
6143
6195
  },
6144
6196
  {
6145
- outputItemId: 20102,
6197
+ outputItemId: 11102,
6146
6198
  outputMass: 1536000,
6147
6199
  inputs: [
6148
6200
  {
6149
- itemId: 20005,
6201
+ itemId: 11005,
6150
6202
  quantity: 300
6151
6203
  },
6152
6204
  {
6153
- itemId: 20002,
6205
+ itemId: 11002,
6154
6206
  quantity: 300
6155
6207
  },
6156
6208
  {
@@ -6200,11 +6252,11 @@ var recipes = [
6200
6252
  ]
6201
6253
  },
6202
6254
  {
6203
- outputItemId: 20103,
6255
+ outputItemId: 11103,
6204
6256
  outputMass: 1536000,
6205
6257
  inputs: [
6206
6258
  {
6207
- itemId: 20007,
6259
+ itemId: 11007,
6208
6260
  quantity: 600
6209
6261
  },
6210
6262
  {
@@ -6242,15 +6294,15 @@ var recipes = [
6242
6294
  ]
6243
6295
  },
6244
6296
  {
6245
- outputItemId: 20104,
6297
+ outputItemId: 11104,
6246
6298
  outputMass: 1536000,
6247
6299
  inputs: [
6248
6300
  {
6249
- itemId: 20009,
6301
+ itemId: 11009,
6250
6302
  quantity: 300
6251
6303
  },
6252
6304
  {
6253
- itemId: 20006,
6305
+ itemId: 11006,
6254
6306
  quantity: 300
6255
6307
  },
6256
6308
  {
@@ -6288,15 +6340,85 @@ var recipes = [
6288
6340
  ]
6289
6341
  },
6290
6342
  {
6291
- outputItemId: 20106,
6343
+ outputItemId: 11105,
6344
+ outputMass: 1536000,
6345
+ inputs: [
6346
+ {
6347
+ itemId: 11001,
6348
+ quantity: 300
6349
+ },
6350
+ {
6351
+ itemId: 11002,
6352
+ quantity: 300
6353
+ },
6354
+ {
6355
+ itemId: 10105,
6356
+ quantity: 1
6357
+ }
6358
+ ],
6359
+ statSlots: [
6360
+ {
6361
+ sources: [
6362
+ {
6363
+ inputIndex: 0,
6364
+ statIndex: 0
6365
+ },
6366
+ {
6367
+ inputIndex: 2,
6368
+ statIndex: 0
6369
+ }
6370
+ ]
6371
+ },
6372
+ {
6373
+ sources: [
6374
+ {
6375
+ inputIndex: 0,
6376
+ statIndex: 1
6377
+ },
6378
+ {
6379
+ inputIndex: 2,
6380
+ statIndex: 1
6381
+ }
6382
+ ]
6383
+ },
6384
+ {
6385
+ sources: [
6386
+ {
6387
+ inputIndex: 1,
6388
+ statIndex: 0
6389
+ },
6390
+ {
6391
+ inputIndex: 2,
6392
+ statIndex: 2
6393
+ }
6394
+ ]
6395
+ },
6396
+ {
6397
+ sources: [
6398
+ {
6399
+ inputIndex: 1,
6400
+ statIndex: 1
6401
+ },
6402
+ {
6403
+ inputIndex: 2,
6404
+ statIndex: 3
6405
+ }
6406
+ ]
6407
+ }
6408
+ ],
6409
+ blendWeights: [
6410
+ ]
6411
+ },
6412
+ {
6413
+ outputItemId: 11106,
6292
6414
  outputMass: 1536000,
6293
6415
  inputs: [
6294
6416
  {
6295
- itemId: 20004,
6417
+ itemId: 11004,
6296
6418
  quantity: 300
6297
6419
  },
6298
6420
  {
6299
- itemId: 20010,
6421
+ itemId: 11010,
6300
6422
  quantity: 300
6301
6423
  },
6302
6424
  {
@@ -6346,15 +6468,15 @@ var recipes = [
6346
6468
  ]
6347
6469
  },
6348
6470
  {
6349
- outputItemId: 20107,
6471
+ outputItemId: 11107,
6350
6472
  outputMass: 1536000,
6351
6473
  inputs: [
6352
6474
  {
6353
- itemId: 20004,
6475
+ itemId: 11004,
6354
6476
  quantity: 300
6355
6477
  },
6356
6478
  {
6357
- itemId: 20009,
6479
+ itemId: 11009,
6358
6480
  quantity: 300
6359
6481
  },
6360
6482
  {
@@ -6380,15 +6502,85 @@ var recipes = [
6380
6502
  ]
6381
6503
  },
6382
6504
  {
6383
- outputItemId: 20110,
6505
+ outputItemId: 11108,
6384
6506
  outputMass: 1536000,
6385
6507
  inputs: [
6386
6508
  {
6387
- itemId: 20006,
6509
+ itemId: 11003,
6388
6510
  quantity: 300
6389
6511
  },
6390
6512
  {
6391
- itemId: 20008,
6513
+ itemId: 11007,
6514
+ quantity: 300
6515
+ },
6516
+ {
6517
+ itemId: 10108,
6518
+ quantity: 1
6519
+ }
6520
+ ],
6521
+ statSlots: [
6522
+ {
6523
+ sources: [
6524
+ {
6525
+ inputIndex: 0,
6526
+ statIndex: 0
6527
+ },
6528
+ {
6529
+ inputIndex: 2,
6530
+ statIndex: 0
6531
+ }
6532
+ ]
6533
+ },
6534
+ {
6535
+ sources: [
6536
+ {
6537
+ inputIndex: 0,
6538
+ statIndex: 1
6539
+ },
6540
+ {
6541
+ inputIndex: 2,
6542
+ statIndex: 1
6543
+ }
6544
+ ]
6545
+ },
6546
+ {
6547
+ sources: [
6548
+ {
6549
+ inputIndex: 1,
6550
+ statIndex: 0
6551
+ },
6552
+ {
6553
+ inputIndex: 2,
6554
+ statIndex: 2
6555
+ }
6556
+ ]
6557
+ },
6558
+ {
6559
+ sources: [
6560
+ {
6561
+ inputIndex: 1,
6562
+ statIndex: 1
6563
+ },
6564
+ {
6565
+ inputIndex: 2,
6566
+ statIndex: 3
6567
+ }
6568
+ ]
6569
+ }
6570
+ ],
6571
+ blendWeights: [
6572
+ ]
6573
+ },
6574
+ {
6575
+ outputItemId: 11110,
6576
+ outputMass: 1536000,
6577
+ inputs: [
6578
+ {
6579
+ itemId: 11006,
6580
+ quantity: 300
6581
+ },
6582
+ {
6583
+ itemId: 11008,
6392
6584
  quantity: 300
6393
6585
  },
6394
6586
  {
@@ -6426,15 +6618,15 @@ var recipes = [
6426
6618
  ]
6427
6619
  },
6428
6620
  {
6429
- outputItemId: 20200,
6621
+ outputItemId: 11200,
6430
6622
  outputMass: 3100000,
6431
6623
  inputs: [
6432
6624
  {
6433
- itemId: 20001,
6625
+ itemId: 11001,
6434
6626
  quantity: 600
6435
6627
  },
6436
6628
  {
6437
- itemId: 20008,
6629
+ itemId: 11008,
6438
6630
  quantity: 600
6439
6631
  },
6440
6632
  {
@@ -6497,27 +6689,27 @@ var recipes = [
6497
6689
  sourceSubclass: 10200
6498
6690
  },
6499
6691
  {
6500
- outputItemId: 20212,
6692
+ outputItemId: 11212,
6501
6693
  outputMass: 4320000,
6502
6694
  inputs: [
6503
6695
  {
6504
- itemId: 20001,
6696
+ itemId: 11001,
6505
6697
  quantity: 200
6506
6698
  },
6507
6699
  {
6508
- itemId: 20008,
6700
+ itemId: 11008,
6509
6701
  quantity: 200
6510
6702
  },
6511
6703
  {
6512
- itemId: 20007,
6704
+ itemId: 11007,
6513
6705
  quantity: 200
6514
6706
  },
6515
6707
  {
6516
- itemId: 20003,
6708
+ itemId: 11003,
6517
6709
  quantity: 200
6518
6710
  },
6519
6711
  {
6520
- itemId: 20006,
6712
+ itemId: 11006,
6521
6713
  quantity: 200
6522
6714
  },
6523
6715
  {
@@ -6592,31 +6784,31 @@ var recipes = [
6592
6784
  sourceSubclass: 10211
6593
6785
  },
6594
6786
  {
6595
- outputItemId: 20213,
6787
+ outputItemId: 11213,
6596
6788
  outputMass: 5760000,
6597
6789
  inputs: [
6598
6790
  {
6599
- itemId: 20005,
6791
+ itemId: 11005,
6600
6792
  quantity: 150
6601
6793
  },
6602
6794
  {
6603
- itemId: 20002,
6795
+ itemId: 11002,
6604
6796
  quantity: 150
6605
6797
  },
6606
6798
  {
6607
- itemId: 20010,
6799
+ itemId: 11010,
6608
6800
  quantity: 150
6609
6801
  },
6610
6802
  {
6611
- itemId: 20009,
6803
+ itemId: 11009,
6612
6804
  quantity: 150
6613
6805
  },
6614
6806
  {
6615
- itemId: 20004,
6807
+ itemId: 11004,
6616
6808
  quantity: 150
6617
6809
  },
6618
6810
  {
6619
- itemId: 20212,
6811
+ itemId: 11212,
6620
6812
  quantity: 1
6621
6813
  }
6622
6814
  ],
@@ -6684,34 +6876,34 @@ var recipes = [
6684
6876
  ],
6685
6877
  blendWeights: [
6686
6878
  ],
6687
- sourceSubclass: 20212
6879
+ sourceSubclass: 11212
6688
6880
  },
6689
6881
  {
6690
- outputItemId: 20214,
6882
+ outputItemId: 11214,
6691
6883
  outputMass: 5760000,
6692
6884
  inputs: [
6693
6885
  {
6694
- itemId: 20005,
6886
+ itemId: 11005,
6695
6887
  quantity: 150
6696
6888
  },
6697
6889
  {
6698
- itemId: 20002,
6890
+ itemId: 11002,
6699
6891
  quantity: 150
6700
6892
  },
6701
6893
  {
6702
- itemId: 20010,
6894
+ itemId: 11010,
6703
6895
  quantity: 150
6704
6896
  },
6705
6897
  {
6706
- itemId: 20009,
6898
+ itemId: 11009,
6707
6899
  quantity: 150
6708
6900
  },
6709
6901
  {
6710
- itemId: 20004,
6902
+ itemId: 11004,
6711
6903
  quantity: 150
6712
6904
  },
6713
6905
  {
6714
- itemId: 20212,
6906
+ itemId: 11212,
6715
6907
  quantity: 1
6716
6908
  }
6717
6909
  ],
@@ -6779,7 +6971,7 @@ var recipes = [
6779
6971
  ],
6780
6972
  blendWeights: [
6781
6973
  ],
6782
- sourceSubclass: 20212
6974
+ sourceSubclass: 11212
6783
6975
  }
6784
6976
  ];
6785
6977
 
@@ -7122,13 +7314,13 @@ var entities = [
7122
7314
  baseHullmass: 4000000
7123
7315
  },
7124
7316
  {
7125
- entityItemId: 20200,
7317
+ entityItemId: 11200,
7126
7318
  slots: [
7127
7319
  ],
7128
7320
  baseHullmass: 100000
7129
7321
  },
7130
7322
  {
7131
- entityItemId: 20212,
7323
+ entityItemId: 11212,
7132
7324
  slots: [
7133
7325
  {
7134
7326
  type: "generator",
@@ -7149,7 +7341,7 @@ var entities = [
7149
7341
  baseHullmass: 5920000
7150
7342
  },
7151
7343
  {
7152
- entityItemId: 20213,
7344
+ entityItemId: 11213,
7153
7345
  slots: [
7154
7346
  {
7155
7347
  type: "generator",
@@ -7175,7 +7367,7 @@ var entities = [
7175
7367
  baseHullmass: 7360000
7176
7368
  },
7177
7369
  {
7178
- entityItemId: 20214,
7370
+ entityItemId: 11214,
7179
7371
  slots: [
7180
7372
  {
7181
7373
  type: "generator",
@@ -7780,7 +7972,7 @@ var items = [
7780
7972
  },
7781
7973
  {
7782
7974
  id: 10208,
7783
- mass: 1900000,
7975
+ mass: 4800000,
7784
7976
  type: "entity",
7785
7977
  tier: 1
7786
7978
  },
@@ -7833,141 +8025,155 @@ var items = [
7833
8025
  tier: 1
7834
8026
  },
7835
8027
  {
7836
- id: 20001,
8028
+ id: 11001,
7837
8029
  mass: 4800,
7838
8030
  type: "component",
7839
8031
  tier: 2
7840
8032
  },
7841
8033
  {
7842
- id: 20002,
8034
+ id: 11002,
7843
8035
  mass: 4800,
7844
8036
  type: "component",
7845
8037
  tier: 2
7846
8038
  },
7847
8039
  {
7848
- id: 20003,
8040
+ id: 11003,
7849
8041
  mass: 4800,
7850
8042
  type: "component",
7851
8043
  tier: 2
7852
8044
  },
7853
8045
  {
7854
- id: 20004,
8046
+ id: 11004,
7855
8047
  mass: 4800,
7856
8048
  type: "component",
7857
8049
  tier: 2
7858
8050
  },
7859
8051
  {
7860
- id: 20005,
8052
+ id: 11005,
7861
8053
  mass: 4800,
7862
8054
  type: "component",
7863
8055
  tier: 2
7864
8056
  },
7865
8057
  {
7866
- id: 20006,
8058
+ id: 11006,
7867
8059
  mass: 4800,
7868
8060
  type: "component",
7869
8061
  tier: 2
7870
8062
  },
7871
8063
  {
7872
- id: 20007,
8064
+ id: 11007,
7873
8065
  mass: 4800,
7874
8066
  type: "component",
7875
8067
  tier: 2
7876
8068
  },
7877
8069
  {
7878
- id: 20008,
8070
+ id: 11008,
7879
8071
  mass: 4800,
7880
8072
  type: "component",
7881
8073
  tier: 2
7882
8074
  },
7883
8075
  {
7884
- id: 20009,
8076
+ id: 11009,
7885
8077
  mass: 4800,
7886
8078
  type: "component",
7887
8079
  tier: 2
7888
8080
  },
7889
8081
  {
7890
- id: 20010,
8082
+ id: 11010,
7891
8083
  mass: 4800,
7892
8084
  type: "component",
7893
8085
  tier: 2
7894
8086
  },
7895
8087
  {
7896
- id: 20100,
8088
+ id: 11100,
7897
8089
  mass: 1536000,
7898
8090
  type: "module",
7899
8091
  tier: 2,
7900
8092
  subtype: "engine"
7901
8093
  },
7902
8094
  {
7903
- id: 20101,
8095
+ id: 11101,
7904
8096
  mass: 1536000,
7905
8097
  type: "module",
7906
8098
  tier: 2,
7907
8099
  subtype: "generator"
7908
8100
  },
7909
8101
  {
7910
- id: 20102,
8102
+ id: 11102,
7911
8103
  mass: 1536000,
7912
8104
  type: "module",
7913
8105
  tier: 2,
7914
8106
  subtype: "gatherer"
7915
8107
  },
7916
8108
  {
7917
- id: 20103,
8109
+ id: 11103,
7918
8110
  mass: 1536000,
7919
8111
  type: "module",
7920
8112
  tier: 2,
7921
8113
  subtype: "loader"
7922
8114
  },
7923
8115
  {
7924
- id: 20104,
8116
+ id: 11104,
7925
8117
  mass: 1536000,
7926
8118
  type: "module",
7927
8119
  tier: 2,
7928
8120
  subtype: "crafter"
7929
8121
  },
7930
8122
  {
7931
- id: 20106,
8123
+ id: 11105,
8124
+ mass: 1536000,
8125
+ type: "module",
8126
+ tier: 2,
8127
+ subtype: "storage"
8128
+ },
8129
+ {
8130
+ id: 11106,
7932
8131
  mass: 1536000,
7933
8132
  type: "module",
7934
8133
  tier: 2,
7935
8134
  subtype: "hauler"
7936
8135
  },
7937
8136
  {
7938
- id: 20107,
8137
+ id: 11107,
7939
8138
  mass: 1536000,
7940
8139
  type: "module",
7941
8140
  tier: 2,
7942
8141
  subtype: "warp"
7943
8142
  },
7944
8143
  {
7945
- id: 20110,
8144
+ id: 11108,
8145
+ mass: 1536000,
8146
+ type: "module",
8147
+ tier: 2,
8148
+ subtype: "battery"
8149
+ },
8150
+ {
8151
+ id: 11110,
7946
8152
  mass: 1536000,
7947
8153
  type: "module",
7948
8154
  tier: 2,
7949
8155
  subtype: "builder"
7950
8156
  },
7951
8157
  {
7952
- id: 20200,
8158
+ id: 11200,
7953
8159
  mass: 3100000,
7954
8160
  type: "entity",
7955
8161
  tier: 2
7956
8162
  },
7957
8163
  {
7958
- id: 20212,
8164
+ id: 11212,
7959
8165
  mass: 4320000,
7960
8166
  type: "entity",
7961
8167
  tier: 2
7962
8168
  },
7963
8169
  {
7964
- id: 20213,
8170
+ id: 11213,
7965
8171
  mass: 5760000,
7966
8172
  type: "entity",
7967
8173
  tier: 2
7968
8174
  },
7969
8175
  {
7970
- id: 20214,
8176
+ id: 11214,
7971
8177
  mass: 5760000,
7972
8178
  type: "entity",
7973
8179
  tier: 2
@@ -8251,112 +8457,122 @@ const itemMetadata = {
8251
8457
  description: 'A crafting ship. One engine, one power core, and a fabricator for crafting away from home.',
8252
8458
  color: '#4AE898',
8253
8459
  },
8254
- 20001: {
8460
+ 11001: {
8255
8461
  name: 'Plate',
8256
8462
  description: 'Advanced structural plating reinforced with tier 2 ore.',
8257
8463
  color: '#9BADB8',
8258
8464
  },
8259
- 20002: {
8465
+ 11002: {
8260
8466
  name: 'Frame',
8261
8467
  description: 'Advanced composite framing reinforced with tier 2 regolith and biomass polymer.',
8262
8468
  color: '#C4A57B',
8263
8469
  },
8264
- 20003: {
8470
+ 11003: {
8265
8471
  name: 'Plasma Cell',
8266
8472
  description: 'Advanced high-energy gaseous storage cell reinforced with tier 2 gas.',
8267
8473
  color: '#E86344',
8268
8474
  },
8269
- 20004: {
8475
+ 11004: {
8270
8476
  name: 'Resonator',
8271
8477
  description: 'Advanced crystalline resonance lattice reinforced with tier 2 crystal.',
8272
8478
  color: '#4ADBFF',
8273
8479
  },
8274
- 20005: {
8480
+ 11005: {
8275
8481
  name: 'Beam',
8276
8482
  description: 'Advanced heavy-duty structural beam reinforced with tier 2 ore.',
8277
8483
  color: '#7B8D9E',
8278
8484
  },
8279
- 20006: {
8485
+ 11006: {
8280
8486
  name: 'Sensor',
8281
8487
  description: 'Advanced crystal-lattice sensing element reinforced with tier 2 crystal.',
8282
8488
  color: '#4ADBFF',
8283
8489
  },
8284
- 20007: {
8490
+ 11007: {
8285
8491
  name: 'Polymer',
8286
8492
  description: 'Advanced pliable biomass-derived polymer reinforced with tier 2 biomass.',
8287
8493
  color: '#5A8B3E',
8288
8494
  },
8289
- 20008: {
8495
+ 11008: {
8290
8496
  name: 'Ceramic',
8291
8497
  description: 'Advanced hardened ceramic reinforced with tier 2 regolith.',
8292
8498
  color: '#C4A57B',
8293
8499
  },
8294
- 20009: {
8500
+ 11009: {
8295
8501
  name: 'Reactor',
8296
8502
  description: 'Advanced gas-pressurized reaction vessel reinforced with tier 2 gas.',
8297
8503
  color: '#B877FF',
8298
8504
  },
8299
- 20010: {
8505
+ 11010: {
8300
8506
  name: 'Resin',
8301
8507
  description: 'Advanced saturated organic binder reinforced with tier 2 biomass.',
8302
8508
  color: '#5A8B3E',
8303
8509
  },
8304
- 20100: {
8510
+ 11100: {
8305
8511
  name: 'Engine',
8306
8512
  description: 'Advanced propulsion system. Reinforced thrust chambers for higher velocity.',
8307
8513
  color: '#E86344',
8308
8514
  },
8309
- 20101: {
8515
+ 11101: {
8310
8516
  name: 'Power Core',
8311
8517
  description: 'Advanced energy system. Higher-density crystal matrix for increased energy throughput.',
8312
8518
  color: '#4ADBFF',
8313
8519
  },
8314
- 20102: {
8520
+ 11102: {
8315
8521
  name: 'Limpet Bay',
8316
8522
  description: 'Advanced gathering system. Reinforced probes and conduits for deeper yield.',
8317
8523
  color: '#7B8D9E',
8318
8524
  },
8319
- 20103: {
8525
+ 11103: {
8320
8526
  name: 'Shuttle Bay',
8321
8527
  description: 'Advanced cargo handling system. Reinforced articulated arms for greater loading throughput.',
8322
8528
  color: '#5A8B3E',
8323
8529
  },
8324
- 20104: {
8530
+ 11104: {
8325
8531
  name: 'Fabricator',
8326
8532
  description: 'Advanced crafting system. Higher-grade reaction chambers for faster processing.',
8327
8533
  color: '#B877FF',
8328
8534
  },
8329
- 20106: {
8535
+ 11105: {
8536
+ name: 'Cargo Hold',
8537
+ description: 'Advanced cargo storage. Reinforced tier 2 holds carry more mass.',
8538
+ color: '#8B7355',
8539
+ },
8540
+ 11106: {
8330
8541
  name: 'Tractor Beam',
8331
8542
  description: 'Advanced haul beam projector reinforced with tier 2 components for greater towing capacity.',
8332
8543
  color: '#4ADBFF',
8333
8544
  },
8334
- 20107: {
8545
+ 11107: {
8335
8546
  name: 'Warp Drive',
8336
8547
  description: 'Advanced warp system. Reinforced field coils project the hull across greater distances.',
8337
8548
  color: '#9be4ff',
8338
8549
  },
8339
- 20110: {
8550
+ 11108: {
8551
+ name: 'Battery Bank',
8552
+ description: 'Advanced battery bank. Higher-density cells store more charge from the power core.',
8553
+ color: '#4ADBFF',
8554
+ },
8555
+ 11110: {
8340
8556
  name: 'Assembly Arm',
8341
8557
  description: 'Advanced construction system. Reinforced manipulator arms for faster build and upgrade work.',
8342
8558
  color: '#FFB347',
8343
8559
  },
8344
- 20200: {
8560
+ 11200: {
8345
8561
  name: 'Container',
8346
8562
  description: 'Advanced cargo container with improved capacity formulas.',
8347
8563
  color: '#9BADB8',
8348
8564
  },
8349
- 20212: {
8565
+ 11212: {
8350
8566
  name: 'Prospector',
8351
8567
  description: 'The tier 2 Prospector. The same three systems, ready for tier 2 modules.',
8352
8568
  color: '#4AE898',
8353
8569
  },
8354
- 20213: {
8570
+ 11213: {
8355
8571
  name: 'Prospector',
8356
8572
  description: 'A tier 2 Prospector with an auxiliary system for extra power, mobility, or endurance.',
8357
8573
  color: '#4AE898',
8358
8574
  },
8359
- 20214: {
8575
+ 11214: {
8360
8576
  name: 'Dredger',
8361
8577
  description: 'A gathering ship that stores what it digs. Its limpet bay works alongside a cargo hold.',
8362
8578
  color: '#4AE898',
@@ -8382,9 +8598,9 @@ const entityMetadata = {
8382
8598
  moduleSlotLabels: ['Fabricator', 'Fabricator', 'Fabricator', 'Fabricator', 'Fabricator'],
8383
8599
  },
8384
8600
  10209: { moduleSlotLabels: ['Power Core', 'Assembly Arm'] },
8385
- 20212: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
8386
- 20213: { moduleSlotLabels: ['Power Core', 'Engine', 'Auxiliary System', 'Limpet Bay'] },
8387
- 20214: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
8601
+ 11212: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
8602
+ 11213: { moduleSlotLabels: ['Power Core', 'Engine', 'Auxiliary System', 'Limpet Bay'] },
8603
+ 11214: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
8388
8604
  };
8389
8605
  for (const item of items) {
8390
8606
  if (!itemMetadata[item.id]) {
@@ -8412,12 +8628,15 @@ for (const raw of items) {
8412
8628
  }
8413
8629
  const itemIds = Array.from(itemsById.keys());
8414
8630
  function getItem(itemId) {
8415
- const id = antelope.UInt16.from(itemId).toNumber();
8416
- const item = itemsById.get(id);
8631
+ const item = tryGetItem(itemId);
8417
8632
  if (!item)
8418
- throw new Error(`Unknown item id: ${id}`);
8633
+ throw new Error(`Unknown item id: ${antelope.UInt16.from(itemId).toNumber()}`);
8419
8634
  return item;
8420
8635
  }
8636
+ function tryGetItem(itemId) {
8637
+ const id = antelope.UInt16.from(itemId).toNumber();
8638
+ return itemsById.get(id);
8639
+ }
8421
8640
  function getItems() {
8422
8641
  return Array.from(itemsById.values());
8423
8642
  }
@@ -11376,7 +11595,7 @@ var templates = [
11376
11595
  displayLabel: ""
11377
11596
  },
11378
11597
  {
11379
- itemId: 20200,
11598
+ itemId: 11200,
11380
11599
  kind: "container",
11381
11600
  displayLabel: ""
11382
11601
  },
@@ -11396,17 +11615,17 @@ var templates = [
11396
11615
  displayLabel: ""
11397
11616
  },
11398
11617
  {
11399
- itemId: 20212,
11618
+ itemId: 11212,
11400
11619
  kind: "ship",
11401
11620
  displayLabel: "Prospector"
11402
11621
  },
11403
11622
  {
11404
- itemId: 20213,
11623
+ itemId: 11213,
11405
11624
  kind: "ship",
11406
11625
  displayLabel: "Prospector"
11407
11626
  },
11408
11627
  {
11409
- itemId: 20214,
11628
+ itemId: 11214,
11410
11629
  kind: "ship",
11411
11630
  displayLabel: "Dredger"
11412
11631
  }
@@ -13111,7 +13330,7 @@ function legacyEntityIdToItemId(id) {
13111
13330
  case 'warehouse-t1':
13112
13331
  return 10202;
13113
13332
  case 'container-t2':
13114
- return 20200;
13333
+ return 11200;
13115
13334
  default:
13116
13335
  return 0;
13117
13336
  }
@@ -13823,36 +14042,8 @@ function moduleAccepts(slotType, moduleType) {
13823
14042
  return slotType === MODULE_ANY || slotType === moduleType;
13824
14043
  }
13825
14044
  function getModuleCapabilityType(itemId) {
13826
- switch (itemId) {
13827
- case ITEM_ENGINE_T1:
13828
- case ITEM_ENGINE_T2:
13829
- return MODULE_ENGINE;
13830
- case ITEM_GENERATOR_T1:
13831
- case ITEM_GENERATOR_T2:
13832
- return MODULE_GENERATOR;
13833
- case ITEM_GATHERER_T1:
13834
- case ITEM_GATHERER_T2:
13835
- return MODULE_GATHERER;
13836
- case ITEM_LOADER_T1:
13837
- return MODULE_LOADER;
13838
- case ITEM_CRAFTER_T1:
13839
- return MODULE_CRAFTER;
13840
- case ITEM_BUILDER_T1:
13841
- return MODULE_BUILDER;
13842
- case ITEM_STORAGE_T1:
13843
- return MODULE_STORAGE;
13844
- case ITEM_HAULER_T1:
13845
- case ITEM_HAULER_T2:
13846
- return MODULE_HAULER;
13847
- case ITEM_WARP_T1:
13848
- return MODULE_WARP;
13849
- case ITEM_BATTERY_T1:
13850
- return MODULE_BATTERY;
13851
- case ITEM_LAUNCHER_T1:
13852
- return MODULE_LAUNCHER;
13853
- default:
13854
- return 0xff;
13855
- }
14045
+ const item = tryGetItem(itemId);
14046
+ return item?.type === 'module' && item.moduleType ? moduleSlotTypeToCode(item.moduleType) : 0xff;
13856
14047
  }
13857
14048
  function isModuleItem(itemId) {
13858
14049
  return getModuleCapabilityType(itemId) !== 0xff;
@@ -13914,16 +14105,18 @@ function itemTypeCode(id) {
13914
14105
  return ITEM_TYPE_ENTITY;
13915
14106
  }
13916
14107
  }
14108
+ const CRAFTED_BASE = 10000;
14109
+ const TIER_STRIDE = 1000;
13917
14110
  function itemTier(id) {
13918
- if (id < 10000)
14111
+ if (id < CRAFTED_BASE)
13919
14112
  return 0;
13920
- return Math.floor(id / 10000);
14113
+ return Math.floor((id - CRAFTED_BASE) / TIER_STRIDE) + 1;
13921
14114
  }
13922
14115
  function itemOffset(id) {
13923
- return id % 10000;
14116
+ return id % TIER_STRIDE;
13924
14117
  }
13925
14118
  function itemCategory(id) {
13926
- if (id < 10000)
14119
+ if (id < CRAFTED_BASE)
13927
14120
  return 'resource';
13928
14121
  const offset = itemOffset(id);
13929
14122
  if (offset >= 200)
@@ -13933,12 +14126,12 @@ function itemCategory(id) {
13933
14126
  return 'component';
13934
14127
  }
13935
14128
  function isRelatedItem(a, b) {
13936
- if (a < 10000 || b < 10000)
14129
+ if (a < CRAFTED_BASE || b < CRAFTED_BASE)
13937
14130
  return false;
13938
14131
  return itemOffset(a) === itemOffset(b);
13939
14132
  }
13940
14133
  function isCraftedItem(id) {
13941
- return id >= 10000;
14134
+ return id >= CRAFTED_BASE;
13942
14135
  }
13943
14136
 
13944
14137
  function readCommonBase(data) {
@@ -16824,6 +17017,10 @@ function idiv(a, b) {
16824
17017
  function toWholeEnergy$1(milli) {
16825
17018
  return idiv(milli + 500, 1000);
16826
17019
  }
17020
+ function formatMassTonnes(kg) {
17021
+ const tenths = idiv(kg + 50, 100);
17022
+ return `${idiv(tenths, 10)}.${tenths % 10} t`;
17023
+ }
16827
17024
  function isShipHull$1(itemId) {
16828
17025
  return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
16829
17026
  }
@@ -16851,6 +17048,27 @@ function computeBaseCapacityWarehouse(stats) {
16851
17048
  const s = decodeStat(stats, 0) + decodeStat(stats, 2);
16852
17049
  return Math.floor(100000000 * 6 ** (s / 1998));
16853
17050
  }
17051
+ function computeBaseCapacityWorkshop(stats) {
17052
+ const s = decodeStat(stats, 0) + decodeStat(stats, 2);
17053
+ return Math.floor(5000000 * 6 ** (s / 1998));
17054
+ }
17055
+ const CAPACITY_FN_BY_KIND = {
17056
+ ship: computeBaseCapacityShip,
17057
+ warehouse: computeBaseCapacityWarehouse,
17058
+ workshop: computeBaseCapacityWorkshop,
17059
+ extractor: computeBaseCapacityContainer,
17060
+ factory: computeBaseCapacityContainer,
17061
+ builddock: computeBaseCapacityContainer,
17062
+ mdriver: computeBaseCapacityContainer,
17063
+ mcatcher: computeBaseCapacityContainer,
17064
+ container: computeBaseCapacityContainer,
17065
+ };
17066
+ function computeBaseCapacityForEntity(itemId, stats) {
17067
+ const kind = getTemplateMeta(itemId)?.kind;
17068
+ if (!kind)
17069
+ return 0;
17070
+ return CAPACITY_FN_BY_KIND[kind.toString()]?.(stats) ?? 0;
17071
+ }
16854
17072
  const computeEngineThrust = (vol, tier) => idiv((400 + idiv(vol * 3, 4)) * moduleTierPct(ENGINE_THRUST_TIER_PCT, tier), 100);
16855
17073
  const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
16856
17074
  const ENGINE_DRAIN_BASE = 156;
@@ -16883,83 +17101,36 @@ const computeT1LogisticsDrain = (stat) => Math.max(3000, 15000 - Math.min(12000,
16883
17101
  const computeHaulerDrain = (conductivity, tier) => idiv(computeT1LogisticsDrain(conductivity) * supportDrainTierPercent(tier), 100);
16884
17102
  const computeCargoBayDrain = (cohesion, tier) => idiv(computeT1LogisticsDrain(cohesion) * 3 * supportDrainTierPercent(tier), 400);
16885
17103
  const computeWarpRange = (stat, tier) => idiv((100 + stat * 3) * moduleTierPct(WARP_RANGE_TIER_PCT, tier), 100);
16886
- const computeCargoBayCapacity = (strength, density, hardness) => 10000000 + idiv((strength + density + hardness) * 50000000, 2997);
16887
- const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996);
17104
+ const computeCargoBayCapacity = (strength, density, hardness, tier) => idiv((10000000 + idiv((strength + density + hardness) * 50000000, 2997)) *
17105
+ moduleTierPct(CARGO_BAY_CAPACITY_TIER_PCT, tier), 100);
17106
+ const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation, tier) => idiv((2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996)) *
17107
+ moduleTierPct(BATTERY_CAPACITY_TIER_PCT, tier), 100);
16888
17108
  function entityDisplayName(itemId) {
16889
- switch (itemId) {
16890
- case ITEM_SHIP_T1_PACKED:
16891
- return 'Ship';
16892
- case ITEM_ROUSTABOUT_T1A_PACKED:
16893
- return 'Roustabout';
16894
- case ITEM_PROSPECTOR_T1A_PACKED:
16895
- return 'Prospector';
16896
- case ITEM_TENDER_T1A_PACKED:
16897
- return 'Tender';
16898
- case ITEM_TUG_T1A_PACKED:
16899
- return 'Tug';
16900
- case ITEM_PORTER_T1A_PACKED:
16901
- return 'Porter';
16902
- case ITEM_WRIGHT_T1A_PACKED:
16903
- return 'Wright';
16904
- case ITEM_SMITH_T1A_PACKED:
16905
- return 'Smith';
16906
- case ITEM_WAREHOUSE_T1_PACKED:
16907
- return 'Warehouse';
16908
- case ITEM_EXTRACTOR_T1_PACKED:
16909
- return 'Mining Rig';
16910
- case ITEM_FACTORY_T1_PACKED:
16911
- return 'Factory';
16912
- case ITEM_CONSTRUCTION_DOCK_T1_PACKED:
16913
- return 'Construction Dock';
16914
- case ITEM_CONTAINER_T1_PACKED:
16915
- return 'Container';
16916
- case ITEM_CONTAINER_T2_PACKED:
16917
- return 'Container';
16918
- case ITEM_PROSPECTOR_T2A_PACKED:
16919
- return 'Prospector';
16920
- case ITEM_PROSPECTOR_T2B_PACKED:
16921
- return 'Prospector';
16922
- case ITEM_DREDGER_T2A_PACKED:
16923
- return 'Dredger';
16924
- default:
16925
- return 'Entity';
16926
- }
16927
- }
17109
+ const template = getTemplateMeta(itemId);
17110
+ if (!template)
17111
+ return 'Entity';
17112
+ if (template.displayLabel)
17113
+ return template.displayLabel;
17114
+ return getKindMeta(template.kind)?.defaultLabel || 'Entity';
17115
+ }
17116
+ const MODULE_DISPLAY_NAME_BY_TYPE = {
17117
+ engine: 'Engine',
17118
+ generator: 'Power Core',
17119
+ gatherer: 'Limpet Bay',
17120
+ loader: 'Shuttle Bay',
17121
+ crafter: 'Fabricator',
17122
+ storage: 'Cargo Hold',
17123
+ hauler: 'Tractor Beam',
17124
+ warp: 'Warp Drive',
17125
+ battery: 'Battery Bank',
17126
+ launcher: 'Drive Coil',
17127
+ builder: 'Assembly Arm',
17128
+ };
16928
17129
  function moduleDisplayName(itemId) {
16929
- switch (itemId) {
16930
- case ITEM_ENGINE_T1:
16931
- case ITEM_ENGINE_T2:
16932
- return 'Engine';
16933
- case ITEM_GENERATOR_T1:
16934
- case ITEM_GENERATOR_T2:
16935
- return 'Power Core';
16936
- case ITEM_GATHERER_T1:
16937
- case ITEM_GATHERER_T2:
16938
- return 'Limpet Bay';
16939
- case ITEM_LOADER_T1:
16940
- case ITEM_LOADER_T2:
16941
- return 'Shuttle Bay';
16942
- case ITEM_CRAFTER_T1:
16943
- case ITEM_CRAFTER_T2:
16944
- return 'Fabricator';
16945
- case ITEM_BUILDER_T1:
16946
- case ITEM_BUILDER_T2:
16947
- return 'Assembly Arm';
16948
- case ITEM_STORAGE_T1:
16949
- return 'Cargo Hold';
16950
- case ITEM_HAULER_T1:
16951
- case ITEM_HAULER_T2:
16952
- return 'Tractor Beam';
16953
- case ITEM_WARP_T1:
16954
- case ITEM_WARP_T2:
16955
- return 'Warp Drive';
16956
- case ITEM_BATTERY_T1:
16957
- return 'Battery Bank';
16958
- case ITEM_LAUNCHER_T1:
16959
- return 'Drive Coil';
16960
- default:
16961
- return 'Module';
16962
- }
17130
+ const item = tryGetItem(itemId);
17131
+ if (item?.type !== 'module' || !item.moduleType)
17132
+ return 'Module';
17133
+ return MODULE_DISPLAY_NAME_BY_TYPE[item.moduleType] ?? 'Module';
16963
17134
  }
16964
17135
  function formatModuleLine(slot, itemId, stats) {
16965
17136
  let out = `Slot ${slot} - `;
@@ -16996,7 +17167,7 @@ function formatModuleLine(slot, itemId, stats) {
16996
17167
  const fin = decodeStat(stats, 0);
16997
17168
  const pla = decodeStat(stats, 1);
16998
17169
  const tier = getItem(itemId).tier;
16999
- out += ` Mass ${computeLoaderMass(fin)} Thrust ${computeLoaderThrust(pla, tier)}`;
17170
+ out += ` Mass ${formatMassTonnes(computeLoaderMass(fin))} Thrust ${computeLoaderThrust(pla, tier)}`;
17000
17171
  break;
17001
17172
  }
17002
17173
  case MODULE_CRAFTER: {
@@ -17019,7 +17190,7 @@ function formatModuleLine(slot, itemId, stats) {
17019
17190
  const hrd = decodeStat(stats, 2);
17020
17191
  const coh = decodeStat(stats, 3);
17021
17192
  const tier = getItem(itemId).tier;
17022
- out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd)} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
17193
+ out += ` Cargo Capacity ${formatMassTonnes(computeCargoBayCapacity(str, den, hrd, tier))} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
17023
17194
  break;
17024
17195
  }
17025
17196
  case MODULE_HAULER: {
@@ -17041,7 +17212,8 @@ function formatModuleLine(slot, itemId, stats) {
17041
17212
  const thm = decodeStat(stats, 1);
17042
17213
  const pla = decodeStat(stats, 2);
17043
17214
  const ins = decodeStat(stats, 3);
17044
- out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
17215
+ const tier = getItem(itemId).tier;
17216
+ out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins, tier))}`;
17045
17217
  break;
17046
17218
  }
17047
17219
  }
@@ -17049,24 +17221,11 @@ function formatModuleLine(slot, itemId, stats) {
17049
17221
  }
17050
17222
  function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
17051
17223
  const hullMass = computeBaseHullmass$1(itemId, hullStats);
17052
- let baseCapacity = 0;
17053
- if (isShipHull$1(itemId)) {
17054
- baseCapacity = computeBaseCapacityShip(hullStats);
17055
- }
17056
- else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
17057
- baseCapacity = computeBaseCapacityWarehouse(hullStats);
17058
- }
17059
- else if (itemId === ITEM_EXTRACTOR_T1_PACKED ||
17060
- itemId === ITEM_FACTORY_T1_PACKED ||
17061
- itemId === ITEM_CONSTRUCTION_DOCK_T1_PACKED ||
17062
- itemId === ITEM_CONTAINER_T1_PACKED ||
17063
- itemId === ITEM_CONTAINER_T2_PACKED) {
17064
- baseCapacity = computeBaseCapacityContainer(hullStats);
17065
- }
17224
+ const baseCapacity = computeBaseCapacityForEntity(itemId, hullStats);
17066
17225
  let out = entityDisplayName(itemId);
17067
- out += ` - Hull ${hullMass} mass`;
17226
+ out += ` - Hull ${formatMassTonnes(hullMass)}`;
17068
17227
  if (baseCapacity > 0) {
17069
- out += ` * ${baseCapacity} capacity`;
17228
+ out += ` * ${formatMassTonnes(baseCapacity)} capacity`;
17070
17229
  }
17071
17230
  out += '\n\n';
17072
17231
  for (let i = 0; i < moduleItems.length; i++) {
@@ -17195,17 +17354,14 @@ function computeLauncherCapabilities(stats, amp = 100) {
17195
17354
  }
17196
17355
  function computeStorageCapabilities(stats, tier) {
17197
17356
  return {
17198
- capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0),
17357
+ capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0, tier),
17199
17358
  drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
17200
17359
  };
17201
17360
  }
17202
- function computeBatteryCapabilities(stats) {
17203
- const volatility = stats.volatility ?? 0;
17204
- const thermal = stats.thermal ?? 0;
17205
- const plasticity = stats.plasticity ?? 0;
17206
- const insulation = stats.insulation ?? 0;
17207
- const statSum = volatility + thermal + plasticity + insulation;
17208
- return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
17361
+ function computeBatteryCapabilities(stats, tier) {
17362
+ return {
17363
+ capacity: computeBatteryBankCapacity(stats.volatility ?? 0, stats.thermal ?? 0, stats.plasticity ?? 0, stats.insulation ?? 0, tier),
17364
+ };
17209
17365
  }
17210
17366
  const CAPACITY_TIER_TABLE = [1.0, 1.4, 1.8, 2.2, 2.6, 3.0, 3.4, 3.8, 4.2, 4.6];
17211
17367
  function capacityTierMultiplier(tier) {
@@ -17228,6 +17384,10 @@ const CRAFTER_SPEED_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280
17228
17384
  const BUILDER_SPEED_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280];
17229
17385
  const WARP_RANGE_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280];
17230
17386
  const LOADER_THRUST_TIER_PCT = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280];
17387
+ const CARGO_BAY_CAPACITY_TIER_PCT = [
17388
+ 100, 110, 120, 130, 140, 150, 160, 170, 180, 190,
17389
+ ];
17390
+ const BATTERY_CAPACITY_TIER_PCT = [100, 110, 120, 130, 140, 150, 160, 170, 180, 190];
17231
17391
  function moduleTierPct(table, tier) {
17232
17392
  const clamped = Math.min(Math.max(tier, 1), MODULE_MAX_TIER);
17233
17393
  return table[clamped - 1];
@@ -17237,31 +17397,27 @@ function computeGathererYield(str, tier) {
17237
17397
  const pct = GATHERER_YIELD_TIER_TABLE[clampedTier - 1];
17238
17398
  return Math.floor(((200 + str) * pct) / 100);
17239
17399
  }
17400
+ const BASE_CAPACITY_FN_BY_KIND = {
17401
+ warehouse: (stats) => computeWarehouseHullCapabilities(stats).capacity,
17402
+ workshop: (stats) => computeWorkshopHullCapabilities(stats).capacity,
17403
+ extractor: (stats) => computeContainerCapabilities(stats).capacity,
17404
+ factory: (stats) => computeContainerCapabilities(stats).capacity,
17405
+ builddock: (stats) => computeContainerCapabilities(stats).capacity,
17406
+ mdriver: (stats) => computeContainerCapabilities(stats).capacity,
17407
+ mcatcher: (stats) => computeContainerCapabilities(stats).capacity,
17408
+ container: (stats) => computeContainerCapabilities(stats).capacity,
17409
+ };
17240
17410
  function computeBaseCapacity(itemId, stats) {
17241
17411
  let base;
17242
17412
  if (isShipHull(itemId)) {
17243
17413
  base = computeShipHullCapabilities(stats, itemId).capacity;
17244
17414
  }
17245
17415
  else {
17246
- switch (itemId) {
17247
- case ITEM_EXTRACTOR_T1_PACKED:
17248
- case ITEM_FACTORY_T1_PACKED:
17249
- case ITEM_CONSTRUCTION_DOCK_T1_PACKED:
17250
- case ITEM_MASS_DRIVER_T1_PACKED:
17251
- case ITEM_MASS_CATCHER_T1_PACKED:
17252
- case ITEM_CONTAINER_T1_PACKED:
17253
- case ITEM_CONTAINER_T2_PACKED:
17254
- base = computeContainerCapabilities(stats).capacity;
17255
- break;
17256
- case ITEM_WAREHOUSE_T1_PACKED:
17257
- base = computeWarehouseHullCapabilities(stats).capacity;
17258
- break;
17259
- case ITEM_WORKSHOP_T1_PACKED:
17260
- base = computeWorkshopHullCapabilities(stats).capacity;
17261
- break;
17262
- default:
17263
- return 0;
17264
- }
17416
+ const kind = getPackedEntityType(itemId);
17417
+ const capacityFn = kind ? BASE_CAPACITY_FN_BY_KIND[kind.toString()] : undefined;
17418
+ if (!capacityFn)
17419
+ return 0;
17420
+ base = capacityFn(stats);
17265
17421
  }
17266
17422
  return applyCapacityTier(base, getItem(itemId).tier);
17267
17423
  }
@@ -17439,7 +17595,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
17439
17595
  totalLauncherDrain = clampUint16(totalLauncherDrain + caps.drain);
17440
17596
  }
17441
17597
  else if (modType === MODULE_BATTERY) {
17442
- const caps = computeBatteryCapabilities(decodedStats);
17598
+ const caps = computeBatteryCapabilities(decodedStats, item.tier);
17443
17599
  totalBatteryCapacity += applySlotMultiplierUint32(caps.capacity, amp);
17444
17600
  }
17445
17601
  }
@@ -20003,9 +20159,9 @@ const itemAbbreviations = {
20003
20159
  10200: 'CT',
20004
20160
  10201: 'SH',
20005
20161
  10202: 'WH',
20006
- 20001: 'PL',
20007
- 20002: 'FR',
20008
- 20200: 'CT',
20162
+ 11001: 'PL',
20163
+ 11002: 'FR',
20164
+ 11200: 'CT',
20009
20165
  };
20010
20166
 
20011
20167
  const categories = [
@@ -20733,7 +20889,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
20733
20889
  };
20734
20890
  }
20735
20891
  case MODULE_BATTERY: {
20736
- const caps = computeBatteryCapabilities(stats);
20892
+ const caps = computeBatteryCapabilities(stats, tier);
20737
20893
  return {
20738
20894
  capability: 'Energy',
20739
20895
  attributes: [
@@ -21207,7 +21363,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
21207
21363
  base.push({ first: 'cohesion', second: ['uint16', com] });
21208
21364
  base.push({
21209
21365
  first: 'capacity',
21210
- second: ['uint32', computeCargoBayCapacity(str, den, hrd)],
21366
+ second: ['uint32', computeCargoBayCapacity(str, den, hrd, item.tier)],
21211
21367
  });
21212
21368
  base.push({
21213
21369
  first: 'drain',
@@ -21226,7 +21382,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
21226
21382
  base.push({ first: 'insulation', second: ['uint16', ins] });
21227
21383
  base.push({
21228
21384
  first: 'capacity',
21229
- second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
21385
+ second: [
21386
+ 'uint32',
21387
+ toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins, item.tier)),
21388
+ ],
21230
21389
  });
21231
21390
  break;
21232
21391
  }
@@ -21296,10 +21455,13 @@ var index = /*#__PURE__*/Object.freeze({
21296
21455
  deserializeEntity: deserializeEntity,
21297
21456
  deserializeAsset: deserializeAsset,
21298
21457
  toWholeEnergy: toWholeEnergy$1,
21458
+ formatMassTonnes: formatMassTonnes,
21299
21459
  computeBaseHullmass: computeBaseHullmass$1,
21300
21460
  computeBaseCapacityShip: computeBaseCapacityShip,
21301
21461
  computeBaseCapacityContainer: computeBaseCapacityContainer,
21302
21462
  computeBaseCapacityWarehouse: computeBaseCapacityWarehouse,
21463
+ computeBaseCapacityWorkshop: computeBaseCapacityWorkshop,
21464
+ computeBaseCapacityForEntity: computeBaseCapacityForEntity,
21303
21465
  computeEngineThrust: computeEngineThrust,
21304
21466
  computeEngineDrain: computeEngineDrain,
21305
21467
  ENGINE_DRAIN_BASE: ENGINE_DRAIN_BASE,
@@ -21659,6 +21821,7 @@ exports.INSUFFICIENT_ITEM_SUPPLY = INSUFFICIENT_ITEM_SUPPLY;
21659
21821
  exports.INTAKE_RATE = INTAKE_RATE;
21660
21822
  exports.INVALID_AMOUNT = INVALID_AMOUNT;
21661
21823
  exports.ITEM_BATTERY_T1 = ITEM_BATTERY_T1;
21824
+ exports.ITEM_BATTERY_T2 = ITEM_BATTERY_T2;
21662
21825
  exports.ITEM_BEAM = ITEM_BEAM;
21663
21826
  exports.ITEM_BEAM_T2 = ITEM_BEAM_T2;
21664
21827
  exports.ITEM_BIOMASS_T1 = ITEM_BIOMASS_T1;
@@ -21765,6 +21928,7 @@ exports.ITEM_SENSOR_T2 = ITEM_SENSOR_T2;
21765
21928
  exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
21766
21929
  exports.ITEM_SMITH_T1A_PACKED = ITEM_SMITH_T1A_PACKED;
21767
21930
  exports.ITEM_STORAGE_T1 = ITEM_STORAGE_T1;
21931
+ exports.ITEM_STORAGE_T2 = ITEM_STORAGE_T2;
21768
21932
  exports.ITEM_TENDER_T1A_PACKED = ITEM_TENDER_T1A_PACKED;
21769
21933
  exports.ITEM_TUG_T1A_PACKED = ITEM_TUG_T1A_PACKED;
21770
21934
  exports.ITEM_TYPE_COMPONENT = ITEM_TYPE_COMPONENT;