quake2ts 0.0.271 → 0.0.275

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 (46) hide show
  1. package/package.json +1 -1
  2. package/packages/cgame/dist/index.cjs +29 -5
  3. package/packages/cgame/dist/index.cjs.map +1 -1
  4. package/packages/cgame/dist/index.js +30 -6
  5. package/packages/cgame/dist/index.js.map +1 -1
  6. package/packages/client/dist/browser/index.global.js +13 -13
  7. package/packages/client/dist/browser/index.global.js.map +1 -1
  8. package/packages/client/dist/cjs/index.cjs.map +1 -1
  9. package/packages/client/dist/esm/index.js.map +1 -1
  10. package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
  11. package/packages/engine/dist/browser/index.global.js +6 -6
  12. package/packages/engine/dist/browser/index.global.js.map +1 -1
  13. package/packages/engine/dist/cjs/index.cjs.map +1 -1
  14. package/packages/engine/dist/esm/index.js.map +1 -1
  15. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
  16. package/packages/game/dist/browser/index.global.js +3 -3
  17. package/packages/game/dist/browser/index.global.js.map +1 -1
  18. package/packages/game/dist/cjs/index.cjs +1058 -119
  19. package/packages/game/dist/cjs/index.cjs.map +1 -1
  20. package/packages/game/dist/esm/index.js +1058 -119
  21. package/packages/game/dist/esm/index.js.map +1 -1
  22. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  23. package/packages/game/dist/types/entities/monsters/fixbot.d.ts +5 -0
  24. package/packages/game/dist/types/entities/monsters/fixbot.d.ts.map +1 -0
  25. package/packages/game/dist/types/entities/monsters/gekk.d.ts +5 -0
  26. package/packages/game/dist/types/entities/monsters/gekk.d.ts.map +1 -0
  27. package/packages/game/dist/types/entities/monsters/index.d.ts.map +1 -1
  28. package/packages/game/dist/types/entities/playerStats.d.ts.map +1 -1
  29. package/packages/game/dist/types/inventory/playerInventory.d.ts +4 -48
  30. package/packages/game/dist/types/inventory/playerInventory.d.ts.map +1 -1
  31. package/packages/server/dist/index.cjs +73 -5
  32. package/packages/server/dist/index.js +73 -5
  33. package/packages/shared/dist/browser/index.global.js +1 -1
  34. package/packages/shared/dist/browser/index.global.js.map +1 -1
  35. package/packages/shared/dist/cjs/index.cjs +47 -4
  36. package/packages/shared/dist/cjs/index.cjs.map +1 -1
  37. package/packages/shared/dist/esm/index.js +45 -4
  38. package/packages/shared/dist/esm/index.js.map +1 -1
  39. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
  40. package/packages/shared/dist/types/items/index.d.ts +1 -0
  41. package/packages/shared/dist/types/items/index.d.ts.map +1 -1
  42. package/packages/shared/dist/types/items/weaponInfo.d.ts +5 -0
  43. package/packages/shared/dist/types/items/weaponInfo.d.ts.map +1 -0
  44. package/packages/shared/dist/types/items/weapons.d.ts +8 -7
  45. package/packages/shared/dist/types/items/weapons.d.ts.map +1 -1
  46. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,5 @@
1
+ import { Entity } from '../entity.js';
2
+ import { SpawnContext, SpawnRegistry } from '../spawn.js';
3
+ export declare function SP_monster_fixbot(self: Entity, context: SpawnContext): void;
4
+ export declare function registerFixbotSpawns(registry: SpawnRegistry): void;
5
+ //# sourceMappingURL=fixbot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixbot.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/fixbot.ts"],"names":[],"mappings":"AAyBA,OAAO,EAEL,MAAM,EAMP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0X1D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAiC3E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAElE"}
@@ -0,0 +1,5 @@
1
+ import { Entity } from '../entity.js';
2
+ import { SpawnContext, SpawnRegistry } from '../spawn.js';
3
+ export declare function SP_monster_gekk(self: Entity, context: SpawnContext): void;
4
+ export declare function registerGekkSpawns(registry: SpawnRegistry): void;
5
+ //# sourceMappingURL=gekk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gekk.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/gekk.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,MAAM,EAMP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAysB1D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CA8CzE;AAiDD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0B5C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAyBnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA4B5C,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CA2BnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"playerStats.d.ts","sourceRoot":"","sources":["../../../src/entities/playerStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA8BrC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA+EjF"}
1
+ {"version":3,"file":"playerStats.d.ts","sourceRoot":"","sources":["../../../src/entities/playerStats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAerC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAuFjF"}
@@ -1,66 +1,22 @@
1
- export declare enum WeaponId {
2
- Blaster = "blaster",
3
- Shotgun = "shotgun",
4
- SuperShotgun = "supershotgun",
5
- Machinegun = "machinegun",
6
- Chaingun = "chaingun",
7
- GrenadeLauncher = "grenadelauncher",
8
- RocketLauncher = "rocketlauncher",
9
- HyperBlaster = "hyperblaster",
10
- Railgun = "railgun",
11
- BFG10K = "bfg10k",
12
- HandGrenade = "grenades",
13
- Grapple = "grapple",// Missing
14
- IonRipper = "ionripper",
15
- Phalanx = "phalanx",
16
- Trap = "trap",
17
- PlasmaBeam = "plasmabeam",// Heatbeam
18
- EtfRifle = "etfrifle",
19
- ProxLauncher = "proxlauncher",
20
- ChainFist = "chainfist",
21
- Disruptor = "disruptor"
22
- }
23
1
  import { type AmmoInventory, type AmmoItemId, pickupAmmo, type AmmoAdjustmentResult } from './ammo.js';
2
+ import { WeaponId, PowerupId } from '@quake2ts/shared';
24
3
  import { ArmorType, type RegularArmorState } from '../combat/armor.js';
25
4
  import { WeaponItem, ArmorItem, PowerupItem, PowerArmorItem, KeyItem, HealthItem } from './items.js';
26
5
  import { PlayerWeaponStates } from '../combat/weapons/state.js';
27
6
  import { Vec3 } from '@quake2ts/shared';
28
7
  import { WeaponStateEnum } from '../combat/weapons/state.js';
8
+ export { WeaponId, PowerupId };
29
9
  export interface PlayerInventoryOptions {
30
10
  readonly weapons?: readonly WeaponId[];
31
11
  readonly ammo?: Record<number, number>;
32
12
  readonly ammoCaps?: readonly number[];
33
13
  readonly currentWeapon?: WeaponId;
34
14
  }
35
- export declare enum PowerupId {
36
- QuadDamage = "quad",
37
- Invulnerability = "invulnerability",
38
- Silencer = "silencer",
39
- Rebreather = "rebreather",
40
- EnviroSuit = "enviro",
41
- DoubleDamage = "double",// Rogue
42
- QuadFire = "quadfire",// Xatrix?
43
- Invisibility = "invisibility",// TF? or other mod
44
- Bandolier = "bandolier",
45
- AmmoPack = "pack",
46
- IRGoggles = "goggles",
47
- SphereVengeance = "vengeance",// Rogue
48
- SphereHunter = "hunter",// Rogue
49
- SphereDefender = "defender",// Rogue
50
- Doppelganger = "doppelganger",// Rogue
51
- TagToken = "tagtoken",
52
- TechResistance = "tech_resistance",
53
- TechStrength = "tech_strength",
54
- TechHaste = "tech_haste",
55
- TechRegeneration = "tech_regeneration",
56
- Flashlight = "flashlight",
57
- Compass = "compass"
58
- }
59
15
  export declare enum KeyId {
60
16
  Blue = "key_blue",
61
17
  Red = "key_red",
62
- Green = "key_green",// Data CD / Security Pass
63
- Yellow = "key_yellow",// Power Cube / Pyramid Key
18
+ Green = "key_green",
19
+ Yellow = "key_yellow",
64
20
  DataCD = "key_data_cd",
65
21
  PowerCube = "key_power_cube",
66
22
  ExplosiveCharges = "key_explosive_charges",
@@ -1 +1 @@
1
- {"version":3,"file":"playerInventory.d.ts","sourceRoot":"","sources":["../../../src/inventory/playerInventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playerInventory.d.ts","sourceRoot":"","sources":["../../../src/inventory/playerInventory.ts"],"names":[],"mappings":"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"}
@@ -330,17 +330,28 @@ var U_ORIGIN3 = 1 << 9;
330
330
  var U_ANGLE1 = 1 << 10;
331
331
  var U_MODEL = 1 << 11;
332
332
  var U_RENDERFX8 = 1 << 12;
333
+ var U_ALPHA = 1 << 13;
333
334
  var U_EFFECTS8 = 1 << 14;
334
335
  var U_MOREBITS2 = 1 << 15;
335
336
  var U_SKIN8 = 1 << 16;
336
337
  var U_FRAME16 = 1 << 17;
337
338
  var U_RENDERFX16 = 1 << 18;
338
339
  var U_EFFECTS16 = 1 << 19;
340
+ var U_MODEL2 = 1 << 20;
341
+ var U_MODEL3 = 1 << 21;
342
+ var U_MODEL4 = 1 << 22;
339
343
  var U_MOREBITS3 = 1 << 23;
340
344
  var U_OLDORIGIN = 1 << 24;
341
345
  var U_SKIN16 = 1 << 25;
342
346
  var U_SOUND = 1 << 26;
343
347
  var U_SOLID = 1 << 27;
348
+ var U_SCALE = 1 << 28;
349
+ var U_INSTANCE_BITS = 1 << 29;
350
+ var U_LOOP_VOLUME = 1 << 30;
351
+ var U_MOREBITS4 = 2147483648 | 0;
352
+ var U_LOOP_ATTENUATION_HIGH = 1 << 0;
353
+ var U_OWNER_HIGH = 1 << 1;
354
+ var U_OLD_FRAME_HIGH = 1 << 2;
344
355
  var NULL_STATE = {
345
356
  number: 0,
346
357
  origin: { x: 0, y: 0, z: 0 },
@@ -352,7 +363,17 @@ var NULL_STATE = {
352
363
  renderfx: 0,
353
364
  solid: 0,
354
365
  sound: 0,
355
- event: 0
366
+ event: 0,
367
+ alpha: 0,
368
+ scale: 0,
369
+ instanceBits: 0,
370
+ loopVolume: 0,
371
+ loopAttenuation: 0,
372
+ owner: 0,
373
+ oldFrame: 0,
374
+ modelIndex2: 0,
375
+ modelIndex3: 0,
376
+ modelIndex4: 0
356
377
  };
357
378
  function writeRemoveEntity(number, writer) {
358
379
  let bits = U_REMOVE;
@@ -374,12 +395,22 @@ function writeRemoveEntity(number, writer) {
374
395
  }
375
396
  function writeDeltaEntity(from, to, writer, force, newEntity) {
376
397
  let bits = 0;
398
+ let bitsHigh = 0;
377
399
  if (newEntity) {
378
400
  from = NULL_STATE;
379
401
  }
380
402
  if (to.modelIndex !== from.modelIndex || force) {
381
403
  bits |= U_MODEL;
382
404
  }
405
+ if (to.modelIndex2 !== from.modelIndex2 || force) {
406
+ bits |= U_MODEL2;
407
+ }
408
+ if (to.modelIndex3 !== from.modelIndex3 || force) {
409
+ bits |= U_MODEL3;
410
+ }
411
+ if (to.modelIndex4 !== from.modelIndex4 || force) {
412
+ bits |= U_MODEL4;
413
+ }
383
414
  if (to.origin.x !== from.origin.x || force) {
384
415
  bits |= U_ORIGIN1;
385
416
  }
@@ -423,17 +454,41 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
423
454
  if (to.event !== from.event || force) {
424
455
  bits |= U_EVENT;
425
456
  }
457
+ if ((to.alpha !== from.alpha || force) && to.alpha !== void 0) {
458
+ bits |= U_ALPHA;
459
+ }
460
+ if ((to.scale !== from.scale || force) && to.scale !== void 0) {
461
+ bits |= U_SCALE;
462
+ }
463
+ if ((to.instanceBits !== from.instanceBits || force) && to.instanceBits !== void 0) {
464
+ bits |= U_INSTANCE_BITS;
465
+ }
466
+ if ((to.loopVolume !== from.loopVolume || force) && to.loopVolume !== void 0) {
467
+ bits |= U_LOOP_VOLUME;
468
+ }
469
+ if ((to.loopAttenuation !== from.loopAttenuation || force) && to.loopAttenuation !== void 0) {
470
+ bitsHigh |= U_LOOP_ATTENUATION_HIGH;
471
+ }
472
+ if ((to.owner !== from.owner || force) && to.owner !== void 0) {
473
+ bitsHigh |= U_OWNER_HIGH;
474
+ }
475
+ if ((to.oldFrame !== from.oldFrame || force) && to.oldFrame !== void 0) {
476
+ bitsHigh |= U_OLD_FRAME_HIGH;
477
+ }
426
478
  if (to.number >= 256) {
427
479
  bits |= U_NUMBER16;
428
480
  }
429
- if (bits & 4294967040) {
430
- bits |= U_MOREBITS1;
481
+ if (bitsHigh > 0) {
482
+ bits |= U_MOREBITS4;
483
+ }
484
+ if (bits & 4278190080) {
485
+ bits |= U_MOREBITS3;
431
486
  }
432
487
  if (bits & 4294901760) {
433
488
  bits |= U_MOREBITS2;
434
489
  }
435
- if (bits & 4278190080) {
436
- bits |= U_MOREBITS3;
490
+ if (bits & 4294967040) {
491
+ bits |= U_MOREBITS1;
437
492
  }
438
493
  writer.writeByte(bits & 255);
439
494
  if (bits & U_MOREBITS1) {
@@ -445,12 +500,18 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
445
500
  if (bits & U_MOREBITS3) {
446
501
  writer.writeByte(bits >> 24 & 255);
447
502
  }
503
+ if (bits & U_MOREBITS4) {
504
+ writer.writeByte(bitsHigh & 255);
505
+ }
448
506
  if (bits & U_NUMBER16) {
449
507
  writer.writeShort(to.number);
450
508
  } else {
451
509
  writer.writeByte(to.number);
452
510
  }
453
511
  if (bits & U_MODEL) writer.writeByte(to.modelIndex);
512
+ if (bits & U_MODEL2) writer.writeByte(to.modelIndex2 ?? 0);
513
+ if (bits & U_MODEL3) writer.writeByte(to.modelIndex3 ?? 0);
514
+ if (bits & U_MODEL4) writer.writeByte(to.modelIndex4 ?? 0);
454
515
  if (bits & U_FRAME8) writer.writeByte(to.frame);
455
516
  if (bits & U_FRAME16) writer.writeShort(to.frame);
456
517
  if (bits & U_SKIN8) writer.writeByte(to.skinNum);
@@ -470,6 +531,13 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
470
531
  if (bits & U_SOUND) writer.writeByte(to.sound ?? 0);
471
532
  if (bits & U_EVENT) writer.writeByte(to.event ?? 0);
472
533
  if (bits & U_SOLID) writer.writeShort(to.solid);
534
+ if (bits & U_ALPHA) writer.writeByte(Math.floor((to.alpha ?? 0) * 255));
535
+ if (bits & U_SCALE) writer.writeFloat(to.scale ?? 0);
536
+ if (bits & U_INSTANCE_BITS) writer.writeLong(to.instanceBits ?? 0);
537
+ if (bits & U_LOOP_VOLUME) writer.writeByte(Math.floor((to.loopVolume ?? 0) * 255));
538
+ if (bitsHigh & U_LOOP_ATTENUATION_HIGH) writer.writeByte(Math.floor((to.loopAttenuation ?? 0) * 255));
539
+ if (bitsHigh & U_OWNER_HIGH) writer.writeShort(to.owner ?? 0);
540
+ if (bitsHigh & U_OLD_FRAME_HIGH) writer.writeShort(to.oldFrame ?? 0);
473
541
  }
474
542
 
475
543
  // src/protocol/player.ts
@@ -290,17 +290,28 @@ var U_ORIGIN3 = 1 << 9;
290
290
  var U_ANGLE1 = 1 << 10;
291
291
  var U_MODEL = 1 << 11;
292
292
  var U_RENDERFX8 = 1 << 12;
293
+ var U_ALPHA = 1 << 13;
293
294
  var U_EFFECTS8 = 1 << 14;
294
295
  var U_MOREBITS2 = 1 << 15;
295
296
  var U_SKIN8 = 1 << 16;
296
297
  var U_FRAME16 = 1 << 17;
297
298
  var U_RENDERFX16 = 1 << 18;
298
299
  var U_EFFECTS16 = 1 << 19;
300
+ var U_MODEL2 = 1 << 20;
301
+ var U_MODEL3 = 1 << 21;
302
+ var U_MODEL4 = 1 << 22;
299
303
  var U_MOREBITS3 = 1 << 23;
300
304
  var U_OLDORIGIN = 1 << 24;
301
305
  var U_SKIN16 = 1 << 25;
302
306
  var U_SOUND = 1 << 26;
303
307
  var U_SOLID = 1 << 27;
308
+ var U_SCALE = 1 << 28;
309
+ var U_INSTANCE_BITS = 1 << 29;
310
+ var U_LOOP_VOLUME = 1 << 30;
311
+ var U_MOREBITS4 = 2147483648 | 0;
312
+ var U_LOOP_ATTENUATION_HIGH = 1 << 0;
313
+ var U_OWNER_HIGH = 1 << 1;
314
+ var U_OLD_FRAME_HIGH = 1 << 2;
304
315
  var NULL_STATE = {
305
316
  number: 0,
306
317
  origin: { x: 0, y: 0, z: 0 },
@@ -312,7 +323,17 @@ var NULL_STATE = {
312
323
  renderfx: 0,
313
324
  solid: 0,
314
325
  sound: 0,
315
- event: 0
326
+ event: 0,
327
+ alpha: 0,
328
+ scale: 0,
329
+ instanceBits: 0,
330
+ loopVolume: 0,
331
+ loopAttenuation: 0,
332
+ owner: 0,
333
+ oldFrame: 0,
334
+ modelIndex2: 0,
335
+ modelIndex3: 0,
336
+ modelIndex4: 0
316
337
  };
317
338
  function writeRemoveEntity(number, writer) {
318
339
  let bits = U_REMOVE;
@@ -334,12 +355,22 @@ function writeRemoveEntity(number, writer) {
334
355
  }
335
356
  function writeDeltaEntity(from, to, writer, force, newEntity) {
336
357
  let bits = 0;
358
+ let bitsHigh = 0;
337
359
  if (newEntity) {
338
360
  from = NULL_STATE;
339
361
  }
340
362
  if (to.modelIndex !== from.modelIndex || force) {
341
363
  bits |= U_MODEL;
342
364
  }
365
+ if (to.modelIndex2 !== from.modelIndex2 || force) {
366
+ bits |= U_MODEL2;
367
+ }
368
+ if (to.modelIndex3 !== from.modelIndex3 || force) {
369
+ bits |= U_MODEL3;
370
+ }
371
+ if (to.modelIndex4 !== from.modelIndex4 || force) {
372
+ bits |= U_MODEL4;
373
+ }
343
374
  if (to.origin.x !== from.origin.x || force) {
344
375
  bits |= U_ORIGIN1;
345
376
  }
@@ -383,17 +414,41 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
383
414
  if (to.event !== from.event || force) {
384
415
  bits |= U_EVENT;
385
416
  }
417
+ if ((to.alpha !== from.alpha || force) && to.alpha !== void 0) {
418
+ bits |= U_ALPHA;
419
+ }
420
+ if ((to.scale !== from.scale || force) && to.scale !== void 0) {
421
+ bits |= U_SCALE;
422
+ }
423
+ if ((to.instanceBits !== from.instanceBits || force) && to.instanceBits !== void 0) {
424
+ bits |= U_INSTANCE_BITS;
425
+ }
426
+ if ((to.loopVolume !== from.loopVolume || force) && to.loopVolume !== void 0) {
427
+ bits |= U_LOOP_VOLUME;
428
+ }
429
+ if ((to.loopAttenuation !== from.loopAttenuation || force) && to.loopAttenuation !== void 0) {
430
+ bitsHigh |= U_LOOP_ATTENUATION_HIGH;
431
+ }
432
+ if ((to.owner !== from.owner || force) && to.owner !== void 0) {
433
+ bitsHigh |= U_OWNER_HIGH;
434
+ }
435
+ if ((to.oldFrame !== from.oldFrame || force) && to.oldFrame !== void 0) {
436
+ bitsHigh |= U_OLD_FRAME_HIGH;
437
+ }
386
438
  if (to.number >= 256) {
387
439
  bits |= U_NUMBER16;
388
440
  }
389
- if (bits & 4294967040) {
390
- bits |= U_MOREBITS1;
441
+ if (bitsHigh > 0) {
442
+ bits |= U_MOREBITS4;
443
+ }
444
+ if (bits & 4278190080) {
445
+ bits |= U_MOREBITS3;
391
446
  }
392
447
  if (bits & 4294901760) {
393
448
  bits |= U_MOREBITS2;
394
449
  }
395
- if (bits & 4278190080) {
396
- bits |= U_MOREBITS3;
450
+ if (bits & 4294967040) {
451
+ bits |= U_MOREBITS1;
397
452
  }
398
453
  writer.writeByte(bits & 255);
399
454
  if (bits & U_MOREBITS1) {
@@ -405,12 +460,18 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
405
460
  if (bits & U_MOREBITS3) {
406
461
  writer.writeByte(bits >> 24 & 255);
407
462
  }
463
+ if (bits & U_MOREBITS4) {
464
+ writer.writeByte(bitsHigh & 255);
465
+ }
408
466
  if (bits & U_NUMBER16) {
409
467
  writer.writeShort(to.number);
410
468
  } else {
411
469
  writer.writeByte(to.number);
412
470
  }
413
471
  if (bits & U_MODEL) writer.writeByte(to.modelIndex);
472
+ if (bits & U_MODEL2) writer.writeByte(to.modelIndex2 ?? 0);
473
+ if (bits & U_MODEL3) writer.writeByte(to.modelIndex3 ?? 0);
474
+ if (bits & U_MODEL4) writer.writeByte(to.modelIndex4 ?? 0);
414
475
  if (bits & U_FRAME8) writer.writeByte(to.frame);
415
476
  if (bits & U_FRAME16) writer.writeShort(to.frame);
416
477
  if (bits & U_SKIN8) writer.writeByte(to.skinNum);
@@ -430,6 +491,13 @@ function writeDeltaEntity(from, to, writer, force, newEntity) {
430
491
  if (bits & U_SOUND) writer.writeByte(to.sound ?? 0);
431
492
  if (bits & U_EVENT) writer.writeByte(to.event ?? 0);
432
493
  if (bits & U_SOLID) writer.writeShort(to.solid);
494
+ if (bits & U_ALPHA) writer.writeByte(Math.floor((to.alpha ?? 0) * 255));
495
+ if (bits & U_SCALE) writer.writeFloat(to.scale ?? 0);
496
+ if (bits & U_INSTANCE_BITS) writer.writeLong(to.instanceBits ?? 0);
497
+ if (bits & U_LOOP_VOLUME) writer.writeByte(Math.floor((to.loopVolume ?? 0) * 255));
498
+ if (bitsHigh & U_LOOP_ATTENUATION_HIGH) writer.writeByte(Math.floor((to.loopAttenuation ?? 0) * 255));
499
+ if (bitsHigh & U_OWNER_HIGH) writer.writeShort(to.owner ?? 0);
500
+ if (bitsHigh & U_OLD_FRAME_HIGH) writer.writeShort(to.oldFrame ?? 0);
433
501
  }
434
502
 
435
503
  // src/protocol/player.ts