@genex-ai/multiplayer 0.17.6 → 0.17.9
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/PROTOCOL.md +102 -31
- package/README.md +35 -14
- package/WORLD-GLTF.md +109 -0
- package/WORLD-SCENE.md +135 -0
- package/dist/authority/fast-udp.d.ts +4 -2
- package/dist/authority/fast-udp.js +8 -46
- package/dist/authority/fast-webtransport.d.ts +26 -4
- package/dist/authority/fast-webtransport.js +12 -115
- package/dist/authority/index.d.ts +379 -41
- package/dist/authority/index.js +247 -47
- package/dist/authority/module.d.ts +2 -1
- package/dist/authority/module.js +1 -1
- package/dist/bridge-authority.d.ts +3 -2
- package/dist/bridge-authority.global.js +10 -9
- package/dist/bridge-authority.js +11 -6
- package/dist/bridge.global.js +5 -5
- package/dist/bridge.js +3 -3
- package/dist/chunk-2NGXXQDS.js +1916 -0
- package/dist/{chunk-7QVOIHJF.js → chunk-DJ2XYETS.js} +2 -2
- package/dist/{chunk-Y6XHXDIK.js → chunk-MQYARUGU.js} +864 -539
- package/dist/{chunk-K3SF5VDS.js → chunk-OD6NRSX2.js} +3 -1
- package/dist/{chunk-UX3F6YTV.js → chunk-TEHGMFAG.js} +1 -1
- package/dist/chunk-TSYEWPVO.js +44 -0
- package/dist/chunk-TVTVIMIH.js +675 -0
- package/dist/{chunk-ZSWF4VCN.js → chunk-WEMRRIHH.js} +80 -2
- package/dist/chunk-YWQ3ALYY.js +69 -0
- package/dist/{chunk-5JGRFT2N.js → chunk-ZDGSUR6E.js} +879 -1898
- package/dist/{fast-client-CZ41v-oB.d.ts → fast-client--A88q0kk.d.ts} +85 -4
- package/dist/index.js +3 -3
- package/dist/level-build-CbRqrYJq.d.ts +140 -0
- package/dist/{module-DqtFb5wA.d.ts → module-CSpXrzFc.d.ts} +151 -400
- package/dist/{physics-predict-49udN3a1.d.ts → physics-predict-C7ZB1gDG.d.ts} +18 -3
- package/dist/protocol.d.ts +90 -2
- package/dist/protocol.js +17 -1
- package/dist/shot-world-D22tqOUT.d.ts +485 -0
- package/dist/world-fit/index.d.ts +549 -0
- package/dist/world-fit/index.js +4763 -0
- package/dist/world-fit/three.d.ts +77 -0
- package/dist/world-fit/three.js +140 -0
- package/package.json +15 -3
package/dist/authority/index.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ClaimVerdict,
|
|
3
|
+
ShotWorldCost,
|
|
4
|
+
WorldKey,
|
|
5
|
+
axisToClaim,
|
|
6
|
+
claimToAxis
|
|
7
|
+
} from "../chunk-TSYEWPVO.js";
|
|
1
8
|
import {
|
|
2
9
|
AUTHORITY_REFUSALS_PER_REGION,
|
|
3
10
|
AuthorityBody,
|
|
@@ -16,7 +23,9 @@ import {
|
|
|
16
23
|
ContactKind,
|
|
17
24
|
DEFAULT_SEAT_DRAWING,
|
|
18
25
|
DrawHandoff,
|
|
19
|
-
|
|
26
|
+
FAST_OFFER_WAIT_MS,
|
|
27
|
+
FastNotAsked,
|
|
28
|
+
FastTransport,
|
|
20
29
|
HEAD_LANDING_SPEED,
|
|
21
30
|
HeadHold,
|
|
22
31
|
INPUT_REPEAT_MAX_MS,
|
|
@@ -27,7 +36,6 @@ import {
|
|
|
27
36
|
ISLAND_MARGIN_METRES,
|
|
28
37
|
LiftSolidsCache,
|
|
29
38
|
MOTION_VIEW_TAG,
|
|
30
|
-
MotionRecordKind,
|
|
31
39
|
PHYSICS_SHAPES_MAX,
|
|
32
40
|
PHYSICS_SHAPE_MAX_CHARS,
|
|
33
41
|
PHYS_BUDGET_CALM_SHARE,
|
|
@@ -45,10 +53,13 @@ import {
|
|
|
45
53
|
PhysicsPredictor,
|
|
46
54
|
PredictSmoothing,
|
|
47
55
|
PredictStatus,
|
|
48
|
-
|
|
56
|
+
REJOIN,
|
|
49
57
|
RIDE_CHAIN_MAX,
|
|
50
58
|
RULED_SLEW,
|
|
51
59
|
RULED_SNAP_TICKS,
|
|
60
|
+
RefusalKind,
|
|
61
|
+
RejoinStop,
|
|
62
|
+
RejoinWay,
|
|
52
63
|
SEAT_DRAWINGS,
|
|
53
64
|
SEAT_LIFT_MAX,
|
|
54
65
|
SEAT_PAIR_EASE,
|
|
@@ -57,6 +68,7 @@ import {
|
|
|
57
68
|
SHOVE_EASE_DONE,
|
|
58
69
|
STALL_PREDICT_MS,
|
|
59
70
|
STEADY_BUCKETS,
|
|
71
|
+
SUCCESSOR_OPEN_MS,
|
|
60
72
|
SeatContacts,
|
|
61
73
|
SeatWorld,
|
|
62
74
|
SlideWay,
|
|
@@ -66,8 +78,6 @@ import {
|
|
|
66
78
|
UNSTICK_SOLIDS,
|
|
67
79
|
WIRE_REST_MAX,
|
|
68
80
|
WIRE_ROW_STRIDE,
|
|
69
|
-
blankEntityMotion,
|
|
70
|
-
blankSeatEcho,
|
|
71
81
|
bodyRadiusOf,
|
|
72
82
|
bodyStateOf,
|
|
73
83
|
capacityWalk,
|
|
@@ -76,6 +86,7 @@ import {
|
|
|
76
86
|
carryTick,
|
|
77
87
|
castWorld,
|
|
78
88
|
clampedVelocity,
|
|
89
|
+
comesBackAfter,
|
|
79
90
|
compileContactWorld,
|
|
80
91
|
connectAuthority,
|
|
81
92
|
consumedUse,
|
|
@@ -89,15 +100,14 @@ import {
|
|
|
89
100
|
correctionAt,
|
|
90
101
|
correctionShare,
|
|
91
102
|
correctionTauMs,
|
|
103
|
+
createPrivateAuthority,
|
|
92
104
|
decayedInput,
|
|
93
105
|
declaredContacts,
|
|
94
|
-
decodeRecord,
|
|
95
|
-
dequantizeCode,
|
|
96
106
|
drawBody,
|
|
97
|
-
encodeRecord,
|
|
98
107
|
extrapolateBody,
|
|
99
108
|
extrapolationSeconds,
|
|
100
109
|
farApart,
|
|
110
|
+
fastLineAnnouncer,
|
|
101
111
|
feedWithPayback,
|
|
102
112
|
forgiveRepeats,
|
|
103
113
|
frameOf,
|
|
@@ -107,7 +117,6 @@ import {
|
|
|
107
117
|
headSlab,
|
|
108
118
|
headSlabs,
|
|
109
119
|
headStands,
|
|
110
|
-
heldInputs,
|
|
111
120
|
impartSlot,
|
|
112
121
|
impartTick,
|
|
113
122
|
inLiftFrame,
|
|
@@ -119,7 +128,7 @@ import {
|
|
|
119
128
|
inputTickSlack,
|
|
120
129
|
insideFace,
|
|
121
130
|
insideWorld,
|
|
122
|
-
|
|
131
|
+
joinPrivateAuthority,
|
|
123
132
|
liftBodyKey,
|
|
124
133
|
liftBodyPose,
|
|
125
134
|
liftBodySpawn,
|
|
@@ -136,15 +145,14 @@ import {
|
|
|
136
145
|
motorText,
|
|
137
146
|
nextPredictSetSize,
|
|
138
147
|
normalizeAuthorityRegions,
|
|
139
|
-
openFastClient,
|
|
140
148
|
parsePhysDesc,
|
|
141
149
|
physDescText,
|
|
142
150
|
physicsBudgetMs,
|
|
151
|
+
planSuccessorJoin,
|
|
143
152
|
posedFor,
|
|
144
153
|
posedSolids,
|
|
145
154
|
propSlideNudges,
|
|
146
155
|
proximityIslands,
|
|
147
|
-
quantizeCode,
|
|
148
156
|
quatMul,
|
|
149
157
|
quatNormalize,
|
|
150
158
|
rankAuthorityRegions,
|
|
@@ -152,7 +160,9 @@ import {
|
|
|
152
160
|
reconcileThrough,
|
|
153
161
|
reconcilerAck,
|
|
154
162
|
reconcilerAckHold,
|
|
163
|
+
refusalKind,
|
|
155
164
|
regionProbePlan,
|
|
165
|
+
rejoinStep,
|
|
156
166
|
remoteInputWeight,
|
|
157
167
|
repeatMaxTicks,
|
|
158
168
|
repeatRunTicks,
|
|
@@ -196,19 +206,27 @@ import {
|
|
|
196
206
|
throttleSteps,
|
|
197
207
|
tickSolids,
|
|
198
208
|
topRuleOf,
|
|
209
|
+
udpLine,
|
|
199
210
|
unstickBody,
|
|
211
|
+
validSuccessorOf,
|
|
200
212
|
viewOnLift,
|
|
201
213
|
wasmSimdSupported,
|
|
214
|
+
webSocketLine,
|
|
202
215
|
wireFieldsOf,
|
|
203
216
|
wireRowOfExport,
|
|
204
217
|
wireRowOfState,
|
|
205
218
|
writeWireRow,
|
|
206
219
|
yieldShares
|
|
207
|
-
} from "../chunk-
|
|
208
|
-
import "../chunk-
|
|
220
|
+
} from "../chunk-MQYARUGU.js";
|
|
221
|
+
import "../chunk-TEHGMFAG.js";
|
|
222
|
+
import "../chunk-YWQ3ALYY.js";
|
|
209
223
|
import {
|
|
210
224
|
AcceptKind,
|
|
225
|
+
AuthorityJoinMethod,
|
|
226
|
+
AuthorityLifetime,
|
|
211
227
|
AuthorityLimits,
|
|
228
|
+
AuthorityRoomLimits,
|
|
229
|
+
AuthorityTargetRefusal,
|
|
212
230
|
BODY_CORRECTION_TAU_MS,
|
|
213
231
|
BODY_EXTRAPOLATE_BACK_TICKS,
|
|
214
232
|
BODY_EXTRAPOLATE_MAX_MS,
|
|
@@ -226,21 +244,31 @@ import {
|
|
|
226
244
|
ContactPush,
|
|
227
245
|
ContactShapeKind,
|
|
228
246
|
DEFAULT_TICK_HZ,
|
|
229
|
-
|
|
230
|
-
|
|
247
|
+
FAST_ACK_EAGER_GAP_MS,
|
|
248
|
+
FAST_ACK_EAGER_RECORDS,
|
|
249
|
+
FAST_BIND_REV,
|
|
250
|
+
FAST_CHALLENGE_JUMP,
|
|
251
|
+
FAST_FRAME_GAP_MS,
|
|
231
252
|
FAST_GAP_FILL_MS,
|
|
232
253
|
FAST_HANDSHAKE_MS,
|
|
254
|
+
FAST_KEEPALIVE_BIND_MS,
|
|
255
|
+
FAST_KEEPALIVE_MS,
|
|
233
256
|
FAST_KEY_BYTES,
|
|
234
257
|
FAST_MAX_ACTIONS,
|
|
235
258
|
FAST_MAX_DATAGRAM_BYTES,
|
|
236
259
|
FAST_MAX_FRAGMENTS,
|
|
237
260
|
FAST_MAX_RECORD_BYTES,
|
|
261
|
+
FAST_OPEN_ROUND_TRIPS,
|
|
238
262
|
FAST_REASSEMBLY_SLOTS,
|
|
263
|
+
FAST_RETRY_BASE_MS,
|
|
264
|
+
FAST_RETRY_MAX_MS,
|
|
265
|
+
FAST_RETURN_PROOF,
|
|
266
|
+
FAST_RETURN_STABLE_MS,
|
|
239
267
|
FAST_SEQ_AHEAD_MS,
|
|
240
268
|
FAST_SNAPSHOT_HISTORY,
|
|
241
269
|
FAST_STALL_FALLBACK_MS,
|
|
242
270
|
FAST_VERSION,
|
|
243
|
-
|
|
271
|
+
FastFallbackReason,
|
|
244
272
|
FastFault,
|
|
245
273
|
FastKind,
|
|
246
274
|
FastMessage,
|
|
@@ -252,15 +280,18 @@ import {
|
|
|
252
280
|
INPUT_REDUNDANCY_MAX,
|
|
253
281
|
INPUT_REDUNDANCY_MIN,
|
|
254
282
|
INPUT_REDUNDANCY_MS,
|
|
283
|
+
INPUT_SETTLE_MS,
|
|
255
284
|
InputConfigError,
|
|
256
285
|
InputRepeat,
|
|
257
286
|
InputUse,
|
|
287
|
+
LIFETIME_DEFAULT,
|
|
258
288
|
LIFTS_MAX,
|
|
259
289
|
LIFT_ID_MAX,
|
|
260
290
|
LIFT_POINTS_MAX,
|
|
261
291
|
LIFT_SPIN_MIN_PERIOD,
|
|
262
292
|
LIFT_TICKS_MAX,
|
|
263
293
|
LIFT_VALUE_MAX,
|
|
294
|
+
LifetimeConfigError,
|
|
264
295
|
LiftEase,
|
|
265
296
|
LiftImpart,
|
|
266
297
|
LiftPathMode,
|
|
@@ -269,9 +300,8 @@ import {
|
|
|
269
300
|
MAX_PROJECTILE_G,
|
|
270
301
|
MAX_PROJECTILE_TICK,
|
|
271
302
|
MAX_TICK_HZ,
|
|
272
|
-
|
|
303
|
+
MotionRecordKind,
|
|
273
304
|
NO_LIFTS,
|
|
274
|
-
NO_POSED,
|
|
275
305
|
PHYSICS_BODY_FIELDS,
|
|
276
306
|
PHYSICS_CEILING_FACTOR,
|
|
277
307
|
PHYSICS_CONTESTED_METRES,
|
|
@@ -287,112 +317,225 @@ import {
|
|
|
287
317
|
PHYSICS_OVERLAP_MAX_KEYS,
|
|
288
318
|
PHYSICS_PATCH_HZ,
|
|
289
319
|
PHYSICS_PREDICT_MAX_ANGULAR,
|
|
320
|
+
PHYSICS_PREDICT_MAX_BOXES,
|
|
290
321
|
PHYSICS_PREDICT_MAX_LINEAR,
|
|
322
|
+
PHYSICS_PREDICT_MAX_RAMPS,
|
|
291
323
|
PHYSICS_PREDICT_MIN_ITERATIONS,
|
|
292
324
|
PHYSICS_PRESET_LENGTH_UNITS,
|
|
293
325
|
PHYSICS_REAL_LIMITS,
|
|
294
326
|
PHYSICS_ROTATING_BODIES,
|
|
295
327
|
PHYSICS_SCALED_LIMITS,
|
|
328
|
+
PHYSICS_STATIC_PIECE_BYTES,
|
|
296
329
|
PHYSICS_STATIC_PREFIX,
|
|
297
330
|
PHYSICS_SUBSTEPS,
|
|
298
|
-
POSED_MAX,
|
|
299
|
-
PRESETS,
|
|
300
|
-
PRESET_MAX_DT_S,
|
|
301
331
|
PhysEvKind,
|
|
302
332
|
PhysicsConfigRange,
|
|
303
333
|
PhysicsPredictRange,
|
|
304
|
-
|
|
334
|
+
RECORD_ID_MAX_CHARS,
|
|
305
335
|
SHOOTER_CENTER,
|
|
306
336
|
TICK_RATES,
|
|
307
|
-
TOPDOWN_DEFAULTS,
|
|
308
337
|
TickOutFault,
|
|
309
338
|
TopPolicy,
|
|
310
|
-
VEHICLE_DEFAULTS,
|
|
311
|
-
WorldError,
|
|
312
|
-
WorldLimits,
|
|
313
339
|
acceptUplink,
|
|
314
340
|
applyBody,
|
|
341
|
+
blankEntityMotion,
|
|
342
|
+
blankSeatEcho,
|
|
315
343
|
checkResolvedPhysics,
|
|
316
344
|
decodeFragment,
|
|
345
|
+
decodeRecord,
|
|
317
346
|
decodeUplink,
|
|
318
|
-
definitionOf,
|
|
319
347
|
deltaBase,
|
|
320
348
|
dequantizeBodyValue,
|
|
349
|
+
dequantizeCode,
|
|
321
350
|
diffSnapshot,
|
|
322
351
|
effectivePatchHz,
|
|
323
352
|
emptyClientRx,
|
|
353
|
+
encodeRecord,
|
|
324
354
|
encodeSnapshot,
|
|
325
355
|
encodeUplink,
|
|
326
|
-
|
|
356
|
+
fastRetryDelayMs,
|
|
327
357
|
fromHex,
|
|
328
358
|
gapFillMax,
|
|
329
|
-
|
|
359
|
+
heldInputs,
|
|
330
360
|
inputRedundancyTicks,
|
|
361
|
+
isFastBind,
|
|
331
362
|
isLiftId,
|
|
332
363
|
isPhysicsKey,
|
|
333
364
|
isPhysicsKind,
|
|
334
365
|
isPhysicsPatchHz,
|
|
335
|
-
isPresetName,
|
|
336
366
|
isPress,
|
|
337
367
|
isProjectile,
|
|
338
368
|
keyframeTicks,
|
|
369
|
+
matchKeyOf,
|
|
370
|
+
nextCodeRegion,
|
|
371
|
+
openFastClient,
|
|
339
372
|
parseBody,
|
|
340
|
-
pcos,
|
|
341
373
|
physicsCeilingValid,
|
|
342
374
|
physicsLimitsAt,
|
|
375
|
+
physicsLimitsForWorld,
|
|
343
376
|
physicsWorldDesc,
|
|
344
|
-
|
|
377
|
+
physicsWorldPredicts,
|
|
378
|
+
planAuthorityJoin,
|
|
345
379
|
presetInputRepeat,
|
|
346
|
-
presetParamsValid,
|
|
347
380
|
projectileAt,
|
|
348
|
-
psin,
|
|
349
|
-
psincos,
|
|
350
381
|
quantizeBodyValue,
|
|
382
|
+
quantizeCode,
|
|
351
383
|
receiveFragment,
|
|
352
384
|
renderStamp,
|
|
353
385
|
resolveContactConfig,
|
|
354
|
-
resolveFirstpersonParams,
|
|
355
386
|
resolveInputConfig,
|
|
387
|
+
resolveLifetime,
|
|
356
388
|
resolveLifts,
|
|
357
389
|
resolvePhysicsConfig,
|
|
358
|
-
resolvePresetParams,
|
|
359
|
-
resolveTopdownParams,
|
|
360
|
-
resolveVehicleParams,
|
|
361
390
|
sanitizeInput,
|
|
391
|
+
selectMatchWorld,
|
|
362
392
|
seqAheadMax,
|
|
363
393
|
serverTick,
|
|
364
394
|
solverIterationsOf,
|
|
365
|
-
stepFirstperson,
|
|
366
|
-
stepPreset,
|
|
367
|
-
stepTopdown,
|
|
368
|
-
stepVehicle,
|
|
369
395
|
tickInstant,
|
|
370
396
|
toHex,
|
|
371
397
|
uplinkFor,
|
|
372
398
|
uplinkMaxBytes,
|
|
399
|
+
validMatchKey,
|
|
400
|
+
validRoomCode,
|
|
373
401
|
validateInitOut,
|
|
374
402
|
validateTickOut
|
|
375
|
-
} from "../chunk-
|
|
403
|
+
} from "../chunk-ZDGSUR6E.js";
|
|
376
404
|
import {
|
|
377
405
|
LeaveReason,
|
|
378
406
|
MODULE_CONTRACT,
|
|
379
407
|
RemotePredict,
|
|
380
408
|
defineRoom
|
|
381
|
-
} from "../chunk-
|
|
382
|
-
import
|
|
409
|
+
} from "../chunk-OD6NRSX2.js";
|
|
410
|
+
import {
|
|
411
|
+
EMPTY_WORLD,
|
|
412
|
+
EMPTY_WORLD_HASH,
|
|
413
|
+
FIRSTPERSON_DEFAULTS,
|
|
414
|
+
MoveState,
|
|
415
|
+
NO_POSED,
|
|
416
|
+
POSED_MAX,
|
|
417
|
+
PRESETS,
|
|
418
|
+
PRESET_MAX_DT_S,
|
|
419
|
+
Preset,
|
|
420
|
+
TOPDOWN_DEFAULTS,
|
|
421
|
+
TREE_KEY_RADIX,
|
|
422
|
+
VEHICLE_DEFAULTS,
|
|
423
|
+
WorldError,
|
|
424
|
+
WorldLimits,
|
|
425
|
+
definitionOf,
|
|
426
|
+
firstpersonWorld,
|
|
427
|
+
hullOps,
|
|
428
|
+
isPresetName,
|
|
429
|
+
pcos,
|
|
430
|
+
posedWorld,
|
|
431
|
+
presetParamsValid,
|
|
432
|
+
psin,
|
|
433
|
+
psincos,
|
|
434
|
+
resolveFirstpersonParams,
|
|
435
|
+
resolvePresetParams,
|
|
436
|
+
resolveTopdownParams,
|
|
437
|
+
resolveVehicleParams,
|
|
438
|
+
stepFirstperson,
|
|
439
|
+
stepPreset,
|
|
440
|
+
stepTopdown,
|
|
441
|
+
stepVehicle,
|
|
442
|
+
withWorldCostMeter,
|
|
443
|
+
worldTreeOrder
|
|
444
|
+
} from "../chunk-2NGXXQDS.js";
|
|
445
|
+
import {
|
|
446
|
+
AUTHORITY_ROOM_ENDED_TEXT,
|
|
447
|
+
AuthorityCloseCode,
|
|
448
|
+
authorityCloseCodeOf
|
|
449
|
+
} from "../chunk-WEMRRIHH.js";
|
|
450
|
+
|
|
451
|
+
// src/authority/world-cost.ts
|
|
452
|
+
var WorldCost = {
|
|
453
|
+
/** What a step may average, in weighted operations: below the least count of any world that ended a room, ten seats on a c2-standard-4
|
|
454
|
+
* (micro 8,192 at 5,318, one run of two: integration cw/vm1). A warning to a creator, and a coarse one: bodies are walked from seeded
|
|
455
|
+
* solids, so a world that holds its cost where its module really spawns seats reads low (a cell 2.5 times, dense tiles 3), and one built to
|
|
456
|
+
* dodge the walk reads nothing. The sandbox's mean budget and CPU limits are what protect a host. */
|
|
457
|
+
MAX_OPS_PER_STEP: 5e3,
|
|
458
|
+
/** What each kind of operation costs against a tree entry, c2-standard-4, offline: an entry 4.9 ns, an exact test 36, a wedge's sweep test
|
|
459
|
+
* 382. A slab's sweep test has no weight of its own: it comes with exact tests in every world measured, three to one. */
|
|
460
|
+
TEST_WEIGHT: 7,
|
|
461
|
+
WEDGE_WEIGHT: 78,
|
|
462
|
+
/** The seats {@link WorldCost.MAX_OPS_PER_STEP} is sized for. */
|
|
463
|
+
SEATS: 10,
|
|
464
|
+
/** Bodies walking, and the ticks each walks. */
|
|
465
|
+
WALKERS: 16,
|
|
466
|
+
TICKS: 120,
|
|
467
|
+
SEED: 2026,
|
|
468
|
+
/** The step's dt: 30 Hz, the rate most rooms run. */
|
|
469
|
+
DT: 1 / 30,
|
|
470
|
+
/** Where a body starts above the top of the solid it is dropped on. */
|
|
471
|
+
DROP: 1,
|
|
472
|
+
/** A body's chance a tick to turn, jump and duck. */
|
|
473
|
+
TURN_CHANCE: 0.03,
|
|
474
|
+
JUMP_CHANCE: 0.04,
|
|
475
|
+
DUCK_CHANCE: 0.05
|
|
476
|
+
};
|
|
477
|
+
var NO_CAPS = { MAX_BOXES: Number.MAX_SAFE_INTEGER, MAX_RAMPS: Number.MAX_SAFE_INTEGER };
|
|
478
|
+
var DIAGONAL = Math.SQRT1_2;
|
|
479
|
+
var HEADINGS = [[1, 0], [DIAGONAL, DIAGONAL], [0, 1], [-DIAGONAL, DIAGONAL], [-1, 0], [-DIAGONAL, -DIAGONAL], [0, -1], [DIAGONAL, -DIAGONAL]];
|
|
480
|
+
var JUMP_BUTTON = 1;
|
|
481
|
+
var DUCK_BUTTON = 2;
|
|
482
|
+
function lcg(seed) {
|
|
483
|
+
let s = seed >>> 0;
|
|
484
|
+
return () => {
|
|
485
|
+
s = Math.imul(s, 1664525) + 1013904223 >>> 0;
|
|
486
|
+
return s / 2 ** 32;
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
var boundsOf = (world) => [...world.boxes, ...world.ramps];
|
|
490
|
+
function worldCost(spec, preset = "firstperson", params) {
|
|
491
|
+
const world = firstpersonWorld(spec, { caps: NO_CAPS });
|
|
492
|
+
const definition = definitionOf(preset);
|
|
493
|
+
if (definition === void 0 || !definition.world) throw new RangeError(`${preset} steps through no world`);
|
|
494
|
+
const resolved = resolvePresetParams(preset, params);
|
|
495
|
+
const solids = boundsOf(world);
|
|
496
|
+
const meter = { nodes: 0, tests: 0, sweeps: 0, wedges: 0 };
|
|
497
|
+
const random = lcg(WorldCost.SEED);
|
|
498
|
+
const bodies = [];
|
|
499
|
+
const headings = [];
|
|
500
|
+
for (let k = 0; k < WorldCost.WALKERS; k++) {
|
|
501
|
+
const s = solids[Math.floor(random() * solids.length)];
|
|
502
|
+
bodies.push(s === void 0 ? { x: 0, y: 0, z: 0 } : { x: (s[0] + s[3]) / 2, y: (s[1] + s[4]) / 2, z: s[5] + WorldCost.DROP });
|
|
503
|
+
headings.push(Math.floor(random() * HEADINGS.length));
|
|
504
|
+
}
|
|
505
|
+
let steps = 0;
|
|
506
|
+
withWorldCostMeter(meter, () => {
|
|
507
|
+
for (let t = 0; t < WorldCost.TICKS; t++) {
|
|
508
|
+
for (let b = 0; b < WorldCost.WALKERS; b++) {
|
|
509
|
+
if (random() < WorldCost.TURN_CHANCE) headings[b] = Math.floor(random() * HEADINGS.length);
|
|
510
|
+
const buttons = (random() < WorldCost.JUMP_CHANCE ? JUMP_BUTTON : 0) | (random() < WorldCost.DUCK_CHANCE ? DUCK_BUTTON : 0);
|
|
511
|
+
const [moveX, moveY] = HEADINGS[headings[b]];
|
|
512
|
+
bodies[b] = definition.step(bodies[b], sanitizeInput({ moveX, moveY, yaw: 0, pitch: 0, buttons }), WorldCost.DT, resolved, world);
|
|
513
|
+
steps += 1;
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
const opsPerStep = Math.floor((meter.nodes + WorldCost.TEST_WEIGHT * meter.tests + WorldCost.WEDGE_WEIGHT * meter.wedges) / steps);
|
|
518
|
+
return { ...meter, solids: solids.length, steps, opsPerStep, accepted: opsPerStep <= WorldCost.MAX_OPS_PER_STEP };
|
|
519
|
+
}
|
|
383
520
|
export {
|
|
384
521
|
AUTHORITY_REFUSALS_PER_REGION,
|
|
522
|
+
AUTHORITY_ROOM_ENDED_TEXT,
|
|
385
523
|
AcceptKind,
|
|
386
524
|
AuthorityBody,
|
|
525
|
+
AuthorityCloseCode,
|
|
387
526
|
AuthorityEntity,
|
|
388
527
|
AuthorityInput,
|
|
528
|
+
AuthorityJoinMethod,
|
|
389
529
|
AuthorityJoint,
|
|
530
|
+
AuthorityLifetime,
|
|
390
531
|
AuthorityLimits,
|
|
391
532
|
AuthorityPhysicsEntity,
|
|
392
533
|
AuthorityPhysicsRoomState,
|
|
393
534
|
AuthorityPlayer,
|
|
535
|
+
AuthorityRoomLimits,
|
|
394
536
|
AuthorityRoomState,
|
|
395
537
|
AuthorityShape,
|
|
538
|
+
AuthorityTargetRefusal,
|
|
396
539
|
BODY_CORRECTION_TAU_MS,
|
|
397
540
|
BODY_EXTRAPOLATE_BACK_TICKS,
|
|
398
541
|
BODY_EXTRAPOLATE_MAX_MS,
|
|
@@ -407,6 +550,7 @@ export {
|
|
|
407
550
|
CONTACT_TAG_MAX,
|
|
408
551
|
CONTACT_VALUE_MAX,
|
|
409
552
|
CONVEYOR_RATE,
|
|
553
|
+
ClaimVerdict,
|
|
410
554
|
ContactConfigError,
|
|
411
555
|
ContactDrawing,
|
|
412
556
|
ContactEvent,
|
|
@@ -419,14 +563,27 @@ export {
|
|
|
419
563
|
DrawHandoff,
|
|
420
564
|
EMPTY_WORLD,
|
|
421
565
|
EMPTY_WORLD_HASH,
|
|
566
|
+
FAST_ACK_EAGER_GAP_MS,
|
|
567
|
+
FAST_ACK_EAGER_RECORDS,
|
|
568
|
+
FAST_BIND_REV,
|
|
569
|
+
FAST_CHALLENGE_JUMP,
|
|
570
|
+
FAST_FRAME_GAP_MS,
|
|
422
571
|
FAST_GAP_FILL_MS,
|
|
423
572
|
FAST_HANDSHAKE_MS,
|
|
573
|
+
FAST_KEEPALIVE_BIND_MS,
|
|
574
|
+
FAST_KEEPALIVE_MS,
|
|
424
575
|
FAST_KEY_BYTES,
|
|
425
576
|
FAST_MAX_ACTIONS,
|
|
426
577
|
FAST_MAX_DATAGRAM_BYTES,
|
|
427
578
|
FAST_MAX_FRAGMENTS,
|
|
428
579
|
FAST_MAX_RECORD_BYTES,
|
|
580
|
+
FAST_OFFER_WAIT_MS,
|
|
581
|
+
FAST_OPEN_ROUND_TRIPS,
|
|
429
582
|
FAST_REASSEMBLY_SLOTS,
|
|
583
|
+
FAST_RETRY_BASE_MS,
|
|
584
|
+
FAST_RETRY_MAX_MS,
|
|
585
|
+
FAST_RETURN_PROOF,
|
|
586
|
+
FAST_RETURN_STABLE_MS,
|
|
430
587
|
FAST_SEQ_AHEAD_MS,
|
|
431
588
|
FAST_SNAPSHOT_HISTORY,
|
|
432
589
|
FAST_STALL_FALLBACK_MS,
|
|
@@ -436,6 +593,8 @@ export {
|
|
|
436
593
|
FastFault,
|
|
437
594
|
FastKind,
|
|
438
595
|
FastMessage,
|
|
596
|
+
FastNotAsked,
|
|
597
|
+
FastTransport,
|
|
439
598
|
GuestGlobal,
|
|
440
599
|
HEAD_LANDING_SPEED,
|
|
441
600
|
HOST_BODY_FIELDS,
|
|
@@ -449,12 +608,14 @@ export {
|
|
|
449
608
|
INPUT_REPEAT_MAX_MS,
|
|
450
609
|
INPUT_REPEAT_RUN_MS,
|
|
451
610
|
INPUT_REPEAT_STEADY,
|
|
611
|
+
INPUT_SETTLE_MS,
|
|
452
612
|
INPUT_TICK_MOD,
|
|
453
613
|
INPUT_TICK_SLACK_S,
|
|
454
614
|
ISLAND_MARGIN_METRES,
|
|
455
615
|
InputConfigError,
|
|
456
616
|
InputRepeat,
|
|
457
617
|
InputUse,
|
|
618
|
+
LIFETIME_DEFAULT,
|
|
458
619
|
LIFTS_MAX,
|
|
459
620
|
LIFT_ID_MAX,
|
|
460
621
|
LIFT_POINTS_MAX,
|
|
@@ -462,6 +623,7 @@ export {
|
|
|
462
623
|
LIFT_TICKS_MAX,
|
|
463
624
|
LIFT_VALUE_MAX,
|
|
464
625
|
LeaveReason,
|
|
626
|
+
LifetimeConfigError,
|
|
465
627
|
LiftEase,
|
|
466
628
|
LiftImpart,
|
|
467
629
|
LiftPathMode,
|
|
@@ -492,7 +654,9 @@ export {
|
|
|
492
654
|
PHYSICS_OVERLAP_MAX_KEYS,
|
|
493
655
|
PHYSICS_PATCH_HZ,
|
|
494
656
|
PHYSICS_PREDICT_MAX_ANGULAR,
|
|
657
|
+
PHYSICS_PREDICT_MAX_BOXES,
|
|
495
658
|
PHYSICS_PREDICT_MAX_LINEAR,
|
|
659
|
+
PHYSICS_PREDICT_MAX_RAMPS,
|
|
496
660
|
PHYSICS_PREDICT_MIN_ITERATIONS,
|
|
497
661
|
PHYSICS_PRESET_LENGTH_UNITS,
|
|
498
662
|
PHYSICS_REAL_LIMITS,
|
|
@@ -500,6 +664,7 @@ export {
|
|
|
500
664
|
PHYSICS_SCALED_LIMITS,
|
|
501
665
|
PHYSICS_SHAPES_MAX,
|
|
502
666
|
PHYSICS_SHAPE_MAX_CHARS,
|
|
667
|
+
PHYSICS_STATIC_PIECE_BYTES,
|
|
503
668
|
PHYSICS_STATIC_PREFIX,
|
|
504
669
|
PHYSICS_SUBSTEPS,
|
|
505
670
|
PHYS_BUDGET_CALM_SHARE,
|
|
@@ -525,9 +690,13 @@ export {
|
|
|
525
690
|
PredictStatus,
|
|
526
691
|
Preset,
|
|
527
692
|
RECORD_ID_MAX_CHARS,
|
|
693
|
+
REJOIN,
|
|
528
694
|
RIDE_CHAIN_MAX,
|
|
529
695
|
RULED_SLEW,
|
|
530
696
|
RULED_SNAP_TICKS,
|
|
697
|
+
RefusalKind,
|
|
698
|
+
RejoinStop,
|
|
699
|
+
RejoinWay,
|
|
531
700
|
RemotePredict,
|
|
532
701
|
SEAT_DRAWINGS,
|
|
533
702
|
SEAT_LIFT_MAX,
|
|
@@ -538,24 +707,31 @@ export {
|
|
|
538
707
|
SHOVE_EASE_DONE,
|
|
539
708
|
STALL_PREDICT_MS,
|
|
540
709
|
STEADY_BUCKETS,
|
|
710
|
+
SUCCESSOR_OPEN_MS,
|
|
541
711
|
SeatContacts,
|
|
542
712
|
SeatWorld,
|
|
713
|
+
ShotWorldCost,
|
|
543
714
|
SlideWay,
|
|
544
715
|
THROTTLE_DILATION,
|
|
545
716
|
THROTTLE_LOW_INPUTS,
|
|
546
717
|
THROTTLE_SEAT_LEAD,
|
|
547
718
|
TICK_RATES,
|
|
548
719
|
TOPDOWN_DEFAULTS,
|
|
720
|
+
TREE_KEY_RADIX,
|
|
549
721
|
TickOutFault,
|
|
550
722
|
TopPolicy,
|
|
551
723
|
UNSTICK_SOLIDS,
|
|
552
724
|
VEHICLE_DEFAULTS,
|
|
553
725
|
WIRE_REST_MAX,
|
|
554
726
|
WIRE_ROW_STRIDE,
|
|
727
|
+
WorldCost,
|
|
555
728
|
WorldError,
|
|
729
|
+
WorldKey,
|
|
556
730
|
WorldLimits,
|
|
557
731
|
acceptUplink,
|
|
558
732
|
applyBody,
|
|
733
|
+
authorityCloseCodeOf,
|
|
734
|
+
axisToClaim,
|
|
559
735
|
blankEntityMotion,
|
|
560
736
|
blankSeatEcho,
|
|
561
737
|
bodyRadiusOf,
|
|
@@ -566,7 +742,9 @@ export {
|
|
|
566
742
|
carryTick,
|
|
567
743
|
castWorld,
|
|
568
744
|
checkResolvedPhysics,
|
|
745
|
+
claimToAxis,
|
|
569
746
|
clampedVelocity,
|
|
747
|
+
comesBackAfter,
|
|
570
748
|
compileContactWorld,
|
|
571
749
|
connectAuthority,
|
|
572
750
|
consumedUse,
|
|
@@ -580,6 +758,7 @@ export {
|
|
|
580
758
|
correctionAt,
|
|
581
759
|
correctionShare,
|
|
582
760
|
correctionTauMs,
|
|
761
|
+
createPrivateAuthority,
|
|
583
762
|
decayedInput,
|
|
584
763
|
declaredContacts,
|
|
585
764
|
decodeFragment,
|
|
@@ -600,6 +779,8 @@ export {
|
|
|
600
779
|
extrapolateBody,
|
|
601
780
|
extrapolationSeconds,
|
|
602
781
|
farApart,
|
|
782
|
+
fastLineAnnouncer,
|
|
783
|
+
fastRetryDelayMs,
|
|
603
784
|
feedWithPayback,
|
|
604
785
|
firstpersonWorld,
|
|
605
786
|
forgiveRepeats,
|
|
@@ -634,6 +815,7 @@ export {
|
|
|
634
815
|
isPresetName,
|
|
635
816
|
isPress,
|
|
636
817
|
isProjectile,
|
|
818
|
+
joinPrivateAuthority,
|
|
637
819
|
keyframeTicks,
|
|
638
820
|
liftBodyKey,
|
|
639
821
|
liftBodyPose,
|
|
@@ -647,8 +829,10 @@ export {
|
|
|
647
829
|
liftStartsOf,
|
|
648
830
|
liftTopAt,
|
|
649
831
|
liftUnder,
|
|
832
|
+
matchKeyOf,
|
|
650
833
|
mayStand,
|
|
651
834
|
motorText,
|
|
835
|
+
nextCodeRegion,
|
|
652
836
|
nextPredictSetSize,
|
|
653
837
|
normalizeAuthorityRegions,
|
|
654
838
|
openFastClient,
|
|
@@ -659,7 +843,11 @@ export {
|
|
|
659
843
|
physicsBudgetMs,
|
|
660
844
|
physicsCeilingValid,
|
|
661
845
|
physicsLimitsAt,
|
|
846
|
+
physicsLimitsForWorld,
|
|
662
847
|
physicsWorldDesc,
|
|
848
|
+
physicsWorldPredicts,
|
|
849
|
+
planAuthorityJoin,
|
|
850
|
+
planSuccessorJoin,
|
|
663
851
|
posedFor,
|
|
664
852
|
posedSolids,
|
|
665
853
|
posedWorld,
|
|
@@ -680,7 +868,9 @@ export {
|
|
|
680
868
|
reconcileThrough,
|
|
681
869
|
reconcilerAck,
|
|
682
870
|
reconcilerAckHold,
|
|
871
|
+
refusalKind,
|
|
683
872
|
regionProbePlan,
|
|
873
|
+
rejoinStep,
|
|
684
874
|
remoteInputWeight,
|
|
685
875
|
renderStamp,
|
|
686
876
|
repeatMaxTicks,
|
|
@@ -690,6 +880,7 @@ export {
|
|
|
690
880
|
resolveContactConfig,
|
|
691
881
|
resolveFirstpersonParams,
|
|
692
882
|
resolveInputConfig,
|
|
883
|
+
resolveLifetime,
|
|
693
884
|
resolveLifts,
|
|
694
885
|
resolvePhysicsConfig,
|
|
695
886
|
resolvePresetParams,
|
|
@@ -717,6 +908,7 @@ export {
|
|
|
717
908
|
seatTouchShare,
|
|
718
909
|
seatUnderProp,
|
|
719
910
|
selectAuthorityRegions,
|
|
911
|
+
selectMatchWorld,
|
|
720
912
|
selfTestPredictCore,
|
|
721
913
|
separateAround,
|
|
722
914
|
separateDrawn,
|
|
@@ -743,16 +935,24 @@ export {
|
|
|
743
935
|
tickSolids,
|
|
744
936
|
toHex,
|
|
745
937
|
topRuleOf,
|
|
938
|
+
udpLine,
|
|
746
939
|
unstickBody,
|
|
747
940
|
uplinkFor,
|
|
748
941
|
uplinkMaxBytes,
|
|
942
|
+
validMatchKey,
|
|
943
|
+
validRoomCode,
|
|
944
|
+
validSuccessorOf,
|
|
749
945
|
validateInitOut,
|
|
750
946
|
validateTickOut,
|
|
751
947
|
viewOnLift,
|
|
752
948
|
wasmSimdSupported,
|
|
949
|
+
webSocketLine,
|
|
753
950
|
wireFieldsOf,
|
|
754
951
|
wireRowOfExport,
|
|
755
952
|
wireRowOfState,
|
|
953
|
+
withWorldCostMeter,
|
|
954
|
+
worldCost,
|
|
955
|
+
worldTreeOrder,
|
|
756
956
|
writeWireRow,
|
|
757
957
|
yieldShares
|
|
758
958
|
};
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { w as EntityApi, E as EntityData, x as EntityInit, G as GenexRoomModule, D as InitContext, I as InputData, J as Json, L as LeaveReason, a7 as LiftsApi, a9 as MODULE_CONTRACT, aa as ModuleConfig, ad as PhysicsAnswer, ae as PhysicsApi, af as PhysicsBodyDesc, ag as PhysicsBodyState, ah as PhysicsBodyType, ai as PhysicsColliderDesc, aj as PhysicsCommandResult, ak as PhysicsCommands, a as PhysicsErrorCode, al as PhysicsEvent, am as PhysicsGroups, an as PhysicsHit, ao as PhysicsJointDesc, ap as PhysicsLimits, aq as PhysicsMotor, ar as PhysicsOverlap, as as PhysicsPose, at as PhysicsQueryFilter, au as PhysicsRefusal, av as PhysicsRequest, aw as PhysicsSetPoseOptions, ax as PhysicsShape, P as PlayerInfo, ay as PresetSpec, az as ProjectileApi, aA as ProjectileField, aB as ProjectileFlight, aC as ProjectileHit, aD as ProjectileInit, aE as Quat, f as RemotePredict, R as ResolvedModuleConfig, aF as ResolvedPhysics, aG as RewindApi, aH as RewoundPose, aI as RoomContext, aK as ShotWorldSpec, T as TickHz, aN as Vec3, aO as WorldApi, aP as WorldClaim, aQ as WorldClaimOptions, aR as WorldRayHit, aS as WorldRayOptions, aT as defineRoom } from '../module-CSpXrzFc.js';
|
|
2
|
+
import '../shot-world-D22tqOUT.js';
|