@quake2ts/client 0.0.1
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/dist/browser/index.global.js +221 -0
- package/dist/browser/index.global.js.map +1 -0
- package/dist/cjs/index.cjs +44668 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.js +44623 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/audio/entity-sound.d.ts +25 -0
- package/dist/types/audio/entity-sound.d.ts.map +1 -0
- package/dist/types/blend.d.ts +9 -0
- package/dist/types/blend.d.ts.map +1 -0
- package/dist/types/cgameBridge.d.ts +15 -0
- package/dist/types/cgameBridge.d.ts.map +1 -0
- package/dist/types/chat.d.ts +20 -0
- package/dist/types/chat.d.ts.map +1 -0
- package/dist/types/chat.test.d.ts +2 -0
- package/dist/types/chat.test.d.ts.map +1 -0
- package/dist/types/configStrings.d.ts +22 -0
- package/dist/types/configStrings.d.ts.map +1 -0
- package/dist/types/demo/camera.d.ts +17 -0
- package/dist/types/demo/camera.d.ts.map +1 -0
- package/dist/types/demo/handler.d.ts +71 -0
- package/dist/types/demo/handler.d.ts.map +1 -0
- package/dist/types/demo/itemMapping.d.ts +29 -0
- package/dist/types/demo/itemMapping.d.ts.map +1 -0
- package/dist/types/demo/storage.d.ts +24 -0
- package/dist/types/demo/storage.d.ts.map +1 -0
- package/dist/types/effects-system.d.ts +19 -0
- package/dist/types/effects-system.d.ts.map +1 -0
- package/dist/types/effects.d.ts +9 -0
- package/dist/types/effects.d.ts.map +1 -0
- package/dist/types/entities.d.ts +31 -0
- package/dist/types/entities.d.ts.map +1 -0
- package/dist/types/hud/blends.d.ts +4 -0
- package/dist/types/hud/blends.d.ts.map +1 -0
- package/dist/types/hud/crosshair.d.ts +7 -0
- package/dist/types/hud/crosshair.d.ts.map +1 -0
- package/dist/types/hud/damage.d.ts +5 -0
- package/dist/types/hud/damage.d.ts.map +1 -0
- package/dist/types/hud/data.d.ts +31 -0
- package/dist/types/hud/data.d.ts.map +1 -0
- package/dist/types/hud/diagnostics.d.ts +3 -0
- package/dist/types/hud/diagnostics.d.ts.map +1 -0
- package/dist/types/hud/icons.d.ts +6 -0
- package/dist/types/hud/icons.d.ts.map +1 -0
- package/dist/types/hud/layout.d.ts +30 -0
- package/dist/types/hud/layout.d.ts.map +1 -0
- package/dist/types/hud/messages.d.ts +11 -0
- package/dist/types/hud/messages.d.ts.map +1 -0
- package/dist/types/hud/numbers.d.ts +3 -0
- package/dist/types/hud/numbers.d.ts.map +1 -0
- package/dist/types/hud/pickup.d.ts +4 -0
- package/dist/types/hud/pickup.d.ts.map +1 -0
- package/dist/types/hud/statusbar.d.ts +6 -0
- package/dist/types/hud/statusbar.d.ts.map +1 -0
- package/dist/types/hud.d.ts +8 -0
- package/dist/types/hud.d.ts.map +1 -0
- package/dist/types/index.d.ts +119 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/input/bindings.d.ts +20 -0
- package/dist/types/input/bindings.d.ts.map +1 -0
- package/dist/types/input/command-buffer.d.ts +15 -0
- package/dist/types/input/command-buffer.d.ts.map +1 -0
- package/dist/types/input/controller.d.ts +139 -0
- package/dist/types/input/controller.d.ts.map +1 -0
- package/dist/types/lod.d.ts +11 -0
- package/dist/types/lod.d.ts.map +1 -0
- package/dist/types/net/browserWsDriver.d.ts +15 -0
- package/dist/types/net/browserWsDriver.d.ts.map +1 -0
- package/dist/types/net/clientConnection.d.ts +78 -0
- package/dist/types/net/clientConnection.d.ts.map +1 -0
- package/dist/types/net/connection.d.ts +96 -0
- package/dist/types/net/connection.d.ts.map +1 -0
- package/dist/types/net/master.d.ts +26 -0
- package/dist/types/net/master.d.ts.map +1 -0
- package/dist/types/net/serverBrowser.d.ts +23 -0
- package/dist/types/net/serverBrowser.d.ts.map +1 -0
- package/dist/types/scoreboard.d.ts +48 -0
- package/dist/types/scoreboard.d.ts.map +1 -0
- package/dist/types/scoreboard.test.d.ts +2 -0
- package/dist/types/scoreboard.test.d.ts.map +1 -0
- package/dist/types/session.d.ts +92 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/ui/demo-controls.d.ts +14 -0
- package/dist/types/ui/demo-controls.d.ts.map +1 -0
- package/dist/types/ui/error.d.ts +13 -0
- package/dist/types/ui/error.d.ts.map +1 -0
- package/dist/types/ui/loading/screen.d.ts +12 -0
- package/dist/types/ui/loading/screen.d.ts.map +1 -0
- package/dist/types/ui/menu/demo.d.ts +19 -0
- package/dist/types/ui/menu/demo.d.ts.map +1 -0
- package/dist/types/ui/menu/main.d.ts +27 -0
- package/dist/types/ui/menu/main.d.ts.map +1 -0
- package/dist/types/ui/menu/maps.d.ts +11 -0
- package/dist/types/ui/menu/maps.d.ts.map +1 -0
- package/dist/types/ui/menu/multiplayer.d.ts +11 -0
- package/dist/types/ui/menu/multiplayer.d.ts.map +1 -0
- package/dist/types/ui/menu/options.d.ts +14 -0
- package/dist/types/ui/menu/options.d.ts.map +1 -0
- package/dist/types/ui/menu/pause.d.ts +12 -0
- package/dist/types/ui/menu/pause.d.ts.map +1 -0
- package/dist/types/ui/menu/render.d.ts +4 -0
- package/dist/types/ui/menu/render.d.ts.map +1 -0
- package/dist/types/ui/menu/saveLoad.d.ts +18 -0
- package/dist/types/ui/menu/saveLoad.d.ts.map +1 -0
- package/dist/types/ui/menu/system.d.ts +15 -0
- package/dist/types/ui/menu/system.d.ts.map +1 -0
- package/dist/types/ui/menu/types.d.ts +17 -0
- package/dist/types/ui/menu/types.d.ts.map +1 -0
- package/dist/types/ui/pakLoader.d.ts +23 -0
- package/dist/types/ui/pakLoader.d.ts.map +1 -0
- package/dist/types/ui/settings.d.ts +18 -0
- package/dist/types/ui/settings.d.ts.map +1 -0
- package/dist/types/ui/storage.d.ts +7 -0
- package/dist/types/ui/storage.d.ts.map +1 -0
- package/dist/types/ui/wheels/index.d.ts +16 -0
- package/dist/types/ui/wheels/index.d.ts.map +1 -0
- package/dist/types/view-effects.d.ts +3 -0
- package/dist/types/view-effects.d.ts.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { DynamicLightManager, EngineImports, EntityState } from '@quake2ts/engine';
|
|
2
|
+
import { Vec3 } from '@quake2ts/shared';
|
|
3
|
+
import { ClientConfigStrings } from './configStrings.js';
|
|
4
|
+
export interface EntityProvider {
|
|
5
|
+
getEntity(entNum: number): EntityState | undefined;
|
|
6
|
+
getPlayerNum(): number;
|
|
7
|
+
}
|
|
8
|
+
export declare class ClientEffectSystem {
|
|
9
|
+
private dlightManager;
|
|
10
|
+
private engine;
|
|
11
|
+
private entityProvider;
|
|
12
|
+
private configStrings?;
|
|
13
|
+
constructor(dlightManager: DynamicLightManager, engine: EngineImports, entityProvider: EntityProvider, configStrings?: ClientConfigStrings);
|
|
14
|
+
private addLight;
|
|
15
|
+
private playSound;
|
|
16
|
+
onMuzzleFlash(entNum: number, weapon: number, time: number): void;
|
|
17
|
+
onTempEntity(type: number, pos: Vec3, time: number, dir?: Vec3, pos2?: Vec3): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=effects-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects-system.d.ts","sourceRoot":"","sources":["../../src/effects-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EACL,IAAI,EAOL,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAYzD,MAAM,WAAW,cAAc;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACnD,YAAY,IAAI,MAAM,CAAC;CAC1B;AA2BD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAsB;gBAEhC,aAAa,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAQ1I,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,SAAS;IAaV,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgH1D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI;CA0JrF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Vec3 } from '@quake2ts/shared';
|
|
2
|
+
import { DLight } from '@quake2ts/engine';
|
|
3
|
+
export declare function processEntityEffects(entity: {
|
|
4
|
+
effects: number;
|
|
5
|
+
renderfx: number;
|
|
6
|
+
origin: Vec3;
|
|
7
|
+
alpha?: number;
|
|
8
|
+
}, dlights: DLight[], time: number): void;
|
|
9
|
+
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAoB1C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,QAmEb"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RenderableEntity } from '@quake2ts/engine';
|
|
2
|
+
import { ClientConfigStrings } from './configStrings.js';
|
|
3
|
+
import { ClientImports } from './index.js';
|
|
4
|
+
type AnyEntityState = {
|
|
5
|
+
number: number;
|
|
6
|
+
origin: {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
z: number;
|
|
10
|
+
};
|
|
11
|
+
angles: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
z: number;
|
|
15
|
+
};
|
|
16
|
+
frame: number;
|
|
17
|
+
alpha?: number;
|
|
18
|
+
scale?: number;
|
|
19
|
+
modelIndex?: number;
|
|
20
|
+
skinNum?: number;
|
|
21
|
+
renderfx?: number;
|
|
22
|
+
modelindex?: number;
|
|
23
|
+
skinnum?: number;
|
|
24
|
+
};
|
|
25
|
+
export declare function buildRenderableEntities(latestEntities: AnyEntityState[], previousEntities: AnyEntityState[] | Map<number, AnyEntityState>, alpha: number, configStrings: ClientConfigStrings, imports: ClientImports, cameraPosition?: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
z: number;
|
|
29
|
+
}): RenderableEntity[];
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/entities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAY,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAc3C,KAAK,cAAc,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,uBAAuB,CACnC,cAAc,EAAE,cAAc,EAAE,EAChC,gBAAgB,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EAChE,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,mBAAmB,EAClC,OAAO,EAAE,aAAa,EACtB,cAAc,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,gBAAgB,EAAE,CAoIpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blends.d.ts","sourceRoot":"","sources":["../../../src/hud/blends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,EAAE,IAAI,WAAW,SAQ9D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AssetManager, Renderer } from '@quake2ts/engine';
|
|
2
|
+
export declare const Init_Crosshair: (renderer: Renderer, assets: AssetManager) => Promise<void>;
|
|
3
|
+
export declare const Set_Crosshair: (index: number) => void;
|
|
4
|
+
export declare const Set_CrosshairColor: (r: number, g: number, b: number, a?: number) => void;
|
|
5
|
+
export declare const Cycle_Crosshair: () => number;
|
|
6
|
+
export declare const Draw_Crosshair: (renderer: Renderer, width: number, height: number) => void;
|
|
7
|
+
//# sourceMappingURL=crosshair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crosshair.d.ts","sourceRoot":"","sources":["../../../src/hud/crosshair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAO,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAU/D,eAAO,MAAM,cAAc,GAAU,UAAU,QAAQ,EAAE,QAAQ,YAAY,kBAmB5E,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,SAkB1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,IAAG,MAAU,SAEhF,CAAA;AAED,eAAO,MAAM,eAAe,cAmC3B,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,SAM/E,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AssetManager, Renderer } from '@quake2ts/engine';
|
|
2
|
+
import { PlayerState } from '@quake2ts/shared';
|
|
3
|
+
export declare const Init_Damage: (renderer: Renderer, assets: AssetManager) => Promise<void>;
|
|
4
|
+
export declare const Draw_Damage: (renderer: Renderer, ps: PlayerState) => void;
|
|
5
|
+
//# sourceMappingURL=damage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"damage.d.ts","sourceRoot":"","sources":["../../../src/hud/damage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAO,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAA+B,MAAM,kBAAkB,CAAC;AAQ5E,eAAO,MAAM,WAAW,GAAU,UAAU,QAAQ,EAAE,QAAQ,YAAY,kBAUzE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,EAAE,IAAI,WAAW,SAoD9D,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface HudData {
|
|
2
|
+
health: number;
|
|
3
|
+
armor: number;
|
|
4
|
+
ammo: number;
|
|
5
|
+
ammoIcon?: string;
|
|
6
|
+
weaponIcon?: string;
|
|
7
|
+
pickupIcon?: string;
|
|
8
|
+
inventory: {
|
|
9
|
+
name: string;
|
|
10
|
+
count: number;
|
|
11
|
+
icon?: string;
|
|
12
|
+
}[];
|
|
13
|
+
damageIndicators: {
|
|
14
|
+
angle: number;
|
|
15
|
+
alpha: number;
|
|
16
|
+
}[];
|
|
17
|
+
fps: number;
|
|
18
|
+
}
|
|
19
|
+
export interface StatusBarData {
|
|
20
|
+
health: number;
|
|
21
|
+
armor: number;
|
|
22
|
+
ammo: number;
|
|
23
|
+
ammoIcon?: string;
|
|
24
|
+
armorIcon?: string;
|
|
25
|
+
selectedAmmoIndex: number;
|
|
26
|
+
}
|
|
27
|
+
export interface CrosshairInfo {
|
|
28
|
+
index: number;
|
|
29
|
+
name: string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/hud/data.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,gBAAgB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/hud/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,EAAE,OAAO,gBAAgB,SAc3E,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AssetManager, Pic, Renderer } from '@quake2ts/engine';
|
|
2
|
+
import { PlayerClient } from '@quake2ts/game';
|
|
3
|
+
export declare const iconPics: Map<string, import("@quake2ts/engine").Texture2D>;
|
|
4
|
+
export declare const Init_Icons: (renderer: Renderer, assets: AssetManager) => Promise<void>;
|
|
5
|
+
export declare const Draw_Icons: (renderer: Renderer, client: PlayerClient, hudNumberPics: readonly Pic[], numberWidth: number, timeMs: number) => void;
|
|
6
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/hud/icons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAA8C,MAAM,gBAAgB,CAAC;AAI1F,eAAO,MAAM,QAAQ,mDAAyB,CAAC;AAkB/C,eAAO,MAAM,UAAU,GAAU,UAAU,QAAQ,EAAE,QAAQ,YAAY,kBAUxE,CAAC;AAEF,eAAO,MAAM,UAAU,GACnB,UAAU,QAAQ,EAClB,QAAQ,YAAY,EACpB,eAAe,SAAS,GAAG,EAAE,EAC7B,aAAa,MAAM,EACnB,QAAQ,MAAM,SAmEjB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const getHudLayout: (width: number, height: number) => {
|
|
2
|
+
HEALTH_X: number;
|
|
3
|
+
HEALTH_Y: number;
|
|
4
|
+
ARMOR_X: number;
|
|
5
|
+
ARMOR_Y: number;
|
|
6
|
+
AMMO_X: number;
|
|
7
|
+
AMMO_Y: number;
|
|
8
|
+
CENTER_PRINT_X: number;
|
|
9
|
+
CENTER_PRINT_Y: number;
|
|
10
|
+
WEAPON_ICON_X: number;
|
|
11
|
+
WEAPON_ICON_Y: number;
|
|
12
|
+
POWERUP_X: number;
|
|
13
|
+
POWERUP_Y: number;
|
|
14
|
+
scale: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const HUD_LAYOUT: {
|
|
17
|
+
HEALTH_X: number;
|
|
18
|
+
HEALTH_Y: number;
|
|
19
|
+
ARMOR_X: number;
|
|
20
|
+
ARMOR_Y: number;
|
|
21
|
+
AMMO_X: number;
|
|
22
|
+
AMMO_Y: number;
|
|
23
|
+
CENTER_PRINT_X: number;
|
|
24
|
+
CENTER_PRINT_Y: number;
|
|
25
|
+
WEAPON_ICON_X: number;
|
|
26
|
+
WEAPON_ICON_Y: number;
|
|
27
|
+
POWERUP_X: number;
|
|
28
|
+
POWERUP_Y: number;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/hud/layout.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,QAAQ,MAAM;;;;;;;;;;;;;;CA8CzD,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAatB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Renderer } from '@quake2ts/engine';
|
|
2
|
+
import { getHudLayout } from './layout.js';
|
|
3
|
+
export declare class MessageSystem {
|
|
4
|
+
private centerPrintMsg;
|
|
5
|
+
private notifyMessages;
|
|
6
|
+
addCenterPrint(text: string, now: number): void;
|
|
7
|
+
addNotify(text: string, now: number): void;
|
|
8
|
+
drawCenterPrint(renderer: Renderer, now: number, layout: ReturnType<typeof getHudLayout>): void;
|
|
9
|
+
drawNotifications(renderer: Renderer, now: number): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/hud/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,cAAc,CAAiB;IAEvC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAQxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAYnC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC;IAgBxF,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM;CAYlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../../src/hud/numbers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,OAAO,MAAM,EAAE,MAAM,SAAS,GAAG,EAAE,EAAE,OAAO,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,SASjK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pickup.d.ts","sourceRoot":"","sources":["../../../src/hud/pickup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,EAAE,IAAI,WAAW,SAS9D,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Pic, Renderer } from '@quake2ts/engine';
|
|
2
|
+
import { PlayerClient } from '@quake2ts/game';
|
|
3
|
+
import { getHudLayout } from './layout.js';
|
|
4
|
+
export declare const Set_ColorblindMode: (enabled: boolean) => void;
|
|
5
|
+
export declare const Draw_StatusBar: (renderer: Renderer, client: PlayerClient, health: number, armor: number, ammo: number, hudNumberPics: readonly Pic[], numberWidth: number, timeMs: number, layout: ReturnType<typeof getHudLayout>) => void;
|
|
6
|
+
//# sourceMappingURL=statusbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statusbar.d.ts","sourceRoot":"","sources":["../../../src/hud/statusbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAmC,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,SAElD,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,UAAU,QAAQ,EAClB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,eAAe,SAAS,GAAG,EAAE,EAC7B,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,QAAQ,UAAU,CAAC,OAAO,YAAY,CAAC,SAkF1C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FrameRenderStats, AssetManager } from '@quake2ts/engine';
|
|
2
|
+
import { Renderer } from '@quake2ts/engine';
|
|
3
|
+
import { PlayerClient } from '@quake2ts/game';
|
|
4
|
+
import { PlayerState } from '@quake2ts/shared';
|
|
5
|
+
import { MessageSystem } from './hud/messages.js';
|
|
6
|
+
export declare const Init_Hud: (renderer: Renderer, assets: AssetManager) => Promise<void>;
|
|
7
|
+
export declare const Draw_Hud: (renderer: Renderer, ps: PlayerState, client: PlayerClient, health: number, armor: number, ammo: number, stats: FrameRenderStats, messageSystem: MessageSystem, timeMs: number) => void;
|
|
8
|
+
//# sourceMappingURL=hud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hud.d.ts","sourceRoot":"","sources":["../../src/hud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAO,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASlD,eAAO,MAAM,QAAQ,GAAU,UAAU,QAAQ,EAAE,QAAQ,YAAY,kBAiBtE,CAAC;AAEF,eAAO,MAAM,QAAQ,GACjB,UAAU,QAAQ,EAClB,IAAI,WAAW,EACf,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,OAAO,gBAAgB,EACvB,eAAe,aAAa,EAC5B,QAAQ,MAAM,SAmCjB,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ClientRenderer, EngineImports, GameFrameResult, Camera, Renderer, DemoPlaybackController, EngineHost } from '@quake2ts/engine';
|
|
2
|
+
import { UserCommand, Vec3 } from '@quake2ts/shared';
|
|
3
|
+
import { ClientPrediction, PredictionState } from '@quake2ts/cgame';
|
|
4
|
+
import { ViewEffects, ViewSample } from '@quake2ts/cgame';
|
|
5
|
+
import { FrameRenderStats } from '@quake2ts/engine';
|
|
6
|
+
import { ClientNetworkHandler } from './demo/handler.js';
|
|
7
|
+
import { ClientConfigStrings } from './configStrings.js';
|
|
8
|
+
import { MainMenuFactory, MainMenuOptions } from './ui/menu/main.js';
|
|
9
|
+
import { MenuSystem } from './ui/menu/system.js';
|
|
10
|
+
import { SaveStorage } from '@quake2ts/game';
|
|
11
|
+
import { InputBindings } from './input/bindings.js';
|
|
12
|
+
import { LoadingScreen } from './ui/loading/screen.js';
|
|
13
|
+
import { ErrorDialog } from './ui/error.js';
|
|
14
|
+
import { MultiplayerConnection } from './net/connection.js';
|
|
15
|
+
import { DynamicLightManager } from '@quake2ts/engine';
|
|
16
|
+
import { DemoCameraMode } from './demo/camera.js';
|
|
17
|
+
import { ScoreboardData } from './scoreboard.js';
|
|
18
|
+
import { HudData, StatusBarData, CrosshairInfo } from './hud/data.js';
|
|
19
|
+
import { MenuState } from './ui/menu/types.js';
|
|
20
|
+
import { LodModel } from './lod.js';
|
|
21
|
+
export { createDefaultBindings, InputBindings, normalizeCommand, normalizeInputCode } from './input/bindings.js';
|
|
22
|
+
import { InputController, InputSource } from './input/controller.js';
|
|
23
|
+
export { GamepadLike, GamepadLikeButton, InputAction, InputController, InputSource, TouchInputState, type InputControllerOptions, } from './input/controller.js';
|
|
24
|
+
export { InputCommandBuffer, type QueuedFrameCommands, } from './input/command-buffer.js';
|
|
25
|
+
export { ClientPrediction, interpolatePredictionState, defaultPredictionState, } from '@quake2ts/cgame';
|
|
26
|
+
export type { PredictionSettings, PredictionState } from '@quake2ts/cgame';
|
|
27
|
+
export { ViewEffects } from '@quake2ts/cgame';
|
|
28
|
+
export type { ViewEffectSettings, ViewKick, ViewSample } from '@quake2ts/cgame';
|
|
29
|
+
export { ClientConfigStrings } from './configStrings.js';
|
|
30
|
+
export * from './scoreboard.js';
|
|
31
|
+
export { HudData, StatusBarData, CrosshairInfo } from './hud/data.js';
|
|
32
|
+
export * from './session.js';
|
|
33
|
+
export * from './demo/camera.js';
|
|
34
|
+
export { queryMasterServer, type ServerInfo } from './net/master.js';
|
|
35
|
+
export interface ClientImports {
|
|
36
|
+
readonly engine: EngineImports & {
|
|
37
|
+
renderer: Renderer;
|
|
38
|
+
cmd?: {
|
|
39
|
+
executeText(text: string): void;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
readonly host?: EngineHost;
|
|
43
|
+
readonly inputController?: InputController;
|
|
44
|
+
}
|
|
45
|
+
export declare enum ClientMode {
|
|
46
|
+
Normal = 0,
|
|
47
|
+
DemoPlayback = 1,
|
|
48
|
+
Multiplayer = 2
|
|
49
|
+
}
|
|
50
|
+
export interface ClientExports extends ClientRenderer<PredictionState> {
|
|
51
|
+
predict(command: UserCommand): PredictionState;
|
|
52
|
+
ParseCenterPrint(msg: string): void;
|
|
53
|
+
ParseNotify(msg: string): void;
|
|
54
|
+
ParseConfigString(index: number, value: string): void;
|
|
55
|
+
showSubtitle(text: string, soundName: string): void;
|
|
56
|
+
readonly prediction: ClientPrediction;
|
|
57
|
+
readonly lastRendered?: PredictionState;
|
|
58
|
+
readonly view: ViewEffects;
|
|
59
|
+
readonly lastView?: ViewSample;
|
|
60
|
+
readonly configStrings: ClientConfigStrings;
|
|
61
|
+
camera?: Camera;
|
|
62
|
+
demoPlayback: DemoPlaybackController;
|
|
63
|
+
demoHandler: ClientNetworkHandler;
|
|
64
|
+
readonly isDemoPlaying: boolean;
|
|
65
|
+
readonly currentDemoName: string | null;
|
|
66
|
+
readonly mode: ClientMode;
|
|
67
|
+
startDemoPlayback(buffer: ArrayBuffer, filename: string): void;
|
|
68
|
+
stopDemoPlayback(): void;
|
|
69
|
+
setDemoCameraMode(mode: DemoCameraMode): void;
|
|
70
|
+
setDemoThirdPersonDistance(dist: number): void;
|
|
71
|
+
setDemoThirdPersonOffset(offset: Vec3): void;
|
|
72
|
+
setDemoFreeCamera(origin: Vec3, angles: Vec3): void;
|
|
73
|
+
setDemoFollowEntity(entityId: number): void;
|
|
74
|
+
setSpectatorTarget(targetEntityId: number | null): void;
|
|
75
|
+
getSpectatorTargets(): {
|
|
76
|
+
id: number;
|
|
77
|
+
name: string;
|
|
78
|
+
}[];
|
|
79
|
+
multiplayer: MultiplayerConnection;
|
|
80
|
+
startRecording(filename: string): void;
|
|
81
|
+
stopRecording(): void;
|
|
82
|
+
createMainMenu(options: Omit<MainMenuOptions, 'optionsFactory' | 'mapsFactory' | 'onSetDifficulty' | 'multiplayerFactory'>, storage: SaveStorage, saveCallback: (name: string) => Promise<void>, loadCallback: (slot: string) => Promise<void>, deleteCallback: (slot: string) => Promise<void>): {
|
|
83
|
+
menuSystem: MenuSystem;
|
|
84
|
+
factory: MainMenuFactory;
|
|
85
|
+
};
|
|
86
|
+
showPauseMenu(): void;
|
|
87
|
+
hidePauseMenu(): void;
|
|
88
|
+
isMenuActive(): boolean;
|
|
89
|
+
onMenuStateChange?: (active: boolean) => void;
|
|
90
|
+
getMenuState(): MenuState;
|
|
91
|
+
handleInput(key: string, down: boolean): boolean;
|
|
92
|
+
toggleMenu(): void;
|
|
93
|
+
bindInputSource(source: InputSource): void;
|
|
94
|
+
setKeyBinding(action: string, keys: string[]): void;
|
|
95
|
+
getDefaultBindings(): InputBindings;
|
|
96
|
+
onInputCommand?: (cmd: UserCommand) => void;
|
|
97
|
+
Init(initial?: GameFrameResult<PredictionState>): void;
|
|
98
|
+
Shutdown(): void;
|
|
99
|
+
DrawHUD(stats: FrameRenderStats, timeMs: number): void;
|
|
100
|
+
readonly loadingScreen: LoadingScreen;
|
|
101
|
+
readonly errorDialog: ErrorDialog;
|
|
102
|
+
readonly dlightManager: DynamicLightManager;
|
|
103
|
+
getScoreboard(): ScoreboardData;
|
|
104
|
+
onScoreboardUpdate?: (scoreboard: ScoreboardData) => void;
|
|
105
|
+
sendChatMessage(message: string, team?: boolean): void;
|
|
106
|
+
onChatMessage?: (sender: string, message: string, team: boolean) => void;
|
|
107
|
+
getChatHistory(): any[];
|
|
108
|
+
getHudData(): HudData | null;
|
|
109
|
+
getStatusBar(): StatusBarData | null;
|
|
110
|
+
getCrosshairInfo(): CrosshairInfo;
|
|
111
|
+
onHudUpdate?: (data: HudData) => void;
|
|
112
|
+
onCenterPrint?: (message: string, duration: number) => void;
|
|
113
|
+
onNotify?: (message: string) => void;
|
|
114
|
+
onPickupMessage?: (item: string) => void;
|
|
115
|
+
onObituaryMessage?: (message: string) => void;
|
|
116
|
+
registerLod(baseModel: string, lods: LodModel[]): void;
|
|
117
|
+
}
|
|
118
|
+
export declare function createClient(imports: ClientImports): ClientExports;
|
|
119
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type InputCode = string;
|
|
2
|
+
export interface BindingEntry {
|
|
3
|
+
readonly code: InputCode;
|
|
4
|
+
readonly command: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const DEFAULT_BINDINGS: readonly BindingEntry[];
|
|
7
|
+
export type BindingMap = ReadonlyMap<InputCode, string>;
|
|
8
|
+
export declare class InputBindings {
|
|
9
|
+
private readonly bindings;
|
|
10
|
+
constructor(entries?: Iterable<BindingEntry>);
|
|
11
|
+
bind(code: InputCode, command: string): void;
|
|
12
|
+
unbind(code: InputCode): void;
|
|
13
|
+
getBinding(code: InputCode): string | undefined;
|
|
14
|
+
getBoundKeys(command: string): InputCode[];
|
|
15
|
+
entries(): BindingMap;
|
|
16
|
+
}
|
|
17
|
+
export declare function createDefaultBindings(): InputBindings;
|
|
18
|
+
export declare function normalizeInputCode(code: string): InputCode;
|
|
19
|
+
export declare function normalizeCommand(command: string): string;
|
|
20
|
+
//# sourceMappingURL=bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../../src/input/bindings.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAkCnD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAExD,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;gBAE7C,OAAO,GAAE,QAAQ,CAAC,YAAY,CAAoB;IAM9D,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5C,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI7B,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAI/C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAW1C,OAAO,IAAI,UAAU;CAGtB;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAE1D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { UserCommand } from '@quake2ts/shared';
|
|
2
|
+
import { InputController, type InputControllerOptions } from './controller.js';
|
|
3
|
+
export interface QueuedFrameCommands {
|
|
4
|
+
readonly command: UserCommand;
|
|
5
|
+
readonly console: readonly string[];
|
|
6
|
+
}
|
|
7
|
+
export declare class InputCommandBuffer {
|
|
8
|
+
private readonly controller;
|
|
9
|
+
private readonly queued;
|
|
10
|
+
constructor(options?: InputControllerOptions, controller?: InputController);
|
|
11
|
+
captureFrame(frameMsec: number, now?: number, serverFrame?: number): QueuedFrameCommands;
|
|
12
|
+
consumeQueued(): readonly QueuedFrameCommands[];
|
|
13
|
+
getController(): InputController;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=command-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-buffer.d.ts","sourceRoot":"","sources":["../../../src/input/command-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAExC,OAAO,CAAC,EAAE,sBAAsB,EAAE,UAAU,kBAA+B;IAIvF,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAQxF,aAAa,IAAI,SAAS,mBAAmB,EAAE;IAM/C,aAAa,IAAI,eAAe;CAGjC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { type UserCommand } from '@quake2ts/shared';
|
|
2
|
+
import { InputBindings, type InputCode } from './bindings.js';
|
|
3
|
+
export interface GamepadLikeButton {
|
|
4
|
+
readonly pressed: boolean;
|
|
5
|
+
readonly value: number;
|
|
6
|
+
}
|
|
7
|
+
export interface GamepadLike {
|
|
8
|
+
readonly axes: readonly number[];
|
|
9
|
+
readonly buttons: readonly GamepadLikeButton[];
|
|
10
|
+
readonly index?: number;
|
|
11
|
+
readonly connected?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface TouchInputState {
|
|
14
|
+
readonly move?: {
|
|
15
|
+
readonly x: number;
|
|
16
|
+
readonly y: number;
|
|
17
|
+
};
|
|
18
|
+
readonly look?: {
|
|
19
|
+
readonly x: number;
|
|
20
|
+
readonly y: number;
|
|
21
|
+
};
|
|
22
|
+
readonly buttons?: Partial<Record<InputAction, boolean>>;
|
|
23
|
+
}
|
|
24
|
+
export interface InputSource {
|
|
25
|
+
on(event: 'keydown', handler: (code: string) => void): void;
|
|
26
|
+
on(event: 'keyup', handler: (code: string) => void): void;
|
|
27
|
+
on(event: 'mousedown', handler: (button: number) => void): void;
|
|
28
|
+
on(event: 'mouseup', handler: (button: number) => void): void;
|
|
29
|
+
on(event: 'mousemove', handler: (dx: number, dy: number) => void): void;
|
|
30
|
+
}
|
|
31
|
+
export interface InputControllerOptions {
|
|
32
|
+
readonly forwardSpeed?: number;
|
|
33
|
+
readonly sideSpeed?: number;
|
|
34
|
+
readonly upSpeed?: number;
|
|
35
|
+
readonly yawSpeed?: number;
|
|
36
|
+
readonly pitchSpeed?: number;
|
|
37
|
+
readonly sensitivity?: number;
|
|
38
|
+
readonly sensitivityX?: number;
|
|
39
|
+
readonly sensitivityY?: number;
|
|
40
|
+
readonly invertMouseY?: boolean;
|
|
41
|
+
readonly runByDefault?: boolean;
|
|
42
|
+
readonly requirePointerLock?: boolean;
|
|
43
|
+
readonly jumpAddsUpMove?: boolean;
|
|
44
|
+
readonly crouchAddsDownMove?: boolean;
|
|
45
|
+
readonly mouseFilter?: boolean;
|
|
46
|
+
readonly getGamepads?: () => readonly (GamepadLike | null | undefined)[];
|
|
47
|
+
readonly gamepadDeadZone?: number;
|
|
48
|
+
readonly gamepadLookScale?: number;
|
|
49
|
+
readonly invertGamepadY?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export declare enum InputAction {
|
|
52
|
+
Forward = "+forward",
|
|
53
|
+
Back = "+back",
|
|
54
|
+
MoveLeft = "+moveleft",
|
|
55
|
+
MoveRight = "+moveright",
|
|
56
|
+
MoveUp = "+moveup",
|
|
57
|
+
MoveDown = "+movedown",
|
|
58
|
+
Jump = "+jump",
|
|
59
|
+
Crouch = "+crouch",
|
|
60
|
+
Attack = "+attack",
|
|
61
|
+
Use = "+use",
|
|
62
|
+
Holster = "+holster",
|
|
63
|
+
TurnLeft = "+left",
|
|
64
|
+
TurnRight = "+right",
|
|
65
|
+
LookUp = "+lookup",
|
|
66
|
+
LookDown = "+lookdown",
|
|
67
|
+
SpeedModifier = "+speed",
|
|
68
|
+
Zoom = "+zoom"
|
|
69
|
+
}
|
|
70
|
+
export declare class InputController {
|
|
71
|
+
private readonly bindings;
|
|
72
|
+
private readonly buttons;
|
|
73
|
+
private viewAngles;
|
|
74
|
+
private pointerLocked;
|
|
75
|
+
private mouseDelta;
|
|
76
|
+
private previousMouseDelta;
|
|
77
|
+
private anyPressed;
|
|
78
|
+
private commandQueue;
|
|
79
|
+
private pendingGamepads;
|
|
80
|
+
private readonly gamepadButtons;
|
|
81
|
+
private gamepadMove;
|
|
82
|
+
private gamepadLook;
|
|
83
|
+
private pendingTouchState;
|
|
84
|
+
private readonly touchButtons;
|
|
85
|
+
private touchMove;
|
|
86
|
+
private touchLook;
|
|
87
|
+
private readonly forwardSpeed;
|
|
88
|
+
private readonly sideSpeed;
|
|
89
|
+
private readonly upSpeed;
|
|
90
|
+
private readonly yawSpeed;
|
|
91
|
+
private readonly pitchSpeed;
|
|
92
|
+
private readonly sensitivity;
|
|
93
|
+
private readonly sensitivityX?;
|
|
94
|
+
private readonly sensitivityY?;
|
|
95
|
+
private readonly invertMouseY;
|
|
96
|
+
private readonly runByDefault;
|
|
97
|
+
private readonly requirePointerLock;
|
|
98
|
+
private readonly jumpAddsUpMove;
|
|
99
|
+
private readonly crouchAddsDownMove;
|
|
100
|
+
private readonly mouseFilter;
|
|
101
|
+
private readonly getGamepads?;
|
|
102
|
+
private readonly gamepadDeadZone;
|
|
103
|
+
private readonly gamepadLookScale;
|
|
104
|
+
private readonly invertGamepadY;
|
|
105
|
+
private sequence;
|
|
106
|
+
private impulse;
|
|
107
|
+
onInputCommand?: (cmd: UserCommand) => void;
|
|
108
|
+
constructor(options?: InputControllerOptions, bindings?: InputBindings);
|
|
109
|
+
handleKeyDown(code: string, eventTimeMs?: number): void;
|
|
110
|
+
handleKeyUp(code: string, eventTimeMs?: number): void;
|
|
111
|
+
handleMouseButtonDown(button: number, eventTimeMs?: number): void;
|
|
112
|
+
handleMouseButtonUp(button: number, eventTimeMs?: number): void;
|
|
113
|
+
handleMouseMove(deltaX: number, deltaY: number): void;
|
|
114
|
+
setPointerLocked(locked: boolean): void;
|
|
115
|
+
setGamepadState(gamepads: readonly (GamepadLike | null | undefined)[]): void;
|
|
116
|
+
setTouchState(state: TouchInputState): void;
|
|
117
|
+
bindInputSource(source: InputSource): void;
|
|
118
|
+
setKeyBinding(action: string, keys: string[]): void;
|
|
119
|
+
getBoundKeys(command: string): InputCode[];
|
|
120
|
+
getDefaultBindings(): InputBindings;
|
|
121
|
+
buildCommand(frameMsec: number, now?: number, serverFrame?: number): UserCommand;
|
|
122
|
+
consumeConsoleCommands(): readonly string[];
|
|
123
|
+
private pollGamepads;
|
|
124
|
+
private applyTouchState;
|
|
125
|
+
private applyCommand;
|
|
126
|
+
private sampleMouseDelta;
|
|
127
|
+
private collectButtonBits;
|
|
128
|
+
private lookupButton;
|
|
129
|
+
private mouseButtonToCode;
|
|
130
|
+
private mouseButtonToCommand;
|
|
131
|
+
private sample;
|
|
132
|
+
private gamepadButtonCode;
|
|
133
|
+
private touchButtonCode;
|
|
134
|
+
private clampAnalog;
|
|
135
|
+
private applyDeadZone;
|
|
136
|
+
private mergeAnalog;
|
|
137
|
+
private clampMove;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/input/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface LodModel {
|
|
2
|
+
distance: number;
|
|
3
|
+
model: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class LodRegistry {
|
|
6
|
+
private registry;
|
|
7
|
+
register(baseModel: string, lods: LodModel[]): void;
|
|
8
|
+
getLodModel(baseModel: string, distance: number): string | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare const lodRegistry: LodRegistry;
|
|
11
|
+
//# sourceMappingURL=lod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lod.d.ts","sourceRoot":"","sources":["../../src/lod.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAiC;IAEjD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAK5C,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAuBvE;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NetDriver } from '@quake2ts/shared';
|
|
2
|
+
export declare class BrowserWebSocketNetDriver implements NetDriver {
|
|
3
|
+
private socket;
|
|
4
|
+
private messageCallback;
|
|
5
|
+
private closeCallback;
|
|
6
|
+
private errorCallback;
|
|
7
|
+
connect(url: string): Promise<void>;
|
|
8
|
+
disconnect(): void;
|
|
9
|
+
send(data: Uint8Array): void;
|
|
10
|
+
onMessage(callback: (data: Uint8Array) => void): void;
|
|
11
|
+
onClose(callback: () => void): void;
|
|
12
|
+
onError(callback: (error: Error) => void): void;
|
|
13
|
+
isConnected(): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=browserWsDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserWsDriver.d.ts","sourceRoot":"","sources":["../../../src/net/browserWsDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,qBAAa,yBAA0B,YAAW,SAAS;IACzD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,aAAa,CAAyC;IAExD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyCzC,UAAU,IAAI,IAAI;IAOlB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQ5B,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIrD,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAInC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAI/C,WAAW,IAAI,OAAO;CAGvB"}
|