quake2ts 0.0.277 → 0.0.282

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 (70) hide show
  1. package/package.json +1 -1
  2. package/packages/client/dist/browser/index.global.js +13 -13
  3. package/packages/client/dist/browser/index.global.js.map +1 -1
  4. package/packages/client/dist/cjs/index.cjs +46 -10
  5. package/packages/client/dist/cjs/index.cjs.map +1 -1
  6. package/packages/client/dist/esm/index.js +45 -10
  7. package/packages/client/dist/esm/index.js.map +1 -1
  8. package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
  9. package/packages/client/dist/types/index.d.ts +10 -0
  10. package/packages/client/dist/types/index.d.ts.map +1 -1
  11. package/packages/engine/dist/browser/index.global.js +9 -9
  12. package/packages/engine/dist/browser/index.global.js.map +1 -1
  13. package/packages/engine/dist/cjs/index.cjs +3 -0
  14. package/packages/engine/dist/cjs/index.cjs.map +1 -1
  15. package/packages/engine/dist/esm/index.js +3 -0
  16. package/packages/engine/dist/esm/index.js.map +1 -1
  17. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
  18. package/packages/engine/dist/types/demo/playback.d.ts +1 -0
  19. package/packages/engine/dist/types/demo/playback.d.ts.map +1 -1
  20. package/packages/game/dist/browser/index.global.js +3 -3
  21. package/packages/game/dist/browser/index.global.js.map +1 -1
  22. package/packages/game/dist/cjs/index.cjs +2108 -1193
  23. package/packages/game/dist/cjs/index.cjs.map +1 -1
  24. package/packages/game/dist/esm/index.js +1879 -957
  25. package/packages/game/dist/esm/index.js.map +1 -1
  26. package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
  27. package/packages/game/dist/types/combat/weapons/animation.d.ts +3 -2
  28. package/packages/game/dist/types/combat/weapons/animation.d.ts.map +1 -1
  29. package/packages/game/dist/types/combat/weapons/bfg.d.ts +4 -0
  30. package/packages/game/dist/types/combat/weapons/bfg.d.ts.map +1 -0
  31. package/packages/game/dist/types/combat/weapons/blaster.d.ts +4 -0
  32. package/packages/game/dist/types/combat/weapons/blaster.d.ts.map +1 -0
  33. package/packages/game/dist/types/combat/weapons/chaingun.d.ts.map +1 -1
  34. package/packages/game/dist/types/combat/weapons/firing.d.ts +10 -0
  35. package/packages/game/dist/types/combat/weapons/firing.d.ts.map +1 -1
  36. package/packages/game/dist/types/combat/weapons/frames.d.ts +43 -0
  37. package/packages/game/dist/types/combat/weapons/frames.d.ts.map +1 -1
  38. package/packages/game/dist/types/combat/weapons/grenadelauncher.d.ts +4 -0
  39. package/packages/game/dist/types/combat/weapons/grenadelauncher.d.ts.map +1 -0
  40. package/packages/game/dist/types/combat/weapons/hyperblaster.d.ts +4 -0
  41. package/packages/game/dist/types/combat/weapons/hyperblaster.d.ts.map +1 -0
  42. package/packages/game/dist/types/combat/weapons/machinegun.d.ts +4 -0
  43. package/packages/game/dist/types/combat/weapons/machinegun.d.ts.map +1 -0
  44. package/packages/game/dist/types/combat/weapons/railgun.d.ts +4 -0
  45. package/packages/game/dist/types/combat/weapons/railgun.d.ts.map +1 -0
  46. package/packages/game/dist/types/combat/weapons/rocket.d.ts +4 -0
  47. package/packages/game/dist/types/combat/weapons/rocket.d.ts.map +1 -0
  48. package/packages/game/dist/types/combat/weapons/shotgun.d.ts +4 -0
  49. package/packages/game/dist/types/combat/weapons/shotgun.d.ts.map +1 -0
  50. package/packages/game/dist/types/combat/weapons/supershotgun.d.ts +4 -0
  51. package/packages/game/dist/types/combat/weapons/supershotgun.d.ts.map +1 -0
  52. package/packages/game/dist/types/entities/entity.d.ts +17 -0
  53. package/packages/game/dist/types/entities/entity.d.ts.map +1 -1
  54. package/packages/game/dist/types/entities/system.d.ts +2 -1
  55. package/packages/game/dist/types/entities/system.d.ts.map +1 -1
  56. package/packages/game/dist/types/entities/targets.d.ts.map +1 -1
  57. package/packages/game/dist/types/index.d.ts.map +1 -1
  58. package/packages/game/dist/types/inventory/items.d.ts.map +1 -1
  59. package/packages/shared/dist/browser/index.global.js +1 -1
  60. package/packages/shared/dist/browser/index.global.js.map +1 -1
  61. package/packages/shared/dist/cjs/index.cjs +26 -0
  62. package/packages/shared/dist/cjs/index.cjs.map +1 -1
  63. package/packages/shared/dist/esm/index.js +25 -0
  64. package/packages/shared/dist/esm/index.js.map +1 -1
  65. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
  66. package/packages/shared/dist/types/protocol/index.d.ts +1 -0
  67. package/packages/shared/dist/types/protocol/index.d.ts.map +1 -1
  68. package/packages/shared/dist/types/protocol/renderFx.d.ts +22 -0
  69. package/packages/shared/dist/types/protocol/renderFx.d.ts.map +1 -0
  70. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
23
  ClientConfigStrings: () => ClientConfigStrings,
24
+ ClientMode: () => ClientMode,
24
25
  ClientPrediction: () => import_cgame4.ClientPrediction,
25
26
  InputAction: () => InputAction,
26
27
  InputBindings: () => InputBindings,
@@ -8003,13 +8004,6 @@ var NetworkMessageParser = class _NetworkMessageParser {
8003
8004
  if (bitsHigh & U_OLD_FRAME_HIGH) to.oldFrame = this.stream.readShort();
8004
8005
  }
8005
8006
  };
8006
- var PlaybackState = /* @__PURE__ */ ((PlaybackState2) => {
8007
- PlaybackState2[PlaybackState2["Stopped"] = 0] = "Stopped";
8008
- PlaybackState2[PlaybackState2["Playing"] = 1] = "Playing";
8009
- PlaybackState2[PlaybackState2["Paused"] = 2] = "Paused";
8010
- PlaybackState2[PlaybackState2["Finished"] = 3] = "Finished";
8011
- return PlaybackState2;
8012
- })(PlaybackState || {});
8013
8007
  var DemoPlaybackController = class {
8014
8008
  // ms (10Hz default)
8015
8009
  constructor() {
@@ -8075,6 +8069,9 @@ var DemoPlaybackController = class {
8075
8069
  getState() {
8076
8070
  return this.state;
8077
8071
  }
8072
+ getCurrentTime() {
8073
+ return this.accumulatedTime;
8074
+ }
8078
8075
  };
8079
8076
 
8080
8077
  // ../shared/dist/esm/index.js
@@ -11692,6 +11689,12 @@ var InputCommandBuffer = class {
11692
11689
  var import_cgame4 = require("@quake2ts/cgame");
11693
11690
  var import_cgame5 = require("@quake2ts/cgame");
11694
11691
  var ZERO_VEC32 = { x: 0, y: 0, z: 0 };
11692
+ var ClientMode = /* @__PURE__ */ ((ClientMode2) => {
11693
+ ClientMode2[ClientMode2["Normal"] = 0] = "Normal";
11694
+ ClientMode2[ClientMode2["DemoPlayback"] = 1] = "DemoPlayback";
11695
+ ClientMode2[ClientMode2["Multiplayer"] = 2] = "Multiplayer";
11696
+ return ClientMode2;
11697
+ })(ClientMode || {});
11695
11698
  function createClient(imports) {
11696
11699
  const pointContents = (point) => {
11697
11700
  const zero3 = { x: 0, y: 0, z: 0 };
@@ -11703,6 +11706,9 @@ function createClient(imports) {
11703
11706
  const demoPlayback = new DemoPlaybackController();
11704
11707
  const demoHandler = new ClientNetworkHandler(imports);
11705
11708
  demoHandler.setView(view);
11709
+ let isDemoPlaying = false;
11710
+ let currentDemoName = null;
11711
+ let clientMode = 0 /* Normal */;
11706
11712
  const menuSystem = new MenuSystem();
11707
11713
  const loadingScreen = new LoadingScreen();
11708
11714
  const errorDialog = new ErrorDialog();
@@ -11712,6 +11718,7 @@ function createClient(imports) {
11712
11718
  let optionsFactory;
11713
11719
  const configStrings = new ClientConfigStrings();
11714
11720
  let latestFrame;
11721
+ let lastRenderTime = 0;
11715
11722
  let clientInAutoDemo = false;
11716
11723
  const stateProvider = {
11717
11724
  get tickRate() {
@@ -11962,11 +11969,15 @@ function createClient(imports) {
11962
11969
  return { menuSystem, factory };
11963
11970
  },
11964
11971
  render(sample) {
11965
- const playbackState = demoPlayback.getState();
11966
11972
  let renderEntities = [];
11967
- if (playbackState === PlaybackState.Playing) {
11968
- lastRendered = demoHandler.getPredictionState();
11973
+ if (isDemoPlaying) {
11974
+ const now = sample.nowMs;
11975
+ const dt = lastRenderTime > 0 ? Math.max(0, now - lastRenderTime) : 0;
11976
+ lastRenderTime = now;
11977
+ demoPlayback.update(dt);
11978
+ lastRendered = demoHandler.getPredictionState(demoPlayback.getCurrentTime());
11969
11979
  } else {
11980
+ lastRenderTime = sample.nowMs;
11970
11981
  if (sample.latest?.state) {
11971
11982
  prediction.setAuthoritative(sample.latest);
11972
11983
  latestFrame = sample.latest;
@@ -12144,6 +12155,30 @@ function createClient(imports) {
12144
12155
  return camera;
12145
12156
  },
12146
12157
  demoPlayback,
12158
+ get isDemoPlaying() {
12159
+ return isDemoPlaying;
12160
+ },
12161
+ get currentDemoName() {
12162
+ return currentDemoName;
12163
+ },
12164
+ get mode() {
12165
+ return clientMode;
12166
+ },
12167
+ startDemoPlayback(buffer, filename) {
12168
+ demoPlayback.loadDemo(buffer);
12169
+ demoPlayback.setHandler(demoHandler);
12170
+ isDemoPlaying = true;
12171
+ currentDemoName = filename;
12172
+ clientMode = 1 /* DemoPlayback */;
12173
+ lastRenderTime = 0;
12174
+ configStrings.clear();
12175
+ },
12176
+ stopDemoPlayback() {
12177
+ demoPlayback.stop();
12178
+ isDemoPlaying = false;
12179
+ currentDemoName = null;
12180
+ clientMode = 0 /* Normal */;
12181
+ },
12147
12182
  ParseCenterPrint(msg) {
12148
12183
  cg.ParseCenterPrint(msg, 0, false);
12149
12184
  },
@@ -12166,6 +12201,7 @@ function createClient(imports) {
12166
12201
  // Annotate the CommonJS export names for ESM import in node:
12167
12202
  0 && (module.exports = {
12168
12203
  ClientConfigStrings,
12204
+ ClientMode,
12169
12205
  ClientPrediction,
12170
12206
  InputAction,
12171
12207
  InputBindings,