quake2ts 0.0.7

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 (149) hide show
  1. package/apps/viewer/dist/browser/index.global.js +2 -0
  2. package/apps/viewer/dist/browser/index.global.js.map +1 -0
  3. package/apps/viewer/dist/cjs/index.cjs +1087 -0
  4. package/apps/viewer/dist/cjs/index.cjs.map +1 -0
  5. package/apps/viewer/dist/esm/index.js +1060 -0
  6. package/apps/viewer/dist/esm/index.js.map +1 -0
  7. package/apps/viewer/dist/tsconfig.tsbuildinfo +1 -0
  8. package/apps/viewer/dist/types/index.d.ts +7 -0
  9. package/apps/viewer/dist/types/index.d.ts.map +1 -0
  10. package/package.json +107 -0
  11. package/packages/client/dist/browser/index.global.js +2 -0
  12. package/packages/client/dist/browser/index.global.js.map +1 -0
  13. package/packages/client/dist/cjs/index.cjs +57 -0
  14. package/packages/client/dist/cjs/index.cjs.map +1 -0
  15. package/packages/client/dist/esm/index.js +32 -0
  16. package/packages/client/dist/esm/index.js.map +1 -0
  17. package/packages/client/dist/tsconfig.tsbuildinfo +1 -0
  18. package/packages/client/dist/types/index.d.ts +14 -0
  19. package/packages/client/dist/types/index.d.ts.map +1 -0
  20. package/packages/engine/dist/browser/index.global.js +2 -0
  21. package/packages/engine/dist/browser/index.global.js.map +1 -0
  22. package/packages/engine/dist/cjs/index.cjs +1823 -0
  23. package/packages/engine/dist/cjs/index.cjs.map +1 -0
  24. package/packages/engine/dist/esm/index.js +1764 -0
  25. package/packages/engine/dist/esm/index.js.map +1 -0
  26. package/packages/engine/dist/tsconfig.tsbuildinfo +1 -0
  27. package/packages/engine/dist/types/assets/browserIngestion.d.ts +7 -0
  28. package/packages/engine/dist/types/assets/browserIngestion.d.ts.map +1 -0
  29. package/packages/engine/dist/types/assets/bsp.d.ts +157 -0
  30. package/packages/engine/dist/types/assets/bsp.d.ts.map +1 -0
  31. package/packages/engine/dist/types/assets/cache.d.ts +17 -0
  32. package/packages/engine/dist/types/assets/cache.d.ts.map +1 -0
  33. package/packages/engine/dist/types/assets/ingestion.d.ts +31 -0
  34. package/packages/engine/dist/types/assets/ingestion.d.ts.map +1 -0
  35. package/packages/engine/dist/types/assets/md2.d.ts +73 -0
  36. package/packages/engine/dist/types/assets/md2.d.ts.map +1 -0
  37. package/packages/engine/dist/types/assets/pak.d.ts +28 -0
  38. package/packages/engine/dist/types/assets/pak.d.ts.map +1 -0
  39. package/packages/engine/dist/types/assets/vfs.d.ts +23 -0
  40. package/packages/engine/dist/types/assets/vfs.d.ts.map +1 -0
  41. package/packages/engine/dist/types/configstrings.d.ts +34 -0
  42. package/packages/engine/dist/types/configstrings.d.ts.map +1 -0
  43. package/packages/engine/dist/types/cvars.d.ts +43 -0
  44. package/packages/engine/dist/types/cvars.d.ts.map +1 -0
  45. package/packages/engine/dist/types/host.d.ts +42 -0
  46. package/packages/engine/dist/types/host.d.ts.map +1 -0
  47. package/packages/engine/dist/types/index.d.ts +37 -0
  48. package/packages/engine/dist/types/index.d.ts.map +1 -0
  49. package/packages/engine/dist/types/loop.d.ts +40 -0
  50. package/packages/engine/dist/types/loop.d.ts.map +1 -0
  51. package/packages/engine/dist/types/render/bsp.d.ts +49 -0
  52. package/packages/engine/dist/types/render/bsp.d.ts.map +1 -0
  53. package/packages/engine/dist/types/render/context.d.ts +36 -0
  54. package/packages/engine/dist/types/render/context.d.ts.map +1 -0
  55. package/packages/engine/dist/types/render/resources.d.ts +56 -0
  56. package/packages/engine/dist/types/render/resources.d.ts.map +1 -0
  57. package/packages/engine/dist/types/render/shaderProgram.d.ts +18 -0
  58. package/packages/engine/dist/types/render/shaderProgram.d.ts.map +1 -0
  59. package/packages/engine/dist/types/runtime.d.ts +15 -0
  60. package/packages/engine/dist/types/runtime.d.ts.map +1 -0
  61. package/packages/game/dist/browser/index.global.js +2 -0
  62. package/packages/game/dist/browser/index.global.js.map +1 -0
  63. package/packages/game/dist/cjs/index.cjs +758 -0
  64. package/packages/game/dist/cjs/index.cjs.map +1 -0
  65. package/packages/game/dist/esm/index.js +725 -0
  66. package/packages/game/dist/esm/index.js.map +1 -0
  67. package/packages/game/dist/tsconfig.tsbuildinfo +1 -0
  68. package/packages/game/dist/types/entities/entity.d.ts +92 -0
  69. package/packages/game/dist/types/entities/entity.d.ts.map +1 -0
  70. package/packages/game/dist/types/entities/index.d.ts +3 -0
  71. package/packages/game/dist/types/entities/index.d.ts.map +1 -0
  72. package/packages/game/dist/types/entities/pool.d.ts +18 -0
  73. package/packages/game/dist/types/entities/pool.d.ts.map +1 -0
  74. package/packages/game/dist/types/entities/system.d.ts +18 -0
  75. package/packages/game/dist/types/entities/system.d.ts.map +1 -0
  76. package/packages/game/dist/types/entities/thinkScheduler.d.ts +8 -0
  77. package/packages/game/dist/types/entities/thinkScheduler.d.ts.map +1 -0
  78. package/packages/game/dist/types/index.d.ts +26 -0
  79. package/packages/game/dist/types/index.d.ts.map +1 -0
  80. package/packages/game/dist/types/level.d.ts +14 -0
  81. package/packages/game/dist/types/level.d.ts.map +1 -0
  82. package/packages/game/dist/types/loop.d.ts +29 -0
  83. package/packages/game/dist/types/loop.d.ts.map +1 -0
  84. package/packages/shared/dist/browser/index.global.js +2 -0
  85. package/packages/shared/dist/browser/index.global.js.map +1 -0
  86. package/packages/shared/dist/cjs/index.cjs +2793 -0
  87. package/packages/shared/dist/cjs/index.cjs.map +1 -0
  88. package/packages/shared/dist/esm/index.js +2594 -0
  89. package/packages/shared/dist/esm/index.js.map +1 -0
  90. package/packages/shared/dist/tsconfig.tsbuildinfo +1 -0
  91. package/packages/shared/dist/types/bsp/collision.d.ts +112 -0
  92. package/packages/shared/dist/types/bsp/collision.d.ts.map +1 -0
  93. package/packages/shared/dist/types/bsp/contents.d.ts +71 -0
  94. package/packages/shared/dist/types/bsp/contents.d.ts.map +1 -0
  95. package/packages/shared/dist/types/index.d.ts +25 -0
  96. package/packages/shared/dist/types/index.d.ts.map +1 -0
  97. package/packages/shared/dist/types/math/angles.d.ts +17 -0
  98. package/packages/shared/dist/types/math/angles.d.ts.map +1 -0
  99. package/packages/shared/dist/types/math/color.d.ts +12 -0
  100. package/packages/shared/dist/types/math/color.d.ts.map +1 -0
  101. package/packages/shared/dist/types/math/random.d.ts +48 -0
  102. package/packages/shared/dist/types/math/random.d.ts.map +1 -0
  103. package/packages/shared/dist/types/math/vec3.d.ts +76 -0
  104. package/packages/shared/dist/types/math/vec3.d.ts.map +1 -0
  105. package/packages/shared/dist/types/pmove/categorize.d.ts +36 -0
  106. package/packages/shared/dist/types/pmove/categorize.d.ts.map +1 -0
  107. package/packages/shared/dist/types/pmove/constants.d.ts +75 -0
  108. package/packages/shared/dist/types/pmove/constants.d.ts.map +1 -0
  109. package/packages/shared/dist/types/pmove/currents.d.ts +58 -0
  110. package/packages/shared/dist/types/pmove/currents.d.ts.map +1 -0
  111. package/packages/shared/dist/types/pmove/dimensions.d.ts +14 -0
  112. package/packages/shared/dist/types/pmove/dimensions.d.ts.map +1 -0
  113. package/packages/shared/dist/types/pmove/duck.d.ts +39 -0
  114. package/packages/shared/dist/types/pmove/duck.d.ts.map +1 -0
  115. package/packages/shared/dist/types/pmove/fly.d.ts +34 -0
  116. package/packages/shared/dist/types/pmove/fly.d.ts.map +1 -0
  117. package/packages/shared/dist/types/pmove/jump.d.ts +26 -0
  118. package/packages/shared/dist/types/pmove/jump.d.ts.map +1 -0
  119. package/packages/shared/dist/types/pmove/move.d.ts +58 -0
  120. package/packages/shared/dist/types/pmove/move.d.ts.map +1 -0
  121. package/packages/shared/dist/types/pmove/pmove.d.ts +36 -0
  122. package/packages/shared/dist/types/pmove/pmove.d.ts.map +1 -0
  123. package/packages/shared/dist/types/pmove/slide.d.ts +63 -0
  124. package/packages/shared/dist/types/pmove/slide.d.ts.map +1 -0
  125. package/packages/shared/dist/types/pmove/snap.d.ts +40 -0
  126. package/packages/shared/dist/types/pmove/snap.d.ts.map +1 -0
  127. package/packages/shared/dist/types/pmove/special.d.ts +39 -0
  128. package/packages/shared/dist/types/pmove/special.d.ts.map +1 -0
  129. package/packages/shared/dist/types/pmove/stuck.d.ts +21 -0
  130. package/packages/shared/dist/types/pmove/stuck.d.ts.map +1 -0
  131. package/packages/shared/dist/types/pmove/types.d.ts +48 -0
  132. package/packages/shared/dist/types/pmove/types.d.ts.map +1 -0
  133. package/packages/shared/dist/types/pmove/view.d.ts +19 -0
  134. package/packages/shared/dist/types/pmove/view.d.ts.map +1 -0
  135. package/packages/shared/dist/types/pmove/water.d.ts +21 -0
  136. package/packages/shared/dist/types/pmove/water.d.ts.map +1 -0
  137. package/packages/shared/dist/types/protocol/configstrings.d.ts +51 -0
  138. package/packages/shared/dist/types/protocol/configstrings.d.ts.map +1 -0
  139. package/packages/shared/dist/types/protocol/cvar.d.ts +15 -0
  140. package/packages/shared/dist/types/protocol/cvar.d.ts.map +1 -0
  141. package/packages/tools/dist/browser/index.global.js +2 -0
  142. package/packages/tools/dist/browser/index.global.js.map +1 -0
  143. package/packages/tools/dist/cjs/index.cjs +33 -0
  144. package/packages/tools/dist/cjs/index.cjs.map +1 -0
  145. package/packages/tools/dist/esm/index.js +8 -0
  146. package/packages/tools/dist/esm/index.js.map +1 -0
  147. package/packages/tools/dist/tsconfig.tsbuildinfo +1 -0
  148. package/packages/tools/dist/types/index.d.ts +7 -0
  149. package/packages/tools/dist/types/index.d.ts.map +1 -0
@@ -0,0 +1,26 @@
1
+ import type { GameSimulation } from '@quake2ts/engine';
2
+ import type { Vec3 } from '@quake2ts/shared';
3
+ import { EntitySystem } from './entities/index.js';
4
+ import { type LevelFrameState } from './level.js';
5
+ export * from './entities/index.js';
6
+ export interface GameCreateOptions {
7
+ gravity: Vec3;
8
+ }
9
+ export interface GameStateSnapshot {
10
+ readonly gravity: Vec3;
11
+ readonly origin: Vec3;
12
+ readonly velocity: Vec3;
13
+ readonly level: LevelFrameState;
14
+ readonly entities: {
15
+ readonly activeCount: number;
16
+ readonly worldClassname: string;
17
+ };
18
+ }
19
+ export interface GameExports extends GameSimulation<GameStateSnapshot> {
20
+ spawnWorld(): void;
21
+ readonly entities: EntitySystem;
22
+ }
23
+ export declare function createGame(engine: {
24
+ trace(start: Vec3, end: Vec3): unknown;
25
+ }, options: GameCreateOptions): GameExports;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,cAAc,qBAAqB,CAAC;AAIpC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,iBAAiB,CAAC;IACpE,UAAU,IAAI,IAAI,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE;IAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAA;CAAE,EAClD,OAAO,EAAE,iBAAiB,GACzB,WAAW,CAsEb"}
@@ -0,0 +1,14 @@
1
+ import type { GameFrameContext } from './loop.js';
2
+ export interface LevelFrameState {
3
+ readonly frameNumber: number;
4
+ readonly timeSeconds: number;
5
+ readonly previousTimeSeconds: number;
6
+ readonly deltaSeconds: number;
7
+ }
8
+ export declare class LevelClock {
9
+ private state;
10
+ start(startTimeMs: number): void;
11
+ tick(context: GameFrameContext): LevelFrameState;
12
+ get current(): LevelFrameState;
13
+ }
14
+ //# sourceMappingURL=level.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level.d.ts","sourceRoot":"","sources":["../../src/level.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AASD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA+B;IAE5C,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAUhC,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe;IAWhD,IAAI,OAAO,IAAI,eAAe,CAE7B;CACF"}
@@ -0,0 +1,29 @@
1
+ import type { FixedStepContext } from '@quake2ts/engine';
2
+ export interface GameFrameContext extends FixedStepContext {
3
+ readonly timeMs: number;
4
+ readonly previousTimeMs: number;
5
+ readonly deltaSeconds: number;
6
+ }
7
+ export type GameFrameStageName = 'prep' | 'simulate' | 'finish';
8
+ export type GameFrameStage = (context: GameFrameContext) => void;
9
+ export interface GameFrameStages {
10
+ prep?(context: GameFrameContext): void;
11
+ simulate?(context: GameFrameContext): void;
12
+ finish?(context: GameFrameContext): void;
13
+ }
14
+ export declare class GameFrameLoop {
15
+ private timeMs;
16
+ private frame;
17
+ private readonly stageHandlers;
18
+ private readonly stageCounts;
19
+ private readonly stageCompactionNeeded;
20
+ constructor(initialStages?: GameFrameStages);
21
+ addStage(stage: GameFrameStageName, handler: GameFrameStage): () => void;
22
+ reset(startTimeMs: number): void;
23
+ advance(step: FixedStepContext): GameFrameContext;
24
+ private runStage;
25
+ private compactStageHandlers;
26
+ get time(): number;
27
+ get frameNumber(): number;
28
+ }
29
+ //# sourceMappingURL=loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC1C;AAYD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAI5B;IACF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IACF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAIpC;gBAEU,aAAa,CAAC,EAAE,eAAe;IAW3C,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,IAAI;IAexE,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKhC,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB;IAwBjD,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,oBAAoB;IAc5B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
@@ -0,0 +1,2 @@
1
+ "use strict";var Quake2Shared=(()=>{var Pe=Object.defineProperty;var pt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var xt=(t,e)=>{for(var o in e)Pe(t,o,{get:e[o],enumerable:!0})},Tt=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of yt(e))!ft.call(t,n)&&n!==o&&Pe(t,n,{get:()=>e[n],enumerable:!(r=pt(e,n))||r.enumerable});return t};var St=t=>Tt(Pe({},"__esModule",{value:!0}),t);var Fr={};xt(Fr,{CONTENTS_AREAPORTAL:()=>jr,CONTENTS_AUX:()=>Ir,CONTENTS_CURRENT_0:()=>Ut,CONTENTS_CURRENT_180:()=>Jt,CONTENTS_CURRENT_270:()=>Ht,CONTENTS_CURRENT_90:()=>Gt,CONTENTS_CURRENT_DOWN:()=>Kt,CONTENTS_CURRENT_UP:()=>jt,CONTENTS_DEADMONSTER:()=>qr,CONTENTS_DETAIL:()=>Qr,CONTENTS_LADDER:()=>Ue,CONTENTS_LAVA:()=>Br,CONTENTS_MIST:()=>Jr,CONTENTS_MONSTER:()=>Zr,CONTENTS_MONSTERCLIP:()=>Xr,CONTENTS_NONE:()=>ye,CONTENTS_NO_WATERJUMP:()=>Bt,CONTENTS_ORIGIN:()=>Yr,CONTENTS_PLAYER:()=>en,CONTENTS_PLAYERCLIP:()=>Kr,CONTENTS_PROJECTILE:()=>tn,CONTENTS_PROJECTILECLIP:()=>Hr,CONTENTS_SLIME:()=>Ur,CONTENTS_SOLID:()=>Wr,CONTENTS_TRANSLUCENT:()=>$r,CONTENTS_WATER:()=>Gr,CONTENTS_WINDOW:()=>kr,CS_MAX_STRING_LENGTH:()=>kn,CS_MAX_STRING_LENGTH_OLD:()=>In,ConfigStringIndex:()=>$,CvarFlags:()=>He,DIST_EPSILON:()=>zn,LAST_VISIBLE_CONTENTS:()=>on,MASK_ALL:()=>Sn,MASK_BLOCK_SIGHT:()=>bn,MASK_CURRENT:()=>Xt,MASK_DEADSOLID:()=>Nn,MASK_LADDER_NAV_SOLID:()=>hn,MASK_MONSTERSOLID:()=>Cn,MASK_NAV_SOLID:()=>_n,MASK_OPAQUE:()=>En,MASK_PLAYERSOLID:()=>Vn,MASK_PROJECTILE:()=>An,MASK_SHOT:()=>Pn,MASK_SOLID:()=>ve,MASK_WALK_NAV_SOLID:()=>vn,MASK_WATER:()=>fe,MAX_CLIENTS:()=>lo,MAX_CONFIGSTRINGS:()=>To,MAX_EDICTS:()=>Wn,MAX_GENERAL:()=>fo,MAX_IMAGES:()=>po,MAX_ITEMS:()=>yo,MAX_LIGHTSTYLES:()=>io,MAX_MODELS:()=>mo,MAX_OSPATH:()=>wn,MAX_QPATH:()=>Dn,MAX_SHADOW_LIGHTS:()=>xo,MAX_SOUNDS:()=>uo,MAX_STRING_CHARS:()=>gn,MAX_STRING_TOKENS:()=>Mn,MAX_TOKEN_CHARS:()=>Ln,MAX_WHEEL_ITEMS:()=>Oe,MersenneTwister19937:()=>de,PITCH:()=>me,PlaneSide:()=>Ge,PlayerButton:()=>Y,PmFlag:()=>X,PmType:()=>te,ROLL:()=>_e,RandomGenerator:()=>pe,SLIDEMOVE_BLOCKED_FLOOR:()=>Ke,SLIDEMOVE_BLOCKED_WALL:()=>Xe,STOP_EPSILON:()=>H,SURF_ALPHATEST:()=>pn,SURF_FLOWING:()=>un,SURF_LIGHT:()=>nn,SURF_N64_SCROLL_FLIP:()=>Tn,SURF_N64_SCROLL_X:()=>fn,SURF_N64_SCROLL_Y:()=>xn,SURF_N64_UV:()=>yn,SURF_NODRAW:()=>dn,SURF_NONE:()=>rn,SURF_SKY:()=>sn,SURF_SLICK:()=>an,SURF_TRANS33:()=>ln,SURF_TRANS66:()=>mn,SURF_WARP:()=>cn,WaterLevel:()=>ee,YAW:()=>ue,ZERO_VEC3:()=>O,addBlendColor:()=>kt,addContents:()=>qt,addPmFlag:()=>D,addPointToBounds:()=>_t,addVec3:()=>_,angleMod:()=>Dt,angleVectors:()=>he,applyPmoveAccelerate:()=>G,applyPmoveAddCurrents:()=>Se,applyPmoveAirAccelerate:()=>Re,applyPmoveAirMove:()=>ur,applyPmoveFlyMove:()=>ko,applyPmoveFriction:()=>No,applyPmoveWaterMove:()=>dr,boxOnPlaneSide:()=>ro,boxesIntersect:()=>ht,buildAirGroundWish:()=>Eo,buildCollisionModel:()=>to,buildWaterWish:()=>Po,categorizePosition:()=>ir,checkDuckState:()=>Yo,checkJump:()=>Jo,checkSpecialMovement:()=>_r,clampViewAngles:()=>Rr,clipBoxToBrush:()=>so,clipVelocityAgainstPlanes:()=>vt,clipVelocityVec3:()=>K,closestPointToBox:()=>Et,combineSurfaceFlags:()=>eo,computePlaneSignBits:()=>Je,computePlayerDimensions:()=>Ne,concatRotationMatrices:()=>be,configStringSize:()=>So,createDefaultTrace:()=>co,createEmptyBounds3:()=>bt,createRandomGenerator:()=>It,crossVec3:()=>j,currentVectorFromContents:()=>De,degToRad:()=>le,distanceBetweenBoxesSquared:()=>Pt,dotVec3:()=>R,fixStuckObjectGeneric:()=>Me,getWaterLevel:()=>se,goodPosition:()=>ke,groundCurrentVelocity:()=>nt,hasAllContents:()=>Yt,hasAnyContents:()=>Zt,hasPmFlag:()=>F,hasSurfaceFlags:()=>$t,initialSnapPosition:()=>Ar,isAtLeastWaistDeep:()=>ze,isUnderwater:()=>Vo,lengthSquaredVec3:()=>Q,lengthVec3:()=>L,lerpAngle:()=>Lt,multiplyVec3:()=>Nt,negateVec3:()=>Ct,normalizeVec3:()=>z,perpendicularVec3:()=>Be,planeDistanceToPoint:()=>Ae,pmoveCmdScale:()=>Co,pointInsideBrush:()=>no,pointOnPlaneSide:()=>oo,projectPointOnPlane:()=>Ie,projectSourceVec3:()=>Ot,projectSourceVec3WithUp:()=>zt,radToDeg:()=>ie,removeContents:()=>Qt,removePmFlag:()=>w,resolveSlideMove:()=>Ye,rotatePointAroundVector:()=>Ft,scaleVec3:()=>h,slerpVec3:()=>Rt,slideClipVelocityVec3:()=>At,slideMove:()=>Fe,snapPosition:()=>vr,stepSlideMove:()=>Z,subtractVec3:()=>ce,testBoxInBrush:()=>ao,vectorToAngles:()=>Wt,vectorToYaw:()=>wt,waterCurrentVelocity:()=>rt});var O={x:0,y:0,z:0},H=.1,Vt=Math.PI/180;function _(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function ce(t,e){return{x:t.x-e.x,y:t.y-e.y,z:t.z-e.z}}function Nt(t,e){return{x:t.x*e.x,y:t.y*e.y,z:t.z*e.z}}function h(t,e){return{x:t.x*e,y:t.y*e,z:t.z*e}}function Ct(t){return h(t,-1)}function R(t,e){return t.x*e.x+t.y*e.y+t.z*e.z}function j(t,e){return{x:t.y*e.z-t.z*e.y,y:t.z*e.x-t.x*e.z,z:t.x*e.y-t.y*e.x}}function Q(t){return R(t,t)}function L(t){return Math.sqrt(Q(t))}function z(t){let e=L(t);return e===0?t:h(t,1/e)}function Ie(t,e){let o=1/R(e,e),r=R(e,t)*o;return ce(t,h(e,o*r))}function Be(t){let e=0,o=Math.abs(t.x);return Math.abs(t.y)<o&&(e=1,o=Math.abs(t.y)),Math.abs(t.z)<o&&(e=2),z(Ie(e===0?{x:1,y:0,z:0}:e===1?{x:0,y:1,z:0}:{x:0,y:0,z:1},t))}function Et(t,e,o){return{x:t.x<e.x?e.x:t.x>o.x?o.x:t.x,y:t.y<e.y?e.y:t.y>o.y?o.y:t.y,z:t.z<e.z?e.z:t.z>o.z?o.z:t.z}}function Pt(t,e,o,r){let n=0;if(e.x<o.x){let a=e.x-o.x;n+=a*a}else if(t.x>r.x){let a=t.x-r.x;n+=a*a}if(e.y<o.y){let a=e.y-o.y;n+=a*a}else if(t.y>r.y){let a=t.y-r.y;n+=a*a}if(e.z<o.z){let a=e.z-o.z;n+=a*a}else if(t.z>r.z){let a=t.z-r.z;n+=a*a}return n}function bt(){return{mins:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,z:Number.POSITIVE_INFINITY},maxs:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY,z:Number.NEGATIVE_INFINITY}}}function _t(t,e){return{mins:{x:Math.min(e.mins.x,t.x),y:Math.min(e.mins.y,t.y),z:Math.min(e.mins.z,t.z)},maxs:{x:Math.max(e.maxs.x,t.x),y:Math.max(e.maxs.y,t.y),z:Math.max(e.maxs.z,t.z)}}}function ht(t,e){return t.mins.x<=e.maxs.x&&t.maxs.x>=e.mins.x&&t.mins.y<=e.maxs.y&&t.maxs.y>=e.mins.y&&t.mins.z<=e.maxs.z&&t.maxs.z>=e.mins.z}function K(t,e,o){let r=R(t,e)*o,n=t.x-e.x*r,a=t.y-e.y*r,s=t.z-e.z*r;return n>-H&&n<H&&(n=0),a>-H&&a<H&&(a=0),s>-H&&s<H&&(s=0),{x:n,y:a,z:s}}function vt(t,e,o,r){if(e.length===0)return t;let n=t;for(let a=0;a<e.length;a++){n=K(n,e[a],o);let s=0;for(;s<e.length&&!(s!==a&&R(n,e[s])<0);s++);if(s===e.length)return r&&R(n,r)<=0?O:n}if(e.length===2){let a=j(e[0],e[1]),s=R(a,t),c=h(a,s);return r&&R(c,r)<=0?O:c}return r&&R(n,r)<=0,O}function At(t,e,o){return K(t,e,o)}function Ot(t,e,o,r){return{x:t.x+o.x*e.x+r.x*e.y,y:t.y+o.y*e.x+r.y*e.y,z:t.z+o.z*e.x+r.z*e.y+e.z}}function zt(t,e,o,r,n){return{x:t.x+o.x*e.x+r.x*e.y+n.x*e.z,y:t.y+o.y*e.x+r.y*e.y+n.y*e.z,z:t.z+o.z*e.x+r.z*e.y+n.z*e.z}}function Rt(t,e,o){let r=R(t,e),n,a;if(Math.abs(r)>.9995)n=1-o,a=o;else{let s=Math.acos(r),c=Math.sin(s),m=Math.sin((1-o)*s),i=Math.sin(o*s);n=m/c,a=i/c}return{x:t.x*n+e.x*a,y:t.y*n+e.y*a,z:t.z*n+e.z*a}}function be(t,e){let o=n=>[t[n][0]*e[0][0]+t[n][1]*e[1][0]+t[n][2]*e[2][0],t[n][0]*e[0][1]+t[n][1]*e[1][1]+t[n][2]*e[2][1],t[n][0]*e[0][2]+t[n][1]*e[1][2]+t[n][2]*e[2][2]];return[o(0),o(1),o(2)]}function Ft(t,e,o){if(L(t)===0)return e;let n=z(t),a=Be(n),s=j(a,n),c=[[a.x,s.x,n.x],[a.y,s.y,n.y],[a.z,s.z,n.z]],m=[[c[0][0],c[1][0],c[2][0]],[c[0][1],c[1][1],c[2][1]],[c[0][2],c[1][2],c[2][2]]],i=o*Vt,u=Math.cos(i),l=Math.sin(i),y=[[u,l,0],[-l,u,0],[0,0,1]],p=be(be(c,y),m);return{x:p[0][0]*e.x+p[0][1]*e.y+p[0][2]*e.z,y:p[1][0]*e.x+p[1][1]*e.y+p[1][2]*e.z,z:p[2][0]*e.x+p[2][1]*e.y+p[2][2]*e.z}}var me=0,ue=1,_e=2,gt=Math.PI/180,Mt=180/Math.PI;function ne(t,e){switch(e){case me:return t.x;case ue:return t.y;case _e:default:return t.z}}function le(t){return t*gt}function ie(t){return t*Mt}function Lt(t,e,o){let r=e;return r-t>180?r-=360:r-t<-180&&(r+=360),t+o*(r-t)}function Dt(t){let e=t%360;return e<0?360+e:e}function he(t){let e=le(ne(t,ue)),o=le(ne(t,me)),r=le(ne(t,_e)),n=Math.sin(e),a=Math.cos(e),s=Math.sin(o),c=Math.cos(o),m=Math.sin(r),i=Math.cos(r),u={x:c*a,y:c*n,z:-s},l={x:-m*s*a-i*-n,y:-m*s*n-i*a,z:-m*c},y={x:i*s*a-m*-n,y:i*s*n-m*a,z:i*c};return{forward:u,right:l,up:y}}function wt(t){let e=ne(t,me),o=ne(t,ue);if(e===0)return o===0?0:o>0?90:270;let r=ie(Math.atan2(o,e));return r<0?r+360:r}function Wt(t){let e=t.x,o=t.y,r=t.z;if(o===0&&e===0)return{x:r>0?-90:-270,y:0,z:0};let n;e?n=ie(Math.atan2(o,e)):o>0?n=90:n=270,n<0&&(n+=360);let a=Math.sqrt(e*e+o*o),s=ie(Math.atan2(r,a));return s<0&&(s+=360),{x:-s,y:n,z:0}}function kt(t,e,o,r,n){if(r<=0)return n;let a=n[0],s=n[1],c=n[2],m=n[3],i=m+(1-m)*r;if(i<=0)return[0,0,0,0];let u=m/i,l=a*u+t*(1-u),y=s*u+e*(1-u),p=c*u+o*(1-u);return[l,y,p,i]}var de=class{constructor(e=5489){this.state=new Uint32Array(624);this.index=624;this.seed(e)}seed(e){this.state[0]=e>>>0;for(let o=1;o<624;o++){let r=this.state[o-1]^this.state[o-1]>>>30,n=Math.imul(r>>>0,1812433253)+o;this.state[o]=n>>>0}this.index=624}nextUint32(){this.index>=624&&this.twist();let e=this.state[this.index++];return e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0}twist(){for(let e=0;e<624;e++){let o=this.state[e]&2147483648|this.state[(e+1)%624]&2147483647,r=this.state[(e+397)%624]^o>>>1;(o&1)!==0&&(r^=2567483615),this.state[e]=r>>>0}this.index=0}},pe=class{constructor(e={}){this.mt=new de(e.seed)}frandom(){return this.mt.nextUint32()/4294967296}frandomRange(e,o){return e+(o-e)*this.frandom()}frandomMax(e){return this.frandomRange(0,e)}crandom(){return this.frandomRange(-1,1)}crandomOpen(){let e=Number.EPSILON;return this.frandomRange(-1+e,1)}irandomUint32(){return this.mt.nextUint32()}irandomRange(e,o){if(o-e<=1)return e;let r=o-e,n=4294967296-4294967296%r,a;do a=this.mt.nextUint32();while(a>=n);return e+a%r}irandom(e){return e<=0?0:this.irandomRange(0,e)}randomTimeRange(e,o){return o<=e?e:this.irandomRange(e,o)}randomTime(e){return this.irandom(e)}randomIndex(e){return this.irandom(e.length)}};function It(t){return new pe(t)}var ye=0,Wr=1,kr=2,Ir=4,Br=8,Ur=16,Gr=32,Jr=64,Bt=8192,Hr=16384,jr=32768,Kr=65536,Xr=131072,Ut=262144,Gt=524288,Jt=1048576,Ht=2097152,jt=4194304,Kt=8388608,Yr=16777216,Zr=33554432,qr=67108864,Qr=134217728,$r=268435456,Ue=536870912,en=1073741824,tn=-2147483648,on=64,rn=0,nn=1,an=2,sn=4,cn=8,ln=16,mn=32,un=64,dn=128,pn=33554432,yn=268435456,fn=536870912,xn=1073741824,Tn=-2147483648,Sn=4294967295,ve=3,Vn=1107361795,Nn=65539,Cn=1107427331,fe=56,En=25,Pn=1174405123,Xt=16515072,bn=1107296281,_n=65539,hn=3,vn=196611,An=1174421507;function Yt(t,e){return(t&e)===e}function Zt(t,e){return(t&e)!==0}function qt(t,e){return t|e}function Qt(t,e){return t&~e}function $t(t,e){return(t&e)===e}function eo(...t){let e=0;for(let o of t)e|=o;return e}var Ge=(r=>(r[r.FRONT=1]="FRONT",r[r.BACK=2]="BACK",r[r.CROSS=3]="CROSS",r))(Ge||{}),zn=.03125;function to(t){let e=t.planes.map(s=>({...s,signbits:Je(s.normal)})),o=t.nodes.map(s=>({plane:e[s.planenum],children:s.children})),r=t.brushes.map(s=>{let c=t.brushSides.slice(s.firstSide,s.firstSide+s.numSides).map(m=>({plane:e[m.planenum],surfaceFlags:m.surfaceFlags}));return{contents:s.contents,sides:c,checkcount:0}}),n=t.leaves.map(s=>({contents:s.contents,cluster:s.cluster,area:s.area,firstLeafBrush:s.firstLeafBrush,numLeafBrushes:s.numLeafBrushes})),a=t.bmodels.map(s=>({mins:s.mins,maxs:s.maxs,origin:s.origin,headnode:s.headnode}));return{planes:e,nodes:o,leaves:n,brushes:r,leafBrushes:t.leafBrushes,bmodels:a}}function Je(t){let e=0;return t.x<0&&(e|=1),t.y<0&&(e|=2),t.z<0&&(e|=4),e}function Ae(t,e){return t.normal.x*e.x+t.normal.y*e.y+t.normal.z*e.z-t.dist}function oo(t,e,o=0){let r=Ae(t,e);return r>o?1:r<-o?2:3}function ro(t,e,o,r=0){let n,a;switch(o.signbits){case 0:n=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*e.z,a=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*t.z;break;case 1:n=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*e.z,a=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*t.z;break;case 2:n=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*e.z,a=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*t.z;break;case 3:n=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*e.z,a=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*t.z;break;case 4:n=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*t.z,a=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*e.z;break;case 5:n=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*t.z,a=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*e.z;break;case 6:n=o.normal.x*e.x+o.normal.y*t.y+o.normal.z*t.z,a=o.normal.x*t.x+o.normal.y*e.y+o.normal.z*e.z;break;default:n=o.normal.x*t.x+o.normal.y*t.y+o.normal.z*t.z,a=o.normal.x*e.x+o.normal.y*e.y+o.normal.z*e.z;break}let s=0;return n-o.dist>=-r&&(s=1),a-o.dist<=r&&(s|=2),s}function no(t,e,o=.03125){for(let r of e.sides)if(Ae(r.plane,t)>o)return!1;return!0}function ao(t,e,o,r){for(let n of r.sides){let a=n.plane.normal.x*(n.plane.normal.x<0?o.x:e.x)+n.plane.normal.y*(n.plane.normal.y<0?o.y:e.y)+n.plane.normal.z*(n.plane.normal.z<0?o.z:e.z),s=n.plane.dist-a;if(t.x*n.plane.normal.x+t.y*n.plane.normal.y+t.z*n.plane.normal.z-s>0)return{startsolid:!1,allsolid:!1,contents:0}}return{startsolid:!0,allsolid:!0,contents:r.contents}}function so({start:t,end:e,mins:o,maxs:r,brush:n,trace:a}){if(n.sides.length===0)return;let s=o.x===0&&o.y===0&&o.z===0&&r.x===0&&r.y===0&&r.z===0,c=-1,m=1,i=null,u=null,l=!1,y=!1;for(let p of n.sides){let{plane:f}=p,S=f.dist;if(!s){let P=f.normal.x<0?r.x:o.x,E=f.normal.y<0?r.y:o.y,T=f.normal.z<0?r.z:o.z;S-=f.normal.x*P+f.normal.y*E+f.normal.z*T}let x=t.x*f.normal.x+t.y*f.normal.y+t.z*f.normal.z-S,N=e.x*f.normal.x+e.y*f.normal.y+e.z*f.normal.z-S;if(N>0&&(l=!0),x>0&&(y=!0),x>0&&N>=x)return;if(!(x<=0&&N<=0))if(x>N){let P=(x-.03125)/(x-N);P>c&&(c=P,i=f,u=p)}else{let P=(x+.03125)/(x-N);P<m&&(m=P)}}if(!y){a.startsolid=!0,l||(a.allsolid=!0);return}c<m&&c>-1&&c<a.fraction&&(a.fraction=c<0?0:c,a.plane=i,a.contents=n.contents,a.surfaceFlags=u?.surfaceFlags??0)}function co(){return{fraction:1,plane:null,contents:0,surfaceFlags:0,startsolid:!1,allsolid:!1}}var He=(s=>(s[s.None=0]="None",s[s.Archive=1]="Archive",s[s.UserInfo=2]="UserInfo",s[s.ServerInfo=4]="ServerInfo",s[s.Latch=8]="Latch",s[s.Cheat=16]="Cheat",s))(He||{});var gn=1024,Mn=80,Ln=512,Dn=64,wn=128,lo=256,Wn=8192,io=256,mo=8192,uo=2048,po=512,yo=256,fo=512,xo=256,Oe=32,kn=96,In=64,$=(d=>(d[d.Name=0]="Name",d[d.CdTrack=1]="CdTrack",d[d.Sky=2]="Sky",d[d.SkyAxis=3]="SkyAxis",d[d.SkyRotate=4]="SkyRotate",d[d.StatusBar=5]="StatusBar",d[d.AirAccel=59]="AirAccel",d[d.MaxClients=60]="MaxClients",d[d.MapChecksum=61]="MapChecksum",d[d.Models=62]="Models",d[d.Sounds=62+mo]="Sounds",d[d.Images=d.Sounds+uo]="Images",d[d.Lights=d.Images+po]="Lights",d[d.ShadowLights=d.Lights+io]="ShadowLights",d[d.Items=d.ShadowLights+xo]="Items",d[d.PlayerSkins=d.Items+yo]="PlayerSkins",d[d.General=d.PlayerSkins+lo]="General",d[d.WheelWeapons=d.General+fo]="WheelWeapons",d[d.WheelAmmo=d.WheelWeapons+Oe]="WheelAmmo",d[d.WheelPowerups=d.WheelAmmo+Oe]="WheelPowerups",d[d.CdLoopCount=d.WheelPowerups+Oe]="CdLoopCount",d[d.GameStyle=d.CdLoopCount+1]="GameStyle",d[d.MaxConfigStrings=d.GameStyle+1]="MaxConfigStrings",d))($||{}),To=$.MaxConfigStrings;function So(t){return t>=5&&t<59?96*(59-t):t>=$.General&&t<$.WheelWeapons?96*($.MaxConfigStrings-t):96}var ee=(n=>(n[n.None=0]="None",n[n.Feet=1]="Feet",n[n.Waist=2]="Waist",n[n.Under=3]="Under",n))(ee||{});function ze(t){return t>=2}function Vo(t){return t===3}var X=(l=>(l[l.Ducked=1]="Ducked",l[l.JumpHeld=2]="JumpHeld",l[l.OnGround=4]="OnGround",l[l.TimeWaterJump=8]="TimeWaterJump",l[l.TimeLand=16]="TimeLand",l[l.TimeTeleport=32]="TimeTeleport",l[l.NoPositionalPrediction=64]="NoPositionalPrediction",l[l.OnLadder=128]="OnLadder",l[l.NoAngularPrediction=256]="NoAngularPrediction",l[l.IgnorePlayerCollision=512]="IgnorePlayerCollision",l[l.TimeTrick=1024]="TimeTrick",l))(X||{});function F(t,e){return(t&e)!==0}function D(t,e){return t|e}function w(t,e){return t&~e}var te=(c=>(c[c.Normal=0]="Normal",c[c.Grapple=1]="Grapple",c[c.NoClip=2]="NoClip",c[c.Spectator=3]="Spectator",c[c.Dead=4]="Dead",c[c.Gib=5]="Gib",c[c.Freeze=6]="Freeze",c))(te||{}),Y=(c=>(c[c.None=0]="None",c[c.Attack=1]="Attack",c[c.Use=2]="Use",c[c.Holster=4]="Holster",c[c.Jump=8]="Jump",c[c.Crouch=16]="Crouch",c[c.Any=128]="Any",c))(Y||{});function No(t){let{velocity:e,frametime:o,onGround:r,groundIsSlick:n,onLadder:a,waterlevel:s,pmFriction:c,pmStopSpeed:m,pmWaterFriction:i}=t,u=L(e);if(u<1)return{x:0,y:0,z:e.z};let l=0;if(r&&!n||a){let f=u<m?m:u;l+=f*c*o}s>0&&!a&&(l+=u*i*s*o);let y=u-l;if(y<0&&(y=0),y===u)return e;let p=y/u;return h(e,p)}function G(t){let{velocity:e,wishdir:o,wishspeed:r,accel:n,frametime:a}=t,s=R(e,o),c=r-s;if(c<=0)return e;let m=n*a*r;return m>c&&(m=c),{x:e.x+o.x*m,y:e.y+o.y*m,z:e.z+o.z*m}}function Re(t){let{velocity:e,wishdir:o,wishspeed:r,accel:n,frametime:a}=t,s=Math.min(r,30),c=R(e,o),m=s-c;if(m<=0)return e;let i=n*r*a;return i>m&&(i=m),{x:e.x+o.x*i,y:e.y+o.y*i,z:e.z+o.z*i}}function Co(t,e){let o=Math.abs(t.forwardmove),r=Math.abs(t.sidemove),n=Math.abs(t.upmove),a=Math.max(o,r,n);if(a===0)return 0;let s=Math.sqrt(t.forwardmove*t.forwardmove+t.sidemove*t.sidemove+t.upmove*t.upmove);return e*a/(127*s)}function Eo(t){let{forward:e,right:o,cmd:r,maxSpeed:n}=t,a={x:e.x*r.forwardmove+o.x*r.sidemove,y:e.y*r.forwardmove+o.y*r.sidemove,z:0},s=L(a);if(s>n){let c=n/s;a=h(a,c),s=n}return{wishdir:s===0?a:z(a),wishspeed:s}}function Po(t){let{forward:e,right:o,cmd:r,maxSpeed:n}=t,a={x:e.x*r.forwardmove+o.x*r.sidemove,y:e.y*r.forwardmove+o.y*r.sidemove,z:0};r.upmove>10?a=_(a,{x:0,y:0,z:r.upmove}):r.upmove<-10?a=_(a,{x:0,y:0,z:r.upmove}):a=_(a,{x:0,y:0,z:10});let s=L(a);if(s>n){let c=n/s;a=h(a,c),s=n}return s*=.5,{wishdir:s===0?a:z(a),wishspeed:s}}var je=5,bo=4,_o=18,ho=.7,Ke=1,Xe=2;function Ye(t,e,o,r=je,n=t){if(e.length===0)return{velocity:t,planes:[],stopped:!1};let a=[],s=t;for(let m of e){if(a.length>=r)return{velocity:O,planes:a,stopped:!0};if(a.find(y=>R(y,m)>.99))continue;a.push(m);let u,l=0;for(;l<a.length;l++){let y=K(s,a[l],o),p=0;for(;p<a.length&&!(p!==l&&R(y,a[p])<0);p++);if(p===a.length){u=y;break}}if(u)s=u;else{if(a.length!==2)return{velocity:O,planes:a,stopped:!0};let y=j(a[0],a[1]),p=R(y,s);s=h(y,p)}if(R(s,n)<=0)return{velocity:O,planes:a,stopped:!0}}let c=s.x===0&&s.y===0&&s.z===0;return{velocity:s,planes:a,stopped:c}}function Fe(t){let{origin:e,velocity:o,frametime:r,overbounce:n,trace:a,maxBumps:s=bo,maxClipPlanes:c=je,mins:m,maxs:i,hasTime:u=!1}=t,l=e,y=o,p=[],f=o,S=r,x=0;for(let P=0;P<s&&!(y.x===0&&y.y===0&&y.z===0);P++){let E=_(l,h(y,S)),T=a(l,E,m,i);if(T.allsolid){let C=u?f:O;return{origin:T.endpos,velocity:C,planes:p,stopped:!0,blocked:x}}if(T.startsolid){let C=u?f:O;return{origin:T.endpos,velocity:C,planes:p,stopped:!0,blocked:x}}if(T.fraction>0&&(l=T.endpos),T.fraction===1)break;if(!T.planeNormal)return{origin:l,velocity:u?f:O,planes:p,stopped:!0,blocked:x};T.planeNormal.z>.7&&(x|=Ke),T.planeNormal.z===0&&(x|=Xe),p.push(T.planeNormal),S-=S*T.fraction;let b=Ye(y,p,n,c,f);if(y=b.velocity,p.splice(0,p.length,...b.planes),f.z>0&&y.z<0&&(y={...y,z:0}),b.stopped)return{origin:l,velocity:u?f:y,planes:p,stopped:!0,blocked:x}}let N=u?f:y;return{origin:l,velocity:N,planes:p,stopped:N.x===0&&N.y===0&&N.z===0,blocked:x}}function Z(t){let{mins:e,maxs:o,stepSize:r=_o,...n}=t,a=t.origin,s=t.velocity,c=Fe({...n,mins:e,maxs:o}),m=_(a,{x:0,y:0,z:r}),i=n.trace(a,m,e,o);if(i.allsolid)return{...c,stepped:!1,stepHeight:0};let u=i.endpos.z-a.z,l=Fe({...n,origin:i.endpos,velocity:s,mins:e,maxs:o}),y=_(l.origin,{x:0,y:0,z:-u}),p=n.trace(l.origin,y,e,o),f=l.origin,S=p.planeNormal;p.allsolid||(f=p.endpos);let x=(C,d)=>(C.x-d.x)**2+(C.y-d.y)**2,N=x(c.origin,a),P=x(f,a);if(N>P||S&&S.z<ho)return{...c,stepped:!1,stepHeight:0};let E={...l.velocity,z:c.velocity.z},T=l.blocked,b=E.x===0&&E.y===0&&E.z===0;return{origin:f,velocity:E,planes:l.planes,blocked:T,stopped:b,stepped:!0,stepHeight:u,stepNormal:S}}var oe=["x","y","z"],ge=[{normal:[0,0,1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[0,0,-1],mins:[-1,-1,0],maxs:[1,1,0]},{normal:[1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[-1,0,0],mins:[0,-1,-1],maxs:[0,1,1]},{normal:[0,1,0],mins:[-1,0,-1],maxs:[1,0,1]},{normal:[0,-1,0],mins:[-1,0,-1],maxs:[1,0,1]}],Ze={x:0,y:0,z:0};function re(t){return{x:t.x,y:t.y,z:t.z}}function vo(t){return{x:t[0],y:t[1],z:t[2]}}function ae(t,e,o){if(o!==0)switch(e){case"x":t.x+=o;break;case"y":t.y+=o;break;case"z":t.z+=o;break}}function qe(t,e,o){switch(e){case"x":t.x=o;break;case"y":t.y=o;break;case"z":t.z=o;break}}function xe(t,e){switch(e){case"x":return t.x;case"y":return t.y;case"z":default:return t.z}}function Qe(t,e,o,r){return t===-1?xe(o,e):t===1?xe(r,e):0}function $e(t,e,o,r){let n=re(t);for(let a=0;a<oe.length;a++){let s=oe[a],c=e.normal[a];c<0?ae(n,s,xe(o,s)):c>0&&ae(n,s,xe(r,s))}return n}function Ao(t,e,o){let r=re(Ze),n=re(Ze);for(let a=0;a<oe.length;a++){let s=oe[a];qe(r,s,Qe(t.mins[a],s,e,o)),qe(n,s,Qe(t.maxs[a],s,e,o))}return{mins:r,maxs:n}}function Oo(t,e,o){if(!e||o===0)return t;let r=re(t);return ae(r,e,o),r}function zo(t,e,o){if(!e||o===0)return t;switch(e){case"x":return{...t,x:t.x+o};case"y":return{...t,y:t.y+o};case"z":default:return{...t,z:t.z+o}}}function Me(t){let{origin:e,mins:o,maxs:r,trace:n}=t;if(!n(e,o,r,e).startsolid)return{result:"good-position",origin:{...e}};let s=[];for(let c=0;c<ge.length;c++){let m=ge[c],{mins:i,maxs:u}=Ao(m,o,r),l=$e(e,m,o,r),y=n(l,i,u,l),p,f=0;if(y.startsolid)for(let C=0;C<oe.length;C++){if(m.normal[C]!==0)continue;let d=oe[C],A=re(l);if(ae(A,d,1),y=n(A,i,u,A),!y.startsolid){l=A,p=d,f=1;break}if(A=re(l),ae(A,d,-1),y=n(A,i,u,A),!y.startsolid){l=A,p=d,f=-1;break}}if(y.startsolid)continue;let S=ge[c^1],x=$e(e,S,o,r);if(x=Oo(x,p,f),y=n(l,i,u,x),y.startsolid)continue;let N=vo(m.normal),P=_(y.endpos??x,h(N,.125)),E=ce(P,x),T=_(e,E);T=zo(T,p,f),!n(T,o,r,T).startsolid&&s.push({origin:T,distance:Q(E)})}return s.length===0?{result:"no-good-position",origin:{...e}}:(s.sort((c,m)=>c.distance-m.distance),{result:"fixed",origin:{...s[0].origin}})}var Ro=100,Le=200,et=150,Te=25,Fo=15,go=1,Mo={x:0,y:0,z:1},Lo=(t,e)=>({fraction:1,endpos:e,allsolid:!1,startsolid:!1});function De(t){let e=0,o=0,r=0;return t&262144&&(e+=1),t&524288&&(o+=1),t&1048576&&(e-=1),t&2097152&&(o-=1),t&4194304&&(r+=1),t&8388608&&(r-=1),e===0&&o===0&&r===0?O:{x:e,y:o,z:r}}function rt(t){let{watertype:e,waterlevel:o,onGround:r,waterSpeed:n}=t;if((e&16515072)===0)return O;let a=De(e);if(a===O)return O;let s=n;return o===1&&r&&(s*=.5),h(a,s)}function nt(t){let{groundContents:e,scale:o=Ro}=t,r=De(e);return r===O?O:h(r,o)}function Se(t){let{wishVelocity:e,onLadder:o,onGround:r,waterlevel:n,watertype:a,groundContents:s,cmd:c,viewPitch:m,maxSpeed:i,ladderMod:u,waterSpeed:l,forward:y,origin:p,mins:f,maxs:S,trace:x=Lo}=t,N=e;o&&(N=Do({wishVelocity:N,cmd:c,waterlevel:n,viewPitch:m,maxSpeed:i,ladderMod:u,onGround:r,forward:y,origin:p,mins:f,maxs:S,trace:x}));let P=rt({watertype:a,waterlevel:n,onGround:r,waterSpeed:l});if(P!==O&&(N=_(N,P)),r){let E=nt({groundContents:s});E!==O&&(N=_(N,E))}return N}function Do(t){let{wishVelocity:e,cmd:o,waterlevel:r,viewPitch:n,maxSpeed:a,ladderMod:s,onGround:c,forward:m,origin:i,mins:u,maxs:l,trace:y}=t,p=o.buttons??0,f={...e};if((p&24)!==0){let S=ze(r)?a:Le;f={...f,z:p&8?S:-S}}else if(o.forwardmove){let S=tt(o.forwardmove,-Le,Le);if(o.forwardmove>0){let x=n<Fo?S:-S;f={...f,z:x}}else c||(f={...f,x:0,y:0}),f={...f,z:S}}else f={...f,z:0};if(!c)if(o.sidemove){let S=tt(o.sidemove,-et,et);r<2&&(S*=s);let x=z({x:m.x,y:m.y,z:0});if(x.x!==0||x.y!==0){let N=_(i,h(x,go)),P=y(i,N,u,l);if(P.fraction!==1&&!P.allsolid&&P.contents!==void 0&&(P.contents&536870912)!==0&&P.planeNormal){let E=j(P.planeNormal,Mo);f={...f,x:0,y:0},f=_(f,h(E,-S))}}}else f={...f,x:ot(f.x),y:ot(f.y)};return f}function tt(t,e,o){return Math.max(e,Math.min(o,t))}function ot(t){return t<-Te?-Te:t>Te?Te:t}var wo=1.5,at=.5,Wo=1.01;function ko(t){let{origin:e,cmd:o,frametime:r,pmFriction:n,pmStopSpeed:a,pmMaxSpeed:s,pmAccelerate:c,pmWaterSpeed:m,doclip:i,forward:u,right:l,mins:y,maxs:p,trace:f,overbounce:S=Wo,stepSize:x,maxBumps:N,maxClipPlanes:P}=t,E=Io({velocity:t.velocity,pmFriction:n,pmStopSpeed:a,frametime:r}),T=Bo({cmd:o,forward:u,right:l,pmMaxSpeed:s,pmWaterSpeed:m});if(T.wishspeed>0&&(E=G({velocity:E,wishdir:T.wishdir,wishspeed:T.accelSpeed,accel:c,frametime:r})),!i){let b=h(E,r);return{origin:_(e,b),velocity:E,planes:[],blocked:0,stopped:E.x===0&&E.y===0&&E.z===0,stepped:!1,stepHeight:0}}if(!f||!y||!p)throw new Error("applyPmoveFlyMove: doclip=true requires trace/mins/maxs");return Z({origin:e,velocity:E,frametime:r,overbounce:S,trace:f,mins:y,maxs:p,stepSize:x,maxBumps:N,maxClipPlanes:P})}function Io(t){let{velocity:e,pmFriction:o,pmStopSpeed:r,frametime:n}=t,a=L(e);if(a<1)return{x:0,y:0,z:0};let s=o*wo,m=(a<r?r:a)*s*n,i=a-m;return i<0&&(i=0),i===a?e:h(e,i/a)}function Bo(t){let{cmd:e,forward:o,right:r,pmMaxSpeed:n,pmWaterSpeed:a}=t,s=z(o),c=z(r),i={x:s.x*e.forwardmove+c.x*e.sidemove,y:s.y*e.forwardmove+c.y*e.sidemove,z:s.z*e.forwardmove+c.z*e.sidemove},u=e.buttons??0;u&8&&(i=_(i,{x:0,y:0,z:a*at})),u&16&&(i=_(i,{x:0,y:0,z:-a*at}));let l=L(i),y=l===0?{x:0,y:0,z:0}:z(i);if(l>n){let f=n/l;i=h(i,f),l=n,y=l===0?{x:0,y:0,z:0}:z(i)}let p=l*2;return{wishdir:y,wishspeed:l,accelSpeed:p}}function se(t){let{origin:e,mins:o,viewheight:r,pointContents:n}=t,a=r-o.z,s=a/2,c={x:e.x,y:e.y,z:e.z+o.z+1},m=n(c);if((m&56)===0)return{waterlevel:0,watertype:0};let i=m,u=1,l={x:c.x,y:c.y,z:e.z+o.z+s};if(m=n(l),(m&56)!==0){u=2;let y={x:c.x,y:c.y,z:e.z+o.z+a};m=n(y),(m&56)!==0&&(u=3)}return{waterlevel:u,watertype:i}}var Uo=270;function Go(t,e){return(t&e)!==0}function Jo(t){let{pmFlags:e,pmType:o,buttons:r,waterlevel:n,onGround:a,velocity:s,jumpHeight:c=Uo}=t;if(e&16)return{pmFlags:e,onGround:a,velocity:s,jumpSound:!1,jumped:!1};let m=Go(r,8),i=e,u=a,l=!1,y=!1,p=s;if(!m)return i=w(i,2),{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(Ho(i))return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(o===4)return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(n>=2)return u=!1,{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};if(!u)return{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y};i=D(i,2),i=w(i,4),u=!1,l=!0,y=!0;let f=s.z+c,S=f<c?c:f;return p={...s,z:S},{pmFlags:i,onGround:u,velocity:p,jumpSound:l,jumped:y}}function Ho(t){return(t&2)!==0}function Ve(t,e,o){return{x:t,y:e,z:o}}function Ne(t,e){let o=Ve(-16,-16,0),r=Ve(16,16,16);if(t===5)return{mins:o,maxs:r,viewheight:8};let n=t===4||(e&1)!==0,a=Ve(o.x,o.y,-24),s=Ve(r.x,r.y,n?4:32);return{mins:a,maxs:s,viewheight:n?-2:22}}var jo=4,Ko=32,Xo=8;function Yo(t){let{pmType:e}=t;if(e===5){let s=Ne(e,t.pmFlags);return{pmFlags:t.pmFlags,ducked:F(t.pmFlags,1),changed:!1,...s}}let o=t.pmFlags,r=!1;e===4?F(o,1)||(o=D(o,1),r=!0):Zo(t)?!F(o,1)&&!qo(t)&&(o=D(o,1),r=!0):F(o,1)&&!Qo(t)&&(o=w(o,1),r=!0);let n=Ne(e,o),a=e===4||F(o,1);return{pmFlags:o,ducked:a,changed:r,...n}}function Zo(t){return(t.buttons&16)===0||t.onLadder||t.n64Physics?!1:!!(t.hasGroundEntity||t.waterlevel<=1&&!$o(t))}function qo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:st(t.maxs,jo),mask:3}).allsolid}function Qo(t){return t.trace({start:t.origin,end:t.origin,mins:t.mins,maxs:st(t.maxs,Ko),mask:3}).allsolid}function $o(t){let e={x:t.origin.x,y:t.origin.y,z:t.origin.z-Xo};return t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:3}).fraction<1?!1:t.trace({start:t.origin,end:e,mins:t.mins,maxs:t.maxs,mask:56}).fraction<1}function st(t,e){return{x:t.x,y:t.y,z:e}}var er=.25,tr=180,or=100,rr=.7,nr=.9,ar=64,sr=128,cr=1.01,lr=1080;function ir(t){let{pmType:e,n64Physics:o,velocity:r,startVelocity:n,origin:a,mins:s,maxs:c,viewheight:m,trace:i,pointContents:u}=t,l=t.pmFlags,y=t.pmTime,p,f=F(l,4),S,x=0;if(r.z>tr||e===1)l=w(l,4),f=!1;else{let T={x:a.x,y:a.y,z:a.z-er},b=i(a,T,s,c);S=b,x=b.contents??0;let C=b.planeNormal,d=b.fraction<1&&!!C&&C.z<rr;if(d&&C){let A=_(a,C),W=i(a,A,s,c);W.fraction<1&&!W.startsolid&&(d=!1)}if(b.fraction===1||!C||d&&!b.startsolid)l=w(l,4),f=!1;else{f=!0,F(l,8)&&(l&=~lr,y=0);let A=F(l,4);if(!A){!o&&r.z>=or&&C.z>=nr&&!F(l,1)&&(l=D(l,1024),y=ar);let W=K(r,C,cr);p=n.z-W.z}l=D(l,4),!A&&(o||F(l,1))&&(l=D(l,16),y=sr)}}let{waterlevel:P,watertype:E}=se({origin:a,mins:s,viewheight:m,pointContents:u});return{pmFlags:l,pmTime:y,onGround:F(l,4),groundTrace:S,groundContents:x,waterlevel:P,watertype:E,impactDelta:p}}var ct=1,mr=60,we=1.01;function ur(t){let{origin:e,frametime:o,mins:r,maxs:n,trace:a,overbounce:s=we,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u,forward:l,right:y,cmd:p,pmFlags:f,onGround:S,gravity:x,pmType:N,pmAccelerate:P,pmAirAccelerate:E=ct,pmMaxSpeed:T,pmDuckSpeed:b,onLadder:C,waterlevel:d,watertype:A,groundContents:W,viewPitch:B,ladderMod:v,pmWaterSpeed:M}=t,V={...t.velocity},k=pr(l,y,p);k=Se({wishVelocity:k,onLadder:C,onGround:S,waterlevel:d,watertype:A,groundContents:W,cmd:p,viewPitch:B,maxSpeed:F(f,1)?b:T,ladderMod:v,waterSpeed:M,forward:l,origin:e,mins:r,maxs:n,trace:a});let I=F(f,1)?b:T,U=k,g=L(U);if(g!==0&&(U=z(U)),g>I){let J=I/g;k=h(k,J),g=I,g!==0&&(U=z(k))}return C?(V=G({velocity:V,wishdir:U,wishspeed:g,accel:P,frametime:o}),Math.abs(k.z)<Number.EPSILON&&(V=xr(V,x,o)),Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})):S?(V={...V,z:0},V=G({velocity:V,wishdir:U,wishspeed:g,accel:P,frametime:o}),x>0?V={...V,z:0}:V={...V,z:V.z-x*o},V.x===0&&V.y===0?{origin:e,velocity:V,planes:[],blocked:0,stopped:!0,stepped:!1,stepHeight:0}:Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})):(E>0?V=Re({velocity:V,wishdir:U,wishspeed:g,accel:E,frametime:o}):V=G({velocity:V,wishdir:U,wishspeed:g,accel:ct,frametime:o}),N!==1&&(V={...V,z:V.z-x*o}),Ce({origin:e,velocity:V,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u}))}function dr(t){let{origin:e,frametime:o,mins:r,maxs:n,trace:a,overbounce:s=we,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u,forward:l,right:y,cmd:p,pmFlags:f,onGround:S,pmMaxSpeed:x,pmDuckSpeed:N,pmWaterAccelerate:P,pmWaterSpeed:E,onLadder:T,watertype:b,groundContents:C,waterlevel:d,viewPitch:A,ladderMod:W}=t,B={...t.velocity},v=yr(l,y,p);fr(p,S)?v={...v,z:v.z-mr}:lt(p,16)?v=_(v,{x:0,y:0,z:-E*.5}):lt(p,8)&&(v=_(v,{x:0,y:0,z:E*.5})),v=Se({wishVelocity:v,onLadder:T,onGround:S,waterlevel:d,watertype:b,groundContents:C,cmd:p,viewPitch:A,maxSpeed:F(f,1)?N:x,ladderMod:W,waterSpeed:E,forward:l,origin:e,mins:r,maxs:n,trace:a});let M=v,V=L(M);if(V!==0&&(M=z(M)),V>x){let q=x/V;v=h(v,q),V=x,V!==0&&(M=z(v))}if(V*=.5,F(f,1)&&V>N){let q=N/V;v=h(v,q),V=N,V!==0&&(M=z(v))}return B=G({velocity:B,wishdir:M,wishspeed:V,accel:P,frametime:o}),Ce({origin:e,velocity:B,frametime:o,mins:r,maxs:n,trace:a,overbounce:s,stepSize:c,maxBumps:m,maxClipPlanes:i,hasTime:u})}function pr(t,e,o){return{x:t.x*o.forwardmove+e.x*o.sidemove,y:t.y*o.forwardmove+e.y*o.sidemove,z:0}}function yr(t,e,o){return{x:t.x*o.forwardmove+e.x*o.sidemove,y:t.y*o.forwardmove+e.y*o.sidemove,z:t.z*o.forwardmove+e.z*o.sidemove}}function lt(t,e){return!!((t.buttons??0)&e)}function fr(t,e){let o=t.forwardmove===0&&t.sidemove===0,r=!((t.buttons??0)&24);return o&&r&&!e}function xr(t,e,o){let r=t.z,n=e*o;return r>0?(r-=n,r<0&&(r=0)):(r+=n,r>0&&(r=0)),{...t,z:r}}function Ce(t){let{origin:e,velocity:o,frametime:r,mins:n,maxs:a,trace:s,overbounce:c=we,stepSize:m,maxBumps:i,maxClipPlanes:u,hasTime:l}=t;return Z({origin:e,velocity:o,frametime:r,trace:s,mins:n,maxs:a,overbounce:c,stepSize:m,maxBumps:i,maxClipPlanes:u,hasTime:l})}var Tr=1,Sr=40,Ee=50,it=350,Vr=2048,mt=.1,Nr=800,Cr=50,ut=.7,Er=18,Pr=1.01,br=2;function _r(t){let{pmFlags:e,pmTime:o,waterlevel:r,watertype:n,gravity:a,cmd:s,forward:c,origin:m,velocity:i,mins:u,maxs:l,viewheight:y,trace:p,pointContents:f,onGround:S,overbounce:x=Pr,stepSize:N=Er,maxBumps:P,maxClipPlanes:E}=t;if(o>0)return{pmFlags:e,pmTime:o,velocity:i,performedWaterJump:!1};let T=w(e,128),b=o,C=i,d=z({x:c.x,y:c.y,z:0}),A=Q(d)>0;if(r<2&&A){let g=_(m,h(d,Tr)),J=p(m,g,u,l),dt=J.contents??0;J.fraction<1&&(dt&536870912)!==0&&(T=D(T,128))}if(a===0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(((s.buttons??0)&8)===0&&s.forwardmove<=0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(r!==2)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if((n&8192)!==0)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};if(!A)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};let W=_(m,h(d,Sr)),B=p(m,W,u,l);if(B.fraction===1||!B.planeNormal||B.planeNormal.z>=ut)return{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1};let v={x:d.x*Ee,y:d.y*Ee,z:it},M=m,V=!0,k=hr(a);for(let g=0;g<k;g++){v={x:v.x,y:v.y,z:v.z-a*mt},v.z<0&&(V=!1);let J=Z({origin:M,velocity:v,frametime:mt,trace:p,mins:u,maxs:l,overbounce:x,stepSize:N,maxBumps:P,maxClipPlanes:E,hasTime:V});M=J.origin,v=J.velocity}let q=_(M,{x:0,y:0,z:-br}),I=p(M,q,u,l);return I.fraction===1||!I.planeNormal||I.planeNormal.z<ut||I.endpos.z<m.z?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:S&&Math.abs(m.z-I.endpos.z)<=N?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:se({origin:I.endpos,mins:u,viewheight:y,pointContents:f}).waterlevel>=2?{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!1}:(T=D(T,8),b=Vr,C={x:d.x*Ee,y:d.y*Ee,z:it},{pmFlags:T,pmTime:b,velocity:C,performedWaterJump:!0})}function hr(t){if(t===0)return 0;let e=Math.floor(10*(Nr/t));return e<=0?0:Math.min(Cr,e)}var We=[0,-1,1];function ke(t){let{origin:e,mins:o,maxs:r,trace:n}=t;return!n(e,e,o,r).allsolid}function vr(t){let{origin:e,velocity:o,mins:r,maxs:n,previousOrigin:a,trace:s}=t;if(ke({origin:e,mins:r,maxs:n,trace:s}))return{origin:{...e},velocity:{...o},resolution:"unchanged"};let c=Me({origin:e,mins:r,maxs:n,trace:(m,i,u,l)=>s(m,l,i,u)});return c.result==="fixed"||c.result==="good-position"?{origin:c.origin,velocity:{...o},resolution:"fixed"}:{origin:{...a},velocity:{...o},resolution:"reverted"}}function Ar(t){let{origin:e,mins:o,maxs:r,trace:n}=t;for(let a of We)for(let s of We)for(let c of We){let m={x:e.x+c,y:e.y+s,z:e.z+a};if(ke({origin:m,mins:o,maxs:r,trace:n}))return{origin:m,snapped:c!==0||s!==0||a!==0}}return{origin:{...e},snapped:!1}}function Or(t,e){return{x:t.x+e.x,y:t.y+e.y,z:t.z+e.z}}function zr(t){return t>89&&t<180?89:t<271&&t>=180?271:t}function Rr(t){let{pmFlags:e,cmdAngles:o,deltaAngles:r}=t,n;(e&32)!==0?n={x:0,y:o.y+r.y,z:0}:(n=Or(o,r),n={...n,x:zr(n.x)});let a=he(n);return{viewangles:n,...a}}return St(Fr);})();
2
+ //# sourceMappingURL=index.global.js.map