@shipload/sdk 1.0.0-next.51 → 1.0.0-next.52

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 (58) hide show
  1. package/lib/shipload.d.ts +470 -157
  2. package/lib/shipload.js +2309 -492
  3. package/lib/shipload.js.map +1 -1
  4. package/lib/shipload.m.js +2279 -491
  5. package/lib/shipload.m.js.map +1 -1
  6. package/lib/testing.d.ts +123 -8
  7. package/lib/testing.js +450 -19
  8. package/lib/testing.js.map +1 -1
  9. package/lib/testing.m.js +451 -20
  10. package/lib/testing.m.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/capabilities/crafting.ts +10 -1
  13. package/src/capabilities/gathering.ts +1 -1
  14. package/src/capabilities/hauling.ts +0 -5
  15. package/src/capabilities/modules.ts +6 -0
  16. package/src/capabilities/movement.ts +1 -1
  17. package/src/contracts/server.ts +293 -13
  18. package/src/data/capabilities.ts +11 -2
  19. package/src/data/entities.json +235 -20
  20. package/src/data/item-ids.ts +10 -0
  21. package/src/data/items.json +61 -0
  22. package/src/data/kind-registry.json +53 -1
  23. package/src/data/kind-registry.ts +5 -0
  24. package/src/data/metadata.ts +74 -5
  25. package/src/data/recipes-runtime.ts +1 -0
  26. package/src/data/recipes.json +887 -118
  27. package/src/derivation/capabilities.test.ts +81 -4
  28. package/src/derivation/capabilities.ts +162 -57
  29. package/src/derivation/crafting.ts +2 -0
  30. package/src/derivation/recipe-usage.test.ts +10 -7
  31. package/src/derivation/rollups.ts +16 -0
  32. package/src/derivation/stat-scaling.ts +12 -0
  33. package/src/entities/makers.ts +10 -1
  34. package/src/index-module.ts +29 -3
  35. package/src/managers/actions.ts +77 -46
  36. package/src/managers/construction-types.ts +2 -2
  37. package/src/managers/construction.ts +15 -15
  38. package/src/managers/plot.ts +1 -1
  39. package/src/nft/buildImmutableData.ts +55 -9
  40. package/src/nft/description.ts +99 -36
  41. package/src/planner/planner.test.ts +50 -41
  42. package/src/resolution/resolve-item.test.ts +1 -1
  43. package/src/resolution/resolve-item.ts +26 -11
  44. package/src/scheduling/availability.ts +7 -6
  45. package/src/scheduling/cancel.test.ts +40 -6
  46. package/src/scheduling/cancel.ts +21 -29
  47. package/src/scheduling/jobs.ts +71 -0
  48. package/src/scheduling/lanes.ts +29 -0
  49. package/src/scheduling/projection.ts +42 -25
  50. package/src/scheduling/task-cargo.ts +1 -1
  51. package/src/testing/projection-parity.ts +2 -2
  52. package/src/travel/reach.ts +4 -6
  53. package/src/travel/route-planner.ts +60 -49
  54. package/src/travel/route-simulator.ts +3 -7
  55. package/src/travel/travel.ts +14 -5
  56. package/src/types/capabilities.ts +9 -3
  57. package/src/types.ts +5 -3
  58. package/src/managers/flatten-gather-plan.test.ts +0 -80
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@shipload/sdk",
3
3
  "description": "SDKs for Shipload",
4
- "version": "1.0.0-next.51",
4
+ "version": "1.0.0-next.52",
5
5
  "homepage": "https://github.com/shipload/toolkit/tree/master/packages/sdk",
6
6
  "repository": {
7
7
  "type": "git",
@@ -17,5 +17,14 @@ export function calc_craft_duration(speed: number, totalInputMass: number): UInt
17
17
 
18
18
  export function calc_craft_energy(drain: number, totalInputMass: number): UInt32 {
19
19
  const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR)
20
- return UInt32.from(Math.min(Math.max(raw + 1, 1), 4294967295))
20
+ return UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295))
21
+ }
22
+
23
+ // Craft-identical today; forked so build balance can diverge from craft without touching it.
24
+ export function calc_build_duration(speed: number, totalInputMass: number): UInt32 {
25
+ return calc_craft_duration(speed, totalInputMass)
26
+ }
27
+
28
+ export function calc_build_energy(drain: number, totalInputMass: number): UInt32 {
29
+ return calc_craft_energy(drain, totalInputMass)
21
30
  }
@@ -50,5 +50,5 @@ export function calc_gather_rate(
50
50
  export function calc_gather_energy(gatherer: GathererStats, duration: number): UInt32 {
51
51
  if (duration <= 0) return UInt32.from(0)
52
52
  const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION)
53
- return UInt32.from(Math.min(Math.max(raw, 1), 4294967295))
53
+ return UInt32.from(Math.min(Math.max(raw, 1000), 4294967295))
54
54
  }
@@ -1,6 +1,5 @@
1
1
  const BASE_HAUL_PENALTY_MILLI = 300
2
2
  const HAULER_EFFICIENCY_DENOM = 10000
3
- const PRECISION = 10000
4
3
 
5
4
  export function computeHaulPenalty(
6
5
  totalThrust: number,
@@ -16,7 +15,3 @@ export function computeHaulPenalty(
16
15
  )
17
16
  return Math.floor((totalThrust * 1000) / penaltyMilli)
18
17
  }
19
-
20
- export function computeHaulerDrain(distance: number, drain: number, haulCount: number): number {
21
- return Math.floor(distance / PRECISION) * drain * haulCount
22
- }
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  ITEM_BATTERY_T1,
3
+ ITEM_BUILDER_T1,
3
4
  ITEM_CRAFTER_T1,
4
5
  ITEM_ENGINE_T1,
5
6
  ITEM_GATHERER_T1,
@@ -26,6 +27,7 @@ export const MODULE_LAUNCHER = 7
26
27
  export const MODULE_STORAGE = 8
27
28
  export const MODULE_HAULER = 9
28
29
  export const MODULE_BATTERY = 10
30
+ export const MODULE_BUILDER = 12
29
31
 
30
32
  export interface PackedModule {
31
33
  itemId: number
@@ -54,6 +56,8 @@ export function getModuleCapabilityType(itemId: number): number {
54
56
  return MODULE_LOADER
55
57
  case ITEM_CRAFTER_T1:
56
58
  return MODULE_CRAFTER
59
+ case ITEM_BUILDER_T1:
60
+ return MODULE_BUILDER
57
61
  case ITEM_STORAGE_T1:
58
62
  return MODULE_STORAGE
59
63
  case ITEM_HAULER_T1:
@@ -90,6 +94,8 @@ export function moduleSlotTypeToCode(slotType: string): number {
90
94
  return MODULE_WARP
91
95
  case 'crafter':
92
96
  return MODULE_CRAFTER
97
+ case 'builder':
98
+ return MODULE_BUILDER
93
99
  case 'launcher':
94
100
  return MODULE_LAUNCHER
95
101
  case 'storage':
@@ -9,7 +9,7 @@ export function maxTravelDistance(entity: MovementCapability): UInt32 {
9
9
  }
10
10
 
11
11
  export function calcEnergyUsage(entity: MovementCapability, distance: UInt64): UInt64 {
12
- return distance.dividing(PRECISION).multiplying(entity.engines.drain)
12
+ return distance.multiplying(entity.engines.drain).dividing(PRECISION)
13
13
  }
14
14
 
15
15
  export function hasEnergyForDistance(