2020-09-23 13:20:12 +00:00
|
|
|
/* eslint-disable */
|
|
|
|
|
|
|
|
require("colors");
|
|
|
|
|
|
|
|
const gulp = require("gulp");
|
|
|
|
const browserSync = require("browser-sync").create({});
|
|
|
|
const path = require("path");
|
|
|
|
const deleteEmpty = require("delete-empty");
|
|
|
|
const execSync = require("child_process").execSync;
|
|
|
|
|
|
|
|
// Load other plugins dynamically
|
|
|
|
const $ = require("gulp-load-plugins")({
|
|
|
|
scope: ["devDependencies"],
|
|
|
|
pattern: "*",
|
|
|
|
});
|
|
|
|
|
|
|
|
// Check environment variables
|
|
|
|
|
|
|
|
const envVars = [
|
|
|
|
"SHAPEZ_CLI_SERVER_HOST",
|
|
|
|
// "SHAPEZ_CLI_PHONEGAP_KEY",
|
|
|
|
"SHAPEZ_CLI_ALPHA_FTP_USER",
|
|
|
|
"SHAPEZ_CLI_ALPHA_FTP_PW",
|
|
|
|
"SHAPEZ_CLI_STAGING_FTP_USER",
|
|
|
|
"SHAPEZ_CLI_STAGING_FTP_PW",
|
|
|
|
"SHAPEZ_CLI_LIVE_FTP_USER",
|
|
|
|
"SHAPEZ_CLI_LIVE_FTP_PW",
|
2020-09-27 21:14:43 +00:00
|
|
|
"SHAPEZ_CLI_APPLE_ID",
|
|
|
|
"SHAPEZ_CLI_APPLE_CERT_NAME",
|
2020-10-01 08:20:47 +00:00
|
|
|
"SHAPEZ_CLI_GITHUB_USER",
|
|
|
|
"SHAPEZ_CLI_GITHUB_TOKEN",
|
2020-09-23 13:20:12 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
for (let i = 0; i < envVars.length; ++i) {
|
|
|
|
if (!process.env[envVars[i]]) {
|
|
|
|
console.warn("Please set", envVars[i]);
|
|
|
|
// process.exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const baseDir = path.join(__dirname, "..");
|
|
|
|
const buildFolder = path.join(baseDir, "build");
|
|
|
|
|
|
|
|
const imgres = require("./image-resources");
|
|
|
|
imgres.gulptasksImageResources($, gulp, buildFolder);
|
|
|
|
|
|
|
|
const css = require("./css");
|
|
|
|
css.gulptasksCSS($, gulp, buildFolder, browserSync);
|
|
|
|
|
|
|
|
const sounds = require("./sounds");
|
|
|
|
sounds.gulptasksSounds($, gulp, buildFolder);
|
|
|
|
|
Achievements (#1087)
* [WIP] Add boilerplate for achievement implementation
* Add config.local.template.js and rm cached copy of config.local.js
* [WIP] Implement painting, cutting, rotating achievements (to log only)
* [WIP] Refactor achievements, jsdoc fixes, add npm script
- Refactor achievements to make use of Signals
- Move implemented achievement interfaces to appropriate
platform folders (SteamAchievements in currently in use
in browser wrapper for testing)
- Fix invalid jsdocs
- Add dev-standalone script to package.json scripts
* Add steam/greenworks IPC calls and optional private-artifact dependency
* Include private artifacts in standalone builds
* Uncomment appid include
* [WIP] Add steam overlay fix, add hash to artifact dependency
* Update electron, greenworks. Add task to add local config if not present
* Add more achievements, refactor achievement code
* Add receiver flexibility and more achievements
- Add check to see if necessary to create achievement and add receiver
- Add remove receiver functionality when achievement is unlocked
* Add achievements and accommodations for switching states
- Fix startup code to avoid clobbering achievements on state switch
- Add a few more achievements
* Add achievements, ids. Update names, keys for consistency
* Add play time achievements
* [WIP] Add more achievements
* Add more achievements. Add bulk achievement check signal
* [WIP] Add achievements. Start savefile migration
* Add achievements. Add savefile migration
* Remove superfluous achievement stat
* Update lock files, fix merge conflict
2021-03-10 06:33:39 +00:00
|
|
|
const localConfig = require("./local-config");
|
|
|
|
localConfig.gulptasksLocalConfig($, gulp);
|
|
|
|
|
2020-09-23 13:20:12 +00:00
|
|
|
const js = require("./js");
|
|
|
|
js.gulptasksJS($, gulp, buildFolder, browserSync);
|
|
|
|
|
|
|
|
const html = require("./html");
|
|
|
|
html.gulptasksHTML($, gulp, buildFolder, browserSync);
|
|
|
|
|
|
|
|
const ftp = require("./ftp");
|
|
|
|
ftp.gulptasksFTP($, gulp, buildFolder);
|
|
|
|
|
|
|
|
const docs = require("./docs");
|
|
|
|
docs.gulptasksDocs($, gulp, buildFolder);
|
|
|
|
|
|
|
|
const standalone = require("./standalone");
|
|
|
|
standalone.gulptasksStandalone($, gulp, buildFolder);
|
|
|
|
|
2020-10-01 08:20:47 +00:00
|
|
|
const releaseUploader = require("./release-uploader");
|
|
|
|
releaseUploader.gulptasksReleaseUploader($, gulp, buildFolder);
|
|
|
|
|
2020-09-23 13:20:12 +00:00
|
|
|
const translations = require("./translations");
|
|
|
|
translations.gulptasksTranslations($, gulp, buildFolder);
|
|
|
|
|
|
|
|
///////////////////// BUILD TASKS /////////////////////
|
|
|
|
|
|
|
|
// Cleans up everything
|
|
|
|
gulp.task("utils.cleanBuildFolder", () => {
|
|
|
|
return gulp.src(buildFolder, { read: false, allowEmpty: true }).pipe($.clean({ force: true }));
|
|
|
|
});
|
|
|
|
gulp.task("utils.cleanBuildTempFolder", () => {
|
|
|
|
return gulp
|
|
|
|
.src(path.join(__dirname, "..", "src", "js", "built-temp"), { read: false, allowEmpty: true })
|
|
|
|
.pipe($.clean({ force: true }));
|
|
|
|
});
|
2020-10-06 15:25:58 +00:00
|
|
|
gulp.task("utils.cleanImageBuildFolder", () => {
|
|
|
|
return gulp
|
|
|
|
.src(path.join(__dirname, "res_built"), { read: false, allowEmpty: true })
|
|
|
|
.pipe($.clean({ force: true }));
|
|
|
|
});
|
2020-09-23 13:20:12 +00:00
|
|
|
|
2020-10-06 15:25:58 +00:00
|
|
|
gulp.task(
|
|
|
|
"utils.cleanup",
|
|
|
|
gulp.series("utils.cleanBuildFolder", "utils.cleanImageBuildFolder", "utils.cleanBuildTempFolder")
|
|
|
|
);
|
2020-09-23 13:20:12 +00:00
|
|
|
|
|
|
|
// Requires no uncomitted files
|
|
|
|
gulp.task("utils.requireCleanWorkingTree", cb => {
|
|
|
|
let output = $.trim(execSync("git status -su").toString("ascii")).replace(/\r/gi, "").split("\n");
|
|
|
|
|
|
|
|
// Filter files which are OK to be untracked
|
|
|
|
output = output
|
|
|
|
.map(x => x.replace(/[\r\n]+/gi, ""))
|
|
|
|
.filter(x => x.indexOf(".local.js") < 0)
|
|
|
|
.filter(x => x.length > 0);
|
|
|
|
if (output.length > 0) {
|
|
|
|
console.error("\n\nYou have unstaged changes, please commit everything first!");
|
|
|
|
console.error("Unstaged files:");
|
|
|
|
console.error(output.map(x => "'" + x + "'").join("\n"));
|
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
cb();
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task("utils.copyAdditionalBuildFiles", cb => {
|
|
|
|
const additionalFolder = path.join("additional_build_files");
|
|
|
|
const additionalSrcGlobs = [
|
|
|
|
path.join(additionalFolder, "**/*.*"),
|
|
|
|
path.join(additionalFolder, "**/.*"),
|
|
|
|
path.join(additionalFolder, "**/*"),
|
|
|
|
];
|
|
|
|
|
|
|
|
return gulp.src(additionalSrcGlobs).pipe(gulp.dest(buildFolder));
|
|
|
|
});
|
|
|
|
|
|
|
|
// Starts a webserver on the built directory (useful for testing prod build)
|
|
|
|
gulp.task("main.webserver", () => {
|
|
|
|
return gulp.src(buildFolder).pipe(
|
|
|
|
$.webserver({
|
|
|
|
livereload: {
|
|
|
|
enable: true,
|
|
|
|
},
|
|
|
|
directoryListing: false,
|
|
|
|
open: true,
|
|
|
|
port: 3005,
|
|
|
|
})
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2021-05-25 07:19:57 +00:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @param {object} param0
|
|
|
|
* @param {"web"|"standalone"|"china"|"wegame"} param0.version
|
|
|
|
*/
|
|
|
|
function serve({ version = "web" }) {
|
2020-09-23 13:20:12 +00:00
|
|
|
browserSync.init({
|
Mod Support - 1.5.0 Update (#1361)
* initial modloader draft
* modloader features
* Refactor mods to use signals
* Add support for modifying and registering new transltions
* Minor adjustments
* Support for string building ids for mods
* Initial support for adding new buildings
* Refactor how mods are loaded to resolve circular dependencies and prepare for future mod loading
* Lazy Load mods to make sure all dependencies are loaded
* Expose all exported members automatically to mods
* Fix duplicate exports
* Allow loading mods from standalone
* update changelog
* Fix mods folder incorrect path
* Fix modloading in standalone
* Fix sprites not getting replaced, update demo mod
* Load dev mod via raw loader
* Improve mod developing so mods are directly ready to be deployed, load mods from local file server
* Proper mods ui
* Allow mods to register game systems and draw stuff
* Change mods path
* Fix sprites not loading
* Minor adjustments, closes #1333
* Add support for loading atlases via mods
* Add support for loading mods from external sources in DEV
* Add confirmation when loading mods
* Fix circular dependency
* Minor Keybindings refactor, add support for keybindings to mods, add support for dialogs to mods
* Add some mod signals
* refactor game loading states
* Make shapez exports global
* Start to make mods safer
* Refactor file system electron event handling
* Properly isolate electron renderer process
* Update to latest electron
* Show errors when loading mods
* Update confirm dialgo
* Minor restructure, start to add mod examples
* Allow adding custom themesw
* Add more examples and allow defining custom item processor operations
* Add interface to register new buildings
* Fixed typescript type errors (#1335)
* Refactor building registry, make it easier for mods to add new buildings
* Allow overriding existing methods
* Add more examples and more features
* More mod examples
* Make mod loading simpler
* Add example how to add custom drawings
* Remove unused code
* Minor modloader adjustments
* Support for rotation variants in mods (was broken previously)
* Allow mods to replace builtin sub shapes
* Add helper methods to extend classes
* Fix menu bar on mac os
* Remember window state
* Add support for paste signals
* Add example how to add custom components and systems
* Support for mod settings
* Add example for adding a new item type
* Update class extensions
* Minor adjustments
* Fix typo
* Add notification blocks mod example
* Add small tutorial
* Update readme
* Add better instructions
* Update JSDoc for Replacing Methods (#1336)
* upgraded types for overriding methods
* updated comments
Co-authored-by: Edward Badel <you@example.com>
* Direction lock now indicates when there is a building inbetween
* Fix mod examples
* Fix linter error
* Game state register (#1341)
* Added a gamestate register helper
Added a gamestate register helper
* Update mod_interface.js
* export build options
* Fix runBeforeMethod and runAfterMethod
* Minor game system code cleanup
* Belt path drawing optimization
* Fix belt path optimization
* Belt drawing improvements, again
* Do not render belts in statics disabled view
* Allow external URL to load more than one mod (#1337)
* Allow external URL to load more than one mod
Instead of loading the text returned from the remote server, load a JSON object with a `mods` field, containing strings of all the mods. This lets us work on more than one mod at a time or without separate repos. This will break tooling such as `create-shapezio-mod` though.
* Update modloader.js
* Prettier fixes
* Added link to create-shapezio-mod npm page (#1339)
Added link to create-shapezio-mod npm page: https://www.npmjs.com/package/create-shapezio-mod
* allow command line switch to load more than one mod (#1342)
* Fixed class handle type (#1345)
* Fixed class handle type
* Fixed import game state
* Minor adjustments
* Refactor item acceptor to allow only single direction slots
* Allow specifying minimumGameVersion
* Add sandbox example
* Replaced concatenated strings with template literals (#1347)
* Mod improvements
* Make wired pins component optional on the storage
* Fix mod examples
* Bind `this` for method overriding JSDoc (#1352)
* fix entity debugger reaching HTML elements (#1353)
* Store mods in savegame and show warning when it differs
* Closes #1357
* Fix All Shapez Exports Being Const (#1358)
* Allowed setting of variables inside webpack modules
* remove console log
* Fix stringification of things inside of eval
Co-authored-by: Edward Badel <you@example.com>
* Fix building placer intersection warning
* Add example for storing data in the savegame
* Fix double painter bug (#1349)
* Add example on how to extend builtin buildings
* update readme
* Disable steam achievements when playing with mods
* Update translations
Co-authored-by: Thomas (DJ1TJOO) <44841260+DJ1TJOO@users.noreply.github.com>
Co-authored-by: Bagel03 <70449196+Bagel03@users.noreply.github.com>
Co-authored-by: Edward Badel <you@example.com>
Co-authored-by: Emerald Block <69981203+EmeraldBlock@users.noreply.github.com>
Co-authored-by: saile515 <63782477+saile515@users.noreply.github.com>
Co-authored-by: Sense101 <67970865+Sense101@users.noreply.github.com>
2022-02-01 15:35:49 +00:00
|
|
|
server: [buildFolder, path.join(baseDir, "mod_examples")],
|
2020-09-23 13:20:12 +00:00
|
|
|
port: 3005,
|
|
|
|
ghostMode: {
|
|
|
|
clicks: false,
|
|
|
|
scroll: false,
|
|
|
|
location: false,
|
|
|
|
forms: false,
|
|
|
|
},
|
|
|
|
logLevel: "info",
|
|
|
|
logPrefix: "BS",
|
|
|
|
online: false,
|
|
|
|
xip: false,
|
|
|
|
notify: false,
|
|
|
|
reloadDebounce: 100,
|
|
|
|
reloadOnRestart: true,
|
|
|
|
watchEvents: ["add", "change"],
|
|
|
|
});
|
|
|
|
|
|
|
|
// Watch .scss files, those trigger a css rebuild
|
|
|
|
gulp.watch(["../src/**/*.scss"], gulp.series("css.dev"));
|
|
|
|
|
|
|
|
// Watch .html files, those trigger a html rebuild
|
2021-05-25 07:19:57 +00:00
|
|
|
gulp.watch("../src/**/*.html", gulp.series(version === "web" ? "html.dev" : "html.standalone-dev"));
|
2020-09-23 13:20:12 +00:00
|
|
|
|
|
|
|
// Watch sound files
|
|
|
|
// gulp.watch(["../res_raw/sounds/**/*.mp3", "../res_raw/sounds/**/*.wav"], gulp.series("sounds.dev"));
|
|
|
|
|
|
|
|
// Watch translations
|
|
|
|
gulp.watch("../translations/**/*.yaml", gulp.series("translations.convertToJson"));
|
|
|
|
|
|
|
|
gulp.watch(
|
|
|
|
["../res_raw/sounds/sfx/*.mp3", "../res_raw/sounds/sfx/*.wav"],
|
|
|
|
gulp.series("sounds.sfx", "sounds.copy")
|
|
|
|
);
|
|
|
|
gulp.watch(
|
|
|
|
["../res_raw/sounds/music/*.mp3", "../res_raw/sounds/music/*.wav"],
|
|
|
|
gulp.series("sounds.music", "sounds.copy")
|
|
|
|
);
|
|
|
|
|
|
|
|
// Watch resource files and copy them on change
|
2020-10-04 07:21:37 +00:00
|
|
|
gulp.watch(imgres.rawImageResourcesGlobs, gulp.series("imgres.buildAtlas"));
|
2020-09-23 13:20:12 +00:00
|
|
|
gulp.watch(imgres.nonImageResourcesGlobs, gulp.series("imgres.copyNonImageResources"));
|
|
|
|
gulp.watch(imgres.imageResourcesGlobs, gulp.series("imgres.copyImageResources"));
|
|
|
|
|
|
|
|
// Watch .atlas files and recompile the atlas on change
|
2020-10-04 07:21:37 +00:00
|
|
|
gulp.watch("../res_built/atlas/*.atlas", gulp.series("imgres.atlasToJson"));
|
2020-09-23 13:20:12 +00:00
|
|
|
gulp.watch("../res_built/atlas/*.json", gulp.series("imgres.atlas"));
|
|
|
|
|
|
|
|
// Watch the build folder and reload when anything changed
|
|
|
|
const extensions = ["html", "js", "png", "gif", "jpg", "svg", "mp3", "ico", "woff2", "json"];
|
|
|
|
gulp.watch(extensions.map(ext => path.join(buildFolder, "**", "*." + ext))).on("change", function (path) {
|
|
|
|
return gulp.src(path).pipe(browserSync.reload({ stream: true }));
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.watch("../src/js/built-temp/*.json").on("change", function (path) {
|
|
|
|
return gulp.src(path).pipe(browserSync.reload({ stream: true }));
|
|
|
|
});
|
|
|
|
|
2021-05-25 07:19:57 +00:00
|
|
|
switch (version) {
|
|
|
|
case "web": {
|
2021-03-09 09:07:19 +00:00
|
|
|
gulp.series("js.dev.watch")(() => true);
|
2021-05-25 07:19:57 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case "standalone": {
|
|
|
|
gulp.series("js.standalone-dev.watch")(() => true);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case "china": {
|
|
|
|
gulp.series("china.js.dev.watch")(() => true);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case "wegame": {
|
|
|
|
gulp.series("wegame.js.dev.watch")(() => true);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
default: {
|
|
|
|
throw new Error("Unknown version " + version);
|
2021-03-09 09:07:19 +00:00
|
|
|
}
|
2020-09-23 13:20:12 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
///////////////////// RUNNABLE TASKS /////////////////////
|
|
|
|
|
|
|
|
// Pre and postbuild
|
|
|
|
gulp.task("step.baseResources", gulp.series("imgres.allOptimized"));
|
|
|
|
gulp.task("step.deleteEmpty", cb => {
|
|
|
|
deleteEmpty.sync(buildFolder);
|
|
|
|
cb();
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task("step.postbuild", gulp.series("imgres.cleanupUnusedCssInlineImages", "step.deleteEmpty"));
|
|
|
|
|
|
|
|
// Builds everything (dev)
|
|
|
|
gulp.task(
|
|
|
|
"build.dev",
|
|
|
|
gulp.series(
|
|
|
|
"utils.cleanup",
|
|
|
|
"utils.copyAdditionalBuildFiles",
|
Achievements (#1087)
* [WIP] Add boilerplate for achievement implementation
* Add config.local.template.js and rm cached copy of config.local.js
* [WIP] Implement painting, cutting, rotating achievements (to log only)
* [WIP] Refactor achievements, jsdoc fixes, add npm script
- Refactor achievements to make use of Signals
- Move implemented achievement interfaces to appropriate
platform folders (SteamAchievements in currently in use
in browser wrapper for testing)
- Fix invalid jsdocs
- Add dev-standalone script to package.json scripts
* Add steam/greenworks IPC calls and optional private-artifact dependency
* Include private artifacts in standalone builds
* Uncomment appid include
* [WIP] Add steam overlay fix, add hash to artifact dependency
* Update electron, greenworks. Add task to add local config if not present
* Add more achievements, refactor achievement code
* Add receiver flexibility and more achievements
- Add check to see if necessary to create achievement and add receiver
- Add remove receiver functionality when achievement is unlocked
* Add achievements and accommodations for switching states
- Fix startup code to avoid clobbering achievements on state switch
- Add a few more achievements
* Add achievements, ids. Update names, keys for consistency
* Add play time achievements
* [WIP] Add more achievements
* Add more achievements. Add bulk achievement check signal
* [WIP] Add achievements. Start savefile migration
* Add achievements. Add savefile migration
* Remove superfluous achievement stat
* Update lock files, fix merge conflict
2021-03-10 06:33:39 +00:00
|
|
|
"localConfig.findOrCreate",
|
2020-10-04 07:21:37 +00:00
|
|
|
"imgres.buildAtlas",
|
|
|
|
"imgres.atlasToJson",
|
2020-09-23 13:20:12 +00:00
|
|
|
"imgres.atlas",
|
|
|
|
"sounds.dev",
|
|
|
|
"imgres.copyImageResources",
|
|
|
|
"imgres.copyNonImageResources",
|
|
|
|
"translations.fullBuild",
|
|
|
|
"css.dev",
|
|
|
|
"html.dev"
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
// Builds everything (standalone -dev)
|
|
|
|
gulp.task(
|
|
|
|
"build.standalone.dev",
|
|
|
|
gulp.series(
|
|
|
|
"utils.cleanup",
|
Achievements (#1087)
* [WIP] Add boilerplate for achievement implementation
* Add config.local.template.js and rm cached copy of config.local.js
* [WIP] Implement painting, cutting, rotating achievements (to log only)
* [WIP] Refactor achievements, jsdoc fixes, add npm script
- Refactor achievements to make use of Signals
- Move implemented achievement interfaces to appropriate
platform folders (SteamAchievements in currently in use
in browser wrapper for testing)
- Fix invalid jsdocs
- Add dev-standalone script to package.json scripts
* Add steam/greenworks IPC calls and optional private-artifact dependency
* Include private artifacts in standalone builds
* Uncomment appid include
* [WIP] Add steam overlay fix, add hash to artifact dependency
* Update electron, greenworks. Add task to add local config if not present
* Add more achievements, refactor achievement code
* Add receiver flexibility and more achievements
- Add check to see if necessary to create achievement and add receiver
- Add remove receiver functionality when achievement is unlocked
* Add achievements and accommodations for switching states
- Fix startup code to avoid clobbering achievements on state switch
- Add a few more achievements
* Add achievements, ids. Update names, keys for consistency
* Add play time achievements
* [WIP] Add more achievements
* Add more achievements. Add bulk achievement check signal
* [WIP] Add achievements. Start savefile migration
* Add achievements. Add savefile migration
* Remove superfluous achievement stat
* Update lock files, fix merge conflict
2021-03-10 06:33:39 +00:00
|
|
|
"localConfig.findOrCreate",
|
2020-10-06 15:25:58 +00:00
|
|
|
"imgres.buildAtlas",
|
|
|
|
"imgres.atlasToJson",
|
2020-09-23 13:20:12 +00:00
|
|
|
"imgres.atlas",
|
|
|
|
"sounds.dev",
|
|
|
|
"imgres.copyImageResources",
|
|
|
|
"imgres.copyNonImageResources",
|
|
|
|
"translations.fullBuild",
|
|
|
|
"css.dev",
|
|
|
|
"html.standalone-dev"
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
// Builds everything (staging)
|
|
|
|
gulp.task("step.staging.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.staging"));
|
|
|
|
gulp.task(
|
|
|
|
"step.staging.mainbuild",
|
|
|
|
gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.staging.code")
|
|
|
|
);
|
|
|
|
gulp.task("step.staging.all", gulp.series("step.staging.mainbuild", "css.prod", "html.staging"));
|
|
|
|
gulp.task("build.staging", gulp.series("utils.cleanup", "step.staging.all", "step.postbuild"));
|
|
|
|
|
|
|
|
// Builds everything (prod)
|
|
|
|
gulp.task("step.prod.code", gulp.series("sounds.fullbuild", "translations.fullBuild", "js.prod"));
|
|
|
|
gulp.task(
|
|
|
|
"step.prod.mainbuild",
|
|
|
|
gulp.parallel("utils.copyAdditionalBuildFiles", "step.baseResources", "step.prod.code")
|
|
|
|
);
|
|
|
|
gulp.task("step.prod.all", gulp.series("step.prod.mainbuild", "css.prod", "html.prod"));
|
|
|
|
gulp.task("build.prod", gulp.series("utils.cleanup", "step.prod.all", "step.postbuild"));
|
|
|
|
|
|
|
|
// Builds everything (standalone-beta)
|
|
|
|
gulp.task(
|
|
|
|
"step.standalone-beta.code",
|
|
|
|
gulp.series("sounds.fullbuildHQ", "translations.fullBuild", "js.standalone-beta")
|
|
|
|
);
|
|
|
|
gulp.task("step.standalone-beta.mainbuild", gulp.parallel("step.baseResources", "step.standalone-beta.code"));
|
|
|
|
gulp.task(
|
|
|
|
"step.standalone-beta.all",
|
|
|
|
gulp.series("step.standalone-beta.mainbuild", "css.prod-standalone", "html.standalone-beta")
|
|
|
|
);
|
|
|
|
gulp.task(
|
|
|
|
"build.standalone-beta",
|
|
|
|
gulp.series("utils.cleanup", "step.standalone-beta.all", "step.postbuild")
|
|
|
|
);
|
|
|
|
|
|
|
|
// Builds everything (standalone-prod)
|
|
|
|
|
2021-05-25 07:19:57 +00:00
|
|
|
for (const prefix of ["", "china.", "wegame."]) {
|
2021-03-09 09:07:19 +00:00
|
|
|
gulp.task(
|
|
|
|
prefix + "step.standalone-prod.code",
|
|
|
|
gulp.series("sounds.fullbuildHQ", "translations.fullBuild", prefix + "js.standalone-prod")
|
|
|
|
);
|
|
|
|
|
|
|
|
gulp.task(
|
|
|
|
prefix + "step.standalone-prod.mainbuild",
|
|
|
|
gulp.parallel("step.baseResources", prefix + "step.standalone-prod.code")
|
|
|
|
);
|
|
|
|
|
|
|
|
gulp.task(
|
|
|
|
prefix + "step.standalone-prod.all",
|
|
|
|
gulp.series(prefix + "step.standalone-prod.mainbuild", "css.prod-standalone", "html.standalone-prod")
|
|
|
|
);
|
|
|
|
|
|
|
|
gulp.task(
|
|
|
|
prefix + "build.standalone-prod",
|
|
|
|
gulp.series("utils.cleanup", prefix + "step.standalone-prod.all", "step.postbuild")
|
|
|
|
);
|
|
|
|
}
|
2020-10-01 08:20:47 +00:00
|
|
|
|
2022-04-13 13:43:58 +00:00
|
|
|
// OS X build and release upload
|
|
|
|
gulp.task(
|
|
|
|
"build.darwin64-prod",
|
|
|
|
gulp.series(
|
|
|
|
"build.standalone-prod",
|
|
|
|
"standalone.prepare",
|
|
|
|
"standalone.package.prod.darwin64.signManually"
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
2020-09-23 13:20:12 +00:00
|
|
|
// Deploying!
|
|
|
|
gulp.task(
|
|
|
|
"main.deploy.alpha",
|
|
|
|
gulp.series("utils.requireCleanWorkingTree", "build.staging", "ftp.upload.alpha")
|
|
|
|
);
|
|
|
|
gulp.task(
|
|
|
|
"main.deploy.staging",
|
|
|
|
gulp.series("utils.requireCleanWorkingTree", "build.staging", "ftp.upload.staging")
|
|
|
|
);
|
|
|
|
gulp.task("main.deploy.prod", gulp.series("utils.requireCleanWorkingTree", "build.prod", "ftp.upload.prod"));
|
|
|
|
gulp.task("main.deploy.all", gulp.series("main.deploy.staging", "main.deploy.prod"));
|
2021-05-25 07:19:57 +00:00
|
|
|
|
|
|
|
// steam
|
2021-03-09 09:07:19 +00:00
|
|
|
gulp.task("regular.main.standalone", gulp.series("build.standalone-prod", "standalone.package.prod"));
|
2021-05-25 07:19:57 +00:00
|
|
|
|
|
|
|
// china
|
2021-03-09 09:07:19 +00:00
|
|
|
gulp.task(
|
|
|
|
"china.main.standalone",
|
|
|
|
gulp.series("china.build.standalone-prod", "china.standalone.package.prod")
|
|
|
|
);
|
2021-05-25 07:19:57 +00:00
|
|
|
|
|
|
|
// wegame
|
|
|
|
gulp.task(
|
|
|
|
"wegame.main.standalone",
|
|
|
|
gulp.series("wegame.build.standalone-prod", "wegame.standalone.package.prod")
|
|
|
|
);
|
|
|
|
|
|
|
|
// all (except wegame)
|
2021-05-25 07:42:30 +00:00
|
|
|
gulp.task("standalone.steam", gulp.series("regular.main.standalone", "china.main.standalone"));
|
|
|
|
gulp.task(
|
|
|
|
"standalone.all",
|
|
|
|
gulp.series("regular.main.standalone", "china.main.standalone", "wegame.main.standalone")
|
|
|
|
);
|
2020-09-23 13:20:12 +00:00
|
|
|
|
|
|
|
// Live-development
|
|
|
|
gulp.task(
|
|
|
|
"main.serveDev",
|
2021-05-25 07:19:57 +00:00
|
|
|
gulp.series("build.dev", () => serve({ version: "web" }))
|
2020-09-23 13:20:12 +00:00
|
|
|
);
|
|
|
|
gulp.task(
|
|
|
|
"main.serveStandalone",
|
2021-05-25 07:19:57 +00:00
|
|
|
gulp.series("build.standalone.dev", () => serve({ version: "standalone" }))
|
2020-09-23 13:20:12 +00:00
|
|
|
);
|
2021-03-09 09:07:19 +00:00
|
|
|
gulp.task(
|
|
|
|
"china.main.serveDev",
|
2021-05-25 07:19:57 +00:00
|
|
|
gulp.series("build.dev", () => serve({ version: "china" }))
|
|
|
|
);
|
|
|
|
gulp.task(
|
|
|
|
"wegame.main.serveDev",
|
|
|
|
gulp.series("build.dev", () => serve({ version: "wegame" }))
|
2021-03-09 09:07:19 +00:00
|
|
|
);
|
2020-09-23 13:20:12 +00:00
|
|
|
|
|
|
|
gulp.task("default", gulp.series("main.serveDev"));
|