@shipload/sdk 1.0.0-next.2 → 1.0.0-next.20

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.
Files changed (85) hide show
  1. package/lib/shipload.d.ts +1709 -1044
  2. package/lib/shipload.js +6762 -4658
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +6653 -4614
  5. package/lib/shipload.m.js.map +1 -1
  6. package/lib/testing.d.ts +833 -0
  7. package/lib/testing.js +3647 -0
  8. package/lib/testing.js.map +1 -0
  9. package/lib/testing.m.js +3641 -0
  10. package/lib/testing.m.js.map +1 -0
  11. package/package.json +15 -2
  12. package/src/capabilities/gathering.ts +17 -7
  13. package/src/capabilities/modules.ts +9 -0
  14. package/src/capabilities/storage.ts +1 -1
  15. package/src/contracts/platform.ts +211 -3
  16. package/src/contracts/server.ts +723 -438
  17. package/src/data/capabilities.ts +9 -329
  18. package/src/data/capability-formulas.ts +76 -0
  19. package/src/data/catalog.ts +0 -5
  20. package/src/data/colors.ts +14 -28
  21. package/src/data/entities.json +46 -10
  22. package/src/data/item-ids.ts +17 -13
  23. package/src/data/items.json +308 -37
  24. package/src/data/kind-registry.json +85 -0
  25. package/src/data/kind-registry.ts +150 -0
  26. package/src/data/metadata.ts +99 -24
  27. package/src/data/recipes-runtime.ts +3 -23
  28. package/src/data/recipes.json +265 -96
  29. package/src/derivation/build-methods.ts +45 -0
  30. package/src/derivation/capabilities.ts +414 -0
  31. package/src/derivation/capability-mappings.ts +117 -0
  32. package/src/derivation/crafting.ts +23 -24
  33. package/src/derivation/index.ts +8 -2
  34. package/src/derivation/reserve-regen.ts +34 -0
  35. package/src/derivation/resources.ts +125 -38
  36. package/src/derivation/stats.ts +1 -2
  37. package/src/derivation/stratum.ts +15 -19
  38. package/src/derivation/tiers.ts +28 -7
  39. package/src/entities/entity.ts +98 -0
  40. package/src/entities/gamestate.ts +3 -28
  41. package/src/entities/makers.ts +75 -129
  42. package/src/entities/slot-multiplier.ts +37 -0
  43. package/src/errors.ts +10 -15
  44. package/src/format.ts +26 -4
  45. package/src/index-module.ts +149 -40
  46. package/src/managers/actions.ts +184 -82
  47. package/src/managers/base.ts +2 -2
  48. package/src/managers/construction-types.ts +47 -0
  49. package/src/managers/construction.ts +147 -0
  50. package/src/managers/context.ts +9 -0
  51. package/src/managers/entities.ts +18 -66
  52. package/src/managers/epochs.ts +40 -0
  53. package/src/managers/index.ts +14 -1
  54. package/src/managers/locations.ts +2 -20
  55. package/src/managers/nft.ts +28 -0
  56. package/src/managers/plot.ts +123 -0
  57. package/src/nft/atomicassets.ts +231 -0
  58. package/src/nft/atomicdata.ts +130 -0
  59. package/src/nft/buildImmutableData.ts +319 -0
  60. package/src/nft/description.ts +45 -13
  61. package/src/nft/index.ts +3 -0
  62. package/src/resolution/describe-module.ts +5 -8
  63. package/src/resolution/display-name.ts +38 -10
  64. package/src/resolution/resolve-item.ts +20 -12
  65. package/src/scheduling/accessor.ts +4 -0
  66. package/src/scheduling/projection.ts +79 -27
  67. package/src/scheduling/schedule.ts +15 -1
  68. package/src/scheduling/task-cargo.ts +46 -0
  69. package/src/shipload.ts +5 -0
  70. package/src/subscriptions/manager.ts +40 -6
  71. package/src/subscriptions/mappers.ts +3 -8
  72. package/src/subscriptions/types.ts +3 -2
  73. package/src/testing/catalog-hash.ts +19 -0
  74. package/src/testing/index.ts +2 -0
  75. package/src/testing/projection-parity.ts +143 -0
  76. package/src/travel/travel.ts +61 -2
  77. package/src/types/index.ts +0 -1
  78. package/src/types.ts +17 -12
  79. package/src/utils/cargo.ts +27 -0
  80. package/src/utils/system.ts +25 -24
  81. package/src/entities/container.ts +0 -108
  82. package/src/entities/ship-deploy.ts +0 -258
  83. package/src/entities/ship.ts +0 -204
  84. package/src/entities/warehouse.ts +0 -119
  85. package/src/types/entity-traits.ts +0 -69
package/lib/shipload.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _wharfkit_antelope from '@wharfkit/antelope';
2
- import { Blob, ABI, Struct, Name, UInt64, Checksum256, UInt32, TimePointSec, Checksum256Type, UInt32Type, NameType, UInt64Type, Action, UInt8, Int64, UInt16, TimePoint, Bytes, Int32, UInt16Type, UInt8Type, TimePointType, Int64Type, Int32Type, Checksum512, APIClient } from '@wharfkit/antelope';
2
+ import { Blob, ABI, Struct, Name, Asset, UInt64, Checksum256, UInt32, TimePointSec, ExtendedAsset, Checksum256Type, UInt32Type, NameType, UInt64Type, AssetType, ExtendedAssetType, Action, UInt16, UInt8, Int64, TimePoint, BlockTimestamp, Bytes, Int32, UInt16Type, UInt8Type, Int64Type, TimePointType, Int32Type, Checksum512, APIClient } from '@wharfkit/antelope';
3
3
  import * as _wharfkit_contract from '@wharfkit/contract';
4
4
  import { Contract as Contract$2, PartialBy, ContractArgs, ActionOptions, Table } from '@wharfkit/contract';
5
5
  import { ChainDefinition } from '@wharfkit/common';
@@ -7,15 +7,35 @@ import { ChainDefinition } from '@wharfkit/common';
7
7
  declare const abiBlob$1: Blob;
8
8
  declare const abi$1: ABI;
9
9
  declare namespace Types$1 {
10
+ class balance_row extends Struct {
11
+ token_contract: Name;
12
+ balance: Asset;
13
+ }
10
14
  class cleartable extends Struct {
11
15
  table_name: Name;
12
16
  scope?: Name;
13
17
  max_rows?: UInt64;
14
18
  }
19
+ class close extends Struct {
20
+ owner: Name;
21
+ token_contract: Name;
22
+ token_symbol: Asset.Symbol;
23
+ }
15
24
  class company_row extends Struct {
16
25
  account: Name;
17
26
  name: string;
18
27
  }
28
+ class debitdeposit extends Struct {
29
+ owner: Name;
30
+ token: Name;
31
+ locked: Asset;
32
+ fee_account: Name;
33
+ fee: Asset;
34
+ }
35
+ class depositcfg_row extends Struct {
36
+ token_contract: Name;
37
+ token_symbol: Asset.Symbol;
38
+ }
19
39
  class enable extends Struct {
20
40
  enabled: boolean;
21
41
  }
@@ -48,6 +68,19 @@ declare namespace Types$1 {
48
68
  meta: game_meta;
49
69
  state: game_state;
50
70
  }
71
+ class open extends Struct {
72
+ owner: Name;
73
+ token_contract: Name;
74
+ token_symbol: Asset.Symbol;
75
+ }
76
+ class setepochtime extends Struct {
77
+ contract: Name;
78
+ epochtime: UInt32;
79
+ }
80
+ class settoken extends Struct {
81
+ token_contract: Name;
82
+ token_symbol: Asset.Symbol;
83
+ }
51
84
  class startgame extends Struct {
52
85
  contract: Name;
53
86
  config: game_config;
@@ -57,22 +90,67 @@ declare namespace Types$1 {
57
90
  class state_row extends Struct {
58
91
  enabled: boolean;
59
92
  }
93
+ class unwrapcargo extends Struct {
94
+ game: Name;
95
+ owner: Name;
96
+ asset_id: UInt64;
97
+ }
98
+ class unwrapcust_row extends Struct {
99
+ asset_id: UInt64;
100
+ owner: Name;
101
+ }
102
+ class unwrapentity extends Struct {
103
+ game: Name;
104
+ owner: Name;
105
+ asset_id: UInt64;
106
+ }
60
107
  class updategame extends Struct {
61
108
  contract: Name;
62
109
  meta: game_meta;
63
110
  }
64
111
  class wipe extends Struct {
65
112
  }
113
+ class withdraw extends Struct {
114
+ owner: Name;
115
+ quantity: ExtendedAsset;
116
+ memo: string;
117
+ }
118
+ class wrapcargo extends Struct {
119
+ game: Name;
120
+ owner: Name;
121
+ entity_id: UInt64;
122
+ nexus_id: UInt64;
123
+ cargo_id: UInt64;
124
+ quantity: UInt64;
125
+ }
126
+ class wrapentity extends Struct {
127
+ game: Name;
128
+ owner: Name;
129
+ entity_id: UInt64;
130
+ nexus_id: UInt64;
131
+ }
132
+ class wrapgate_row extends Struct {
133
+ owner: Name;
134
+ last_asset_id: UInt64;
135
+ }
66
136
  }
67
137
  declare const TableMap$1: {
138
+ balance: typeof Types$1.balance_row;
68
139
  company: typeof Types$1.company_row;
140
+ depositcfg: typeof Types$1.depositcfg_row;
69
141
  games: typeof Types$1.game_row;
70
142
  state: typeof Types$1.state_row;
143
+ unwrapcust: typeof Types$1.unwrapcust_row;
144
+ wrapgate: typeof Types$1.wrapgate_row;
71
145
  };
72
146
  interface TableTypes$1 {
147
+ balance: Types$1.balance_row;
73
148
  company: Types$1.company_row;
149
+ depositcfg: Types$1.depositcfg_row;
74
150
  games: Types$1.game_row;
75
151
  state: Types$1.state_row;
152
+ unwrapcust: Types$1.unwrapcust_row;
153
+ wrapgate: Types$1.wrapgate_row;
76
154
  }
77
155
  type RowType$1<T> = T extends keyof TableTypes$1 ? TableTypes$1[T] : any;
78
156
  type TableNames$1 = keyof TableTypes$1;
@@ -99,6 +177,18 @@ declare namespace ActionParams$1 {
99
177
  scope?: NameType;
100
178
  max_rows?: UInt64Type;
101
179
  }
180
+ interface close {
181
+ owner: NameType;
182
+ token_contract: NameType;
183
+ token_symbol: Asset.SymbolType;
184
+ }
185
+ interface debitdeposit {
186
+ owner: NameType;
187
+ token: NameType;
188
+ locked: AssetType;
189
+ fee_account: NameType;
190
+ fee: AssetType;
191
+ }
102
192
  interface enable {
103
193
  enabled: boolean;
104
194
  }
@@ -110,27 +200,79 @@ declare namespace ActionParams$1 {
110
200
  account: NameType;
111
201
  name: string;
112
202
  }
203
+ interface open {
204
+ owner: NameType;
205
+ token_contract: NameType;
206
+ token_symbol: Asset.SymbolType;
207
+ }
208
+ interface setepochtime {
209
+ contract: NameType;
210
+ epochtime: UInt32Type;
211
+ }
212
+ interface settoken {
213
+ token_contract: NameType;
214
+ token_symbol: Asset.SymbolType;
215
+ }
113
216
  interface startgame {
114
217
  contract: NameType;
115
218
  config: Type.game_config;
116
219
  meta: Type.game_meta;
117
220
  state: Type.game_state;
118
221
  }
222
+ interface unwrapcargo {
223
+ game: NameType;
224
+ owner: NameType;
225
+ asset_id: UInt64Type;
226
+ }
227
+ interface unwrapentity {
228
+ game: NameType;
229
+ owner: NameType;
230
+ asset_id: UInt64Type;
231
+ }
119
232
  interface updategame {
120
233
  contract: NameType;
121
234
  meta: Type.game_meta;
122
235
  }
123
236
  interface wipe {
124
237
  }
238
+ interface withdraw {
239
+ owner: NameType;
240
+ quantity: ExtendedAssetType;
241
+ memo: string;
242
+ }
243
+ interface wrapcargo {
244
+ game: NameType;
245
+ owner: NameType;
246
+ entity_id: UInt64Type;
247
+ nexus_id: UInt64Type;
248
+ cargo_id: UInt64Type;
249
+ quantity: UInt64Type;
250
+ }
251
+ interface wrapentity {
252
+ game: NameType;
253
+ owner: NameType;
254
+ entity_id: UInt64Type;
255
+ nexus_id: UInt64Type;
256
+ }
125
257
  }
126
258
  interface ActionNameParams$1 {
127
259
  cleartable: ActionParams$1.cleartable;
260
+ close: ActionParams$1.close;
261
+ debitdeposit: ActionParams$1.debitdeposit;
128
262
  enable: ActionParams$1.enable;
129
263
  enablegame: ActionParams$1.enablegame;
130
264
  foundcompany: ActionParams$1.foundcompany;
265
+ open: ActionParams$1.open;
266
+ setepochtime: ActionParams$1.setepochtime;
267
+ settoken: ActionParams$1.settoken;
131
268
  startgame: ActionParams$1.startgame;
269
+ unwrapcargo: ActionParams$1.unwrapcargo;
270
+ unwrapentity: ActionParams$1.unwrapentity;
132
271
  updategame: ActionParams$1.updategame;
133
272
  wipe: ActionParams$1.wipe;
273
+ withdraw: ActionParams$1.withdraw;
274
+ wrapcargo: ActionParams$1.wrapcargo;
275
+ wrapentity: ActionParams$1.wrapentity;
134
276
  }
135
277
  type ActionNames$1 = keyof ActionNameParams$1;
136
278
  declare class Contract$1 extends Contract$2 {
@@ -158,43 +300,50 @@ declare namespace platform {
158
300
  declare const abiBlob: Blob;
159
301
  declare const abi: ABI;
160
302
  declare namespace Types {
303
+ class packed_module extends Struct {
304
+ item_id: UInt16;
305
+ stats: UInt64;
306
+ }
307
+ class module_entry extends Struct {
308
+ type: UInt8;
309
+ installed?: packed_module;
310
+ }
311
+ class cargo_ref extends Struct {
312
+ item_id: UInt16;
313
+ stats: UInt64;
314
+ modules: module_entry[];
315
+ entity_id?: UInt64;
316
+ }
161
317
  class addmodule extends Struct {
162
- entity_type: Name;
163
318
  entity_id: UInt64;
164
319
  module_index: UInt8;
165
- module_cargo_id: UInt64;
166
- target_cargo_id: UInt64;
320
+ module_ref: cargo_ref;
321
+ target_ref?: cargo_ref;
167
322
  }
168
323
  class addnexus extends Struct {
169
324
  nexus_name: string;
170
325
  x: Int64;
171
326
  y: Int64;
172
327
  }
173
- class advance extends Struct {
174
- reveal: string;
175
- commit: Checksum256;
176
- }
177
- class packed_module extends Struct {
178
- item_id: UInt16;
179
- stats: UInt64;
180
- }
181
- class module_entry extends Struct {
182
- type: UInt8;
183
- installed?: packed_module;
328
+ class addoracle extends Struct {
329
+ oracle_id: Name;
184
330
  }
185
331
  class cargo_item extends Struct {
186
332
  item_id: UInt16;
187
- quantity: UInt32;
188
333
  stats: UInt64;
189
334
  modules: module_entry[];
335
+ quantity: UInt32;
336
+ entity_id?: UInt64;
190
337
  }
191
338
  class blend extends Struct {
192
- entity_type: Name;
193
339
  id: UInt64;
194
340
  inputs: cargo_item[];
195
341
  }
342
+ class buildplot extends Struct {
343
+ builder_id: UInt64;
344
+ plot_id: UInt64;
345
+ }
196
346
  class cancel extends Struct {
197
- entity_type: Name;
198
347
  id: UInt64;
199
348
  count: UInt64;
200
349
  }
@@ -217,11 +366,25 @@ declare namespace Types {
217
366
  quantity: UInt64;
218
367
  stats: UInt64;
219
368
  modules: module_entry[];
369
+ sequence_id?: UInt64;
220
370
  }
221
- class claimstarter extends Struct {
222
- account: Name;
371
+ class cargo_view extends Struct {
372
+ item_id: UInt16;
373
+ stats: UInt64;
374
+ modules: module_entry[];
375
+ quantity: UInt32;
376
+ id: UInt64;
377
+ entity_id?: UInt64;
378
+ }
379
+ class coordinates extends Struct {
223
380
  x: Int64;
224
381
  y: Int64;
382
+ z?: UInt16;
383
+ }
384
+ class claimplot extends Struct {
385
+ builder_id: UInt64;
386
+ target_item_id: UInt16;
387
+ coords: coordinates;
225
388
  }
226
389
  class cleanrsvp extends Struct {
227
390
  epoch: UInt64;
@@ -233,6 +396,14 @@ declare namespace Types {
233
396
  max_rows?: UInt64;
234
397
  }
235
398
  class commit extends Struct {
399
+ oracle_id: Name;
400
+ epoch: UInt64;
401
+ commit: Checksum256;
402
+ }
403
+ class commit_row extends Struct {
404
+ id: UInt64;
405
+ epoch: UInt64;
406
+ oracle_id: Name;
236
407
  commit: Checksum256;
237
408
  }
238
409
  class entity_defaults extends Struct {
@@ -254,37 +425,7 @@ declare namespace Types {
254
425
  class configlog extends Struct {
255
426
  config: game_config;
256
427
  }
257
- class coordinates extends Struct {
258
- x: Int64;
259
- y: Int64;
260
- z?: UInt16;
261
- }
262
- class task extends Struct {
263
- type: UInt8;
264
- duration: UInt32;
265
- cancelable: UInt8;
266
- coordinates?: coordinates;
267
- cargo: cargo_item[];
268
- entitytarget?: entity_ref;
269
- entitygroup?: UInt64;
270
- energy_cost?: UInt16;
271
- }
272
- class schedule extends Struct {
273
- started: TimePoint;
274
- tasks: task[];
275
- }
276
- class container_row extends Struct {
277
- id: UInt64;
278
- owner: Name;
279
- name: string;
280
- coordinates: coordinates;
281
- hullmass: UInt32;
282
- capacity: UInt32;
283
- cargomass: UInt32;
284
- schedule?: schedule;
285
- }
286
428
  class craft extends Struct {
287
- entity_type: Name;
288
429
  id: UInt64;
289
430
  recipe_id: UInt16;
290
431
  quantity: UInt32;
@@ -294,18 +435,12 @@ declare namespace Types {
294
435
  speed: UInt16;
295
436
  drain: UInt16;
296
437
  }
297
- class createentity extends Struct {
298
- owner: Name;
299
- entity_type: Name;
300
- entity_name: string;
301
- x: Int64;
302
- y: Int64;
438
+ class demolish extends Struct {
439
+ entity_id: UInt64;
303
440
  }
304
441
  class deploy extends Struct {
305
- entity_type: Name;
306
442
  id: UInt64;
307
- packed_item_id: UInt16;
308
- stats: UInt64;
443
+ ref: cargo_ref;
309
444
  }
310
445
  class descentity extends Struct {
311
446
  item_id: UInt16;
@@ -324,28 +459,41 @@ declare namespace Types {
324
459
  coordinates: coordinates;
325
460
  energy: UInt16;
326
461
  }
327
- class loader_stats extends Struct {
328
- mass: UInt32;
329
- thrust: UInt16;
330
- quantity: UInt8;
331
- }
332
462
  class movement_stats extends Struct {
333
463
  thrust: UInt32;
334
464
  drain: UInt16;
335
465
  }
466
+ class warp_stats extends Struct {
467
+ range: UInt32;
468
+ }
336
469
  class gatherer_stats extends Struct {
337
470
  yield: UInt16;
338
471
  drain: UInt16;
339
472
  depth: UInt16;
340
- speed: UInt16;
473
+ }
474
+ class loader_stats extends Struct {
475
+ mass: UInt32;
476
+ thrust: UInt16;
477
+ quantity: UInt8;
341
478
  }
342
479
  class hauler_stats extends Struct {
343
480
  capacity: UInt8;
344
481
  efficiency: UInt16;
345
482
  drain: UInt16;
346
483
  }
347
- class warp_stats extends Struct {
348
- range: UInt32;
484
+ class task extends Struct {
485
+ type: UInt8;
486
+ duration: UInt32;
487
+ cancelable: UInt8;
488
+ coordinates?: coordinates;
489
+ cargo: cargo_item[];
490
+ entitytarget?: entity_ref;
491
+ entitygroup?: UInt64;
492
+ energy_cost?: UInt16;
493
+ }
494
+ class schedule extends Struct {
495
+ started: TimePoint;
496
+ tasks: task[];
349
497
  }
350
498
  class entity_info extends Struct {
351
499
  type: Name;
@@ -353,18 +501,19 @@ declare namespace Types {
353
501
  owner: Name;
354
502
  entity_name: string;
355
503
  coordinates: coordinates;
504
+ item_id: UInt16;
356
505
  cargomass: UInt32;
357
- cargo: cargo_item[];
358
- loaders?: loader_stats;
506
+ cargo: cargo_view[];
359
507
  modules: module_entry[];
360
508
  energy?: UInt16;
361
509
  hullmass?: UInt32;
510
+ capacity?: UInt32;
362
511
  engines?: movement_stats;
512
+ warp?: warp_stats;
363
513
  generator?: energy_stats;
364
- capacity?: UInt32;
365
514
  gatherer?: gatherer_stats;
515
+ loaders?: loader_stats;
366
516
  hauler?: hauler_stats;
367
- warp?: warp_stats;
368
517
  crafter?: crafter_stats;
369
518
  is_idle: boolean;
370
519
  current_task?: task;
@@ -376,6 +525,7 @@ declare namespace Types {
376
525
  }
377
526
  class slot_def extends Struct {
378
527
  type: UInt8;
528
+ output_pct: UInt16;
379
529
  }
380
530
  class entity_layout extends Struct {
381
531
  entity_item_id: UInt16;
@@ -384,6 +534,22 @@ declare namespace Types {
384
534
  class entity_layouts_result extends Struct {
385
535
  entities: entity_layout[];
386
536
  }
537
+ class entity_row extends Struct {
538
+ id: UInt64;
539
+ owner: Name;
540
+ kind: Name;
541
+ item_id: UInt16;
542
+ name: string;
543
+ stats: UInt64;
544
+ coordinates: coordinates;
545
+ energy?: UInt16;
546
+ cargomass: UInt32;
547
+ modules: module_entry[];
548
+ schedule?: schedule;
549
+ }
550
+ class entity_seq_row extends Struct {
551
+ next_id: UInt64;
552
+ }
387
553
  class entity_summary extends Struct {
388
554
  type: Name;
389
555
  id: UInt64;
@@ -411,20 +577,41 @@ declare namespace Types {
411
577
  class enum_result extends Struct {
412
578
  members: enum_member[];
413
579
  }
580
+ class epoch_row extends Struct {
581
+ epoch: UInt64;
582
+ oracle_ids: Name[];
583
+ threshold: UInt8;
584
+ seed: Checksum256;
585
+ }
586
+ class fixcargomass extends Struct {
587
+ entity_id: UInt64;
588
+ }
589
+ class forcereveal extends Struct {
590
+ epoch: UInt64;
591
+ }
414
592
  class gather extends Struct {
415
- source: entity_ref;
416
- destination: entity_ref;
593
+ source_id: UInt64;
594
+ destination_id: UInt64;
417
595
  stratum: UInt16;
418
596
  quantity: UInt32;
419
597
  }
420
598
  class getconfig extends Struct {
421
599
  }
600
+ class getdeposit extends Struct {
601
+ owner: Name;
602
+ asset_id: UInt64;
603
+ }
604
+ class geteligible extends Struct {
605
+ coords: coordinates;
606
+ stratum: UInt16;
607
+ }
608
+ class getentcls extends Struct {
609
+ }
422
610
  class getentities extends Struct {
423
611
  owner: Name;
424
612
  entity_type?: Name;
425
613
  }
426
614
  class getentity extends Struct {
427
- entity_type: Name;
428
615
  entity_id: UInt64;
429
616
  }
430
617
  class getitemdata extends Struct {
@@ -433,8 +620,13 @@ declare namespace Types {
433
620
  }
434
621
  class getitems extends Struct {
435
622
  }
623
+ class getitemtype extends Struct {
624
+ item_id: UInt16;
625
+ }
436
626
  class getitemtypes extends Struct {
437
627
  }
628
+ class getkindmeta extends Struct {
629
+ }
438
630
  class getlocation extends Struct {
439
631
  x: Int64;
440
632
  y: Int64;
@@ -448,15 +640,20 @@ declare namespace Types {
448
640
  class getmodules extends Struct {
449
641
  }
450
642
  class getnearby extends Struct {
451
- entity_type: Name;
452
643
  entity_id: UInt64;
453
644
  recharge: boolean;
454
645
  }
646
+ class getnftbase extends Struct {
647
+ }
455
648
  class getnftinfo extends Struct {
456
649
  }
457
650
  class getplayer extends Struct {
458
651
  account: Name;
459
652
  }
653
+ class getprojstate extends Struct {
654
+ entity_id: UInt64;
655
+ task_count?: UInt8;
656
+ }
460
657
  class getrecipe extends Struct {
461
658
  output_item_id: UInt16;
462
659
  }
@@ -495,9 +692,37 @@ declare namespace Types {
495
692
  class hash512 extends Struct {
496
693
  value: string;
497
694
  }
498
- class init extends Struct {
695
+ class importcargo extends Struct {
696
+ row: cargo_row;
697
+ }
698
+ class importentity extends Struct {
699
+ row: entity_row;
700
+ }
701
+ class importgroup extends Struct {
702
+ row: entitygroup_row;
703
+ }
704
+ class importplayer extends Struct {
705
+ owner: Name;
706
+ }
707
+ class reserve_row extends Struct {
708
+ id: UInt64;
709
+ coord_id: UInt64;
710
+ stratum: UInt16;
711
+ remaining: UInt32;
712
+ last_block: BlockTimestamp;
713
+ }
714
+ class importreserve extends Struct {
715
+ epoch_scope: UInt32;
716
+ row: reserve_row;
717
+ }
718
+ class state_row extends Struct {
719
+ enabled: boolean;
720
+ epoch: UInt32;
499
721
  seed: Checksum256;
500
722
  }
723
+ class importstate extends Struct {
724
+ row: state_row;
725
+ }
501
726
  class item_id_pair extends Struct {
502
727
  id: UInt16;
503
728
  name: string;
@@ -507,8 +732,6 @@ declare namespace Types {
507
732
  }
508
733
  class recipe_input extends Struct {
509
734
  item_id: UInt16;
510
- category: UInt8;
511
- tier: UInt8;
512
735
  quantity: UInt32;
513
736
  }
514
737
  class stat_source extends Struct {
@@ -544,6 +767,22 @@ declare namespace Types {
544
767
  class join extends Struct {
545
768
  account: Name;
546
769
  }
770
+ class kind_meta_row extends Struct {
771
+ kind: Name;
772
+ classification: UInt8;
773
+ capability_flags: UInt8;
774
+ z_coord: UInt32;
775
+ default_label: string;
776
+ }
777
+ class template_meta_row extends Struct {
778
+ item_id: UInt16;
779
+ kind: Name;
780
+ display_label: string;
781
+ }
782
+ class kind_meta_result extends Struct {
783
+ kinds: kind_meta_row[];
784
+ templates: template_meta_row[];
785
+ }
547
786
  class location_static extends Struct {
548
787
  coords: coordinates;
549
788
  type: UInt8;
@@ -551,28 +790,14 @@ declare namespace Types {
551
790
  seed0: UInt8;
552
791
  seed1: UInt8;
553
792
  }
554
- class location_epoch extends Struct {
555
- active: boolean;
556
- seed0: UInt8;
557
- seed1: UInt8;
558
- }
559
793
  class location_derived extends Struct {
560
794
  static_props: location_static;
561
- epoch_props: location_epoch;
562
795
  size: UInt16;
563
796
  }
564
797
  class location_info extends Struct {
565
798
  coords: coordinates;
566
799
  is_system: boolean;
567
800
  }
568
- class location_row extends Struct {
569
- id: UInt64;
570
- owner: Name;
571
- coordinates: coordinates;
572
- cargomass: UInt32;
573
- cargo: cargo_item[];
574
- schedule?: schedule;
575
- }
576
801
  class module_info extends Struct {
577
802
  id: UInt16;
578
803
  mass: UInt32;
@@ -595,11 +820,15 @@ declare namespace Types {
595
820
  max_energy: UInt16;
596
821
  systems: nearby_system[];
597
822
  }
598
- class nexus_row extends Struct {
599
- id: UInt64;
600
- owner: Name;
601
- name: string;
602
- coordinates: coordinates;
823
+ class nft_cargo_item extends Struct {
824
+ item_id: UInt16;
825
+ stats: UInt64;
826
+ modules: module_entry[];
827
+ quantity: UInt32;
828
+ }
829
+ class nft_item_payload extends Struct {
830
+ item: nft_cargo_item;
831
+ location?: coordinates;
603
832
  }
604
833
  class schema_field extends Struct {
605
834
  name: string;
@@ -612,12 +841,17 @@ declare namespace Types {
612
841
  class nft_template_def extends Struct {
613
842
  item_id: UInt16;
614
843
  schema_name: Name;
844
+ template_id: Int32;
615
845
  }
616
846
  class nftconfig_row extends Struct {
617
847
  item_id: UInt16;
618
848
  template_id: Int32;
619
849
  schema_name: Name;
620
850
  }
851
+ class nftimgurl extends Struct {
852
+ item: cargo_item;
853
+ location?: coordinates;
854
+ }
621
855
  class nftinfo_result extends Struct {
622
856
  schemas: nft_schema_def[];
623
857
  templates: nft_template_def[];
@@ -636,29 +870,56 @@ declare namespace Types {
636
870
  class notify extends Struct {
637
871
  event: task_event;
638
872
  }
873
+ class oracle_config_row extends Struct {
874
+ threshold: UInt8;
875
+ }
876
+ class oracle_row extends Struct {
877
+ id: Name;
878
+ }
879
+ class placecargo extends Struct {
880
+ owner: Name;
881
+ host_id: UInt64;
882
+ asset_id: UInt64;
883
+ }
884
+ class placeentity extends Struct {
885
+ owner: Name;
886
+ asset_id: UInt64;
887
+ target_nexus_id: UInt64;
888
+ }
639
889
  class player_info extends Struct {
640
890
  owner: Name;
641
891
  is_player: boolean;
642
892
  company_name: string;
643
- ship_count: UInt64;
644
- warehouse_count: UInt64;
645
- container_count: UInt64;
646
893
  }
647
894
  class player_row extends Struct {
648
895
  owner: Name;
649
896
  }
650
- class recharge extends Struct {
651
- entity_type: Name;
652
- id: UInt64;
653
- }
654
- class reserve_row extends Struct {
897
+ class projected_state extends Struct {
898
+ owner: Name;
899
+ coordinates: coordinates;
900
+ energy?: UInt16;
901
+ cargomass: UInt32;
902
+ cargo: cargo_view[];
903
+ hullmass?: UInt32;
904
+ capacity?: UInt32;
905
+ engines?: movement_stats;
906
+ warp?: warp_stats;
907
+ generator?: energy_stats;
908
+ gatherer?: gatherer_stats;
909
+ loaders?: loader_stats;
910
+ hauler?: hauler_stats;
911
+ crafter?: crafter_stats;
912
+ }
913
+ class recharge extends Struct {
655
914
  id: UInt64;
656
- coord_id: UInt64;
657
- stratum: UInt16;
658
- remaining: UInt32;
915
+ }
916
+ class refrshentity extends Struct {
917
+ entity_id: UInt64;
918
+ }
919
+ class removeoracle extends Struct {
920
+ oracle_id: Name;
659
921
  }
660
922
  class resolve extends Struct {
661
- entity_type: Name;
662
923
  id: UInt64;
663
924
  count?: UInt64;
664
925
  }
@@ -684,71 +945,53 @@ declare namespace Types {
684
945
  class resources_result extends Struct {
685
946
  resources: resource_info[];
686
947
  }
948
+ class reveal extends Struct {
949
+ oracle_id: Name;
950
+ epoch: UInt64;
951
+ reveal: Checksum256;
952
+ }
953
+ class reveal_row extends Struct {
954
+ id: UInt64;
955
+ epoch: UInt64;
956
+ oracle_id: Name;
957
+ reveal: Checksum256;
958
+ }
687
959
  class rmmodule extends Struct {
688
- entity_type: Name;
689
960
  entity_id: UInt64;
690
961
  module_index: UInt8;
691
- target_cargo_id: UInt64;
962
+ target_ref?: cargo_ref;
692
963
  }
693
964
  class rmnftcfg extends Struct {
694
965
  item_id: UInt16;
695
966
  }
696
- class salt extends Struct {
697
- salt: UInt64;
698
- }
699
- class sequence_row extends Struct {
700
- key: Name;
701
- value: UInt64;
702
- }
703
967
  class setnftcfg extends Struct {
704
968
  item_id: UInt16;
705
969
  template_id: Int32;
706
970
  schema_name: Name;
707
971
  }
708
- class ship_row extends Struct {
709
- id: UInt64;
710
- owner: Name;
711
- name: string;
712
- stats: UInt64;
713
- coordinates: coordinates;
714
- hullmass?: UInt32;
715
- capacity?: UInt32;
716
- energy?: UInt16;
717
- cargomass: UInt32;
718
- engines?: movement_stats;
719
- generator?: energy_stats;
720
- loaders?: loader_stats;
721
- gatherer?: gatherer_stats;
722
- warp?: warp_stats;
723
- crafter?: crafter_stats;
724
- hauler?: hauler_stats;
725
- modules: module_entry[];
726
- schedule?: schedule;
972
+ class setthreshold extends Struct {
973
+ threshold: UInt8;
727
974
  }
728
- class spawncargo extends Struct {
729
- entity_id: UInt64;
730
- item_id: UInt64;
731
- quantity: UInt64;
975
+ class setwrapcost extends Struct {
976
+ item_type: UInt8;
977
+ tier: UInt8;
978
+ amount: UInt64;
732
979
  }
733
- class spawnpacked extends Struct {
734
- entity_id: UInt64;
735
- item_id: UInt16;
736
- hull_stats: UInt64;
737
- installed: packed_module[];
980
+ class setwrapfee extends Struct {
981
+ fee_pct: UInt16;
982
+ fee_account: Name;
738
983
  }
739
- class spawnseeded extends Struct {
984
+ class stowcargo extends Struct {
985
+ owner: Name;
740
986
  entity_id: UInt64;
741
- item_id: UInt64;
987
+ nexus_id: UInt64;
988
+ cargo_id: UInt64;
742
989
  quantity: UInt64;
743
- stats: UInt64;
744
990
  }
745
- class state_row extends Struct {
746
- enabled: boolean;
747
- epoch: UInt32;
748
- salt: UInt64;
749
- ships: UInt32;
750
- seed: Checksum256;
751
- commit: Checksum256;
991
+ class stowentity extends Struct {
992
+ owner: Name;
993
+ entity_id: UInt64;
994
+ nexus_id: UInt64;
752
995
  }
753
996
  class stratum_info extends Struct {
754
997
  item_id: UInt16;
@@ -764,21 +1007,17 @@ declare namespace Types {
764
1007
  class stratum_remaining extends Struct {
765
1008
  stratum: UInt16;
766
1009
  remaining: UInt32;
1010
+ last_block: BlockTimestamp;
767
1011
  }
768
1012
  class task_results extends Struct {
769
1013
  entities: entity_task_info[];
770
1014
  }
771
1015
  class transfer extends Struct {
772
- source_type: Name;
773
1016
  source_id: UInt64;
774
- dest_type: Name;
775
1017
  dest_id: UInt64;
776
- item_id: UInt16;
777
- stats: UInt64;
778
- quantity: UInt32;
1018
+ items: cargo_item[];
779
1019
  }
780
1020
  class travel extends Struct {
781
- entity_type: Name;
782
1021
  id: UInt64;
783
1022
  x: Int64;
784
1023
  y: Int64;
@@ -789,77 +1028,74 @@ declare namespace Types {
789
1028
  entity_summary_type: entity_summary;
790
1029
  game_config_type: game_config;
791
1030
  stratum_remaining_type: stratum_remaining;
1031
+ nft_item_payload_type: nft_item_payload;
792
1032
  }
793
- class warehouse_row extends Struct {
794
- id: UInt64;
795
- owner: Name;
796
- name: string;
797
- stats: UInt64;
798
- coordinates: coordinates;
799
- hullmass?: UInt32;
800
- capacity?: UInt32;
801
- cargomass: UInt32;
802
- loaders?: loader_stats;
803
- modules: module_entry[];
804
- schedule?: schedule;
1033
+ class undeploy extends Struct {
1034
+ host_id: UInt64;
1035
+ target_id: UInt64;
805
1036
  }
806
1037
  class warp extends Struct {
807
- entity_type: Name;
808
1038
  id: UInt64;
809
1039
  x: Int64;
810
1040
  y: Int64;
811
1041
  }
812
1042
  class wipe extends Struct {
813
1043
  }
814
- class wipesequence extends Struct {
1044
+ class wrapconfig_row extends Struct {
1045
+ fee_pct: UInt16;
1046
+ fee_account: Name;
815
1047
  }
816
- class wrap extends Struct {
817
- owner: Name;
818
- entity_type: Name;
819
- entity_id: UInt64;
820
- cargo_id: UInt64;
821
- quantity: UInt64;
1048
+ class wrapcost_row extends Struct {
1049
+ item_type: UInt8;
1050
+ tier: UInt8;
1051
+ amount: UInt64;
822
1052
  }
823
1053
  }
824
1054
  declare const TableMap: {
825
1055
  cargo: typeof Types.cargo_row;
826
- container: typeof Types.container_row;
1056
+ commit: typeof Types.commit_row;
1057
+ entity: typeof Types.entity_row;
827
1058
  entitygroup: typeof Types.entitygroup_row;
828
- location: typeof Types.location_row;
829
- nexus: typeof Types.nexus_row;
1059
+ entityseq: typeof Types.entity_seq_row;
1060
+ epoch: typeof Types.epoch_row;
830
1061
  nftconfig: typeof Types.nftconfig_row;
1062
+ oraclecfg: typeof Types.oracle_config_row;
1063
+ oracles: typeof Types.oracle_row;
831
1064
  player: typeof Types.player_row;
832
1065
  reserve: typeof Types.reserve_row;
833
- sequence: typeof Types.sequence_row;
834
- ship: typeof Types.ship_row;
1066
+ reveal: typeof Types.reveal_row;
835
1067
  state: typeof Types.state_row;
836
1068
  types: typeof Types.types_row;
837
- warehouse: typeof Types.warehouse_row;
1069
+ wrapconfig: typeof Types.wrapconfig_row;
1070
+ wrapcost: typeof Types.wrapcost_row;
838
1071
  };
839
1072
  interface TableTypes {
840
1073
  cargo: Types.cargo_row;
841
- container: Types.container_row;
1074
+ commit: Types.commit_row;
1075
+ entity: Types.entity_row;
842
1076
  entitygroup: Types.entitygroup_row;
843
- location: Types.location_row;
844
- nexus: Types.nexus_row;
1077
+ entityseq: Types.entity_seq_row;
1078
+ epoch: Types.epoch_row;
845
1079
  nftconfig: Types.nftconfig_row;
1080
+ oraclecfg: Types.oracle_config_row;
1081
+ oracles: Types.oracle_row;
846
1082
  player: Types.player_row;
847
1083
  reserve: Types.reserve_row;
848
- sequence: Types.sequence_row;
849
- ship: Types.ship_row;
1084
+ reveal: Types.reveal_row;
850
1085
  state: Types.state_row;
851
1086
  types: Types.types_row;
852
- warehouse: Types.warehouse_row;
1087
+ wrapconfig: Types.wrapconfig_row;
1088
+ wrapcost: Types.wrapcost_row;
853
1089
  }
854
1090
  type RowType<T> = T extends keyof TableTypes ? TableTypes[T] : any;
855
1091
  type TableNames = keyof TableTypes;
856
1092
  declare namespace ActionParams {
857
1093
  namespace Type {
858
- interface cargo_item {
1094
+ interface cargo_ref {
859
1095
  item_id: UInt16Type;
860
- quantity: UInt32Type;
861
1096
  stats: UInt64Type;
862
1097
  modules: Type.module_entry[];
1098
+ entity_id?: UInt64Type;
863
1099
  }
864
1100
  interface module_entry {
865
1101
  type: UInt8Type;
@@ -869,6 +1105,18 @@ declare namespace ActionParams {
869
1105
  item_id: UInt16Type;
870
1106
  stats: UInt64Type;
871
1107
  }
1108
+ interface cargo_item {
1109
+ item_id: UInt16Type;
1110
+ stats: UInt64Type;
1111
+ modules: Type.module_entry[];
1112
+ quantity: UInt32Type;
1113
+ entity_id?: UInt64Type;
1114
+ }
1115
+ interface coordinates {
1116
+ x: Int64Type;
1117
+ y: Int64Type;
1118
+ z?: UInt16Type;
1119
+ }
872
1120
  interface game_config {
873
1121
  version: UInt32Type;
874
1122
  defaults: Type.entity_defaults;
@@ -889,16 +1137,31 @@ declare namespace ActionParams {
889
1137
  entity_type: NameType;
890
1138
  entity_id: UInt64Type;
891
1139
  }
892
- interface task_event {
893
- event_type: UInt8Type;
894
- owner: NameType;
895
- entity_type: NameType;
1140
+ interface cargo_row {
1141
+ id: UInt64Type;
896
1142
  entity_id: UInt64Type;
897
- task_index: UInt8Type;
898
- task: Type.task;
899
- starts_at: TimePointType;
900
- completes_at: TimePointType;
901
- new_energy?: UInt16Type;
1143
+ item_id: UInt64Type;
1144
+ quantity: UInt64Type;
1145
+ stats: UInt64Type;
1146
+ modules: Type.module_entry[];
1147
+ sequence_id?: UInt64Type;
1148
+ }
1149
+ interface entity_row {
1150
+ id: UInt64Type;
1151
+ owner: NameType;
1152
+ kind: NameType;
1153
+ item_id: UInt16Type;
1154
+ name: string;
1155
+ stats: UInt64Type;
1156
+ coordinates: Type.coordinates;
1157
+ energy?: UInt16Type;
1158
+ cargomass: UInt32Type;
1159
+ modules: Type.module_entry[];
1160
+ schedule?: Type.schedule;
1161
+ }
1162
+ interface schedule {
1163
+ started: TimePointType;
1164
+ tasks: Type.task[];
902
1165
  }
903
1166
  interface task {
904
1167
  type: UInt8Type;
@@ -910,42 +1173,64 @@ declare namespace ActionParams {
910
1173
  entitygroup?: UInt64Type;
911
1174
  energy_cost?: UInt16Type;
912
1175
  }
913
- interface coordinates {
914
- x: Int64Type;
915
- y: Int64Type;
916
- z?: UInt16Type;
1176
+ interface entitygroup_row {
1177
+ id: UInt64Type;
1178
+ participants: Type.entity_ref[];
1179
+ }
1180
+ interface reserve_row {
1181
+ id: UInt64Type;
1182
+ coord_id: UInt64Type;
1183
+ stratum: UInt16Type;
1184
+ remaining: UInt32Type;
1185
+ last_block: BlockTimestamp;
1186
+ }
1187
+ interface state_row {
1188
+ enabled: boolean;
1189
+ epoch: UInt32Type;
1190
+ seed: Checksum256Type;
1191
+ }
1192
+ interface task_event {
1193
+ event_type: UInt8Type;
1194
+ owner: NameType;
1195
+ entity_type: NameType;
1196
+ entity_id: UInt64Type;
1197
+ task_index: UInt8Type;
1198
+ task: Type.task;
1199
+ starts_at: TimePointType;
1200
+ completes_at: TimePointType;
1201
+ new_energy?: UInt16Type;
917
1202
  }
918
1203
  }
919
1204
  interface addmodule {
920
- entity_type: NameType;
921
1205
  entity_id: UInt64Type;
922
1206
  module_index: UInt8Type;
923
- module_cargo_id: UInt64Type;
924
- target_cargo_id: UInt64Type;
1207
+ module_ref: Type.cargo_ref;
1208
+ target_ref?: Type.cargo_ref;
925
1209
  }
926
1210
  interface addnexus {
927
1211
  nexus_name: string;
928
1212
  x: Int64Type;
929
1213
  y: Int64Type;
930
1214
  }
931
- interface advance {
932
- reveal: string;
933
- commit: Checksum256Type;
1215
+ interface addoracle {
1216
+ oracle_id: NameType;
934
1217
  }
935
1218
  interface blend {
936
- entity_type: NameType;
937
1219
  id: UInt64Type;
938
1220
  inputs: Type.cargo_item[];
939
1221
  }
1222
+ interface buildplot {
1223
+ builder_id: UInt64Type;
1224
+ plot_id: UInt64Type;
1225
+ }
940
1226
  interface cancel {
941
- entity_type: NameType;
942
1227
  id: UInt64Type;
943
1228
  count: UInt64Type;
944
1229
  }
945
- interface claimstarter {
946
- account: NameType;
947
- x: Int64Type;
948
- y: Int64Type;
1230
+ interface claimplot {
1231
+ builder_id: UInt64Type;
1232
+ target_item_id: UInt16Type;
1233
+ coords: Type.coordinates;
949
1234
  }
950
1235
  interface cleanrsvp {
951
1236
  epoch: UInt64Type;
@@ -957,30 +1242,25 @@ declare namespace ActionParams {
957
1242
  max_rows?: UInt64Type;
958
1243
  }
959
1244
  interface commit {
1245
+ oracle_id: NameType;
1246
+ epoch: UInt64Type;
960
1247
  commit: Checksum256Type;
961
1248
  }
962
1249
  interface configlog {
963
1250
  config: Type.game_config;
964
1251
  }
965
1252
  interface craft {
966
- entity_type: NameType;
967
1253
  id: UInt64Type;
968
1254
  recipe_id: UInt16Type;
969
1255
  quantity: UInt32Type;
970
1256
  inputs: Type.cargo_item[];
971
1257
  }
972
- interface createentity {
973
- owner: NameType;
974
- entity_type: NameType;
975
- entity_name: string;
976
- x: Int64Type;
977
- y: Int64Type;
1258
+ interface demolish {
1259
+ entity_id: UInt64Type;
978
1260
  }
979
1261
  interface deploy {
980
- entity_type: NameType;
981
1262
  id: UInt64Type;
982
- packed_item_id: UInt16Type;
983
- stats: UInt64Type;
1263
+ ref: Type.cargo_ref;
984
1264
  }
985
1265
  interface descentity {
986
1266
  item_id: UInt16Type;
@@ -991,20 +1271,35 @@ declare namespace ActionParams {
991
1271
  interface enable {
992
1272
  enabled: boolean;
993
1273
  }
1274
+ interface fixcargomass {
1275
+ entity_id: UInt64Type;
1276
+ }
1277
+ interface forcereveal {
1278
+ epoch: UInt64Type;
1279
+ }
994
1280
  interface gather {
995
- source: Type.entity_ref;
996
- destination: Type.entity_ref;
1281
+ source_id: UInt64Type;
1282
+ destination_id: UInt64Type;
997
1283
  stratum: UInt16Type;
998
1284
  quantity: UInt32Type;
999
1285
  }
1000
1286
  interface getconfig {
1001
1287
  }
1288
+ interface getdeposit {
1289
+ owner: NameType;
1290
+ asset_id: UInt64Type;
1291
+ }
1292
+ interface geteligible {
1293
+ coords: Type.coordinates;
1294
+ stratum: UInt16Type;
1295
+ }
1296
+ interface getentcls {
1297
+ }
1002
1298
  interface getentities {
1003
1299
  owner: NameType;
1004
1300
  entity_type?: NameType;
1005
1301
  }
1006
1302
  interface getentity {
1007
- entity_type: NameType;
1008
1303
  entity_id: UInt64Type;
1009
1304
  }
1010
1305
  interface getitemdata {
@@ -1013,8 +1308,13 @@ declare namespace ActionParams {
1013
1308
  }
1014
1309
  interface getitems {
1015
1310
  }
1311
+ interface getitemtype {
1312
+ item_id: UInt16Type;
1313
+ }
1016
1314
  interface getitemtypes {
1017
1315
  }
1316
+ interface getkindmeta {
1317
+ }
1018
1318
  interface getlocation {
1019
1319
  x: Int64Type;
1020
1320
  y: Int64Type;
@@ -1028,15 +1328,20 @@ declare namespace ActionParams {
1028
1328
  interface getmodules {
1029
1329
  }
1030
1330
  interface getnearby {
1031
- entity_type: NameType;
1032
1331
  entity_id: UInt64Type;
1033
1332
  recharge: boolean;
1034
1333
  }
1334
+ interface getnftbase {
1335
+ }
1035
1336
  interface getnftinfo {
1036
1337
  }
1037
1338
  interface getplayer {
1038
1339
  account: NameType;
1039
1340
  }
1341
+ interface getprojstate {
1342
+ entity_id: UInt64Type;
1343
+ task_count?: UInt8Type;
1344
+ }
1040
1345
  interface getrecipe {
1041
1346
  output_item_id: UInt16Type;
1042
1347
  }
@@ -1075,123 +1380,164 @@ declare namespace ActionParams {
1075
1380
  interface hash512 {
1076
1381
  value: string;
1077
1382
  }
1078
- interface init {
1079
- seed: Checksum256Type;
1383
+ interface importcargo {
1384
+ row: Type.cargo_row;
1385
+ }
1386
+ interface importentity {
1387
+ row: Type.entity_row;
1388
+ }
1389
+ interface importgroup {
1390
+ row: Type.entitygroup_row;
1391
+ }
1392
+ interface importplayer {
1393
+ owner: NameType;
1394
+ }
1395
+ interface importreserve {
1396
+ epoch_scope: UInt32Type;
1397
+ row: Type.reserve_row;
1398
+ }
1399
+ interface importstate {
1400
+ row: Type.state_row;
1080
1401
  }
1081
1402
  interface join {
1082
1403
  account: NameType;
1083
1404
  }
1405
+ interface nftimgurl {
1406
+ item: Type.cargo_item;
1407
+ location?: Type.coordinates;
1408
+ }
1084
1409
  interface notify {
1085
1410
  event: Type.task_event;
1086
1411
  }
1412
+ interface placecargo {
1413
+ owner: NameType;
1414
+ host_id: UInt64Type;
1415
+ asset_id: UInt64Type;
1416
+ }
1417
+ interface placeentity {
1418
+ owner: NameType;
1419
+ asset_id: UInt64Type;
1420
+ target_nexus_id: UInt64Type;
1421
+ }
1087
1422
  interface recharge {
1088
- entity_type: NameType;
1089
1423
  id: UInt64Type;
1090
1424
  }
1425
+ interface refrshentity {
1426
+ entity_id: UInt64Type;
1427
+ }
1428
+ interface removeoracle {
1429
+ oracle_id: NameType;
1430
+ }
1091
1431
  interface resolve {
1092
- entity_type: NameType;
1093
1432
  id: UInt64Type;
1094
1433
  count?: UInt64Type;
1095
1434
  }
1435
+ interface reveal {
1436
+ oracle_id: NameType;
1437
+ epoch: UInt64Type;
1438
+ reveal: Checksum256Type;
1439
+ }
1096
1440
  interface rmmodule {
1097
- entity_type: NameType;
1098
1441
  entity_id: UInt64Type;
1099
1442
  module_index: UInt8Type;
1100
- target_cargo_id: UInt64Type;
1443
+ target_ref?: Type.cargo_ref;
1101
1444
  }
1102
1445
  interface rmnftcfg {
1103
1446
  item_id: UInt16Type;
1104
1447
  }
1105
- interface salt {
1106
- salt: UInt64Type;
1107
- }
1108
1448
  interface setnftcfg {
1109
1449
  item_id: UInt16Type;
1110
1450
  template_id: Int32Type;
1111
1451
  schema_name: NameType;
1112
1452
  }
1113
- interface spawncargo {
1114
- entity_id: UInt64Type;
1115
- item_id: UInt64Type;
1116
- quantity: UInt64Type;
1453
+ interface setthreshold {
1454
+ threshold: UInt8Type;
1117
1455
  }
1118
- interface spawnpacked {
1119
- entity_id: UInt64Type;
1120
- item_id: UInt16Type;
1121
- hull_stats: UInt64Type;
1122
- installed: Type.packed_module[];
1456
+ interface setwrapcost {
1457
+ item_type: UInt8Type;
1458
+ tier: UInt8Type;
1459
+ amount: UInt64Type;
1460
+ }
1461
+ interface setwrapfee {
1462
+ fee_pct: UInt16Type;
1463
+ fee_account: NameType;
1123
1464
  }
1124
- interface spawnseeded {
1465
+ interface stowcargo {
1466
+ owner: NameType;
1125
1467
  entity_id: UInt64Type;
1126
- item_id: UInt64Type;
1468
+ nexus_id: UInt64Type;
1469
+ cargo_id: UInt64Type;
1127
1470
  quantity: UInt64Type;
1128
- stats: UInt64Type;
1471
+ }
1472
+ interface stowentity {
1473
+ owner: NameType;
1474
+ entity_id: UInt64Type;
1475
+ nexus_id: UInt64Type;
1129
1476
  }
1130
1477
  interface transfer {
1131
- source_type: NameType;
1132
1478
  source_id: UInt64Type;
1133
- dest_type: NameType;
1134
1479
  dest_id: UInt64Type;
1135
- item_id: UInt16Type;
1136
- stats: UInt64Type;
1137
- quantity: UInt32Type;
1480
+ items: Type.cargo_item[];
1138
1481
  }
1139
1482
  interface travel {
1140
- entity_type: NameType;
1141
1483
  id: UInt64Type;
1142
1484
  x: Int64Type;
1143
1485
  y: Int64Type;
1144
1486
  recharge: boolean;
1145
1487
  }
1488
+ interface undeploy {
1489
+ host_id: UInt64Type;
1490
+ target_id: UInt64Type;
1491
+ }
1146
1492
  interface warp {
1147
- entity_type: NameType;
1148
1493
  id: UInt64Type;
1149
1494
  x: Int64Type;
1150
1495
  y: Int64Type;
1151
1496
  }
1152
1497
  interface wipe {
1153
1498
  }
1154
- interface wipesequence {
1155
- }
1156
- interface wrap {
1157
- owner: NameType;
1158
- entity_type: NameType;
1159
- entity_id: UInt64Type;
1160
- cargo_id: UInt64Type;
1161
- quantity: UInt64Type;
1162
- }
1163
1499
  }
1164
1500
  interface ActionNameParams {
1165
1501
  addmodule: ActionParams.addmodule;
1166
1502
  addnexus: ActionParams.addnexus;
1167
- advance: ActionParams.advance;
1503
+ addoracle: ActionParams.addoracle;
1168
1504
  blend: ActionParams.blend;
1505
+ buildplot: ActionParams.buildplot;
1169
1506
  cancel: ActionParams.cancel;
1170
- claimstarter: ActionParams.claimstarter;
1507
+ claimplot: ActionParams.claimplot;
1171
1508
  cleanrsvp: ActionParams.cleanrsvp;
1172
1509
  cleartable: ActionParams.cleartable;
1173
1510
  commit: ActionParams.commit;
1174
1511
  configlog: ActionParams.configlog;
1175
1512
  craft: ActionParams.craft;
1176
- createentity: ActionParams.createentity;
1513
+ demolish: ActionParams.demolish;
1177
1514
  deploy: ActionParams.deploy;
1178
1515
  descentity: ActionParams.descentity;
1179
1516
  enable: ActionParams.enable;
1517
+ fixcargomass: ActionParams.fixcargomass;
1518
+ forcereveal: ActionParams.forcereveal;
1180
1519
  gather: ActionParams.gather;
1181
1520
  getconfig: ActionParams.getconfig;
1521
+ getdeposit: ActionParams.getdeposit;
1522
+ geteligible: ActionParams.geteligible;
1523
+ getentcls: ActionParams.getentcls;
1182
1524
  getentities: ActionParams.getentities;
1183
1525
  getentity: ActionParams.getentity;
1184
1526
  getitemdata: ActionParams.getitemdata;
1185
1527
  getitemids: ActionParams.getitemids;
1186
1528
  getitems: ActionParams.getitems;
1529
+ getitemtype: ActionParams.getitemtype;
1187
1530
  getitemtypes: ActionParams.getitemtypes;
1531
+ getkindmeta: ActionParams.getkindmeta;
1188
1532
  getlocation: ActionParams.getlocation;
1189
1533
  getlocdata: ActionParams.getlocdata;
1190
1534
  getmodtypes: ActionParams.getmodtypes;
1191
1535
  getmodules: ActionParams.getmodules;
1192
1536
  getnearby: ActionParams.getnearby;
1537
+ getnftbase: ActionParams.getnftbase;
1193
1538
  getnftinfo: ActionParams.getnftinfo;
1194
1539
  getplayer: ActionParams.getplayer;
1540
+ getprojstate: ActionParams.getprojstate;
1195
1541
  getrecipe: ActionParams.getrecipe;
1196
1542
  getrecipes: ActionParams.getrecipes;
1197
1543
  getrescats: ActionParams.getrescats;
@@ -1203,46 +1549,67 @@ interface ActionNameParams {
1203
1549
  grouptravel: ActionParams.grouptravel;
1204
1550
  hash: ActionParams.hash;
1205
1551
  hash512: ActionParams.hash512;
1206
- init: ActionParams.init;
1552
+ importcargo: ActionParams.importcargo;
1553
+ importentity: ActionParams.importentity;
1554
+ importgroup: ActionParams.importgroup;
1555
+ importplayer: ActionParams.importplayer;
1556
+ importreserve: ActionParams.importreserve;
1557
+ importstate: ActionParams.importstate;
1207
1558
  join: ActionParams.join;
1559
+ nftimgurl: ActionParams.nftimgurl;
1208
1560
  notify: ActionParams.notify;
1561
+ placecargo: ActionParams.placecargo;
1562
+ placeentity: ActionParams.placeentity;
1209
1563
  recharge: ActionParams.recharge;
1564
+ refrshentity: ActionParams.refrshentity;
1565
+ removeoracle: ActionParams.removeoracle;
1210
1566
  resolve: ActionParams.resolve;
1567
+ reveal: ActionParams.reveal;
1211
1568
  rmmodule: ActionParams.rmmodule;
1212
1569
  rmnftcfg: ActionParams.rmnftcfg;
1213
- salt: ActionParams.salt;
1214
1570
  setnftcfg: ActionParams.setnftcfg;
1215
- spawncargo: ActionParams.spawncargo;
1216
- spawnpacked: ActionParams.spawnpacked;
1217
- spawnseeded: ActionParams.spawnseeded;
1571
+ setthreshold: ActionParams.setthreshold;
1572
+ setwrapcost: ActionParams.setwrapcost;
1573
+ setwrapfee: ActionParams.setwrapfee;
1574
+ stowcargo: ActionParams.stowcargo;
1575
+ stowentity: ActionParams.stowentity;
1218
1576
  transfer: ActionParams.transfer;
1219
1577
  travel: ActionParams.travel;
1578
+ undeploy: ActionParams.undeploy;
1220
1579
  warp: ActionParams.warp;
1221
1580
  wipe: ActionParams.wipe;
1222
- wipesequence: ActionParams.wipesequence;
1223
- wrap: ActionParams.wrap;
1224
1581
  }
1225
1582
  type ActionNames = keyof ActionNameParams;
1226
1583
  interface ActionReturnValues {
1584
+ buildplot: Types.task_results;
1227
1585
  cancel: Types.cancel_results;
1586
+ claimplot: Types.task_results;
1228
1587
  craft: Types.task_results;
1588
+ demolish: Types.task_results;
1229
1589
  deploy: Types.task_results;
1230
1590
  descentity: string;
1231
1591
  gather: Types.task_results;
1232
1592
  getconfig: Types.game_config;
1593
+ getdeposit: ExtendedAsset;
1594
+ geteligible: UInt16[];
1595
+ getentcls: Types.enum_result;
1233
1596
  getentities: Types.entity_info[];
1234
1597
  getentity: Types.entity_info;
1235
1598
  getitemdata: Types.itemdata_result;
1236
1599
  getitemids: Types.item_ids_result;
1237
1600
  getitems: Types.items_info;
1601
+ getitemtype: UInt8;
1238
1602
  getitemtypes: Types.enum_result;
1603
+ getkindmeta: Types.kind_meta_result;
1239
1604
  getlocation: Types.location_info;
1240
1605
  getlocdata: Types.location_derived;
1241
1606
  getmodtypes: Types.enum_result;
1242
1607
  getmodules: Types.modules_result;
1243
1608
  getnearby: Types.nearby_info;
1609
+ getnftbase: string[];
1244
1610
  getnftinfo: Types.nftinfo_result;
1245
1611
  getplayer: Types.player_info;
1612
+ getprojstate: Types.projected_state;
1246
1613
  getrecipe: Types.recipes_result;
1247
1614
  getrecipes: Types.recipes_result;
1248
1615
  getrescats: Types.enum_result;
@@ -1254,12 +1621,17 @@ interface ActionReturnValues {
1254
1621
  grouptravel: Types.task_results;
1255
1622
  hash: Checksum256;
1256
1623
  hash512: Checksum512;
1624
+ nftimgurl: string;
1625
+ placecargo: Types.task_results;
1626
+ placeentity: Types.task_results;
1257
1627
  recharge: Types.task_results;
1258
1628
  resolve: Types.resolve_results;
1629
+ stowcargo: Types.task_results;
1630
+ stowentity: Types.task_results;
1259
1631
  transfer: Types.task_results;
1260
1632
  travel: Types.task_results;
1633
+ undeploy: Types.task_results;
1261
1634
  warp: Types.task_results;
1262
- wrap: Types.task_results;
1263
1635
  }
1264
1636
  type ActionReturnNames = keyof ActionReturnValues;
1265
1637
  declare class Contract extends Contract$2 {
@@ -1319,16 +1691,15 @@ declare const REQUIRES_POSITIVE_VALUE = "Value must be greater than zero.";
1319
1691
  declare const PLAYER_ALREADY_JOINED = "Player has already joined the game.";
1320
1692
  declare const PLAYER_NOT_JOINED = "Player has not joined the game.";
1321
1693
  declare const PLAYER_NOT_FOUND = "Cannot find player for given account name.";
1322
- declare const STARTER_ALREADY_CLAIMED = "Starter ship already claimed; destroy existing ships to re-claim.";
1323
- declare const SHIP_ALREADY_THERE = "Ship cannot travel to the location its already at.";
1694
+ declare const ENTITY_ALREADY_THERE = "Entity cannot travel to the location it is already at.";
1324
1695
  declare const SHIP_ALREADY_TRAVELING = "Ship is already traveling.";
1325
1696
  declare const SHIP_CANNOT_BUY_TRAVELING = "Ship cannot buy goods while traveling.";
1326
1697
  declare const SHIP_CANNOT_UPDATE_TRAVELING = "Ship cannot be updated while traveling.";
1327
- declare const SHIP_INVALID_DESTINATION = "Ship cannot travel, no system at specified destination.";
1328
- declare const SHIP_INVALID_TRAVEL_DURATION = "This trip cannot be made as it would exceed the maximum travel duration.";
1698
+ declare const ENTITY_INVALID_DESTINATION = "Cannot travel: no system at specified destination.";
1699
+ declare const ENTITY_INVALID_TRAVEL_DURATION = "This trip cannot be made as it would exceed the maximum travel duration.";
1329
1700
  declare const SHIP_NOT_ARRIVED = "Ship has not yet arrived at its destination.";
1330
- declare const SHIP_NOT_ENOUGH_ENERGY = "Ship does not have enough energy to travel to the destination.";
1331
- declare const SHIP_NOT_ENOUGH_ENERGY_CAPACITY = "Ship does not have enough energy capacity to travel.";
1701
+ declare const ENTITY_NOT_ENOUGH_ENERGY = "Entity does not have enough energy to travel to the destination.";
1702
+ declare const ENTITY_NOT_ENOUGH_ENERGY_CAPACITY = "Entity does not have enough energy capacity to travel.";
1332
1703
  declare const SHIP_NOT_FOUND = "Cannot find ship for given account.";
1333
1704
  declare const SHIP_NOT_OWNED = "Ship is not owned by this account.";
1334
1705
  declare const NO_SCHEDULE = "No scheduled tasks.";
@@ -1337,16 +1708,13 @@ declare const SHIP_NO_COMPLETED_TASKS = "No completed tasks to resolve.";
1337
1708
  declare const RESOLVE_COUNT_EXCEEDS_COMPLETED = "Requested resolve count exceeds completed tasks.";
1338
1709
  declare const SHIP_CANNOT_CANCEL_TASK = "Cannot cancel task that is immutable or in progress.";
1339
1710
  declare const SHIP_NO_TASKS_TO_CANCEL = "No tasks to cancel.";
1340
- declare const SHIP_INVALID_CARGO = "Invalid cargo specified for load/unload.";
1341
- declare const SHIP_CARGO_NOT_OWNED = "Cannot load cargo that is not owned.";
1342
- declare const SHIP_CARGO_NOT_LOADED = "Cannot unload cargo that is not loaded.";
1343
- declare const SHIP_CAPACITY_EXCEEDED = "Ship cargo capacity would be exceeded.";
1711
+ declare const ENTITY_INVALID_CARGO = "Invalid cargo specified for load/unload.";
1712
+ declare const ENTITY_CARGO_NOT_OWNED = "Cannot load cargo that is not owned.";
1713
+ declare const ENTITY_CARGO_NOT_LOADED = "Cannot unload cargo that is not loaded.";
1344
1714
  declare const ENTITY_CAPACITY_EXCEEDED = "Entity cargo capacity would be exceeded.";
1345
1715
  declare const WAREHOUSE_NOT_FOUND = "Cannot find warehouse for given id.";
1346
1716
  declare const WAREHOUSE_ALREADY_AT_LOCATION = "Warehouse already exists at this location.";
1347
- declare const WAREHOUSE_CAPACITY_EXCEEDED = "Warehouse capacity would be exceeded.";
1348
1717
  declare const CONTAINER_NOT_FOUND = "Cannot find container for given id.";
1349
- declare const CONTAINER_CAPACITY_EXCEEDED = "Container capacity would be exceeded.";
1350
1718
  declare const DESTINATION_CAPACITY_EXCEEDED = "Destination entity does not have enough capacity for the gather.";
1351
1719
  declare const CANCEL_PAIRED_HAS_PENDING = "Cannot cancel transfer, paired entity has pending tasks.";
1352
1720
  declare const GROUP_EMPTY = "Group travel requires at least one entity.";
@@ -1393,12 +1761,13 @@ declare const INSUFFICIENT_ITEM_SUPPLY = "Insufficient supply of item at locatio
1393
1761
 
1394
1762
  declare const PRECISION = 10000;
1395
1763
  declare const CRAFT_ENERGY_DIVISOR = 150000;
1396
- declare const WAREHOUSE_Z = 500;
1764
+ declare const PLANETARY_STRUCTURE_Z = 0;
1397
1765
  declare const CONTAINER_Z = 300;
1398
1766
  declare const TRAVEL_MAX_DURATION = 86400;
1399
1767
  declare const MIN_ORBITAL_ALTITUDE = 800;
1400
1768
  declare const MAX_ORBITAL_ALTITUDE = 3000;
1401
1769
  declare const BASE_ORBITAL_MASS = 100000;
1770
+ declare const MIN_TRANSFER_DISTANCE = 100;
1402
1771
  interface ShipLike {
1403
1772
  coordinates: Types.coordinates;
1404
1773
  hullmass?: UInt32;
@@ -1423,26 +1792,24 @@ declare enum TaskType {
1423
1792
  WARP = 6,
1424
1793
  CRAFT = 7,
1425
1794
  DEPLOY = 8,
1426
- WRAP = 9,
1427
- UNWRAP = 10
1795
+ UNWRAP = 10,
1796
+ UNDEPLOY = 11,
1797
+ DEMOLISH = 13,
1798
+ CLAIMPLOT = 14,
1799
+ BUILDPLOT = 15
1428
1800
  }
1429
1801
  declare enum LocationType {
1430
1802
  EMPTY = 0,
1431
1803
  PLANET = 1,
1432
1804
  ASTEROID = 2,
1433
- NEBULA = 3
1805
+ NEBULA = 3,
1806
+ ICE_FIELD = 4
1434
1807
  }
1435
1808
  declare enum TaskCancelable {
1436
1809
  NEVER = 0,
1437
1810
  BEFORE_START = 1,
1438
1811
  ALWAYS = 2
1439
1812
  }
1440
- declare const EntityType$1: {
1441
- readonly SHIP: Name;
1442
- readonly WAREHOUSE: Name;
1443
- readonly CONTAINER: Name;
1444
- };
1445
- type EntityTypeName = (typeof EntityType$1)[keyof typeof EntityType$1];
1446
1813
  type CoordinatesType = Coordinates | Types.coordinates | {
1447
1814
  x: Int64Type;
1448
1815
  y: Int64Type;
@@ -1460,8 +1827,10 @@ interface Distance {
1460
1827
  }
1461
1828
  type ItemType = 'resource' | 'component' | 'module' | 'entity';
1462
1829
  type ResourceCategory = 'ore' | 'crystal' | 'gas' | 'regolith' | 'biomass';
1463
- type ModuleType = 'any' | 'engine' | 'generator' | 'gatherer' | 'loader' | 'warp' | 'crafter' | 'launcher' | 'storage' | 'hauler';
1464
- declare const TIER_ADJECTIVES: Record<number, string>;
1830
+ type ModuleType = 'any' | 'engine' | 'generator' | 'gatherer' | 'loader' | 'warp' | 'crafter' | 'launcher' | 'storage' | 'hauler' | 'battery';
1831
+ declare const RESOURCE_TIER_ADJECTIVES: Record<number, string>;
1832
+ declare const COMPONENT_TIER_PREFIXES: Record<number, string>;
1833
+ declare const MODULE_TIER_PREFIXES: Record<number, string>;
1465
1834
  declare const CATEGORY_LABELS: Record<ResourceCategory, string>;
1466
1835
  interface Item {
1467
1836
  id: number;
@@ -1475,6 +1844,7 @@ interface Item {
1475
1844
  moduleType?: ModuleType;
1476
1845
  }
1477
1846
  declare function formatTier(tier: number): string;
1847
+ declare function tierAdjective(tier: number): string;
1478
1848
 
1479
1849
  declare const ITEM_ORE_T1 = 101;
1480
1850
  declare const ITEM_ORE_T2 = 102;
@@ -1526,16 +1896,16 @@ declare const ITEM_BIOMASS_T7 = 507;
1526
1896
  declare const ITEM_BIOMASS_T8 = 508;
1527
1897
  declare const ITEM_BIOMASS_T9 = 509;
1528
1898
  declare const ITEM_BIOMASS_T10 = 510;
1529
- declare const ITEM_HULL_PLATES = 10001;
1530
- declare const ITEM_CARGO_LINING = 10002;
1531
- declare const ITEM_THRUSTER_CORE = 10003;
1532
- declare const ITEM_POWER_CELL = 10004;
1533
- declare const ITEM_MATTER_CONDUIT = 10005;
1534
- declare const ITEM_SURVEY_PROBE = 10006;
1535
- declare const ITEM_CARGO_ARM = 10007;
1536
- declare const ITEM_TOOL_BIT = 10008;
1537
- declare const ITEM_REACTION_CHAMBER = 10009;
1538
- declare const ITEM_FOCUSING_ARRAY = 10010;
1899
+ declare const ITEM_PLATE = 10001;
1900
+ declare const ITEM_FRAME = 10002;
1901
+ declare const ITEM_PLASMA_CELL = 10003;
1902
+ declare const ITEM_RESONATOR = 10004;
1903
+ declare const ITEM_BEAM = 10005;
1904
+ declare const ITEM_SENSOR = 10006;
1905
+ declare const ITEM_POLYMER = 10007;
1906
+ declare const ITEM_CERAMIC = 10008;
1907
+ declare const ITEM_REACTOR = 10009;
1908
+ declare const ITEM_EMITTER = 10010;
1539
1909
  declare const ITEM_ENGINE_T1 = 10100;
1540
1910
  declare const ITEM_GENERATOR_T1 = 10101;
1541
1911
  declare const ITEM_GATHERER_T1 = 10102;
@@ -1543,23 +1913,21 @@ declare const ITEM_LOADER_T1 = 10103;
1543
1913
  declare const ITEM_CRAFTER_T1 = 10104;
1544
1914
  declare const ITEM_STORAGE_T1 = 10105;
1545
1915
  declare const ITEM_HAULER_T1 = 10106;
1916
+ declare const ITEM_WARP_T1 = 10107;
1917
+ declare const ITEM_BATTERY_T1 = 10108;
1546
1918
  declare const ITEM_CONTAINER_T1_PACKED = 10200;
1547
1919
  declare const ITEM_SHIP_T1_PACKED = 10201;
1548
1920
  declare const ITEM_WAREHOUSE_T1_PACKED = 10202;
1549
- declare const ITEM_HULL_PLATES_T2 = 20001;
1550
- declare const ITEM_CARGO_LINING_T2 = 20002;
1921
+ declare const ITEM_EXTRACTOR_T1_PACKED = 10203;
1922
+ declare const ITEM_FACTORY_T1_PACKED = 10204;
1923
+ declare const ITEM_PLATE_T2 = 20001;
1924
+ declare const ITEM_FRAME_T2 = 20002;
1551
1925
  declare const ITEM_CONTAINER_T2_PACKED = 20200;
1552
1926
 
1553
- interface RecipeInputItemId {
1927
+ interface RecipeInput {
1554
1928
  itemId: number;
1555
1929
  quantity: number;
1556
1930
  }
1557
- interface RecipeInputCategory {
1558
- category: ResourceCategory;
1559
- tier: number;
1560
- quantity: number;
1561
- }
1562
- type RecipeInput = RecipeInputItemId | RecipeInputCategory;
1563
1931
  interface StatSlot {
1564
1932
  sources: {
1565
1933
  inputIndex: number;
@@ -1575,6 +1943,7 @@ interface Recipe {
1575
1943
  }
1576
1944
  interface EntitySlot {
1577
1945
  type: ModuleType;
1946
+ outputPct: number;
1578
1947
  }
1579
1948
  interface EntityLayout {
1580
1949
  entityItemId: number;
@@ -1582,480 +1951,187 @@ interface EntityLayout {
1582
1951
  }
1583
1952
  declare function getRecipe(outputItemId: number): Recipe | undefined;
1584
1953
  declare function getEntityLayout(entityItemId: number): EntityLayout | undefined;
1585
- declare function findItemByCategoryAndTier(category: ResourceCategory, tier: number): Item;
1586
1954
 
1587
- interface EpochInfo {
1588
- epoch: UInt64;
1589
- start: Date;
1590
- end: Date;
1955
+ declare const CAP_WRAP = 1;
1956
+ declare const CAP_UNDEPLOY = 2;
1957
+ declare const CAP_DEMOLISH = 4;
1958
+ declare const CAP_MODULES = 16;
1959
+ declare enum EntityClass {
1960
+ OrbitalVessel = 0,
1961
+ PlanetaryStructure = 1,
1962
+ Plot = 2
1963
+ }
1964
+ type EntityTypeName = 'ship' | 'warehouse' | 'extractor' | 'factory' | 'container' | 'nexus' | 'plot';
1965
+ interface KindMeta {
1966
+ kind: Name;
1967
+ classification: EntityClass;
1968
+ capabilityFlags: number;
1969
+ zCoord: number;
1970
+ defaultLabel: string;
1971
+ }
1972
+ interface TemplateMeta {
1973
+ itemId: number;
1974
+ kind: Name;
1975
+ displayLabel: string;
1976
+ }
1977
+ declare const ALL_ENTITY_TYPES: readonly EntityTypeName[];
1978
+ declare function getKindMeta(kind: NameType | EntityTypeName): KindMeta | undefined;
1979
+ declare function getTemplateMeta(itemId: number): TemplateMeta | undefined;
1980
+ declare function getPackedEntityType(itemId: number): Name | null;
1981
+ declare function kindCan(kind: NameType | EntityTypeName, cap: number): boolean;
1982
+ declare function getEntityClass(kind: NameType | EntityTypeName): EntityClass;
1983
+ declare const ENTITY_SHIP: Name;
1984
+ declare const ENTITY_WAREHOUSE: Name;
1985
+ declare const ENTITY_EXTRACTOR: Name;
1986
+ declare const ENTITY_FACTORY: Name;
1987
+ declare const ENTITY_CONTAINER: Name;
1988
+ declare const ENTITY_NEXUS: Name;
1989
+ declare function isShip(entity: {
1990
+ type?: Name;
1991
+ }): boolean;
1992
+ declare function isWarehouse(entity: {
1993
+ type?: Name;
1994
+ }): boolean;
1995
+ declare function isExtractor(entity: {
1996
+ type?: Name;
1997
+ }): boolean;
1998
+ declare function isFactory(entity: {
1999
+ type?: Name;
2000
+ }): boolean;
2001
+ declare function isContainer(entity: {
2002
+ type?: Name;
2003
+ }): boolean;
2004
+ declare function isNexus(entity: {
2005
+ type?: Name;
2006
+ }): boolean;
2007
+ declare function isPlot(entity: {
2008
+ type?: Name;
2009
+ }): boolean;
2010
+
2011
+ declare class EntityInventory extends Types.cargo_item {
2012
+ private _item?;
2013
+ get item(): Item;
2014
+ get good(): Item;
2015
+ get name(): string;
2016
+ get unitMass(): UInt32;
2017
+ get totalMass(): UInt64;
2018
+ get hasCargo(): boolean;
2019
+ get isEmpty(): boolean;
1591
2020
  }
1592
- declare function getCurrentEpoch(game: Types$1.game_row): UInt64;
1593
- declare function getEpochInfo(game: Types$1.game_row, epoch: UInt64): EpochInfo;
1594
2021
 
1595
- /**
1596
- * GameState class extends the state_row from the server contract
1597
- * with helper methods for epoch management and system generation
1598
- */
1599
- declare class GameState extends Types.state_row {
1600
- private _game?;
1601
- /**
1602
- * Create a GameState instance from a state_row
1603
- */
1604
- static from(state: Types.state_row, game?: Types$1.game_row): GameState;
1605
- /**
1606
- * Set the game configuration (needed for epoch calculations)
1607
- */
1608
- setGame(game: Types$1.game_row): void;
1609
- /**
1610
- * Get the current epoch number from the state
1611
- */
1612
- get currentEpoch(): UInt64;
1613
- /**
1614
- * Get the epoch seed (used for market pricing and system generation)
1615
- */
1616
- get epochSeed(): Checksum256;
1617
- /**
1618
- * Get the game seed (from game config, if available)
1619
- */
1620
- get gameSeed(): Checksum256 | undefined;
1621
- /**
1622
- * Check if the game is currently enabled
1623
- */
1624
- get isEnabled(): boolean;
1625
- /**
1626
- * Get the total number of ships in the game
1627
- */
1628
- get shipCount(): number;
1629
- /**
1630
- * Get the current salt value (used for random number generation)
1631
- */
1632
- get currentSalt(): UInt64;
1633
- /**
1634
- * Get the commit hash for the next epoch
1635
- */
1636
- get nextEpochCommit(): Checksum256;
1637
- /**
1638
- * Calculate the current epoch from game config (if game is set)
1639
- * This might differ from state.epoch if the blockchain hasn't advanced yet
1640
- */
1641
- get calculatedCurrentEpoch(): UInt64 | undefined;
1642
- /**
1643
- * Get epoch info (start/end times) for the current epoch
1644
- */
1645
- get currentEpochInfo(): EpochInfo | undefined;
1646
- /**
1647
- * Get epoch info for a specific epoch number
1648
- */
1649
- getEpochInfo(epoch: UInt64): EpochInfo | undefined;
1650
- /**
1651
- * Check if a system exists at given coordinates
1652
- * Requires game seed from game config
1653
- */
1654
- hasSystemAt(x: number, y: number): boolean;
1655
- /**
1656
- * Check if a system exists at coordinates object
1657
- */
1658
- hasSystemAtCoords(coords: Types.coordinates): boolean;
1659
- /**
1660
- * Get a summary of the game state
1661
- */
1662
- get summary(): {
1663
- enabled: boolean;
1664
- epoch: string;
1665
- ships: number;
1666
- hasSeed: boolean;
1667
- hasCommit: boolean;
1668
- };
2022
+ interface MovementCapability {
2023
+ engines: Types.movement_stats;
2024
+ generator: Types.energy_stats;
1669
2025
  }
1670
-
1671
- interface PlayerStateInput {
1672
- owner: NameType;
2026
+ interface EnergyCapability {
2027
+ energy: UInt16;
1673
2028
  }
1674
- declare class Player extends Types.player_row {
1675
- static fromState(state: PlayerStateInput): Player;
2029
+ interface StorageCapability {
2030
+ capacity: UInt32;
2031
+ cargomass: UInt32;
2032
+ cargo: Types.cargo_item[];
1676
2033
  }
1677
-
1678
- declare class PlayersManager extends BaseManager {
1679
- getPlayer(account: NameType): Promise<Player | undefined>;
2034
+ interface LoaderCapability {
2035
+ loaders: Types.loader_stats;
1680
2036
  }
1681
-
1682
- interface StratumInfo {
1683
- itemId: number;
1684
- seed: bigint;
1685
- richness: number;
1686
- reserve: number;
2037
+ interface GathererCapability {
2038
+ gatherer: Types.gatherer_stats;
1687
2039
  }
1688
- interface ResourceStats {
1689
- stat1: number;
1690
- stat2: number;
1691
- stat3: number;
2040
+ interface MassCapability {
2041
+ hullmass: UInt32;
1692
2042
  }
1693
- declare function deriveStratum(epochSeed: Checksum256Type, coords: CoordinatesType, stratum: number, locationType: number, subtype: number, _maxDepth: number): StratumInfo;
1694
- /**
1695
- * Derives the three stat values for a raw resource from a deposit's
1696
- * entropy seed (hash-based, weibull-transformed).
1697
- *
1698
- * **Use only on deposit seeds** — the bigint returned by `deriveStratum`
1699
- * or carried on a `MassDeposit`. Do NOT call this on a cargo item's
1700
- * `stats` field; cargo stats are bit-packed and must be read via
1701
- * `decodeStat` (or `decodeStackStats` for category-mapped output).
1702
- *
1703
- * Passing a cargo `stats` value here produces meaningless output
1704
- * (hash of the packed bits, unrelated to the actual stats).
1705
- */
1706
- declare function deriveResourceStats(seed: bigint): ResourceStats;
1707
-
1708
- interface DerivedStratum {
1709
- index: number;
1710
- itemId: number;
1711
- seed: bigint;
1712
- richness: number;
1713
- reserve: number;
1714
- stats: ResourceStats;
2043
+ interface ScheduleCapability {
2044
+ schedule?: Types.schedule;
1715
2045
  }
1716
- declare function deriveStrata(coords: CoordinatesType, gameSeed: Checksum256Type, epochSeed: Checksum256Type): DerivedStratum[];
1717
-
1718
- declare function deriveLocationSize(loc: Types.location_static): number;
1719
-
1720
- declare const DEPTH_THRESHOLD_T1 = 0;
1721
- declare const DEPTH_THRESHOLD_T2 = 2000;
1722
- declare const DEPTH_THRESHOLD_T3 = 10000;
1723
- declare const DEPTH_THRESHOLD_T4 = 30000;
1724
- declare const DEPTH_THRESHOLD_T5 = 55000;
1725
- declare const LOCATION_MIN_DEPTH = 500;
1726
- declare const LOCATION_MAX_DEPTH = 65535;
1727
- declare const PLANET_SUBTYPE_GAS_GIANT = 0;
1728
- declare const PLANET_SUBTYPE_ROCKY = 1;
1729
- declare const PLANET_SUBTYPE_TERRESTRIAL = 2;
1730
- declare const PLANET_SUBTYPE_ICY = 3;
1731
- declare const PLANET_SUBTYPE_OCEAN = 4;
1732
- declare const PLANET_SUBTYPE_INDUSTRIAL = 5;
1733
- declare function getDepthThreshold(tier: number): number;
1734
- declare function getResourceTier(itemId: number): number;
1735
- declare function getResourceWeight(itemId: number, stratum: number): number;
1736
- declare function getLocationCandidates(locationType: number, subtype: number): number[];
1737
- declare function getEligibleResources(locationType: number, subtype: number, stratum: number): number[];
1738
-
1739
- type ReserveTier = 'small' | 'medium' | 'large' | 'massive' | 'motherlode';
1740
- interface TierRange {
1741
- min: number;
1742
- max: number;
2046
+ interface EntityCapabilities {
2047
+ hullmass?: UInt32;
2048
+ capacity?: UInt32;
2049
+ engines?: Types.movement_stats;
2050
+ generator?: Types.energy_stats;
2051
+ loaders?: Types.loader_stats;
2052
+ gatherer?: Types.gatherer_stats;
2053
+ crafter?: Types.crafter_stats;
2054
+ hauler?: Types.hauler_stats;
1743
2055
  }
1744
- declare const RESERVE_TIERS: Record<ReserveTier, TierRange>;
1745
- declare const TIER_ROLL_MAX = 65536;
1746
- declare function rollTier(tierRoll: number, stratum: number): ReserveTier;
1747
- declare function rollWithinTier(withinRoll: number, range: TierRange): number;
2056
+ interface EntityState {
2057
+ owner: Name;
2058
+ location: Types.coordinates;
2059
+ energy?: UInt16;
2060
+ cargomass: UInt32;
2061
+ cargo: Types.cargo_item[];
2062
+ }
2063
+ declare function capsHasMovement(caps: EntityCapabilities): boolean;
2064
+ declare function capsHasStorage(caps: EntityCapabilities): boolean;
2065
+ declare function capsHasLoaders(caps: EntityCapabilities): boolean;
2066
+ declare function capsHasGatherer(caps: EntityCapabilities): boolean;
2067
+ declare function capsHasMass(caps: EntityCapabilities): boolean;
2068
+ declare function capsHasHauler(caps: EntityCapabilities): boolean;
1748
2069
 
1749
- interface StatDefinition {
1750
- key: string;
1751
- label: string;
1752
- abbreviation: string;
1753
- purpose: string;
1754
- inverted?: boolean;
2070
+ interface HasCargo {
2071
+ cargo: Types.cargo_item[];
1755
2072
  }
1756
- declare function getStatDefinitions(category: ResourceCategory): StatDefinition[];
1757
- declare function getStatName(category: ResourceCategory, index: 0 | 1 | 2): StatDefinition;
1758
- interface NamedStats {
1759
- definitions: StatDefinition[];
1760
- values: [number, number, number];
2073
+ interface HasCapacity {
2074
+ capacity: UInt32;
1761
2075
  }
1762
- declare function resolveStats(category: ResourceCategory, stats: {
1763
- stat1: number;
1764
- stat2: number;
1765
- stat3: number;
1766
- }): NamedStats;
1767
-
1768
- interface StackInput {
1769
- quantity: number;
1770
- stats: Record<string, number>;
2076
+ interface HasCargomass {
2077
+ cargomass: UInt32;
1771
2078
  }
1772
- interface CategoryStacks {
1773
- category: ResourceCategory;
1774
- stacks: StackInput[];
2079
+ interface MassInput {
2080
+ item_id: UInt16;
2081
+ quantity: UInt32;
2082
+ modules: Types.module_entry[];
1775
2083
  }
1776
- declare function encodeStats(values: number[]): bigint;
1777
- declare function decodeStat(stats: bigint, index: number): number;
1778
- declare function decodeStats(stats: bigint, count: number): number[];
1779
- declare function decodeCraftedItemStats(itemId: number, stats: bigint): Record<string, number>;
1780
- declare function blendStacks(stacks: StackInput[], statKey: string): number;
1781
- declare function blendComponentStacks(stacks: {
1782
- quantity: number;
1783
- stats: Record<string, number>;
1784
- }[]): Record<string, number>;
1785
- declare function computeComponentStats(componentId: number, categoryStacks: CategoryStacks[]): {
1786
- key: string;
1787
- value: number;
1788
- }[];
1789
- declare function computeEntityStats(entityItemIdOrLegacyId: number | string, componentStacks: Record<number, {
1790
- quantity: number;
1791
- stats: Record<string, number>;
1792
- }[]>): {
1793
- key: string;
1794
- value: number;
1795
- }[];
1796
- declare function computeInputMass(itemId: number): number;
1797
- declare function blendCrossGroup(sources: {
1798
- value: number;
1799
- weight: number;
1800
- }[]): number;
1801
- declare function blendCargoStacks(itemId: number, stacks: {
1802
- quantity: number;
2084
+ declare function calcCargoItemMass(item: MassInput): UInt64;
2085
+ declare function calcCargoMass(entity: HasCargo): UInt64;
2086
+ declare function calcStacksMass(stacks: CargoStack[]): UInt64;
2087
+ declare function availableCapacity$1(entity: StorageCapability): UInt64;
2088
+ declare function availableCapacityFromMass(capacity: UInt64Type, cargoMass: UInt64Type): UInt64;
2089
+ declare function hasSpace$1(entity: StorageCapability, goodMass: UInt64, quantity: number): boolean;
2090
+ declare function hasSpaceForMass(capacity: UInt64Type, currentMass: UInt64Type, additionalMass: UInt64Type): boolean;
2091
+ declare function isFull$1(entity: HasCapacity & HasCargomass): boolean;
2092
+ declare function isFullFromMass(capacity: UInt64Type, cargoMass: UInt64Type): boolean;
2093
+ interface CargoStack {
2094
+ item_id: UInt16;
2095
+ quantity: UInt32;
1803
2096
  stats: UInt64;
1804
- }[]): UInt64;
1805
- interface RecipeSlotInput {
1806
- itemId: number;
1807
- category: ResourceCategory | undefined;
1808
- stacks: {
1809
- quantity: number;
1810
- stats: bigint;
1811
- }[];
2097
+ modules: Types.module_entry[];
1812
2098
  }
1813
- declare function computeCraftedOutputStats(outputItemId: number, slotInputs: RecipeSlotInput[]): UInt64;
1814
- /**
1815
- * Mirrors the contract's gather-time transform. Takes a deposit's entropy
1816
- * seed (bigint from deriveStratum), derives stats via weibull hashing, and
1817
- * returns a UInt64 whose bit-packed form matches what the contract writes
1818
- * to cargo_item.stats on gather.
1819
- *
1820
- * Use this whenever off-chain code simulates a gather (testmap, player
1821
- * scanners that project cargo outcomes) and needs a value that matches
1822
- * what on-chain cargo would carry.
1823
- */
1824
- declare function encodeGatheredCargoStats(depositSeed: bigint): UInt64;
2099
+ declare function cargoItemToStack(item: Types.cargo_item): CargoStack;
2100
+ declare function stackToCargoItem(stack: CargoStack): Types.cargo_item;
2101
+ declare function stackKey(s: CargoStack): string;
2102
+ declare function stacksEqual(a: CargoStack, b: CargoStack): boolean;
2103
+ declare function mergeStacks(stacks: CargoStack[], add: CargoStack): CargoStack[];
2104
+ declare function removeFromStacks(stacks: CargoStack[], remove: CargoStack): CargoStack[];
1825
2105
 
1826
- interface LocationStratum extends DerivedStratum {
1827
- reserveMax: number;
1828
- }
1829
- declare class LocationsManager extends BaseManager {
1830
- hasSystem(location: CoordinatesType): Promise<boolean>;
1831
- findNearbyPlanets(origin: CoordinatesType, maxDistance?: UInt16Type): Promise<Distance[]>;
1832
- getStrata(coords: CoordinatesType): Promise<LocationStratum[]>;
1833
- getLocationEntity(id: UInt64Type): Promise<Types.location_row | undefined>;
1834
- getLocationEntityAt(coords: CoordinatesType): Promise<Types.location_row | undefined>;
1835
- getAllLocationEntities(): Promise<Types.location_row[]>;
2106
+ declare class InventoryAccessor {
2107
+ private readonly entity;
2108
+ private _items?;
2109
+ constructor(entity: HasCargo);
2110
+ get items(): EntityInventory[];
2111
+ get totalMass(): UInt64;
2112
+ forItem(goodId: UInt64Type): EntityInventory | undefined;
2113
+ get sellable(): EntityInventory[];
2114
+ get hasSellable(): boolean;
2115
+ get sellableCount(): number;
1836
2116
  }
2117
+ declare function createInventoryAccessor(entity: HasCargo): InventoryAccessor;
1837
2118
 
1838
- declare class EpochsManager extends BaseManager {
1839
- getCurrentHeight(): Promise<UInt64>;
1840
- getCurrent(): Promise<EpochInfo>;
1841
- getByHeight(height: UInt64Type): Promise<EpochInfo>;
1842
- getTimeRemaining(): Promise<number>;
1843
- getProgress(): Promise<number>;
1844
- fitsInCurrentEpoch(durationMs: number): Promise<boolean>;
1845
- }
1846
-
1847
- type EntityRefInput = {
1848
- entityType: EntityTypeName;
1849
- entityId: UInt64Type;
1850
- };
1851
- declare class ActionsManager extends BaseManager {
1852
- travel(shipId: UInt64Type, destination: CoordinatesType, recharge?: boolean): Action;
1853
- grouptravel(entities: EntityRefInput[], destination: CoordinatesType, recharge?: boolean): Action;
1854
- resolve(entityId: UInt64Type, entityType?: EntityTypeName, count?: UInt64Type): Action;
1855
- cancel(entityId: UInt64Type, count: UInt64Type, entityType?: EntityTypeName): Action;
1856
- recharge(entityId: UInt64Type, entityType?: EntityTypeName): Action;
1857
- transfer(sourceType: EntityTypeName, sourceId: UInt64Type, destType: EntityTypeName, destId: UInt64Type, itemId: UInt64Type, stats: UInt64Type, quantity: UInt64Type): Action;
1858
- foundCompany(account: NameType, name: string): Action;
1859
- join(account: NameType): Action;
1860
- gather(source: EntityRefInput, destination: EntityRefInput, stratum: UInt16Type, quantity: UInt32Type): Action;
1861
- warp(entityId: UInt64Type, destination: CoordinatesType, entityType?: EntityTypeName): Action;
1862
- craft(entityType: EntityTypeName, entityId: UInt64Type, recipeId: number, quantity: number, inputs: ActionParams.Type.cargo_item[]): Action;
1863
- blend(entityType: EntityTypeName, entityId: UInt64Type, inputs: ActionParams.Type.cargo_item[]): Action;
1864
- deploy(entityType: EntityTypeName, entityId: UInt64Type, packedItemId: number, stats: bigint): Action;
1865
- addmodule(entityType: EntityTypeName, entityId: UInt64Type, moduleIndex: number, moduleCargoId: UInt64Type, targetCargoId?: UInt64Type): Action;
1866
- rmmodule(entityType: EntityTypeName, entityId: UInt64Type, moduleIndex: number, targetCargoId?: UInt64Type): Action;
1867
- wrap(owner: NameType, entityType: EntityTypeName, entityId: UInt64Type, cargoId: UInt64Type, quantity: UInt64Type): Action;
1868
- joinGame(account: NameType, companyName: string): Action[];
1869
- }
1870
-
1871
- type EntityInfo = Types.entity_info;
1872
- interface BoundingBox {
1873
- min_x: number;
1874
- min_y: number;
1875
- max_x: number;
1876
- max_y: number;
1877
- }
1878
- interface WireCoordinates {
1879
- x: number;
1880
- y: number;
1881
- z?: number;
1882
- }
1883
- type SubscribeMessage = {
1884
- type: 'subscribe';
1885
- sub_id: string;
1886
- bounds?: BoundingBox;
1887
- owner?: string;
1888
- prioritize_owner?: string;
1889
- };
1890
- type UpdateBoundsMessage = {
1891
- type: 'update_bounds';
1892
- sub_id: string;
1893
- bounds: BoundingBox;
1894
- };
1895
- type UnsubscribeMessage = {
1896
- type: 'unsubscribe';
1897
- sub_id: string;
1898
- };
1899
- type SubscribeEntityMessage = {
1900
- type: 'subscribe_entity';
1901
- sub_id: string;
1902
- entity_type: 'ship' | 'warehouse' | 'container';
1903
- entity_id: string;
1904
- };
1905
- type UnsubscribeEntityMessage = {
1906
- type: 'unsubscribe_entity';
1907
- sub_id: string;
1908
- };
1909
- type SubscribeEventsMessage = {
1910
- type: 'subscribe_events';
1911
- sub_id: string;
1912
- event_filter?: Record<string, unknown>;
1913
- };
1914
- type UnsubscribeEventsMessage = {
1915
- type: 'unsubscribe_events';
1916
- sub_id: string;
1917
- };
1918
- type PingMessage = {
1919
- type: 'ping';
1920
- };
1921
- type ClientMessage = SubscribeMessage | UpdateBoundsMessage | UnsubscribeMessage | SubscribeEntityMessage | UnsubscribeEntityMessage | SubscribeEventsMessage | UnsubscribeEventsMessage | PingMessage;
1922
- type AckMessage = {
1923
- type: 'subscribed' | 'unsubscribed' | 'bounds_updated';
1924
- sub_id: string;
1925
- };
1926
- type WireEntity = Record<string, unknown> & {
1927
- type: number;
1928
- type_name: 'ship' | 'warehouse' | 'container';
1929
- id: string | number;
1930
- owner: string;
1931
- coordinates: WireCoordinates;
1932
- };
1933
- type SnapshotMessage = {
1934
- type: 'snapshot';
1935
- sub_id: string;
1936
- seq: number;
1937
- entities: WireEntity[];
1938
- truncated?: boolean;
1939
- };
1940
- type UpdateMessage = {
1941
- type: 'update';
1942
- sub_ids: string[];
1943
- entity_id: number;
1944
- entity: WireEntity;
1945
- seq: number;
1946
- };
1947
- type BoundsDeltaMessage = {
1948
- type: 'bounds_delta';
1949
- sub_id: string;
1950
- entered: WireEntity[];
1951
- exited: number[];
1952
- seq: number;
1953
- truncated?: boolean;
1954
- };
1955
- type EventMessage = {
1956
- type: 'event';
1957
- sub_id: string;
1958
- catchup: boolean;
1959
- events: Array<Record<string, unknown>>;
1960
- seq?: number;
1961
- };
1962
- type EventCatchupCompleteMessage = {
1963
- type: 'event_catchup_complete';
1964
- sub_id: string;
1965
- };
1966
- type PongMessage = {
1967
- type: 'pong';
1968
- };
1969
- type ErrorMessage = {
1970
- type: 'error';
1971
- error: string;
1972
- sub_id?: string;
1973
- };
1974
- type ServerMessage = AckMessage | SnapshotMessage | UpdateMessage | BoundsDeltaMessage | EventMessage | EventCatchupCompleteMessage | PongMessage | ErrorMessage;
1975
-
1976
- interface MovementCapability {
1977
- engines: Types.movement_stats;
1978
- generator: Types.energy_stats;
1979
- }
1980
- interface EnergyCapability {
1981
- energy: UInt16;
1982
- }
1983
- interface StorageCapability {
1984
- capacity: UInt32;
1985
- cargomass: UInt32;
1986
- cargo: Types.cargo_item[];
1987
- }
1988
- interface LoaderCapability {
1989
- loaders: Types.loader_stats;
1990
- }
1991
- interface GathererCapability {
1992
- gatherer: Types.gatherer_stats;
1993
- }
1994
- interface MassCapability {
1995
- hullmass: UInt32;
1996
- }
1997
- interface ScheduleCapability {
1998
- schedule?: Types.schedule;
1999
- }
2000
- interface EntityCapabilities {
2001
- hullmass?: UInt32;
2002
- capacity?: UInt32;
2003
- engines?: Types.movement_stats;
2004
- generator?: Types.energy_stats;
2005
- loaders?: Types.loader_stats;
2006
- gatherer?: Types.gatherer_stats;
2007
- crafter?: Types.crafter_stats;
2008
- hauler?: Types.hauler_stats;
2009
- }
2010
- interface EntityState {
2011
- owner: Name;
2012
- location: Types.coordinates;
2013
- energy?: UInt16;
2014
- cargomass: UInt32;
2015
- cargo: Types.cargo_item[];
2016
- }
2017
- declare function capsHasMovement(caps: EntityCapabilities): boolean;
2018
- declare function capsHasStorage(caps: EntityCapabilities): boolean;
2019
- declare function capsHasLoaders(caps: EntityCapabilities): boolean;
2020
- declare function capsHasGatherer(caps: EntityCapabilities): boolean;
2021
- declare function capsHasMass(caps: EntityCapabilities): boolean;
2022
- declare function capsHasHauler(caps: EntityCapabilities): boolean;
2023
-
2024
- interface HasCargo {
2025
- cargo: Types.cargo_item[];
2026
- }
2027
- interface HasCapacity {
2028
- capacity: UInt32;
2029
- }
2030
- interface HasCargomass {
2031
- cargomass: UInt32;
2032
- }
2033
- interface MassInput {
2034
- item_id: UInt16;
2035
- quantity: UInt32;
2036
- modules: Types.module_entry[];
2037
- }
2038
- declare function calcCargoItemMass(item: MassInput): UInt64;
2039
- declare function calcCargoMass(entity: HasCargo): UInt64;
2040
- declare function calcStacksMass(stacks: CargoStack[]): UInt64;
2041
- declare function availableCapacity$1(entity: StorageCapability): UInt64;
2042
- declare function availableCapacityFromMass(capacity: UInt64Type, cargoMass: UInt64Type): UInt64;
2043
- declare function hasSpace$1(entity: StorageCapability, goodMass: UInt64, quantity: number): boolean;
2044
- declare function hasSpaceForMass(capacity: UInt64Type, currentMass: UInt64Type, additionalMass: UInt64Type): boolean;
2045
- declare function isFull$1(entity: HasCapacity & HasCargomass): boolean;
2046
- declare function isFullFromMass(capacity: UInt64Type, cargoMass: UInt64Type): boolean;
2047
- interface CargoStack {
2048
- item_id: UInt16;
2049
- quantity: UInt32;
2050
- stats: UInt64;
2051
- modules: Types.module_entry[];
2119
+ declare class Location {
2120
+ readonly coordinates: Coordinates;
2121
+ private _gameSeed?;
2122
+ private _hasSystem?;
2123
+ private _epoch?;
2124
+ constructor(coordinates: CoordinatesType);
2125
+ static from(coordinates: CoordinatesType): Location;
2126
+ hasSystemAt(gameSeed: Checksum256Type): boolean;
2127
+ getLocationTypeAt(gameSeed: Checksum256Type): LocationType;
2128
+ isGatherableAt(gameSeed: Checksum256Type): boolean;
2129
+ findNearby(gameSeed: Checksum256Type, maxDistance?: UInt16Type): Distance[];
2130
+ equals(other: CoordinatesType | Location): boolean;
2131
+ get epoch(): UInt64 | undefined;
2132
+ clearCache(): void;
2052
2133
  }
2053
- declare function cargoItemToStack(item: Types.cargo_item): CargoStack;
2054
- declare function stackToCargoItem(stack: CargoStack): Types.cargo_item;
2055
- declare function stackKey(s: CargoStack): string;
2056
- declare function stacksEqual(a: CargoStack, b: CargoStack): boolean;
2057
- declare function mergeStacks(stacks: CargoStack[], add: CargoStack): CargoStack[];
2058
- declare function removeFromStacks(stacks: CargoStack[], remove: CargoStack): CargoStack[];
2134
+ declare function toLocation(coords: CoordinatesType | Location): Location;
2059
2135
 
2060
2136
  type Schedule = Types.schedule;
2061
2137
  type Task$1 = Types.task;
@@ -2097,6 +2173,7 @@ declare function getTaskRemaining(entity: ScheduleData, index: number, now: Date
2097
2173
  declare function isTaskComplete(entity: ScheduleData, index: number, now: Date): boolean;
2098
2174
  declare function isTaskInProgress(entity: ScheduleData, index: number, now: Date): boolean;
2099
2175
  declare function currentTaskProgress(entity: ScheduleData, now: Date): number;
2176
+ declare function currentTaskProgressFloat(entity: ScheduleData, now: Date): number;
2100
2177
  declare function scheduleProgress(entity: ScheduleData, now: Date): number;
2101
2178
  declare function isTaskType(entity: ScheduleData, taskType: TaskType, now: Date): boolean;
2102
2179
  declare function isInFlight(entity: ScheduleData, now: Date): boolean;
@@ -2122,6 +2199,7 @@ declare const schedule_getTaskRemaining: typeof getTaskRemaining;
2122
2199
  declare const schedule_isTaskComplete: typeof isTaskComplete;
2123
2200
  declare const schedule_isTaskInProgress: typeof isTaskInProgress;
2124
2201
  declare const schedule_currentTaskProgress: typeof currentTaskProgress;
2202
+ declare const schedule_currentTaskProgressFloat: typeof currentTaskProgressFloat;
2125
2203
  declare const schedule_scheduleProgress: typeof scheduleProgress;
2126
2204
  declare const schedule_isTaskType: typeof isTaskType;
2127
2205
  declare const schedule_isInFlight: typeof isInFlight;
@@ -2149,6 +2227,7 @@ declare namespace schedule {
2149
2227
  schedule_isTaskComplete as isTaskComplete,
2150
2228
  schedule_isTaskInProgress as isTaskInProgress,
2151
2229
  schedule_currentTaskProgress as currentTaskProgress,
2230
+ schedule_currentTaskProgressFloat as currentTaskProgressFloat,
2152
2231
  schedule_scheduleProgress as scheduleProgress,
2153
2232
  schedule_isTaskType as isTaskType,
2154
2233
  schedule_isInFlight as isInFlight,
@@ -2159,68 +2238,6 @@ declare namespace schedule {
2159
2238
  };
2160
2239
  }
2161
2240
 
2162
- interface ProjectedEntity {
2163
- location: Coordinates;
2164
- energy: UInt16;
2165
- cargo: CargoStack[];
2166
- shipMass: UInt32;
2167
- capacity?: UInt64;
2168
- engines?: Types.movement_stats;
2169
- loaders?: Types.loader_stats;
2170
- generator?: Types.energy_stats;
2171
- hauler?: Types.hauler_stats;
2172
- readonly cargoMass: UInt64;
2173
- readonly totalMass: UInt64;
2174
- hasMovement(): boolean;
2175
- hasStorage(): boolean;
2176
- hasLoaders(): boolean;
2177
- capabilities(): EntityCapabilities;
2178
- state(): EntityState;
2179
- }
2180
- interface Projectable extends ScheduleData {
2181
- coordinates: Coordinates | Types.coordinates;
2182
- energy?: UInt16;
2183
- hullmass?: UInt32;
2184
- generator?: Types.energy_stats;
2185
- engines?: Types.movement_stats;
2186
- loaders?: Types.loader_stats;
2187
- hauler?: Types.hauler_stats;
2188
- capacity?: UInt32;
2189
- cargo: Types.cargo_item[];
2190
- cargomass: UInt32;
2191
- owner?: Name;
2192
- }
2193
- declare function createProjectedEntity(entity: Projectable): ProjectedEntity;
2194
- interface ProjectionOptions {
2195
- upToTaskIndex?: number;
2196
- }
2197
- declare function projectEntity(entity: Projectable, options?: ProjectionOptions): ProjectedEntity;
2198
- interface ProjectableSnapshot extends Projectable {
2199
- current_task?: Types.task;
2200
- pending_tasks?: Types.task[];
2201
- }
2202
- declare function projectFromCurrentState(snapshot: ProjectableSnapshot): ProjectedEntity;
2203
- declare function validateSchedule(entity: Projectable): void;
2204
- declare function projectEntityAt(entity: Projectable, now: Date): ProjectedEntity;
2205
- declare function projectFromCurrentStateAt(snapshot: ProjectableSnapshot, now: Date): ProjectedEntity;
2206
-
2207
- declare class Location {
2208
- readonly coordinates: Coordinates;
2209
- private _gameSeed?;
2210
- private _hasSystem?;
2211
- private _epoch?;
2212
- constructor(coordinates: CoordinatesType);
2213
- static from(coordinates: CoordinatesType): Location;
2214
- hasSystemAt(gameSeed: Checksum256Type): boolean;
2215
- getLocationTypeAt(gameSeed: Checksum256Type): LocationType;
2216
- isGatherableAt(gameSeed: Checksum256Type): boolean;
2217
- findNearby(gameSeed: Checksum256Type, maxDistance?: UInt16Type): Distance[];
2218
- equals(other: CoordinatesType | Location): boolean;
2219
- get epoch(): UInt64 | undefined;
2220
- clearCache(): void;
2221
- }
2222
- declare function toLocation(coords: CoordinatesType | Location): Location;
2223
-
2224
2241
  type Task = Types.task;
2225
2242
  declare class ScheduleAccessor {
2226
2243
  private entity;
@@ -2241,180 +2258,459 @@ declare class ScheduleAccessor {
2241
2258
  taskComplete(index: number, now: Date): boolean;
2242
2259
  taskInProgress(index: number, now: Date): boolean;
2243
2260
  currentTaskProgress(now: Date): number;
2261
+ currentTaskProgressFloat(now: Date): number;
2244
2262
  progress(now: Date): number;
2245
2263
  }
2246
2264
  declare function createScheduleAccessor(entity: ScheduleData): ScheduleAccessor;
2247
2265
 
2248
- declare class EntityInventory extends Types.cargo_item {
2249
- private _item?;
2250
- get item(): Item;
2251
- get good(): Item;
2252
- get name(): string;
2253
- get unitMass(): UInt32;
2254
- get totalMass(): UInt64;
2255
- get hasCargo(): boolean;
2256
- get isEmpty(): boolean;
2257
- }
2258
-
2259
- declare class InventoryAccessor {
2260
- private readonly entity;
2261
- private _items?;
2262
- constructor(entity: HasCargo);
2263
- get items(): EntityInventory[];
2264
- get totalMass(): UInt64;
2265
- forItem(goodId: UInt64Type): EntityInventory | undefined;
2266
- get sellable(): EntityInventory[];
2267
- get hasSellable(): boolean;
2268
- get sellableCount(): number;
2269
- }
2270
- declare function createInventoryAccessor(entity: HasCargo): InventoryAccessor;
2271
-
2272
- interface PackedModuleInput {
2273
- itemId: UInt16Type;
2274
- stats: UInt64Type;
2275
- }
2276
- interface ShipStateInput {
2277
- id: UInt64Type;
2278
- owner: string;
2279
- name: string;
2280
- coordinates: CoordinatesType | {
2281
- x: number;
2282
- y: number;
2283
- z?: number;
2284
- };
2285
- hullmass?: number;
2286
- capacity?: number;
2287
- energy?: number;
2288
- modules?: PackedModuleInput[];
2289
- schedule?: Types.schedule;
2290
- cargo?: Types.cargo_item[];
2291
- }
2292
- declare class Ship extends Types.entity_info {
2266
+ declare class Entity$1 extends Types.entity_info {
2293
2267
  private _sched?;
2294
2268
  private _inv?;
2295
2269
  get name(): string;
2270
+ get location(): Location;
2271
+ get isIdle(): boolean;
2272
+ get sched(): ScheduleAccessor;
2296
2273
  get inv(): InventoryAccessor;
2297
2274
  get inventory(): EntityInventory[];
2298
- get sched(): ScheduleAccessor;
2299
- get maxDistance(): UInt32;
2300
- get isIdle(): boolean;
2301
- getFlightOrigin(flightTaskIndex: number): Coordinates;
2302
- destinationLocation(): Coordinates | undefined;
2303
- positionAt(now: Date): Coordinates;
2304
- isInFlight(now: Date): boolean;
2305
- isRecharging(now: Date): boolean;
2306
- isLoading(now: Date): boolean;
2307
- isUnloading(now: Date): boolean;
2308
- isGathering(now: Date): boolean;
2309
- get hasEngines(): boolean;
2310
- get hasGenerator(): boolean;
2311
- get hasGatherer(): boolean;
2312
- get hasWarp(): boolean;
2313
- project(): ProjectedEntity;
2314
- projectAt(now: Date): ProjectedEntity;
2315
- get location(): Location;
2316
2275
  get totalCargoMass(): UInt64;
2317
- get totalMass(): UInt64;
2318
2276
  get maxCapacity(): UInt64;
2319
- hasSpace(goodMass: UInt64, quantity: number): boolean;
2320
2277
  get availableCapacity(): UInt64;
2321
- getCargoForItem(goodId: UInt64Type): EntityInventory | undefined;
2322
- get sellableCargo(): EntityInventory[];
2323
- get hasSellableCargo(): boolean;
2324
- get sellableGoodsCount(): number;
2325
2278
  get isFull(): boolean;
2326
- get energyPercent(): number;
2327
- get needsRecharge(): boolean;
2328
- hasEnergyFor(distance: UInt64): boolean;
2279
+ get totalMass(): UInt64;
2280
+ get entityClass(): EntityClass;
2281
+ get canWrap(): boolean;
2282
+ get canUndeploy(): boolean;
2283
+ get canDemolish(): boolean;
2284
+ get canUseModules(): boolean;
2285
+ isLoading(now: Date): boolean;
2286
+ isUnloading(now: Date): boolean;
2329
2287
  }
2330
2288
 
2331
- interface WarehouseStateInput {
2332
- id: UInt64Type;
2333
- owner: string;
2334
- name: string;
2335
- coordinates: CoordinatesType | {
2336
- x: number;
2337
- y: number;
2338
- z?: number;
2289
+ interface EpochInfo {
2290
+ epoch: UInt64;
2291
+ start: Date;
2292
+ end: Date;
2293
+ }
2294
+ declare function getCurrentEpoch(game: Types$1.game_row): UInt64;
2295
+ declare function getEpochInfo(game: Types$1.game_row, epoch: UInt64): EpochInfo;
2296
+
2297
+ /**
2298
+ * GameState class extends the state_row from the server contract
2299
+ * with helper methods for epoch management and system generation
2300
+ */
2301
+ declare class GameState extends Types.state_row {
2302
+ private _game?;
2303
+ /**
2304
+ * Create a GameState instance from a state_row
2305
+ */
2306
+ static from(state: Types.state_row, game?: Types$1.game_row): GameState;
2307
+ /**
2308
+ * Set the game configuration (needed for epoch calculations)
2309
+ */
2310
+ setGame(game: Types$1.game_row): void;
2311
+ /**
2312
+ * Get the current epoch number from the state
2313
+ */
2314
+ get currentEpoch(): UInt64;
2315
+ /**
2316
+ * Get the epoch seed (used for market pricing and system generation)
2317
+ */
2318
+ get epochSeed(): Checksum256;
2319
+ /**
2320
+ * Get the game seed (from game config, if available)
2321
+ */
2322
+ get gameSeed(): Checksum256 | undefined;
2323
+ /**
2324
+ * Check if the game is currently enabled
2325
+ */
2326
+ get isEnabled(): boolean;
2327
+ /**
2328
+ * Calculate the current epoch from game config (if game is set)
2329
+ * This might differ from state.epoch if the blockchain hasn't advanced yet
2330
+ */
2331
+ get calculatedCurrentEpoch(): UInt64 | undefined;
2332
+ /**
2333
+ * Get epoch info (start/end times) for the current epoch
2334
+ */
2335
+ get currentEpochInfo(): EpochInfo | undefined;
2336
+ /**
2337
+ * Get epoch info for a specific epoch number
2338
+ */
2339
+ getEpochInfo(epoch: UInt64): EpochInfo | undefined;
2340
+ /**
2341
+ * Check if a system exists at given coordinates
2342
+ * Requires game seed from game config
2343
+ */
2344
+ hasSystemAt(x: number, y: number): boolean;
2345
+ /**
2346
+ * Check if a system exists at coordinates object
2347
+ */
2348
+ hasSystemAtCoords(coords: Types.coordinates): boolean;
2349
+ /**
2350
+ * Get a summary of the game state
2351
+ */
2352
+ get summary(): {
2353
+ enabled: boolean;
2354
+ epoch: string;
2355
+ hasSeed: boolean;
2339
2356
  };
2340
- hullmass?: number;
2341
- capacity: number;
2342
- modules?: PackedModuleInput[];
2343
- schedule?: Types.schedule;
2344
- cargo?: Types.cargo_item[];
2345
2357
  }
2346
- declare class Warehouse extends Types.entity_info {
2347
- private _sched?;
2348
- private _inv?;
2349
- get name(): string;
2350
- get inv(): InventoryAccessor;
2351
- get inventory(): EntityInventory[];
2352
- get sched(): ScheduleAccessor;
2353
- get isIdle(): boolean;
2354
- isLoading(now: Date): boolean;
2355
- isUnloading(now: Date): boolean;
2356
- get location(): Location;
2357
- get totalCargoMass(): UInt64;
2358
- get maxCapacity(): UInt64;
2359
- get availableCapacity(): UInt64;
2360
- hasSpace(goodMass: UInt64, quantity: number): boolean;
2361
- get isFull(): boolean;
2362
- getCargoForItem(goodId: UInt64Type): EntityInventory | undefined;
2363
- get orbitalAltitude(): number;
2364
- get totalMass(): UInt64;
2358
+
2359
+ interface PlayerStateInput {
2360
+ owner: NameType;
2361
+ }
2362
+ declare class Player extends Types.player_row {
2363
+ static fromState(state: PlayerStateInput): Player;
2364
+ }
2365
+
2366
+ declare class PlayersManager extends BaseManager {
2367
+ getPlayer(account: NameType): Promise<Player | undefined>;
2365
2368
  }
2366
- declare function computeWarehouseCapabilities(modules: {
2369
+
2370
+ interface StratumInfo {
2367
2371
  itemId: number;
2368
- stats: bigint;
2369
- }[]): {
2370
- loaders?: {
2371
- mass: number;
2372
- thrust: number;
2372
+ seed: bigint;
2373
+ richness: number;
2374
+ reserve: number;
2375
+ }
2376
+ interface ResourceStats {
2377
+ stat1: number;
2378
+ stat2: number;
2379
+ stat3: number;
2380
+ }
2381
+ declare function deriveStratum(epochSeed: Checksum256Type, coords: CoordinatesType, stratum: number, locationType: number, subtype: number, _maxDepth: number): StratumInfo;
2382
+ /**
2383
+ * Derives the three stat values for a raw resource from a deposit's
2384
+ * entropy seed (hash-based, weibull-transformed).
2385
+ *
2386
+ * **Use only on deposit seeds** — the bigint returned by `deriveStratum`
2387
+ * or carried on a `MassDeposit`. Do NOT call this on a cargo item's
2388
+ * `stats` field; cargo stats are bit-packed and must be read via
2389
+ * `decodeStat` (or `decodeStackStats` for category-mapped output).
2390
+ *
2391
+ * Passing a cargo `stats` value here produces meaningless output
2392
+ * (hash of the packed bits, unrelated to the actual stats).
2393
+ */
2394
+ declare function deriveResourceStats(seed: bigint): ResourceStats;
2395
+
2396
+ interface DerivedStratum {
2397
+ index: number;
2398
+ itemId: number;
2399
+ seed: bigint;
2400
+ richness: number;
2401
+ reserve: number;
2402
+ stats: ResourceStats;
2403
+ }
2404
+ declare function deriveStrata(coords: CoordinatesType, gameSeed: Checksum256Type, epochSeed: Checksum256Type): DerivedStratum[];
2405
+
2406
+ declare function deriveLocationSize(loc: Types.location_static): number;
2407
+
2408
+ declare const DEPTH_THRESHOLD_T1 = 0;
2409
+ declare const DEPTH_THRESHOLD_T2 = 1500;
2410
+ declare const DEPTH_THRESHOLD_T3 = 5000;
2411
+ declare const DEPTH_THRESHOLD_T4 = 12000;
2412
+ declare const DEPTH_THRESHOLD_T5 = 22000;
2413
+ declare const LOCATION_MIN_DEPTH = 500;
2414
+ declare const LOCATION_MAX_DEPTH = 65535;
2415
+ declare const YIELD_FRACTION_SHALLOW = 0.0025;
2416
+ declare const YIELD_FRACTION_DEEP = 0.0005;
2417
+ declare function yieldThresholdAt(stratum: number): number;
2418
+ declare const PLANET_SUBTYPE_GAS_GIANT = 0;
2419
+ declare const PLANET_SUBTYPE_ROCKY = 1;
2420
+ declare const PLANET_SUBTYPE_TERRESTRIAL = 2;
2421
+ declare const PLANET_SUBTYPE_ICY = 3;
2422
+ declare const PLANET_SUBTYPE_OCEAN = 4;
2423
+ declare const PLANET_SUBTYPE_INDUSTRIAL = 5;
2424
+ declare function getDepthThreshold(tier: number): number;
2425
+ declare function getResourceTier(itemId: number): number;
2426
+ declare function getResourceWeight(itemId: number, stratum: number): number;
2427
+ interface LocationProfileEntry {
2428
+ category: number;
2429
+ maxTier: number;
2430
+ }
2431
+ declare function getLocationProfile(locationType: number, subtype: number): LocationProfileEntry[];
2432
+ declare function getLocationCandidates(locationType: number, subtype: number): number[];
2433
+ declare function getEligibleResources(locationType: number, subtype: number, stratum: number): number[];
2434
+
2435
+ type ReserveTier = 'small' | 'medium' | 'large' | 'massive' | 'motherlode';
2436
+ interface TierRange {
2437
+ min: number;
2438
+ max: number;
2439
+ }
2440
+ declare const RESERVE_TIERS: Record<ReserveTier, TierRange>;
2441
+ declare const TIER_ROLL_MAX = 65536;
2442
+ declare function rollTier(tierRoll: number, stratum: number): ReserveTier;
2443
+ declare function rollWithinTier(withinRoll: number, range: TierRange, resourceUnitMass: number): number;
2444
+ declare function tierOfReserve(reserve: number, itemId: number): ReserveTier | null;
2445
+
2446
+ interface EffectiveReserveInput {
2447
+ remaining: UInt32 | number;
2448
+ max_reserve: UInt32 | number;
2449
+ last_block: BlockTimestamp;
2450
+ }
2451
+ declare function getEffectiveReserve(row: EffectiveReserveInput, now: BlockTimestamp, epochSeconds: number): number;
2452
+
2453
+ interface StatDefinition {
2454
+ key: string;
2455
+ label: string;
2456
+ abbreviation: string;
2457
+ purpose: string;
2458
+ inverted?: boolean;
2459
+ }
2460
+ declare function getStatDefinitions(category: ResourceCategory): StatDefinition[];
2461
+ declare function getStatName(category: ResourceCategory, index: 0 | 1 | 2): StatDefinition;
2462
+ interface NamedStats {
2463
+ definitions: StatDefinition[];
2464
+ values: [number, number, number];
2465
+ }
2466
+ declare function resolveStats(category: ResourceCategory, stats: {
2467
+ stat1: number;
2468
+ stat2: number;
2469
+ stat3: number;
2470
+ }): NamedStats;
2471
+
2472
+ interface StackInput {
2473
+ quantity: number;
2474
+ stats: Record<string, number>;
2475
+ }
2476
+ interface CategoryStacks {
2477
+ category: ResourceCategory;
2478
+ stacks: StackInput[];
2479
+ }
2480
+ declare function encodeStats(values: number[]): bigint;
2481
+ declare function decodeStat(stats: bigint, index: number): number;
2482
+ declare function decodeStats(stats: bigint, count: number): number[];
2483
+ declare function decodeCraftedItemStats(itemId: number, stats: bigint): Record<string, number>;
2484
+ declare function blendStacks(stacks: StackInput[], statKey: string): number;
2485
+ declare function blendComponentStacks(stacks: {
2486
+ quantity: number;
2487
+ stats: Record<string, number>;
2488
+ }[]): Record<string, number>;
2489
+ declare function computeComponentStats(componentId: number, categoryStacks: CategoryStacks[]): {
2490
+ key: string;
2491
+ value: number;
2492
+ }[];
2493
+ declare function computeEntityStats(entityItemIdOrLegacyId: number | string, componentStacks: Record<number, {
2494
+ quantity: number;
2495
+ stats: Record<string, number>;
2496
+ }[]>): {
2497
+ key: string;
2498
+ value: number;
2499
+ }[];
2500
+ declare function computeInputMass(itemId: number): number;
2501
+ declare function blendCrossGroup(sources: {
2502
+ value: number;
2503
+ weight: number;
2504
+ }[]): number;
2505
+ declare function blendCargoStacks(itemId: number, stacks: {
2506
+ quantity: number;
2507
+ stats: UInt64;
2508
+ }[]): UInt64;
2509
+ interface RecipeSlotInput {
2510
+ itemId: number;
2511
+ category: ResourceCategory | undefined;
2512
+ stacks: {
2373
2513
  quantity: number;
2374
- };
2514
+ stats: bigint;
2515
+ }[];
2516
+ }
2517
+ declare function computeCraftedOutputStats(outputItemId: number, slotInputs: RecipeSlotInput[]): UInt64;
2518
+ /**
2519
+ * Mirrors the contract's gather-time transform. Takes a deposit's entropy
2520
+ * seed (bigint from deriveStratum), derives stats via weibull hashing, and
2521
+ * returns a UInt64 whose bit-packed form matches what the contract writes
2522
+ * to cargo_item.stats on gather.
2523
+ *
2524
+ * Use this whenever off-chain code simulates a gather (webapp, player
2525
+ * scanners that project cargo outcomes) and needs a value that matches
2526
+ * what on-chain cargo would carry.
2527
+ */
2528
+ declare function encodeGatheredCargoStats(depositSeed: bigint): UInt64;
2529
+
2530
+ interface LocationStratum extends DerivedStratum {
2531
+ reserveMax: number;
2532
+ }
2533
+ declare class LocationsManager extends BaseManager {
2534
+ hasSystem(location: CoordinatesType): Promise<boolean>;
2535
+ findNearbyPlanets(origin: CoordinatesType, maxDistance?: UInt16Type): Promise<Distance[]>;
2536
+ getStrata(coords: CoordinatesType): Promise<LocationStratum[]>;
2537
+ }
2538
+
2539
+ declare class EpochsManager extends BaseManager {
2540
+ getCurrentHeight(): Promise<UInt64>;
2541
+ getFinalizedEpoch(reload?: boolean): Promise<UInt64>;
2542
+ getCurrent(): Promise<EpochInfo>;
2543
+ getByHeight(height: UInt64Type): Promise<EpochInfo>;
2544
+ getTimeRemaining(): Promise<number>;
2545
+ getProgress(): Promise<number>;
2546
+ fitsInCurrentEpoch(durationMs: number): Promise<boolean>;
2547
+ getEpochRow(epoch: UInt64Type): Promise<Types.epoch_row | undefined>;
2548
+ getActiveEpochInfo(): Promise<Types.epoch_row | undefined>;
2549
+ getOracles(): Promise<Types.oracle_row[]>;
2550
+ getThreshold(): Promise<number>;
2551
+ getCommitsFor(epoch: UInt64Type): Promise<Types.commit_row[]>;
2552
+ getRevealsFor(epoch: UInt64Type): Promise<Types.reveal_row[]>;
2553
+ }
2554
+
2555
+ type EntityRefInput = {
2556
+ entityType: NameType;
2557
+ entityId: UInt64Type;
2558
+ };
2559
+ declare class ActionsManager extends BaseManager {
2560
+ travel(shipId: UInt64Type, destination: CoordinatesType, recharge?: boolean): Action;
2561
+ grouptravel(entities: EntityRefInput[], destination: CoordinatesType, recharge?: boolean): Action;
2562
+ resolve(entityId: UInt64Type, count?: UInt64Type): Action;
2563
+ cancel(entityId: UInt64Type, count: UInt64Type): Action;
2564
+ recharge(entityId: UInt64Type): Action;
2565
+ refrshentity(entityId: UInt64Type): Action;
2566
+ transfer(sourceId: UInt64Type, destId: UInt64Type, items: ActionParams.Type.cargo_item[]): Action;
2567
+ foundCompany(account: NameType, name: string): Action;
2568
+ join(account: NameType): Action;
2569
+ gather(sourceId: UInt64Type, destinationId: UInt64Type, stratum: UInt16Type, quantity: UInt32Type): Action;
2570
+ warp(entityId: UInt64Type, destination: CoordinatesType): Action;
2571
+ craft(entityId: UInt64Type, recipeId: number, quantity: number, inputs: ActionParams.Type.cargo_item[]): Action;
2572
+ blend(entityId: UInt64Type, inputs: ActionParams.Type.cargo_item[]): Action;
2573
+ deploy(entityId: UInt64Type, ref: ActionParams.Type.cargo_ref): Action;
2574
+ claimplot(entityId: UInt64Type, targetItemId: UInt16Type, coords: ActionParams.Type.coordinates): Action;
2575
+ buildplot(entityId: UInt64Type, plotId: UInt64Type): Action;
2576
+ addmodule(entityId: UInt64Type, moduleIndex: number, moduleRef: ActionParams.Type.cargo_ref, targetRef?: ActionParams.Type.cargo_ref | null): Action;
2577
+ rmmodule(entityId: UInt64Type, moduleIndex: number, targetRef?: ActionParams.Type.cargo_ref | null): Action;
2578
+ wrap(owner: NameType, entityId: UInt64Type, nexusId: UInt64Type, cargoId: UInt64Type, quantity: UInt64Type): Promise<Action[]>;
2579
+ undeploy(hostId: UInt64Type, targetId: UInt64Type): Action;
2580
+ wrapEntity(owner: NameType, entityId: UInt64Type, nexusId: UInt64Type): Promise<Action[]>;
2581
+ placecargo(owner: NameType, hostId: UInt64Type, assetId: UInt64Type): Action;
2582
+ placeentity(owner: NameType, assetId: UInt64Type, targetNexusId: UInt64Type): Action;
2583
+ transferForUnwrap(owner: NameType, assetId: UInt64Type): Action;
2584
+ unwrapCargoTx(owner: NameType, assetId: UInt64Type, hostId: UInt64Type): Action[];
2585
+ unwrapEntityTx(owner: NameType, assetId: UInt64Type, targetNexusId: UInt64Type): Action[];
2586
+ setRamPayer(newPayer: NameType, assetId: UInt64Type): Action;
2587
+ demolish(entityId: UInt64Type): Action;
2588
+ joinGame(account: NameType, companyName: string): Action[];
2589
+ commit(oracleId: NameType, epoch: UInt64Type, commit: Checksum256Type): Action;
2590
+ reveal(oracleId: NameType, epoch: UInt64Type, reveal: Checksum256Type): Action;
2591
+ addoracle(oracleId: NameType): Action;
2592
+ removeoracle(oracleId: NameType): Action;
2593
+ setthreshold(threshold: UInt8Type): Action;
2594
+ cleanrsvp(epoch: UInt64Type, maxRows: UInt64Type): Action;
2595
+ }
2596
+
2597
+ interface NftConfigForItem {
2598
+ templateId: number;
2599
+ schemaName: string;
2600
+ }
2601
+ declare class NftManager extends BaseManager {
2602
+ private cache;
2603
+ getNftConfigForItem(itemId: UInt64Type): Promise<NftConfigForItem | undefined>;
2604
+ }
2605
+
2606
+ type EntityInfo = Types.entity_info;
2607
+ interface BoundingBox {
2608
+ min_x: number;
2609
+ min_y: number;
2610
+ max_x: number;
2611
+ max_y: number;
2612
+ }
2613
+ interface WireCoordinates {
2614
+ x: number;
2615
+ y: number;
2616
+ z?: number;
2617
+ }
2618
+ type SubscribeMessage = {
2619
+ type: 'subscribe';
2620
+ sub_id: string;
2621
+ bounds?: BoundingBox;
2622
+ owner?: string;
2623
+ prioritize_owner?: string;
2624
+ };
2625
+ type UpdateBoundsMessage = {
2626
+ type: 'update_bounds';
2627
+ sub_id: string;
2628
+ bounds: BoundingBox;
2629
+ };
2630
+ type UnsubscribeMessage = {
2631
+ type: 'unsubscribe';
2632
+ sub_id: string;
2375
2633
  };
2376
-
2377
- interface ContainerStateInput {
2378
- id: UInt64Type;
2634
+ type SubscribeEntityMessage = {
2635
+ type: 'subscribe_entity';
2636
+ sub_id: string;
2637
+ entity_type: 'ship' | 'warehouse' | 'container' | 'nexus';
2638
+ entity_id: string;
2639
+ };
2640
+ type UnsubscribeEntityMessage = {
2641
+ type: 'unsubscribe_entity';
2642
+ sub_id: string;
2643
+ };
2644
+ type SubscribeEventsMessage = {
2645
+ type: 'subscribe_events';
2646
+ sub_id: string;
2647
+ event_filter?: Record<string, unknown>;
2648
+ };
2649
+ type UnsubscribeEventsMessage = {
2650
+ type: 'unsubscribe_events';
2651
+ sub_id: string;
2652
+ };
2653
+ type PingMessage = {
2654
+ type: 'ping';
2655
+ };
2656
+ type ClientMessage = SubscribeMessage | UpdateBoundsMessage | UnsubscribeMessage | SubscribeEntityMessage | UnsubscribeEntityMessage | SubscribeEventsMessage | UnsubscribeEventsMessage | PingMessage;
2657
+ type AckMessage = {
2658
+ type: 'subscribed' | 'unsubscribed' | 'bounds_updated';
2659
+ sub_id: string;
2660
+ };
2661
+ type WireEntity = Record<string, unknown> & {
2662
+ type: number;
2663
+ type_name: 'ship' | 'warehouse' | 'container' | 'nexus';
2664
+ id: string | number;
2379
2665
  owner: string;
2380
- name: string;
2381
- coordinates: CoordinatesType | {
2382
- x: number;
2383
- y: number;
2384
- z?: number;
2385
- };
2386
- hullmass: number;
2387
- capacity: number;
2388
- cargomass?: number;
2389
- cargo?: Types.cargo_item[];
2390
- schedule?: Types.schedule;
2391
- }
2392
- declare class Container extends Types.entity_info {
2393
- private _sched?;
2394
- get name(): string;
2395
- get sched(): ScheduleAccessor;
2396
- get isIdle(): boolean;
2397
- isLoading(now: Date): boolean;
2398
- isUnloading(now: Date): boolean;
2399
- get location(): Location;
2400
- get totalMass(): UInt64;
2401
- get maxCapacity(): UInt64;
2402
- get availableCapacity(): UInt64;
2403
- hasSpace(additionalMass: UInt64): boolean;
2404
- get isFull(): boolean;
2405
- get orbitalAltitude(): number;
2406
- }
2407
- declare function computeContainerCapabilities(stats: Record<string, number>): {
2408
- hullmass: number;
2409
- capacity: number;
2666
+ coordinates: WireCoordinates;
2667
+ item_id: number;
2410
2668
  };
2411
- declare function computeContainerT2Capabilities(stats: Record<string, number>): {
2412
- hullmass: number;
2413
- capacity: number;
2669
+ type SnapshotMessage = {
2670
+ type: 'snapshot';
2671
+ sub_id: string;
2672
+ seq: number;
2673
+ entities: WireEntity[];
2674
+ truncated?: boolean;
2675
+ };
2676
+ type UpdateMessage = {
2677
+ type: 'update';
2678
+ sub_ids: string[];
2679
+ entity_id: number;
2680
+ entity: WireEntity;
2681
+ seq: number;
2682
+ };
2683
+ type BoundsDeltaMessage = {
2684
+ type: 'bounds_delta';
2685
+ sub_id: string;
2686
+ entered: WireEntity[];
2687
+ exited: number[];
2688
+ seq: number;
2689
+ truncated?: boolean;
2690
+ };
2691
+ type EventMessage = {
2692
+ type: 'event';
2693
+ sub_id: string;
2694
+ catchup: boolean;
2695
+ events: Array<Record<string, unknown>>;
2696
+ seq?: number;
2697
+ };
2698
+ type EventCatchupCompleteMessage = {
2699
+ type: 'event_catchup_complete';
2700
+ sub_id: string;
2701
+ };
2702
+ type PongMessage = {
2703
+ type: 'pong';
2704
+ };
2705
+ type ErrorMessage = {
2706
+ type: 'error';
2707
+ error: string;
2708
+ sub_id?: string;
2414
2709
  };
2710
+ type ServerMessage = AckMessage | SnapshotMessage | UpdateMessage | BoundsDeltaMessage | EventMessage | EventCatchupCompleteMessage | PongMessage | ErrorMessage;
2415
2711
 
2416
- type SubscriptionEntityType = 'ship' | 'warehouse' | 'container';
2417
- type EntityInstance = Ship | Warehouse | Container;
2712
+ type SubscriptionEntityType = 'ship' | 'warehouse' | 'container' | 'nexus';
2713
+ type EntityInstance = Entity$1;
2418
2714
  interface SubscriptionsOptions {
2419
2715
  url: string;
2420
2716
  minReconnectDelay?: number;
@@ -2427,6 +2723,11 @@ interface BoundsSubscriptionHandle {
2427
2723
  updateBounds(bounds: BoundingBox): void;
2428
2724
  current: Map<number, EntityInstance>;
2429
2725
  }
2726
+ interface OwnerSubscriptionHandle {
2727
+ readonly subId: string;
2728
+ unsubscribe(): void;
2729
+ current: Map<number, EntityInstance>;
2730
+ }
2430
2731
  interface EntitySubscriptionHandle {
2431
2732
  readonly subId: string;
2432
2733
  readonly entityType: SubscriptionEntityType;
@@ -2453,6 +2754,10 @@ declare class SubscriptionsManager {
2453
2754
  owner?: string;
2454
2755
  prioritizeOwner?: string;
2455
2756
  }): BoundsSubscriptionHandle;
2757
+ subscribeOwner(owner: string, handlers?: {
2758
+ onSnapshot?: (entities: EntityInstance[]) => void;
2759
+ onUpdate?: (entity: EntityInstance) => void;
2760
+ }): OwnerSubscriptionHandle;
2456
2761
  private unsubscribeBounds;
2457
2762
  private updateBounds;
2458
2763
  private onStateChange;
@@ -2473,6 +2778,7 @@ declare class GameContext {
2473
2778
  private _locations?;
2474
2779
  private _epochs?;
2475
2780
  private _actions?;
2781
+ private _nft?;
2476
2782
  private _subscriptions?;
2477
2783
  private _subscriptionsUrl?;
2478
2784
  private _gameCache?;
@@ -2483,6 +2789,7 @@ declare class GameContext {
2483
2789
  get locations(): LocationsManager;
2484
2790
  get epochs(): EpochsManager;
2485
2791
  get actions(): ActionsManager;
2792
+ get nft(): NftManager;
2486
2793
  setSubscriptionsUrl(url: string): void;
2487
2794
  get subscriptions(): SubscriptionsManager;
2488
2795
  getGame(reload?: boolean): Promise<Types$1.game_row>;
@@ -2498,24 +2805,14 @@ declare abstract class BaseManager {
2498
2805
  protected get server(): _wharfkit_contract.Contract;
2499
2806
  protected get platform(): _wharfkit_contract.Contract;
2500
2807
  protected getGame(): Promise<Types$1.game_row>;
2501
- protected getState(): Promise<GameState>;
2808
+ protected getState(reload?: boolean): Promise<GameState>;
2502
2809
  }
2503
2810
 
2504
- type EntityType = 'ship' | 'warehouse' | 'container' | 'location';
2505
2811
  declare class EntitiesManager extends BaseManager {
2506
- getEntity(type: EntityType, id: UInt64Type): Promise<Ship | Warehouse | Container>;
2507
- getEntities(owner: NameType | Types.player_row, type?: EntityType): Promise<(Ship | Warehouse | Container)[]>;
2508
- getSummaries(owner: NameType | Types.player_row, type?: EntityType): Promise<Types.entity_summary[]>;
2509
- getShip(id: UInt64Type): Promise<Ship>;
2510
- getWarehouse(id: UInt64Type): Promise<Warehouse>;
2511
- getContainer(id: UInt64Type): Promise<Container>;
2512
- getShips(owner: NameType | Types.player_row): Promise<Ship[]>;
2513
- getWarehouses(owner: NameType | Types.player_row): Promise<Warehouse[]>;
2514
- getContainers(owner: NameType | Types.player_row): Promise<Container[]>;
2515
- getShipSummaries(owner: NameType | Types.player_row): Promise<Types.entity_summary[]>;
2516
- getWarehouseSummaries(owner: NameType | Types.player_row): Promise<Types.entity_summary[]>;
2517
- getContainerSummaries(owner: NameType | Types.player_row): Promise<Types.entity_summary[]>;
2518
- private wrapEntity;
2812
+ getEntity(id: UInt64Type): Promise<Entity$1>;
2813
+ getProjection(id: UInt64Type, taskCount?: number): Promise<unknown>;
2814
+ getEntities(owner: NameType | Types.player_row, kind?: EntityTypeName): Promise<Entity$1[]>;
2815
+ getSummaries(owner: NameType | Types.player_row, kind?: EntityTypeName): Promise<Types.entity_summary[]>;
2519
2816
  private resolveOwner;
2520
2817
  }
2521
2818
 
@@ -2541,14 +2838,106 @@ declare class Shipload {
2541
2838
  get locations(): LocationsManager;
2542
2839
  get epochs(): EpochsManager;
2543
2840
  get actions(): ActionsManager;
2841
+ get nft(): NftManager;
2544
2842
  get subscriptions(): SubscriptionsManager;
2545
2843
  getGame(reload?: boolean): Promise<Types$1.game_row>;
2546
2844
  getState(reload?: boolean): Promise<GameState>;
2547
2845
  }
2548
2846
 
2549
- declare function makeShip(state: ShipStateInput): Ship;
2550
- declare function makeWarehouse(state: WarehouseStateInput): Warehouse;
2551
- declare function makeContainer(state: ContainerStateInput): Container;
2847
+ interface PackedModuleInput {
2848
+ itemId: number;
2849
+ stats: bigint;
2850
+ }
2851
+ interface EntityStateInput {
2852
+ id: UInt64Type;
2853
+ owner: NameType;
2854
+ name: string;
2855
+ coordinates: {
2856
+ x: number;
2857
+ y: number;
2858
+ z?: number;
2859
+ };
2860
+ itemId?: number;
2861
+ hullmass?: number;
2862
+ capacity?: number;
2863
+ cargomass?: number;
2864
+ energy?: number;
2865
+ modules?: PackedModuleInput[];
2866
+ schedule?: Types.schedule;
2867
+ cargo?: Types.cargo_item[];
2868
+ }
2869
+ declare function makeEntity(packedItemId: number, state: EntityStateInput): Entity$1;
2870
+
2871
+ interface InstalledModule {
2872
+ slotIndex: number;
2873
+ itemId: number;
2874
+ stats: bigint;
2875
+ }
2876
+
2877
+ type BuildState = 'initializing' | 'accepting' | 'ready' | 'finalizing';
2878
+ type FinalizerCapability = 'crafter';
2879
+ interface BuildableTarget {
2880
+ entityId: UInt64;
2881
+ ownerName: Name;
2882
+ coordinates: Types.coordinates;
2883
+ targetItemId: number;
2884
+ targetItem: Item;
2885
+ state: BuildState;
2886
+ recipe: Recipe;
2887
+ progress: PlotProgress;
2888
+ finalizeAction: Name;
2889
+ finalizerCapability: FinalizerCapability;
2890
+ activeTask?: Types.task;
2891
+ }
2892
+ interface SourceEntityRef {
2893
+ entityId: UInt64;
2894
+ name: string;
2895
+ hasLoaders: boolean;
2896
+ loaderCount: number;
2897
+ loaderTotalMass: number;
2898
+ relevantCargo: SourceCargoStack[];
2899
+ }
2900
+ interface SourceCargoStack {
2901
+ itemId: number;
2902
+ item: Item;
2903
+ available: number;
2904
+ plotNeeds: number;
2905
+ }
2906
+ interface FinalizerEntityRef {
2907
+ entityId: UInt64;
2908
+ name: string;
2909
+ capability: FinalizerCapability;
2910
+ crafterSpeed: number;
2911
+ estimatedDuration: UInt32;
2912
+ }
2913
+
2914
+ interface PlotProgressInputRow {
2915
+ itemId: number;
2916
+ required: number;
2917
+ provided: number;
2918
+ missing: number;
2919
+ }
2920
+ interface PlotProgress {
2921
+ targetItemId: number;
2922
+ rows: PlotProgressInputRow[];
2923
+ massProvided: number;
2924
+ massRequired: number;
2925
+ isComplete: boolean;
2926
+ }
2927
+
2928
+ declare class ConstructionManager extends BaseManager {
2929
+ private readonly plot;
2930
+ getTarget(entity: Types.entity_row, cargo: Types.cargo_row[], activeTask?: Types.task): BuildableTarget | null;
2931
+ eligibleSources(target: BuildableTarget, entities: Types.entity_info[], cargo: Types.cargo_row[]): SourceEntityRef[];
2932
+ unreachableSources(target: BuildableTarget, entities: Types.entity_info[], cargo: Types.cargo_row[]): SourceEntityRef[];
2933
+ partitionSources(target: BuildableTarget, entities: Types.entity_info[], cargo: Types.cargo_row[]): {
2934
+ eligible: SourceEntityRef[];
2935
+ unreachable: SourceEntityRef[];
2936
+ };
2937
+ eligibleFinalizers(target: BuildableTarget, entities: Types.entity_info[]): FinalizerEntityRef[];
2938
+ estimateFinalizeDuration(target: BuildableTarget, crafterSpeed: number): UInt32;
2939
+ static isConstructionKind(kind: string): boolean;
2940
+ }
2552
2941
 
2553
2942
  declare const itemIds: number[];
2554
2943
  declare function getItem(itemId: UInt16Type): Item;
@@ -2570,7 +2959,6 @@ declare function getEntityItems(opts?: {
2570
2959
  declare function resolveItemCategory(id: number): ResourceCategory | undefined;
2571
2960
  declare function typeLabel(type: ItemType | number): string;
2572
2961
  declare function categoryLabel(cat: ResourceCategory): string;
2573
- declare function tierLabel(tier: number): string;
2574
2962
  declare function categoryFromIndex(i: number): ResourceCategory | undefined;
2575
2963
  declare function categoryLabelFromIndex(i: number): string;
2576
2964
 
@@ -2580,8 +2968,8 @@ declare function getLocationTypeName(type: LocationType): string;
2580
2968
  declare function getSystemName(gameSeed: Checksum256Type, location: CoordinatesType): string;
2581
2969
  declare function hasSystem(gameSeed: Checksum256Type, coordinates: CoordinatesType): boolean;
2582
2970
  declare function deriveLocationStatic(gameSeed: Checksum256Type, coordinates: CoordinatesType): Types.location_static;
2583
- declare function deriveLocationEpoch(epochSeed: Checksum256Type, coordinates: CoordinatesType): Types.location_epoch;
2584
- declare function deriveLocation(gameSeed: Checksum256Type, epochSeed: Checksum256Type, coordinates: CoordinatesType): Types.location_derived;
2971
+ declare function isLocationBuildable(gameSeed: Checksum256Type, coordinates: CoordinatesType): boolean;
2972
+ declare function deriveLocation(gameSeed: Checksum256Type, coordinates: CoordinatesType): Types.location_derived;
2585
2973
 
2586
2974
  declare function hash(seed: Checksum256Type, string: string): Checksum256;
2587
2975
  declare function hash512(seed: Checksum256Type, string: string): Checksum512;
@@ -2602,6 +2990,22 @@ declare function calc_orbital_altitude(mass: number): number;
2602
2990
  declare function distanceBetweenCoordinates(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates): UInt64;
2603
2991
  declare function distanceBetweenPoints(x1: Int64Type, y1: Int64Type, x2: Int64Type, y2: Int64Type): UInt64;
2604
2992
  declare function lerp(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates, time: number): ActionParams.Type.coordinates;
2993
+ interface FloatPosition {
2994
+ x: number;
2995
+ y: number;
2996
+ }
2997
+ declare function easeFlightProgress(t: number): number;
2998
+ declare function flightSpeedFactor(t: number): number;
2999
+ declare function interpolateFlightPosition(origin: {
3000
+ x: Int64Type | number;
3001
+ y: Int64Type | number;
3002
+ }, destination: {
3003
+ x: Int64Type | number;
3004
+ y: Int64Type | number;
3005
+ }, taskProgress: number, options?: {
3006
+ easing?: 'physics' | 'linear';
3007
+ }): FloatPosition;
3008
+ declare function getInterpolatedPosition(entity: HasScheduleAndLocation, taskIndex: number, taskProgress: number): FloatPosition;
2605
3009
  declare function rotation(origin: ActionParams.Type.coordinates, destination: ActionParams.Type.coordinates): number;
2606
3010
  declare function findNearbyPlanets(seed: Checksum256, origin: ActionParams.Type.coordinates, maxDistance?: UInt64Type): Distance[];
2607
3011
  declare function calc_rechargetime(capacity: UInt32Type, energy: UInt32Type, recharge: UInt32Type): UInt32;
@@ -2664,6 +3068,7 @@ interface HasScheduleAndLocation {
2664
3068
  }
2665
3069
  declare function getFlightOrigin(entity: HasScheduleAndLocation, flightTaskIndex: number): ActionParams.Type.coordinates;
2666
3070
  declare function getDestinationLocation(entity: HasScheduleAndLocation): ActionParams.Type.coordinates | undefined;
3071
+ /** Returns chain-tile coordinates (rounded). For visual position use getInterpolatedPosition. */
2667
3072
  declare function getPositionAt(entity: HasScheduleAndLocation, taskIndex: number, taskProgress: number): ActionParams.Type.coordinates;
2668
3073
  declare function calc_transfer_duration(source: TransferEntity, dest: TransferEntity, cargoMass: number): number;
2669
3074
 
@@ -2702,6 +3107,75 @@ declare namespace cargoUtils {
2702
3107
  };
2703
3108
  }
2704
3109
 
3110
+ declare function cargoRef(src: {
3111
+ item_id: number;
3112
+ stats: bigint | number;
3113
+ modules?: Types.module_entry[];
3114
+ }): ActionParams.Type.cargo_ref;
3115
+ declare function cargoItem(src: {
3116
+ item_id: number;
3117
+ stats: bigint | number;
3118
+ modules?: Types.module_entry[];
3119
+ }, quantity: bigint | number): ActionParams.Type.cargo_item;
3120
+
3121
+ interface ProjectedEntity {
3122
+ location: Coordinates;
3123
+ energy: UInt16;
3124
+ cargo: CargoStack[];
3125
+ shipMass: UInt32;
3126
+ capacity?: UInt64;
3127
+ engines?: Types.movement_stats;
3128
+ loaders?: Types.loader_stats;
3129
+ generator?: Types.energy_stats;
3130
+ hauler?: Types.hauler_stats;
3131
+ readonly cargoMass: UInt64;
3132
+ readonly totalMass: UInt64;
3133
+ hasMovement(): boolean;
3134
+ hasStorage(): boolean;
3135
+ hasLoaders(): boolean;
3136
+ capabilities(): EntityCapabilities;
3137
+ state(): EntityState;
3138
+ }
3139
+ interface Projectable extends ScheduleData {
3140
+ coordinates: Coordinates | Types.coordinates;
3141
+ energy?: UInt16;
3142
+ hullmass?: UInt32;
3143
+ generator?: Types.energy_stats;
3144
+ engines?: Types.movement_stats;
3145
+ loaders?: Types.loader_stats;
3146
+ hauler?: Types.hauler_stats;
3147
+ capacity?: UInt32;
3148
+ cargo: Types.cargo_item[];
3149
+ cargomass: UInt32;
3150
+ owner?: Name;
3151
+ stats?: bigint;
3152
+ item_id?: number | UInt16;
3153
+ modules?: Types.module_entry[] | InstalledModule[];
3154
+ }
3155
+ declare function createProjectedEntity(entity: Projectable): ProjectedEntity;
3156
+ interface ProjectionOptions {
3157
+ upToTaskIndex?: number;
3158
+ }
3159
+ declare function projectEntity(entity: Projectable, options?: ProjectionOptions): ProjectedEntity;
3160
+ interface ProjectableSnapshot extends Projectable {
3161
+ current_task?: Types.task;
3162
+ pending_tasks?: Types.task[];
3163
+ }
3164
+ declare function projectFromCurrentState(snapshot: ProjectableSnapshot): ProjectedEntity;
3165
+ declare function validateSchedule(entity: Projectable): void;
3166
+ declare function projectEntityAt(entity: Projectable, now: Date): ProjectedEntity;
3167
+ declare function projectFromCurrentStateAt(snapshot: ProjectableSnapshot, now: Date): ProjectedEntity;
3168
+
3169
+ type TaskCargoDirection = 'in' | 'out';
3170
+ interface TaskCargoChange {
3171
+ direction: TaskCargoDirection;
3172
+ item_id: number;
3173
+ stats: bigint;
3174
+ modules: Types.module_entry[];
3175
+ quantity: number;
3176
+ }
3177
+ declare function taskCargoChanges(task: Types.task): TaskCargoChange[];
3178
+
2705
3179
  interface Entity {
2706
3180
  id: UInt64;
2707
3181
  type: Name;
@@ -2732,6 +3206,11 @@ declare function needsRecharge(entity: MovementCapability & EnergyCapability): b
2732
3206
  declare function calcLoadDuration(entity: LoaderCapability, cargoMass: UInt64): UInt32;
2733
3207
 
2734
3208
  declare function calc_gather_duration(gatherer: Types.gatherer_stats, itemMass: number, quantity: number, stratum: number, richness: number): UInt32;
3209
+ declare function calc_gather_rate(gatherer: Types.gatherer_stats, itemMass: number, stratum: number, richness: number): {
3210
+ unitsPerSec: number;
3211
+ unitsPerMin: number;
3212
+ secPerUnit: number;
3213
+ };
2735
3214
  declare function calc_gather_energy(gatherer: Types.gatherer_stats, duration: number): UInt16;
2736
3215
 
2737
3216
  interface CrafterCapability {
@@ -2751,6 +3230,7 @@ declare const MODULE_CRAFTER = 6;
2751
3230
  declare const MODULE_LAUNCHER = 7;
2752
3231
  declare const MODULE_STORAGE = 8;
2753
3232
  declare const MODULE_HAULER = 9;
3233
+ declare const MODULE_BATTERY = 10;
2754
3234
  interface PackedModule {
2755
3235
  itemId: number;
2756
3236
  stats: bigint;
@@ -2765,11 +3245,10 @@ declare function isModuleItem(itemId: number): boolean;
2765
3245
  declare function moduleSlotTypeToCode(slotType: string): number;
2766
3246
 
2767
3247
  declare function computeHaulPenalty(totalThrust: number, haulCount: number, avgEfficiency: number): number;
2768
- declare function computeHaulerDrain(distance: number, drain: number, haulCount: number): number;
3248
+ declare function computeHaulerDrain$1(distance: number, drain: number, haulCount: number): number;
2769
3249
 
2770
3250
  declare const categoryColors: Record<ResourceCategory, string>;
2771
3251
  declare const tierColors: Record<number, string>;
2772
- declare const tierLabels: Record<number, string>;
2773
3252
  declare const categoryIcons: Record<ResourceCategory, string>;
2774
3253
  type CategoryIconShape = 'hex' | 'diamond' | 'star' | 'circle' | 'square';
2775
3254
  declare const categoryIconShapes: Record<ResourceCategory, CategoryIconShape>;
@@ -2817,17 +3296,34 @@ interface StatMapping {
2817
3296
  stat: string;
2818
3297
  capability: string;
2819
3298
  attribute: string;
2820
- rationale: string;
2821
3299
  }
2822
3300
  declare const capabilityNames: string[];
2823
3301
  declare const capabilityAttributes: CapabilityAttribute[];
2824
- declare const statMappings: StatMapping[];
2825
3302
  declare function isInvertedAttribute(attribute: string): boolean;
2826
3303
  declare function getCapabilityAttributes(capability?: string): CapabilityAttribute[];
3304
+
3305
+ interface SlotConsumer {
3306
+ capability: string;
3307
+ attribute: string;
3308
+ }
3309
+ type SlotConsumerKind = 'engine' | 'generator' | 'gatherer' | 'loader' | 'crafter' | 'storage' | 'hauler' | 'warp' | 'battery' | 'ship-t1' | 'container-t1' | 'warehouse-t1' | 'extractor-t1' | 'container-t2';
3310
+ declare const SLOT_FORMULAS: Record<SlotConsumerKind, Record<number, SlotConsumer>>;
3311
+
3312
+ declare function deriveStatMappings(): StatMapping[];
2827
3313
  declare function getStatMappings(): StatMapping[];
2828
3314
  declare function getStatMappingsForStat(stat: string): StatMapping[];
2829
3315
  declare function getStatMappingsForCapability(capability: string): StatMapping[];
2830
3316
 
3317
+ type BuildMethod = 'craft+deploy' | 'plot';
3318
+ declare function availableBuildMethods(itemId: number): BuildMethod[];
3319
+ declare function isBuildable(itemId: number): boolean;
3320
+ declare function isPlotBuildable(itemId: number): boolean;
3321
+ declare function filterByBuildMethod<T extends {
3322
+ itemId: number;
3323
+ }>(items: T[], method: BuildMethod): T[];
3324
+ declare function allBuildableItems(): Item[];
3325
+ declare function allPlotBuildableItems(): Item[];
3326
+
2831
3327
  declare function computeShipHullCapabilities(stats: Record<string, number>): {
2832
3328
  hullmass: number;
2833
3329
  capacity: number;
@@ -2840,11 +3336,17 @@ declare function computeGeneratorCapabilities(stats: Record<string, number>): {
2840
3336
  capacity: number;
2841
3337
  recharge: number;
2842
3338
  };
2843
- declare function computeGathererCapabilities(stats: Record<string, number>): {
3339
+ interface GathererDepthParams {
3340
+ readonly floor: number;
3341
+ readonly slope: number;
3342
+ }
3343
+ declare const GATHERER_DEPTH_TABLE: readonly GathererDepthParams[];
3344
+ declare const GATHERER_DEPTH_MAX_TIER = 10;
3345
+ declare function gathererDepthForTier(tol: number, tier: number): number;
3346
+ declare function computeGathererCapabilities(stats: Record<string, number>, tier: number): {
2844
3347
  yield: number;
2845
3348
  drain: number;
2846
3349
  depth: number;
2847
- speed: number;
2848
3350
  };
2849
3351
  declare function computeLoaderCapabilities(stats: Record<string, number>): {
2850
3352
  mass: number;
@@ -2863,11 +3365,18 @@ declare function computeHaulerCapabilities(stats: Record<string, number>): {
2863
3365
  declare function computeStorageCapabilities(stats: Record<string, number>, baseCapacity: number): {
2864
3366
  capacityBonus: number;
2865
3367
  };
3368
+
3369
+ declare function computeBaseCapacity(itemId: number, stats: Record<string, number>): number;
3370
+ declare function computeWarpCapabilities(stats: Record<string, number>): {
3371
+ range: number;
3372
+ };
2866
3373
  declare function computeWarehouseHullCapabilities(stats: Record<string, number>): {
2867
3374
  hullmass: number;
2868
3375
  capacity: number;
2869
3376
  };
2870
- interface ShipCapabilities {
3377
+ interface ComputedCapabilities {
3378
+ hullmass: number;
3379
+ capacity: number;
2871
3380
  engines?: {
2872
3381
  thrust: number;
2873
3382
  drain: number;
@@ -2880,12 +3389,6 @@ interface ShipCapabilities {
2880
3389
  yield: number;
2881
3390
  drain: number;
2882
3391
  depth: number;
2883
- speed: number;
2884
- };
2885
- hauler?: {
2886
- capacity: number;
2887
- efficiency: number;
2888
- drain: number;
2889
3392
  };
2890
3393
  loaders?: {
2891
3394
  mass: number;
@@ -2896,11 +3399,24 @@ interface ShipCapabilities {
2896
3399
  speed: number;
2897
3400
  drain: number;
2898
3401
  };
3402
+ hauler?: {
3403
+ capacity: number;
3404
+ efficiency: number;
3405
+ drain: number;
3406
+ };
3407
+ warp?: {
3408
+ range: number;
3409
+ };
2899
3410
  }
2900
- declare function computeShipCapabilities(modules: {
2901
- itemId: number;
2902
- stats: bigint;
2903
- }[]): ShipCapabilities;
3411
+ declare function computeEntityCapabilities(stats: Record<string, number>, itemId: number, modules: InstalledModule[], layout: EntitySlot[]): ComputedCapabilities;
3412
+ declare function computeContainerCapabilities(stats: Record<string, number>): {
3413
+ hullmass: number;
3414
+ capacity: number;
3415
+ };
3416
+ declare function computeContainerT2Capabilities(stats: Record<string, number>): {
3417
+ hullmass: number;
3418
+ capacity: number;
3419
+ };
2904
3420
 
2905
3421
  interface ResolvedItemStat {
2906
3422
  key: string;
@@ -3001,21 +3517,102 @@ declare function computeBaseCapacityShip(stats: bigint): number;
3001
3517
  declare function computeBaseCapacityWarehouse(stats: bigint): number;
3002
3518
  declare const computeEngineThrust: (vol: number) => number;
3003
3519
  declare const computeEngineDrain: (thm: number) => number;
3004
- declare const computeGeneratorCap: (res: number) => number;
3005
- declare const computeGeneratorRech: (ref: number) => number;
3520
+ declare const computeGeneratorCap: (com: number) => number;
3521
+ declare const computeGeneratorRech: (fin: number) => number;
3006
3522
  declare const computeGathererYield: (str: number) => number;
3007
3523
  declare const computeGathererDrain: (con: number) => number;
3008
- declare const computeGathererDepth: (tol: number) => number;
3009
- declare const computeGathererSpeed: (ref: number) => number;
3010
- declare const computeLoaderMass: (fin: number) => number;
3524
+ declare const computeGathererDepth: (tol: number, tier: number) => number;
3525
+ declare const computeLoaderMass: (ins: number) => number;
3011
3526
  declare const computeLoaderThrust: (pla: number) => number;
3012
3527
  declare const computeCrafterSpeed: (rea: number) => number;
3013
- declare const computeCrafterDrain: (com: number) => number;
3528
+ declare const computeCrafterDrain: (fin: number) => number;
3529
+ declare const computeHaulerCapacity: (fin: number) => number;
3530
+ declare const computeHaulerEfficiency: (con: number) => number;
3531
+ declare const computeHaulerDrain: (com: number) => number;
3532
+ declare const computeWarpRange: (stat: number) => number;
3014
3533
  declare function entityDisplayName(itemId: number): string;
3015
3534
  declare function moduleDisplayName(itemId: number): string;
3016
3535
  declare function formatModuleLine(slot: number, itemId: number, stats: bigint): string;
3017
3536
  declare function buildEntityDescription(itemId: number, hullStats: bigint, moduleItems: number[], moduleStats: bigint[]): string;
3018
3537
 
3538
+ interface SchemaField {
3539
+ name: string;
3540
+ type: string;
3541
+ }
3542
+ type RawData = Uint8Array | string | number[] | {
3543
+ immutable_serialized_data: Uint8Array | string | number[];
3544
+ };
3545
+ declare function deserializeAtomicData(data: RawData, schema: SchemaField[]): Record<string, unknown>;
3546
+
3547
+ type AtomicAttributeType = 'string' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'int32' | 'image' | 'ipfs' | 'UINT16_VEC' | 'UINT64_VEC';
3548
+ interface ImmutableEntry {
3549
+ first: string;
3550
+ second: [AtomicAttributeType, unknown];
3551
+ }
3552
+ interface ImmutableModuleSlot {
3553
+ type?: number | string | bigint;
3554
+ installed?: {
3555
+ item_id: number | string | bigint;
3556
+ stats: number | string | bigint;
3557
+ };
3558
+ }
3559
+ declare function moduleSlotsForImmutable(modules: Types.module_entry[]): ImmutableModuleSlot[];
3560
+ declare function computeNftImageUrl(item: {
3561
+ item_id: number;
3562
+ stats: bigint;
3563
+ modules: ImmutableModuleSlot[];
3564
+ quantity: number;
3565
+ }, originX: number, originY: number): string;
3566
+ declare function buildResourceImmutable(itemId: number, quantity: number, stats: bigint, originX: number, originY: number): ImmutableEntry[];
3567
+ declare function buildComponentImmutable(itemId: number, quantity: number, stats: bigint, originX: number, originY: number): ImmutableEntry[];
3568
+ declare function buildModuleImmutable(itemId: number, quantity: number, stats: bigint, originX: number, originY: number): ImmutableEntry[];
3569
+ declare function buildEntityImmutable(itemId: number, quantity: number, stats: bigint, originX: number, originY: number, modules: ImmutableModuleSlot[]): ImmutableEntry[];
3570
+ declare function buildImmutableData(itemId: number, quantity: number, stats: bigint, originX: number, originY: number, modules?: ImmutableModuleSlot[]): ImmutableEntry[];
3571
+
3572
+ declare const ATOMICASSETS_ACCOUNT = "atomicassets";
3573
+ declare const SHIPLOAD_COLLECTION = "shipload";
3574
+ interface MintAssetParams {
3575
+ authorizedMinter: NameType;
3576
+ collectionName: NameType;
3577
+ schemaName: NameType;
3578
+ templateId: number;
3579
+ newAssetOwner: NameType;
3580
+ immutableData: ImmutableEntry[];
3581
+ }
3582
+ declare function buildMintAssetAction(params: MintAssetParams): Action;
3583
+ interface AtomicAssetRow {
3584
+ asset_id: string;
3585
+ collection_name: string;
3586
+ schema_name: string;
3587
+ template_id: number;
3588
+ ram_payer?: string;
3589
+ backed_tokens?: string[];
3590
+ immutable_serialized_data: string | number[];
3591
+ mutable_serialized_data?: string | number[];
3592
+ }
3593
+ interface AtomicSchemaRow {
3594
+ schema_name: string;
3595
+ format: SchemaField[];
3596
+ }
3597
+ interface FetchAssetsOptions {
3598
+ collection?: NameType;
3599
+ pageSize?: number;
3600
+ }
3601
+ declare function fetchAtomicAssetsForOwner(client: APIClient, owner: NameType, opts?: FetchAssetsOptions): Promise<AtomicAssetRow[]>;
3602
+ declare function fetchAtomicSchemas(client: APIClient, collection: NameType): Promise<AtomicSchemaRow[]>;
3603
+ interface DecodedAtomicAsset {
3604
+ asset_id: bigint;
3605
+ schema_name: string;
3606
+ template_id: number;
3607
+ item_id: number;
3608
+ quantity: number;
3609
+ stats: string;
3610
+ origin_x: bigint;
3611
+ origin_y: bigint;
3612
+ modules?: NFTModuleSlot[];
3613
+ }
3614
+ declare function decodeAtomicAsset(asset: AtomicAssetRow, schemaFormat: SchemaField[], itemId: number): DecodedAtomicAsset;
3615
+
3019
3616
  type index_NFTInstalledModule = NFTInstalledModule;
3020
3617
  type index_NFTModuleSlot = NFTModuleSlot;
3021
3618
  type index_NFTCargoItem = NFTCargoItem;
@@ -3037,15 +3634,42 @@ declare const index_computeGeneratorRech: typeof computeGeneratorRech;
3037
3634
  declare const index_computeGathererYield: typeof computeGathererYield;
3038
3635
  declare const index_computeGathererDrain: typeof computeGathererDrain;
3039
3636
  declare const index_computeGathererDepth: typeof computeGathererDepth;
3040
- declare const index_computeGathererSpeed: typeof computeGathererSpeed;
3041
3637
  declare const index_computeLoaderMass: typeof computeLoaderMass;
3042
3638
  declare const index_computeLoaderThrust: typeof computeLoaderThrust;
3043
3639
  declare const index_computeCrafterSpeed: typeof computeCrafterSpeed;
3044
3640
  declare const index_computeCrafterDrain: typeof computeCrafterDrain;
3641
+ declare const index_computeHaulerCapacity: typeof computeHaulerCapacity;
3642
+ declare const index_computeHaulerEfficiency: typeof computeHaulerEfficiency;
3643
+ declare const index_computeHaulerDrain: typeof computeHaulerDrain;
3644
+ declare const index_computeWarpRange: typeof computeWarpRange;
3045
3645
  declare const index_entityDisplayName: typeof entityDisplayName;
3046
3646
  declare const index_moduleDisplayName: typeof moduleDisplayName;
3047
3647
  declare const index_formatModuleLine: typeof formatModuleLine;
3048
3648
  declare const index_buildEntityDescription: typeof buildEntityDescription;
3649
+ type index_SchemaField = SchemaField;
3650
+ type index_RawData = RawData;
3651
+ declare const index_deserializeAtomicData: typeof deserializeAtomicData;
3652
+ declare const index_ATOMICASSETS_ACCOUNT: typeof ATOMICASSETS_ACCOUNT;
3653
+ declare const index_SHIPLOAD_COLLECTION: typeof SHIPLOAD_COLLECTION;
3654
+ type index_MintAssetParams = MintAssetParams;
3655
+ declare const index_buildMintAssetAction: typeof buildMintAssetAction;
3656
+ type index_AtomicAssetRow = AtomicAssetRow;
3657
+ type index_AtomicSchemaRow = AtomicSchemaRow;
3658
+ type index_FetchAssetsOptions = FetchAssetsOptions;
3659
+ declare const index_fetchAtomicAssetsForOwner: typeof fetchAtomicAssetsForOwner;
3660
+ declare const index_fetchAtomicSchemas: typeof fetchAtomicSchemas;
3661
+ type index_DecodedAtomicAsset = DecodedAtomicAsset;
3662
+ declare const index_decodeAtomicAsset: typeof decodeAtomicAsset;
3663
+ type index_AtomicAttributeType = AtomicAttributeType;
3664
+ type index_ImmutableEntry = ImmutableEntry;
3665
+ type index_ImmutableModuleSlot = ImmutableModuleSlot;
3666
+ declare const index_moduleSlotsForImmutable: typeof moduleSlotsForImmutable;
3667
+ declare const index_computeNftImageUrl: typeof computeNftImageUrl;
3668
+ declare const index_buildResourceImmutable: typeof buildResourceImmutable;
3669
+ declare const index_buildComponentImmutable: typeof buildComponentImmutable;
3670
+ declare const index_buildModuleImmutable: typeof buildModuleImmutable;
3671
+ declare const index_buildEntityImmutable: typeof buildEntityImmutable;
3672
+ declare const index_buildImmutableData: typeof buildImmutableData;
3049
3673
  declare namespace index {
3050
3674
  export {
3051
3675
  index_NFTInstalledModule as NFTInstalledModule,
@@ -3069,28 +3693,65 @@ declare namespace index {
3069
3693
  index_computeGathererYield as computeGathererYield,
3070
3694
  index_computeGathererDrain as computeGathererDrain,
3071
3695
  index_computeGathererDepth as computeGathererDepth,
3072
- index_computeGathererSpeed as computeGathererSpeed,
3073
3696
  index_computeLoaderMass as computeLoaderMass,
3074
3697
  index_computeLoaderThrust as computeLoaderThrust,
3075
3698
  index_computeCrafterSpeed as computeCrafterSpeed,
3076
3699
  index_computeCrafterDrain as computeCrafterDrain,
3700
+ index_computeHaulerCapacity as computeHaulerCapacity,
3701
+ index_computeHaulerEfficiency as computeHaulerEfficiency,
3702
+ index_computeHaulerDrain as computeHaulerDrain,
3703
+ index_computeWarpRange as computeWarpRange,
3077
3704
  index_entityDisplayName as entityDisplayName,
3078
3705
  index_moduleDisplayName as moduleDisplayName,
3079
3706
  index_formatModuleLine as formatModuleLine,
3080
3707
  index_buildEntityDescription as buildEntityDescription,
3708
+ index_SchemaField as SchemaField,
3709
+ index_RawData as RawData,
3710
+ index_deserializeAtomicData as deserializeAtomicData,
3711
+ index_ATOMICASSETS_ACCOUNT as ATOMICASSETS_ACCOUNT,
3712
+ index_SHIPLOAD_COLLECTION as SHIPLOAD_COLLECTION,
3713
+ index_MintAssetParams as MintAssetParams,
3714
+ index_buildMintAssetAction as buildMintAssetAction,
3715
+ index_AtomicAssetRow as AtomicAssetRow,
3716
+ index_AtomicSchemaRow as AtomicSchemaRow,
3717
+ index_FetchAssetsOptions as FetchAssetsOptions,
3718
+ index_fetchAtomicAssetsForOwner as fetchAtomicAssetsForOwner,
3719
+ index_fetchAtomicSchemas as fetchAtomicSchemas,
3720
+ index_DecodedAtomicAsset as DecodedAtomicAsset,
3721
+ index_decodeAtomicAsset as decodeAtomicAsset,
3722
+ index_AtomicAttributeType as AtomicAttributeType,
3723
+ index_ImmutableEntry as ImmutableEntry,
3724
+ index_ImmutableModuleSlot as ImmutableModuleSlot,
3725
+ index_moduleSlotsForImmutable as moduleSlotsForImmutable,
3726
+ index_computeNftImageUrl as computeNftImageUrl,
3727
+ index_buildResourceImmutable as buildResourceImmutable,
3728
+ index_buildComponentImmutable as buildComponentImmutable,
3729
+ index_buildModuleImmutable as buildModuleImmutable,
3730
+ index_buildEntityImmutable as buildEntityImmutable,
3731
+ index_buildImmutableData as buildImmutableData,
3081
3732
  };
3082
3733
  }
3083
3734
 
3084
3735
  declare function formatMass(kg: number): string;
3085
3736
  declare function formatMassDelta(kg: number): string;
3737
+ declare function formatLocation(loc: {
3738
+ x: number;
3739
+ y: number;
3740
+ }): string;
3741
+ declare function formatMassScaled(kg: number): string;
3086
3742
 
3087
- interface DisplayNameInput {
3088
- itemType: 'resource' | 'component' | 'module' | 'entity' | string;
3743
+ interface DisplayNameInputCommon {
3089
3744
  tier: number;
3090
3745
  category?: ResourceCategory;
3091
3746
  name: string;
3092
3747
  }
3093
- declare function displayName(resolved: DisplayNameInput): string;
3748
+ type DisplayNameInput = (DisplayNameInputCommon & {
3749
+ itemType: 'resource' | 'component' | 'module' | 'entity' | string;
3750
+ }) | (DisplayNameInputCommon & {
3751
+ type: string;
3752
+ });
3753
+ declare function baseName(item: DisplayNameInput): string;
3754
+ declare function displayName(item: DisplayNameInput): string;
3094
3755
  interface DescribeOptions {
3095
3756
  translate?: (key: string) => string;
3096
3757
  formatNumber?: (n: number) => string;
@@ -3141,23 +3802,27 @@ declare class WebSocketConnection {
3141
3802
  get isConnected(): boolean;
3142
3803
  }
3143
3804
 
3144
- declare function mapEntity(ei: Types.entity_info): Ship | Warehouse | Container;
3805
+ declare function mapEntity(ei: Types.entity_info): Entity$1;
3145
3806
  declare function parseWireEntity(raw: WireEntity): Types.entity_info;
3146
3807
 
3147
3808
  declare function setSubscriptionsDebug(on: boolean): void;
3148
3809
  declare function isSubscriptionsDebugEnabled(): boolean;
3149
3810
 
3811
+ type Ship = Entity$1;
3812
+ type Warehouse = Entity$1;
3813
+ type Container = Entity$1;
3814
+ type Extractor = Entity$1;
3815
+ type Factory = Entity$1;
3816
+ type Nexus = Entity$1;
3817
+
3150
3818
  type movement_stats = Types.movement_stats;
3151
3819
  type energy_stats = Types.energy_stats;
3152
3820
  type loader_stats = Types.loader_stats;
3153
3821
  type task = Types.task;
3154
3822
  type cargo_item = Types.cargo_item;
3155
- type warehouse_row = Types.warehouse_row;
3156
- type container_row = Types.container_row;
3823
+ type entity_row = Types.entity_row;
3157
3824
  type gatherer_stats = Types.gatherer_stats;
3158
3825
  type location_static = Types.location_static;
3159
- type location_epoch = Types.location_epoch;
3160
3826
  type location_derived = Types.location_derived;
3161
- type location_row = Types.location_row;
3162
3827
 
3163
- export { AckMessage, ActionsManager, AnyEntity, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, CANCEL_CONTAINS_GROUPED_TASK, CANCEL_PAIRED_HAS_PENDING, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, CONTAINER_CAPACITY_EXCEEDED, CONTAINER_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CapabilityAttribute, CapabilityInput, CargoData, CargoMassInfo, CargoStack, CategoryIconShape, CategoryInfo, CategoryStacks, ClientMessage, ConnectionState, Container, ContainerEntity, ContainerStateInput, Coordinates, CoordinatesType, CraftedItemCategory, CrafterCapability, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DerivedStratum, DescribeOptions, Distance, ENTITY_CAPACITY_EXCEEDED, ENTITY_NO_CRAFTER, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EnergyCapability, EntitiesManager, Entity, EntityCapabilities, EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntitySubscriptionHandle, EntityType, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, GathererCapability, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CARGO_ARM, ITEM_CARGO_LINING, ITEM_CARGO_LINING_T2, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_ENGINE_T1, ITEM_FOCUSING_ARRAY, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_HULL_PLATES, ITEM_HULL_PLATES_T2, ITEM_LOADER_T1, ITEM_MATTER_CONDUIT, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_POWER_CELL, ITEM_REACTION_CHAMBER, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_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, ItemType, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LoadTimeBreakdown, LoaderCapability, Location, LocationStratum, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MODULE_ANY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TYPE_MISMATCH, MODULE_WARP, MassCapability, ModuleDescription, ModuleEntry, ModuleType, MovementCapability, index as NFT, NFTCargoItem, NFTCommonBase, NFTInstalledModule, NFTModuleSlot, NO_SCHEDULE, NamedStats, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, PackedModule, PackedModuleInput, PingMessage, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectableSnapshot, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, Recipe, RecipeInput, RecipeInputCategory, RecipeInputItemId, RecipeSlotInput, RenderDescriptionOptions, ReserveTier, ResolvedAttributeGroup, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedModuleSlot, ResourceCategory, ResourceStats, SHIP_ALREADY_THERE, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_CAPACITY_EXCEEDED, 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, STARTER_ALREADY_CLAIMED, ScheduleAccessor, ScheduleCapability, ScheduleData, Scheduleable, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipCapabilities, ShipEntity, ShipLike, ShipStateInput, Shipload, SnapshotMessage, StackInput, StatDefinition, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, TIER_ADJECTIVES, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, TextSpan, TierRange, TransferEntity, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UpdateBoundsMessage, UpdateMessage, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_CAPACITY_EXCEEDED, WAREHOUSE_NOT_FOUND, WAREHOUSE_Z, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, Warehouse, WarehouseEntity, WarehouseStateInput, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, 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, cargo_item, categoryColors, categoryFromIndex, categoryIconShapes, categoryIcons, categoryLabel, categoryLabelFromIndex, componentIcon, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererSpeed, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeHaulPenalty, computeHaulerCapabilities, computeHaulerDrain, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeShipCapabilities, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseCapabilities, computeWarehouseHullCapabilities, container_row, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeCraftedItemStats, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationEpoch, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStrata, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, encodeGatheredCargoStats, encodeStats, energyPercent, energy_stats, entityDisplayName, estimateDealTravelTime, estimateTravelTime, findItemByCategoryAndTier, findNearbyPlanets, formatMass, formatMassDelta, formatModuleLine, formatTier, gatherer_stats, getCapabilityAttributes, getCategoryInfo, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEligibleResources, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getItem, getItems, getLocationCandidates, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getRecipe, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, isCraftedItem, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isModuleItem, isRelatedItem, isSubscriptionsDebugEnabled, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, lerp, loader_stats, location_derived, location_epoch, location_row, location_static, makeContainer, makeShip, makeWarehouse, mapEntity, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, needsRecharge, parseWireEntity, projectEntity, projectEntityAt, projectFromCurrentState, projectFromCurrentStateAt, readCommonBase, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveStats, rollTier, rollWithinTier, rotation, schedule, setSubscriptionsDebug, stackKey, stackToCargoItem, stacksEqual, statMappings, task, tierColors, tierLabel, tierLabels, toLocation, typeLabel, validateSchedule, warehouse_row };
3828
+ export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, AckMessage, ActionsManager, AnyEntity, AtomicAssetRow, AtomicAttributeType, AtomicSchemaRow, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, BuildMethod, BuildState, BuildableTarget, CANCEL_CONTAINS_GROUPED_TASK, CANCEL_PAIRED_HAS_PENDING, CAP_DEMOLISH, CAP_MODULES, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CapabilityAttribute, CapabilityInput, CargoData, CargoMassInfo, CargoStack, CategoryIconShape, CategoryInfo, CategoryStacks, ClientMessage, ComputedCapabilities, ConnectionState, ConstructionManager, Container, ContainerEntity, Coordinates, CoordinatesType, CraftedItemCategory, CrafterCapability, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DecodedAtomicAsset, DerivedStratum, DescribeOptions, Distance, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EffectiveReserveInput, EnergyCapability, EntitiesManager, Entity$1 as Entity, EntityCapabilities, EntityClass, EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntityStateInput, EntitySubscriptionHandle, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, Extractor, Factory, FetchAssetsOptions, FinalizerCapability, FinalizerEntityRef, FloatPosition, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_NOT_ENOUGH_ENERGY, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, GathererCapability, GathererDepthParams, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_CERAMIC, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DOES_NOT_EXIST, ITEM_EMITTER, ITEM_ENGINE_T1, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GENERATOR_T1, ITEM_HAULER_T1, ITEM_LOADER_T1, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_REACTOR, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESONATOR, ITEM_SENSOR, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ImmutableEntry, ImmutableModuleSlot, InstalledModule, InventoryAccessor, Item, ItemType, KindMeta, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LoadTimeBreakdown, LoaderCapability, Location, LocationStratum, LocationType, LocationsManager, MAX_ORBITAL_ALTITUDE, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE, MODULE_ANY, MODULE_BATTERY, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, MassCapability, MintAssetParams, ModuleDescription, ModuleEntry, ModuleType, MovementCapability, index as NFT, NFTCargoItem, NFTCommonBase, NFTInstalledModule, NFTModuleSlot, NO_SCHEDULE, NamedStats, Nexus, NftConfigForItem, NftManager, OwnerSubscriptionHandle, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, PackedModule, PackedModuleInput, PingMessage, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectableSnapshot, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RawData, Recipe, RecipeInput, RecipeSlotInput, RenderDescriptionOptions, ReserveTier, ResolvedAttributeGroup, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedModuleSlot, ResourceCategory, ResourceStats, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, ScheduleAccessor, ScheduleCapability, ScheduleData, Scheduleable, SchemaField, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipEntity, ShipLike, Shipload, SlotConsumer, SlotConsumerKind, SnapshotMessage, SourceCargoStack, SourceEntityRef, StackInput, StatDefinition, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskCargoChange, TaskCargoDirection, TaskType, TemplateMeta, TextSpan, TierRange, TransferEntity, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UpdateBoundsMessage, UpdateMessage, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, Warehouse, WarehouseEntity, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, allBuildableItems, allPlotBuildableItems, availableBuildMethods, availableCapacity$1 as availableCapacity, availableCapacityFromMass, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcLoadDuration, calcStacksMass, calc_acceleration, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_loader_acceleration, calc_loader_flighttime, calc_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, cargoItem, cargoItemToStack, cargoRef, cargoUtils, cargo_item, categoryColors, categoryFromIndex, categoryIconShapes, categoryIcons, categoryLabel, categoryLabelFromIndex, componentIcon, computeBaseCapacity, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeComponentStats, computeContainerCapabilities, computeContainerT2Capabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerDrain$1 as computeHaulerDrain, computeHaulerEfficiency, computeInputMass, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computeShipHullCapabilities, computeStorageCapabilities, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAtomicAsset, decodeCraftedItemStats, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, encodeGatheredCargoStats, encodeStats, energyPercent, energy_stats, entityDisplayName, entity_row, estimateDealTravelTime, estimateTravelTime, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gathererDepthForTier, gatherer_stats, getCapabilityAttributes, getCategoryInfo, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getRecipe, getResourceTier, getResourceWeight, getResources, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasLoaders, hasMass, hasSchedule, hasSpace$1 as hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, interpolateFlightPosition, isBuildable, isContainer, isCraftedItem, isExtractor, isFactory, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isWarehouse, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, kindCan, lerp, loader_stats, location_derived, location_static, makeEntity, mapEntity, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, needsRecharge, parseWireEntity, projectEntity, projectEntityAt, projectFromCurrentState, projectFromCurrentStateAt, readCommonBase, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveStats, rollTier, rollWithinTier, rotation, schedule, setSubscriptionsDebug, stackKey, stackToCargoItem, stacksEqual, task, taskCargoChanges, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, validateSchedule, yieldThresholdAt };