quake2ts 0.0.174 → 0.0.175

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.
@@ -12750,6 +12750,45 @@ function createGame({ trace, pointcontents, multicast, unicast }, engine, option
12750
12750
  entities.beginFrame(startTimeMs / 1e3);
12751
12751
  entities.runFrame();
12752
12752
  };
12753
+ const runPlayerMove = (player, command) => {
12754
+ const pcmd = {
12755
+ forwardmove: command.forwardmove,
12756
+ sidemove: command.sidemove,
12757
+ upmove: command.upmove,
12758
+ buttons: command.buttons,
12759
+ msec: command.msec,
12760
+ angles: command.angles
12761
+ };
12762
+ const playerState = {
12763
+ origin: player.origin,
12764
+ velocity: player.velocity,
12765
+ onGround: false,
12766
+ // This will be calculated by pmove
12767
+ waterLevel: player.waterlevel,
12768
+ // Pass waterlevel
12769
+ mins: player.mins,
12770
+ maxs: player.maxs,
12771
+ damageAlpha: 0,
12772
+ damageIndicators: [],
12773
+ viewAngles: player.angles,
12774
+ blend: [0, 0, 0, 0]
12775
+ };
12776
+ const traceAdapter = (start, end) => {
12777
+ const result = trace(start, player.mins, player.maxs, end, player, 268435457);
12778
+ return {
12779
+ fraction: result.fraction,
12780
+ endpos: result.endpos,
12781
+ allsolid: result.allsolid,
12782
+ startsolid: result.startsolid,
12783
+ planeNormal: result.plane?.normal
12784
+ };
12785
+ };
12786
+ const pointContentsAdapter = (point) => pointcontents(point);
12787
+ const newState = applyPmove(playerState, pcmd, traceAdapter, pointContentsAdapter);
12788
+ player.origin = newState.origin;
12789
+ player.velocity = newState.velocity;
12790
+ player.angles = newState.viewAngles;
12791
+ };
12753
12792
  return {
12754
12793
  init(startTimeMs) {
12755
12794
  resetState(startTimeMs);
@@ -12789,45 +12828,14 @@ function createGame({ trace, pointcontents, multicast, unicast }, engine, option
12789
12828
  origin = { ...player.origin };
12790
12829
  return player;
12791
12830
  },
12831
+ clientThink(ent, cmd) {
12832
+ runPlayerMove(ent, cmd);
12833
+ },
12792
12834
  frame(step, command) {
12793
12835
  const context = frameLoop.advance(step);
12794
12836
  const player = entities.find((e) => e.classname === "player");
12795
12837
  if (command && player) {
12796
- const pcmd = {
12797
- forwardmove: command.forwardmove,
12798
- sidemove: command.sidemove,
12799
- upmove: command.upmove,
12800
- buttons: command.buttons,
12801
- msec: command.msec,
12802
- angles: command.angles
12803
- };
12804
- const playerState = {
12805
- origin: player.origin,
12806
- velocity: player.velocity,
12807
- onGround: false,
12808
- waterLevel: 0,
12809
- mins: player.mins,
12810
- maxs: player.maxs,
12811
- damageAlpha: 0,
12812
- damageIndicators: [],
12813
- viewAngles: player.angles,
12814
- blend: [0, 0, 0, 0]
12815
- };
12816
- const traceAdapter = (start, end) => {
12817
- const result = trace(start, player.mins, player.maxs, end, player, 268435457);
12818
- return {
12819
- fraction: result.fraction,
12820
- endpos: result.endpos,
12821
- allsolid: result.allsolid,
12822
- startsolid: result.startsolid,
12823
- planeNormal: result.plane?.normal
12824
- };
12825
- };
12826
- const pointContentsAdapter = (point) => pointcontents(point);
12827
- const newState = applyPmove(playerState, pcmd, traceAdapter, pointContentsAdapter);
12828
- player.origin = newState.origin;
12829
- player.velocity = newState.velocity;
12830
- player.angles = newState.viewAngles;
12838
+ runPlayerMove(player, command);
12831
12839
  }
12832
12840
  return snapshot(context.frame);
12833
12841
  },