teeworlds 2.5.2 → 2.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +492 -469
- package/lib/client.ts +164 -241
- package/lib/components/game.js +9 -46
- package/lib/components/game.ts +12 -13
- package/lib/components/rcon.js +122 -0
- package/lib/components/rcon.ts +114 -0
- package/lib/components/snapshot.js +24 -48
- package/lib/components/snapshot.ts +68 -100
- package/lib/enums_types/protocol.js +13 -0
- package/lib/enums_types/protocol.ts +137 -0
- package/lib/enums_types/types.d.ts +236 -0
- package/lib/snapshot.ts +36 -38
- package/package.json +1 -1
- package/lib/snapshots.d.ts +0 -233
package/lib/snapshot.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UUIDManager, createTwMD5Hash } from "./UUIDManager";
|
|
2
2
|
import { Client } from "./client";
|
|
3
3
|
import { MsgUnpacker } from "./MsgUnpacker";
|
|
4
|
-
import {
|
|
4
|
+
import { SnapshotItemTypes, DeltaItem, DDNetItem, Item } from "./enums_types/types";
|
|
5
5
|
var decoder = new TextDecoder('utf-8');
|
|
6
6
|
|
|
7
7
|
const ___itemAppendix: {"type_id": number, "size": number, "name": string}[] = [ // only used for the events underneath. the actual itemAppendix below this is only used for size
|
|
@@ -75,8 +75,6 @@ export enum items {
|
|
|
75
75
|
EVENT_DAMAGE_INDICATOR
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
export declare type Item = PlayerInput | PlayerInfo | Projectile | Laser | Pickup | Flag | GameInfo | GameData | CharacterCore | Character | PlayerInfo | ClientInfo | SpectatorInfo | Common | Explosion | Spawn |HammerHit | Death | SoundGlobal | SoundWorld | DamageInd;
|
|
79
|
-
export declare type DDNetItem = MyOwnObject | DDNetCharacter | DDNetPlayer | GameInfoEx | DDNetProjectile | DDNetLaser;
|
|
80
78
|
interface eSnap {
|
|
81
79
|
Snapshot: {Key: number, Data: number[]},
|
|
82
80
|
ack: number,
|
|
@@ -93,7 +91,7 @@ let supported_uuids = [
|
|
|
93
91
|
]
|
|
94
92
|
|
|
95
93
|
export class Snapshot {
|
|
96
|
-
deltas:
|
|
94
|
+
deltas: DeltaItem[] = [];
|
|
97
95
|
eSnapHolder: eSnap[] = [];
|
|
98
96
|
crc_errors: number = 0;
|
|
99
97
|
client: Client;
|
|
@@ -128,7 +126,7 @@ export class Snapshot {
|
|
|
128
126
|
if (this.uuid_manager.LookupType(Type)?.name == "my-own-object@heinrich5991.de") {
|
|
129
127
|
_item = {
|
|
130
128
|
m_Test: data[0]
|
|
131
|
-
} as MyOwnObject;
|
|
129
|
+
} as SnapshotItemTypes.MyOwnObject;
|
|
132
130
|
} else if (this.uuid_manager.LookupType(Type)?.name == "character@netobj.ddnet.tw") {
|
|
133
131
|
_item = {
|
|
134
132
|
m_Flags: data[0],
|
|
@@ -147,21 +145,21 @@ export class Snapshot {
|
|
|
147
145
|
m_TargetY: data[9] ?? null,
|
|
148
146
|
id: id
|
|
149
147
|
|
|
150
|
-
} as DDNetCharacter;
|
|
148
|
+
} as SnapshotItemTypes.DDNetCharacter;
|
|
151
149
|
}
|
|
152
150
|
else if (this.uuid_manager.LookupType(Type)?.name == "player@netobj.ddnet.tw") {
|
|
153
151
|
_item = {
|
|
154
152
|
m_Flags: data[0],
|
|
155
153
|
m_AuthLevel: data[1],
|
|
156
154
|
id: id
|
|
157
|
-
} as DDNetPlayer
|
|
155
|
+
} as SnapshotItemTypes.DDNetPlayer
|
|
158
156
|
}
|
|
159
157
|
else if (this.uuid_manager.LookupType(Type)?.name == "gameinfo@netobj.ddnet.tw") {
|
|
160
158
|
_item = {
|
|
161
159
|
m_Flags: data[0],
|
|
162
160
|
m_Version: data[1],
|
|
163
161
|
m_Flags2: data[2]
|
|
164
|
-
} as GameInfoEx
|
|
162
|
+
} as SnapshotItemTypes.GameInfoEx
|
|
165
163
|
}
|
|
166
164
|
else if (this.uuid_manager.LookupType(Type)?.name == "projectile@netobj.ddnet.tw") {
|
|
167
165
|
_item = {
|
|
@@ -171,7 +169,7 @@ export class Snapshot {
|
|
|
171
169
|
m_Data: data[3],
|
|
172
170
|
m_Type: data[3],
|
|
173
171
|
m_StartTick: data[3]
|
|
174
|
-
} as DDNetProjectile
|
|
172
|
+
} as SnapshotItemTypes.DDNetProjectile
|
|
175
173
|
}
|
|
176
174
|
else if (this.uuid_manager.LookupType(Type)?.name == "laser@netobj.ddnet.tw") {
|
|
177
175
|
_item = {
|
|
@@ -181,7 +179,7 @@ export class Snapshot {
|
|
|
181
179
|
m_FromY: data[3],
|
|
182
180
|
m_Owner: data[3],
|
|
183
181
|
m_Type: data[3]
|
|
184
|
-
} as DDNetLaser
|
|
182
|
+
} as SnapshotItemTypes.DDNetLaser
|
|
185
183
|
}
|
|
186
184
|
return _item;
|
|
187
185
|
}
|
|
@@ -200,7 +198,7 @@ export class Snapshot {
|
|
|
200
198
|
wanted_weapon: data[7],
|
|
201
199
|
next_weapon: data[8],
|
|
202
200
|
prev_weapon: data[9],
|
|
203
|
-
} as PlayerInput
|
|
201
|
+
} as SnapshotItemTypes.PlayerInput
|
|
204
202
|
break;
|
|
205
203
|
case items.OBJ_PROJECTILE:
|
|
206
204
|
_item = {
|
|
@@ -210,7 +208,7 @@ export class Snapshot {
|
|
|
210
208
|
vel_y: data[3],
|
|
211
209
|
type_: data[4],
|
|
212
210
|
start_tick: data[5],
|
|
213
|
-
} as Projectile
|
|
211
|
+
} as SnapshotItemTypes.Projectile
|
|
214
212
|
break;
|
|
215
213
|
case items.OBJ_LASER:
|
|
216
214
|
_item = {
|
|
@@ -219,7 +217,7 @@ export class Snapshot {
|
|
|
219
217
|
from_x: data[2],
|
|
220
218
|
from_y: data[3],
|
|
221
219
|
start_tick: data[4],
|
|
222
|
-
} as Laser
|
|
220
|
+
} as SnapshotItemTypes.Laser
|
|
223
221
|
break;
|
|
224
222
|
case items.OBJ_PICKUP:
|
|
225
223
|
_item = {
|
|
@@ -227,14 +225,14 @@ export class Snapshot {
|
|
|
227
225
|
y: data[1],
|
|
228
226
|
type_: data[2],
|
|
229
227
|
subtype: data[3],
|
|
230
|
-
} as Pickup
|
|
228
|
+
} as SnapshotItemTypes.Pickup
|
|
231
229
|
break;
|
|
232
230
|
case items.OBJ_FLAG:
|
|
233
231
|
_item = {
|
|
234
232
|
x: data[0],
|
|
235
233
|
y: data[1],
|
|
236
234
|
team: data[2],
|
|
237
|
-
} as Flag
|
|
235
|
+
} as SnapshotItemTypes.Flag
|
|
238
236
|
break;
|
|
239
237
|
case items.OBJ_GAME_INFO:
|
|
240
238
|
_item = {
|
|
@@ -247,7 +245,7 @@ export class Snapshot {
|
|
|
247
245
|
round_num: data[6],
|
|
248
246
|
round_current: data[7],
|
|
249
247
|
|
|
250
|
-
} as GameInfo
|
|
248
|
+
} as SnapshotItemTypes.GameInfo
|
|
251
249
|
break;
|
|
252
250
|
case items.OBJ_GAME_DATA:
|
|
253
251
|
_item = {
|
|
@@ -255,7 +253,7 @@ export class Snapshot {
|
|
|
255
253
|
teamscore_blue: data[1],
|
|
256
254
|
flag_carrier_red: data[2],
|
|
257
255
|
flag_carrier_blue: data[3],
|
|
258
|
-
} as GameData
|
|
256
|
+
} as SnapshotItemTypes.GameData
|
|
259
257
|
break;
|
|
260
258
|
case items.OBJ_CHARACTER_CORE:
|
|
261
259
|
_item = {
|
|
@@ -274,7 +272,7 @@ export class Snapshot {
|
|
|
274
272
|
hook_y: data[12],
|
|
275
273
|
hook_dx: data[13],
|
|
276
274
|
hook_dy: data[14],
|
|
277
|
-
} as CharacterCore
|
|
275
|
+
} as SnapshotItemTypes.CharacterCore
|
|
278
276
|
break;
|
|
279
277
|
case items.OBJ_CHARACTER:
|
|
280
278
|
_item = {
|
|
@@ -294,7 +292,7 @@ export class Snapshot {
|
|
|
294
292
|
hook_y: data[12],
|
|
295
293
|
hook_dx: data[13],
|
|
296
294
|
hook_dy: data[14],
|
|
297
|
-
} as CharacterCore,
|
|
295
|
+
} as SnapshotItemTypes.CharacterCore,
|
|
298
296
|
player_flags: data[15],
|
|
299
297
|
health: data[16],
|
|
300
298
|
armor: data[17],
|
|
@@ -304,7 +302,7 @@ export class Snapshot {
|
|
|
304
302
|
attack_tick: data[21],
|
|
305
303
|
|
|
306
304
|
client_id: id
|
|
307
|
-
} as Character
|
|
305
|
+
} as SnapshotItemTypes.Character
|
|
308
306
|
break;
|
|
309
307
|
case items.OBJ_PLAYER_INFO:
|
|
310
308
|
_item = {
|
|
@@ -313,7 +311,7 @@ export class Snapshot {
|
|
|
313
311
|
team: data[2],
|
|
314
312
|
score: data[3],
|
|
315
313
|
latency: data[4],
|
|
316
|
-
} as PlayerInfo
|
|
314
|
+
} as SnapshotItemTypes.PlayerInfo
|
|
317
315
|
break;
|
|
318
316
|
case items.OBJ_CLIENT_INFO:
|
|
319
317
|
_item = {
|
|
@@ -325,44 +323,44 @@ export class Snapshot {
|
|
|
325
323
|
color_body: Number(data.slice(15, 16)),
|
|
326
324
|
color_feet: Number(data.slice(16, 17)),
|
|
327
325
|
id: id
|
|
328
|
-
} as ClientInfo
|
|
326
|
+
} as SnapshotItemTypes.ClientInfo
|
|
329
327
|
break;
|
|
330
328
|
case items.OBJ_SPECTATOR_INFO:
|
|
331
329
|
_item = {
|
|
332
330
|
spectator_id: data[0],
|
|
333
331
|
x: data[1],
|
|
334
332
|
y: data[2],
|
|
335
|
-
} as SpectatorInfo
|
|
333
|
+
} as SnapshotItemTypes.SpectatorInfo
|
|
336
334
|
break;
|
|
337
335
|
case items.EVENT_COMMON:
|
|
338
336
|
_item = {
|
|
339
337
|
x: data[0],
|
|
340
338
|
y: data[1],
|
|
341
|
-
} as Common
|
|
339
|
+
} as SnapshotItemTypes.Common
|
|
342
340
|
break;
|
|
343
341
|
case items.EVENT_EXPLOSION:
|
|
344
342
|
_item = {
|
|
345
343
|
common: {
|
|
346
344
|
x: data[0],
|
|
347
345
|
y: data[1]
|
|
348
|
-
} as Common
|
|
349
|
-
} as Explosion
|
|
346
|
+
} as SnapshotItemTypes.Common
|
|
347
|
+
} as SnapshotItemTypes.Explosion
|
|
350
348
|
break;
|
|
351
349
|
case items.EVENT_SPAWN:
|
|
352
350
|
_item = {
|
|
353
351
|
common: {
|
|
354
352
|
x: data[0],
|
|
355
353
|
y: data[1]
|
|
356
|
-
} as Common
|
|
357
|
-
} as Spawn
|
|
354
|
+
} as SnapshotItemTypes.Common
|
|
355
|
+
} as SnapshotItemTypes.Spawn
|
|
358
356
|
break;
|
|
359
357
|
case items.EVENT_HAMMERHIT:
|
|
360
358
|
_item = {
|
|
361
359
|
common: {
|
|
362
360
|
x: data[0],
|
|
363
361
|
y: data[1]
|
|
364
|
-
} as Common
|
|
365
|
-
} as HammerHit
|
|
362
|
+
} as SnapshotItemTypes.Common
|
|
363
|
+
} as SnapshotItemTypes.HammerHit
|
|
366
364
|
break;
|
|
367
365
|
case items.EVENT_DEATH:
|
|
368
366
|
_item = {
|
|
@@ -370,26 +368,26 @@ export class Snapshot {
|
|
|
370
368
|
common: {
|
|
371
369
|
x: data[1],
|
|
372
370
|
y: data[2]
|
|
373
|
-
} as Common
|
|
374
|
-
} as Death
|
|
371
|
+
} as SnapshotItemTypes.Common
|
|
372
|
+
} as SnapshotItemTypes.Death
|
|
375
373
|
break;
|
|
376
374
|
case items.EVENT_SOUND_GLOBAL:
|
|
377
375
|
_item = {
|
|
378
376
|
common: {
|
|
379
377
|
x: data[0],
|
|
380
378
|
y: data[1]
|
|
381
|
-
} as Common,
|
|
379
|
+
} as SnapshotItemTypes.Common,
|
|
382
380
|
sound_id: data[2]
|
|
383
|
-
} as SoundGlobal
|
|
381
|
+
} as SnapshotItemTypes.SoundGlobal
|
|
384
382
|
break;
|
|
385
383
|
case items.EVENT_SOUND_WORLD:
|
|
386
384
|
_item = {
|
|
387
385
|
common: {
|
|
388
386
|
x: data[0],
|
|
389
387
|
y: data[1]
|
|
390
|
-
} as Common,
|
|
388
|
+
} as SnapshotItemTypes.Common,
|
|
391
389
|
sound_id: data[2]
|
|
392
|
-
} as SoundWorld
|
|
390
|
+
} as SnapshotItemTypes.SoundWorld
|
|
393
391
|
break;
|
|
394
392
|
case items.EVENT_DAMAGE_INDICATOR:
|
|
395
393
|
_item = {
|
|
@@ -397,8 +395,8 @@ export class Snapshot {
|
|
|
397
395
|
common: {
|
|
398
396
|
x: data[0],
|
|
399
397
|
y: data[1]
|
|
400
|
-
} as Common,
|
|
401
|
-
} as DamageInd
|
|
398
|
+
} as SnapshotItemTypes.Common,
|
|
399
|
+
} as SnapshotItemTypes.DamageInd
|
|
402
400
|
break;
|
|
403
401
|
|
|
404
402
|
}
|
package/package.json
CHANGED
package/lib/snapshots.d.ts
DELETED
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
export declare interface PlayerInput {
|
|
2
|
-
direction: number,
|
|
3
|
-
target_x: number,
|
|
4
|
-
target_y: number,
|
|
5
|
-
jump: number,
|
|
6
|
-
fire: number,
|
|
7
|
-
hook: number,
|
|
8
|
-
player_flags: number,
|
|
9
|
-
wanted_weapon: number,
|
|
10
|
-
next_weapon: number,
|
|
11
|
-
prev_weapon: number,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export declare interface Projectile {
|
|
15
|
-
x: number,
|
|
16
|
-
y: number,
|
|
17
|
-
vel_x: number,
|
|
18
|
-
vel_y: number,
|
|
19
|
-
type_: number,
|
|
20
|
-
start_tick: number,
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export declare interface Laser {
|
|
24
|
-
x: number,
|
|
25
|
-
y: number,
|
|
26
|
-
from_x: number,
|
|
27
|
-
from_y: number,
|
|
28
|
-
start_tick: number,
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export declare interface Pickup {
|
|
32
|
-
x: number,
|
|
33
|
-
y: number,
|
|
34
|
-
type_: number,
|
|
35
|
-
subtype: number,
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export declare interface Flag {
|
|
39
|
-
x: number,
|
|
40
|
-
y: number,
|
|
41
|
-
team: number,
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export declare interface GameInfo {
|
|
45
|
-
game_flags: number,
|
|
46
|
-
game_state_flags: number,
|
|
47
|
-
round_start_tick: number,
|
|
48
|
-
warmup_timer: number,
|
|
49
|
-
score_limit: number,
|
|
50
|
-
time_limit: number,
|
|
51
|
-
round_num: number,
|
|
52
|
-
round_current: number,
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export declare interface GameData {
|
|
56
|
-
teamscore_red: number,
|
|
57
|
-
teamscore_blue: number,
|
|
58
|
-
flag_carrier_red: number,
|
|
59
|
-
flag_carrier_blue: number,
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export declare interface CharacterCore {
|
|
63
|
-
tick: number,
|
|
64
|
-
x: number,
|
|
65
|
-
y: number,
|
|
66
|
-
vel_x: number,
|
|
67
|
-
vel_y: number,
|
|
68
|
-
angle: number,
|
|
69
|
-
direction: number,
|
|
70
|
-
jumped: number,
|
|
71
|
-
hooked_player: number,
|
|
72
|
-
hook_state: number,
|
|
73
|
-
hook_tick: number,
|
|
74
|
-
hook_x: number,
|
|
75
|
-
hook_y: number,
|
|
76
|
-
hook_dx: number,
|
|
77
|
-
hook_dy: number,
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export declare interface Character {
|
|
81
|
-
character_core: CharacterCore,
|
|
82
|
-
player_flags: number,
|
|
83
|
-
health: number,
|
|
84
|
-
armor: number,
|
|
85
|
-
ammo_count: number,
|
|
86
|
-
weapon: number,
|
|
87
|
-
emote: number,
|
|
88
|
-
attack_tick: number,
|
|
89
|
-
|
|
90
|
-
client_id: number
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export declare interface PlayerInfo {
|
|
94
|
-
local: number,
|
|
95
|
-
client_id: number,
|
|
96
|
-
team: number,
|
|
97
|
-
score: number,
|
|
98
|
-
latency: number,
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export declare interface ClientInfo {
|
|
102
|
-
name: string,
|
|
103
|
-
clan: string,
|
|
104
|
-
country: number,
|
|
105
|
-
skin: string,
|
|
106
|
-
use_custom_color: number,
|
|
107
|
-
color_body: number,
|
|
108
|
-
color_feet: number,
|
|
109
|
-
|
|
110
|
-
id: number
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export declare interface SpectatorInfo {
|
|
114
|
-
spectator_id: number,
|
|
115
|
-
x: number,
|
|
116
|
-
y: number,
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export declare interface Common {
|
|
120
|
-
x: number,
|
|
121
|
-
y: number,
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export declare interface Explosion {
|
|
125
|
-
common: Common,
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export declare interface Spawn {
|
|
129
|
-
common: Common,
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export declare interface HammerHit {
|
|
133
|
-
common: Common,
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export declare interface Death {
|
|
137
|
-
common: Common,
|
|
138
|
-
client_id: number,
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export declare interface SoundGlobal {
|
|
142
|
-
common: Common,
|
|
143
|
-
sound_id: number,
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export declare interface SoundWorld {
|
|
147
|
-
common: Common,
|
|
148
|
-
sound_id: number,
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
export declare interface DamageInd {
|
|
152
|
-
common: Common,
|
|
153
|
-
angle: number,
|
|
154
|
-
}
|
|
155
|
-
export declare enum items {
|
|
156
|
-
OBJ_EX,
|
|
157
|
-
OBJ_PLAYER_INPUT,
|
|
158
|
-
OBJ_PROJECTILE,
|
|
159
|
-
OBJ_LASER,
|
|
160
|
-
OBJ_PICKUP,
|
|
161
|
-
OBJ_FLAG,
|
|
162
|
-
OBJ_GAME_INFO,
|
|
163
|
-
OBJ_GAME_DATA,
|
|
164
|
-
OBJ_CHARACTER_CORE,
|
|
165
|
-
OBJ_CHARACTER,
|
|
166
|
-
OBJ_PLAYER_INFO,
|
|
167
|
-
OBJ_CLIENT_INFO,
|
|
168
|
-
OBJ_SPECTATOR_INFO,
|
|
169
|
-
EVENT_COMMON,
|
|
170
|
-
EVENT_EXPLOSION,
|
|
171
|
-
EVENT_SPAWN,
|
|
172
|
-
EVENT_HAMMERHIT,
|
|
173
|
-
EVENT_DEATH,
|
|
174
|
-
EVENT_SOUND_GLOBAL,
|
|
175
|
-
EVENT_SOUND_WORLD,
|
|
176
|
-
EVENT_DAMAGE_INDICATOR
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
export declare interface MyOwnObject {
|
|
180
|
-
m_Test: number
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export declare interface DDNetCharacter {
|
|
184
|
-
m_Flags: number,
|
|
185
|
-
m_FreezeEnd: number,
|
|
186
|
-
m_Jumps: number,
|
|
187
|
-
m_TeleCheckpoint: number,
|
|
188
|
-
m_StrongWeakID: number,
|
|
189
|
-
|
|
190
|
-
// # New data fields for jump display, freeze bar and ninja bar
|
|
191
|
-
// # Default values indicate that these values should not be used
|
|
192
|
-
m_JumpedTotal?: number,
|
|
193
|
-
m_NinjaActivationTick?: number,
|
|
194
|
-
m_FreezeStart?: number,
|
|
195
|
-
// # New data fields for improved target accuracy
|
|
196
|
-
m_TargetX?: number,
|
|
197
|
-
m_TargetY?: number,
|
|
198
|
-
id: number
|
|
199
|
-
} //, validate_size=False),
|
|
200
|
-
/** m_AuthLevel "AUTHED_NO", "AUTHED_ADMIN" */
|
|
201
|
-
export declare interface DDNetPlayer {
|
|
202
|
-
m_Flags: number,
|
|
203
|
-
m_AuthLevel: number,
|
|
204
|
-
id: number
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
export declare interface GameInfoEx {
|
|
208
|
-
|
|
209
|
-
m_Flags: number,
|
|
210
|
-
m_Version: number,
|
|
211
|
-
m_Flags2: number,
|
|
212
|
-
}//, validate_size=False),
|
|
213
|
-
|
|
214
|
-
// # The code assumes that this has the same in-memory representation as
|
|
215
|
-
// # the Projectile net object.
|
|
216
|
-
export declare interface DDNetProjectile {
|
|
217
|
-
m_X: number,
|
|
218
|
-
m_Y: number,
|
|
219
|
-
m_Angle: number,
|
|
220
|
-
m_Data: number,
|
|
221
|
-
m_Type: number,
|
|
222
|
-
m_StartTick: number,
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export declare interface DDNetLaser {
|
|
226
|
-
m_ToX: number,
|
|
227
|
-
m_ToY: number,
|
|
228
|
-
m_FromX: number,
|
|
229
|
-
m_FromY: number,
|
|
230
|
-
m_StartTick: number,
|
|
231
|
-
m_Owner: number,
|
|
232
|
-
m_Type: number,
|
|
233
|
-
}
|