mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
Rest of the texture packing...
This commit is contained in:
parent
24e5a59929
commit
1b8ebe38d6
@ -174,10 +174,12 @@ function serve({ standalone }) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Watch resource files and copy them on change
|
// Watch resource files and copy them on change
|
||||||
|
gulp.watch(imgres.rawImageResourcesGlobs, gulp.series("imgres.buildAtlas"));
|
||||||
gulp.watch(imgres.nonImageResourcesGlobs, gulp.series("imgres.copyNonImageResources"));
|
gulp.watch(imgres.nonImageResourcesGlobs, gulp.series("imgres.copyNonImageResources"));
|
||||||
gulp.watch(imgres.imageResourcesGlobs, gulp.series("imgres.copyImageResources"));
|
gulp.watch(imgres.imageResourcesGlobs, gulp.series("imgres.copyImageResources"));
|
||||||
|
|
||||||
// Watch .atlas files and recompile the atlas on change
|
// Watch .atlas files and recompile the atlas on change
|
||||||
|
gulp.watch("../res_built/atlas/*.atlas", gulp.series("imgres.atlasToJson"));
|
||||||
gulp.watch("../res_built/atlas/*.json", gulp.series("imgres.atlas"));
|
gulp.watch("../res_built/atlas/*.json", gulp.series("imgres.atlas"));
|
||||||
|
|
||||||
// Watch the build folder and reload when anything changed
|
// Watch the build folder and reload when anything changed
|
||||||
@ -215,6 +217,8 @@ gulp.task(
|
|||||||
gulp.series(
|
gulp.series(
|
||||||
"utils.cleanup",
|
"utils.cleanup",
|
||||||
"utils.copyAdditionalBuildFiles",
|
"utils.copyAdditionalBuildFiles",
|
||||||
|
"imgres.buildAtlas",
|
||||||
|
"imgres.atlasToJson",
|
||||||
"imgres.atlas",
|
"imgres.atlas",
|
||||||
"sounds.dev",
|
"sounds.dev",
|
||||||
"imgres.copyImageResources",
|
"imgres.copyImageResources",
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
|
const { existsSync } = require("fs");
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
|
const atlasToJson = require("./atlas2json");
|
||||||
|
|
||||||
|
const execute = command =>
|
||||||
|
require("child_process").execSync(command, {
|
||||||
|
encoding: "utf-8",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Globs for atlas resources
|
||||||
|
const rawImageResourcesGlobs = ["../res_raw/config.json", "../res_raw/**/*.png"];
|
||||||
|
|
||||||
// Globs for non-ui resources
|
// Globs for non-ui resources
|
||||||
const nonImageResourcesGlobs = ["../res/**/*.woff2", "../res/*.ico", "../res/**/*.webm"];
|
const nonImageResourcesGlobs = ["../res/**/*.woff2", "../res/*.ico", "../res/**/*.webm"];
|
||||||
@ -7,6 +17,9 @@ const nonImageResourcesGlobs = ["../res/**/*.woff2", "../res/*.ico", "../res/**/
|
|||||||
// Globs for ui resources
|
// Globs for ui resources
|
||||||
const imageResourcesGlobs = ["../res/**/*.png", "../res/**/*.svg", "../res/**/*.jpg", "../res/**/*.gif"];
|
const imageResourcesGlobs = ["../res/**/*.png", "../res/**/*.svg", "../res/**/*.jpg", "../res/**/*.gif"];
|
||||||
|
|
||||||
|
// Link to download LibGDX runnable-texturepacker.jar
|
||||||
|
const runnableTPSource = "https://libgdx.badlogicgames.com/ci/nightlies/runnables/runnable-texturepacker.jar";
|
||||||
|
|
||||||
function gulptasksImageResources($, gulp, buildFolder) {
|
function gulptasksImageResources($, gulp, buildFolder) {
|
||||||
// Lossless options
|
// Lossless options
|
||||||
const minifyImagesOptsLossless = () => [
|
const minifyImagesOptsLossless = () => [
|
||||||
@ -59,6 +72,54 @@ function gulptasksImageResources($, gulp, buildFolder) {
|
|||||||
|
|
||||||
/////////////// ATLAS /////////////////////
|
/////////////// ATLAS /////////////////////
|
||||||
|
|
||||||
|
gulp.task("imgres.buildAtlas", cb => {
|
||||||
|
const config = JSON.stringify("../res_raw/atlas.json");
|
||||||
|
const source = JSON.stringify("../res_raw");
|
||||||
|
const dest = JSON.stringify("../res_built/atlas");
|
||||||
|
|
||||||
|
try {
|
||||||
|
// First check whether Java is installed
|
||||||
|
execute("java -version");
|
||||||
|
// Now check and try downloading runnable-texturepacker.jar (22MB)
|
||||||
|
if (!existsSync("./runnable-texturepacker.jar")) {
|
||||||
|
const safeLink = JSON.stringify(runnableTPSource);
|
||||||
|
const commands = [
|
||||||
|
// linux/macos if installed
|
||||||
|
`wget -O runnable-texturepacker.jar ${safeLink}`,
|
||||||
|
// linux/macos, latest windows 10
|
||||||
|
`curl -o runnable-texturepacker.jar ${safeLink}`,
|
||||||
|
// windows 10 / updated windows 7+
|
||||||
|
"powershell.exe -Command (new-object System.Net.WebClient)" +
|
||||||
|
`.DownloadFile(${safeLink.replace(/"/g, "'")}, 'runnable-texturepacker.jar')`,
|
||||||
|
// windows 7+, vulnerability exploit
|
||||||
|
`certutil.exe -urlcache -split -f ${safeLink} runnable-texturepacker.jar`,
|
||||||
|
];
|
||||||
|
|
||||||
|
while (commands.length) {
|
||||||
|
try {
|
||||||
|
execute(commands.shift());
|
||||||
|
break;
|
||||||
|
} catch {
|
||||||
|
if (!commands.length) {
|
||||||
|
throw new Error("Failed to download runnable-texturepacker.jar!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
execute(`java -jar runnable-texturepacker.jar ${source} ${dest} atlas0 ${config}`);
|
||||||
|
} catch {
|
||||||
|
console.warn("Building atlas failed. Java not found / unsupported version?");
|
||||||
|
}
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Converts .atlas LibGDX files to JSON
|
||||||
|
gulp.task("imgres.atlasToJson", cb => {
|
||||||
|
atlasToJson.convert("../res_built/atlas");
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
|
||||||
// Copies the atlas to the final destination
|
// Copies the atlas to the final destination
|
||||||
gulp.task("imgres.atlas", () => {
|
gulp.task("imgres.atlas", () => {
|
||||||
return gulp.src(["../res_built/atlas/*.png"]).pipe(gulp.dest(resourcesDestFolder));
|
return gulp.src(["../res_built/atlas/*.png"]).pipe(gulp.dest(resourcesDestFolder));
|
||||||
@ -135,6 +196,7 @@ function gulptasksImageResources($, gulp, buildFolder) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
rawImageResourcesGlobs,
|
||||||
nonImageResourcesGlobs,
|
nonImageResourcesGlobs,
|
||||||
imageResourcesGlobs,
|
imageResourcesGlobs,
|
||||||
gulptasksImageResources,
|
gulptasksImageResources,
|
||||||
|
Loading…
Reference in New Issue
Block a user