65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
import Clock from "services/Clock/Clock.js";
|
|
|
|
export default class DevClock extends Clock {
|
|
constructor() {
|
|
super();
|
|
|
|
window.addEventListener("keyup", e => {
|
|
if (this.timeScale) {
|
|
this.previousNonZeroTimeScale = this.timeScale;
|
|
}
|
|
switch (e.key) {
|
|
case "p":
|
|
case "P":
|
|
this.togglePause();
|
|
break;
|
|
case "1":
|
|
this.setTimeScale(1);
|
|
break;
|
|
case "2":
|
|
this.setTimeScale(2);
|
|
break;
|
|
case "3":
|
|
this.setTimeScale(3);
|
|
break;
|
|
case "8":
|
|
this.setTimeScale(0.25);
|
|
break;
|
|
case "9":
|
|
this.setTimeScale(0.5);
|
|
break;
|
|
case "0":
|
|
this.setTimeScale(1);
|
|
break;
|
|
case "ArrowLeft":
|
|
this.setTimeScale(this.previousNonZeroTimeScale * 0.5);
|
|
break;
|
|
case "ArrowRight":
|
|
this.setTimeScale(this.previousNonZeroTimeScale * 2);
|
|
break;
|
|
case "ArrowUp":
|
|
this.setTimeScale(1);
|
|
break;
|
|
case "ArrowDown":
|
|
this.setTimeScale(this.timeScale ? 0 : this.previousNonZeroTimeScale);
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
|
|
pause() {
|
|
super.pause();
|
|
console.log("Paused");
|
|
}
|
|
|
|
resume() {
|
|
super.resume();
|
|
console.log("Resumed");
|
|
}
|
|
|
|
togglePause() {
|
|
if (this.paused) this.resume();
|
|
else this.pause();
|
|
}
|
|
}
|