51 lines
1016 B
TypeScript
Raw Normal View History

2024-03-01 19:45:33 -07:00
export enum Action {
MOVE_LEFT,
MOVE_RIGHT,
MOVE_UP,
MOVE_DOWN,
RESET,
INTERACT,
}
export namespace KeyConstants {
export const KeyActions: Record<string, Action> = {
a: Action.MOVE_LEFT,
arrowleft: Action.MOVE_LEFT,
d: Action.MOVE_RIGHT,
arrowright: Action.MOVE_RIGHT,
w: Action.MOVE_UP,
arrowup: Action.MOVE_UP,
s: Action.MOVE_DOWN,
arrowdown: Action.MOVE_DOWN,
" ": Action.INTERACT,
enter: Action.INTERACT,
};
// value -> [key] from KeyActions
export const ActionKeys: Map<Action, string[]> = Object.keys(
KeyActions,
).reduce((acc: Map<Action, string[]>, key) => {
const action = KeyActions[key.toLowerCase()];
if (acc.has(action)) {
acc.get(action)!.push(key);
return acc;
}
acc.set(action, [key]);
return acc;
}, new Map());
}
2024-03-01 18:56:58 -07:00
export namespace Miscellaneous {
export const WIDTH = 800;
export const HEIGHT = 800;
export const DEFAULT_GRID_WIDTH = 30;
export const DEFAULT_GRID_HEIGHT = 30;
}