create-pixi-vn 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -1
- package/package.json +5 -4
- package/template-react-vite-muijoy/package-lock.json +4 -4
- package/template-react-vite-muijoy/package.json +1 -1
- package/template-react-vite-muijoy/src/assets/ink-manifest.gen.json +1 -0
- package/template-react-vite-muijoy/src/components/menus/main-menu.tsx +1 -2
- package/template-react-vite-muijoy/src/content/labels/start.label.ts +2 -4
- package/template-react-vite-muijoy/src/pixi-vn-keys.gen.d.ts +20 -0
- package/template-react-vite-muijoy/vite.config.ts +1 -0
- package/template-react-vite-muijoy-ink/package-lock.json +3 -3
- package/template-react-vite-muijoy-ink/package.json +2 -2
- package/template-react-vite-muijoy-ink/src/pixi-vn-keys.gen.d.ts +22 -0
- package/template-react-vite-muijoy-ink/vite.config.ts +1 -0
- package/template-react-vite-muijoy-ink-tauri/package-lock.json +3 -3
- package/template-react-vite-muijoy-ink-tauri/package.json +2 -2
- package/template-react-vite-muijoy-ink-tauri/src/pixi-vn-keys.gen.d.ts +22 -0
- package/template-react-vite-muijoy-ink-tauri/vite.config.ts +1 -0
- package/template-react-vite-muijoy-tauri/package-lock.json +4 -4
- package/template-react-vite-muijoy-tauri/package.json +1 -1
- package/template-react-vite-muijoy-tauri/src/assets/ink-manifest.gen.json +1 -0
- package/template-react-vite-muijoy-tauri/src/components/menus/main-menu.tsx +1 -2
- package/template-react-vite-muijoy-tauri/src/content/labels/start.label.ts +2 -4
- package/template-react-vite-muijoy-tauri/src/pixi-vn-keys.gen.d.ts +20 -0
- package/template-react-vite-muijoy-tauri/vite.config.ts +1 -0
- package/template-react-vite-muijoy-electron/.eslintrc.cjs +0 -29
- package/template-react-vite-muijoy-electron/.vscode/extensions.json +0 -9
- package/template-react-vite-muijoy-electron/.vscode/launch.json +0 -32
- package/template-react-vite-muijoy-electron/.vscode/settings.json +0 -49
- package/template-react-vite-muijoy-electron/README.md +0 -207
- package/template-react-vite-muijoy-electron/_gitignore +0 -107
- package/template-react-vite-muijoy-electron/forge.config.cts +0 -73
- package/template-react-vite-muijoy-electron/forge.env.d.ts +0 -1
- package/template-react-vite-muijoy-electron/index.html +0 -13
- package/template-react-vite-muijoy-electron/ionic.config.json +0 -7
- package/template-react-vite-muijoy-electron/package-lock.json +0 -16984
- package/template-react-vite-muijoy-electron/package.json +0 -85
- package/template-react-vite-muijoy-electron/public/apple-touch-icon.png +0 -0
- package/template-react-vite-muijoy-electron/public/favicon.ico +0 -0
- package/template-react-vite-muijoy-electron/public/mask-icon.svg +0 -890
- package/template-react-vite-muijoy-electron/public/pixi-vn.svg +0 -23
- package/template-react-vite-muijoy-electron/public/pwa-192x192.png +0 -0
- package/template-react-vite-muijoy-electron/public/pwa-512x512.png +0 -0
- package/template-react-vite-muijoy-electron/public/robots.txt +0 -3
- package/template-react-vite-muijoy-electron/src/App.css +0 -42
- package/template-react-vite-muijoy-electron/src/App.tsx +0 -16
- package/template-react-vite-muijoy-electron/src/AppRoutes.tsx +0 -66
- package/template-react-vite-muijoy-electron/src/Home.tsx +0 -27
- package/template-react-vite-muijoy-electron/src/Imports.tsx +0 -34
- package/template-react-vite-muijoy-electron/src/atoms/autoInfoState.ts +0 -50
- package/template-react-vite-muijoy-electron/src/atoms/dialogueCardHeightState.ts +0 -23
- package/template-react-vite-muijoy-electron/src/atoms/dialogueCardImageWidthState.ts +0 -23
- package/template-react-vite-muijoy-electron/src/atoms/hideInterfaceState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/nextStepLoadingState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/openGameSaveScreenState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/openHistoryScreenState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/openSettingsState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/saveLoadAlertState.ts +0 -26
- package/template-react-vite-muijoy-electron/src/atoms/saveScreenPageState.ts +0 -23
- package/template-react-vite-muijoy-electron/src/atoms/skipEnabledState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/atoms/typewriterDelayState.ts +0 -23
- package/template-react-vite-muijoy-electron/src/atoms/typewriterIsAnimatedState.ts +0 -6
- package/template-react-vite-muijoy-electron/src/components/ChoiceButton.tsx +0 -19
- package/template-react-vite-muijoy-electron/src/components/DragHandleDivider.tsx +0 -40
- package/template-react-vite-muijoy-electron/src/components/MenuButton.tsx +0 -37
- package/template-react-vite-muijoy-electron/src/components/ModalConfirmation.tsx +0 -70
- package/template-react-vite-muijoy-electron/src/components/ModalDialog.tsx +0 -103
- package/template-react-vite-muijoy-electron/src/components/NextButton.tsx +0 -94
- package/template-react-vite-muijoy-electron/src/components/SettingButton.tsx +0 -44
- package/template-react-vite-muijoy-electron/src/components/SliderResizer.tsx +0 -53
- package/template-react-vite-muijoy-electron/src/components/TextMenuButton.tsx +0 -41
- package/template-react-vite-muijoy-electron/src/components/Typewriter.tsx +0 -335
- package/template-react-vite-muijoy-electron/src/components/TypographyShadow.tsx +0 -15
- package/template-react-vite-muijoy-electron/src/i18n.ts +0 -29
- package/template-react-vite-muijoy-electron/src/index.css +0 -9
- package/template-react-vite-muijoy-electron/src/interceptors/EventInterceptor.tsx +0 -49
- package/template-react-vite-muijoy-electron/src/interceptors/SkipAutoInterceptor.tsx +0 -67
- package/template-react-vite-muijoy-electron/src/main.tsx +0 -39
- package/template-react-vite-muijoy-electron/src/models/Character.ts +0 -86
- package/template-react-vite-muijoy-electron/src/models/GameSaveData.ts +0 -9
- package/template-react-vite-muijoy-electron/src/pixi-vn.d.ts +0 -36
- package/template-react-vite-muijoy-electron/src/providers/ThemeProvider.tsx +0 -165
- package/template-react-vite-muijoy-electron/src/screens/ChoiceMenu.tsx +0 -130
- package/template-react-vite-muijoy-electron/src/screens/GameSaveScreen.tsx +0 -274
- package/template-react-vite-muijoy-electron/src/screens/HistoryScreen.tsx +0 -155
- package/template-react-vite-muijoy-electron/src/screens/LoadingScreen.tsx +0 -40
- package/template-react-vite-muijoy-electron/src/screens/MainMenu.tsx +0 -98
- package/template-react-vite-muijoy-electron/src/screens/NarrationScreen.tsx +0 -220
- package/template-react-vite-muijoy-electron/src/screens/QuickTools.tsx +0 -168
- package/template-react-vite-muijoy-electron/src/screens/Settings.tsx +0 -536
- package/template-react-vite-muijoy-electron/src/screens/modals/SaveLoadAlert.tsx +0 -135
- package/template-react-vite-muijoy-electron/src/screens/modals/TextInput.tsx +0 -61
- package/template-react-vite-muijoy-electron/src/use_query/useQueryInterface.ts +0 -73
- package/template-react-vite-muijoy-electron/src/use_query/useQueryLastSave.ts +0 -18
- package/template-react-vite-muijoy-electron/src/use_query/useQuerySaves.ts +0 -18
- package/template-react-vite-muijoy-electron/src/utilities/actions-utility.ts +0 -10
- package/template-react-vite-muijoy-electron/src/utilities/component-utility.ts +0 -25
- package/template-react-vite-muijoy-electron/src/utilities/indexedDB-utility.ts +0 -196
- package/template-react-vite-muijoy-electron/src/utilities/navigate-utility.ts +0 -18
- package/template-react-vite-muijoy-electron/src/utilities/save-utility.ts +0 -125
- package/template-react-vite-muijoy-electron/src/values/characters.ts +0 -11
- package/template-react-vite-muijoy-electron/src/values/translations/strings_en.json +0 -60
- package/template-react-vite-muijoy-electron/src/vite-env.d.ts +0 -4
- package/template-react-vite-muijoy-electron/src-electron/icons/icon.icns +0 -0
- package/template-react-vite-muijoy-electron/src-electron/icons/icon.ico +0 -0
- package/template-react-vite-muijoy-electron/src-electron/icons/icon.png +0 -0
- package/template-react-vite-muijoy-electron/src-electron/index.css +0 -7
- package/template-react-vite-muijoy-electron/src-electron/main.ts +0 -59
- package/template-react-vite-muijoy-electron/src-electron/preload.ts +0 -2
- package/template-react-vite-muijoy-electron/src-electron/renderer.ts +0 -31
- package/template-react-vite-muijoy-electron/tsconfig.json +0 -32
- package/template-react-vite-muijoy-electron/tsconfig.node.json +0 -11
- package/template-react-vite-muijoy-electron/vite.base.config.ts +0 -93
- package/template-react-vite-muijoy-electron/vite.config.ts +0 -54
- package/template-react-vite-muijoy-electron/vite.main.config.ts +0 -9
- package/template-react-vite-muijoy-electron/vite.preload.config.ts +0 -9
- package/template-react-vite-muijoy-electron/vite.renderer.config.ts +0 -9
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32">
|
|
3
|
-
<path d="M0,0 L9,0 L9,1 L11,1 L11,2 L12,2 L12,3 L13,3 L13,4 L14,4 L14,5 L15,5 L15,6 L16,6 L16,8 L17,8 L17,11 L18,11 L18,16 L19,16 L19,24 L18,24 L18,26 L16,26 L16,27 L15,27 L15,28 L10,28 L10,29 L9,29 L9,30 L7,30 L7,31 L3,31 L3,30 L-1,30 L-1,29 L-2,29 L-2,30 L-3,30 L-3,29 L-5,29 L-5,30 L-4,30 L-4,32 L-6,32 L-6,31 L-8,31 L-8,29 L-9,29 L-9,30 L-11,30 L-11,29 L-12,29 L-12,24 L-13,24 L-13,19 L-12,19 L-12,16 L-11,16 L-11,14 L-10,14 L-10,8 L-9,8 L-9,6 L-8,6 L-8,5 L-7,5 L-7,4 L-6,4 L-6,3 L-4,3 L-4,2 L-2,2 L-2,1 L0,1 Z " fill="#464049" transform="translate(13,0)"/>
|
|
4
|
-
<path d="M0,0 L9,0 L9,1 L11,1 L11,2 L12,2 L12,3 L13,3 L13,4 L14,4 L14,5 L15,5 L15,6 L16,6 L16,8 L17,8 L17,24 L16,24 L16,25 L14,25 L14,24 L13,24 L13,25 L12,25 L12,26 L8,26 L8,25 L9,25 L9,23 L11,23 L11,22 L12,22 L12,21 L13,21 L13,18 L10,18 L10,9 L11,9 L11,6 L10,6 L10,5 L6,5 L6,6 L4,6 L4,4 L3,4 L3,5 L1,5 L1,4 L0,4 L0,3 L-1,3 L-1,2 L0,2 Z " fill="#242229" transform="translate(13,0)"/>
|
|
5
|
-
<path d="M0,0 L3,0 L3,5 L5,5 L5,6 L6,6 L6,7 L10,7 L10,8 L9,8 L9,12 L0,12 L0,18 L-1,18 L-1,24 L-3,24 L-3,25 L-5,25 L-5,24 L-6,24 L-6,19 L-7,19 L-7,14 L-6,14 L-6,11 L-5,11 L-5,9 L-4,9 L-4,6 L-3,6 L-3,5 L-2,5 L-2,3 L-1,3 L-1,1 L0,1 Z " fill="#130E16" transform="translate(7,5)"/>
|
|
6
|
-
<path d="M0,0 L2,0 L2,2 L4,2 L4,4 L3,4 L3,5 L4,5 L4,10 L3,10 L3,14 L2,14 L2,16 L1,16 L1,17 L0,17 L0,16 L-4,16 L-4,15 L-5,15 L-5,16 L-6,16 L-6,15 L-8,15 L-8,16 L-7,16 L-7,18 L-9,18 L-9,17 L-11,17 L-11,15 L-10,15 L-10,9 L-9,9 L-9,3 L0,3 Z " fill="#594F5D" transform="translate(16,14)"/>
|
|
7
|
-
<path d="M0,0 L6,0 L6,1 L8,1 L8,2 L10,2 L10,7 L8,7 L8,8 L6,8 L6,9 L2,9 L2,8 L4,8 L4,6 L1,6 L1,7 L0,7 L0,6 L-1,6 L-1,1 L0,1 Z " fill="#F8C4C1" transform="translate(9,18)"/>
|
|
8
|
-
<path d="M0,0 L1,0 L1,5 L2,5 L2,13 L1,13 L1,15 L-1,15 L-1,16 L-2,16 L-2,17 L-7,17 L-7,18 L-8,18 L-8,19 L-10,19 L-10,20 L-13,20 L-13,19 L-12,19 L-12,17 L-11,17 L-11,13 L-10,13 L-10,11 L-9,11 L-9,9 L-8,9 L-8,14 L-9,14 L-9,15 L-5,15 L-5,14 L-4,14 L-4,13 L-3,13 L-3,14 L-1,14 L-1,13 L0,13 Z " fill="#3B353F" transform="translate(30,11)"/>
|
|
9
|
-
<path d="M0,0 L1,0 L1,2 L0,2 L0,4 L-1,4 L-1,9 L-2,9 L-2,11 L-3,11 L-3,23 L-2,23 L-2,24 L-3,24 L-3,25 L-5,25 L-5,24 L-6,24 L-6,19 L-7,19 L-7,14 L-6,14 L-6,11 L-5,11 L-5,9 L-4,9 L-4,6 L-3,6 L-3,5 L-2,5 L-2,3 L-1,3 L-1,1 L0,1 Z " fill="#191E2C" transform="translate(7,5)"/>
|
|
10
|
-
<path d="M0,0 L8,0 L8,1 L10,1 L10,7 L13,7 L13,10 L12,10 L12,11 L11,11 L11,12 L9,12 L9,9 L8,9 L8,11 L7,11 L7,8 L6,8 L6,7 L7,7 L7,5 L5,5 L5,3 L3,3 L3,2 L4,2 L4,1 L0,1 Z " fill="#563F42" transform="translate(13,11)"/>
|
|
11
|
-
<path d="M0,0 L1,0 L1,13 L-1,13 L-1,12 L-2,12 L-2,13 L-3,13 L-3,14 L-7,14 L-7,13 L-6,13 L-6,11 L-4,11 L-4,10 L-3,10 L-3,9 L-2,9 L-2,6 L-1,6 L-1,5 L0,5 Z " fill="#15131A" transform="translate(28,12)"/>
|
|
12
|
-
<path d="M0,0 L2,0 L2,2 L4,2 L4,4 L3,4 L3,5 L4,5 L4,10 L3,10 L3,6 L1,6 L1,5 L-1,5 L-1,4 L-7,4 L-7,5 L-8,5 L-8,8 L-9,8 L-9,3 L0,3 Z " fill="#946F75" transform="translate(16,14)"/>
|
|
13
|
-
<path d="M0,0 L1,0 L1,3 L2,3 L2,9 L1,9 L1,15 L0,15 L0,14 L-1,14 L-1,2 L0,2 Z " fill="#1B1823" transform="translate(5,14)"/>
|
|
14
|
-
<path d="M0,0 L2,0 L2,3 L1,3 L1,5 L0,5 L0,6 L-1,6 L-1,5 L-5,5 L-5,4 L-6,4 L-6,5 L-7,5 L-7,1 L-6,1 L-6,2 L-2,2 L-2,1 L0,1 Z " fill="#967178" transform="translate(17,25)"/>
|
|
15
|
-
<path d="M0,0 L1,0 L1,6 L2,6 L2,7 L3,7 L3,10 L4,10 L4,11 L3,11 L3,12 L1,12 L1,11 L0,11 L0,6 L-1,6 L-1,1 L0,1 Z " fill="#4C4E57" transform="translate(1,18)"/>
|
|
16
|
-
<path d="M0,0 L1,0 L1,1 L5,1 L5,2 L9,2 L9,3 L7,3 L7,4 L2,4 L2,6 L1,6 L1,5 L0,5 Z " fill="#453B44" transform="translate(11,5)"/>
|
|
17
|
-
<path d="M0,0 L3,0 L3,6 L1,6 L1,7 L0,7 L0,6 L-1,6 L-1,1 L0,1 Z " fill="#E1A9A9" transform="translate(9,18)"/>
|
|
18
|
-
<path d="M0,0 L1,0 L1,3 L5,3 L5,4 L6,4 L6,2 L7,2 L7,5 L-1,5 L-1,1 L0,1 Z " fill="#4D363A" transform="translate(9,12)"/>
|
|
19
|
-
<path d="M0,0 L1,0 L1,1 L2,1 L2,2 L6,2 L6,3 L5,3 L5,4 L4,4 L4,6 L3,6 L3,5 L-1,5 L-1,3 L0,3 Z " fill="#271D24" transform="translate(11,10)"/>
|
|
20
|
-
<path d="M0,0 L8,0 L8,1 L10,1 L10,2 L9,2 L9,3 L8,3 L8,2 L6,2 L6,5 L5,5 L5,3 L3,3 L3,2 L4,2 L4,1 L0,1 Z " fill="#41353B" transform="translate(13,11)"/>
|
|
21
|
-
<path d="M0,0 L2,0 L2,3 L-3,3 L-3,4 L-7,4 L-7,2 L-2,2 L-2,1 L0,1 Z " fill="#705862" transform="translate(20,7)"/>
|
|
22
|
-
<path d="M0,0 L3,0 L3,6 L0,6 Z " fill="#FDE0DC" transform="translate(12,18)"/>
|
|
23
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#root {
|
|
2
|
-
max-width: 1280px;
|
|
3
|
-
margin: 0 auto;
|
|
4
|
-
padding: 2rem;
|
|
5
|
-
text-align: center;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.logo {
|
|
9
|
-
height: 6em;
|
|
10
|
-
padding: 1.5em;
|
|
11
|
-
will-change: filter;
|
|
12
|
-
transition: filter 300ms;
|
|
13
|
-
}
|
|
14
|
-
.logo:hover {
|
|
15
|
-
filter: drop-shadow(0 0 2em #646cffaa);
|
|
16
|
-
}
|
|
17
|
-
.logo.react:hover {
|
|
18
|
-
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@keyframes logo-spin {
|
|
22
|
-
from {
|
|
23
|
-
transform: rotate(0deg);
|
|
24
|
-
}
|
|
25
|
-
to {
|
|
26
|
-
transform: rotate(360deg);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
31
|
-
a:nth-of-type(2) .logo {
|
|
32
|
-
animation: logo-spin infinite 20s linear;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.card {
|
|
37
|
-
padding: 2em;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.read-the-docs {
|
|
41
|
-
color: #888;
|
|
42
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { lazy, Suspense } from "react";
|
|
2
|
-
import { ErrorBoundary } from "react-error-boundary";
|
|
3
|
-
import LoadingScreen from "./screens/LoadingScreen";
|
|
4
|
-
|
|
5
|
-
export default function App() {
|
|
6
|
-
const Home = lazy(async () => import('./Home'))
|
|
7
|
-
return (
|
|
8
|
-
<ErrorBoundary fallback={<div>Something went wrong</div>}>
|
|
9
|
-
<Suspense
|
|
10
|
-
fallback={<LoadingScreen />}
|
|
11
|
-
>
|
|
12
|
-
<Home />
|
|
13
|
-
</Suspense>
|
|
14
|
-
</ErrorBoundary >
|
|
15
|
-
)
|
|
16
|
-
}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { narration } from '@drincs/pixi-vn';
|
|
2
|
-
import { StepLabelProps } from '@drincs/pixi-vn/dist/override';
|
|
3
|
-
import { useQueryClient } from '@tanstack/react-query';
|
|
4
|
-
import { Route, Routes } from 'react-router-dom';
|
|
5
|
-
import { useSetRecoilState } from 'recoil';
|
|
6
|
-
import { nextStepLoadingState } from './atoms/nextStepLoadingState';
|
|
7
|
-
import NextButton from './components/NextButton';
|
|
8
|
-
import SkipAutoInterceptor from './interceptors/SkipAutoInterceptor';
|
|
9
|
-
import HistoryScreen from './screens/HistoryScreen';
|
|
10
|
-
import LoadingScreen from './screens/LoadingScreen';
|
|
11
|
-
import MainMenu from './screens/MainMenu';
|
|
12
|
-
import TextInput from './screens/modals/TextInput';
|
|
13
|
-
import NarrationScreen from './screens/NarrationScreen';
|
|
14
|
-
import QuickTools from './screens/QuickTools';
|
|
15
|
-
import { INTERFACE_DATA_USE_QUEY_KEY } from './use_query/useQueryInterface';
|
|
16
|
-
|
|
17
|
-
export default function AppRoutes() {
|
|
18
|
-
const setNextStepLoading = useSetRecoilState(nextStepLoadingState);
|
|
19
|
-
const queryClient = useQueryClient()
|
|
20
|
-
|
|
21
|
-
async function nextOnClick(props: StepLabelProps): Promise<void> {
|
|
22
|
-
setNextStepLoading(true);
|
|
23
|
-
try {
|
|
24
|
-
if (!narration.canGoNext) {
|
|
25
|
-
setNextStepLoading(false);
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
narration.goNext(props)
|
|
29
|
-
.then(() => {
|
|
30
|
-
queryClient.invalidateQueries({ queryKey: [INTERFACE_DATA_USE_QUEY_KEY] })
|
|
31
|
-
setNextStepLoading(false);
|
|
32
|
-
})
|
|
33
|
-
.catch((e) => {
|
|
34
|
-
setNextStepLoading(false);
|
|
35
|
-
console.error(e);
|
|
36
|
-
})
|
|
37
|
-
return;
|
|
38
|
-
} catch (e) {
|
|
39
|
-
setNextStepLoading(false);
|
|
40
|
-
console.error(e);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<Routes>
|
|
47
|
-
<Route key={"main_menu"} path={"/"} element={<MainMenu />} />
|
|
48
|
-
<Route key={"main_menu"} path={"/loading"} element={<LoadingScreen />} />
|
|
49
|
-
<Route key={"narration"} path={"/narration"}
|
|
50
|
-
element={<>
|
|
51
|
-
<HistoryScreen />
|
|
52
|
-
<QuickTools />
|
|
53
|
-
<NarrationScreen />
|
|
54
|
-
<SkipAutoInterceptor
|
|
55
|
-
nextOnClick={nextOnClick}
|
|
56
|
-
/>
|
|
57
|
-
<TextInput />
|
|
58
|
-
<NextButton
|
|
59
|
-
nextOnClick={nextOnClick}
|
|
60
|
-
/>
|
|
61
|
-
</>}
|
|
62
|
-
/>
|
|
63
|
-
<Route path="*" element={<MainMenu />} />
|
|
64
|
-
</Routes>
|
|
65
|
-
)
|
|
66
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Box } from '@mui/joy';
|
|
2
|
-
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
|
3
|
-
import Routes from './AppRoutes';
|
|
4
|
-
import ApImports from './Imports';
|
|
5
|
-
import EventInterceptor from './interceptors/EventInterceptor';
|
|
6
|
-
import GameSaveScreen from './screens/GameSaveScreen';
|
|
7
|
-
import SaveLoadAlert from './screens/modals/SaveLoadAlert';
|
|
8
|
-
import Settings from './screens/Settings';
|
|
9
|
-
|
|
10
|
-
export default function Home() {
|
|
11
|
-
return (
|
|
12
|
-
<ApImports>
|
|
13
|
-
<Routes />
|
|
14
|
-
<Settings />
|
|
15
|
-
<GameSaveScreen />
|
|
16
|
-
<SaveLoadAlert />
|
|
17
|
-
<EventInterceptor />
|
|
18
|
-
<Box
|
|
19
|
-
sx={{
|
|
20
|
-
pointerEvents: "auto",
|
|
21
|
-
}}
|
|
22
|
-
>
|
|
23
|
-
<ReactQueryDevtools initialIsOpen={false} />
|
|
24
|
-
</Box>
|
|
25
|
-
</ApImports>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
2
|
-
import { SnackbarProvider } from 'notistack';
|
|
3
|
-
import { HashRouter } from 'react-router-dom';
|
|
4
|
-
import { RecoilRoot } from 'recoil';
|
|
5
|
-
import { useI18n } from './i18n';
|
|
6
|
-
import MyThemeProvider from './providers/ThemeProvider';
|
|
7
|
-
|
|
8
|
-
type Iprops = {
|
|
9
|
-
children: React.ReactNode
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export default function Imports(props: Iprops) {
|
|
13
|
-
useI18n()
|
|
14
|
-
const queryClient = new QueryClient()
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<HashRouter>
|
|
18
|
-
<RecoilRoot>
|
|
19
|
-
<QueryClientProvider client={queryClient}>
|
|
20
|
-
<MyThemeProvider>
|
|
21
|
-
<SnackbarProvider
|
|
22
|
-
anchorOrigin={{
|
|
23
|
-
vertical: 'top',
|
|
24
|
-
horizontal: 'left',
|
|
25
|
-
}}
|
|
26
|
-
>
|
|
27
|
-
{props.children}
|
|
28
|
-
</SnackbarProvider>
|
|
29
|
-
</MyThemeProvider>
|
|
30
|
-
</QueryClientProvider>
|
|
31
|
-
</RecoilRoot>
|
|
32
|
-
</HashRouter>
|
|
33
|
-
);
|
|
34
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { atom, selector } from "recoil";
|
|
2
|
-
|
|
3
|
-
type AutoInfo = {
|
|
4
|
-
/**
|
|
5
|
-
* Whether auto forward is enabled
|
|
6
|
-
*/
|
|
7
|
-
enabled: boolean,
|
|
8
|
-
/**
|
|
9
|
-
* Time in seconds to wait before auto forwarding
|
|
10
|
-
*/
|
|
11
|
-
time: number,
|
|
12
|
-
/**
|
|
13
|
-
* Force recheck the auto forward
|
|
14
|
-
*/
|
|
15
|
-
update: number,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
const autoInfoAtomState = atom<AutoInfo>({
|
|
19
|
-
key: 'autoInfoAtomState',
|
|
20
|
-
default: {
|
|
21
|
-
enabled: false,
|
|
22
|
-
time: 1,
|
|
23
|
-
update: 0,
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
export const autoInfoState = selector<AutoInfo>({
|
|
28
|
-
key: 'autoInfoState',
|
|
29
|
-
get: ({ get }) => {
|
|
30
|
-
let time: number | undefined = undefined
|
|
31
|
-
try {
|
|
32
|
-
let v = localStorage.getItem("auto_forward_second")
|
|
33
|
-
if (v) {
|
|
34
|
-
time = parseInt(v)
|
|
35
|
-
}
|
|
36
|
-
} catch (e) { }
|
|
37
|
-
|
|
38
|
-
let info = get(autoInfoAtomState)
|
|
39
|
-
return {
|
|
40
|
-
...info,
|
|
41
|
-
time: time || info.time,
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
set: ({ set }, value) => {
|
|
45
|
-
if (value.hasOwnProperty("time")) {
|
|
46
|
-
localStorage.setItem("auto_forward_second", (value as AutoInfo).time.toString())
|
|
47
|
-
}
|
|
48
|
-
set(autoInfoAtomState, value)
|
|
49
|
-
},
|
|
50
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { atom, selector } from "recoil";
|
|
2
|
-
|
|
3
|
-
const dialogueCardHeightAtomState = atom<number>({
|
|
4
|
-
key: 'dialogueCardHeightAtomState',
|
|
5
|
-
default: localStorage.getItem("dialogue_card_height") ? parseInt(localStorage.getItem("dialogue_card_height") as string) : 30,
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export const dialogueCardHeightState = selector<number>({
|
|
9
|
-
key: 'dialogueCardHeightState',
|
|
10
|
-
get: ({ get }) => {
|
|
11
|
-
return get(dialogueCardHeightAtomState)
|
|
12
|
-
},
|
|
13
|
-
set: ({ set }, value) => {
|
|
14
|
-
if (typeof value === "number") {
|
|
15
|
-
let valueString = value.toString()
|
|
16
|
-
localStorage.setItem("dialogue_card_height", valueString)
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
localStorage.removeItem("dialogue_card_height")
|
|
20
|
-
}
|
|
21
|
-
set(dialogueCardHeightAtomState, value)
|
|
22
|
-
},
|
|
23
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { atom, selector } from "recoil";
|
|
2
|
-
|
|
3
|
-
const dialogueCardImageWidthAtomState = atom<number>({
|
|
4
|
-
key: 'dialogueCardImageWidthAtomState',
|
|
5
|
-
default: localStorage.getItem("dialogue_card_image_width") ? parseInt(localStorage.getItem("dialogue_card_image_width") as string) : 16,
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export const dialogueCardImageWidthState = selector<number>({
|
|
9
|
-
key: 'dialogueCardImageWidthState',
|
|
10
|
-
get: ({ get }) => {
|
|
11
|
-
return get(dialogueCardImageWidthAtomState)
|
|
12
|
-
},
|
|
13
|
-
set: ({ set }, value) => {
|
|
14
|
-
if (typeof value === "number") {
|
|
15
|
-
let valueString = value.toString()
|
|
16
|
-
localStorage.setItem("dialogue_card_image_width", valueString)
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
localStorage.removeItem("dialogue_card_image_width")
|
|
20
|
-
}
|
|
21
|
-
set(dialogueCardImageWidthAtomState, value)
|
|
22
|
-
},
|
|
23
|
-
});
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { atom } from "recoil";
|
|
2
|
-
import GameSaveData from "../models/GameSaveData";
|
|
3
|
-
|
|
4
|
-
export const saveLoadAlertState = atom<{
|
|
5
|
-
open: false;
|
|
6
|
-
data?: any;
|
|
7
|
-
type?: string;
|
|
8
|
-
deafultName?: string;
|
|
9
|
-
} | {
|
|
10
|
-
open: true;
|
|
11
|
-
data: GameSaveData & { id: number };
|
|
12
|
-
type: 'load';
|
|
13
|
-
} | {
|
|
14
|
-
open: true;
|
|
15
|
-
data: number;
|
|
16
|
-
type: 'overwrite_save' | 'save';
|
|
17
|
-
deafultName: string;
|
|
18
|
-
} | {
|
|
19
|
-
open: true;
|
|
20
|
-
data: number;
|
|
21
|
-
type: 'delete';
|
|
22
|
-
}
|
|
23
|
-
>({
|
|
24
|
-
key: 'saveLoadAlertState',
|
|
25
|
-
default: { open: false },
|
|
26
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { atom, selector } from "recoil";
|
|
2
|
-
|
|
3
|
-
const saveScreenPageAtomState = atom<number>({
|
|
4
|
-
key: 'saveScreenPageAtomState',
|
|
5
|
-
default: localStorage.getItem("save_screen_page") ? parseInt(localStorage.getItem("save_screen_page") as string) : 0,
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export const saveScreenPageState = selector<number>({
|
|
9
|
-
key: 'saveScreenPageState',
|
|
10
|
-
get: ({ get }) => {
|
|
11
|
-
return get(saveScreenPageAtomState)
|
|
12
|
-
},
|
|
13
|
-
set: ({ set }, value) => {
|
|
14
|
-
if (typeof value === "number") {
|
|
15
|
-
let valueString = value.toString()
|
|
16
|
-
localStorage.setItem("save_screen_page", valueString)
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
localStorage.removeItem("save_screen_page")
|
|
20
|
-
}
|
|
21
|
-
set(saveScreenPageAtomState, value)
|
|
22
|
-
},
|
|
23
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { atom, selector } from "recoil";
|
|
2
|
-
|
|
3
|
-
export const typewriterDelayAtomState = atom<number>({
|
|
4
|
-
key: 'typewriterDelayAtomState',
|
|
5
|
-
default: localStorage.getItem('typewriter_delay_millisecond') ? parseInt(localStorage.getItem('typewriter_delay_millisecond')!) : 10,
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export const typewriterDelayState = selector<number>({
|
|
9
|
-
key: 'typewriterDelayState',
|
|
10
|
-
get: ({ get }) => {
|
|
11
|
-
return get(typewriterDelayAtomState)
|
|
12
|
-
},
|
|
13
|
-
set: ({ set }, value) => {
|
|
14
|
-
if (typeof value === "number") {
|
|
15
|
-
let valueString = value.toString()
|
|
16
|
-
localStorage.setItem("typewriter_delay_millisecond", valueString)
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
localStorage.removeItem("typewriter_delay_millisecond")
|
|
20
|
-
}
|
|
21
|
-
set(typewriterDelayAtomState, value)
|
|
22
|
-
},
|
|
23
|
-
});
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Button, ButtonProps, ButtonTypeMap } from "@mui/joy";
|
|
2
|
-
|
|
3
|
-
interface Props extends ButtonProps<ButtonTypeMap['defaultComponent'], {
|
|
4
|
-
component?: React.ElementType;
|
|
5
|
-
}> { }
|
|
6
|
-
|
|
7
|
-
export default function ChoiceButton(props: Props) {
|
|
8
|
-
const {
|
|
9
|
-
sx,
|
|
10
|
-
...rest
|
|
11
|
-
} = props;
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<Button
|
|
15
|
-
size="sm"
|
|
16
|
-
{...rest}
|
|
17
|
-
/>
|
|
18
|
-
);
|
|
19
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import DragHandleIcon from '@mui/icons-material/DragHandle';
|
|
2
|
-
import { Divider, DividerProps, DividerTypeMap, useTheme } from "@mui/joy";
|
|
3
|
-
|
|
4
|
-
interface DragHandleDividerProps extends DividerProps<DividerTypeMap['defaultComponent'], {
|
|
5
|
-
component?: React.ElementType;
|
|
6
|
-
}> {
|
|
7
|
-
onMouseDown: React.MouseEventHandler<any>
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default function DragHandleDivider(props: DragHandleDividerProps) {
|
|
11
|
-
const {
|
|
12
|
-
onMouseDown,
|
|
13
|
-
orientation,
|
|
14
|
-
...rest
|
|
15
|
-
} = props;
|
|
16
|
-
|
|
17
|
-
return (
|
|
18
|
-
<Divider
|
|
19
|
-
orientation={orientation}
|
|
20
|
-
{...rest}
|
|
21
|
-
>
|
|
22
|
-
<DragHandleIcon
|
|
23
|
-
sx={{
|
|
24
|
-
cursor: orientation === "vertical" ? "col-resize" : "row-resize",
|
|
25
|
-
zIndex: 100,
|
|
26
|
-
backgroundColor: useTheme().palette.neutral[300],
|
|
27
|
-
":hover": {
|
|
28
|
-
backgroundColor: useTheme().palette.neutral[200],
|
|
29
|
-
},
|
|
30
|
-
borderRadius: 2,
|
|
31
|
-
height: 13,
|
|
32
|
-
width: 40,
|
|
33
|
-
transform: orientation === "vertical" ? "rotate(90deg)" : undefined,
|
|
34
|
-
color: useTheme().palette.neutral[700],
|
|
35
|
-
}}
|
|
36
|
-
onMouseDown={onMouseDown}
|
|
37
|
-
/>
|
|
38
|
-
</Divider>
|
|
39
|
-
);
|
|
40
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Button, ButtonProps, ButtonTypeMap } from "@mui/joy";
|
|
2
|
-
import { motion, Variants } from "motion/react";
|
|
3
|
-
|
|
4
|
-
interface MenuButtonProps extends ButtonProps<ButtonTypeMap['defaultComponent'], {
|
|
5
|
-
component?: React.ElementType;
|
|
6
|
-
}> {
|
|
7
|
-
transitionDelay?: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default function MenuButton(props: MenuButtonProps) {
|
|
11
|
-
const {
|
|
12
|
-
sx,
|
|
13
|
-
transitionDelay,
|
|
14
|
-
...rest
|
|
15
|
-
} = props;
|
|
16
|
-
const itemVariants: Variants = {
|
|
17
|
-
open: {
|
|
18
|
-
opacity: 1,
|
|
19
|
-
x: 0,
|
|
20
|
-
transition: { type: "spring", stiffness: 300, damping: 24, delay: transitionDelay }
|
|
21
|
-
},
|
|
22
|
-
closed: { opacity: 0, x: -50, transition: { duration: 0.2 } }
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<Button
|
|
27
|
-
size="sm"
|
|
28
|
-
sx={{
|
|
29
|
-
fontSize: { xs: "0.75rem", sm: "0.75rem", md: "1rem", lg: "1.25rem", xl: "1.5rem" },
|
|
30
|
-
...sx
|
|
31
|
-
}}
|
|
32
|
-
component={motion.div}
|
|
33
|
-
variants={itemVariants}
|
|
34
|
-
{...rest}
|
|
35
|
-
/>
|
|
36
|
-
);
|
|
37
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Button } from '@mui/joy';
|
|
2
|
-
import { ReactNode, useState } from 'react';
|
|
3
|
-
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import ModalDialogCustom, { ModalDialogCustomProps } from './ModalDialog';
|
|
5
|
-
|
|
6
|
-
interface ModalConfirmationProps extends Omit<ModalDialogCustomProps, "actions"> {
|
|
7
|
-
onConfirm?: () => boolean | Promise<boolean>
|
|
8
|
-
onCancel?: () => void
|
|
9
|
-
disabledConfirm?: boolean
|
|
10
|
-
startDecorator?: ReactNode
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default function ModalConfirmation(props: ModalConfirmationProps) {
|
|
14
|
-
const {
|
|
15
|
-
setOpen
|
|
16
|
-
, onConfirm
|
|
17
|
-
, onCancel
|
|
18
|
-
, children
|
|
19
|
-
, color
|
|
20
|
-
, disabledConfirm
|
|
21
|
-
, startDecorator
|
|
22
|
-
, ...rest
|
|
23
|
-
} = props
|
|
24
|
-
const { t } = useTranslation(["ui"]);
|
|
25
|
-
const [loadingConfirm, setLoadingConfirm] = useState<boolean>(false)
|
|
26
|
-
|
|
27
|
-
return (
|
|
28
|
-
<ModalDialogCustom
|
|
29
|
-
setOpen={setOpen}
|
|
30
|
-
color={color}
|
|
31
|
-
actions={[
|
|
32
|
-
<Button
|
|
33
|
-
key='confirm-button'
|
|
34
|
-
color={color}
|
|
35
|
-
onClick={async () => {
|
|
36
|
-
if (onConfirm) {
|
|
37
|
-
setLoadingConfirm(true)
|
|
38
|
-
try {
|
|
39
|
-
let result = await onConfirm()
|
|
40
|
-
setLoadingConfirm(false)
|
|
41
|
-
setOpen(!result)
|
|
42
|
-
} catch (_error) {
|
|
43
|
-
setLoadingConfirm(false)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}}
|
|
47
|
-
disabled={disabledConfirm}
|
|
48
|
-
fullWidth={false}
|
|
49
|
-
loading={loadingConfirm}
|
|
50
|
-
startDecorator={startDecorator}
|
|
51
|
-
>
|
|
52
|
-
{t("confirm")}
|
|
53
|
-
</Button>,
|
|
54
|
-
<Button
|
|
55
|
-
key='cancel-button'
|
|
56
|
-
variant="plain"
|
|
57
|
-
color="neutral"
|
|
58
|
-
onClick={() => setOpen(false)}
|
|
59
|
-
fullWidth={false}
|
|
60
|
-
disabled={loadingConfirm}
|
|
61
|
-
>
|
|
62
|
-
{t("cancel")}
|
|
63
|
-
</Button>
|
|
64
|
-
]}
|
|
65
|
-
{...rest}
|
|
66
|
-
>
|
|
67
|
-
{children}
|
|
68
|
-
</ModalDialogCustom>
|
|
69
|
-
);
|
|
70
|
-
}
|