Skip to content

Commit 767592e

Browse files
committed
Added editor mode to build pipeline
1 parent 9497d12 commit 767592e

File tree

12 files changed

+159
-65
lines changed

12 files changed

+159
-65
lines changed

.vscode/launch.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,24 @@
1818
"preLaunchTask": "watch:preview",
1919
"sourceMapRoot": "${workspaceFolder}/BP/scripts/",
2020
"port": 19144
21+
},
22+
{
23+
"type": "minecraft-js",
24+
"request": "attach",
25+
"name": "Debug with Minecraft Editor",
26+
"mode": "listen",
27+
"preLaunchTask": "watch:editor",
28+
"sourceMapRoot": "${workspaceFolder}/BP/scripts/",
29+
"port": 19144
30+
},
31+
{
32+
"type": "minecraft-js",
33+
"request": "attach",
34+
"name": "Debug with Minecraft Editor Preview",
35+
"mode": "listen",
36+
"preLaunchTask": "watch:editor:preview",
37+
"sourceMapRoot": "${workspaceFolder}/BP/scripts/",
38+
"port": 19144
2139
}
2240
]
2341
}

.vscode/tasks.json

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,52 @@
5151
}
5252
}
5353
]
54+
},
55+
{
56+
"label": "watch:editor",
57+
"type": "npm",
58+
"script": "watch:editor",
59+
"isBackground": true,
60+
"problemMatcher": [
61+
{
62+
"pattern": [
63+
{
64+
"regexp": ".",
65+
"file": 1,
66+
"location": 2,
67+
"message": 3
68+
}
69+
],
70+
"background": {
71+
"activeOnStart": true,
72+
"beginsPattern": "Building...",
73+
"endsPattern": "Build completed"
74+
}
75+
}
76+
]
77+
},
78+
{
79+
"label": "watch:editor:preview",
80+
"type": "npm",
81+
"script": "watch:editor:preview",
82+
"isBackground": true,
83+
"problemMatcher": [
84+
{
85+
"pattern": [
86+
{
87+
"regexp": ".",
88+
"file": 1,
89+
"location": 2,
90+
"message": 3
91+
}
92+
],
93+
"background": {
94+
"activeOnStart": true,
95+
"beginsPattern": "Building...",
96+
"endsPattern": "Build completed"
97+
}
98+
}
99+
]
54100
}
55101
],
56102
}

build.mjs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ program
3131
}
3232
})
3333
.option("-p, --package-only", "Only package what's already there.")
34-
.option("-g --gametest", "Whether to build with gametest enabled.");
34+
.option("-g --gametest", "Whether to build with gametest enabled.")
35+
.option("-e, --editor", "Whether to build for editor mode.");
3536
program.parse(argv);
3637

3738
const args = program.opts();
@@ -96,7 +97,7 @@ if (!fs.existsSync(scriptOutputDir)) throw "The output scripts folder does not e
9697
if (args.watch === "stable") {
9798
args.syncDir = env.LOCALAPPDATA + "\\Packages\\Microsoft.MinecraftUWP_8wekyb3d8bbwe\\LocalState\\games\\com.mojang";
9899
} else if (args.watch === "preview") {
99-
args.syncDir = env.LOCALAPPDATA + "\\Packages\\Microsoft.MinecraftWindowsBeta_8wekyb3d8bbwe\\LocalState\\games\\com.mojang";
100+
args.syncDir = env.APPDATA + "\\Minecraft Bedrock Preview\\Users\\Shared\\games\\com.mojang";
100101
} else if (args.watch === "server") {
101102
if (!args.server) {
102103
console.error("You must specify a server path when using the --server option.");
@@ -133,7 +134,7 @@ buildLang(args);
133134

134135
const buildArgs = {
135136
outdir: scriptOutputDir,
136-
entryPoints: await glob("src/**/*.{ts,js}", { ignore: ["src/**/*.d.ts", args.gametest ? "" : "src/gametest/**"] }),
137+
entryPoints: await glob("src/**/*.{ts,js}", { ignore: ["src/**/*.d.ts", args.gametest ? "" : "src/gametest/**", args.editor ? "" : "src/editor/**"] }),
137138
bundle: false,
138139
platform: "node",
139140
target: ["es2020"],
@@ -160,6 +161,11 @@ const buildArgs = {
160161
contents += `\nimport "gametest/index.js";`;
161162
return contents;
162163
},
164+
function editor(filePath, contents) {
165+
if (!path.normalize(filePath).endsWith(path.normalize("src/index.ts")) || !args.editor) return;
166+
contents += `\nimport "editor/index.js";`;
167+
return contents;
168+
},
163169
]),
164170
],
165171
};
@@ -185,19 +191,18 @@ if (args.watch) {
185191
copyDir("BP", path.join(buildsDir, `${packName}BP`));
186192
copyDir("RP", path.join(buildsDir, `${packName}RP`));
187193

188-
if (args.target !== "debug") {
189-
if (args.target === "release" || args.target === "server") {
190-
const zipName = args.target === "release" ? `${packName}.mcaddon` : `${packName}.server.zip`;
191-
const zipPath = path.join(buildsDir, zipName);
192-
const zip = new ZipFile();
193-
if (args.target === "server") {
194-
const variablesPath = path.join(buildsDir, "variables.json");
195-
if (fs.existsSync(variablesPath)) zip.addFile(variablesPath, "variables.json");
196-
}
197-
zipWriteDir(zip, path.join(buildsDir, `${packName}BP`), `${packName}BP`);
198-
zipWriteDir(zip, path.join(buildsDir, `${packName}RP`), `${packName}RP`);
199-
zip.outputStream.pipe(fs.createWriteStream(zipPath)).on("close", () => {});
200-
zip.end();
194+
if (args.target === "release" || args.target === "server") {
195+
const exportName = args.editor ? `${packName}.editor` : packName;
196+
const zipName = args.target === "release" ? `${exportName}.mcaddon` : `${exportName}.server.zip`;
197+
const zipPath = path.join(buildsDir, zipName);
198+
const zip = new ZipFile();
199+
if (args.target === "server") {
200+
const variablesPath = path.join(buildsDir, "variables.json");
201+
if (fs.existsSync(variablesPath)) zip.addFile(variablesPath, "variables.json");
201202
}
203+
zipWriteDir(zip, path.join(buildsDir, `${packName}BP`), `${packName}BP`);
204+
zipWriteDir(zip, path.join(buildsDir, `${packName}RP`), `${packName}RP`);
205+
zip.outputStream.pipe(fs.createWriteStream(zipPath)).on("close", () => {});
206+
zip.end();
202207
}
203208
}

mc_manifest.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"min_engine_version": [
1515
1,
1616
21,
17-
120
17+
130
1818
]
1919
},
2020
"bp_modules": [
@@ -78,6 +78,12 @@
7878
"version": "beta"
7979
}
8080
],
81+
"bp_editor_dependencies": [
82+
{
83+
"module_name": "@minecraft/server-editor",
84+
"version": "beta"
85+
}
86+
],
8187
"metadata": {
8288
"authors": [
8389
"SIsilicon"

package-lock.json

Lines changed: 32 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,21 @@
1212
"watch": "node build.mjs --watch=stable",
1313
"watch:preview": "node build.mjs --watch=preview",
1414
"watch:server": "node build.mjs --watch=server",
15+
"watch:editor": "node build.mjs --watch=stable --editor",
16+
"watch:editor:preview": "node build.mjs --watch=preview --editor",
17+
"watch:editor:server": "node build.mjs --watch=server --editor",
18+
1519
"build:client": "node build.mjs --target=release",
1620
"build:server": "node build.mjs --target=server",
17-
"build:all": "node build.mjs --target=release && node build.mjs --target=server",
21+
"build:editor": "node build.mjs --target=release --editor",
22+
"build:all": "node build.mjs --target=release && node build.mjs --target=server && node build.mjs --target=release --editor",
1823
"build:beta": "node build.mjs --target=debug",
1924
"build": "node build.mjs --target=release",
25+
2026
"lint": "npx eslint src",
2127
"lint:fix": "npm run lint -- --fix",
2228
"format": "npm run lint:fix",
29+
2330
"gametest": "act -j gametest"
2431
},
2532
"license": "GPL-3.0-or-later",
@@ -38,22 +45,22 @@
3845
"yazl": "^3.3.1"
3946
},
4047
"dependencies": {
41-
"@minecraft/server": "^2.4.0-beta.1.21.120-preview.25",
48+
"@minecraft/server": "^2.5.0-beta.1.21.130-preview.22",
4249
"@minecraft/server-admin": "1.0.0-beta.1.19.80-stable",
43-
"@minecraft/server-editor": "^0.1.0-beta.1.21.120-preview.25",
44-
"@minecraft/server-gametest": "^1.0.0-beta.1.21.120-preview.25",
45-
"@minecraft/server-ui": "^2.1.0-beta.1.21.120-preview.25",
46-
"@minecraft/vanilla-data": "^1.21.120-preview.25"
50+
"@minecraft/server-editor": "^0.1.0-beta.1.21.130-preview.22",
51+
"@minecraft/server-gametest": "^1.0.0-beta.1.21.130-preview.22",
52+
"@minecraft/server-ui": "^2.1.0-beta.1.21.130-preview.22",
53+
"@minecraft/vanilla-data": "^1.21.130-preview.22"
4754
},
4855
"overrides": {
4956
"@minecraft/server-ui": {
50-
"@minecraft/server": "^2.4.0-beta.1.21.120-preview.25"
57+
"@minecraft/server": "^2.5.0-beta.1.21.130-preview.22"
5158
},
5259
"@minecraft/server-editor": {
53-
"@minecraft/server": "^2.4.0-beta.1.21.120-preview.25"
60+
"@minecraft/server": "^2.5.0-beta.1.21.130-preview.22"
5461
},
5562
"@minecraft/server-gametest": {
56-
"@minecraft/server": "^2.4.0-beta.1.21.120-preview.25"
63+
"@minecraft/server": "^2.5.0-beta.1.21.130-preview.22"
5764
}
5865
}
5966
}

0 commit comments

Comments
 (0)