Release Healer Man 0.1.29

This commit is contained in:
phenom committed 2026-09-11 14:26:15 -04:00
1 parent 8c9809d3e0
commit 544c1bee91
120 files changed
+4363 -1036

No files matched your search

+10 -1
View File
@@ -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);