mirror of
https://ghproxy.com/https://github.com/StreakingMan/solvable-sheep-game
synced 2025-07-08 04:36:07 +08:00
28 lines
550 B
TypeScript
28 lines
550 B
TypeScript
import { ReactNode } from 'react';
|
|
|
|
export interface Icon<T = string> {
|
|
name: string;
|
|
content: ReactNode;
|
|
clickSound: T;
|
|
tripleSound: T;
|
|
}
|
|
|
|
export interface Sound<T = string> {
|
|
name: T;
|
|
src: string;
|
|
}
|
|
|
|
type Operation = 'shift' | 'undo' | 'wash';
|
|
|
|
// TODO title name 冗余
|
|
export interface Theme<SoundNames> {
|
|
title: string;
|
|
desc?: ReactNode;
|
|
name: string;
|
|
bgm?: string;
|
|
pure?: boolean;
|
|
icons: Icon<SoundNames>[];
|
|
sounds: Sound<SoundNames>[];
|
|
operateSoundMap?: Record<Operation, SoundNames>;
|
|
}
|