@bloopjs/web 0.0.31 → 0.0.33
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/App.d.ts +29 -0
- package/dist/App.d.ts.map +1 -0
- package/dist/mod.d.ts +1 -3
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +1453 -60
- package/dist/mod.js.map +5 -4
- package/package.json +3 -3
- package/src/App.ts +153 -0
- package/src/mod.ts +1 -78
package/src/mod.ts
CHANGED
|
@@ -1,78 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { type Key, mouseButtonCodeToMouseButton } from "@bloopjs/engine";
|
|
3
|
-
|
|
4
|
-
export type UnsubscribeFn = () => void;
|
|
5
|
-
|
|
6
|
-
export function connect(runtime: Runtime, draw?: () => void): UnsubscribeFn {
|
|
7
|
-
let isPaused = false;
|
|
8
|
-
let now = performance.now();
|
|
9
|
-
let frameHandle: number = -1;
|
|
10
|
-
|
|
11
|
-
const handleKeydown = (event: KeyboardEvent) => {
|
|
12
|
-
console.log("got a keydown", event.key);
|
|
13
|
-
runtime.emit.keydown(event.code as Key);
|
|
14
|
-
};
|
|
15
|
-
window.addEventListener("keydown", handleKeydown);
|
|
16
|
-
|
|
17
|
-
const handleKeyup = (event: KeyboardEvent) => {
|
|
18
|
-
runtime.emit.keyup(event.code as Key);
|
|
19
|
-
};
|
|
20
|
-
window.addEventListener("keyup", handleKeyup);
|
|
21
|
-
|
|
22
|
-
const handleMousemove = (event: MouseEvent) => {
|
|
23
|
-
runtime.emit.mousemove(event.clientX, event.clientY);
|
|
24
|
-
};
|
|
25
|
-
window.addEventListener("mousemove", handleMousemove);
|
|
26
|
-
|
|
27
|
-
const handleMousedown = (event: MouseEvent) => {
|
|
28
|
-
runtime.emit.mousedown(mouseButtonCodeToMouseButton(event.button + 1));
|
|
29
|
-
};
|
|
30
|
-
window.addEventListener("mousedown", handleMousedown);
|
|
31
|
-
|
|
32
|
-
const handleMousewheel = (event: WheelEvent) => {
|
|
33
|
-
runtime.emit.mousewheel(event.deltaX, event.deltaY);
|
|
34
|
-
};
|
|
35
|
-
window.addEventListener("wheel", handleMousewheel);
|
|
36
|
-
|
|
37
|
-
const playbarHotkeys = (event: KeyboardEvent) => {
|
|
38
|
-
const isPauseHotkey =
|
|
39
|
-
event.key === "Enter" && (event.ctrlKey || event.metaKey);
|
|
40
|
-
if (isPauseHotkey || event.key === "6") {
|
|
41
|
-
isPaused = !isPaused;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if (isPaused) {
|
|
45
|
-
switch (event.key) {
|
|
46
|
-
case ",":
|
|
47
|
-
case "5":
|
|
48
|
-
runtime.stepBack();
|
|
49
|
-
break;
|
|
50
|
-
case ".":
|
|
51
|
-
case "7":
|
|
52
|
-
runtime.step();
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
window.addEventListener("keydown", playbarHotkeys);
|
|
58
|
-
|
|
59
|
-
function frame() {
|
|
60
|
-
if (!isPaused) {
|
|
61
|
-
runtime.step(performance.now() - now);
|
|
62
|
-
}
|
|
63
|
-
now = performance.now();
|
|
64
|
-
draw?.();
|
|
65
|
-
frameHandle = requestAnimationFrame(frame);
|
|
66
|
-
}
|
|
67
|
-
frame();
|
|
68
|
-
|
|
69
|
-
return () => {
|
|
70
|
-
window.removeEventListener("keydown", handleKeydown);
|
|
71
|
-
window.removeEventListener("keyup", handleKeyup);
|
|
72
|
-
window.removeEventListener("mousemove", handleMousemove);
|
|
73
|
-
window.removeEventListener("mousedown", handleMousedown);
|
|
74
|
-
window.removeEventListener("wheel", handleMousewheel);
|
|
75
|
-
window.removeEventListener("keydown", playbarHotkeys);
|
|
76
|
-
cancelAnimationFrame(frameHandle);
|
|
77
|
-
};
|
|
78
|
-
}
|
|
1
|
+
export { App, start } from "./App.ts";
|