@types/gimloader 1.8.0 → 1.8.1

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 (3) hide show
  1. gimloader/README.md +2 -2
  2. gimloader/index.d.ts +2091 -175
  3. gimloader/package.json +6 -3
gimloader/index.d.ts CHANGED
@@ -1,173 +1,2092 @@
1
1
  declare namespace Gimloader {
2
- type event = symbol | string;
3
- type eventNS = string | event[];
2
+ type EventEmitter2 = import("eventemitter2").EventEmitter2;
3
+ namespace Stores {
4
+ type Collider = import("@dimforge/rapier2d-compat").Collider;
5
+ type ColliderDesc = import("@dimforge/rapier2d-compat").ColliderDesc;
6
+ type RigidBody = import("@dimforge/rapier2d-compat").RigidBody;
7
+ type RigidBodyDesc = import("@dimforge/rapier2d-compat").RigidBodyDesc;
8
+ type Vector = import("@dimforge/rapier2d-compat").Vector;
9
+ type BaseScene = import("phaser").Scene;
4
10
 
5
- interface ConstructorOptions {
6
- /**
7
- * @default false
8
- * @description set this to `true` to use wildcards.
9
- */
10
- wildcard?: boolean;
11
- /**
12
- * @default '.'
13
- * @description the delimiter used to segment namespaces.
14
- */
15
- delimiter?: string;
16
- /**
17
- * @default false
18
- * @description set this to `true` if you want to emit the newListener events.
19
- */
20
- newListener?: boolean;
21
- /**
22
- * @default false
23
- * @description set this to `true` if you want to emit the removeListener events.
24
- */
25
- removeListener?: boolean;
26
- /**
27
- * @default 10
28
- * @description the maximum amount of listeners that can be assigned to an event.
29
- */
30
- maxListeners?: number;
31
- /**
32
- * @default false
33
- * @description show event name in memory leak message when more than maximum amount of listeners is assigned, default false
34
- */
35
- verboseMemoryLeak?: boolean;
36
- /**
37
- * @default false
38
- * @description disable throwing uncaughtException if an error event is emitted and it has no listeners
39
- */
40
- ignoreErrors?: boolean;
41
- }
42
- interface ListenerFn {
43
- (...values: any[]): void;
44
- }
45
- interface EventAndListener {
46
- (event: string | string[], ...values: any[]): void;
47
- }
11
+ interface Team {
12
+ characters: Map<number, string>;
13
+ id: string;
14
+ name: string;
15
+ score: number;
16
+ }
48
17
 
49
- interface WaitForFilter {
50
- (...values: any[]): boolean;
51
- }
18
+ interface Teams {
19
+ teams: Map<string, Team>;
20
+ updateCounter: number;
21
+ }
52
22
 
53
- interface WaitForOptions {
54
- /**
55
- * @default 0
56
- */
57
- timeout: number;
58
- /**
59
- * @default null
60
- */
61
- filter: WaitForFilter;
62
- /**
63
- * @default false
64
- */
65
- handleError: boolean;
66
- /**
67
- * @default Promise
68
- */
69
- Promise: any;
70
- /**
71
- * @default false
72
- */
73
- overload: boolean;
74
- }
23
+ interface SceneStore {
24
+ currentScene: string;
25
+ gpuTier: number;
26
+ isCursorOverCanvas: boolean;
27
+ }
75
28
 
76
- interface CancelablePromise<T> extends Promise<T> {
77
- cancel(reason: string): undefined;
78
- }
29
+ interface BackgroundLayersManager {
30
+ layerManager: LayerManager;
31
+ scene: Scene;
32
+ createLayer(options: {
33
+ layerId: string;
34
+ depth: number;
35
+ }): void;
36
+ fill(terrain: TerrainOption): void;
37
+ fillForPlatformer(): void;
38
+ fillForTopDown(terrain: TerrainOption): void;
39
+ removeLayer(options: {
40
+ layerId: string;
41
+ }): void;
42
+ }
79
43
 
80
- interface OnceOptions {
81
- /**
82
- * @default 0
83
- */
84
- timeout: number;
85
- /**
86
- * @default Promise
87
- */
88
- Promise: any;
89
- /**
90
- * @default false
91
- */
92
- overload: boolean;
93
- }
44
+ interface LayerManager {
45
+ backgroundLayersManager: BackgroundLayersManager;
46
+ colliders: Map<string, Map<string, string>>;
47
+ layers: Map<string, any>;
48
+ scene: Scene;
49
+ createInitialLayers(): void;
50
+ createLayer(id: string): void;
51
+ fillBottomLayer(terrain: TerrainOption): void;
52
+ getActualLayerDepth(id: string): number;
53
+ moveLayersAboveCharacters(): void;
54
+ onWorldSizeChange(): void;
55
+ }
94
56
 
95
- interface ListenToOptions {
96
- on?: { (event: event | eventNS, handler: ListenerFn): void };
97
- off?: { (event: event | eventNS, handler: ListenerFn): void };
98
- reducers: (event: any) => boolean | object;
99
- }
57
+ interface TileManager {
58
+ cumulTime: number;
59
+ scene: Scene;
60
+ layerManager: LayerManager;
61
+ }
100
62
 
101
- interface GeneralEventEmitter {
102
- addEventListener(event: event, handler: ListenerFn): this;
103
- removeEventListener(event: event, handler: ListenerFn): this;
104
- addListener?(event: event, handler: ListenerFn): this;
105
- removeListener?(event: event, handler: ListenerFn): this;
106
- on?(event: event, handler: ListenerFn): this;
107
- off?(event: event, handler: ListenerFn): this;
108
- }
63
+ interface CharacterOptions {
64
+ id: string;
65
+ x: number;
66
+ y: number;
67
+ scale: number;
68
+ type: string;
69
+ }
109
70
 
110
- interface OnOptions {
111
- async?: boolean;
112
- promisify?: boolean;
113
- nextTick?: boolean;
114
- objectify?: boolean;
115
- }
71
+ interface Spectating {
72
+ findNewCharacter(): void;
73
+ onBeginSpectating(): void;
74
+ onEndSpectating(): void;
75
+ setShuffle(shuffle: boolean, save?: boolean): void;
76
+ }
116
77
 
117
- interface Listener {
118
- emitter: EventEmitter2;
119
- event: event | eventNS;
120
- listener: ListenerFn;
121
- off(): this;
122
- }
78
+ interface CharacterManager {
79
+ characterContainer: import("phaser").GameObjects.Container;
80
+ characters: Map<string, Character>;
81
+ scene: Scene;
82
+ spectating: Spectating;
83
+ addCharacter(options: CharacterOptions): Character;
84
+ cullCharacters(): void;
85
+ removeCharacter(id: string): void;
86
+ update(dt: number): void;
87
+ }
88
+
89
+ interface Removal {
90
+ overlay: Overlay;
91
+ prevMouseWasDown: boolean;
92
+ scene: Scene;
93
+ checkForItem(): void;
94
+ createStateListeners(): void;
95
+ removeSelectedItems(): void;
96
+ update(): void;
97
+ }
98
+
99
+ interface PlatformerEditing {
100
+ setTopDownControlsActive(active: boolean): void;
101
+ }
102
+
103
+ interface SelectedDevicesOverlay {
104
+ graphics: import("phaser").GameObjects.Graphics;
105
+ scene: Scene;
106
+ showing: boolean;
107
+ hide(): void;
108
+ show(rects: Rect[]): void;
109
+ }
110
+
111
+ interface MultiSelect {
112
+ boundingBoxAroundEverything: Rect | null;
113
+ currentlySelectedDevices: Device[];
114
+ currentlySelectedDevicesIds: string[];
115
+ hidingSelectionForDevices: boolean;
116
+ isSelecting: boolean;
117
+ modifierKeyDown: boolean;
118
+ mouseShifts: Vector[];
119
+ movedOrCopiedDevices: Device[];
120
+ overlay: Overlay;
121
+ scene: Scene;
122
+ selectedDevices: Device[];
123
+ selectedDevicesIds: string[];
124
+ selectedDevicesOverlay: SelectedDevicesOverlay;
125
+ selection: Rect | null;
126
+ addDeviceToSelection(device: Device): void;
127
+ endSelectionRect(): void;
128
+ findSelectedDevices(): void;
129
+ hasSomeSelection(): boolean;
130
+ hideSelection(): void;
131
+ multiselectDeleteKeyHandler(): void;
132
+ multiselectKeyHandler(down: boolean): void;
133
+ onDeviceAdded(device: Device): void;
134
+ onDeviceRemoved(id: string): void;
135
+ setShiftParams(): void;
136
+ startSelectionRect(): void;
137
+ unselectAll(): void;
138
+ update(): void;
139
+ updateSelectedDevicesOverlay(): void;
140
+ updateSelectionRect(): void;
141
+ }
142
+
143
+ interface DepthSort {
144
+ overlay: Overlay;
145
+ scene: Scene;
146
+ update(): void;
147
+ }
148
+
149
+ interface ActionManager {
150
+ depthSort: DepthSort;
151
+ multiSelect: MultiSelect;
152
+ platformerEditing: PlatformerEditing;
153
+ removal: Removal;
154
+ update(): void;
155
+ }
156
+
157
+ interface Projectile {
158
+ id: string;
159
+ startTime: number;
160
+ endTime: number;
161
+ start: Vector;
162
+ end: Vector;
163
+ radius: number;
164
+ appearance: string;
165
+ ownerId: string;
166
+ ownerTeamId: string;
167
+ damage: number;
168
+ hitPos?: Vector;
169
+ hitTime?: number;
170
+ }
171
+
172
+ interface Projectiles {
173
+ damageMarkers: any;
174
+ dynamicDevices: Set<Device>;
175
+ fireSlashes: any;
176
+ projectileJSON: Map<string, Projectile>;
177
+ runClientSidePrediction: boolean;
178
+ scene: Scene;
179
+ addProjectile(projectile: Projectile): void;
180
+ fire(pointer: import("phaser").Input.Pointer, snap: boolean): void;
181
+ update(): void;
182
+ }
183
+
184
+ interface WorldBoundsCollider {
185
+ body: RigidBody;
186
+ collider: Collider;
187
+ }
188
+
189
+ interface BodyBounds {
190
+ minX: number;
191
+ minY: number;
192
+ maxX: number;
193
+ maxY: number;
194
+ }
195
+
196
+ interface BodyStatic {
197
+ bounds: BodyBounds;
198
+ cells: Set<string>;
199
+ }
200
+
201
+ interface Body {
202
+ collider?: Collider;
203
+ colliderDesc: ColliderDesc;
204
+ rigidBody?: RigidBody;
205
+ rigidBodyDesc: RigidBodyDesc;
206
+ static: BodyStatic;
207
+ device?: {
208
+ id: string;
209
+ };
210
+ terrain?: {
211
+ key: string;
212
+ };
213
+ }
214
+
215
+ interface ActiveBodies {
216
+ activeBodies: Set<string>;
217
+ bodyManager: BodyManager;
218
+ currentCoordinateKeys: Set<string>;
219
+ world: World;
220
+ disableBody(id: string): void;
221
+ enable(keys: Set<string>, setAll: boolean): void;
222
+ enableBodiesAlongLine(options: {
223
+ start: Vector;
224
+ end: Vector;
225
+ }): void;
226
+ enableBodiesWithinAreas(options: {
227
+ areas: Rect[];
228
+ disableActiveBodiesOutsideArea: boolean;
229
+ }): void;
230
+ enableBody(id: string): void;
231
+ setDirty(): void;
232
+ }
233
+
234
+ interface BodyManager {
235
+ activeBodies: ActiveBodies;
236
+ bodies: Map<string, Body>;
237
+ cells: Map<string, Set<string>>;
238
+ dynamicBodies: Set<string>;
239
+ gridSize: number;
240
+ staticBodies: Set<string>;
241
+ staticSensorBodies: Set<string>;
242
+ _idCount: number;
243
+ find(id: string): Body | undefined;
244
+ findPotentialStaticBodiesWithinArea(area: Rect): Set<string>;
245
+ generateId(): void;
246
+ insert(body: Body): string;
247
+ remove(id: string): void;
248
+ }
249
+
250
+ interface PhysicsManager {
251
+ bodies: BodyManager;
252
+ cumulTime: number;
253
+ lastTime: number;
254
+ physicsStep(dt: number): void;
255
+ runPhysicsLoop(dt: number): void;
256
+ world: World;
257
+ worldBoundsColliders: Set<WorldBoundsCollider>;
258
+ }
259
+
260
+ interface CreateTileOptions {
261
+ x: number;
262
+ y: number;
263
+ tileIndex: number;
264
+ terrainOption: TerrainOption;
265
+ }
266
+
267
+ interface InGameTerrainBuilder {
268
+ afterFailureWithTouch: boolean;
269
+ clearConsumeErrorMessage(): void;
270
+ clearPreviewLayer(): void;
271
+ createPreviewTile(options: CreateTileOptions): void;
272
+ overlay: Overlay;
273
+ previewingTile?: Vector;
274
+ scene: Scene;
275
+ update(): void;
276
+ wasDown: boolean;
277
+ }
278
+
279
+ interface WorldInteractives {
280
+ scene: Scene;
281
+ currentDevice?: Device;
282
+ clearCurrentDevice(): void;
283
+ setCurrentDevice(device: Device): void;
284
+ update(devices: Device[]): void;
285
+ }
286
+
287
+ interface ShowOverlayOptions {
288
+ x: number;
289
+ y: number;
290
+ width: number;
291
+ height: number;
292
+ depth: number;
293
+ }
294
+
295
+ interface Overlay {
296
+ scene: Scene;
297
+ showing: boolean;
298
+ showingDimensions: {
299
+ width: number;
300
+ height: number;
301
+ } | null;
302
+ showingPosition: {
303
+ x: number;
304
+ y: number;
305
+ } | null;
306
+ hide(): void;
307
+ show(options: ShowOverlayOptions): void;
308
+ }
309
+
310
+ interface DevicesPreview {
311
+ devicePreviewOverlay: Overlay;
312
+ previousDevices: Device[];
313
+ scene: Scene;
314
+ removePreviousDevices(isBeingReplaced: boolean): void;
315
+ update(): void;
316
+ }
317
+
318
+ interface DevicesAction {
319
+ inputManager: InputManager;
320
+ scene: Scene;
321
+ onClick(arg: any): void;
322
+ update(): void;
323
+ }
324
+
325
+ interface DeviceProjectiles {
326
+ device: Device;
327
+ addToDynamicDevices(): void;
328
+ collidesWithProjectile(object: Circle): boolean;
329
+ onClientPredictedHit(position: Vector): void;
330
+ removeFromDynamicDevices(): void;
331
+ setDynamic(dynamic: boolean): void;
332
+ }
333
+
334
+ interface DeviceTweens {
335
+ list: import("phaser").Tweens.Tween[];
336
+ device: Device;
337
+ add(config: import("phaser").Types.Tweens.TweenBuilderConfig): import("phaser").Tweens.Tween;
338
+ destroy(): void;
339
+ }
340
+
341
+ interface WirePoints {
342
+ device: Device;
343
+ end: Vector;
344
+ start: Vector;
345
+ onPointChange(): void;
346
+ setBoth(x: number, y: number): void;
347
+ }
348
+
349
+ interface Layers {
350
+ depth: number;
351
+ device: Device;
352
+ layer: string;
353
+ options: any;
354
+ }
355
+
356
+ interface ShadowOptions {
357
+ x: number;
358
+ y: number;
359
+ r1: number;
360
+ r2: number;
361
+ alphaMultip: number;
362
+ depth: number;
363
+ }
364
+
365
+ interface Shadows {
366
+ device: Device;
367
+ list: ShadowOptions[];
368
+ add(options: ShadowOptions): void;
369
+ destroy(): void;
370
+ forEach(callback: (shadow: ShadowOptions) => void): void;
371
+ hide(): void;
372
+ show(): void;
373
+ }
374
+
375
+ interface Circle {
376
+ x: number;
377
+ y: number;
378
+ radius: number;
379
+ }
380
+
381
+ interface RotatedCircle extends Circle {
382
+ angle: number;
383
+ }
384
+
385
+ interface VisualEditingCircle {
386
+ angle: number;
387
+ rotable: boolean;
388
+ radius: number;
389
+ minRadius: number;
390
+ maxRadius: number;
391
+ onChange(value: RotatedCircle): void;
392
+ }
393
+
394
+ interface RotatedRect extends Rect {
395
+ angle: number;
396
+ }
397
+
398
+ interface VisualEditingBox {
399
+ width: number;
400
+ height: number;
401
+ angle: number;
402
+ minWidth: number;
403
+ maxWidth: number;
404
+ minHeight: number;
405
+ maxHeight: number;
406
+ keepRatio: boolean;
407
+ rotable: boolean;
408
+ onChange(value: RotatedRect): void;
409
+ }
410
+
411
+ interface VisualEditing {
412
+ add: {
413
+ box(options: VisualEditingBox): void;
414
+ circle(options: VisualEditingCircle): void;
415
+ };
416
+ device: Device;
417
+ isActive: boolean;
418
+ shapes: (VisualEditingBox | VisualEditingCircle)[];
419
+ clear(): void;
420
+ }
421
+
422
+ interface InteractiveZones {
423
+ add: {
424
+ circle(zone: CircleShort): void;
425
+ rect(zone: Rect): void;
426
+ };
427
+ canInteractThroughColliders: boolean;
428
+ device: Device;
429
+ forceDisabled: boolean;
430
+ zones: (CircleShort | Rect)[];
431
+ contains(x: number, y: number): boolean;
432
+ destroy(): void;
433
+ getCanInteractThroughColliders(): boolean;
434
+ getInfo(): any;
435
+ getMaxDistance(x: number, y: number): number;
436
+ isInteractive(): boolean;
437
+ onPlayerCanInteract(): void;
438
+ onPlayerCantInteractAnyMore(): void;
439
+ setCanInteractThroughColliders(canInteract: boolean): void;
440
+ setForceDisabled(forceDisabled: boolean): void;
441
+ setInfo(info: any): void;
442
+ }
443
+
444
+ interface DeviceInput {
445
+ device: Device;
446
+ enabled: boolean;
447
+ hasKeyListeners: boolean;
448
+ isCurrentlyUnderMouse: boolean;
449
+ addDeviceToCursorUnderList(): void;
450
+ createKeyListeners(): void;
451
+ cutCopyHandler(action: string): void;
452
+ disable(): void;
453
+ dispose(): void;
454
+ disposeKeyListeners(): void;
455
+ enable(): void;
456
+ partIsNoLongerUnderMouse(): void;
457
+ partIsUnderMouse(): void;
458
+ removeDeviceFromCursorUnderList(): void;
459
+ }
460
+
461
+ interface DeviceUI {
462
+ device: Device;
463
+ close(): void;
464
+ open(options: Record<string, any>): void;
465
+ update(options: Record<string, any>): void;
466
+ }
467
+
468
+ interface VFX {
469
+ character: Character;
470
+ damageBoostActive: boolean;
471
+ phaseActive: boolean;
472
+ tintModifierId: string;
473
+ transparencyModifierId: string;
474
+ setTintModifier(id: string): void;
475
+ setTransparencyModifier(id: string): void;
476
+ startDamageBoostAnim(): void;
477
+ startPhaseAnim(): void;
478
+ stopDamageBoostAnim(): void;
479
+ stopPhaseAnim(): void;
480
+ }
481
+
482
+ interface TintParams {
483
+ type: string;
484
+ fromColor: string;
485
+ toColor: string;
486
+ duration: number;
487
+ tween?: import("phaser").Tweens.Tween;
488
+ ease(t: number): number;
489
+ }
490
+
491
+ interface Tint {
492
+ character: Character;
493
+ scene: Scene;
494
+ phase?: TintParams;
495
+ playerAppearanceModifierDevice?: TintParams;
496
+ immunity?: TintParams;
497
+ damageBoost?: TintParams;
498
+ getTintParams(type: string): TintParams | undefined;
499
+ setTintParams(type: string, tint?: TintParams): void;
500
+ startAnimateTint(params: TintParams): void;
501
+ stopAnimateTint(type: string): void;
502
+ update(): void;
503
+ }
504
+
505
+ interface SkinOptions {
506
+ id: string;
507
+ editStyles: Record<string, string>;
508
+ }
509
+
510
+ interface Skin {
511
+ character: Character;
512
+ editStyles?: Record<string, string>;
513
+ latestSkinId: string;
514
+ scene: Scene;
515
+ skinId: string;
516
+ applyEditStyles(options: SkinOptions): void;
517
+ setupSkin(position: Vector): void;
518
+ updateSkin(options: SkinOptions): void;
519
+ }
520
+
521
+ interface Shadow {
522
+ character: Character;
523
+ image?: import("phaser").GameObjects.Image;
524
+ createShadow(): void;
525
+ destroy(): void;
526
+ update(): void;
527
+ }
528
+
529
+ interface TweenScaleOptions {
530
+ type: string;
531
+ scale: number;
532
+ duration: number;
533
+ }
534
+
535
+ interface Scale {
536
+ activeScale: number;
537
+ baseScale: number;
538
+ character: Character;
539
+ respawningScale: number;
540
+ scaleX: number;
541
+ scaleY: number;
542
+ scene: Scene;
543
+ spectatorScale: number;
544
+ dependencyScale: number;
545
+ isVisible: boolean;
546
+ getCurrentScale(type: number): void;
547
+ onSkinChange(): void;
548
+ setScale(type: number, scale: number): void;
549
+ tweenScale(options: TweenScaleOptions): void;
550
+ update(): void;
551
+ }
552
+
553
+ interface Position {
554
+ character: Character;
555
+ update(dt: number): void;
556
+ }
557
+
558
+ interface Network {
559
+ lastAngle?: number;
560
+ lastAngleUpdate: number;
561
+ updateAimAngle(angle: number): void;
562
+ }
563
+
564
+ interface Nametag {
565
+ alpha: number;
566
+ character: Character;
567
+ creatingTag: boolean;
568
+ depth: number;
569
+ destroyed: boolean;
570
+ followScale: boolean;
571
+ fragilityTag?: import("phaser").GameObjects.Text;
572
+ healthMode: string;
573
+ name: string;
574
+ scale: number;
575
+ scene: Scene;
576
+ tag: import("phaser").GameObjects.Text;
577
+ teamState: TeamState;
578
+ fontColor: string;
579
+ tags: import("phaser").GameObjects.Text[];
580
+ createFragilityTag(): void;
581
+ createTag(): void;
582
+ destroy(): void;
583
+ makeVisibleChanges(force?: boolean): void;
584
+ playHideAnimation(): void;
585
+ playShowUpAnimation(): void;
586
+ setName(name: string): void;
587
+ update(update: {
588
+ teamState: TeamState;
589
+ }): void;
590
+ updateFontColor(): void;
591
+ updateFragility(fragility: number): void;
592
+ updateTagAlpha(force?: boolean): void;
593
+ updateTagDepth(force?: boolean): void;
594
+ updateTagPosition(force?: boolean): void;
595
+ updateTagScale(force?: boolean): void;
596
+ }
597
+
598
+ interface CharacterInput {
599
+ character: Character;
600
+ isListeningForInput: boolean;
601
+ scene: Scene;
602
+ setupInput(): void;
603
+ }
604
+
605
+ interface TeamState {
606
+ status: string;
607
+ teamId: string;
608
+ }
609
+
610
+ interface Indicator extends Updates {
611
+ character: Character;
612
+ characterHeight: number;
613
+ depth: number;
614
+ image: import("phaser").GameObjects.Image;
615
+ isMain: boolean;
616
+ isSpectated: boolean;
617
+ lastCharacterAlpha: number;
618
+ scene: Scene;
619
+ teamState: TeamState;
620
+ destroy(): void;
621
+ makeIndicator(): void;
622
+ }
623
+
624
+ interface ImpactAnimation {
625
+ animations: Map<string, import("phaser").GameObjects.Sprite>;
626
+ character: Character;
627
+ loadedAnimations: Set<string>;
628
+ scene: Scene;
629
+ _play(animation: string): void;
630
+ destroy(): void;
631
+ load(animation: string): void;
632
+ play(animation: string): void;
633
+ }
634
+
635
+ interface Immunity {
636
+ character: Character;
637
+ classImmunityActive: boolean;
638
+ spawnImmunityActive: boolean;
639
+ activate(): void;
640
+ activateClassImmunity(): void;
641
+ activateSpawnImmunity(): void;
642
+ deactivate(): void;
643
+ deactivateClassImmunity(): void;
644
+ deactivateSpawnImmunity(): void;
645
+ isActive(): boolean;
646
+ }
647
+
648
+ interface Updates {
649
+ update(update: {
650
+ delta: number;
651
+ }): void;
652
+ updateAlpha(): void;
653
+ updateDepth(): void;
654
+ updatePosition(dt: number): void;
655
+ updateScale(): void;
656
+ }
657
+
658
+ interface Healthbar extends Updates {
659
+ character: Character;
660
+ depth: number;
661
+ isVisible: boolean;
662
+ scene: Scene;
663
+ destroy(): void;
664
+ makeIndicator(): void;
665
+ updateValue(): void;
666
+ }
667
+
668
+ interface Flip {
669
+ character: Character;
670
+ flipXLastX: number;
671
+ isFlipped: boolean;
672
+ lastX: number;
673
+ lastY: number;
674
+ update(): void;
675
+ updateFlipForMainCharacter(): void;
676
+ updateFlipForOthers(): void;
677
+ }
678
+
679
+ interface Dimensions {
680
+ character: Character;
681
+ currentDimensionsId: string;
682
+ bottomY: number;
683
+ centerX: number;
684
+ topY: number;
685
+ x: number;
686
+ onPotentialDimensionsChange(): void;
687
+ }
688
+
689
+ interface Depth {
690
+ character: Character;
691
+ currentDepth: number;
692
+ lastY: number;
693
+ update(): void;
694
+ updateDepth(): void;
695
+ }
696
+
697
+ interface Culling {
698
+ character: Character;
699
+ isInCamera: boolean;
700
+ needsCullUpdate: boolean;
701
+ scene: Scene;
702
+ shouldForceUpdate: boolean;
703
+ forceUpdate(): void;
704
+ hideObject(object: any): void;
705
+ onInCamera(): void;
706
+ onOutCamera(): void;
707
+ showObject(object: any): void;
708
+ updateNeedsUpdate(): void;
709
+ }
710
+
711
+ interface TrailParticles {
712
+ frameHeight: number;
713
+ frameWidth: number;
714
+ imageUrl: string;
715
+ numberOfFrames: number;
716
+ }
717
+
718
+ interface TrailEmitter {
719
+ frequency: number;
720
+ quantity: number;
721
+ blendMode: number;
722
+ speed: number;
723
+ speedVariation: number;
724
+ lifetime: number;
725
+ lifetimeVariation: number;
726
+ scale: number;
727
+ scaleVariation: number;
728
+ scaleThreshold: number;
729
+ rotationRandomAtStart: boolean;
730
+ rotationChange: number;
731
+ rotationChangeVariation: number;
732
+ rotationAllowNegativeChange: boolean;
733
+ alphaThresholdStart: number;
734
+ alphaThresholdEnd: number;
735
+ gravityY: number;
736
+ yOriginChange: number;
737
+ emitterZone: Partial<Vector>;
738
+ }
739
+
740
+ interface TrailAppearance {
741
+ id: string;
742
+ emitter: TrailEmitter;
743
+ particles: TrailParticles;
744
+ }
745
+
746
+ interface CharacterTrail {
747
+ character: Character;
748
+ currentAppearance: TrailAppearance;
749
+ currentAppearanceId: string;
750
+ isReady: boolean;
751
+ lastSetAlpha: number;
752
+ destroy(): void;
753
+ followCharacter(): void;
754
+ setNewAppearance(appearance: TrailAppearance): void;
755
+ update(): void;
756
+ updateAppearance(id: string): void;
757
+ }
758
+
759
+ interface TweenAlphaOptions {
760
+ alpha: number;
761
+ type: string;
762
+ duration: number;
763
+ ease?: string;
764
+ }
765
+
766
+ interface Alpha {
767
+ character: Character;
768
+ cinematicModeAlpha: number;
769
+ currentAlpha: number;
770
+ immunity: number;
771
+ phaseAlpha: number;
772
+ playerAppearanceModifierDeviceAlpha: number;
773
+ scene: Scene;
774
+ getCurrentAlpha(): number;
775
+ setAlpha(type: string, alpha: number): void;
776
+ tweenAlpha(options: TweenAlphaOptions): void;
777
+ update(): void;
778
+ }
779
+
780
+ interface EndInfo {
781
+ end: number;
782
+ start: number;
783
+ x: number;
784
+ y: number;
785
+ }
786
+
787
+ interface Point {
788
+ endTime: number;
789
+ endX: number;
790
+ endY: number;
791
+ startTime: number;
792
+ startX: number;
793
+ startY: number;
794
+ teleported: boolean;
795
+ usedTeleported: boolean;
796
+ }
797
+
798
+ interface Movement {
799
+ character: Character;
800
+ currentPoint: Point;
801
+ currentTime: number;
802
+ nonMainCharacterGrounded: boolean;
803
+ pointMap: Point[];
804
+ targetIsDirty: boolean;
805
+ targetNonMainCharacterGrounded: boolean;
806
+ targetX: number;
807
+ targetY: number;
808
+ teleportCount: number;
809
+ teleported: boolean;
810
+ getCurrentEndInfo(): EndInfo;
811
+ moveToTargetPosition(): void;
812
+ onMainCharacterTeleport(): void;
813
+ postPhysicsUpdate(dt: number): void;
814
+ setNonMainCharacterTargetGrounded(grounded: boolean): void;
815
+ setTargetX(x: number): void;
816
+ setTargetY(y: number): void;
817
+ setTeleportCount(teleportCount: number): void;
818
+ update(dt: number): void;
819
+ }
820
+
821
+ interface NonMainCharacterState {
822
+ grounded: boolean;
823
+ }
824
+
825
+ interface Animation {
826
+ availableAnimations: string[];
827
+ blinkTimer: number;
828
+ bodyAnimationLocked: boolean;
829
+ bodyAnimationStartedAt: number;
830
+ character: Character;
831
+ currentBodyAnimation: string;
832
+ currentEyeAnimation: string;
833
+ lastGroundedAnimationAt: number;
834
+ nonMainCharacterState: NonMainCharacterState;
835
+ prevNonMainCharacterState: NonMainCharacterState;
836
+ skinChanged: boolean;
837
+ destroy(): void;
838
+ onAnimationComplete(options: any): void;
839
+ onSkinChanged(): void;
840
+ playAnimationOrClearTrack(animations: string[], track: number): void;
841
+ playBodyAnimation(animation: string): void;
842
+ playBodySupplementalAnimation(animation: string): void;
843
+ playEyeAnimation(animation: string): void;
844
+ playJumpSupplementalAnimation(animation: string): void;
845
+ playMovementSupplementalAnimation(animation: string): void;
846
+ setupAnimations(): void;
847
+ startBlinkAnimation(): void;
848
+ stopBlinkAnimation(): void;
849
+ update(dt: number): void;
850
+ }
851
+
852
+ interface ProjectileAppearance {
853
+ imageUrl: string;
854
+ rotateToTarget: boolean;
855
+ scale: number;
856
+ }
857
+
858
+ interface WeaponAsset extends BaseAsset {
859
+ fireFrames: number[];
860
+ fromCharacterCenterRadius: number;
861
+ hideFireSlash: boolean;
862
+ idleFrames: number;
863
+ originX: number;
864
+ originY: number;
865
+ }
866
+
867
+ interface BaseAsset {
868
+ frameHeight: number;
869
+ frameRate: number;
870
+ frameWidth: number;
871
+ imageUrl: string;
872
+ scale: number;
873
+ }
874
+
875
+ interface ImpactAsset extends BaseAsset {
876
+ frames: number[];
877
+ hideIfNoHit?: boolean;
878
+ }
879
+
880
+ interface SoundEffect {
881
+ path: string;
882
+ volume: number;
883
+ }
884
+
885
+ interface CurrentAppearance {
886
+ id: string;
887
+ explosionSfx: SoundEffect[];
888
+ fireSfx: SoundEffect[];
889
+ impact: ImpactAsset;
890
+ projectile: ProjectileAppearance;
891
+ reloadSfx: SoundEffect;
892
+ weapon: WeaponAsset;
893
+ }
894
+
895
+ interface AimingAndLookingAround {
896
+ angleTween?: import("phaser").Tweens.Tween;
897
+ character: Character;
898
+ currentAngle?: number;
899
+ currentAppearance?: CurrentAppearance;
900
+ currentWeaponId?: string;
901
+ isAiming: boolean;
902
+ lastUsedAngle: number;
903
+ sprite: import("phaser").GameObjects.Sprite;
904
+ targetAngle?: number;
905
+ characterShouldFlipX(): boolean;
906
+ destroy(): void;
907
+ isCurrentlyAiming(): boolean;
908
+ onInventoryStateChange(): void;
909
+ playFireAnimation(): void;
910
+ setImage(appearance: CurrentAppearance): void;
911
+ setSpriteParams(skipRecalculateAlpha: boolean): void;
912
+ setTargetAngle(angle: number, instant?: boolean): void;
913
+ update(): void;
914
+ updateAnotherCharacter(): void;
915
+ updateMainCharacterMouse(): void;
916
+ updateMainCharacterTouch(): void;
917
+ }
918
+
919
+ interface ServerPosition {
920
+ packet: number;
921
+ x: number;
922
+ y: number;
923
+ jsonState: string;
924
+ teleport: boolean;
925
+ }
926
+
927
+ interface Bodies {
928
+ character: Character;
929
+ collider: Collider;
930
+ colliderDesc: ColliderDesc;
931
+ rigidBody: RigidBody;
932
+ rigidBodyDesc: RigidBodyDesc;
933
+ }
934
+
935
+ interface PhysicsInput {
936
+ _jumpKeyPressed: boolean;
937
+ activeClassDeviceId: string;
938
+ angle: number;
939
+ ignoredStaticBodies: Set<any>;
940
+ ignoredTileBodies: Set<any>;
941
+ jump: boolean;
942
+ projectileHitForcesQueue: Set<any>;
943
+ }
944
+
945
+ interface MovementState {
946
+ accelerationTicks: number;
947
+ direction: string;
948
+ xVelocity: number;
949
+ }
950
+
951
+ interface Jump {
952
+ actuallyJumped: boolean;
953
+ isJumping: boolean;
954
+ jumpCounter: number;
955
+ jumpTicks: number;
956
+ jumpsLeft: number;
957
+ xVelocityAtJumpStart: number;
958
+ }
959
+
960
+ interface PhysicsState {
961
+ forces: any[];
962
+ gravity: number;
963
+ grounded: boolean;
964
+ groundedTicks: number;
965
+ jump: Jump;
966
+ lastGroundedAngle: number;
967
+ movement: MovementState;
968
+ velocity: Vector;
969
+ }
970
+
971
+ interface Physics {
972
+ character: Character;
973
+ currentPacketId: number;
974
+ frameInputsHistory: Map<number, PhysicsInput>;
975
+ justAppliedProjectileHitForces: Set<any>;
976
+ lastClassDeviceActivationId: number;
977
+ lastPacketSent: number[];
978
+ lastSentClassDeviceActivationId: number;
979
+ lastSentTerrainUpdateId: number;
980
+ lastTerrainUpdateId: number;
981
+ newlyAddedTileBodies: Set<any>;
982
+ phase: boolean;
983
+ physicsBodyId: string;
984
+ prevState: PhysicsState;
985
+ projectileHitForcesHistory: Map<any, any>;
986
+ projectileHitForcesQueue: Set<any>;
987
+ scene: Scene;
988
+ state: PhysicsState;
989
+ tickInput: TickInput;
990
+ destroy(): void;
991
+ getBody(): Bodies;
992
+ postUpdate(dt: number): void;
993
+ preUpdate(): void;
994
+ sendToServer(): void;
995
+ setServerPosition(serverPosition: ServerPosition): void;
996
+ setupBody(x: number, y: number): void;
997
+ updateDebugGraphics(): void;
998
+ }
999
+
1000
+ interface Character {
1001
+ aimingAndLookingAround: AimingAndLookingAround;
1002
+ alpha: Alpha;
1003
+ animation: Animation;
1004
+ body: Vector;
1005
+ characterTrail: CharacterTrail;
1006
+ culling: Culling;
1007
+ depth: Depth;
1008
+ dimensions: Dimensions;
1009
+ flip: Flip;
1010
+ healthbar: Healthbar;
1011
+ id: string;
1012
+ immunity: Immunity;
1013
+ impactAnimation: ImpactAnimation;
1014
+ indicator: Indicator;
1015
+ input: CharacterInput;
1016
+ isActive: boolean;
1017
+ isDestroyed: boolean;
1018
+ isMain: boolean;
1019
+ movement: Movement;
1020
+ nametag: Nametag;
1021
+ network: Network;
1022
+ physics: Physics;
1023
+ position: Position;
1024
+ prevBody: Vector;
1025
+ scale: Scale;
1026
+ scene: Scene;
1027
+ shadow: Shadow;
1028
+ skin: Skin;
1029
+ spine: any;
1030
+ teamId: string;
1031
+ tint: Tint;
1032
+ type: string;
1033
+ vfx: VFX;
1034
+ destroy(): void;
1035
+ setIsMain(isMain: boolean): void;
1036
+ update(dt: number): void;
1037
+ }
1038
+
1039
+ interface UpdateCullOptions {
1040
+ mainCharacter: Character;
1041
+ isPhase: boolean;
1042
+ insideView: boolean;
1043
+ }
123
1044
 
124
- class EventEmitter2 {
125
- constructor(options?: ConstructorOptions);
126
- emit(event: event | eventNS, ...values: any[]): boolean;
127
- emitAsync(event: event | eventNS, ...values: any[]): Promise<any[]>;
128
- addListener(event: event | eventNS, listener: ListenerFn): this | Listener;
129
- on(event: event | eventNS, listener: ListenerFn, options?: boolean | OnOptions): this | Listener;
130
- prependListener(event: event | eventNS, listener: ListenerFn, options?: boolean | OnOptions): this | Listener;
131
- once(event: event | eventNS, listener: ListenerFn, options?: true | OnOptions): this | Listener;
132
- prependOnceListener(
133
- event: event | eventNS,
134
- listener: ListenerFn,
135
- options?: boolean | OnOptions,
136
- ): this | Listener;
137
- many(
138
- event: event | eventNS,
139
- timesToListen: number,
140
- listener: ListenerFn,
141
- options?: boolean | OnOptions,
142
- ): this | Listener;
143
- prependMany(
144
- event: event | eventNS,
145
- timesToListen: number,
146
- listener: ListenerFn,
147
- options?: boolean | OnOptions,
148
- ): this | Listener;
149
- onAny(listener: EventAndListener): this;
150
- prependAny(listener: EventAndListener): this;
151
- offAny(listener: ListenerFn): this;
152
- removeListener(event: event | eventNS, listener: ListenerFn): this;
153
- off(event: event | eventNS, listener: ListenerFn): this;
154
- removeAllListeners(event?: event | eventNS): this;
155
- setMaxListeners(n: number): void;
156
- getMaxListeners(): number;
157
- eventNames(nsAsArray?: boolean): (event | eventNS)[];
158
- listenerCount(event?: event | eventNS): number;
159
- listeners(event?: event | eventNS): ListenerFn[];
160
- listenersAny(): ListenerFn[];
161
- waitFor(event: event | eventNS, timeout?: number): CancelablePromise<any[]>;
162
- waitFor(event: event | eventNS, filter?: WaitForFilter): CancelablePromise<any[]>;
163
- waitFor(event: event | eventNS, options?: WaitForOptions): CancelablePromise<any[]>;
164
- listenTo(target: GeneralEventEmitter, events: event | eventNS, options?: ListenToOptions): this;
165
- listenTo(target: GeneralEventEmitter, events: event[], options?: ListenToOptions): this;
166
- listenTo(target: GeneralEventEmitter, events: object, options?: ListenToOptions): this;
167
- stopListeningTo(target?: GeneralEventEmitter, event?: event | eventNS): boolean;
168
- hasListeners(event?: string): boolean;
169
- static once(emitter: EventEmitter2, event: event | eventNS, options?: OnceOptions): CancelablePromise<any[]>;
170
- static defaultMaxListeners: number;
1045
+ interface Cull {
1046
+ device: Device;
1047
+ ignoresCull: boolean;
1048
+ isInsideView: boolean;
1049
+ margin: number;
1050
+ wasInsideView: boolean;
1051
+ getMargin(): number;
1052
+ ignoreCulling(): void;
1053
+ setMargin(margin: number): void;
1054
+ setOnEnterViewCallback(callback: () => void): void;
1055
+ setOnLeaveViewCallback(callback: () => void): void;
1056
+ onEnterViewCallback?(): void;
1057
+ onLeaveViewCallback?(): void;
1058
+ updateCull(options: UpdateCullOptions): void;
1059
+ }
1060
+
1061
+ type ColliderOptions = {
1062
+ device: Device;
1063
+ scene: Scene;
1064
+ angle: number;
1065
+ } & DeviceCollider;
1066
+
1067
+ type DeviceCollider = RectShort | CircleShort | Ellipse;
1068
+
1069
+ interface Colliders {
1070
+ add: {
1071
+ box(collider: RectShort): void;
1072
+ circle(collider: CircleShort): void;
1073
+ ellipse(collider: Ellipse): void;
1074
+ };
1075
+ device: Device;
1076
+ list: DeviceCollider[];
1077
+ createOptions(collider: DeviceCollider): ColliderOptions;
1078
+ destroy(): void;
1079
+ forEach(callback: (collider: DeviceCollider) => void): void;
1080
+ hideDebug(): void;
1081
+ showDebug(): void;
1082
+ }
1083
+
1084
+ interface Rect {
1085
+ x: number;
1086
+ y: number;
1087
+ width: number;
1088
+ height: number;
1089
+ }
1090
+
1091
+ interface BoundingBox {
1092
+ cachedBoundingBox: Rect;
1093
+ device: Device;
1094
+ hardcodedBoundingBox?: Rect;
1095
+ clearCached(): void;
1096
+ clearHardcoded(): void;
1097
+ getBoundingBox(): Rect;
1098
+ isHardcoded(): boolean;
1099
+ isInsideBoundingBox(x: number, y: number): boolean;
1100
+ setHardcoded(rect: Rect): void;
1101
+ }
1102
+
1103
+ interface AppearanceVariation {
1104
+ device: Device;
1105
+ resetAppearance(): void;
1106
+ setPreviewAppearance(): void;
1107
+ setRemovalAppearance(): void;
1108
+ }
1109
+
1110
+ interface BaseDevice {
1111
+ isPreview: boolean;
1112
+ placedByClient: boolean;
1113
+ isDestroyed: boolean;
1114
+ x: number;
1115
+ y: number;
1116
+ forceUseMyState: boolean;
1117
+ options: Record<string, any>;
1118
+ state: Record<string, any>;
1119
+ prevState: Record<string, any>;
1120
+ name: string;
1121
+ id: string;
1122
+ scene: Scene;
1123
+ deviceOption: DeviceOption;
1124
+ visualEditing: VisualEditing;
1125
+ shadows: Shadows;
1126
+ input: DeviceInput;
1127
+ parts: any;
1128
+ cull: Cull;
1129
+ boundingBox: BoundingBox;
1130
+ appearanceVariation: AppearanceVariation;
1131
+ colliders: Colliders;
1132
+ interactiveZones: InteractiveZones;
1133
+ deviceUI: DeviceUI;
1134
+ layers: Layers;
1135
+ wirePoints: WirePoints;
1136
+ tweens: DeviceTweens;
1137
+ projectiles: DeviceProjectiles;
1138
+ sensors: any;
1139
+ onHide: (() => void) | null;
1140
+ onShow: (() => void) | null;
1141
+ onUpdate: (() => void) | null;
1142
+ initialStateProcessing(state: Record<string, any>): Record<string, any>;
1143
+ getMaxDepth(): number;
1144
+ onStateUpdateFromServer(key: string, value: any): void;
1145
+ getRealKey(key: string): string;
1146
+ onPostUpdate(): void;
1147
+ onInit(): void;
1148
+ onMessage(message: {
1149
+ key: string;
1150
+ data: any;
1151
+ }): void;
1152
+ onStateChange(key: string): void;
1153
+ onDestroy(options: {
1154
+ isBeingReplaced: boolean;
1155
+ }): void;
1156
+ sendToServerDevice(key: string, data: any): void;
1157
+ openDeviceUI(): void;
1158
+ checkIfCollidersEnabled(): boolean;
1159
+ destroy(options: {
1160
+ isBeingReplaced: boolean;
1161
+ }): void;
1162
+ }
1163
+
1164
+ type Device = BaseDevice & {
1165
+ [key: string]: any;
1166
+ };
1167
+
1168
+ interface Cameras {
1169
+ allCameras: Device[];
1170
+ allCamerasNeedsUpdate: boolean;
1171
+ camerasPlayerIsInside: any[];
1172
+ scene: Scene;
1173
+ wasInPrePhase: boolean;
1174
+ findNewCameras(allCameras: Device[], x: number, y: number): any;
1175
+ setCurrentCameraSizeDevice(device: Device): void;
1176
+ switchToDefaultCameraSize(reset: boolean): void;
1177
+ update(devices: Device[]): void;
1178
+ }
1179
+
1180
+ interface Devices {
1181
+ allDevices: Device[];
1182
+ cameras: Cameras;
1183
+ devicesAction: DevicesAction;
1184
+ devicesPreview: DevicesPreview;
1185
+ devicesToPostUpdate: Set<Device>;
1186
+ devicesToUpdate: Set<Device>;
1187
+ interactives: WorldInteractives;
1188
+ scene: Scene;
1189
+ visualEditingManager: any;
1190
+ addDevice(device: Device): void;
1191
+ cullDevices(): void;
1192
+ findDeviceUnderMouse(): Device | undefined;
1193
+ getDeviceById(id: string): Device | undefined;
1194
+ hasDevice(id: string): boolean;
1195
+ removeDeviceById(id: string, options: {
1196
+ isBeingReplaced: boolean;
1197
+ }): void;
1198
+ update(dt: number): void;
1199
+ }
1200
+
1201
+ interface WorldManager {
1202
+ devices: Devices;
1203
+ inGameTerrainBuilder: InGameTerrainBuilder;
1204
+ physics: PhysicsManager;
1205
+ projectiles: Projectiles;
1206
+ scene: Scene;
1207
+ terrain: any;
1208
+ wires: any;
1209
+ update(dt: number): void;
1210
+ }
1211
+
1212
+ interface MovementPointer {
1213
+ id: string;
1214
+ x: number;
1215
+ y: number;
1216
+ downX: number;
1217
+ downY: number;
1218
+ }
1219
+
1220
+ interface Mouse {
1221
+ clickListeners: Map<string, (pointer: import("phaser").Input.Pointer) => void>;
1222
+ downX: number;
1223
+ downY: number;
1224
+ isHoldingDown: boolean;
1225
+ movementPointer?: MovementPointer;
1226
+ scene: Scene;
1227
+ stopRunningClickHandlers: boolean;
1228
+ worldX: number;
1229
+ worldY: number;
1230
+ x: number;
1231
+ y: number;
1232
+ addClickListener(options: {
1233
+ callback: (pointer: import("phaser").Input.Pointer) => void;
1234
+ }): () => void;
1235
+ pointerUpdate(pointer: import("phaser").Input.Pointer): void;
1236
+ removeClickListener(id: string): void;
1237
+ shouldBecomeMovementPointer(pointer: import("phaser").Input.Pointer): boolean;
1238
+ }
1239
+
1240
+ interface KeyboardState {
1241
+ isHoldingDown: boolean;
1242
+ isHoldingLeft: boolean;
1243
+ isHoldingRight: boolean;
1244
+ isHoldingUp: boolean;
1245
+ isHoldingSpace: boolean;
1246
+ }
1247
+
1248
+ interface Keyboard {
1249
+ heldKeys: Set<string>;
1250
+ scene: Scene;
1251
+ state: KeyboardState;
1252
+ createListeners(): void;
1253
+ isKeyDown(key: number): boolean;
1254
+ }
1255
+
1256
+ interface PressedKeys {
1257
+ up: boolean;
1258
+ down: boolean;
1259
+ left: boolean;
1260
+ right: boolean;
1261
+ }
1262
+
1263
+ interface Cursor {
1264
+ scene: Scene;
1265
+ createStateListeners(): void;
1266
+ updateCursor(): void;
1267
+ }
1268
+
1269
+ interface AimCursor {
1270
+ aimCursor: import("phaser").GameObjects.Sprite;
1271
+ aimCursorWorldPos: Vector;
1272
+ centerShiftX: number;
1273
+ centerShiftY: number;
1274
+ scene: Scene;
1275
+ x: number;
1276
+ y: number;
1277
+ update(): void;
1278
+ }
1279
+
1280
+ interface TickInput {
1281
+ angle: number | null;
1282
+ jump: boolean;
1283
+ _jumpKeyPressed: boolean;
1284
+ }
1285
+
1286
+ interface InputManager {
1287
+ aimCursor: AimCursor;
1288
+ currentInput: TickInput;
1289
+ cursor: Cursor;
1290
+ isListeningForInput: boolean;
1291
+ jumpedSinceLastPhysicsFetch: boolean;
1292
+ keyboard: Keyboard;
1293
+ mouse: Mouse;
1294
+ physicsInputHandledBetweenUpdates: boolean;
1295
+ scene: Scene;
1296
+ getAimingDirection(): Vector;
1297
+ getInputAngle(): number | null;
1298
+ getKeys(): PressedKeys;
1299
+ getMouseWorldXY(): Vector;
1300
+ getPhysicsInput(): TickInput;
1301
+ refreshInput(): void;
1302
+ update(): void;
1303
+ }
1304
+
1305
+ interface Scene extends BaseScene {
1306
+ actionManager: ActionManager;
1307
+ cameraHelper: any;
1308
+ characterManager: CharacterManager;
1309
+ dt: number;
1310
+ inputManager: InputManager;
1311
+ resizeManager: any;
1312
+ shadowsManager: any;
1313
+ spine: any;
1314
+ tileManager: TileManager;
1315
+ uiManager: any;
1316
+ worldManager: WorldManager;
1317
+ create(): void;
1318
+ }
1319
+
1320
+ interface Phaser {
1321
+ mainCharacter: Character;
1322
+ mainCharacterTeleported: boolean;
1323
+ scene: Scene;
1324
+ }
1325
+
1326
+ interface NetworkStore {
1327
+ attemptingToConnect: boolean;
1328
+ attemptingToReconnect: boolean;
1329
+ authId: string;
1330
+ client: any;
1331
+ clientConnectionString: string;
1332
+ error: any;
1333
+ errorFindingServerForGame: boolean;
1334
+ errorJoiningRoom: boolean;
1335
+ failedToReconnect: boolean;
1336
+ findingServerForGame: boolean;
1337
+ hasJoinedRoom: boolean;
1338
+ isOffline: boolean;
1339
+ isUpToDateWithPingPong: boolean;
1340
+ joinedRoom: boolean;
1341
+ phaseBeforeReconnect: string | null;
1342
+ ping: number;
1343
+ room: any;
1344
+ roomIntentErrorMessage: string;
1345
+ syncingAfterReconnection: boolean;
1346
+ }
1347
+
1348
+ interface Matchmaker {
1349
+ gameCode: string;
1350
+ }
1351
+
1352
+ interface Loading {
1353
+ completedInitialLoad: boolean;
1354
+ loadedInitialDevices: boolean;
1355
+ loadedInitialTerrain: boolean;
1356
+ percentageAssetsLoaded: number;
1357
+ }
1358
+
1359
+ interface Hooks {
1360
+ hookJSON: string;
1361
+ }
1362
+
1363
+ interface EditingStore {
1364
+ accessPoints: Map<any, any>;
1365
+ gridSnap: number;
1366
+ showMemoryBarAtAllTimes: boolean;
1367
+ }
1368
+
1369
+ interface Assignment {
1370
+ hasSavedProgress: boolean;
1371
+ objective: string;
1372
+ percentageComplete: number;
1373
+ }
1374
+
1375
+ interface ActivityFeed {
1376
+ feedItems: {
1377
+ id: string;
1378
+ message: string;
1379
+ }[];
1380
+ }
1381
+
1382
+ interface CustomAssetOption {
1383
+ id: string;
1384
+ maxOnMap: number;
1385
+ memoryCost: number;
1386
+ minimumRoleLevel?: number;
1387
+ validate: any;
1388
+ }
1389
+
1390
+ interface TerrainOption {
1391
+ id: string;
1392
+ name: string;
1393
+ maskTilesUrl: string;
1394
+ borderTilesUrl: string;
1395
+ fillUrl: string;
1396
+ blockedMapStyles?: string[];
1397
+ seasonTicketRequired?: boolean;
1398
+ previewUrl: string;
1399
+ health?: number;
1400
+ minimumRoleLevel?: number;
1401
+ }
1402
+
1403
+ interface SkinOption {
1404
+ id: string;
1405
+ name: string;
1406
+ minimumRoleLevel?: number;
1407
+ }
1408
+
1409
+ interface CircleShort {
1410
+ x: number;
1411
+ y: number;
1412
+ r: number;
1413
+ }
1414
+
1415
+ interface RectShort {
1416
+ x: number;
1417
+ y: number;
1418
+ w: number;
1419
+ h: number;
1420
+ }
1421
+
1422
+ interface RotatedRectShort extends RectShort {
1423
+ angle: number;
1424
+ }
1425
+
1426
+ interface RotatedEllipse extends Ellipse {
1427
+ angle: number;
1428
+ }
1429
+
1430
+ interface Ellipse {
1431
+ x: number;
1432
+ y: number;
1433
+ r1: number;
1434
+ r2: number;
1435
+ }
1436
+
1437
+ interface PropOption {
1438
+ id: string;
1439
+ name: string;
1440
+ scaleMultip: number;
1441
+ originX: number;
1442
+ originY: number;
1443
+ imageUrl: string;
1444
+ rectColliders: RotatedRectShort[];
1445
+ circleColliders: CircleShort[];
1446
+ ellipseColliders: RotatedEllipse[];
1447
+ shadows: Ellipse[];
1448
+ seasonTicketRequired?: boolean;
1449
+ minimumRoleLevel?: number;
1450
+ defaultLayer?: string;
1451
+ }
1452
+
1453
+ interface WeaponShared {
1454
+ cooldownBetweenShots: number;
1455
+ allowAutoFire: boolean;
1456
+ startingProjectileDistanceFromCharacter: number;
1457
+ }
1458
+
1459
+ interface Weapon {
1460
+ type: string;
1461
+ appearance: string;
1462
+ shared: WeaponShared;
1463
+ bullet?: {
1464
+ ammoItemId: string;
1465
+ };
1466
+ }
1467
+
1468
+ interface ItemOption {
1469
+ type: string;
1470
+ id: string;
1471
+ name: string;
1472
+ editorName: string;
1473
+ description: string;
1474
+ previewImage: string;
1475
+ rarity?: string;
1476
+ weapon?: Weapon;
1477
+ minimumRoleLevel?: number;
1478
+ useCommand?: string;
1479
+ consumeType?: string;
1480
+ terrainId?: string;
1481
+ maxStackSize?: number;
1482
+ }
1483
+
1484
+ interface OptionSchema {
1485
+ options: any[];
1486
+ categories?: any[];
1487
+ }
1488
+
1489
+ interface DeviceInfo {
1490
+ id: string;
1491
+ name: string;
1492
+ description?: string;
1493
+ optionSchema: OptionSchema;
1494
+ defaultState: any;
1495
+ codeGridSchema: CodeGridSchema;
1496
+ wireConfig?: any;
1497
+ minimumRoleLevel?: number;
1498
+ maxOnMap?: number;
1499
+ initialMemoryCost?: number;
1500
+ subsequentMemoryCost?: number;
1501
+ supportedMapStyles?: string[];
1502
+ seasonTicketRequired?: boolean;
1503
+ maximumRoleLevel?: number;
1504
+ }
1505
+
1506
+ interface CodeGrids {
1507
+ blockCategories: string;
1508
+ customBlocks: string;
1509
+ customBlocksParsed: any[];
1510
+ }
1511
+
1512
+ interface WorldOptions {
1513
+ codeGrids: CodeGrids;
1514
+ customAssetsOptions: CustomAssetOption[];
1515
+ deviceOptions: DeviceInfo[];
1516
+ hasAllProps: boolean;
1517
+ itemOptions: ItemOption[];
1518
+ propsOptions: PropOption[];
1519
+ skinOptions: SkinOption[];
1520
+ terrainOptions: TerrainOption[];
1521
+ }
1522
+
1523
+ interface Limits {
1524
+ blocksPerCodeGrid: number;
1525
+ codeGrids: number;
1526
+ codeGridsPerDevice: number;
1527
+ collidingTiles: number;
1528
+ customAssetOnMapDefault: number;
1529
+ deviceMaxOnMapDefault: number;
1530
+ nonCollidingTiles: number;
1531
+ wires: number;
1532
+ }
1533
+
1534
+ interface Counters {
1535
+ codeGrids: number;
1536
+ collidingTiles: number;
1537
+ customAssets: Map<string, number>;
1538
+ devices: Map<string, number>;
1539
+ nonCollidingTiles: number;
1540
+ wires: number;
1541
+ }
1542
+
1543
+ interface Costs {
1544
+ codeGrid: number;
1545
+ collidingTile: number;
1546
+ customAssetDefault: number;
1547
+ deviceInitialDefault: number;
1548
+ deviceSubsequentDefault: number;
1549
+ nonCollidingTile: number;
1550
+ wire: number;
1551
+ }
1552
+
1553
+ interface MemorySystem {
1554
+ costs: Costs;
1555
+ counters: Counters;
1556
+ limits: Limits;
1557
+ maxUsedMemory: number;
1558
+ usedMemoryCost: number;
1559
+ }
1560
+
1561
+ interface CharacterData {
1562
+ allowWeaponFire: boolean;
1563
+ existsBeforeReconnect: boolean;
1564
+ fragility: number;
1565
+ health: number;
1566
+ id: string;
1567
+ isActive: boolean;
1568
+ lastPlayersTeamId: string;
1569
+ name: string;
1570
+ permissions: Permissions;
1571
+ score: number;
1572
+ teamId: string;
1573
+ type: string;
1574
+ }
1575
+
1576
+ interface Characters {
1577
+ characters: Map<string, CharacterData>;
1578
+ }
1579
+
1580
+ interface Scorebar {
1581
+ teamColors: string[];
1582
+ teams: string[];
1583
+ }
1584
+
1585
+ interface NoneGui {
1586
+ addMenu: {
1587
+ screen: string;
1588
+ };
1589
+ duringGameScreenVisible: boolean;
1590
+ optionsMenu: {
1591
+ screen: string;
1592
+ };
1593
+ screen: string;
1594
+ }
1595
+
1596
+ interface Modals {
1597
+ closeAllModals: () => void;
1598
+ cosmosModalOpen: boolean;
1599
+ switchToRegisterScreenWhenCosmosModalOpens: boolean;
1600
+ }
1601
+
1602
+ interface KnockoutAlert {
1603
+ id: string;
1604
+ name: string;
1605
+ }
1606
+
1607
+ interface GuiSlot {
1608
+ id: string;
1609
+ position: string;
1610
+ text: string;
1611
+ trackedItemId: any;
1612
+ showTrackedItemMaximumAmount: boolean;
1613
+ type: string;
1614
+ priority: number;
1615
+ color: string;
1616
+ }
1617
+
1618
+ interface DamageIndicator {
1619
+ show: boolean;
1620
+ /** `h` for red, `s` for blue, and any other string for yellow. */
1621
+ type: string;
1622
+ }
1623
+
1624
+ interface BottomInGamePrimaryContent {
1625
+ interactionWantsToBeVisible: boolean;
1626
+ prioritizeInteraction: boolean;
1627
+ }
1628
+
1629
+ interface Achievement {
1630
+ id: string;
1631
+ key: string;
1632
+ reset: () => void;
1633
+ update: () => void;
1634
+ }
1635
+
1636
+ interface GUI {
1637
+ achievement: Achievement;
1638
+ bottomInGamePrimaryContent: BottomInGamePrimaryContent;
1639
+ damageIndicator: DamageIndicator;
1640
+ guiSlots: GuiSlot[];
1641
+ guiSlotsChangeCounter: number;
1642
+ knockoutAlerts: KnockoutAlert[];
1643
+ modals: Modals;
1644
+ none: NoneGui;
1645
+ openInputBlockingUI: string[];
1646
+ playersManagerUpdateCounter: number;
1647
+ scale: number;
1648
+ scorebar?: Scorebar;
1649
+ selectedPlayerId: string;
1650
+ showingGrid: boolean;
1651
+ }
1652
+
1653
+ interface Permissions {
1654
+ adding: boolean;
1655
+ editing: boolean;
1656
+ manageCodeGrids: boolean;
1657
+ removing: boolean;
1658
+ }
1659
+
1660
+ interface GameSession {
1661
+ callToAction: any;
1662
+ countdownEnd: number;
1663
+ phase: string;
1664
+ resultsEnd: number;
1665
+ widgets: {
1666
+ widgets: any[];
1667
+ };
1668
+ }
1669
+
1670
+ interface Session {
1671
+ allowGoogleTranslate: boolean;
1672
+ amIGameOwner: boolean;
1673
+ canAddGameTime: boolean;
1674
+ cosmosBlocked: boolean;
1675
+ customTeams: {
1676
+ characterToTeamMap: Map<string, string>;
1677
+ };
1678
+ duringTransition: boolean;
1679
+ gameClockDuration: string;
1680
+ gameOwnerId: string;
1681
+ gameSession: GameSession;
1682
+ gameTime: number;
1683
+ gameTimeLastUpdateAt: number;
1684
+ globalPermissions: Permissions;
1685
+ loadingPhase: boolean;
1686
+ mapCreatorRoleLevel: number;
1687
+ mapStyle: string;
1688
+ modeType: string;
1689
+ ownerRole: string;
1690
+ phase: string;
1691
+ phaseChangedAt: number;
1692
+ version: string;
1693
+ }
1694
+
1695
+ interface ZoneDropOverrides {
1696
+ allowItemDrop: boolean;
1697
+ allowResourceDrop: boolean;
1698
+ allowWeaponDrop: boolean;
1699
+ }
1700
+
1701
+ interface XPAddition {
1702
+ amount: number;
1703
+ reason: string;
1704
+ xp: number;
1705
+ }
1706
+
1707
+ interface XP {
1708
+ additionTimeouts: Map<string, ReturnType<typeof setTimeout>>;
1709
+ additions: XPAddition[];
1710
+ showingLevelUp: boolean;
1711
+ }
1712
+
1713
+ interface MeSpectating {
1714
+ id: string;
1715
+ name: string;
1716
+ shuffle: boolean;
1717
+ }
1718
+
1719
+ interface TileToRemove {
1720
+ depth: number;
1721
+ id: string;
1722
+ x: number;
1723
+ y: number;
1724
+ }
1725
+
1726
+ interface Removing {
1727
+ deviceIdToRemove?: string;
1728
+ removingMode: string;
1729
+ removingTilesEraserSize: number;
1730
+ removingTilesLayer: number;
1731
+ removingTilesMode: string;
1732
+ tilesToRemove: TileToRemove[];
1733
+ wireIdToRemove?: string;
1734
+ }
1735
+
1736
+ interface NonDismissMessage {
1737
+ description: string;
1738
+ title: string;
1739
+ }
1740
+
1741
+ interface Mood {
1742
+ activeDeviceId: string;
1743
+ vignetteActive: boolean;
1744
+ vignetteStrength: number;
1745
+ }
1746
+
1747
+ interface MobileControls {
1748
+ left: boolean;
1749
+ right: boolean;
1750
+ up: boolean;
1751
+ }
1752
+
1753
+ interface InventorySlot {
1754
+ amount: number;
1755
+ existsBeforeReconnect: boolean;
1756
+ }
1757
+
1758
+ interface AlertFeed {
1759
+ amount: number;
1760
+ itemId: string;
1761
+ }
1762
+
1763
+ interface InteractiveSlot {
1764
+ clipSize: number;
1765
+ count: number;
1766
+ currentClip: number;
1767
+ durability: number;
1768
+ itemId: string;
1769
+ waiting: boolean;
1770
+ waitingEndTime: number;
1771
+ waitingStartTime: number;
1772
+ }
1773
+
1774
+ interface Inventory {
1775
+ activeInteractiveSlot: number;
1776
+ alertFeed?: AlertFeed;
1777
+ alertsFeed: AlertFeed[];
1778
+ currentWaitingEndTime: number;
1779
+ infiniteAmmo: boolean;
1780
+ interactiveSlotErrorMessageTimeouts: Map<string, ReturnType<typeof setTimeout>>;
1781
+ interactiveSlotErrorMessages: Map<string, string>;
1782
+ interactiveSlots: Map<string, InteractiveSlot>;
1783
+ interactiveSlotsOrder: number[];
1784
+ isCurrentWaitingSoundForItem: boolean;
1785
+ lastShotsTimestamps: Map<string, number>;
1786
+ maxSlots: number;
1787
+ slots: Map<string, InventorySlot>;
1788
+ }
1789
+
1790
+ interface InteractiveInfo {
1791
+ action: string;
1792
+ allowedToInteract: boolean;
1793
+ message: string;
1794
+ topHeader?: string;
1795
+ topHeaderColor: string;
1796
+ }
1797
+
1798
+ interface Interactives {
1799
+ deviceId: string;
1800
+ info: InteractiveInfo;
1801
+ }
1802
+
1803
+ interface Health {
1804
+ fragility: number;
1805
+ health: number;
1806
+ lives: number;
1807
+ maxHealth: number;
1808
+ maxShield: number;
1809
+ shield: number;
1810
+ }
1811
+
1812
+ interface EditingPreferences {
1813
+ cameraZoom: number;
1814
+ movementSpeed: number | null;
1815
+ phase: boolean | null;
1816
+ showGrid: boolean | null;
1817
+ topDownControlsActive: boolean;
1818
+ }
1819
+
1820
+ interface CurrentlyEditedDevice {
1821
+ deviceOptionId: string;
1822
+ id: string;
1823
+ }
1824
+
1825
+ interface EditingDevice {
1826
+ currentlyEditedDevice: CurrentlyEditedDevice;
1827
+ currentlyEditedGridId: string;
1828
+ currentlySortedDeviceId: string;
1829
+ screen: string;
1830
+ sortingState: any[];
1831
+ usingMultiselect: boolean;
1832
+ visualEditing: any;
1833
+ }
1834
+
1835
+ interface Editing {
1836
+ device: EditingDevice;
1837
+ preferences: EditingPreferences;
1838
+ wire: {
1839
+ currentlyEditedWireId: string;
1840
+ };
1841
+ }
1842
+
1843
+ interface MeDeviceUI {
1844
+ current: {
1845
+ deviceId: string;
1846
+ props: any;
1847
+ };
1848
+ desiredOpenDeviceId?: string;
1849
+ serverVersionOpenDeviceId: string;
1850
+ }
1851
+
1852
+ interface MeCustomAssets {
1853
+ currentData?: {
1854
+ shapes: Shapes;
1855
+ };
1856
+ currentIcon: string;
1857
+ currentId: string;
1858
+ currentName: string;
1859
+ currentOptionId: string;
1860
+ isUIOpen: boolean;
1861
+ openOptionId: string | null;
1862
+ pendingDeleteId: string | null;
1863
+ showDeleteConfirm: boolean;
1864
+ }
1865
+
1866
+ interface Context {
1867
+ cursorIsOverCharacterId: string;
1868
+ __devicesUnderCursor: string[];
1869
+ __wiresUnderCursor: Set<string>;
1870
+ cursorIsOverDevice: boolean;
1871
+ cursorIsOverWire: boolean;
1872
+ }
1873
+
1874
+ interface ClassDesigner {
1875
+ activeClassDeviceId: string;
1876
+ lastActivatedClassDeviceId: string;
1877
+ lastClassDeviceActivationId: number;
1878
+ }
1879
+
1880
+ interface CinematicMode {
1881
+ charactersVisible: boolean;
1882
+ enabled: boolean;
1883
+ followingMainCharacter: boolean;
1884
+ hidingGUI: boolean;
1885
+ mainCharacterVisible: boolean;
1886
+ nameTagsVisible: boolean;
1887
+ }
1888
+
1889
+ interface AddingWires {
1890
+ hoveringOverSupportedDevice: boolean;
1891
+ pointUnderMouseDeviceId?: string;
1892
+ startDeviceSelected: boolean;
1893
+ }
1894
+
1895
+ interface AddingTerrain {
1896
+ brushSize: number;
1897
+ buildTerrainAsWall: boolean;
1898
+ currentlySelectedTerrain: string;
1899
+ currentlySelectedTerrainDepth: number;
1900
+ }
1901
+
1902
+ interface ExistingDevice {
1903
+ action: string;
1904
+ id: string;
1905
+ shiftX: number;
1906
+ shiftY: number;
1907
+ use: boolean;
1908
+ }
1909
+
1910
+ interface AddingDevices {
1911
+ currentlySelectedProp: string;
1912
+ existingDevice: ExistingDevice;
1913
+ selectedDeviceType: string;
1914
+ }
1915
+
1916
+ interface Adding {
1917
+ devices: AddingDevices;
1918
+ terrain: AddingTerrain;
1919
+ wires: AddingWires;
1920
+ mode: string;
1921
+ }
1922
+
1923
+ interface Me {
1924
+ adding: Adding;
1925
+ cinematicMode: CinematicMode;
1926
+ classDesigner: ClassDesigner;
1927
+ completedInitialPlacement: boolean;
1928
+ context: Context;
1929
+ currentAction: string;
1930
+ customAssets: MeCustomAssets;
1931
+ deviceUI: MeDeviceUI;
1932
+ editing: Editing;
1933
+ gotKicked: boolean;
1934
+ health: Health;
1935
+ interactives: Interactives;
1936
+ inventory: Inventory;
1937
+ isRespawning: boolean;
1938
+ mobileControls: MobileControls;
1939
+ mood: Mood;
1940
+ movementSpeed: number;
1941
+ myTeam: string;
1942
+ nonDismissMessage: NonDismissMessage;
1943
+ phase: boolean;
1944
+ preferences: {
1945
+ startGameWithMode: string;
1946
+ };
1947
+ properties: Map<string, any>;
1948
+ removing: Removing;
1949
+ roleLevel: number;
1950
+ spawnPosition: Vector;
1951
+ spectating: MeSpectating;
1952
+ teleportCount: number;
1953
+ unredeemeedXP: number;
1954
+ xp: XP;
1955
+ zoneDropOverrides: ZoneDropOverrides;
1956
+ }
1957
+
1958
+ interface QueuedTile {
1959
+ timestamp: number;
1960
+ removedBodyIds: string[];
1961
+ }
1962
+
1963
+ interface Tile {
1964
+ collides: boolean;
1965
+ depth: number;
1966
+ terrain: string;
1967
+ x: number;
1968
+ y: number;
1969
+ }
1970
+
1971
+ interface Terrain {
1972
+ currentTerrainUpdateId: number;
1973
+ modifiedHealth: Map<string, number>;
1974
+ queuedTiles: Map<number, QueuedTile>;
1975
+ teamColorTiles: Map<string, string>;
1976
+ tiles: Map<string, Tile>;
1977
+ }
1978
+
1979
+ interface DeviceState {
1980
+ deviceId: string;
1981
+ properties: Map<string, any>;
1982
+ }
1983
+
1984
+ interface CodeGridItem {
1985
+ createdAt: number;
1986
+ existsBeforeReconnect: boolean;
1987
+ json: string;
1988
+ triggerType: string;
1989
+ owner?: string;
1990
+ triggerValue?: string;
1991
+ visitors: string[];
1992
+ }
1993
+
1994
+ interface CodeGrid {
1995
+ existsBeforeReconnect: boolean;
1996
+ items: Map<string, CodeGridItem>;
1997
+ }
1998
+
1999
+ interface CodeGridSchema {
2000
+ allowChannelGrids: boolean;
2001
+ customBlocks: any[];
2002
+ triggers: any[];
2003
+ }
2004
+
2005
+ interface DeviceOption {
2006
+ codeGridSchema: CodeGridSchema;
2007
+ defaultState: any;
2008
+ id: string;
2009
+ optionSchema: {
2010
+ options: any[];
2011
+ };
2012
+ wireConfig: any;
2013
+ }
2014
+
2015
+ interface DeviceData {
2016
+ depth: number;
2017
+ deviceOption: DeviceOption;
2018
+ existsBeforeReconnect: boolean;
2019
+ hooks: any;
2020
+ id: string;
2021
+ isPreview: boolean;
2022
+ layerId: string;
2023
+ name: any;
2024
+ options: Record<string, any>;
2025
+ props: any;
2026
+ x: number;
2027
+ y: number;
2028
+ }
2029
+
2030
+ interface WorldDevices {
2031
+ codeGrids: Map<string, CodeGrid>;
2032
+ devices: Map<string, DeviceData>;
2033
+ states: Map<string, DeviceState>;
2034
+ }
2035
+
2036
+ interface Shapes {
2037
+ circles: number[][];
2038
+ lines: number[][];
2039
+ paths: number[][];
2040
+ rects: number[][];
2041
+ }
2042
+
2043
+ interface CustomAsset {
2044
+ data: {
2045
+ shapes: Shapes;
2046
+ };
2047
+ icon: string;
2048
+ id: string;
2049
+ name: string;
2050
+ optionId: string;
2051
+ }
2052
+
2053
+ interface WorldCustomAssets {
2054
+ customAssets: Map<string, CustomAsset>;
2055
+ isUIOpen: boolean;
2056
+ updateCounter: number;
2057
+ }
2058
+
2059
+ interface World {
2060
+ customAssets: WorldCustomAssets;
2061
+ devices: WorldDevices;
2062
+ height: number;
2063
+ width: number;
2064
+ mapOptionsJSON: string;
2065
+ terrain: Terrain;
2066
+ wires: {
2067
+ wires: Map<any, any>;
2068
+ };
2069
+ }
2070
+
2071
+ interface Stores {
2072
+ activityFeed: ActivityFeed;
2073
+ assignment: Assignment;
2074
+ characters: Characters;
2075
+ editing: EditingStore;
2076
+ gui: GUI;
2077
+ hooks: Hooks;
2078
+ loading: Loading;
2079
+ matchmaker: Matchmaker;
2080
+ me: Me;
2081
+ memorySystem: MemorySystem;
2082
+ network: NetworkStore;
2083
+ phaser: Phaser;
2084
+ scene: SceneStore;
2085
+ session: Session;
2086
+ teams: Teams;
2087
+ world: World;
2088
+ worldOptions: WorldOptions;
2089
+ }
171
2090
  }
172
2091
 
173
2092
  class PluginsApi {
@@ -298,12 +2217,12 @@ declare namespace Gimloader {
298
2217
  instead(object: any, method: string, callback: PatcherInsteadCallback): () => void;
299
2218
  }
300
2219
 
301
- type PatcherInsteadCallback = (thisVal: any, args: IArguments) => void;
2220
+ type PatcherAfterCallback = (thisVal: any, args: IArguments, returnVal: any) => any;
302
2221
 
303
2222
  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
304
2223
  type PatcherBeforeCallback = (thisVal: any, args: IArguments) => boolean | void;
305
2224
 
306
- type PatcherAfterCallback = (thisVal: any, args: IArguments, returnVal: any) => any;
2225
+ type PatcherInsteadCallback = (thisVal: any, args: IArguments) => void;
307
2226
 
308
2227
  class PatcherApi {
309
2228
  /**
@@ -403,10 +2322,8 @@ declare namespace Gimloader {
403
2322
  removeStyles(id: string): void;
404
2323
  }
405
2324
 
406
- class ScopedNetApi extends BaseNetApi {
407
- private readonly id;
408
- private readonly defaultGamemode;
409
- constructor(id: string, defaultGamemode: string[]);
2325
+ interface ScopedNetApi extends BaseNetApi {
2326
+ new(id: string, defaultGamemode: string[]): this;
410
2327
  /**
411
2328
  * Runs a callback when the game is loaded, or runs it immediately if the game has already loaded.
412
2329
  * If the \@gamemode header is set the callback will only fire if the gamemode matches one of the provided gamemodes.
@@ -417,8 +2334,8 @@ declare namespace Gimloader {
417
2334
 
418
2335
  type ConnectionType = "None" | "Colyseus" | "Blueboat";
419
2336
 
420
- class BaseNetApi extends EventEmitter2 {
421
- constructor();
2337
+ interface BaseNetApi extends EventEmitter2 {
2338
+ new(): this;
422
2339
  /** Which type of server the client is currently connected to */
423
2340
  get type(): ConnectionType;
424
2341
  /** The id of the gamemode the player is currently playing */
@@ -431,8 +2348,8 @@ declare namespace Gimloader {
431
2348
  send(channel: string, message: any): void;
432
2349
  }
433
2350
 
434
- class NetApi extends BaseNetApi {
435
- constructor();
2351
+ interface NetApi extends BaseNetApi {
2352
+ new(): this;
436
2353
  /**
437
2354
  * Runs a callback when the game is loaded, or runs it immediately if the game has already loaded
438
2355
  * @returns A function to cancel waiting for load
@@ -454,8 +2371,7 @@ declare namespace Gimloader {
454
2371
  * @hidden
455
2372
  */
456
2373
  get blueboat(): this;
457
- /** @hidden */
458
- private wrappedListeners;
2374
+
459
2375
  /**
460
2376
  * @deprecated use net.on
461
2377
  * @hidden
@@ -653,7 +2569,7 @@ declare namespace Gimloader {
653
2569
  /** Gimkit's internal reactDom instance */
654
2570
  static get ReactDOM(): typeof import("react-dom/client");
655
2571
  /** A variety of Gimkit internal objects available in 2d gamemodes */
656
- static get stores(): any;
2572
+ static get stores(): Stores.Stores;
657
2573
  /**
658
2574
  * Gimkit's notification object, only available when joining or playing a game
659
2575
  *
@@ -722,7 +2638,7 @@ declare namespace Gimloader {
722
2638
  /** Gimkit's internal reactDom instance */
723
2639
  get ReactDOM(): typeof import("react-dom/client");
724
2640
  /** A variety of gimkit internal objects available in 2d gamemodes */
725
- get stores(): any;
2641
+ get stores(): Stores.Stores;
726
2642
  /**
727
2643
  * Gimkit's notification object, only available when joining or playing a game
728
2644
  *
@@ -743,7 +2659,7 @@ declare namespace Gimloader {
743
2659
  declare const api: Gimloader.Api;
744
2660
  declare const GL: typeof Gimloader.Api;
745
2661
  /** @deprecated Use GL.stores */
746
- declare const stores: any;
2662
+ declare const stores: Gimloader.Stores.Stores;
747
2663
  /** @deprecated No longer supported */
748
2664
  declare const platformerPhysics: any;
749
2665
 
@@ -751,7 +2667,7 @@ interface Window {
751
2667
  api: Gimloader.Api;
752
2668
  GL: typeof Gimloader.Api;
753
2669
  /** @deprecated Use GL.stores */
754
- stores: any;
2670
+ stores: Gimloader.Stores.Stores;
755
2671
  /** @deprecated No longer supported */
756
2672
  platformerPhysics: any;
757
2673
  }