Release Healer Man 0.1.29
This commit is contained in:
1 parent
8c9809d3e0
commit
544c1bee91
120 files changed
+4363
-1036
No files matched your search
+10
-1
@@ -1,4 +1,5 @@
|
||||
import { Capacitor } from "@capacitor/core";
|
||||
import { controllerModifierTokens } from "./keybindRuntime";
|
||||
|
||||
export interface ControllerTokenEvent {
|
||||
token: string;
|
||||
@@ -29,6 +30,7 @@ const GAMEPAD_DISCOVERY_INTERVAL_MS = 500;
|
||||
const REPEATABLE_BUTTON_TOKENS = new Set(["Button12", "Button13", "Button14", "Button15"]);
|
||||
|
||||
const listeners = new Set<TokenListener>();
|
||||
const interceptors = new Set<(event: ControllerTokenEvent) => boolean>();
|
||||
const movementListeners = new Set<MovementListener>();
|
||||
const repeatAt = new Map<string, number>();
|
||||
const lastNativeTokenAt = new Map<string, number>();
|
||||
@@ -74,7 +76,7 @@ function tokenSetsMatch(left: ReadonlySet<string>, right: ReadonlySet<string>):
|
||||
}
|
||||
|
||||
function isLayerModifier(token: string): boolean {
|
||||
return token === "Button4" || token === "Button6";
|
||||
return controllerModifierTokens().has(token);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -106,9 +108,16 @@ export function emitControllerToken(event: ControllerTokenEvent): void {
|
||||
};
|
||||
if (normalized.pressed) heldTokens.add(normalized.token);
|
||||
else heldTokens.delete(normalized.token);
|
||||
for (const intercept of interceptors) if (intercept(normalized)) return;
|
||||
for (const listener of listeners) listener(normalized);
|
||||
}
|
||||
|
||||
export function getControllerHeldTokens(): ReadonlySet<string> { return heldTokens; }
|
||||
export function interceptControllerInput(intercept: (event: ControllerTokenEvent) => boolean): () => void {
|
||||
interceptors.add(intercept);
|
||||
return () => { interceptors.delete(intercept); };
|
||||
}
|
||||
|
||||
export function subscribeControllerToken(listener: TokenListener): () => void {
|
||||
listeners.add(listener);
|
||||
return () => listeners.delete(listener);
|
||||
|
||||
Reference in new issue
Block a user