/
PipeWrench-Events.d.ts
1570 lines (1569 loc) · 68.4 KB
/
PipeWrench-Events.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
* MIT License
*
* Copyright (c) 2022 JabDoesThings
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/** @noResolution @noSelfInFile */
declare module 'PipeWrench-Events' {
import {
se,
zombie,
ByteBufferWriter,
IsoPlayer,
InventoryItem,
IsoGridSquare,
SafeHouse,
IsoZombie,
IsoObject,
WeatherPeriod,
HandWeapon,
IsoGameCharacter,
BaseVehicle,
WeatherStage,
BuildingDef,
Server,
ChatTab,
ArrayList,
ByteBuffer,
IsoCell,
IsoWindow,
IsoThumpable,
IsoDoor,
IsoFire,
RadioScriptManager,
IsoSpriteManager,
ErosionSeason,
RecordedMedia,
BodyPartType,
ItemContainer,
Moveable,
MovableRecipe,
IsoChunk,
VehiclePart,
Radio,
IsoWaveSignal,
IsoSurvivor,
SurvivorDesc,
IsoWorldInventoryObject,
IsoDeadBody,
Food,
ClimateManager,
Perk,
ObjectTooltip,
} from 'PipeWrench';
type KahluaTable = se.krka.kahlua.vm.KahluaTable;
/**
* EventEmitter is for both vanilla ProjectZomboid event handling and custom events written for PipeWrench.
*
* @author Jab
* @param L The type of {@link EventListener} associated with the Lua-event.
*/
export class EventEmitter<L> {
/** The Lua-event ID. */
readonly id: string;
/** @param id The Lua-event ID. */
constructor(id: string);
/** @param listener The listener to register. */
addListener(listener: L): void;
/** @param listener The listener to unregister. */
removeListener(listener: L): void;
}
export const acceptedFactionInvite: EventEmitter<AcceptedFactionInviteListener>;
export const acceptedSafehouseInvite: EventEmitter<AcceptedSafehouseInviteListener>;
export const acceptedTrade: EventEmitter<AcceptedTradeListener>;
export const addXP: EventEmitter<AddXPListener>;
export const doSpecialTooltip: EventEmitter<DoSpecialTooltipListener>;
export const everyDays: EventEmitter<EveryDaysListener>;
export const everyHours: EventEmitter<EveryHoursListener>;
export const everyOneMinute: EventEmitter<EveryOneMinuteListener>;
export const everyTenMinutes: EventEmitter<EveryTenMinutesListener>;
export const levelPerk: EventEmitter<LevelPerkListener>;
export const loadGridSquare: EventEmitter<LoadGridSquareListener>;
export const mngInvReceiveItems: EventEmitter<MngInvReceiveItemsListener>;
export const onAcceptInvite: EventEmitter<OnAcceptInviteListener>;
export const onAddForageDefinitions: EventEmitter<OnAddForageDefinitionsListener>;
export const onAddMessage: EventEmitter<OnAddMessageListener>;
export const onAdminMessage: EventEmitter<OnAdminMessageListener>;
export const onAIStateChange: EventEmitter<OnAIStateChangeListener>;
export const onAmbientSound: EventEmitter<OnAmbientSoundListener>;
export const onCGlobalObjectSystemInit: EventEmitter<OnCGlobalObjectSystemInitListener>;
export const onChallengeQuery: EventEmitter<OnChallengeQueryListener>;
export const onChangeWeather: EventEmitter<OnChangeWeatherListener>;
export const onCharacterCollide: EventEmitter<OnCharacterCollideListener>;
export const onCharacterDeath: EventEmitter<OnCharacterDeathListener>;
export const onChatWindowInit: EventEmitter<OnChatWindowInitListener>;
export const onClientCommand: EventEmitter<OnClientCommandListener>;
export const onClimateManagerInit: EventEmitter<OnClimateManagerInitListener>;
export const onClimateTick: EventEmitter<OnClimateTickListener>;
export const onClimateTickDebug: EventEmitter<OnClimateTickDebugListener>;
export const onClothingUpdated: EventEmitter<OnClothingUpdatedListener>;
export const onConnected: EventEmitter<OnConnectedListener>;
export const onConnectFailed: EventEmitter<OnConnectFailedListener>;
export const onConnectionStateChanged: EventEmitter<OnConnectionStateChangedListener>;
export const onContainerUpdate: EventEmitter<OnContainerUpdateListener>;
export const onCoopJoinFailed: EventEmitter<OnCoopJoinFailedListener>;
export const onCoopServerMessage: EventEmitter<OnCoopServerMessageListener>;
export const onCreateLivingCharacter: EventEmitter<OnCreateLivingCharacterListener>;
export const onCreatePlayer: EventEmitter<OnCreatePlayerListener>;
export const onCreateSurvivor: EventEmitter<OnCreateSurvivorListener>;
export const onCreateUI: EventEmitter<OnCreateUIListener>;
export const onCustomUIKey: EventEmitter<OnCustomUIKeyListener>;
export const onCustomUIKeyPressed: EventEmitter<OnCustomUIKeyPressedListener>;
export const onCustomUIKeyReleased: EventEmitter<OnCustomUIKeyReleasedListener>;
export const onDawn: EventEmitter<OnDawnListener>;
export const onDestroyIsoThumpable: EventEmitter<OnDestroyIsoThumpableListener>;
export const onDeviceText: EventEmitter<OnDeviceTextListener>;
export const onDisableSearchMode: EventEmitter<OnDisableSearchModeListener>;
export const onDisconnect: EventEmitter<OnDisconnectListener>;
export const onDistributionMerge: EventEmitter<OnDistributionMergeListener>;
export const onDoTileBuilding2: EventEmitter<OnDoTileBuilding2Listener>;
export const onDoTileBuilding3: EventEmitter<OnDoTileBuilding3Listener>;
export const onDusk: EventEmitter<OnDuskListener>;
export const onDynamicMovableRecipe: EventEmitter<OnDynamicMovableRecipeListener>;
export const onEnableSearchMode: EventEmitter<OnEnableSearchModeListener>;
export const onEnterVehicle: EventEmitter<OnEnterVehicleListener>;
export const onEquipPrimary: EventEmitter<OnEquipPrimaryListener>;
export const onEquipSecondary: EventEmitter<OnEquipSecondaryListener>;
export const onExitVehicle: EventEmitter<OnExitVehicleListener>;
export const onFrontEndTick: EventEmitter<OnFrontEndTickListener>;
export const onFillContainer: EventEmitter<OnFillContainerListener>;
export const onFillInventoryObjectContextMenu: EventEmitter<OnFillInventoryObjectContextMenuListener>;
export const onFillSearchIconContextMenu: EventEmitter<OnFillSearchIconContextMenuListener>;
export const onFillWorldObjectContextMenu: EventEmitter<OnFillWorldObjectContextMenuListener>;
export const onGameBoot: EventEmitter<OnGameBootListener>;
export const onGamepadConnect: EventEmitter<OnGamepadConnectListener>;
export const onGamepadDisconnect: EventEmitter<OnGamepadDisconnectListener>;
export const onGameStart: EventEmitter<OnGameStartListener>;
export const onGameTimeLoaded: EventEmitter<OnGameTimeLoadedListener>;
export const onGetDBSchema: EventEmitter<OnGetDBSchemaListener>;
export const onGetTableResult: EventEmitter<OnGetTableResultListener>;
export const onGridBurnt: EventEmitter<OnGridBurntListener>;
export const onHitZombie: EventEmitter<OnHitZombieListener>;
export const onInitGlobalModData: EventEmitter<OnInitGlobalModDataListener>;
export const onInitModdedWeatherStage: EventEmitter<OnInitModdedWeatherStageListener>;
export const onInitRecordedMedia: EventEmitter<OnInitRecordedMediaListener>;
export const onInitSeasons: EventEmitter<OnInitSeasonsListener>;
export const onInitWorld: EventEmitter<OnInitWorldListener>;
export const onItemFall: EventEmitter<OnItemFallListener>;
export const onJoypadActivate: EventEmitter<OnJoypadActivateListener>;
export const onJoypadActivateUI: EventEmitter<OnJoypadActivateUIListener>;
export const onJoypadBeforeDeactivate: EventEmitter<OnJoypadBeforeDeactivateListener>;
export const onJoypadBeforeReactivate: EventEmitter<OnJoypadBeforeReactivateListener>;
export const onJoypadDeactivate: EventEmitter<OnJoypadDeactivateListener>;
export const onJoypadReactivate: EventEmitter<OnJoypadReactivateListener>;
export const onJoypadRenderUI: EventEmitter<OnJoypadRenderUIListener>;
export const onKeyKeepPressed: EventEmitter<OnKeyKeepPressedListener>;
export const onKeyPressed: EventEmitter<OnKeyPressedListener>;
export const onKeyStartPressed: EventEmitter<OnKeyStartPressedListener>;
export const onLoad: EventEmitter<OnLoadListener>;
export const onLoadedTileDefinitions: EventEmitter<OnLoadedTileDefinitionsListener>;
export const onLoadMapZones: EventEmitter<OnLoadMapZonesListener>;
export const onLoadModDataFromServer: EventEmitter<OnLoadModDataFromServerListener>;
export const onLoadRadioScripts: EventEmitter<OnLoadRadioScriptsListener>;
export const onLoadSoundBanks: EventEmitter<OnLoadSoundBanksListener>;
export const onMainMenuEnter: EventEmitter<OnMainMenuEnterListener>;
export const onMechanicActionDone: EventEmitter<OnMechanicActionDoneListener>;
export const onMiniScoreboardUpdate: EventEmitter<OnMiniScoreboardUpdateListener>;
export const onModsModified: EventEmitter<OnModsModifiedListener>;
export const onMouseDown: EventEmitter<OnMouseDownListener>;
export const onMouseMove: EventEmitter<OnMouseMoveListener>;
export const onMouseUp: EventEmitter<OnMouseUpListener>;
export const onMultiTriggerNPCEvent: EventEmitter<OnMultiTriggerNPCEventListener>;
export const onNewFire: EventEmitter<OnNewFireListener>;
export const onNewGame: EventEmitter<OnNewGameListener>;
export const onObjectAboutToBeRemoved: EventEmitter<OnObjectAboutToBeRemovedListener>;
export const onObjectAdded: EventEmitter<OnObjectAddedListener>;
export const onObjectCollide: EventEmitter<OnObjectCollideListener>;
export const onObjectLeftMouseButtonDown: EventEmitter<OnObjectLeftMouseButtonDownListener>;
export const onObjectLeftMouseButtonUp: EventEmitter<OnObjectLeftMouseButtonUpListener>;
export const onObjectRightMouseButtonDown: EventEmitter<OnObjectRightMouseButtonDownListener>;
export const onObjectRightMouseButtonUp: EventEmitter<OnObjectRightMouseButtonUpListener>;
export const onPlayerAttackFinished: EventEmitter<OnPlayerAttackFinishedListener>;
export const onPlayerDeath: EventEmitter<OnPlayerDeathListener>;
export const onPlayerMove: EventEmitter<OnPlayerMoveListener>;
export const onPlayerUpdate: EventEmitter<OnPlayerUpdateListener>;
export const onPostDistributionMerge: EventEmitter<OnPostDristributionMergeListener>;
export const onPostFloorLayerDraw: EventEmitter<OnPostFloorLayerDrawListener>;
export const onPostMapLoad: EventEmitter<OnPostMapLoadListener>;
export const onPostRender: EventEmitter<OnPostRenderListener>;
export const onPostSave: EventEmitter<OnPostSaveListener>;
export const onPostUIDraw: EventEmitter<OnPostUIDrawListener>;
export const onPreDistributionMerge: EventEmitter<OnPreDistributionMergeListener>;
export const onPreFillInventoryObjectContextMenu: EventEmitter<OnPreFillInventoryObjectContextMenuListener>;
export const onPreFillWorldObjectContextMenu: EventEmitter<OnPreFillWorldObjectContextMenuListener>;
export const onPreMapLoad: EventEmitter<OnPreMapLoadListener>;
export const onPressRackButton: EventEmitter<OnPressRackButtonListener>;
export const onPreUIDraw: EventEmitter<OnPreUIDrawListener>;
export const onRainStop: EventEmitter<OnRainStopListener>;
export const onReceiveGlobalModData: EventEmitter<OnReceiveGlobalModDataListener>;
export const onReceiveItemListNet: EventEmitter<OnReceiveItemListNetListener>;
export const onReceiveUserlog: EventEmitter<OnReceiveUserlogListener>;
export const onRefreshInventoryWindowContainers: EventEmitter<OnRefreshInventoryWindowContainersListener>;
export const onRenderTick: EventEmitter<OnRenderTickListener>;
export const onResetLua: EventEmitter<OnResetLuaListener>;
export const onResolutionChange: EventEmitter<OnResolutionChangeListener>;
export const onRightMouseDown: EventEmitter<OnRightMouseDownListener>;
export const onRightMouseUp: EventEmitter<OnRightMouseUpListener>;
export const onSafehousesChanged: EventEmitter<OnSafehousesChangedListener>;
export const onSave: EventEmitter<OnSaveListener>;
export const onScoreboardUpdate: EventEmitter<OnScoreboardUpdateListener>;
export const onSeeNewRoom: EventEmitter<OnSeeNewRoomListener>;
export const onServerCommand: EventEmitter<OnServerCommandListener>;
export const onServerFinishSaving: EventEmitter<OnServerFinishSavingListener>;
export const onServerStarted: EventEmitter<OnServerStartedListener>;
export const onServerStartSaving: EventEmitter<OnServerStartSavingListener>;
export const onServerStatisticReceived: EventEmitter<OnServerStatisticReceivedListener>;
export const onServerWorkshopItems: EventEmitter<OnServerWorkshopItemsListener>;
export const onSetDefaultTab: EventEmitter<OnSetDefaultTabListener>;
export const onSGlobalObjectSystemInit: EventEmitter<OnSGlobalObjectSystemInitListener>;
export const onSpawnRegionsLoaded: EventEmitter<OnSpawnRegionsLoadedListener>;
export const onSteamFriendStatusChanged: EventEmitter<OnSteamFriendStatusChangedListener>;
export const onSteamGameJoin: EventEmitter<OnSteamGameJoinListener>;
export const onSteamRefreshInternetServers: EventEmitter<OnSteamRefreshInternetServersListener>;
export const onSteamRulesRefreshComplete: EventEmitter<OnSteamRulesRefreshCompleteListener>;
export const onSteamServerFailedToRespond2: EventEmitter<OnSteamServerFailedToRespond2Listener>;
export const onSteamServerResponded: EventEmitter<OnSteamServerRespondedListener>;
export const onSteamServerResponded2: EventEmitter<OnSteamServerResponded2Listener>;
export const onSteamWorkshopItemCreated: EventEmitter<OnSteamWorkshopItemCreatedListener>;
export const onSteamWorkshopItemNotCreated: EventEmitter<OnSteamWorkshopItemNotCreatedListener>;
export const onSteamWorkshopItemNotUpdated: EventEmitter<OnSteamWorkshopItemNotUpdatedListener>;
export const onSteamWorkshopItemUpdated: EventEmitter<OnSteamWorkshopItemUpdatedListener>;
export const onSwitchVehicleSeat: EventEmitter<OnSwitchVehicleSeatListener>;
export const onTabAdded: EventEmitter<OnTabAddedListener>;
export const onTabRemoved: EventEmitter<OnTabRemovedListener>;
export const onThunderEvent: EventEmitter<OnThunderEventListener>;
export const onTick: EventEmitter<OnTickListener>;
export const onTickEvenPaused: EventEmitter<OnTickEvenPausedListener>;
export const onTileRemoved: EventEmitter<OnTileRemovedListener>;
export const onToggleSearchMode: EventEmitter<OnToggleSearchModeListener>;
export const onTriggerNPCEvent: EventEmitter<OnTriggerNPCEventListener>;
export const onUpdateIcon: EventEmitter<OnUpdateIconListener>;
export const onUpdateModdedWeatherStage: EventEmitter<OnUpdateModdedWeatherStageListener>;
export const onUseVehicle: EventEmitter<OnUseVehicleListener>;
export const onVehicleDamageTexture: EventEmitter<OnVehicleDamageTextureListener>;
export const onVehicleHorn: EventEmitter<OnVehicleHornListener>;
export const onWaterAmountChange: EventEmitter<OnWaterAmountChangeListener>;
export const onWeaponHitCharacter: EventEmitter<OnWeaponHitCharacterListener>;
export const onWeaponHitTree: EventEmitter<OnWeaponHitTreeListener>;
export const onWeaponHitXP: EventEmitter<OnWeaponHitXPListener>;
export const onWeaponSwing: EventEmitter<OnWeaponSwingListener>;
export const onWeaponSwingHitPoint: EventEmitter<OnWeaponSwingHitPointListener>;
export const onWeatherPeriodComplete: EventEmitter<OnWeatherPeriodCompleteListener>;
export const onWeatherPeriodStage: EventEmitter<OnWeatherPeriodStageListener>;
export const onWeatherPeriodStart: EventEmitter<OnWeatherPeriodStartListener>;
export const onWeatherPeriodStop: EventEmitter<OnWeatherPeriodStopListener>;
export const onWorldSound: EventEmitter<OnWorldSoundListener>;
export const onZombidDead: EventEmitter<OnZombieDeadListener>;
export const onZombieUpdate: EventEmitter<OnZombieUpdateListener>;
export const preAddCatDefinitions: EventEmitter<PreAddCatDefinitionsListener>;
export const preAddForageDefinitions: EventEmitter<PreAddForageDefinitionsListener>;
export const preAddItemDefinitions: EventEmitter<PreAddItemDefinitionsListener>;
export const preAddZoneDefinitions: EventEmitter<PreAddZoneDefinitionsListener>;
export const receiveFactionInvite: EventEmitter<ReceiveFactionInviteListener>;
export const receiveSafehouseInvite: EventEmitter<ReceiveSafehouseInviteListener>;
export const requestTrade: EventEmitter<RequestTradeListener>;
export const reuseGridSquare: EventEmitter<ReuseGridSquareListener>;
export const sendCustomModData: EventEmitter<SendCustomModDataListener>;
export const serverPinged: EventEmitter<ServerPingedListener>;
export const switchChatStream: EventEmitter<SwitchChatStreamListener>;
export const syncFaction: EventEmitter<SyncFactionListener>;
export const tradingUIAddItem: EventEmitter<TradingUIAddItemListener>;
export const tradingUIRemoveItem: EventEmitter<TradingUIRemoveItemListener>;
export const tradingUIUpdateState: EventEmitter<TradingUIUpdateStateListener>;
/**
* Triggered when a faction invite has been accepted.
*
* @param factionName The name of the faction the player accepted to join.
* @param playerName The name of the player who accepted the invitation.
*/
export type AcceptedFactionInviteListener = (factionName: string, playerName: string) => void;
/**
* Triggered when a safehouse invite has been accepted.
*
* @param safehouseName The name of the safehouse the player accepted to join.
* @param playerName The name of the player who accepted the invitation.
*/
export type AcceptedSafehouseInviteListener = (safehouseName: string, playerName: string) => void;
/**
* Triggered when a trade request has been accepted.
*
* @param accepted Whether the trade was accepted or not.
*/
export type AcceptedTradeListener = (accepted: boolean) => void;
/**
* Triggered when a player gains XP.
*
* @param character The character who's gaining XP.
* @param perk The perk that is being leveled up.
* @param level The perk level gained.
*/
export type AddXPListener = (character: IsoGameCharacter, perk: Perk, level: number) => void;
/**
* Triggered when a special tooltip is being rendered, after a user right-clicked an object.
*
* @param objectTooltip The tooltip object to be filled.
* @param square The grid square on which the tooltip has been triggered.
*/
export type DoSpecialTooltipListener = (objectTooltip: ObjectTooltip, square: IsoGridSquare) => void;
/**
* Triggered every day at midnight. (In-Game)
*/
export type EveryDaysListener = () => void;
/**
* Triggered every hour. (In-Game)
*/
export type EveryHoursListener = () => void;
/**
* Triggered every minute. (In-Game)
*/
export type EveryOneMinuteListener = () => void;
/**
* Triggered every ten minutes. (In-Game)
*/
export type EveryTenMinutesListener = () => void;
/**
* Triggered when a perk is being leveled up.
*
* @param character The character whose perk is being leveled up or down.
* @param perk The perk being leveled up or down.
* @param level Perk level.
* @param levelUp Whether the perk is being leveled up.
*/
export type LevelPerkListener = (character: IsoGameCharacter, perk: Perk, level: number, levelUp: boolean) => void;
/**
* Triggered when a square is being loaded.
*
* @param square The grid square that is being loaded.
*/
export type LoadGridSquareListener = (square: IsoGridSquare) => void;
/**
* Triggered when the game client is receiving inventory items from the server.
*
* @param square The items that are being received.
*/
export type MngInvReceiveItemsListener = (items: object) => void;
/**
* Triggered when a Steam invite has been accepted.
*
* @param connectionString The connection string.
*/
export type OnAcceptInviteListener = (connectionString: string) => void;
/**
* Triggered when the forage definitions are being added.
*
* @param forageSystem The forage system object.
*/
export type OnAddForageDefinitionsListener = (forageSystem: KahluaTable) => void;
/**
* Triggered when a chat message is being sent.
*
* @param message The chat message being added.
* @param tabID The ID of the tab in which the message is being added.
*/
export type OnAddMessageListener = (message: string, tabID: number) => void;
/**
* Triggered when a chat message from the server admin is being sent.
*
* @param text The text of the message being received from the admin.
* @param x The x coordinate where to display the message.
* @param y The y coordinate where to display the message.
* @param z The z coordinate where to display the message.
*/
export type OnAdminMessageListener = (text: string, x: number, y: number, z: number) => void;
/**
* Triggered before an AI state is being changed.
*
* @param character The character whose AI state is being changed.
* @param newState The new AI state.
* @param oldState The old AI state.
*/
export type OnAIStateChangeListener = (character: IsoGameCharacter, newState: zombie.ai.State, oldState: zombie.ai.State) => void;
/**
* Triggered when an ambient sound starts.
*
* @param name The name of the ambient sound.
* @param x The x coordinate of the ambient sound.
* @param y The y coordinate of the ambient sound.
*/
export type OnAmbientSoundListener = (name: string, x: number, y: number) => void;
/**
* Triggered when the client global object system is being initialized.
*/
export type OnCGlobalObjectSystemInitListener = () => void;
/**
* Triggered when the challenge options are getting populated.
*/
export type OnChallengeQueryListener = () => void;
/**
* Triggered when the weather changes.
*
* @param weather The weather ID. [normal, cloud, rain, sunny]
*/
export type OnChangeWeatherListener = (weather: 'normal' | 'cloud' | 'rain' | 'sunny') => void;
/**
* Triggered when two characters collide together.
*
* @param player The character who's colliding with another character.
* @param character The character who's being collided with.
*/
export type OnCharacterCollideListener = (player: IsoGameCharacter, character: IsoGameCharacter) => void;
/**
* Triggered when a character dies.
*
* @param character The character who's about to die.
*/
export type OnCharacterDeathListener = (character: IsoGameCharacter) => void;
/**
* Triggered when the chat window is being initialized.
*/
export type OnChatWindowInitListener = () => void;
/**
* Triggered when the player sends a command to the server.
*
* @param module The name of the module for this client command.
* @param command The text of the actual client command.
* @param player The player who initiated the client command.
* @param args The arguments of the client command.
*/
export type OnClientCommandListener = (module: string, command: string, player: IsoPlayer, args: KahluaTable) => void;
/**
* Triggered after the ClimateManager has been initialized.
*
* @param climateManager The climate manager which is being initialized.
*/
export type OnClimateManagerInitListener = (climateManager: ClimateManager) => void;
/**
* Triggered for every climate tick.
*
* @param climateManager The climate manager.
*/
export type OnClimateTickListener = (climateManager: ClimateManager) => void;
/**
* Triggered for every climate tick but only when debug mode is enabled.
*
* @param climateManager The climate manager.
*/
export type OnClimateTickDebugListener = (climateManager: ClimateManager) => void;
/**
* Triggered when a character's clothing items are updated.
*
* @param playerOrCharacter The character whose clothing has been updated.
*/
export type OnClothingUpdatedListener = (playerOrCharacter: IsoPlayer | IsoGameCharacter) => void;
/**
* Triggered when the player successfully connects to the server.
*/
export type OnConnectedListener = () => void;
/**
* Triggered when the connection to the server has failed.
*
* @param error The error message describing the reason for the connection failure.
*/
export type OnConnectFailedListener = (error: string) => void;
/**
* When a player is connecting to the server, the connection is going through different stages. This event is triggered for each of these stages of the initial connection.
*
* @param state The current state of the connection that has changed.
* @param reason The reason leading to the state change. It can be null.
*/
export type OnConnectionStateChangedListener = (state: string, reason: string) => void;
/**
* Triggered when a container is being updated.
*
* @param container The container which is being updated.
*/
export type OnContainerUpdateListener = (container: Food | IsoDeadBody | IsoGridSquare | IsoWorldInventoryObject) => void;
/**
* Triggered when a player fails to join a cooperative game.
*
* @param playerID The identifier of the player who was denied access to join the cooperative game. It can be either 0, 1, 2, or 3.
*/
export type OnCoopJoinFailedListener = (playerID: number) => void;
/**
* Triggered when the player receives a server message during a cooperative game.
*
* @param messageType The type of message received from the server. Can be either `ping`, `pong`, `steam-id`, or `server-address`.
* @param playerNick The nick of the player who's sending the message.
* @param steamID The Steam identifier of the player who's sending the message.
*/
export type OnCoopServerMessageListener = (messageType: string, playerNick: string, steamID: string) => void;
/**
* Triggered when either a player or survivor is being created.
*
* @param playerOrSurvivor The player or survivor who's being created.
* @param survivorDescription The survivor description of the player or survivor who's being created.
*/
export type OnCreateLivingCharacterListener = (playerOrSurvivor: IsoPlayer | IsoSurvivor, survivorDescription: SurvivorDesc) => void;
/**
* Triggered when a player is being created.
*
* @param playerIndex The index of the player who's being created.
* @param player The player who's being created.
*/
export type OnCreatePlayerListener = (playerIndex: number, player: IsoPlayer) => void;
/**
* Triggered when a survivor is being created.
*
* @param survivor The survivor who's being created.
*/
export type OnCreateSurvivorListener = (survivor: IsoSurvivor) => void;
/**
* Triggered after UI initialization.
*/
export type OnCreateUIListener = () => void;
/**
* Triggered when a custom UI key has been released.
*
* @param key The Keyboard key that has been released.
*/
export type OnCustomUIKeyListener = (key: number) => void;
/**
* Triggered when a custom UI key has been pressed.
*
* @param key The {@link http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html Keyboard} key that has been pressed.
*/
export type OnCustomUIKeyPressedListener = (key: number) => void;
/**
* Triggered when a custom UI key has been released.
*
* @param key @param key The {@link http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html Keyboard} key that has been released.
*/
export type OnCustomUIKeyReleasedListener = (key: number) => void;
/**
* Triggered at dawn.
*/
export type OnDawnListener = () => void;
/**
* Triggered when a thumpable object is being destroyed.
*
* @param thumpable The {@link https://zomboid-javadoc.com/41.65/zombie/iso/objects/IsoThumpable.html thumpable} object which is being destroyed.
*/
export type OnDestroyIsoThumpableListener = (thumpable: IsoThumpable) => void;
/**
* Triggered when a media device is displaying text.
*
* @param interactCodes The interaction codes of the media device.
* @param x The x coordinate of the media device displaying the text.
* @param y The y coordinate of the media device displaying the text.
* @param z The z coordinate of the media device displaying the text.
* @param line The line of text which the media device is displaying.
* @param device The media device that is displaying the text.
*/
export type OnDeviceTextListener = (interactCodes: string, x: number, y: number, z: number, line: string, device: IsoWaveSignal | Radio | VehiclePart) => void;
/**
* Triggered when search mode is being disabled.
*
* @param player The player who's disabling search mode.
* @param isSearchMode Whether search mode is being enabled or disabled.
*/
export type OnDisableSearchModeListener = (player: IsoPlayer, isSearchMode: boolean) => void;
/**
* Triggered when the player disconnects from the server.
*/
export type OnDisconnectListener = () => void;
/**
* Triggered before merging the world distribution.
*/
export type OnDistributionMergeListener = () => void;
/**
* Triggered when a building tile is being set.
*
* @param chunk The chunk in which the tile is being set.
* @param render Whether the tile should be rendered or not.
* @param x The x coordinate of the tile being set.
* @param y The x coordinate of the tile being set.
* @param z The x coordinate of the tile being set.
* @param square The grid square where the tile is being set.
*/
export type OnDoTileBuilding2Listener = (chunk: IsoChunk, render: boolean, x: number, y: number, z: number, square: IsoGridSquare) => void;
/**
* Triggered when a building tile is being set.
*
* @param chunk The chunk in which the tile is being set.
* @param render Whether the tile should be rendered or not.
* @param x The x coordinate of the tile being set.
* @param y The y coordinate of the tile being set.
* @param z The z coordinate of the tile being set.
*/
export type OnDoTileBuilding3Listener = (chunk: IsoChunk, render: boolean, x: number, y: number, z: number) => void;
/**
* Triggered at dusk.
*/
export type OnDuskListener = () => void;
/**
* Triggered when a dynamic recipe for a movable inventory item is being used.
*
* @param movable The movable object resulting from using the recipe.
*/
export type OnDynamicMovableRecipeListener = (movable: Moveable, movableRecipe: MovableRecipe, inventoryItem: InventoryItem, character: IsoGameCharacter) => void;
/**
* Triggered when search mode is being enabled.
*
* @param player The player who's enabling search mode.
* @param isSearchMode Whether search mode is being enabled or disabled.
*/
export type OnEnableSearchModeListener = (player: IsoPlayer, isSearchMode: boolean) => void;
/**
* Triggered when a player successfully enters a vehicle.
*
* @param character The character who's entering the vehicle.
*/
export type OnEnterVehicleListener = (character: IsoGameCharacter) => void;
/**
* Triggered when a character equips an item in its primary slot.
*
* @param character The character who's equipping the item.
* @param inventoryItem The item that is being equipped in the primary slot.
*/
export type OnEquipPrimaryListener = (character: IsoGameCharacter, inventoryItem: InventoryItem) => void;
/**
* Triggered when a character equips an item in its secondary slot.
*
* @param character The character who's equipping the item.
* @param inventoryItem The item that is being equipped in the secondary slot.
*/
export type OnEquipSecondaryListener = (character: IsoGameCharacter, inventoryItem: InventoryItem) => void;
/**
* Triggered when a character is exiting a vehicle.
*
* @param character The character who's exiting the vehicle.
*/
export type OnExitVehicleListener = (character: IsoGameCharacter) => void;
/**
* Same as OnTick, except is only called while on the main menu.
*
* @param numberTicks Always zero.
*/
export type OnFrontEndTickListener = (numberTicks: number) => void;
/**
* Triggered after a container has been filled.
*
* @param roomName The room name in which the container is installed.
* @param containerType The type of the container that is being filled.
* @param itemContainer The container that is being filled.
*/
export type OnFillContainerListener = (roomName: string, containerType: string, itemContainer: ItemContainer) => void;
/**
* Triggered when inventory object context menus are being filled.
*
* @param player The player for which the context menu is being filled.
* @param table The context menu to be filled.
* @param items The items available in the player inventory.
*/
export type OnFillInventoryObjectContextMenuListener = (player: IsoPlayer, table: KahluaTable, items: KahluaTable) => void;
/**
* TODO
*
* @param context The context menu to be filled.
* @param baseIcon TODO.
*/
export type OnFillSearchIconContextMenuListener = (context: KahluaTable, baseIcon: KahluaTable) => void;
/**
* Triggered when world object context menus are being filled.
*
* @param player The player for which the context menu is being filled.
* @param context The context menu to be filled.
* @param worldObjects The world objects available nearby the player.
* @param test Set to true if called for the purpose of testing for nearby objects.
*/
export type OnFillWorldObjectContextMenuListener = (player: IsoPlayer, context: KahluaTable, worldObjects: KahluaTable, test: boolean) => void;
/**
* Triggered when either a game or a server is being started, or when mods are getting reloaded during a game.
*/
export type OnGameBootListener = () => void;
/**
* Triggered when a gamepad has been connected.
*
* @param controllerID The identifier of the gamepad which has been connected.
*/
export type OnGamepadConnectListener = () => void;
/**
* Triggered when a gamepad has been disconnected.
*
* @param controllerID The identifier of the gamepad which has been disconnected.
*/
export type OnGamepadDisconnectListener = (controllerID: number) => void;
/**
* Triggered after the start of a new game, and after a saved game has been loaded.
*/
export type OnGameStartListener = () => void;
/**
* Triggered after the GameTime has been initialized.
*/
export type OnGameTimeLoadedListener = () => void;
/**
* Triggered when the game client is receiving a database schema from the server.
*
* @param dbSchema The database schema of the game client.
*/
export type OnGetDBSchemaListener = (dbSchema: KahluaTable) => void;
/**
* Triggered when the game client is receiving a table result from the server.
*
* @param result The row data of the table result.
* @param rowID The row identifier of the table result.
* @param tableName The name of the table result.
*/
export type OnGetTableResultListener = (result: ArrayList<any>, rowID: number, tableName: string) => void;
/**
* Triggered when a grid square is burning.
*
* @param square The grid square that is burning.
*/
export type OnGridBurntListener = (square: IsoGridSquare) => void;
/**
* Triggered when a character hits a zombie.
*
* @param zombie The zombie that is being hit.
* @param character The character who's hitting the zombie.
* @param bodyPartType The body part where the zombie was hit.
* @param handWeapon The hand weapon used to hit the zombie.
*/
export type OnHitZombieListener = (zombie: IsoZombie, character: IsoGameCharacter, bodyPartType: BodyPartType, handWeapon: HandWeapon) => void;
/**
* Triggered after GlobalModData has been initialized.
*
* @param isNewGame Whether this is a new game or not.
*/
export type OnInitGlobalModDataListener = (isNewGame: boolean) => void;
/**
* Triggered when the modded weather state is being initialized.
*
* @param period The weather period of this weather stage.
* @param stage The weather stage to be initialized.
* @param strength (No documentation)
*/
export type OnInitModdedWeatherStageListener = (period: WeatherPeriod, stage: WeatherStage, strength: number) => void;
/**
* Triggered when a media is being recorded.
*
* @param recordedMedia The recorded media to be initialized.
*/
export type OnInitRecordedMediaListener = (recordedMedia: RecordedMedia) => void;
/**
* Triggered when the seasons have been initialized.
*
* @param erosionSeason The season to be initialized.
*/
export type OnInitSeasonsListener = (erosionSeason: ErosionSeason) => void;
/**
* Triggered during the process of initializing the world.
*/
export type OnInitWorldListener = () => void;
/**
* Triggered when an item is being dropped on the ground.
*
* @param item The inventory item being dropped on the ground.
*/
export type OnItemFallListener = (item: InventoryItem) => void;
/**
* Triggered when a joypad is activated in-game.
*
* @param controllerId The identifier of the joypad which has been activated.
*/
export type OnJoypadActivateListener = (controllerID: number) => void;
/**
* Triggered when joypad is activated from main screen.
*
* @param joypadID The identifier of the joypad.
*/
export type OnJoypadActivateUIListener = (joypadID: number) => void;
/**
* Triggered when a joypad was disconnected, just before being deactivated.
*
* @param joypadID The identifier of the joypad.
*/
export type OnJoypadBeforeDeactivateListener = (joypadID: number) => void;
/**
* Triggered when a joypad was connected, just before being activated.
*
* @param joypadID The identifier of the joypad.
*/
export type OnJoypadBeforeReactivateListener = (joypadID: number) => void;
/**
* Triggered when a joypad was disconnected, just after it's been deactivated.
*
* @param joypadID The identifier of the joypad.
*/
export type OnJoypadDeactivateListener = (joypadID: number) => void;
/**
* Triggered when a joypad was connected, just after it's been activated.
*
* @param joypadID The identifier of the joypad.
*/
export type OnJoypadReactivateListener = (joypadID: number) => void;
/**
* Triggered every time the screen is being rendered, whether in-game or on main screen.
*/
export type OnJoypadRenderUIListener = () => void;
/**
* Triggered when a keyboard key is being held down.
*
* @param key The {@link http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html Keyboard} key that has been kept pressed.
*/
export type OnKeyKeepPressedListener = (key: number) => void;
/**
* Triggered when a keyboard key is being pressed.
*
* @param key The {@link http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html Keyboard} key that has been released.
*/
export type OnKeyPressedListener = (key: number) => void;
/**
* Triggered when a keyboard key is initially being pressed.
*
* @param key The {@link http://legacy.lwjgl.org/javadoc/org/lwjgl/input/Keyboard.html Keyboard} key that has been pressed.
*/
export type OnKeyStartPressedListener = (key: number) => void;
/**
* Triggered when a game is loading, after OnGameStart.
*/
export type OnLoadListener = () => void;
/**
* Triggered after tiles definitions have been loaded.
*
* @param spriteManager The sprite manager.
*/
export type OnLoadedTileDefinitionsListener = (spriteManager: IsoSpriteManager) => void;
/**
* Triggered when IsoWorld initialises and is registering the zones for the map.
*/
export type OnLoadMapZonesListener = () => void;
/**
* Triggered after ModData has been received from the server.
*
* @param square The grid square whose ModData is getting loaded from the server.
*/
export type OnLoadModDataFromServerListener = (square: IsoGridSquare) => void;
/**
* Triggered when radio scripts are being loaded.
*
* @param radioScriptManager The radio script manager.
* @param worldInit True if the world has not yet been initialized.
*/
export type OnLoadRadioScriptsListener = (radioScriptManager: RadioScriptManager, worldInit: boolean) => void;
/**
* Triggered when sound banks are loaded for the game.
*/
export type OnLoadSoundBanksListener = () => void;
/**
* Triggered when main menu is displayed to users. This can occur either when they launch the game, or when they quit a running game.
*/
export type OnMainMenuEnterListener = () => void;
/**
* Triggered when a player finished a mechanic action.
*
* @param character The character who performed the mechanic action.
* @param success Whether the machanic action was successful or not.
* @param vehicleID The identifier of the vehicle on which the mechanic action is being performed.
* @param partID The vehicle part identifier that is being installed or removed.
* @param itemID The item identifier used to perform the mechanic action.
* @param installing Whether the vehicle part is being installed or removed.
*/
export type OnMechanicActionDoneListener = (character: IsoGameCharacter, success: boolean, vehicleID: number, partID: string, itemID: number, installing: boolean) => void;
/**
* Triggered when the mini scoreboard is being updated.
*/
export type OnMiniScoreboardUpdateListener = () => void;
/**
* Triggered when a mod has been modified on the filesystem.
*/
export type OnModsModifiedListener = () => void;
/**
* Triggered when the mouse button is down.
*
* @param x The x coordinate where the mouse button was pressed down.
* @param y The y coordinate where the mouse button was pressed down.
*/
export type OnMouseDownListener = (x: number, y: number) => void;
/**
* Triggered when the mouse is moved.
*
* @param x The x coordinate of the mouse position.
* @param y The y coordinate of the mouse position.
* @param deltaX TODO: Mouse position deltaX?
* @param deltaY TODO: Mouse position deltaY?
*/
export type OnMouseMoveListener = (x: number, y: number, deltaX: number, deltaY: number) => void;
/**
* Triggered when the mouse button is released.
*
* @param x The x coordinate where the mouse button was released.
* @param y The y coordinate where the mouse button was released.
*/
export type OnMouseUpListener = (x: number, y: number) => void;
/**
* Called when a player enters the trigger area of a NPC event.
*
* @param triggerType The type of trigger of this NPC event.
* @param modData The ModData of this trigger.
* @param BuildingDef The building definition of this trigger.
*/
export type OnMultiTriggerNPCEventListener = (triggerType: string, modData: KahluaTable, buildingDef: BuildingDef) => void;
/**
* Triggered when a fire starts.
*
* @param fire The fire object.
*/
export type OnNewFireListener = (fire: IsoFire) => void;
/**
* Triggered after a new world has been initialized.
*
* @param player The player who's starting the game.
* @param square The grid square where the player is located.
*/
export type OnNewGameListener = (player: IsoPlayer, square: IsoGridSquare) => void;
/**
* Triggered when an object is about to get removed.
*
* @param object The object about to be removed.
*/
export type OnObjectAboutToBeRemovedListener = (object: IsoObject) => void;
/**
* Triggered when an object is added to the map.
*
* @param object The object that was added.
*/
export type OnObjectAddedListener = (object: IsoObject) => void;
/**
* Triggered when a character collides with an object.
*
* @param character The character who's colliding with another object.
* @param door The object that is being collided with.
*/
export type OnObjectCollideListener = (character: IsoGameCharacter, door: IsoDoor | IsoThumpable | IsoWindow | IsoZombie) => void;
/**
* Triggered when left mouse button clicked on object
*
* @param object The object on which the left mouse button was pressed down.
* @param x The x coordinate where the left mouse button was pressed down.
* @param y The y coordinate where the left mouse button was pressed down.
*/
export type OnObjectLeftMouseButtonDownListener = (object: IsoObject, x: number, y: number) => void;
/**
* Triggered when left mouse button is released on object.
*
* @param object The object on which the left mouse button was released.
* @param x The x coordinate where the left mouse button was released.
* @param y The y coordinate where the left mouse button was released.
*/
export type OnObjectLeftMouseButtonUpListener = (object: IsoObject, x: number, y: number) => void;
/**
* Triggered when right mouse button clicked on object.
*
* @param object The object on which the right mouse button was pressed down.
* @param x The x coordinate where the right mouse button was pressed down.
* @param y The y coordinate where the right mouse button was pressed down.
*/
export type OnObjectRightMouseButtonDownListener = (object: IsoObject, x: number, y: number) => void;
/**
* Triggered when right mouse button is released on object.
*
* @param object The object on which the right mouse button was released.
* @param x The x coordinate where the right mouse button was released.
* @param y The y coordinate where the right mouse button was released.
*/
export type OnObjectRightMouseButtonUpListener = (object: IsoObject, x: number, y: number) => void;
/**
* Triggered when a character is done performing an attack.
*
* @param character The character who's finished attacking.
* @param handWeapon The hand weapon used to perform the attack.
*/
export type OnPlayerAttackFinishedListener = (character: IsoGameCharacter, handWeapon: HandWeapon) => void;
/**
* Triggered when a player dies.
*
* @param player The player who's about to die.
*/
export type OnPlayerDeathListener = (player: IsoPlayer) => void;
/**
* Triggered while the player is moving.
*