scrcpy-mask/src/keyMappingConfig.ts

125 lines
2.3 KiB
TypeScript
Raw Normal View History

2024-05-07 12:33:19 +08:00
interface KeyBase {
note: string;
// pos relative to the mask
posX: number;
posY: number;
}
2024-05-07 12:33:19 +08:00
export interface KeySteeringWheel extends KeyBase {
type: "SteeringWheel";
pointerId: number;
key: {
left: string;
right: string;
up: string;
down: string;
};
offset: number;
}
2024-05-07 12:33:19 +08:00
export interface KeyDirectionalSkill extends KeyBase {
type: "DirectionalSkill";
pointerId: number;
key: string;
range: number;
}
2024-05-07 12:33:19 +08:00
export interface KeyDirectionlessSkill extends KeyBase {
type: "DirectionlessSkill";
pointerId: number;
key: string;
}
2024-05-07 12:33:19 +08:00
export interface KeyCancelSkill extends KeyBase {
type: "CancelSkill";
pointerId: number;
key: string;
}
2024-05-07 12:33:19 +08:00
export interface KeyTriggerWhenPressedSkill extends KeyBase {
type: "TriggerWhenPressedSkill";
pointerId: number;
key: string;
directional: boolean;
rangeOrTime: number;
}
2024-05-07 12:33:19 +08:00
export interface KeyTriggerWhenDoublePressedSkill extends KeyBase {
type: "TriggerWhenDoublePressedSkill";
pointerId: number;
key: string;
range: number;
}
2024-05-07 12:33:19 +08:00
export interface KeyObservation extends KeyBase {
type: "Observation";
pointerId: number;
key: string;
scale: number;
}
2024-05-07 12:33:19 +08:00
export interface KeyTap extends KeyBase {
type: "Tap";
pointerId: number;
2024-04-27 21:45:33 +08:00
key: string;
time: number;
}
2024-05-07 12:33:19 +08:00
export type KeyMacroList = Array<{
type: "touch" | "sleep" | "swipe" | "key-input-mode";
2024-05-07 12:33:19 +08:00
args: any[];
}> | null;
2024-05-07 12:33:19 +08:00
export interface KeyMacro extends KeyBase {
type: "Macro";
key: string;
macro: {
down: KeyMacroList;
loop: KeyMacroList;
up: KeyMacroList;
};
}
export interface KeySight extends KeyBase {
type: "Sight";
key: string;
pointerId: number;
scaleX: number;
scaleY: number;
}
export interface KeyFire extends KeyBase {
type: "Fire";
drag: boolean;
pointerId: number;
scaleX: number;
scaleY: number;
}
2024-05-07 12:33:19 +08:00
export type KeyMapping =
| KeySteeringWheel
| KeyDirectionalSkill
| KeyDirectionlessSkill
| KeyTriggerWhenPressedSkill
| KeyTriggerWhenDoublePressedSkill
| KeyObservation
2024-04-27 21:45:33 +08:00
| KeyMacro
| KeyCancelSkill
| KeyTap
| KeySight
| KeyFire;
2024-05-07 12:33:19 +08:00
export type KeyCommon = KeyMacro | KeyCancelSkill | KeyTap;
export type KeySkill =
| KeyDirectionalSkill
| KeyDirectionlessSkill
| KeyTriggerWhenPressedSkill
| KeyTriggerWhenDoublePressedSkill;
export interface KeyMappingConfig {
relativeSize: { w: number; h: number };
title: string;
list: KeyMapping[];
}