create-pixi-vn 2.1.3 → 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 (127) hide show
  1. package/package.json +1 -1
  2. package/template-lib/package.json +3 -0
  3. package/template-nqtr-react-vite-muijoy/.assetpack.ts +82 -2
  4. package/template-nqtr-react-vite-muijoy/package.json +2 -2
  5. package/template-nqtr-react-vite-muijoy/src/assets/index.ts +2 -11
  6. package/template-nqtr-react-vite-muijoy/src/assets/manifest.gen.json +2 -7
  7. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/index.tsx +15 -6
  8. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  9. package/template-nqtr-react-vite-muijoy/src/components/menus/settings/quick-menus.tsx +25 -1
  10. package/template-nqtr-react-vite-muijoy/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  11. package/template-nqtr-react-vite-muijoy/src/lib/hooks/hotkeys-hooks.ts +16 -0
  12. package/template-nqtr-react-vite-muijoy/src/lib/utils/device-diagnostics-utility.ts +382 -0
  13. package/template-nqtr-react-vite-muijoy/src/locales/en.json +50 -0
  14. package/template-nqtr-react-vite-muijoy/src/pixi-vn.keys.gen.ts +4 -7
  15. package/template-nqtr-react-vite-muijoy-ink/.assetpack.ts +82 -2
  16. package/template-nqtr-react-vite-muijoy-ink/package.json +3 -3
  17. package/template-nqtr-react-vite-muijoy-ink/src/assets/index.ts +2 -11
  18. package/template-nqtr-react-vite-muijoy-ink/src/assets/manifest.gen.json +2 -7
  19. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/index.tsx +15 -6
  20. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  21. package/template-nqtr-react-vite-muijoy-ink/src/components/menus/settings/quick-menus.tsx +25 -1
  22. package/template-nqtr-react-vite-muijoy-ink/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  23. package/template-nqtr-react-vite-muijoy-ink/src/lib/hooks/hotkeys-hooks.ts +16 -0
  24. package/template-nqtr-react-vite-muijoy-ink/src/lib/utils/device-diagnostics-utility.ts +382 -0
  25. package/template-nqtr-react-vite-muijoy-ink/src/locales/en.json +50 -0
  26. package/template-nqtr-react-vite-muijoy-ink/src/pixi-vn.keys.gen.ts +4 -7
  27. package/template-nqtr-react-vite-muijoy-ink-tauri/.assetpack.ts +82 -2
  28. package/template-nqtr-react-vite-muijoy-ink-tauri/.vscode/launch.json +1 -1
  29. package/template-nqtr-react-vite-muijoy-ink-tauri/.vscode/tasks.json +1 -35
  30. package/template-nqtr-react-vite-muijoy-ink-tauri/package.json +3 -3
  31. package/template-nqtr-react-vite-muijoy-ink-tauri/src/assets/index.ts +2 -11
  32. package/template-nqtr-react-vite-muijoy-ink-tauri/src/assets/manifest.gen.json +2 -7
  33. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/index.tsx +15 -6
  34. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  35. package/template-nqtr-react-vite-muijoy-ink-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  36. package/template-nqtr-react-vite-muijoy-ink-tauri/src/content/ink/hashtag-commands.ts +17 -0
  37. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  38. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  39. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/system-info.ts +54 -0
  40. package/template-nqtr-react-vite-muijoy-ink-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  41. package/template-nqtr-react-vite-muijoy-ink-tauri/src/locales/en.json +66 -0
  42. package/template-nqtr-react-vite-muijoy-ink-tauri/src/pixi-vn.keys.gen.ts +4 -7
  43. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/Cargo.toml +1 -0
  44. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/src/lib.rs +34 -22
  45. package/template-nqtr-react-vite-muijoy-ink-tauri/src-tauri/src/system_info.rs +33 -0
  46. package/template-nqtr-react-vite-muijoy-tauri/.assetpack.ts +82 -2
  47. package/template-nqtr-react-vite-muijoy-tauri/.vscode/launch.json +1 -1
  48. package/template-nqtr-react-vite-muijoy-tauri/.vscode/tasks.json +1 -35
  49. package/template-nqtr-react-vite-muijoy-tauri/package.json +2 -2
  50. package/template-nqtr-react-vite-muijoy-tauri/src/assets/index.ts +2 -11
  51. package/template-nqtr-react-vite-muijoy-tauri/src/assets/manifest.gen.json +2 -7
  52. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/index.tsx +15 -6
  53. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  54. package/template-nqtr-react-vite-muijoy-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  55. package/template-nqtr-react-vite-muijoy-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  56. package/template-nqtr-react-vite-muijoy-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  57. package/template-nqtr-react-vite-muijoy-tauri/src/lib/system-info.ts +54 -0
  58. package/template-nqtr-react-vite-muijoy-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  59. package/template-nqtr-react-vite-muijoy-tauri/src/locales/en.json +66 -0
  60. package/template-nqtr-react-vite-muijoy-tauri/src/pixi-vn.keys.gen.ts +4 -7
  61. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/Cargo.toml +1 -0
  62. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/src/lib.rs +32 -20
  63. package/template-nqtr-react-vite-muijoy-tauri/src-tauri/src/system_info.rs +33 -0
  64. package/template-react-vite-muijoy/.assetpack.ts +82 -2
  65. package/template-react-vite-muijoy/package.json +1 -1
  66. package/template-react-vite-muijoy/src/assets/index.ts +55 -55
  67. package/template-react-vite-muijoy/src/assets/manifest.gen.json +2 -7
  68. package/template-react-vite-muijoy/src/components/menus/settings/index.tsx +15 -6
  69. package/template-react-vite-muijoy/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  70. package/template-react-vite-muijoy/src/components/menus/settings/quick-menus.tsx +25 -1
  71. package/template-react-vite-muijoy/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  72. package/template-react-vite-muijoy/src/lib/hooks/hotkeys-hooks.ts +16 -0
  73. package/template-react-vite-muijoy/src/lib/utils/device-diagnostics-utility.ts +382 -0
  74. package/template-react-vite-muijoy/src/locales/en.json +50 -0
  75. package/template-react-vite-muijoy/src/pixi-vn.keys.gen.ts +2 -3
  76. package/template-react-vite-muijoy-ink/.assetpack.ts +82 -2
  77. package/template-react-vite-muijoy-ink/ink/second_part.ink +0 -1
  78. package/template-react-vite-muijoy-ink/ink/start.ink +4 -6
  79. package/template-react-vite-muijoy-ink/package.json +2 -2
  80. package/template-react-vite-muijoy-ink/src/assets/index.ts +55 -55
  81. package/template-react-vite-muijoy-ink/src/assets/manifest.gen.json +2 -7
  82. package/template-react-vite-muijoy-ink/src/components/menus/settings/index.tsx +15 -6
  83. package/template-react-vite-muijoy-ink/src/components/menus/settings/menus/diagnostics.tsx +266 -0
  84. package/template-react-vite-muijoy-ink/src/components/menus/settings/quick-menus.tsx +25 -1
  85. package/template-react-vite-muijoy-ink/src/lib/hooks/device-diagnostics-hooks.ts +68 -0
  86. package/template-react-vite-muijoy-ink/src/lib/hooks/hotkeys-hooks.ts +16 -0
  87. package/template-react-vite-muijoy-ink/src/lib/utils/device-diagnostics-utility.ts +382 -0
  88. package/template-react-vite-muijoy-ink/src/locales/en.json +50 -0
  89. package/template-react-vite-muijoy-ink/src/pixi-vn.keys.gen.ts +2 -3
  90. package/template-react-vite-muijoy-ink-tauri/.assetpack.ts +82 -2
  91. package/template-react-vite-muijoy-ink-tauri/.vscode/launch.json +1 -1
  92. package/template-react-vite-muijoy-ink-tauri/.vscode/tasks.json +1 -35
  93. package/template-react-vite-muijoy-ink-tauri/ink/second_part.ink +0 -1
  94. package/template-react-vite-muijoy-ink-tauri/ink/start.ink +4 -6
  95. package/template-react-vite-muijoy-ink-tauri/package.json +2 -2
  96. package/template-react-vite-muijoy-ink-tauri/src/assets/index.ts +55 -55
  97. package/template-react-vite-muijoy-ink-tauri/src/assets/manifest.gen.json +2 -7
  98. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/index.tsx +15 -6
  99. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  100. package/template-react-vite-muijoy-ink-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  101. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  102. package/template-react-vite-muijoy-ink-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  103. package/template-react-vite-muijoy-ink-tauri/src/lib/system-info.ts +54 -0
  104. package/template-react-vite-muijoy-ink-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  105. package/template-react-vite-muijoy-ink-tauri/src/locales/en.json +66 -0
  106. package/template-react-vite-muijoy-ink-tauri/src/pixi-vn.keys.gen.ts +2 -3
  107. package/template-react-vite-muijoy-ink-tauri/src-tauri/Cargo.toml +1 -0
  108. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/lib.rs +32 -20
  109. package/template-react-vite-muijoy-ink-tauri/src-tauri/src/system_info.rs +33 -0
  110. package/template-react-vite-muijoy-tauri/.assetpack.ts +82 -2
  111. package/template-react-vite-muijoy-tauri/.vscode/launch.json +1 -1
  112. package/template-react-vite-muijoy-tauri/.vscode/tasks.json +1 -35
  113. package/template-react-vite-muijoy-tauri/package.json +1 -1
  114. package/template-react-vite-muijoy-tauri/src/assets/index.ts +55 -55
  115. package/template-react-vite-muijoy-tauri/src/assets/manifest.gen.json +2 -7
  116. package/template-react-vite-muijoy-tauri/src/components/menus/settings/index.tsx +15 -6
  117. package/template-react-vite-muijoy-tauri/src/components/menus/settings/menus/diagnostics.tsx +332 -0
  118. package/template-react-vite-muijoy-tauri/src/components/menus/settings/quick-menus.tsx +32 -1
  119. package/template-react-vite-muijoy-tauri/src/lib/hooks/device-diagnostics-hooks.ts +96 -0
  120. package/template-react-vite-muijoy-tauri/src/lib/hooks/hotkeys-hooks.ts +16 -0
  121. package/template-react-vite-muijoy-tauri/src/lib/system-info.ts +54 -0
  122. package/template-react-vite-muijoy-tauri/src/lib/utils/device-diagnostics-utility.ts +511 -0
  123. package/template-react-vite-muijoy-tauri/src/locales/en.json +66 -0
  124. package/template-react-vite-muijoy-tauri/src/pixi-vn.keys.gen.ts +2 -3
  125. package/template-react-vite-muijoy-tauri/src-tauri/Cargo.toml +1 -0
  126. package/template-react-vite-muijoy-tauri/src-tauri/src/lib.rs +32 -20
  127. 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
+ }
@@ -1,9 +1,87 @@
1
- import type { AssetPackConfig } from "@assetpack/core";
1
+ import type { AssetPackConfig, AssetPipe } from "@assetpack/core";
2
+ import { path } from "@assetpack/core";
2
3
  import { pixiPipes } from "@assetpack/core/pixi";
4
+ import fs from "node:fs/promises";
3
5
 
4
6
  // TAURI_ENV_TARGET_TRIPLE is set by `tauri build` before running beforeBuildCommand
5
7
  const isTauri = !!process.env.TAURI_ENV_TARGET_TRIPLE;
6
8
 
9
+ const manifestOutput = "src/assets/manifest.gen.json";
10
+
11
+ /**
12
+ * AssetPack only creates a manifest bundle for folders explicitly tagged
13
+ * with "{m}" (see pixiManifest's `manifest` tag); everything else lands in
14
+ * the single "default" bundle. This splits the "default" bundle into one
15
+ * bundle per top-level folder under the assets entry, named after that
16
+ * folder, so bundles mirror the folder structure without needing to tag
17
+ * every folder manually. Files directly at the entry root (no folder) stay
18
+ * in "default". Runs after the manifest has been written to disk, so it
19
+ * re-reads and rewrites the file.
20
+ */
21
+ function groupBundlesByFolder(options: { output: string }): AssetPipe<{ output: string }> {
22
+ return {
23
+ name: "group-bundles-by-folder",
24
+ defaultOptions: options,
25
+ async finish(_asset, opts) {
26
+ const manifest = JSON.parse(await fs.readFile(opts.output, "utf-8"));
27
+
28
+ const bundles = new Map<string, { name: string; assets: unknown[] }>();
29
+ for (const bundle of manifest.bundles) {
30
+ if (bundle.name !== "default") {
31
+ bundles.set(bundle.name, bundle);
32
+ continue;
33
+ }
34
+ for (const asset of bundle.assets) {
35
+ const folder = path.dirname(asset.src[0]).split("/")[0];
36
+ const bundleName = folder === "." ? "default" : folder;
37
+ const target = bundles.get(bundleName) ?? { name: bundleName, assets: [] };
38
+ target.assets.push(asset);
39
+ bundles.set(bundleName, target);
40
+ }
41
+ }
42
+ manifest.bundles = [...bundles.values()];
43
+
44
+ await fs.writeFile(opts.output, JSON.stringify(manifest, null, 2));
45
+ },
46
+ };
47
+ }
48
+
49
+ /**
50
+ * Removes file extensions from the aliases generated by the pixi manifest
51
+ * pipe and replaces path separators with underscores (e.g.
52
+ * "yard/yard1.png" -> "yard_yard1"). Runs after the manifest has been
53
+ * written to disk, so it re-reads and rewrites the file.
54
+ *
55
+ * If two assets end up with the same normalized alias, the later one is
56
+ * prefixed with its bundle name (e.g. "yard_yard_yard1") to keep aliases
57
+ * unique across the whole manifest.
58
+ */
59
+ function normalizeAliases(options: { output: string }): AssetPipe<{ output: string }> {
60
+ return {
61
+ name: "normalize-aliases",
62
+ defaultOptions: options,
63
+ async finish(_asset, opts) {
64
+ const manifest = JSON.parse(await fs.readFile(opts.output, "utf-8"));
65
+
66
+ const seen = new Set<string>();
67
+ for (const bundle of manifest.bundles) {
68
+ for (const asset of bundle.assets) {
69
+ asset.alias = asset.alias.map((alias: string) => {
70
+ const normalized = path.trimExt(alias).replaceAll("/", "_");
71
+ const unique = seen.has(normalized)
72
+ ? `${bundle.name}_${normalized}`
73
+ : normalized;
74
+ seen.add(normalized);
75
+ return unique;
76
+ });
77
+ }
78
+ }
79
+
80
+ await fs.writeFile(opts.output, JSON.stringify(manifest, null, 2));
81
+ },
82
+ };
83
+ }
84
+
7
85
  const config: AssetPackConfig = {
8
86
  entry: "./src/assets",
9
87
  output: "./public/assets",
@@ -11,7 +89,7 @@ const config: AssetPackConfig = {
11
89
  pipes: [
12
90
  ...pixiPipes({
13
91
  manifest: {
14
- output: "src/assets/manifest.gen.json",
92
+ output: manifestOutput,
15
93
  createShortcuts: true,
16
94
  },
17
95
  // For Tauri: skip @0.5x mipmaps (unused on desktop, WebView handles DPR)
@@ -21,6 +99,8 @@ const config: AssetPackConfig = {
21
99
  ? { png: true, jpg: true, webp: { quality: 88, alphaQuality: 88 } }
22
100
  : undefined,
23
101
  }),
102
+ groupBundlesByFolder({ output: manifestOutput }),
103
+ normalizeAliases({ output: manifestOutput }),
24
104
  ],
25
105
  };
26
106
 
@@ -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
+ }