create-pixi-vn 2.1.4 → 2.1.5

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.
Files changed (119) hide show
  1. package/package.json +1 -1
  2. package/template-lib/package.json +3 -0
  3. package/template-nqtr-react-vite-muijoy/package.json +2 -2
  4. package/template-nqtr-react-vite-muijoy/src/assets/index.ts +2 -11
  5. package/template-nqtr-react-vite-muijoy/src/assets/manifest.gen.json +2 -7
  6. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/index.tsx +15 -6
  7. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  8. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/quick-menus.tsx +25 -1
  9. package/template-nqtr-react-vite-muijoy/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  10. package/template-nqtr-react-vite-muijoy/src/lib/hooks/hotkeys-hooks.ts +16 -0
  11. package/template-nqtr-react-vite-muijoy/src/lib/utils/device-diagnostics-utility.ts +382 -0
  12. package/template-nqtr-react-vite-muijoy/src/locales/en.json +50 -0
  13. package/template-nqtr-react-vite-muijoy/src/pixi-vn.keys.gen.ts +4 -7
  14. package/template-nqtr-react-vite-muijoy-ink/package.json +3 -3
  15. package/template-nqtr-react-vite-muijoy-ink/src/assets/index.ts +2 -11
  16. package/template-nqtr-react-vite-muijoy-ink/src/assets/manifest.gen.json +2 -7
  17. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/index.tsx +15 -6
  18. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  19. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/quick-menus.tsx +25 -1
  20. package/template-nqtr-react-vite-muijoy-ink/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  21. package/template-nqtr-react-vite-muijoy-ink/src/lib/hooks/hotkeys-hooks.ts +16 -0
  22. package/template-nqtr-react-vite-muijoy-ink/src/lib/utils/device-diagnostics-utility.ts +382 -0
  23. package/template-nqtr-react-vite-muijoy-ink/src/locales/en.json +50 -0
  24. package/template-nqtr-react-vite-muijoy-ink/src/pixi-vn.keys.gen.ts +4 -7
  25. package/template-nqtr-react-vite-muijoy-ink-tauri/.vscode/launch.json +1 -1
  26. package/template-nqtr-react-vite-muijoy-ink-tauri/.vscode/tasks.json +1 -35
  27. package/template-nqtr-react-vite-muijoy-ink-tauri/package.json +3 -3
  28. package/template-nqtr-react-vite-muijoy-ink-tauri/src/assets/index.ts +2 -11
  29. package/template-nqtr-react-vite-muijoy-ink-tauri/src/assets/manifest.gen.json +2 -7
  30. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/index.tsx +15 -6
  31. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  32. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  33. package/template-nqtr-react-vite-muijoy-ink-tauri/src/content/ink/hashtag-commands.ts +17 -0
  34. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  35. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  36. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/system-info.ts +54 -0
  37. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  38. package/template-nqtr-react-vite-muijoy-ink-tauri/src/locales/en.json +66 -0
  39. package/template-nqtr-react-vite-muijoy-ink-tauri/src/pixi-vn.keys.gen.ts +4 -7
  40. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/Cargo.toml +1 -0
  41. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/src/lib.rs +34 -22
  42. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/src/system_info.rs +33 -0
  43. package/template-nqtr-react-vite-muijoy-tauri/.vscode/launch.json +1 -1
  44. package/template-nqtr-react-vite-muijoy-tauri/.vscode/tasks.json +1 -35
  45. package/template-nqtr-react-vite-muijoy-tauri/package.json +2 -2
  46. package/template-nqtr-react-vite-muijoy-tauri/src/assets/index.ts +2 -11
  47. package/template-nqtr-react-vite-muijoy-tauri/src/assets/manifest.gen.json +2 -7
  48. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/index.tsx +15 -6
  49. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  50. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  51. package/template-nqtr-react-vite-muijoy-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  52. package/template-nqtr-react-vite-muijoy-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  53. package/template-nqtr-react-vite-muijoy-tauri/src/lib/system-info.ts +54 -0
  54. package/template-nqtr-react-vite-muijoy-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  55. package/template-nqtr-react-vite-muijoy-tauri/src/locales/en.json +66 -0
  56. package/template-nqtr-react-vite-muijoy-tauri/src/pixi-vn.keys.gen.ts +4 -7
  57. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/Cargo.toml +1 -0
  58. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/src/lib.rs +32 -20
  59. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/src/system_info.rs +33 -0
  60. package/template-react-vite-muijoy/package.json +1 -1
  61. package/template-react-vite-muijoy/src/assets/index.ts +55 -55
  62. package/template-react-vite-muijoy/src/assets/manifest.gen.json +2 -7
  63. package/template-react-vite-muijoy/src/components/menus/settings/index.tsx +15 -6
  64. package/template-react-vite-muijoy/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  65. package/template-react-vite-muijoy/src/components/menus/settings/quick-menus.tsx +25 -1
  66. package/template-react-vite-muijoy/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  67. package/template-react-vite-muijoy/src/lib/hooks/hotkeys-hooks.ts +16 -0
  68. package/template-react-vite-muijoy/src/lib/utils/device-diagnostics-utility.ts +382 -0
  69. package/template-react-vite-muijoy/src/locales/en.json +50 -0
  70. package/template-react-vite-muijoy/src/pixi-vn.keys.gen.ts +2 -3
  71. package/template-react-vite-muijoy-ink/ink/second_part.ink +0 -1
  72. package/template-react-vite-muijoy-ink/ink/start.ink +4 -6
  73. package/template-react-vite-muijoy-ink/package.json +2 -2
  74. package/template-react-vite-muijoy-ink/src/assets/index.ts +55 -55
  75. package/template-react-vite-muijoy-ink/src/assets/manifest.gen.json +2 -7
  76. package/template-react-vite-muijoy-ink/src/components/menus/settings/index.tsx +15 -6
  77. package/template-react-vite-muijoy-ink/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  78. package/template-react-vite-muijoy-ink/src/components/menus/settings/quick-menus.tsx +25 -1
  79. package/template-react-vite-muijoy-ink/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  80. package/template-react-vite-muijoy-ink/src/lib/hooks/hotkeys-hooks.ts +16 -0
  81. package/template-react-vite-muijoy-ink/src/lib/utils/device-diagnostics-utility.ts +382 -0
  82. package/template-react-vite-muijoy-ink/src/locales/en.json +50 -0
  83. package/template-react-vite-muijoy-ink/src/pixi-vn.keys.gen.ts +2 -3
  84. package/template-react-vite-muijoy-ink-tauri/.vscode/launch.json +1 -1
  85. package/template-react-vite-muijoy-ink-tauri/.vscode/tasks.json +1 -35
  86. package/template-react-vite-muijoy-ink-tauri/ink/second_part.ink +0 -1
  87. package/template-react-vite-muijoy-ink-tauri/ink/start.ink +4 -6
  88. package/template-react-vite-muijoy-ink-tauri/package.json +2 -2
  89. package/template-react-vite-muijoy-ink-tauri/src/assets/index.ts +55 -55
  90. package/template-react-vite-muijoy-ink-tauri/src/assets/manifest.gen.json +2 -7
  91. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/index.tsx +15 -6
  92. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  93. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  94. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  95. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  96. package/template-react-vite-muijoy-ink-tauri/src/lib/system-info.ts +54 -0
  97. package/template-react-vite-muijoy-ink-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  98. package/template-react-vite-muijoy-ink-tauri/src/locales/en.json +66 -0
  99. package/template-react-vite-muijoy-ink-tauri/src/pixi-vn.keys.gen.ts +2 -3
  100. package/template-react-vite-muijoy-ink-tauri/src-tauri/Cargo.toml +1 -0
  101. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/lib.rs +32 -20
  102. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/system_info.rs +33 -0
  103. package/template-react-vite-muijoy-tauri/.vscode/launch.json +1 -1
  104. package/template-react-vite-muijoy-tauri/.vscode/tasks.json +1 -35
  105. package/template-react-vite-muijoy-tauri/package.json +1 -1
  106. package/template-react-vite-muijoy-tauri/src/assets/index.ts +55 -55
  107. package/template-react-vite-muijoy-tauri/src/assets/manifest.gen.json +2 -7
  108. package/template-react-vite-muijoy-tauri/src/components/menus/settings/index.tsx +15 -6
  109. package/template-react-vite-muijoy-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  110. package/template-react-vite-muijoy-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  111. package/template-react-vite-muijoy-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  112. package/template-react-vite-muijoy-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  113. package/template-react-vite-muijoy-tauri/src/lib/system-info.ts +54 -0
  114. package/template-react-vite-muijoy-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  115. package/template-react-vite-muijoy-tauri/src/locales/en.json +66 -0
  116. package/template-react-vite-muijoy-tauri/src/pixi-vn.keys.gen.ts +2 -3
  117. package/template-react-vite-muijoy-tauri/src-tauri/Cargo.toml +1 -0
  118. package/template-react-vite-muijoy-tauri/src-tauri/src/lib.rs +32 -20
  119. package/template-react-vite-muijoy-tauri/src-tauri/src/system_info.rs +33 -0
@@ -5,6 +5,7 @@ use tauri_plugin_window_state::{AppHandleExt, StateFlags};
5
5
  // Steam is only compiled on desktop targets when the "steam" feature is on.
6
6
  #[cfg(all(feature = "steam", not(target_os = "ios"), not(target_os = "android")))]
7
7
  mod steam;
8
+ mod system_info;
8
9
 
9
10
  #[cfg_attr(mobile, tauri::mobile_entry_point)]
10
11
  pub fn run() {
@@ -24,28 +25,39 @@ pub fn run() {
24
25
  // is set in Cargo.toml). Steam is not supported on iOS / Android.
25
26
  #[cfg(all(feature = "steam", not(target_os = "ios"), not(target_os = "android")))]
26
27
  {
27
- builder = builder
28
- .manage(steam::SteamClient {
29
- client: std::sync::Mutex::new(steam::try_init()),
30
- })
31
- .invoke_handler(tauri::generate_handler![
32
- steam::steam_is_available,
33
- steam::steam_get_player_name,
34
- steam::steam_get_app_id,
35
- steam::steam_unlock_achievement,
36
- steam::steam_is_achievement_unlocked,
37
- steam::steam_clear_achievement,
38
- steam::steam_set_stat_int,
39
- steam::steam_get_stat_int,
40
- steam::steam_set_stat_float,
41
- steam::steam_get_stat_float,
42
- steam::steam_store_stats,
43
- steam::steam_is_dlc_installed,
44
- steam::steam_open_overlay,
45
- steam::steam_open_store,
46
- ]);
28
+ builder = builder.manage(steam::SteamClient {
29
+ client: std::sync::Mutex::new(steam::try_init()),
30
+ });
47
31
  }
48
32
 
33
+ // `generate_handler!` needs a static list, so the Steam commands can't be
34
+ // appended conditionally — the two variants below are kept in sync by hand.
35
+ #[cfg(all(feature = "steam", not(target_os = "ios"), not(target_os = "android")))]
36
+ let builder = builder.invoke_handler(tauri::generate_handler![
37
+ system_info::get_system_info,
38
+ system_info::get_webview_version,
39
+ steam::steam_is_available,
40
+ steam::steam_get_player_name,
41
+ steam::steam_get_app_id,
42
+ steam::steam_unlock_achievement,
43
+ steam::steam_is_achievement_unlocked,
44
+ steam::steam_clear_achievement,
45
+ steam::steam_set_stat_int,
46
+ steam::steam_get_stat_int,
47
+ steam::steam_set_stat_float,
48
+ steam::steam_get_stat_float,
49
+ steam::steam_store_stats,
50
+ steam::steam_is_dlc_installed,
51
+ steam::steam_open_overlay,
52
+ steam::steam_open_store,
53
+ ]);
54
+
55
+ #[cfg(not(all(feature = "steam", not(target_os = "ios"), not(target_os = "android"))))]
56
+ let builder = builder.invoke_handler(tauri::generate_handler![
57
+ system_info::get_system_info,
58
+ system_info::get_webview_version,
59
+ ]);
60
+
49
61
  builder
50
62
  .run(tauri::generate_context!())
51
63
  .expect("error while running tauri application");
@@ -0,0 +1,33 @@
1
+ use serde::Serialize;
2
+
3
+ #[derive(Serialize)]
4
+ pub struct SystemInfo {
5
+ /// Specific OS/distro name (e.g. "Ubuntu", "Windows", "Mac OS"), not just the generic platform.
6
+ os_type: String,
7
+ os_version: String,
8
+ bitness: String,
9
+ architecture: String,
10
+ }
11
+
12
+ /// Native OS/distro details, unavailable to plain web JS (browsers deliberately
13
+ /// don't expose this to limit fingerprinting).
14
+ #[tauri::command]
15
+ pub fn get_system_info() -> SystemInfo {
16
+ let info = os_info::get();
17
+ SystemInfo {
18
+ os_type: info.os_type().to_string(),
19
+ os_version: info.version().to_string(),
20
+ bitness: info.bitness().to_string(),
21
+ architecture: info
22
+ .architecture()
23
+ .map(str::to_string)
24
+ .unwrap_or_else(|| std::env::consts::ARCH.to_string()),
25
+ }
26
+ }
27
+
28
+ /// Underlying WebView engine version (WebView2 on Windows, WebKitGTK on Linux,
29
+ /// WKWebView on macOS/iOS, Android System WebView on Android).
30
+ #[tauri::command]
31
+ pub fn get_webview_version() -> Result<String, String> {
32
+ tauri::webview_version().map_err(|e| e.to_string())
33
+ }
@@ -26,7 +26,7 @@
26
26
  "cwd": "${workspaceFolder}",
27
27
  "terminal": "console",
28
28
  "preLaunchTask": "Cargo Build (Desktop Dev)",
29
- "postDebugTask": "Stop Vite Desktop Server"
29
+ "postDebugTask": "Stop Vite Dev Server"
30
30
  },
31
31
  {
32
32
  "name": "Debug Game Preview",
@@ -106,7 +106,7 @@
106
106
  "label": "Cargo Build (Desktop Dev)",
107
107
  "type": "shell",
108
108
  "command": "cargo build --manifest-path=./src-tauri/Cargo.toml --no-default-features",
109
- "dependsOn": ["Start Vite Desktop Server"],
109
+ "dependsOn": ["Restart Vite Dev Server"],
110
110
  "presentation": {
111
111
  "reveal": "always",
112
112
  "panel": "dedicated",
@@ -114,40 +114,6 @@
114
114
  "close": true
115
115
  },
116
116
  "problemMatcher": ["$rustc"]
117
- },
118
- {
119
- "label": "Start Vite Desktop Server",
120
- "type": "shell",
121
- "command": "npm run dev",
122
- "isBackground": true,
123
- "dependsOn": ["Install Dependencies"],
124
- "problemMatcher": {
125
- "owner": "vite",
126
- "pattern": {
127
- "regexp": "^(?!x)x"
128
- },
129
- "background": {
130
- "activeOnStart": true,
131
- "beginsPattern": ".",
132
- "endsPattern": "localhost:5173"
133
- }
134
- },
135
- "presentation": {
136
- "reveal": "always",
137
- "panel": "dedicated",
138
- "clear": false,
139
- "close": true
140
- }
141
- },
142
- {
143
- "label": "Stop Vite Desktop Server",
144
- "type": "shell",
145
- "command": "pkill -f 'vite' 2>/dev/null; pkill -f 'npm run dev' 2>/dev/null; exit 0",
146
- "presentation": {
147
- "reveal": "never",
148
- "panel": "dedicated",
149
- "close": true
150
- }
151
117
  }
152
118
  ]
153
119
  }
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@base-ui/react": "^1.6.0",
27
- "@drincs/pixi-vn": "^1.8.21",
27
+ "@drincs/pixi-vn": "^1.8.25",
28
28
  "@tailwindcss/vite": "^4.3.0",
29
29
  "@tanstack/hotkeys": "^0.8.0",
30
30
  "@tanstack/react-hotkeys": "^0.10.0",
@@ -17,11 +17,11 @@ export const manifest: AssetsManifest = {
17
17
  assets: [
18
18
  {
19
19
  alias: "bgm_cheerful",
20
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/audio/bgm_cheerful.wav",
20
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/audio/bgm_cheerful.wav",
21
21
  },
22
22
  {
23
23
  alias: "sfx_whoosh",
24
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/audio/sfx_whoosh.wav",
24
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/audio/sfx_whoosh.wav",
25
25
  },
26
26
  ],
27
27
  },
@@ -31,7 +31,7 @@ export const manifest: AssetsManifest = {
31
31
  assets: [
32
32
  {
33
33
  alias: "background_main_menu",
34
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/main-menu.png",
34
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/main-menu.png",
35
35
  },
36
36
  ],
37
37
  },
@@ -41,7 +41,7 @@ export const manifest: AssetsManifest = {
41
41
  assets: [
42
42
  {
43
43
  alias: "bg01-hallway",
44
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/bg01-hallway.webp",
44
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/bg01-hallway.webp",
45
45
  },
46
46
  ],
47
47
  },
@@ -50,7 +50,7 @@ export const manifest: AssetsManifest = {
50
50
  assets: [
51
51
  {
52
52
  alias: "bg02-dorm",
53
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/bg02-dorm.webp",
53
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/bg02-dorm.webp",
54
54
  },
55
55
  ],
56
56
  },
@@ -60,67 +60,67 @@ export const manifest: AssetsManifest = {
60
60
  assets: [
61
61
  {
62
62
  alias: "fm01-body",
63
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-body.webp",
63
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-body.webp",
64
64
  },
65
65
  {
66
66
  alias: "fm01-eyes-grin",
67
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-eyes-grin.webp",
67
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-eyes-grin.webp",
68
68
  },
69
69
  {
70
70
  alias: "fm01-eyes-smile",
71
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-eyes-smile.webp",
71
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-eyes-smile.webp",
72
72
  },
73
73
  {
74
74
  alias: "fm01-eyes-soft",
75
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-eyes-soft.webp",
75
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-eyes-soft.webp",
76
76
  },
77
77
  {
78
78
  alias: "fm01-eyes-upset",
79
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-eyes-upset.webp",
79
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-eyes-upset.webp",
80
80
  },
81
81
  {
82
82
  alias: "fm01-eyes-wow",
83
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-eyes-wow.webp",
83
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-eyes-wow.webp",
84
84
  },
85
85
  {
86
86
  alias: "fm01-mouth-grin00",
87
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-grin00.webp",
87
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-grin00.webp",
88
88
  },
89
89
  {
90
90
  alias: "fm01-mouth-serious00",
91
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-serious00.webp",
91
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-serious00.webp",
92
92
  },
93
93
  {
94
94
  alias: "fm01-mouth-serious01",
95
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-serious01.webp",
95
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-serious01.webp",
96
96
  },
97
97
  {
98
98
  alias: "fm01-mouth-smile00",
99
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-smile00.webp",
99
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-smile00.webp",
100
100
  },
101
101
  {
102
102
  alias: "fm01-mouth-smile01",
103
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-smile01.webp",
103
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-smile01.webp",
104
104
  },
105
105
  {
106
106
  alias: "fm01-mouth-soft00",
107
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-soft00.webp",
107
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-soft00.webp",
108
108
  },
109
109
  {
110
110
  alias: "fm01-mouth-soft01",
111
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-soft01.webp",
111
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-soft01.webp",
112
112
  },
113
113
  {
114
114
  alias: "fm01-mouth-upset00",
115
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-upset00.webp",
115
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-upset00.webp",
116
116
  },
117
117
  {
118
118
  alias: "fm01-mouth-upset01",
119
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-upset01.webp",
119
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-upset01.webp",
120
120
  },
121
121
  {
122
122
  alias: "fm01-mouth-wow01",
123
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm01/fm01-mouth-wow01.webp",
123
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm01/fm01-mouth-wow01.webp",
124
124
  },
125
125
  ],
126
126
  },
@@ -129,63 +129,63 @@ export const manifest: AssetsManifest = {
129
129
  assets: [
130
130
  {
131
131
  alias: "fm02-body",
132
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-body.webp",
132
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-body.webp",
133
133
  },
134
134
  {
135
135
  alias: "fm02-eyes-bawl",
136
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-bawl.webp",
136
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-bawl.webp",
137
137
  },
138
138
  {
139
139
  alias: "fm02-eyes-joy",
140
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-joy.webp",
140
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-joy.webp",
141
141
  },
142
142
  {
143
143
  alias: "fm02-eyes-nervous",
144
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-nervous.webp",
144
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-nervous.webp",
145
145
  },
146
146
  {
147
147
  alias: "fm02-eyes-smile",
148
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-smile.webp",
148
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-smile.webp",
149
149
  },
150
150
  {
151
151
  alias: "fm02-eyes-upset",
152
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-upset.webp",
152
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-upset.webp",
153
153
  },
154
154
  {
155
155
  alias: "fm02-eyes-wow",
156
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-eyes-wow.webp",
156
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-eyes-wow.webp",
157
157
  },
158
158
  {
159
159
  alias: "fm02-mouth-cry01",
160
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-cry01.webp",
160
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-cry01.webp",
161
161
  },
162
162
  {
163
163
  alias: "fm02-mouth-nervous00",
164
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-nervous00.webp",
164
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-nervous00.webp",
165
165
  },
166
166
  {
167
167
  alias: "fm02-mouth-nervous01",
168
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-nervous01.webp",
168
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-nervous01.webp",
169
169
  },
170
170
  {
171
171
  alias: "fm02-mouth-smile00",
172
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-smile00.webp",
172
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-smile00.webp",
173
173
  },
174
174
  {
175
175
  alias: "fm02-mouth-smile01",
176
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-smile01.webp",
176
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-smile01.webp",
177
177
  },
178
178
  {
179
179
  alias: "fm02-mouth-upset00",
180
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-upset00.webp",
180
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-upset00.webp",
181
181
  },
182
182
  {
183
183
  alias: "fm02-mouth-upset01",
184
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-upset01.webp",
184
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-upset01.webp",
185
185
  },
186
186
  {
187
187
  alias: "fm02-mouth-wow01",
188
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/fm02/fm02-mouth-wow01.webp",
188
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/fm02/fm02-mouth-wow01.webp",
189
189
  },
190
190
  ],
191
191
  },
@@ -194,79 +194,79 @@ export const manifest: AssetsManifest = {
194
194
  assets: [
195
195
  {
196
196
  alias: "m01-body",
197
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-body.webp",
197
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-body.webp",
198
198
  },
199
199
  {
200
200
  alias: "m01-eyes-annoy",
201
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-annoy.webp",
201
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-annoy.webp",
202
202
  },
203
203
  {
204
204
  alias: "m01-eyes-concern",
205
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-concern.webp",
205
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-concern.webp",
206
206
  },
207
207
  {
208
208
  alias: "m01-eyes-cry",
209
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-cry.webp",
209
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-cry.webp",
210
210
  },
211
211
  {
212
212
  alias: "m01-eyes-grin",
213
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-grin.webp",
213
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-grin.webp",
214
214
  },
215
215
  {
216
216
  alias: "m01-eyes-smile",
217
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-smile.webp",
217
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-smile.webp",
218
218
  },
219
219
  {
220
220
  alias: "m01-eyes-wow",
221
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-eyes-wow.webp",
221
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-eyes-wow.webp",
222
222
  },
223
223
  {
224
224
  alias: "m01-mouth-annoy00",
225
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-annoy00.webp",
225
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-annoy00.webp",
226
226
  },
227
227
  {
228
228
  alias: "m01-mouth-annoy01",
229
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-annoy01.webp",
229
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-annoy01.webp",
230
230
  },
231
231
  {
232
232
  alias: "m01-mouth-concern00",
233
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-concern00.webp",
233
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-concern00.webp",
234
234
  },
235
235
  {
236
236
  alias: "m01-mouth-concern01",
237
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-concern01.webp",
237
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-concern01.webp",
238
238
  },
239
239
  {
240
240
  alias: "m01-mouth-cry00",
241
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-cry00.webp",
241
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-cry00.webp",
242
242
  },
243
243
  {
244
244
  alias: "m01-mouth-cry01",
245
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-cry01.webp",
245
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-cry01.webp",
246
246
  },
247
247
  {
248
248
  alias: "m01-mouth-grin00",
249
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-grin00.webp",
249
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-grin00.webp",
250
250
  },
251
251
  {
252
252
  alias: "m01-mouth-neutral00",
253
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-neutral00.webp",
253
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-neutral00.webp",
254
254
  },
255
255
  {
256
256
  alias: "m01-mouth-neutral01",
257
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-neutral01.webp",
257
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-neutral01.webp",
258
258
  },
259
259
  {
260
260
  alias: "m01-mouth-smile00",
261
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-smile00.webp",
261
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-smile00.webp",
262
262
  },
263
263
  {
264
264
  alias: "m01-mouth-smile01",
265
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-smile01.webp",
265
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-smile01.webp",
266
266
  },
267
267
  {
268
268
  alias: "m01-mouth-wow01",
269
- src: "https://raw.githubusercontent.com/DRincs-Productions/pixi-vn-bucket/refs/heads/main/breakdown/m01/m01-mouth-wow01.webp",
269
+ src: "https://pub-72ff059a2c6642fb9eab15df80fb3b45.r2.dev/breakdown/m01/m01-mouth-wow01.webp",
270
270
  },
271
271
  ],
272
272
  },
@@ -1,8 +1,3 @@
1
1
  {
2
- "bundles": [
3
- {
4
- "name": "default",
5
- "assets": []
6
- }
7
- ]
8
- }
2
+ "bundles": []
3
+ }
@@ -1,6 +1,7 @@
1
1
  import { About } from "@/components/menus/settings/about";
2
2
  import { DialoguesControls } from "@/components/menus/settings/dialogues-controls";
3
3
  import { ControlsListSettingsPage } from "@/components/menus/settings/menus/controls";
4
+ import { DiagnosticsSettingsPage } from "@/components/menus/settings/menus/diagnostics";
4
5
  import { HistoryListSettingsPage } from "@/components/menus/settings/menus/history";
5
6
  import { SaveLoadSettingsPage } from "@/components/menus/settings/menus/save-load";
6
7
  import { QuickMenus } from "@/components/menus/settings/quick-menus";
@@ -23,7 +24,7 @@ import { ArrowLeftIcon } from "lucide-react";
23
24
  import { Fragment } from "react";
24
25
  import { useTranslation } from "react-i18next";
25
26
 
26
- type SettingsTabPath = "menus/controls" | "menus/history" | "menus/save-load";
27
+ type SettingsTabPath = "menus/controls" | "menus/history" | "menus/save-load" | "menus/diagnostics";
27
28
 
28
29
  type BreadcrumbEntry = {
29
30
  id: string;
@@ -38,7 +39,8 @@ export function Settings() {
38
39
  const normalizedTab: SettingsTabPath | undefined =
39
40
  currentTab === "menus/controls" ||
40
41
  currentTab === "menus/history" ||
41
- currentTab === "menus/save-load"
42
+ currentTab === "menus/save-load" ||
43
+ currentTab === "menus/diagnostics"
42
44
  ? (currentTab as SettingsTabPath)
43
45
  : undefined;
44
46
 
@@ -55,7 +57,8 @@ export function Settings() {
55
57
  if (
56
58
  normalizedTab === "menus/controls" ||
57
59
  normalizedTab === "menus/history" ||
58
- normalizedTab === "menus/save-load"
60
+ normalizedTab === "menus/save-load" ||
61
+ normalizedTab === "menus/diagnostics"
59
62
  ) {
60
63
  trail.push({ id: "menus", label: t("menus") });
61
64
  trail.push({
@@ -64,13 +67,17 @@ export function Settings() {
64
67
  ? "menus-controls"
65
68
  : normalizedTab === "menus/history"
66
69
  ? "menus-history"
67
- : "menus-save-load",
70
+ : normalizedTab === "menus/save-load"
71
+ ? "menus-save-load"
72
+ : "menus-diagnostics",
68
73
  label:
69
74
  normalizedTab === "menus/controls"
70
75
  ? t("hotkeys_menu")
71
76
  : normalizedTab === "menus/history"
72
77
  ? t("history")
73
- : `${t("save")}/${t("load")}`,
78
+ : normalizedTab === "menus/save-load"
79
+ ? `${t("save")}/${t("load")}`
80
+ : t("diagnostics"),
74
81
  });
75
82
  }
76
83
  return trail;
@@ -112,7 +119,8 @@ export function Settings() {
112
119
  if (
113
120
  normalizedTab === "menus/controls" ||
114
121
  normalizedTab === "menus/history" ||
115
- normalizedTab === "menus/save-load"
122
+ normalizedTab === "menus/save-load" ||
123
+ normalizedTab === "menus/diagnostics"
116
124
  ) {
117
125
  return (
118
126
  <>
@@ -130,6 +138,7 @@ export function Settings() {
130
138
  {normalizedTab === "menus/controls" ? <ControlsListSettingsPage /> : null}
131
139
  {normalizedTab === "menus/history" ? <HistoryListSettingsPage /> : null}
132
140
  {normalizedTab === "menus/save-load" ? <SaveLoadSettingsPage /> : null}
141
+ {normalizedTab === "menus/diagnostics" ? <DiagnosticsSettingsPage /> : null}
133
142
  </>
134
143
  );
135
144
  }