@shipload/sdk 1.0.0-next.51 → 1.0.0-next.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/shipload.d.ts +471 -158
- package/lib/shipload.js +2320 -485
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2290 -484
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +123 -8
- package/lib/testing.js +450 -19
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +451 -20
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/crafting.ts +10 -1
- package/src/capabilities/gathering.ts +1 -1
- package/src/capabilities/hauling.ts +0 -5
- package/src/capabilities/modules.ts +6 -0
- package/src/capabilities/movement.ts +1 -1
- package/src/contracts/server.ts +293 -13
- package/src/data/capabilities.ts +18 -2
- package/src/data/capability-formulas.ts +5 -0
- package/src/data/entities.json +235 -20
- package/src/data/item-ids.ts +10 -0
- package/src/data/items.json +61 -0
- package/src/data/kind-registry.json +53 -1
- package/src/data/kind-registry.ts +5 -0
- package/src/data/metadata.ts +74 -5
- package/src/data/recipes-runtime.ts +1 -0
- package/src/data/recipes.json +895 -119
- package/src/derivation/capabilities.test.ts +105 -4
- package/src/derivation/capabilities.ts +162 -57
- package/src/derivation/capability-mappings.ts +2 -0
- package/src/derivation/crafting.ts +2 -0
- package/src/derivation/recipe-usage.test.ts +10 -7
- package/src/derivation/rollups.ts +16 -0
- package/src/derivation/stat-scaling.ts +12 -0
- package/src/entities/makers.ts +10 -1
- package/src/index-module.ts +29 -3
- package/src/managers/actions.ts +77 -46
- package/src/managers/construction-types.ts +2 -2
- package/src/managers/construction.ts +15 -15
- package/src/managers/plot.ts +1 -1
- package/src/nft/buildImmutableData.ts +55 -9
- package/src/nft/description.ts +99 -36
- package/src/planner/planner.test.ts +50 -41
- package/src/resolution/resolve-item.test.ts +1 -1
- package/src/resolution/resolve-item.ts +26 -11
- package/src/scheduling/availability.ts +7 -6
- package/src/scheduling/cancel.test.ts +40 -6
- package/src/scheduling/cancel.ts +21 -29
- package/src/scheduling/jobs.ts +71 -0
- package/src/scheduling/lanes.ts +29 -0
- package/src/scheduling/projection.ts +42 -25
- package/src/scheduling/task-cargo.ts +1 -1
- package/src/testing/projection-parity.ts +2 -2
- package/src/travel/reach.ts +4 -6
- package/src/travel/route-planner.ts +60 -49
- package/src/travel/route-simulator.ts +3 -7
- package/src/travel/travel.ts +14 -5
- package/src/types/capabilities.ts +9 -3
- package/src/types.ts +5 -3
- package/src/managers/flatten-gather-plan.test.ts +0 -80
package/package.json
CHANGED
|
@@ -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,
|
|
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,
|
|
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.
|
|
12
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION)
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export function hasEnergyForDistance(
|