create-gametau 0.6.0 → 0.7.0
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/README.md +24 -17
- package/dist/cli.d.ts +8 -2
- package/dist/cli.js +258 -25
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/base/package.json +2 -2
- package/templates/base/src/index.ts +12 -3
- package/templates/base/src/types/wasm.d.ts +4 -0
- package/templates/base/src-tauri/commands/Cargo.toml +1 -1
- package/templates/base/src-tauri/wasm/Cargo.toml +1 -1
- package/templates/pixi/package.json +2 -2
- package/templates/three/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
# create-gametau
|
|
1
|
+
# create-gametau
|
|
2
|
+
|
|
3
|
+
Scaffold a Rust game project for the stable Web (WASM) + Tauri desktop path from one codebase, with optional Electrobun shell support.
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
Use `--desktop-shell electrobun` to add Electrobun BrowserWindow/GPUWindow shell files and scripts to the generated project.
|
|
4
6
|
|
|
5
|
-
Electrobun is available as an
|
|
7
|
+
Electrobun is available as an explicit shell option — see [active milestones](https://github.com/devallibus/gametau/milestones).
|
|
6
8
|
|
|
7
9
|
> Repository note: `docs/` is intentionally local-only and not published in remote history.
|
|
8
10
|
|
|
9
11
|
## Quick Start
|
|
10
12
|
|
|
11
|
-
```bash
|
|
12
|
-
bunx create-gametau my-game
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
bun
|
|
13
|
+
```bash
|
|
14
|
+
bunx create-gametau my-game
|
|
15
|
+
bunx create-gametau my-game --desktop-shell electrobun
|
|
16
|
+
cd my-game
|
|
17
|
+
bun install
|
|
18
|
+
bun run dev
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
For project status and rollout context, see [active milestones](https://github.com/devallibus/gametau/milestones).
|
|
@@ -28,11 +31,13 @@ bunx create-gametau my-game --template pixi
|
|
|
28
31
|
bunx create-gametau my-game --template vanilla
|
|
29
32
|
```
|
|
30
33
|
|
|
31
|
-
## CLI Options
|
|
32
|
-
|
|
33
|
-
- `--template`, `-t` - Choose scaffold template (`three`, `pixi`, `vanilla`)
|
|
34
|
-
- `--
|
|
35
|
-
- `--
|
|
34
|
+
## CLI Options
|
|
35
|
+
|
|
36
|
+
- `--template`, `-t` - Choose scaffold template (`three`, `pixi`, `vanilla`)
|
|
37
|
+
- `--desktop-shell` - Choose desktop shell (`tauri`, `electrobun`)
|
|
38
|
+
- `--electrobun-mode` - Electrobun shell mode (`hybrid`, `native`, `dual`)
|
|
39
|
+
- `--help`, `-h` - Show help output
|
|
40
|
+
- `--version`, `-v` - Print CLI version
|
|
36
41
|
|
|
37
42
|
## What gets scaffolded
|
|
38
43
|
|
|
@@ -53,10 +58,12 @@ The scaffolded base template now ships a small service architecture instead of a
|
|
|
53
58
|
- `src/services/comms.ts` - typed alert/comms channel over `webtau/event`
|
|
54
59
|
- `src/services/contracts.ts` - interfaces/types for settings, session snapshots, and alerts
|
|
55
60
|
|
|
56
|
-
Runtime bootstrap is explicit in scaffolded `src/index.ts`:
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
61
|
+
Runtime bootstrap is explicit in scaffolded `src/index.ts`:
|
|
62
|
+
|
|
63
|
+
- Electrobun path: `bootstrapElectrobunFromWindowBridge()` from `webtau/adapters/electrobun`
|
|
64
|
+
- Tauri path: `bootstrapTauri()` from `webtau/adapters/tauri`
|
|
65
|
+
- Web path: `configure({ loadWasm })` from `webtau`
|
|
66
|
+
- Runtime/capability seam: `getRuntimeInfo()` from `webtau`
|
|
60
67
|
|
|
61
68
|
This keeps the generated project lightweight while giving contributors clear extension points for production features.
|
|
62
69
|
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* create-gametau
|
|
3
|
+
* create-gametau - Scaffold a Tauri game with web + desktop deployment.
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* bunx create-gametau my-game
|
|
7
7
|
* bunx create-gametau my-game --template pixi
|
|
8
|
-
* bunx create-gametau my-game --
|
|
8
|
+
* bunx create-gametau my-game --desktop-shell electrobun
|
|
9
9
|
*/
|
|
10
10
|
declare const TEMPLATES: readonly ["three", "pixi", "vanilla"];
|
|
11
|
+
declare const DESKTOP_SHELLS: readonly ["tauri", "electrobun"];
|
|
12
|
+
declare const ELECTROBUN_MODES: readonly ["hybrid", "native", "dual"];
|
|
11
13
|
type Template = (typeof TEMPLATES)[number];
|
|
14
|
+
type DesktopShell = (typeof DESKTOP_SHELLS)[number];
|
|
15
|
+
type ElectrobunMode = (typeof ELECTROBUN_MODES)[number];
|
|
12
16
|
interface Options {
|
|
13
17
|
projectName: string;
|
|
14
18
|
template: Template;
|
|
19
|
+
desktopShell?: DesktopShell;
|
|
20
|
+
electrobunMode?: ElectrobunMode;
|
|
15
21
|
}
|
|
16
22
|
export declare function scaffold(options: Options, cwd?: string): void;
|
|
17
23
|
export {};
|
package/dist/cli.js
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* create-gametau
|
|
3
|
+
* create-gametau - Scaffold a Tauri game with web + desktop deployment.
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
6
|
* bunx create-gametau my-game
|
|
7
7
|
* bunx create-gametau my-game --template pixi
|
|
8
|
-
* bunx create-gametau my-game --
|
|
8
|
+
* bunx create-gametau my-game --desktop-shell electrobun
|
|
9
9
|
*/
|
|
10
10
|
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, renameSync, writeFileSync, } from "node:fs";
|
|
11
11
|
import { basename, dirname, join, resolve } from "node:path";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
13
|
const TEMPLATES = ["three", "pixi", "vanilla"];
|
|
14
|
+
const DESKTOP_SHELLS = ["tauri", "electrobun"];
|
|
15
|
+
const ELECTROBUN_MODES = ["hybrid", "native", "dual"];
|
|
16
|
+
const ELECTROBUN_VERSION = "^1.15.1";
|
|
17
|
+
const CROSS_ENV_VERSION = "^7.0.3";
|
|
18
|
+
const CONCURRENTLY_VERSION = "^9.2.1";
|
|
19
|
+
const BUN_TYPES_VERSION = "^1.3.9";
|
|
14
20
|
function getPackageVersion() {
|
|
15
21
|
try {
|
|
16
22
|
const packageJsonPath = new URL("../package.json", import.meta.url);
|
|
@@ -24,6 +30,8 @@ function getPackageVersion() {
|
|
|
24
30
|
function parseArgs(args) {
|
|
25
31
|
const positional = [];
|
|
26
32
|
let template = "three";
|
|
33
|
+
let desktopShell = "tauri";
|
|
34
|
+
let electrobunMode = "hybrid";
|
|
27
35
|
for (let i = 0; i < args.length; i++) {
|
|
28
36
|
const arg = args[i];
|
|
29
37
|
if (arg === "--template" || arg === "-t") {
|
|
@@ -35,6 +43,24 @@ function parseArgs(args) {
|
|
|
35
43
|
}
|
|
36
44
|
template = next;
|
|
37
45
|
}
|
|
46
|
+
else if (arg === "--desktop-shell") {
|
|
47
|
+
const next = args[++i];
|
|
48
|
+
if (!next || !DESKTOP_SHELLS.includes(next)) {
|
|
49
|
+
console.error(`Invalid desktop shell: ${next}`);
|
|
50
|
+
console.error(`Available: ${DESKTOP_SHELLS.join(", ")}`);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
desktopShell = next;
|
|
54
|
+
}
|
|
55
|
+
else if (arg === "--electrobun-mode") {
|
|
56
|
+
const next = args[++i];
|
|
57
|
+
if (!next || !ELECTROBUN_MODES.includes(next)) {
|
|
58
|
+
console.error(`Invalid Electrobun mode: ${next}`);
|
|
59
|
+
console.error(`Available: ${ELECTROBUN_MODES.join(", ")}`);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
electrobunMode = next;
|
|
63
|
+
}
|
|
38
64
|
else if (arg === "--help" || arg === "-h") {
|
|
39
65
|
printHelp();
|
|
40
66
|
process.exit(0);
|
|
@@ -57,34 +83,55 @@ function parseArgs(args) {
|
|
|
57
83
|
printHelp();
|
|
58
84
|
process.exit(1);
|
|
59
85
|
}
|
|
60
|
-
|
|
86
|
+
const options = {
|
|
87
|
+
projectName: positional[0],
|
|
88
|
+
template,
|
|
89
|
+
desktopShell,
|
|
90
|
+
electrobunMode,
|
|
91
|
+
};
|
|
92
|
+
validateOptions(options);
|
|
93
|
+
return options;
|
|
94
|
+
}
|
|
95
|
+
function validateOptions(options) {
|
|
96
|
+
const desktopShell = options.desktopShell ?? "tauri";
|
|
97
|
+
const electrobunMode = options.electrobunMode ?? "hybrid";
|
|
98
|
+
if (desktopShell !== "electrobun" && electrobunMode !== "hybrid") {
|
|
99
|
+
throw new Error("--electrobun-mode requires --desktop-shell electrobun.");
|
|
100
|
+
}
|
|
61
101
|
}
|
|
62
102
|
function printHelp() {
|
|
63
103
|
console.log(`
|
|
64
|
-
create-gametau
|
|
104
|
+
create-gametau - Scaffold a Tauri game with web + desktop deployment
|
|
65
105
|
|
|
66
106
|
Usage:
|
|
67
107
|
bunx create-gametau <project-name> [options]
|
|
68
108
|
|
|
69
109
|
Options:
|
|
70
|
-
--template, -t
|
|
71
|
-
--
|
|
72
|
-
--
|
|
110
|
+
--template, -t Template to use: three (default), pixi, vanilla
|
|
111
|
+
--desktop-shell Desktop shell: tauri (default), electrobun
|
|
112
|
+
--electrobun-mode Electrobun shell mode: hybrid (default), native, dual
|
|
113
|
+
--help, -h Show this help message
|
|
114
|
+
--version, -v Show CLI version
|
|
73
115
|
|
|
74
116
|
Examples:
|
|
75
117
|
bunx create-gametau my-game
|
|
76
118
|
bunx create-gametau my-game --template pixi
|
|
119
|
+
bunx create-gametau my-game --desktop-shell electrobun
|
|
120
|
+
bunx create-gametau my-game --desktop-shell electrobun --electrobun-mode dual
|
|
77
121
|
bun create gametau my-game
|
|
78
122
|
`.trim());
|
|
79
123
|
}
|
|
80
124
|
function getTemplatesDir() {
|
|
81
|
-
// Works both when running from source (dev) and from dist (published)
|
|
82
125
|
const thisFile = fileURLToPath(import.meta.url);
|
|
83
126
|
const packageRoot = resolve(dirname(thisFile), "..");
|
|
84
127
|
return join(packageRoot, "templates");
|
|
85
128
|
}
|
|
86
129
|
export function scaffold(options, cwd) {
|
|
87
|
-
|
|
130
|
+
validateOptions(options);
|
|
131
|
+
const projectName = options.projectName;
|
|
132
|
+
const template = options.template;
|
|
133
|
+
const desktopShell = options.desktopShell ?? "tauri";
|
|
134
|
+
const electrobunMode = options.electrobunMode ?? "hybrid";
|
|
88
135
|
const targetDir = resolve(cwd || process.cwd(), projectName);
|
|
89
136
|
if (existsSync(targetDir)) {
|
|
90
137
|
const contents = readdirSync(targetDir);
|
|
@@ -98,21 +145,205 @@ export function scaffold(options, cwd) {
|
|
|
98
145
|
if (!existsSync(baseDir)) {
|
|
99
146
|
throw new Error(`base template not found at ${baseDir}`);
|
|
100
147
|
}
|
|
101
|
-
// Copy base template
|
|
102
148
|
mkdirSync(targetDir, { recursive: true });
|
|
103
149
|
cpSync(baseDir, targetDir, { recursive: true });
|
|
104
|
-
// Copy template overlay (overwrites base files where applicable)
|
|
105
150
|
if (existsSync(overlayDir)) {
|
|
106
151
|
cpSync(overlayDir, targetDir, { recursive: true });
|
|
107
152
|
}
|
|
108
|
-
// npm strips dotfiles named .gitignore / .npmignore from tarballs.
|
|
109
|
-
// Templates store the file as "gitignore" (no dot) and we rename it here.
|
|
110
153
|
renameTemplateGitignore(targetDir);
|
|
111
|
-
// Rust crate references in code use underscore identifiers, while
|
|
112
|
-
// package names and UI strings should preserve the original project name.
|
|
113
154
|
replaceInDir(targetDir, "{{PROJECT_NAME}}_", `${toRustIdent(projectName)}_`);
|
|
114
|
-
// Replace {{PROJECT_NAME}} placeholders
|
|
115
155
|
replaceInDir(targetDir, "{{PROJECT_NAME}}", projectName);
|
|
156
|
+
if (desktopShell === "electrobun") {
|
|
157
|
+
addElectrobunSupport(targetDir, projectName, electrobunMode);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function addElectrobunSupport(targetDir, projectName, electrobunMode) {
|
|
161
|
+
const packageJsonPath = join(targetDir, "package.json");
|
|
162
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
163
|
+
packageJson.dependencies ??= {};
|
|
164
|
+
packageJson.devDependencies ??= {};
|
|
165
|
+
packageJson.scripts ??= {};
|
|
166
|
+
packageJson.dependencies.electrobun = ELECTROBUN_VERSION;
|
|
167
|
+
packageJson.devDependencies["@types/bun"] = BUN_TYPES_VERSION;
|
|
168
|
+
packageJson.devDependencies["cross-env"] = CROSS_ENV_VERSION;
|
|
169
|
+
packageJson.devDependencies.concurrently ??= CONCURRENTLY_VERSION;
|
|
170
|
+
const electrobunCli = "node ./node_modules/electrobun/bin/electrobun.cjs";
|
|
171
|
+
if (electrobunMode === "dual") {
|
|
172
|
+
packageJson.scripts["dev:electrobun"] = "bun run dev:electrobun:browser";
|
|
173
|
+
packageJson.scripts["dev:electrobun:browser"] =
|
|
174
|
+
`concurrently -k -n WEB,APP "vite" "${electrobunCli} dev"`;
|
|
175
|
+
packageJson.scripts["dev:electrobun:gpu"] =
|
|
176
|
+
`concurrently -k -n WEB,APP "vite" "cross-env GAMETAU_ELECTROBUN_RENDER_MODE=gpu ${electrobunCli} dev"`;
|
|
177
|
+
packageJson.scripts["build:electrobun"] = "bun run build:electrobun:browser";
|
|
178
|
+
packageJson.scripts["build:electrobun:browser"] =
|
|
179
|
+
`bun run build:web && ${electrobunCli} build`;
|
|
180
|
+
packageJson.scripts["build:electrobun:gpu"] =
|
|
181
|
+
`bun run build:web && cross-env GAMETAU_ELECTROBUN_RENDER_MODE=gpu ${electrobunCli} build`;
|
|
182
|
+
}
|
|
183
|
+
else if (electrobunMode === "native") {
|
|
184
|
+
packageJson.scripts["dev:electrobun"] =
|
|
185
|
+
`concurrently -k -n WEB,APP "vite" "cross-env GAMETAU_ELECTROBUN_RENDER_MODE=gpu ${electrobunCli} dev"`;
|
|
186
|
+
packageJson.scripts["build:electrobun"] =
|
|
187
|
+
`bun run build:web && cross-env GAMETAU_ELECTROBUN_RENDER_MODE=gpu ${electrobunCli} build`;
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
packageJson.scripts["dev:electrobun"] =
|
|
191
|
+
`concurrently -k -n WEB,APP "vite" "${electrobunCli} dev"`;
|
|
192
|
+
packageJson.scripts["build:electrobun"] = `bun run build:web && ${electrobunCli} build`;
|
|
193
|
+
}
|
|
194
|
+
writeFileSync(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`);
|
|
195
|
+
const bunDir = join(targetDir, "src", "bun");
|
|
196
|
+
const typesDir = join(targetDir, "src", "types");
|
|
197
|
+
mkdirSync(bunDir, { recursive: true });
|
|
198
|
+
mkdirSync(typesDir, { recursive: true });
|
|
199
|
+
patchElectrobunTypePaths(targetDir);
|
|
200
|
+
writeFileSync(join(targetDir, "electrobun.config.ts"), buildElectrobunConfig(projectName));
|
|
201
|
+
writeFileSync(join(bunDir, "browser.ts"), buildElectrobunBrowserEntrypoint(projectName));
|
|
202
|
+
writeFileSync(join(bunDir, "gpu.ts"), buildElectrobunGpuEntrypoint(projectName));
|
|
203
|
+
writeFileSync(join(typesDir, "electrobun.d.ts"), buildElectrobunConfigTypes());
|
|
204
|
+
writeFileSync(join(typesDir, "electrobun-bun.d.ts"), buildElectrobunBunTypes());
|
|
205
|
+
}
|
|
206
|
+
function buildElectrobunConfig(projectName) {
|
|
207
|
+
return `import type { ElectrobunConfig } from "electrobun";
|
|
208
|
+
|
|
209
|
+
const renderMode = process.env.GAMETAU_ELECTROBUN_RENDER_MODE === "gpu"
|
|
210
|
+
? "gpu"
|
|
211
|
+
: "browser";
|
|
212
|
+
const isGpu = renderMode === "gpu";
|
|
213
|
+
|
|
214
|
+
export default {
|
|
215
|
+
app: {
|
|
216
|
+
name: isGpu ? "${projectName} (Electrobun GPU)" : "${projectName} (Electrobun)",
|
|
217
|
+
identifier: "dev.gametau.${toRustIdent(projectName)}.electrobun",
|
|
218
|
+
version: "0.1.0",
|
|
219
|
+
},
|
|
220
|
+
build: {
|
|
221
|
+
bun: {
|
|
222
|
+
entrypoint: isGpu ? "src/bun/gpu.ts" : "src/bun/browser.ts",
|
|
223
|
+
},
|
|
224
|
+
copy: {
|
|
225
|
+
"dist/index.html": "views/main/index.html",
|
|
226
|
+
"dist/assets": "views/main/assets",
|
|
227
|
+
},
|
|
228
|
+
mac: {
|
|
229
|
+
bundleCEF: !isGpu,
|
|
230
|
+
bundleWGPU: isGpu,
|
|
231
|
+
},
|
|
232
|
+
linux: {
|
|
233
|
+
bundleCEF: !isGpu,
|
|
234
|
+
bundleWGPU: isGpu,
|
|
235
|
+
},
|
|
236
|
+
win: {
|
|
237
|
+
bundleCEF: !isGpu,
|
|
238
|
+
bundleWGPU: isGpu,
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
} satisfies ElectrobunConfig;
|
|
242
|
+
`;
|
|
243
|
+
}
|
|
244
|
+
function buildElectrobunBrowserEntrypoint(projectName) {
|
|
245
|
+
return `import { BrowserWindow } from "electrobun/bun";
|
|
246
|
+
|
|
247
|
+
const isProduction = Bun.env.NODE_ENV === "production";
|
|
248
|
+
const url = isProduction ? "views://main/index.html" : "http://localhost:1420";
|
|
249
|
+
|
|
250
|
+
new BrowserWindow({
|
|
251
|
+
title: "${projectName} (Electrobun)",
|
|
252
|
+
url,
|
|
253
|
+
});
|
|
254
|
+
`;
|
|
255
|
+
}
|
|
256
|
+
function buildElectrobunGpuEntrypoint(projectName) {
|
|
257
|
+
return `import { configure } from "webtau";
|
|
258
|
+
import { GpuWindow } from "electrobun/bun";
|
|
259
|
+
import { getWorldView, tickWorld } from "../services/backend";
|
|
260
|
+
|
|
261
|
+
async function loadWasmRuntime() {
|
|
262
|
+
configure({
|
|
263
|
+
loadWasm: async () => {
|
|
264
|
+
const wasm = await import("../wasm/${toRustIdent(projectName)}_wasm");
|
|
265
|
+
await wasm.default();
|
|
266
|
+
wasm.init(42);
|
|
267
|
+
return wasm;
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
async function main() {
|
|
273
|
+
await loadWasmRuntime();
|
|
274
|
+
|
|
275
|
+
const win = new GpuWindow({
|
|
276
|
+
title: "${projectName} (Electrobun GPU)",
|
|
277
|
+
frame: { x: 120, y: 120, width: 960, height: 640 },
|
|
278
|
+
titleBarStyle: "default",
|
|
279
|
+
transparent: false,
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
async function syncWindowTitle() {
|
|
283
|
+
const view = await getWorldView();
|
|
284
|
+
win.setTitle("${projectName} score " + view.score + " tick " + view.tick_count);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
await syncWindowTitle();
|
|
288
|
+
|
|
289
|
+
setInterval(() => {
|
|
290
|
+
void tickWorld()
|
|
291
|
+
.then(syncWindowTitle)
|
|
292
|
+
.catch(console.error);
|
|
293
|
+
}, 250);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
main().catch(console.error);
|
|
297
|
+
`;
|
|
298
|
+
}
|
|
299
|
+
function patchElectrobunTypePaths(targetDir) {
|
|
300
|
+
const tsconfigPath = join(targetDir, "tsconfig.json");
|
|
301
|
+
const tsconfig = JSON.parse(readFileSync(tsconfigPath, "utf-8"));
|
|
302
|
+
tsconfig.compilerOptions ??= {};
|
|
303
|
+
tsconfig.compilerOptions.baseUrl ??= ".";
|
|
304
|
+
tsconfig.compilerOptions.types = ["bun"];
|
|
305
|
+
tsconfig.compilerOptions.paths = {
|
|
306
|
+
...(tsconfig.compilerOptions.paths ?? {}),
|
|
307
|
+
electrobun: ["./src/types/electrobun"],
|
|
308
|
+
"electrobun/bun": ["./src/types/electrobun-bun"],
|
|
309
|
+
};
|
|
310
|
+
writeFileSync(tsconfigPath, `${JSON.stringify(tsconfig, null, 2)}\n`);
|
|
311
|
+
}
|
|
312
|
+
function buildElectrobunConfigTypes() {
|
|
313
|
+
return `export interface ElectrobunConfig {
|
|
314
|
+
app: {
|
|
315
|
+
name: string;
|
|
316
|
+
identifier: string;
|
|
317
|
+
version: string;
|
|
318
|
+
};
|
|
319
|
+
build: {
|
|
320
|
+
bun: {
|
|
321
|
+
entrypoint: string;
|
|
322
|
+
};
|
|
323
|
+
copy?: Record<string, string>;
|
|
324
|
+
mac?: { bundleCEF?: boolean; bundleWGPU?: boolean };
|
|
325
|
+
linux?: { bundleCEF?: boolean; bundleWGPU?: boolean };
|
|
326
|
+
win?: { bundleCEF?: boolean; bundleWGPU?: boolean };
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
`;
|
|
330
|
+
}
|
|
331
|
+
function buildElectrobunBunTypes() {
|
|
332
|
+
return `export class BrowserWindow {
|
|
333
|
+
constructor(options: { title?: string; url: string });
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export class GpuWindow {
|
|
337
|
+
constructor(options: {
|
|
338
|
+
title?: string;
|
|
339
|
+
frame: { x: number; y: number; width: number; height: number };
|
|
340
|
+
titleBarStyle: "hidden" | "hiddenInset" | "default";
|
|
341
|
+
transparent: boolean;
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
setTitle(title: string): void;
|
|
345
|
+
}
|
|
346
|
+
`;
|
|
116
347
|
}
|
|
117
348
|
function toRustIdent(value) {
|
|
118
349
|
let ident = value.replace(/[^A-Za-z0-9_]/g, "_");
|
|
@@ -149,7 +380,7 @@ function replaceInDir(dir, search, replace) {
|
|
|
149
380
|
}
|
|
150
381
|
}
|
|
151
382
|
catch {
|
|
152
|
-
// Skip binary files
|
|
383
|
+
// Skip binary files.
|
|
153
384
|
}
|
|
154
385
|
}
|
|
155
386
|
}
|
|
@@ -163,12 +394,9 @@ function normalizeExecPath(path) {
|
|
|
163
394
|
}
|
|
164
395
|
}
|
|
165
396
|
function isDirectExecution() {
|
|
166
|
-
// Bun exposes import.meta.main directly.
|
|
167
397
|
if (typeof Bun !== "undefined") {
|
|
168
398
|
return import.meta.main;
|
|
169
399
|
}
|
|
170
|
-
// Node 20 does not expose import.meta.main.
|
|
171
|
-
// For npm/pnpm/yarn shims, argv[1] often points at node_modules/.bin/create-gametau.
|
|
172
400
|
const entry = process.argv[1];
|
|
173
401
|
if (!entry)
|
|
174
402
|
return false;
|
|
@@ -178,7 +406,6 @@ function isDirectExecution() {
|
|
|
178
406
|
const currentPath = normalizeExecPath(currentFile);
|
|
179
407
|
if (entryPath === currentPath)
|
|
180
408
|
return true;
|
|
181
|
-
// Fallback for shim launchers where argv[1] is the shim itself.
|
|
182
409
|
const launcher = basename(entryPath).toLowerCase();
|
|
183
410
|
return launcher === "create-gametau" || launcher === "create-gametau.cmd" || launcher === "create-gametau.ps1";
|
|
184
411
|
}
|
|
@@ -186,7 +413,6 @@ function isDirectExecution() {
|
|
|
186
413
|
return false;
|
|
187
414
|
}
|
|
188
415
|
}
|
|
189
|
-
// Main — only runs when executed directly (not when imported by tests)
|
|
190
416
|
if (isDirectExecution()) {
|
|
191
417
|
const args = process.argv.slice(2);
|
|
192
418
|
const options = parseArgs(args);
|
|
@@ -198,11 +424,18 @@ Done! Your game is ready.
|
|
|
198
424
|
|
|
199
425
|
cd ${options.projectName}
|
|
200
426
|
bun install
|
|
201
|
-
bun run dev
|
|
202
|
-
bun run dev:tauri
|
|
203
|
-
bun run build:web
|
|
427
|
+
bun run dev # web dev server
|
|
428
|
+
bun run dev:tauri # desktop dev (requires Tauri CLI)
|
|
429
|
+
bun run build:web # build for web deployment
|
|
204
430
|
bun run build:desktop # build desktop app
|
|
205
431
|
`);
|
|
432
|
+
if ((options.desktopShell ?? "tauri") === "electrobun") {
|
|
433
|
+
console.log(`Electrobun shell support was added:
|
|
434
|
+
|
|
435
|
+
bun run dev:electrobun
|
|
436
|
+
bun run build:electrobun
|
|
437
|
+
`);
|
|
438
|
+
}
|
|
206
439
|
}
|
|
207
440
|
catch (err) {
|
|
208
441
|
console.error(`Error: ${err instanceof Error ? err.message : err}`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
"preview": "vite preview"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"webtau": "^0.
|
|
14
|
+
"webtau": "^0.7.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"typescript": "^5.8.0",
|
|
18
18
|
"vite": "^6.0.0",
|
|
19
|
-
"webtau-vite": "^0.
|
|
19
|
+
"webtau-vite": "^0.7.0",
|
|
20
20
|
"@tauri-apps/cli": "^2.0.0",
|
|
21
21
|
"@tauri-apps/api": "^2.0.0"
|
|
22
22
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { configure, isTauri } from "webtau";
|
|
1
|
+
import { configure, getRuntimeInfo, isTauri } from "webtau";
|
|
2
|
+
import { bootstrapElectrobunFromWindowBridge } from "webtau/adapters/electrobun";
|
|
2
3
|
import { bootstrapTauri } from "webtau/adapters/tauri";
|
|
3
4
|
import { startGameLoop } from "./game/loop";
|
|
4
5
|
import { createSnapshotQueue } from "./game/snapshot-queue";
|
|
@@ -26,8 +27,10 @@ function updateHud(view: WorldView, settings: RuntimeSettings): void {
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
async function main() {
|
|
29
|
-
// Bootstrap runtime
|
|
30
|
-
if (
|
|
30
|
+
// Bootstrap runtime in descending order of host specificity.
|
|
31
|
+
if (bootstrapElectrobunFromWindowBridge()) {
|
|
32
|
+
// Electrobun bridge is available; provider/adapters are now wired.
|
|
33
|
+
} else if (isTauri()) {
|
|
31
34
|
await bootstrapTauri();
|
|
32
35
|
} else {
|
|
33
36
|
configure({
|
|
@@ -40,6 +43,12 @@ async function main() {
|
|
|
40
43
|
});
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
const runtime = getRuntimeInfo();
|
|
47
|
+
document.body.dataset.runtime = runtime.id;
|
|
48
|
+
if (runtime.capabilities.renderMode) {
|
|
49
|
+
document.body.dataset.renderMode = runtime.capabilities.renderMode;
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
// Set up the renderer
|
|
44
53
|
const app = document.getElementById("app")!;
|
|
45
54
|
await initScene(app);
|
|
@@ -11,7 +11,7 @@ wasm-bindgen = "0.2"
|
|
|
11
11
|
serde = { version = "1", features = ["derive"] }
|
|
12
12
|
serde-wasm-bindgen = "0.6"
|
|
13
13
|
getrandom = { version = "0.2", features = ["js"] }
|
|
14
|
-
webtau = "0.
|
|
14
|
+
webtau = "0.7.0"
|
|
15
15
|
{{PROJECT_NAME}}-core = { path = "../core" }
|
|
16
16
|
{{PROJECT_NAME}}-commands = { path = "../commands" }
|
|
17
17
|
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"pixi.js": "^8.0.0",
|
|
15
|
-
"webtau": "^0.
|
|
15
|
+
"webtau": "^0.7.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"typescript": "^5.8.0",
|
|
19
19
|
"vite": "^6.0.0",
|
|
20
|
-
"webtau-vite": "^0.
|
|
20
|
+
"webtau-vite": "^0.7.0",
|
|
21
21
|
"@tauri-apps/cli": "^2.0.0",
|
|
22
22
|
"@tauri-apps/api": "^2.0.0"
|
|
23
23
|
}
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"three": "^0.172.0",
|
|
15
|
-
"webtau": "^0.
|
|
15
|
+
"webtau": "^0.7.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/three": "^0.172.0",
|
|
19
19
|
"typescript": "^5.8.0",
|
|
20
20
|
"vite": "^6.0.0",
|
|
21
|
-
"webtau-vite": "^0.
|
|
21
|
+
"webtau-vite": "^0.7.0",
|
|
22
22
|
"@tauri-apps/cli": "^2.0.0",
|
|
23
23
|
"@tauri-apps/api": "^2.0.0"
|
|
24
24
|
}
|