@shipload/sdk 1.0.0-next.56 → 1.0.0-next.57
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 +45 -25
- package/lib/shipload.js +149 -18
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +146 -19
- package/lib/shipload.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/craftable.test.ts +82 -0
- package/src/capabilities/craftable.ts +36 -5
- package/src/derivation/crafting.test.ts +17 -0
- package/src/derivation/crafting.ts +18 -0
- package/src/index-module.ts +5 -0
- package/src/scheduling/availability.test.ts +157 -0
- package/src/scheduling/availability.ts +94 -13
- package/src/scheduling/cancel.test.ts +161 -1
- package/src/scheduling/cancel.ts +58 -5
package/lib/shipload.d.ts
CHANGED
|
@@ -3232,6 +3232,7 @@ interface CategoryStacks {
|
|
|
3232
3232
|
declare function encodeStats(values: number[]): bigint;
|
|
3233
3233
|
declare function decodeStat(stats: bigint, index: number): number;
|
|
3234
3234
|
declare function decodeStats(stats: bigint, count: number): number[];
|
|
3235
|
+
declare function usedInputStatKeys(outputItemId: number): string[][];
|
|
3235
3236
|
declare function decodeCraftedItemStats(itemId: number, stats: bigint): Record<string, number>;
|
|
3236
3237
|
declare function blendStacks(stacks: StackInput[], statKey: string): number;
|
|
3237
3238
|
declare function blendComponentStacks(stacks: {
|
|
@@ -4225,7 +4226,7 @@ declare function simulateRoute(movers: RouteMoverInput[], waypoints: {
|
|
|
4225
4226
|
y: number;
|
|
4226
4227
|
}, recharge: boolean): RouteSim;
|
|
4227
4228
|
|
|
4228
|
-
type ModuleEntry$
|
|
4229
|
+
type ModuleEntry$3 = Types.module_entry;
|
|
4229
4230
|
type Lane = Types.lane;
|
|
4230
4231
|
type Schedule = Types.schedule;
|
|
4231
4232
|
interface ResolvedGathererLane {
|
|
@@ -4255,12 +4256,12 @@ interface ResolvedLoaderLane {
|
|
|
4255
4256
|
valid: boolean;
|
|
4256
4257
|
}
|
|
4257
4258
|
declare function laneKeyForModule(slotIndex: number): number;
|
|
4258
|
-
declare function resolveLaneGatherer(modules: ModuleEntry$
|
|
4259
|
-
declare function selectGatherLane(modules: ModuleEntry$
|
|
4260
|
-
declare function resolveLaneCrafter(modules: ModuleEntry$
|
|
4261
|
-
declare function resolveLaneBuilder(modules: ModuleEntry$
|
|
4262
|
-
declare function resolveLaneLoader(modules: ModuleEntry$
|
|
4263
|
-
declare function workerLaneKey(modules: ModuleEntry$
|
|
4259
|
+
declare function resolveLaneGatherer(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedGathererLane;
|
|
4260
|
+
declare function selectGatherLane(modules: ModuleEntry$3[], entityItemId: number, lanes: Lane[], stratum: number, explicitSlot?: number): number;
|
|
4261
|
+
declare function resolveLaneCrafter(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedCrafterLane;
|
|
4262
|
+
declare function resolveLaneBuilder(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedBuilderLane;
|
|
4263
|
+
declare function resolveLaneLoader(modules: ModuleEntry$3[], entityItemId: number, laneKey: number): ResolvedLoaderLane;
|
|
4264
|
+
declare function workerLaneKey(modules: ModuleEntry$3[], moduleSubtype: ModuleType, lanes: Lane[], stratum?: number): number;
|
|
4264
4265
|
declare function rawScheduleEnd(schedule: Schedule): Date;
|
|
4265
4266
|
declare function candidateLaneCompletesAt(entity: ScheduleData, laneKey: number, durationSec: number, now: Date): Date;
|
|
4266
4267
|
|
|
@@ -4410,21 +4411,52 @@ type IdleResolveTarget = ScheduleData & {
|
|
|
4410
4411
|
};
|
|
4411
4412
|
declare function composeIdleResolve(blocker: IdleResolveTarget, action: Action, actions: ActionsManager, now: Date, lookupCounterpart?: CounterpartLookup): Action[];
|
|
4412
4413
|
|
|
4414
|
+
type Task = Types.task;
|
|
4415
|
+
type Coupling = Types.coupling;
|
|
4416
|
+
type CargoItem$2 = Types.cargo_item;
|
|
4417
|
+
type ModuleEntry$2 = Types.module_entry;
|
|
4418
|
+
interface CargoEffect {
|
|
4419
|
+
added: CargoItem$2[];
|
|
4420
|
+
removed: CargoItem$2[];
|
|
4421
|
+
}
|
|
4422
|
+
interface AvailabilityInput extends ScheduleData {
|
|
4423
|
+
cargo: CargoItem$2[];
|
|
4424
|
+
}
|
|
4425
|
+
interface CargoInput {
|
|
4426
|
+
itemId: number;
|
|
4427
|
+
stats: bigint;
|
|
4428
|
+
modules?: ModuleEntry$2[];
|
|
4429
|
+
quantity: number;
|
|
4430
|
+
}
|
|
4431
|
+
interface IncomingSource {
|
|
4432
|
+
holdId: string;
|
|
4433
|
+
until: Date;
|
|
4434
|
+
items: CargoItem$2[];
|
|
4435
|
+
}
|
|
4436
|
+
declare function calcCounterpartDelivery(task: Task, coupling: Coupling): CargoItem$2[];
|
|
4437
|
+
declare function taskCargoEffect(task: Task): CargoEffect;
|
|
4438
|
+
declare function cargoKey(item: CargoItem$2): string;
|
|
4439
|
+
declare function cargoInputKey(input: CargoInput): string;
|
|
4440
|
+
declare function projectedCargoAvailableAt(entity: AvailabilityInput, at: Date, incoming?: readonly IncomingSource[]): Map<string, bigint>;
|
|
4441
|
+
declare function cargoReadyAt(entity: AvailabilityInput, inputs: readonly CargoInput[], incoming?: readonly IncomingSource[]): Date;
|
|
4442
|
+
declare function availableForItem(avail: Map<string, bigint>, itemId: number): bigint;
|
|
4443
|
+
|
|
4413
4444
|
declare enum CancelBlockReason {
|
|
4414
4445
|
TASK_NEVER = "TASK_NEVER",
|
|
4415
4446
|
BEFORE_START_RUNNING = "BEFORE_START_RUNNING",
|
|
4416
4447
|
DONE = "DONE",
|
|
4417
4448
|
CONTAINS_LINKED_TASK = "CONTAINS_LINKED_TASK",
|
|
4418
4449
|
WOULD_STRAND = "WOULD_STRAND",
|
|
4450
|
+
WOULD_STRAND_COUNTERPART = "WOULD_STRAND_COUNTERPART",
|
|
4419
4451
|
WOULD_OVERFILL = "WOULD_OVERFILL",
|
|
4420
4452
|
NOT_OWNER = "NOT_OWNER"
|
|
4421
4453
|
}
|
|
4422
4454
|
type EntityInfo = InstanceType<typeof Types.entity_info>;
|
|
4423
4455
|
type EntityRef = InstanceType<typeof Types.entity_ref>;
|
|
4424
|
-
type CargoItem$
|
|
4456
|
+
type CargoItem$1 = InstanceType<typeof Types.cargo_item>;
|
|
4425
4457
|
interface CancelRefund {
|
|
4426
4458
|
giver: EntityRef;
|
|
4427
|
-
cargo: CargoItem$
|
|
4459
|
+
cargo: CargoItem$1[];
|
|
4428
4460
|
}
|
|
4429
4461
|
interface CancelReleasedHold {
|
|
4430
4462
|
counterpart: EntityRef;
|
|
@@ -4442,6 +4474,7 @@ interface CancelEffects {
|
|
|
4442
4474
|
interface CancelPlan {
|
|
4443
4475
|
ok: boolean;
|
|
4444
4476
|
blockedReason?: CancelBlockReason;
|
|
4477
|
+
blockedByCounterpart?: EntityRef;
|
|
4445
4478
|
range: {
|
|
4446
4479
|
count: number;
|
|
4447
4480
|
taskIndices: number[];
|
|
@@ -4451,6 +4484,7 @@ interface CancelPlan {
|
|
|
4451
4484
|
interface CancelEligibilityInput {
|
|
4452
4485
|
now: Date;
|
|
4453
4486
|
counterparts?: Map<string, EntityInfo>;
|
|
4487
|
+
counterpartIncoming?: Map<string, readonly IncomingSource[]>;
|
|
4454
4488
|
}
|
|
4455
4489
|
declare function cancelEligibility(entity: EntityInfo, laneKey: number, fromTaskIndex: number, input: CancelEligibilityInput): CancelPlan;
|
|
4456
4490
|
|
|
@@ -4520,27 +4554,13 @@ declare function receiveFits(dest: UnwrapDestination & ScheduleData & {
|
|
|
4520
4554
|
}[];
|
|
4521
4555
|
}, item: UnwrapItem, now: Date): boolean;
|
|
4522
4556
|
|
|
4523
|
-
type Task = Types.task;
|
|
4524
|
-
type CargoItem$1 = Types.cargo_item;
|
|
4525
|
-
interface CargoEffect {
|
|
4526
|
-
added: CargoItem$1[];
|
|
4527
|
-
removed: CargoItem$1[];
|
|
4528
|
-
}
|
|
4529
|
-
interface AvailabilityInput extends ScheduleData {
|
|
4530
|
-
cargo: CargoItem$1[];
|
|
4531
|
-
}
|
|
4532
|
-
declare function taskCargoEffect(task: Task): CargoEffect;
|
|
4533
|
-
declare function projectedCargoAvailableAt(entity: AvailabilityInput, at: Date): Map<string, bigint>;
|
|
4534
|
-
declare function cargoReadyAt(entity: AvailabilityInput, inputItemIds: readonly number[]): Date;
|
|
4535
|
-
declare function availableForItem(avail: Map<string, bigint>, itemId: number): bigint;
|
|
4536
|
-
|
|
4537
4557
|
type CargoItem = Types.cargo_item;
|
|
4538
4558
|
type ModuleEntry$1 = Types.module_entry;
|
|
4539
4559
|
interface CraftableEntity extends ScheduleData {
|
|
4540
4560
|
cargo: CargoItem[];
|
|
4541
4561
|
modules: ModuleEntry$1[];
|
|
4542
4562
|
}
|
|
4543
|
-
declare function maxCraftable(entity: CraftableEntity, recipe: Recipe, crafterSpeed: number, now: Date): number;
|
|
4563
|
+
declare function maxCraftable(entity: CraftableEntity, recipe: Recipe, crafterSpeed: number, now: Date, incoming?: readonly IncomingSource[]): number;
|
|
4544
4564
|
|
|
4545
4565
|
declare function energyAtTime(entity: Projectable, now: Date): number;
|
|
4546
4566
|
|
|
@@ -5449,4 +5469,4 @@ type entity_row = Types.entity_row;
|
|
|
5449
5469
|
type location_static = Types.location_static;
|
|
5450
5470
|
type location_derived = Types.location_derived;
|
|
5451
5471
|
|
|
5452
|
-
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, AckMessage, ActionsManager, AnyEntity, AtomicAssetRow, AtomicAttributeType, AtomicSchemaRow, BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, BroadEntitySubscriptionFilter, BuildGatherPlanOpts, BuildMethod, BuildState, BuildableTarget, BuilderStats, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, 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, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, CancelEffects, CancelEligibilityInput, CancelPlan, CancelRefund, CancelReleasedHold, CapabilityAttribute, CapabilityAttributeRow, CapabilityInput, CargoData, CargoMassInfo, CargoStack, CategoryInfo, CategoryStacks, ClientMessage, Cluster, ClusterCell, ClusterCellWire, ClusterDeltaMessage, ClusterManager, ClusterSlotType, ComputedCapabilities, ConnectionState, ConstructionManager, Container, ContainerEntity, Coord, CoordinateAddress, Coordinates, CoordinatesType, CounterpartLookup, CraftedItemCategory, CrafterCapability, CrafterStats, DEFAULT_BASE_HULLMASS, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DecodedAtomicAsset, DemandRow, DerivedLoaders, DerivedStratum, DescribeOptions, DisplayNameResult, Distance, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, 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, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EffectiveReserveInput, EnergyCapability, EntitiesManager, EntitiesSubscriptionHandle, Entity$1 as Entity, EntityCapabilities, EntityClass, EntityDeletedMessage, EntityInfo$2 as EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntityStateInput, EntitySubscriptionFilter, EntitySubscriptionHandle, EntitySubscriptionHandlers, EntitySubscriptionMeta, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, ExactEntitySubscriptionFilter, Extractor, Factory, FetchAssetsOptions, FillCap, FinalizerCapability, FinalizerEntityRef, FloatPosition, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, 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, GatherCycle, GatherLimpet, GatherPlan, GatherPlanEntity, GathererCapability, GathererDepthParams, GathererStats, GridCell, HAULER_EFFICIENCY_DENOM, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, 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_BUILDER_T1, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, 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_DREDGER_T1_PACKED, 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_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, 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_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1_PACKED, ITEM_PROSPECTOR_T1_PACKED, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, 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_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TENDER_T1_PACKED, ITEM_TUG_T1_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WORKSHOP_T1_PACKED, ITEM_WRANGLER_T1_PACKED, ITEM_WRIGHT_T1_PACKED, IdleResolveTarget, ImmutableEntry, ImmutableModuleSlot, InboundTransfer, InstalledModule, InventoryAccessor, Item, ItemType, JOB_QUEUE_CAP, JobLane, JobLaneEntry, JobWindow, KindMeta, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LanePlanEntry, LaneView, LaunchNumericInput, LaunchQuote, LaunchQuoteCatcher, LaunchQuoteLauncher, LaunchStatsInput, LoadTimeBreakdown, LoaderCapability, LoaderStats, Location, LocationStratum, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_BUILDER, 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_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, 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, Neighbor, Nexus, NftConfigForItem, NftManager, OrderedTask, 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, PlanRouteParams, PlanTarget, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerRosterEntry, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RawData, ReachStats, Recipe, RecipeConsumer, RecipeInput, RecipeSlotInput, RefitOp, RenderDescriptionOptions, Reservation, ReserveTier, ResolvedAttributeGroup, ResolvedCrafterLane, ResolvedEvent, ResolvedGathererLane, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedLoaderLane, ResolvedModuleSlot, ResourceCategory, ResourceDemand, ResourceStats, RouteFailure, RouteFailureReason, RouteHeuristicCost, RouteLegCost, RouteLegInput, RouteLegSim, RouteMoverInput, RoutePlan, RouteResult, RouteSim, SECTORS_PER_AXIS, SECTOR_DIV, 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, STAR_STEP, ScanProvider, ScheduleAccessor, ScheduleCapability, ScheduleData, ScheduledBuild, SchemaField, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipEntity, ShipLike, Shipload, SlotConsumer, SlotConsumerKind, SnapshotMessage, SourceCargoStack, SourceEntityRef, StackInput, StarSortable, StatDefinition, StatFlow, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, SystemGraph, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskCargoChange, TaskCargoDirection, TaskType, TemplateMeta, TextSpan, TierRange, TransferEntity, TravelDrainBreakdown, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UnwrapDestination, UnwrapItem, UpdateBoundsMessage, UpdateMessage, ValidateDisplayNameOptions, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, Warehouse, WarehouseEntity, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, WrapDeposit, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity$1 as availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoItem, cargoItemToStack, cargoReadyAt, cargoRef, cargoUtils, cargo_item, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, coupling, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, energy_stats, entityDisplayName, entity_row, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, 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, incomingHoldMass, interpolateFlightPosition, isBuildable, isConstructionDock, isContainer, isCraftedItem, isExtractor, isFactory, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, jobsToLanes, kindCan, lane, laneKeyForModule, lerp, location_derived, location_static, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, pickFabricator, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, task, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
|
|
5472
|
+
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, AckMessage, ActionsManager, AnyEntity, AtomicAssetRow, AtomicAttributeType, AtomicSchemaRow, BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BoundingBox, BoundsDeltaMessage, BoundsSubscriptionHandle, BroadEntitySubscriptionFilter, BuildGatherPlanOpts, BuildMethod, BuildState, BuildableTarget, BuilderStats, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, 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, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, CancelEffects, CancelEligibilityInput, CancelPlan, CancelRefund, CancelReleasedHold, CapabilityAttribute, CapabilityAttributeRow, CapabilityInput, CargoData, CargoInput, CargoMassInfo, CargoStack, CategoryInfo, CategoryStacks, ClientMessage, Cluster, ClusterCell, ClusterCellWire, ClusterDeltaMessage, ClusterManager, ClusterSlotType, ComputedCapabilities, ConnectionState, ConstructionManager, Container, ContainerEntity, Coord, CoordinateAddress, Coordinates, CoordinatesType, CounterpartLookup, CraftedItemCategory, CrafterCapability, CrafterStats, DEFAULT_BASE_HULLMASS, DEPLOY_ENTITY_HAS_SCHEDULE, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, DecodedAtomicAsset, DemandRow, DerivedLoaders, DerivedStratum, DescribeOptions, DisplayNameResult, Distance, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, 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, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EffectiveReserveInput, EnergyCapability, EntitiesManager, EntitiesSubscriptionHandle, Entity$1 as Entity, EntityCapabilities, EntityClass, EntityDeletedMessage, EntityInfo$2 as EntityInfo, EntityInstance, EntityInventory, EntityLayout, EntityRefInput, EntitySlot, EntityState, EntityStateInput, EntitySubscriptionFilter, EntitySubscriptionHandle, EntitySubscriptionHandlers, EntitySubscriptionMeta, EntityTypeName, EpochInfo, EpochsManager, ErrorMessage, EstimateTravelTimeOptions, EstimatedTravelTime, EventCatchupCompleteMessage, EventMessage, ExactEntitySubscriptionFilter, Extractor, Factory, FetchAssetsOptions, FillCap, FinalizerCapability, FinalizerEntityRef, FloatPosition, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, 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, GatherCycle, GatherLimpet, GatherPlan, GatherPlanEntity, GathererCapability, GathererDepthParams, GathererStats, GridCell, HAULER_EFFICIENCY_DENOM, HasCapacity, HasCargo, HasCargomass, HasScheduleAndLocation, HoldKind, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BEAM, ITEM_BEAM_T2, 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_BUILDER_T1, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, 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_DREDGER_T1_PACKED, 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_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_HAULER_SHIP_T2_PACKED, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, 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_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1_PACKED, ITEM_PROSPECTOR_T1_PACKED, ITEM_PROSPECTOR_T2_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, 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_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_STORAGE_T1, ITEM_TENDER_T1_PACKED, ITEM_TUG_T1_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WORKSHOP_T1_PACKED, ITEM_WRANGLER_T1_PACKED, ITEM_WRIGHT_T1_PACKED, IdleResolveTarget, ImmutableEntry, ImmutableModuleSlot, InboundTransfer, IncomingSource, InstalledModule, InventoryAccessor, Item, ItemType, JOB_QUEUE_CAP, JobLane, JobLaneEntry, JobWindow, KindMeta, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, LanePlanEntry, LaneView, LaunchNumericInput, LaunchQuote, LaunchQuoteCatcher, LaunchQuoteLauncher, LaunchStatsInput, LoadTimeBreakdown, LoaderCapability, LoaderStats, Location, LocationStratum, LocationType, LocationsManager, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_BATTERY, MODULE_BUILDER, 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_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, 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, Neighbor, Nexus, NftConfigForItem, NftManager, OrderedTask, 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, PlanRouteParams, PlanTarget, PlanetSubtypeInfo, platform as PlatformContract, Types$1 as PlatformTypes, Player, PlayerRosterEntry, PlayerStateInput, PlayersManager, PongMessage, Projectable, ProjectedEntity, ProjectionOptions, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RawData, ReachStats, Recipe, RecipeConsumer, RecipeInput, RecipeSlotInput, RefitOp, RenderDescriptionOptions, Reservation, ReserveTier, ResolvedAttributeGroup, ResolvedCrafterLane, ResolvedEvent, ResolvedGathererLane, ResolvedItem, ResolvedItemStat, ResolvedItemType, ResolvedLoaderLane, ResolvedModuleSlot, ResourceCategory, ResourceDemand, ResourceStats, RouteFailure, RouteFailureReason, RouteHeuristicCost, RouteLegCost, RouteLegInput, RouteLegSim, RouteMoverInput, RoutePlan, RouteResult, RouteSim, SECTORS_PER_AXIS, SECTOR_DIV, 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, STAR_STEP, ScanProvider, ScheduleAccessor, ScheduleCapability, ScheduleData, ScheduledBuild, SchemaField, server as ServerContract, ServerMessage, Types as ServerTypes, Ship, ShipEntity, ShipLike, Shipload, SlotConsumer, SlotConsumerKind, SnapshotMessage, SourceCargoStack, SourceEntityRef, StackInput, StarSortable, StatDefinition, StatFlow, StatMapping, StatSlot, StorageCapability, StratumInfo, SubscribeEntityMessage, SubscribeEventsMessage, SubscribeMessage, SubscriptionEntityType, SubscriptionsManager, SubscriptionsOptions, SystemGraph, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskCargoChange, TaskCargoDirection, TaskType, TemplateMeta, TextSpan, TierRange, TransferEntity, TravelDrainBreakdown, UnsubscribeEntityMessage, UnsubscribeEventsMessage, UnsubscribeMessage, UnwrapDestination, UnwrapItem, UpdateBoundsMessage, UpdateMessage, ValidateDisplayNameOptions, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WH, WOULD_OVERFILL, WOULD_STRAND, Warehouse, WarehouseEntity, WebSocketConnection, WebSocketConnectionOptions, WireCoordinates, WireEntity, WrapDeposit, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, addressFromCoordinates, allBuildableItems, allPlotBuildableItems, allocateProportional, applyCapacityTier, applyResourceTierMultiplier, availableBuildMethods, availableCapacity$1 as availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcCounterpartDelivery, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canMove, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoInputKey, cargoItem, cargoItemToStack, cargoKey, cargoReadyAt, cargoRef, cargoUtils, cargo_item, categoryColors, categoryFromIndex, categoryLabel, categoryLabelFromIndex, compareByStars, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, coordsToLocationId, coupling, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleUpgrades, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, energy_stats, entityDisplayName, entity_row, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findNearbyPlanets, flightSpeedFactor, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, 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, incomingHoldMass, interpolateFlightPosition, isBuildable, isConstructionDock, isContainer, isCraftedItem, isExtractor, isFactory, isFull$1 as isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, jobsToLanes, kindCan, lane, laneKeyForModule, lerp, location_derived, location_static, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, movement_stats, nearbyWormholes, needsRecharge, normalizeDisplayName, parseWireEntity, partnerRegion, pickFabricator, planParallelTransfer, planRoute, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, rotation, schedule, sdkSystemGraph, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, subtractFromStacks, task, taskCargoChanges, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, typeLabel, unwrapLoadDuration, unwrapTransitDuration, usedInputStatKeys, validateDisplayName, validateSchedule, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, yieldThresholdAt };
|
package/lib/shipload.js
CHANGED
|
@@ -12632,6 +12632,24 @@ function keyForRecipeInputStat(recipe, inputIndex, statIndex) {
|
|
|
12632
12632
|
const innerKeys = getItemStatKeys(input.itemId);
|
|
12633
12633
|
return innerKeys[statIndex] ?? '';
|
|
12634
12634
|
}
|
|
12635
|
+
function usedInputStatKeys(outputItemId) {
|
|
12636
|
+
const recipe = getRecipe(outputItemId);
|
|
12637
|
+
if (!recipe)
|
|
12638
|
+
return [];
|
|
12639
|
+
const usedIdx = recipe.inputs.map(() => new Set());
|
|
12640
|
+
for (const slot of recipe.statSlots) {
|
|
12641
|
+
for (const src of slot.sources) {
|
|
12642
|
+
usedIdx[src.inputIndex]?.add(src.statIndex);
|
|
12643
|
+
}
|
|
12644
|
+
}
|
|
12645
|
+
return recipe.inputs.map((input, i) => {
|
|
12646
|
+
const keys = getItemStatKeys(input.itemId);
|
|
12647
|
+
return [...usedIdx[i]]
|
|
12648
|
+
.sort((a, b) => a - b)
|
|
12649
|
+
.map((idx) => keys[idx] ?? '')
|
|
12650
|
+
.filter(Boolean);
|
|
12651
|
+
});
|
|
12652
|
+
}
|
|
12635
12653
|
function decodeCraftedItemStats(itemId, stats) {
|
|
12636
12654
|
const keys = getItemStatKeys(itemId);
|
|
12637
12655
|
const result = {};
|
|
@@ -18878,6 +18896,18 @@ function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
|
18878
18896
|
return [...ids.map((id) => actions.resolve(id)), action];
|
|
18879
18897
|
}
|
|
18880
18898
|
|
|
18899
|
+
const INCOMING_COUPLING_KINDS = new Set([exports.HoldKind.PUSH, exports.HoldKind.GATHER, exports.HoldKind.FLIGHT]);
|
|
18900
|
+
function isIncomingCouplingKind(kind) {
|
|
18901
|
+
return INCOMING_COUPLING_KINDS.has(kind);
|
|
18902
|
+
}
|
|
18903
|
+
function calcCounterpartDelivery(task, coupling) {
|
|
18904
|
+
if (!isIncomingCouplingKind(coupling.kind.toNumber()))
|
|
18905
|
+
return [];
|
|
18906
|
+
if (task.type.toNumber() === exports.TaskType.CRAFT) {
|
|
18907
|
+
return task.cargo.length === 0 ? [] : [task.cargo[task.cargo.length - 1]];
|
|
18908
|
+
}
|
|
18909
|
+
return task.cargo;
|
|
18910
|
+
}
|
|
18881
18911
|
function taskCargoEffect(task) {
|
|
18882
18912
|
switch (task.type.toNumber()) {
|
|
18883
18913
|
case exports.TaskType.LOAD:
|
|
@@ -18885,6 +18915,7 @@ function taskCargoEffect(task) {
|
|
|
18885
18915
|
case exports.TaskType.UNDEPLOY:
|
|
18886
18916
|
return { added: task.cargo, removed: [] };
|
|
18887
18917
|
case exports.TaskType.UNLOAD:
|
|
18918
|
+
case exports.TaskType.UPGRADE:
|
|
18888
18919
|
return { added: [], removed: task.cargo };
|
|
18889
18920
|
case exports.TaskType.GATHER:
|
|
18890
18921
|
return task.couplings.length > 0
|
|
@@ -18901,19 +18932,23 @@ function taskCargoEffect(task) {
|
|
|
18901
18932
|
return { added: [], removed: [] };
|
|
18902
18933
|
}
|
|
18903
18934
|
}
|
|
18904
|
-
function
|
|
18905
|
-
const base = `${
|
|
18906
|
-
const
|
|
18907
|
-
const entityId = item.entity_id?.toString();
|
|
18908
|
-
const normalizedEntityId = entityId && entityId !== '0' ? entityId : '';
|
|
18935
|
+
function refKey(itemId, stats, modules, entityId) {
|
|
18936
|
+
const base = `${itemId}:${stats.toString()}`;
|
|
18937
|
+
const normalizedEntityId = entityId !== '0' ? entityId : '';
|
|
18909
18938
|
if (modules.length === 0 && normalizedEntityId === '')
|
|
18910
18939
|
return base;
|
|
18911
18940
|
return `${base}:modules=${JSON.stringify(modules)}:entity=${normalizedEntityId}`;
|
|
18912
18941
|
}
|
|
18942
|
+
function cargoKey(item) {
|
|
18943
|
+
return refKey(item.item_id.toNumber(), BigInt(item.stats.toString()), item.modules ?? [], item.entity_id?.toString() ?? '');
|
|
18944
|
+
}
|
|
18945
|
+
function cargoInputKey(input) {
|
|
18946
|
+
return refKey(input.itemId, input.stats, input.modules ?? [], '');
|
|
18947
|
+
}
|
|
18913
18948
|
function cargoQuantity(item) {
|
|
18914
18949
|
return BigInt(item.quantity.toString());
|
|
18915
18950
|
}
|
|
18916
|
-
function projectedCargoAvailableAt(entity, at) {
|
|
18951
|
+
function projectedCargoAvailableAt(entity, at, incoming = []) {
|
|
18917
18952
|
const avail = new Map();
|
|
18918
18953
|
for (const item of entity.cargo) {
|
|
18919
18954
|
const key = cargoKey(item);
|
|
@@ -18928,6 +18963,14 @@ function projectedCargoAvailableAt(entity, at) {
|
|
|
18928
18963
|
avail.set(key, (avail.get(key) ?? 0n) + cargoQuantity(item));
|
|
18929
18964
|
}
|
|
18930
18965
|
}
|
|
18966
|
+
for (const src of incoming) {
|
|
18967
|
+
if (src.until.getTime() >= at.getTime())
|
|
18968
|
+
continue;
|
|
18969
|
+
for (const item of src.items) {
|
|
18970
|
+
const key = cargoKey(item);
|
|
18971
|
+
avail.set(key, (avail.get(key) ?? 0n) + cargoQuantity(item));
|
|
18972
|
+
}
|
|
18973
|
+
}
|
|
18931
18974
|
for (const ordered of tasks) {
|
|
18932
18975
|
for (const item of taskCargoEffect(ordered.task).removed) {
|
|
18933
18976
|
const key = cargoKey(item);
|
|
@@ -18938,17 +18981,40 @@ function projectedCargoAvailableAt(entity, at) {
|
|
|
18938
18981
|
}
|
|
18939
18982
|
return avail;
|
|
18940
18983
|
}
|
|
18941
|
-
function cargoReadyAt(entity,
|
|
18942
|
-
|
|
18984
|
+
function cargoReadyAt(entity, inputs, incoming = []) {
|
|
18985
|
+
const demand = new Map();
|
|
18986
|
+
for (const input of inputs) {
|
|
18987
|
+
const key = cargoInputKey(input);
|
|
18988
|
+
demand.set(key, (demand.get(key) ?? 0n) + BigInt(input.quantity));
|
|
18989
|
+
}
|
|
18990
|
+
const candidates = [0];
|
|
18943
18991
|
for (const ordered of orderedTasks(entity)) {
|
|
18944
18992
|
for (const item of taskCargoEffect(ordered.task).added) {
|
|
18945
|
-
if (
|
|
18946
|
-
|
|
18993
|
+
if (demand.has(cargoKey(item))) {
|
|
18994
|
+
candidates.push(ordered.completesAt.getTime());
|
|
18947
18995
|
break;
|
|
18948
18996
|
}
|
|
18949
18997
|
}
|
|
18950
18998
|
}
|
|
18951
|
-
|
|
18999
|
+
for (const src of incoming) {
|
|
19000
|
+
if (src.items.some((item) => demand.has(cargoKey(item)))) {
|
|
19001
|
+
candidates.push(src.until.getTime());
|
|
19002
|
+
}
|
|
19003
|
+
}
|
|
19004
|
+
candidates.sort((a, b) => a - b);
|
|
19005
|
+
for (const candidateMs of candidates) {
|
|
19006
|
+
const available = projectedCargoAvailableAt(entity, new Date(candidateMs + 1), incoming);
|
|
19007
|
+
let sufficient = true;
|
|
19008
|
+
for (const [key, quantity] of demand) {
|
|
19009
|
+
if ((available.get(key) ?? 0n) < quantity) {
|
|
19010
|
+
sufficient = false;
|
|
19011
|
+
break;
|
|
19012
|
+
}
|
|
19013
|
+
}
|
|
19014
|
+
if (sufficient)
|
|
19015
|
+
return new Date(candidateMs);
|
|
19016
|
+
}
|
|
19017
|
+
return new Date(candidates[candidates.length - 1]);
|
|
18952
19018
|
}
|
|
18953
19019
|
function availableForItem(avail, itemId) {
|
|
18954
19020
|
const prefix = `${itemId}:`;
|
|
@@ -18967,6 +19033,7 @@ exports.CancelBlockReason = void 0;
|
|
|
18967
19033
|
CancelBlockReason["DONE"] = "DONE";
|
|
18968
19034
|
CancelBlockReason["CONTAINS_LINKED_TASK"] = "CONTAINS_LINKED_TASK";
|
|
18969
19035
|
CancelBlockReason["WOULD_STRAND"] = "WOULD_STRAND";
|
|
19036
|
+
CancelBlockReason["WOULD_STRAND_COUNTERPART"] = "WOULD_STRAND_COUNTERPART";
|
|
18970
19037
|
CancelBlockReason["WOULD_OVERFILL"] = "WOULD_OVERFILL";
|
|
18971
19038
|
CancelBlockReason["NOT_OWNER"] = "NOT_OWNER";
|
|
18972
19039
|
})(exports.CancelBlockReason || (exports.CancelBlockReason = {}));
|
|
@@ -18977,14 +19044,16 @@ function postCancelEntity(entity, laneKey, fromTaskIndex) {
|
|
|
18977
19044
|
lane.schedule.tasks = lane.schedule.tasks.slice(0, fromTaskIndex);
|
|
18978
19045
|
return clone;
|
|
18979
19046
|
}
|
|
18980
|
-
function
|
|
18981
|
-
const ordered = orderedTasks(
|
|
19047
|
+
function queueFeasible(entity, incoming = []) {
|
|
19048
|
+
const ordered = orderedTasks(entity);
|
|
18982
19049
|
const base = new Map();
|
|
18983
|
-
for (const c of
|
|
19050
|
+
for (const c of entity.cargo ?? []) {
|
|
18984
19051
|
const k = cargoKey(c);
|
|
18985
19052
|
base.set(k, (base.get(k) ?? 0) + c.quantity.toNumber());
|
|
18986
19053
|
}
|
|
18987
|
-
const isConsumer = (t) => t.type.toNumber() === exports.TaskType.CRAFT ||
|
|
19054
|
+
const isConsumer = (t) => t.type.toNumber() === exports.TaskType.CRAFT ||
|
|
19055
|
+
t.type.toNumber() === exports.TaskType.UNLOAD ||
|
|
19056
|
+
t.type.toNumber() === exports.TaskType.UPGRADE;
|
|
18988
19057
|
for (const self of ordered) {
|
|
18989
19058
|
if (!isConsumer(self.task))
|
|
18990
19059
|
continue;
|
|
@@ -18996,6 +19065,13 @@ function feasibleAfterCancel(post) {
|
|
|
18996
19065
|
map.set(cargoKey(out), (map.get(cargoKey(out)) ?? 0) + out.quantity.toNumber());
|
|
18997
19066
|
}
|
|
18998
19067
|
}
|
|
19068
|
+
for (const src of incoming) {
|
|
19069
|
+
if (src.until.getTime() >= self.completesAt.getTime())
|
|
19070
|
+
continue;
|
|
19071
|
+
for (const item of src.items) {
|
|
19072
|
+
map.set(cargoKey(item), (map.get(cargoKey(item)) ?? 0) + item.quantity.toNumber());
|
|
19073
|
+
}
|
|
19074
|
+
}
|
|
18999
19075
|
for (const other of ordered) {
|
|
19000
19076
|
if (other === self)
|
|
19001
19077
|
continue;
|
|
@@ -19009,6 +19085,11 @@ function feasibleAfterCancel(post) {
|
|
|
19009
19085
|
return false;
|
|
19010
19086
|
}
|
|
19011
19087
|
}
|
|
19088
|
+
return true;
|
|
19089
|
+
}
|
|
19090
|
+
function feasibleAfterCancel(post) {
|
|
19091
|
+
if (!queueFeasible(post))
|
|
19092
|
+
return false;
|
|
19012
19093
|
try {
|
|
19013
19094
|
validateSchedule(post);
|
|
19014
19095
|
}
|
|
@@ -19066,6 +19147,35 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
19066
19147
|
const post = postCancelEntity(entity, laneKey, fromTaskIndex);
|
|
19067
19148
|
if (!feasibleAfterCancel(post))
|
|
19068
19149
|
return block(exports.CancelBlockReason.WOULD_STRAND);
|
|
19150
|
+
const releasedByCounterpart = new Map();
|
|
19151
|
+
for (const i of taskIndices) {
|
|
19152
|
+
for (const c of tasks[i].couplings ?? []) {
|
|
19153
|
+
if (!isIncomingCouplingKind(c.kind.toNumber()))
|
|
19154
|
+
continue;
|
|
19155
|
+
const id = c.counterpart.entity_id.toString();
|
|
19156
|
+
const entry = releasedByCounterpart.get(id) ?? {
|
|
19157
|
+
counterpart: c.counterpart,
|
|
19158
|
+
holdIds: new Set(),
|
|
19159
|
+
};
|
|
19160
|
+
entry.holdIds.add(c.hold.toString());
|
|
19161
|
+
releasedByCounterpart.set(id, entry);
|
|
19162
|
+
}
|
|
19163
|
+
}
|
|
19164
|
+
for (const [counterpartId, released] of releasedByCounterpart) {
|
|
19165
|
+
const counterpart = input.counterparts?.get(counterpartId);
|
|
19166
|
+
if (!counterpart)
|
|
19167
|
+
continue;
|
|
19168
|
+
const incoming = (input.counterpartIncoming?.get(counterpartId) ?? []).filter((src) => !released.holdIds.has(src.holdId));
|
|
19169
|
+
if (!queueFeasible(counterpart, incoming)) {
|
|
19170
|
+
return {
|
|
19171
|
+
ok: false,
|
|
19172
|
+
blockedReason: exports.CancelBlockReason.WOULD_STRAND_COUNTERPART,
|
|
19173
|
+
blockedByCounterpart: released.counterpart,
|
|
19174
|
+
range,
|
|
19175
|
+
effects: { ...EMPTY_EFFECTS },
|
|
19176
|
+
};
|
|
19177
|
+
}
|
|
19178
|
+
}
|
|
19069
19179
|
const effects = { refunds: [], releasedHolds: [], abandonsRunning: false };
|
|
19070
19180
|
let energyForfeited = 0;
|
|
19071
19181
|
for (const i of taskIndices) {
|
|
@@ -19215,7 +19325,24 @@ function receiveFits(dest, item, now) {
|
|
|
19215
19325
|
return peak <= capacity;
|
|
19216
19326
|
}
|
|
19217
19327
|
|
|
19218
|
-
function
|
|
19328
|
+
function itemReadyAt(entity, itemIds, incoming) {
|
|
19329
|
+
let readyMs = 0;
|
|
19330
|
+
for (const ordered of orderedTasks(entity)) {
|
|
19331
|
+
for (const item of taskCargoEffect(ordered.task).added) {
|
|
19332
|
+
if (itemIds.includes(item.item_id.toNumber())) {
|
|
19333
|
+
readyMs = Math.max(readyMs, ordered.completesAt.getTime());
|
|
19334
|
+
break;
|
|
19335
|
+
}
|
|
19336
|
+
}
|
|
19337
|
+
}
|
|
19338
|
+
for (const src of incoming) {
|
|
19339
|
+
if (src.items.some((item) => itemIds.includes(item.item_id.toNumber()))) {
|
|
19340
|
+
readyMs = Math.max(readyMs, src.until.getTime());
|
|
19341
|
+
}
|
|
19342
|
+
}
|
|
19343
|
+
return new Date(readyMs);
|
|
19344
|
+
}
|
|
19345
|
+
function maxCraftable(entity, recipe, crafterSpeed, now, incoming = []) {
|
|
19219
19346
|
if (recipe.inputs.length === 0)
|
|
19220
19347
|
return 0;
|
|
19221
19348
|
const perUnitMass = recipe.inputs.reduce((sum, input) => sum + getItem(input.itemId).mass * input.quantity, 0);
|
|
@@ -19223,9 +19350,9 @@ function maxCraftable(entity, recipe, crafterSpeed, now) {
|
|
|
19223
19350
|
const crafterLane = workerLaneKey(entity.modules, 'crafter', entity.lanes ?? []);
|
|
19224
19351
|
const naiveCompletesAt = candidateLaneCompletesAt(entity, crafterLane, perUnitDuration, now);
|
|
19225
19352
|
const laneStartMs = naiveCompletesAt.getTime() - perUnitDuration * 1000;
|
|
19226
|
-
const readyMs =
|
|
19353
|
+
const readyMs = itemReadyAt(entity, recipe.inputs.map((input) => input.itemId), incoming).getTime();
|
|
19227
19354
|
const completesAt = new Date(Math.max(laneStartMs, readyMs) + perUnitDuration * 1000);
|
|
19228
|
-
const availability = projectedCargoAvailableAt(entity, completesAt);
|
|
19355
|
+
const availability = projectedCargoAvailableAt(entity, completesAt, incoming);
|
|
19229
19356
|
let maxUnits;
|
|
19230
19357
|
for (const input of recipe.inputs) {
|
|
19231
19358
|
if (input.quantity <= 0)
|
|
@@ -21276,6 +21403,7 @@ exports.buildModuleImmutable = buildModuleImmutable;
|
|
|
21276
21403
|
exports.buildResourceImmutable = buildResourceImmutable;
|
|
21277
21404
|
exports.calcCargoItemMass = calcCargoItemMass;
|
|
21278
21405
|
exports.calcCargoMass = calcCargoMass;
|
|
21406
|
+
exports.calcCounterpartDelivery = calcCounterpartDelivery;
|
|
21279
21407
|
exports.calcEnergyUsage = calcEnergyUsage;
|
|
21280
21408
|
exports.calcStacksMass = calcStacksMass;
|
|
21281
21409
|
exports.calc_acceleration = calc_acceleration;
|
|
@@ -21319,8 +21447,10 @@ exports.capsHasLoaders = capsHasLoaders;
|
|
|
21319
21447
|
exports.capsHasMass = capsHasMass;
|
|
21320
21448
|
exports.capsHasMovement = capsHasMovement;
|
|
21321
21449
|
exports.capsHasStorage = capsHasStorage;
|
|
21450
|
+
exports.cargoInputKey = cargoInputKey;
|
|
21322
21451
|
exports.cargoItem = cargoItem;
|
|
21323
21452
|
exports.cargoItemToStack = cargoItemToStack;
|
|
21453
|
+
exports.cargoKey = cargoKey;
|
|
21324
21454
|
exports.cargoReadyAt = cargoReadyAt;
|
|
21325
21455
|
exports.cargoRef = cargoRef;
|
|
21326
21456
|
exports.cargoUtils = cargoUtils;
|
|
@@ -21601,6 +21731,7 @@ exports.toLocation = toLocation;
|
|
|
21601
21731
|
exports.typeLabel = typeLabel;
|
|
21602
21732
|
exports.unwrapLoadDuration = unwrapLoadDuration;
|
|
21603
21733
|
exports.unwrapTransitDuration = unwrapTransitDuration;
|
|
21734
|
+
exports.usedInputStatKeys = usedInputStatKeys;
|
|
21604
21735
|
exports.validateDisplayName = validateDisplayName;
|
|
21605
21736
|
exports.validateSchedule = validateSchedule;
|
|
21606
21737
|
exports.workerLaneKey = workerLaneKey;
|