Merge branch 'master' into patch-2
37
README.md
@ -55,6 +55,43 @@ The code within the engine is relatively clean with some code for the actual gam
|
||||
|
||||
This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop.
|
||||
|
||||
#### Adding a new component
|
||||
|
||||
1. Create the component file in `src/js/game/components/<name_lowercase>.js`
|
||||
2. Create a component class (e.g. `MyFancyComponent`) which `extends Component`
|
||||
3. Create a `static getId()` method which should return the `CamelCaseName` without component (e.g. `MyFancy`)
|
||||
4. If any data needs to be persisted, create a `static getSchema()` which should return the properties to be saved (See other components)
|
||||
5. Add a constructor. **The constructor must be called with optional parameters only!** `new MyFancyComponent({})` should always work.
|
||||
6. Add any props you need in the constructor.
|
||||
7. Add the component in `src/js/game/component_registry.js`
|
||||
8. Add the componetn in `src/js/game/entity_components.js`
|
||||
9. Done! You can use your component now
|
||||
|
||||
#### Adding a new building
|
||||
|
||||
(The easiest way is to copy an existing building)
|
||||
|
||||
1. Create your building in `src/js/game/buildings/<my_building.js>`
|
||||
2. Create the building meta class, e.g. `MetaMyFancyBuilding extends MetaBuilding`
|
||||
3. Override the methods from MetaBuilding you want to override.
|
||||
4. Most important is `setupEntityComponents`
|
||||
5. Add the building to `src/js/game/meta_building_registry.js`: You need to register it on the registry, and also call `registerBuildingVariant`.
|
||||
6. Add the building to the right toolbar, e.g. `src/js/game/hud/parts/buildings_toolbar.js`:`supportedBuildings`
|
||||
7. Add a keybinding for the building in `src/js/game/key_action_mapper.js` in `KEYMAPPINGS.buildings`
|
||||
8. In `translations/base-en.yaml` add it to two sections: `buildings.[my_building].XXX` (See other buildings) and also `keybindings.mappings.[my_building]`. Be sure to do it the same way as other buildings do!
|
||||
9. Create a icon (128x128, [prefab](https://github.com/tobspr/shapez.io-artwork/blob/master/ui/toolbar-icons.psd)) for your building and save it in `res/ui/buildings_icons` with the id of your building
|
||||
10. Create a tutorial image (600x600) for your building and save it in `res/ui/building_tutorials`
|
||||
11. In `src/css/icons.scss` add your building to `$buildings` as well as `$buildingAndVariants`
|
||||
12. Done! Optional: Add a new reward for unlocking your building at some point.
|
||||
|
||||
#### Adding a new game system
|
||||
|
||||
1. Create the class in `src/js/game/systems/<system_name>.js`
|
||||
2. Derive it from `GameSystemWithFilter` if you want it to work on certain entities only which have the given components. Otherwise use `GameSystem` to do more generic stuff.
|
||||
3. Implement the `update()` method.
|
||||
4. Add the system in `src/js/game/game_system_manager.js` (To `this.systems` and also call `add` in the `internalInitSystems()` method)
|
||||
5. If your system should draw stuff, this is a bit more complicated. Have a look at existing systems on how they do it.
|
||||
|
||||
### Assets
|
||||
|
||||
For most assets I use Adobe Photoshop, you can find them in `assets/`.
|
||||
|
@ -11,6 +11,7 @@ module.exports = {
|
||||
);
|
||||
return commitHash.replace(/^\s+|\s+$/g, "");
|
||||
},
|
||||
|
||||
getAllResourceImages() {
|
||||
return glob
|
||||
.sync("res/**/*.@(png|svg|jpg)", { cwd: ".." })
|
||||
@ -24,18 +25,6 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
|
||||
getAllAtlasImages() {
|
||||
return glob
|
||||
.sync("res_built/atlas/*.png", { cwd: ".." })
|
||||
.map(s => s.replace("res_built/atlas/", "res/"));
|
||||
},
|
||||
|
||||
getAllSounds() {
|
||||
return glob
|
||||
.sync("res_built/sounds/**/*.mp3", { cwd: ".." })
|
||||
.map(s => s.replace("res_built/sounds/", "res/sounds/"));
|
||||
},
|
||||
|
||||
getVersion() {
|
||||
return trim(fs.readFileSync(path.join(__dirname, "..", "version")).toString());
|
||||
},
|
||||
|
19
gulp/cordova.js
vendored
@ -132,25 +132,6 @@ function gulptasksCordova($, gulp, buildFolder) {
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// gulp.task("pushToStagingRepo", (cb) => {
|
||||
// var cmd = spawn('../push-pgb.sh', ['https://TOKEN@github.com/tobspr/shapezapp-cordova-buildslave.git'],
|
||||
// { stdio: 'inherit', stdout: 'inherit', stderr: 'inherit', shell: true });
|
||||
// cmd.on('close', function (code) {
|
||||
// console.log('push staging exited with code ' + code + " / " + cmd.stdout + " / " + cmd.stderr);
|
||||
// cb(code);
|
||||
// });
|
||||
|
||||
// });
|
||||
|
||||
// gulp.task("pushToProdRepo", (cb) => {
|
||||
// var cmd = spawn('../push-pgb.sh', ['https://TOKEN@github.com/tobspr/shapezapp-cordova-buildslave-release.git'],
|
||||
// { stdio: 'inherit', stdout: 'inherit', stderr: 'inherit', shell: true });
|
||||
// cmd.on('close', function (code) {
|
||||
// console.log('push prod exited with code ' + code + " / " + cmd.stdout + " / " + cmd.stderr);
|
||||
// cb(code);
|
||||
// });
|
||||
// });
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
@ -77,7 +77,6 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) {
|
||||
.pipe($.plumber())
|
||||
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
||||
.pipe($.postcss(postcssPlugins(true, { cachebust: true })))
|
||||
// .pipe($.cssbeautify())
|
||||
.pipe(gulp.dest(buildFolder))
|
||||
);
|
||||
});
|
||||
@ -90,7 +89,6 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) {
|
||||
.pipe($.plumber())
|
||||
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
||||
.pipe($.postcss(postcssPlugins(true, { cachebust: false })))
|
||||
// .pipe($.cssbeautify())
|
||||
.pipe(gulp.dest(buildFolder))
|
||||
);
|
||||
});
|
||||
|
67
gulp/html.js
@ -9,7 +9,7 @@ function computeIntegrityHash(fullPath, algorithm = "sha256") {
|
||||
return algorithm + "-" + hash;
|
||||
}
|
||||
|
||||
function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
function gulptasksHTML($, gulp, buildFolder) {
|
||||
const commitHash = buildUtils.getRevision();
|
||||
async function buildHtml(
|
||||
apiUrl,
|
||||
@ -27,9 +27,8 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
return gulp
|
||||
.src("../src/html/" + (standalone ? "index.standalone.html" : "index.html"))
|
||||
.pipe(
|
||||
$.dom(function () {
|
||||
// @ts-ignore
|
||||
const document = /** @type {Document} */ (this);
|
||||
$.dom(/** @this {Document} **/ function () {
|
||||
const document = this;
|
||||
|
||||
// Preconnect to api
|
||||
const prefetchLink = document.createElement("link");
|
||||
@ -38,21 +37,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
prefetchLink.setAttribute("crossorigin", "anonymous");
|
||||
document.head.appendChild(prefetchLink);
|
||||
|
||||
// // Append css preload
|
||||
// const cssPreload = document.createElement("link");
|
||||
// cssPreload.rel = "preload";
|
||||
// cssPreload.href = cachebust("main.css");
|
||||
// cssPreload.setAttribute("as", "style");
|
||||
// document.head.appendChild(cssPreload);
|
||||
// document.head.appendChild(prefetchLink);
|
||||
|
||||
// // Append js preload
|
||||
// const jsPreload = document.createElement("link");
|
||||
// jsPreload.rel = "preload";
|
||||
// jsPreload.href = cachebust("bundle.js");
|
||||
// jsPreload.setAttribute("as", "script");
|
||||
// document.head.appendChild(jsPreload);
|
||||
|
||||
// Append css
|
||||
const css = document.createElement("link");
|
||||
css.rel = "stylesheet";
|
||||
@ -68,17 +52,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
}
|
||||
document.head.appendChild(css);
|
||||
|
||||
if (analytics) {
|
||||
// Logrocket
|
||||
// const logrocketScript = document.createElement("script");
|
||||
// logrocketScript.src = "https://cdn.lr-ingest.io/LogRocket.min.js";
|
||||
// logrocketScript.setAttribute("crossorigin", "anonymous");
|
||||
// document.head.appendChild(logrocketScript);
|
||||
// const logrocketInit = document.createElement("script");
|
||||
// logrocketInit.textContent = "window.LogRocket && window.LogRocket.init('TODO: GET LOGROCKET ID');";
|
||||
// document.head.appendChild(logrocketInit);
|
||||
}
|
||||
|
||||
if (app) {
|
||||
// Append cordova link
|
||||
const cdv = document.createElement("script");
|
||||
@ -114,18 +87,9 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
|
||||
// Do not need to preload in app or standalone
|
||||
if (!hasLocalFiles) {
|
||||
// Preload images
|
||||
const images = buildUtils.getAllResourceImages();
|
||||
|
||||
// Preload essentials
|
||||
const preloads = ["fonts/GameFont.woff2"];
|
||||
|
||||
// for (let i = 0; i < images.length; ++i) {
|
||||
// if (preloads.indexOf(images[i]) < 0) {
|
||||
// preloads.push(images[i]);
|
||||
// }
|
||||
// }
|
||||
|
||||
preloads.forEach(src => {
|
||||
const preloadLink = document.createElement("link");
|
||||
preloadLink.rel = "preload";
|
||||
@ -138,23 +102,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
}
|
||||
document.head.appendChild(preloadLink);
|
||||
});
|
||||
|
||||
// Sound preloads
|
||||
// const sounds = buildUtils.getAllSounds();
|
||||
// sounds.forEach((src) => {
|
||||
|
||||
// if (src.indexOf("sounds/music/") >= 0) {
|
||||
// // skip music
|
||||
// return;
|
||||
// }
|
||||
|
||||
// const preloadLink = document.createElement("link");
|
||||
// preloadLink.rel = "preload";
|
||||
// preloadLink.href = cachebust(src);
|
||||
// // preloadLink.setAttribute("crossorigin", "anonymous");
|
||||
// preloadLink.setAttribute("as", "fetch");
|
||||
// document.head.appendChild(preloadLink);
|
||||
// });
|
||||
}
|
||||
|
||||
const loadingSvg = `background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46YXV0bztiYWNrZ3JvdW5kOjAgMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgZGlzcGxheT0iYmxvY2siPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzM5Mzc0NyIgc3Ryb2tlLXdpZHRoPSIzIiByPSI0MiIgc3Ryb2tlLWRhc2hhcnJheT0iMTk3LjkyMDMzNzE3NjE1Njk4IDY3Ljk3MzQ0NTcyNTM4NTY2IiB0cmFuc2Zvcm09InJvdGF0ZSg0OC4yNjUgNTAgNTApIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iNS41NTU1NTU1NTU1NTU1NTVzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIi8+PC9jaXJjbGU+PC9zdmc+")`;
|
||||
@ -167,7 +114,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
font-display: swap;
|
||||
src: url('${cachebust("res/fonts/GameFont.woff2")}') format('woff2');
|
||||
}
|
||||
|
||||
|
||||
#ll_fp {
|
||||
font-family: GameFont;
|
||||
font-size: 14px;
|
||||
@ -177,7 +124,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
left: 0;
|
||||
opacity: 0.05;
|
||||
}
|
||||
|
||||
|
||||
#ll_p {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
@ -190,7 +137,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
#ll_p > div {
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
@ -201,7 +148,7 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
||||
font-family: 'GameFont', sans-serif;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
|
||||
#ll_p > span {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
|
@ -6,12 +6,6 @@ function requireUncached(module) {
|
||||
}
|
||||
|
||||
function gulptasksJS($, gulp, buildFolder, browserSync) {
|
||||
gulp.task("js.prettify", () => {
|
||||
return gulp
|
||||
.src(path.join(buildFolder, "bundle.js"))
|
||||
.pipe($.jsbeautifier(require("./jsbeautify.json")))
|
||||
.pipe(gulp.dest(buildFolder));
|
||||
});
|
||||
|
||||
//// DEV
|
||||
|
||||
@ -71,6 +65,7 @@ function gulptasksJS($, gulp, buildFolder, browserSync) {
|
||||
gulp.task("js.staging", gulp.parallel("js.staging.transpiled", "js.staging.latest"));
|
||||
|
||||
//// PROD
|
||||
|
||||
gulp.task("js.prod.transpiled", () => {
|
||||
return gulp
|
||||
.src("../src/js/main.js")
|
||||
@ -167,8 +162,6 @@ function gulptasksJS($, gulp, buildFolder, browserSync) {
|
||||
)
|
||||
.pipe(gulp.dest(buildFolder));
|
||||
});
|
||||
|
||||
// TODO: Tasks for te app
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
@ -3,7 +3,6 @@
|
||||
"version": "1.0.0",
|
||||
"description": "builder",
|
||||
"private": true,
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"gulp": "gulp"
|
||||
},
|
||||
@ -41,7 +40,6 @@
|
||||
"lz-string": "^1.4.4",
|
||||
"markdown-loader": "^5.1.0",
|
||||
"node-sri": "^1.1.1",
|
||||
"obfuscator-loader": "^1.1.2",
|
||||
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
||||
"promise-polyfill": "^8.1.0",
|
||||
"query-string": "^6.8.1",
|
||||
@ -54,7 +52,6 @@
|
||||
"uglify-template-string-loader": "^1.1.0",
|
||||
"unused-files-webpack-plugin": "^3.4.0",
|
||||
"webpack": "^4.43.0",
|
||||
"webpack-bundle-analyzer": "^3.0.3",
|
||||
"webpack-cli": "^3.1.0",
|
||||
"webpack-deep-scope-plugin": "^1.6.0",
|
||||
"webpack-plugin-replace": "^1.1.1",
|
||||
@ -76,8 +73,6 @@
|
||||
"gulp-cache": "^1.1.3",
|
||||
"gulp-cached": "^1.1.1",
|
||||
"gulp-clean": "^0.4.0",
|
||||
"gulp-cssbeautify": "^2.0.1",
|
||||
"gulp-csslint": "^1.0.1",
|
||||
"gulp-dom": "^1.0.0",
|
||||
"gulp-flatten": "^0.4.0",
|
||||
"gulp-fluent-ffmpeg": "^2.0.0",
|
||||
@ -85,8 +80,6 @@
|
||||
"gulp-htmlmin": "^5.0.1",
|
||||
"gulp-if": "^3.0.0",
|
||||
"gulp-imagemin": "^7.1.0",
|
||||
"gulp-javascript-obfuscator": "^1.1.5",
|
||||
"gulp-jsbeautifier": "^3.0.0",
|
||||
"gulp-load-plugins": "^2.0.3",
|
||||
"gulp-phonegap-build": "^0.1.5",
|
||||
"gulp-plumber": "^1.2.1",
|
||||
@ -104,13 +97,11 @@
|
||||
"imagemin-pngquant": "^9.0.0",
|
||||
"jimp": "^0.6.1",
|
||||
"js-yaml": "^3.13.1",
|
||||
"onesky-fetch": "^0.0.7",
|
||||
"postcss-assets": "^5.0.0",
|
||||
"postcss-preset-env": "^6.5.0",
|
||||
"postcss-round-subpixels": "^1.2.0",
|
||||
"postcss-unprefix": "^2.1.3",
|
||||
"sass-unused": "^0.3.0",
|
||||
"speed-measure-webpack-plugin": "^1.3.1",
|
||||
"strip-json-comments": "^3.0.1",
|
||||
"trim": "^0.0.1",
|
||||
"webpack-stream": "^5.2.1",
|
||||
|
@ -1,11 +1,11 @@
|
||||
const packager = require("electron-packager");
|
||||
const path = require("path");
|
||||
const buildutils = require("./buildutils");
|
||||
const { getVersion } = require("./buildutils");
|
||||
const fs = require("fs");
|
||||
const fse = require("fs-extra");
|
||||
const execSync = require("child_process").execSync;
|
||||
|
||||
function gulptasksStandalone($, gulp, buildFolder) {
|
||||
function gulptasksStandalone($, gulp) {
|
||||
const electronBaseDir = path.join(__dirname, "..", "electron");
|
||||
|
||||
const tempDestDir = path.join(__dirname, "..", "tmp_standalone_files");
|
||||
@ -47,49 +47,7 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
||||
});
|
||||
|
||||
gulp.task("standalone.prepare.minifyCode", () => {
|
||||
return (
|
||||
gulp
|
||||
.src(path.join(electronBaseDir, "*.js"))
|
||||
// .pipe(
|
||||
// $.terser({
|
||||
// ecma: 6,
|
||||
// parse: {},
|
||||
// module: false,
|
||||
// toplevel: true,
|
||||
// keep_classnames: false,
|
||||
// keep_fnames: false,
|
||||
// safari10: false,
|
||||
// compress: {
|
||||
// arguments: false, // breaks
|
||||
// drop_console: false,
|
||||
// // keep_fargs: false,
|
||||
// keep_infinity: true,
|
||||
// passes: 2,
|
||||
// module: false,
|
||||
// toplevel: true,
|
||||
// unsafe_math: true,
|
||||
// unsafe_arrows: false,
|
||||
// warnings: true,
|
||||
// },
|
||||
// mangle: {
|
||||
// eval: true,
|
||||
// keep_classnames: false,
|
||||
// keep_fnames: false,
|
||||
// module: false,
|
||||
// toplevel: true,
|
||||
// safari10: false,
|
||||
// },
|
||||
// output: {
|
||||
// comments: false,
|
||||
// ascii_only: true,
|
||||
// beautify: false,
|
||||
// braces: false,
|
||||
// ecma: 6,
|
||||
// },
|
||||
// })
|
||||
// )
|
||||
.pipe(gulp.dest(tempDestBuildDir))
|
||||
);
|
||||
return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir));
|
||||
});
|
||||
|
||||
gulp.task("standalone.prepare.copyGamefiles", () => {
|
||||
@ -122,15 +80,14 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
||||
* @param {'win32'|'linux'|'darwin'} platform
|
||||
* @param {'x64'|'ia32'} arch
|
||||
* @param {function():void} cb
|
||||
* @param {boolean=} isRelease
|
||||
*/
|
||||
function packageStandalone(platform, arch, cb, isRelease = false) {
|
||||
function packageStandalone(platform, arch, cb) {
|
||||
const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml"));
|
||||
|
||||
packager({
|
||||
dir: tempDestBuildDir,
|
||||
appCopyright: "Tobias Springer",
|
||||
appVersion: buildutils.getVersion(),
|
||||
appVersion: getVersion(),
|
||||
buildVersion: "1.0.0",
|
||||
arch,
|
||||
platform,
|
||||
@ -164,19 +121,6 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
||||
'#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n'
|
||||
);
|
||||
fs.chmodSync(path.join(appPath, "play.sh"), 0o775);
|
||||
} else if (platform === "win32") {
|
||||
// Optional: Create a playable copy. Shouldn't be required
|
||||
// const playablePath = appPath + "_playable";
|
||||
// fse.copySync(appPath, playablePath);
|
||||
// fs.writeFileSync(path.join(playablePath, "steam_appid.txt"), "1134480");
|
||||
// fs.writeFileSync(
|
||||
// path.join(playablePath, "play.bat"),
|
||||
// "start shapezio --dev --disable-direct-composition --in-process-gpu\r\n"
|
||||
// );
|
||||
// fs.writeFileSync(
|
||||
// path.join(playablePath, "play_local.bat"),
|
||||
// "start shapezio --local --dev --disable-direct-composition --in-process-gpu\r\n"
|
||||
// );
|
||||
}
|
||||
|
||||
if (platform === "darwin") {
|
||||
@ -226,11 +170,11 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
||||
);
|
||||
}
|
||||
|
||||
gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb, true));
|
||||
gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb, true));
|
||||
gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb, true));
|
||||
gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb, true));
|
||||
gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb, true));
|
||||
gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb));
|
||||
gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb));
|
||||
gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb));
|
||||
gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb));
|
||||
gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb));
|
||||
|
||||
gulp.task(
|
||||
"standalone.package.prod",
|
||||
@ -240,8 +184,6 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
||||
"standalone.package.prod.win64",
|
||||
"standalone.package.prod.linux64",
|
||||
"standalone.package.prod.darwin64"
|
||||
// "standalone.package.prod.win32",
|
||||
// "standalone.package.prod.linux32",
|
||||
)
|
||||
)
|
||||
);
|
||||
|
@ -5,7 +5,7 @@ const yaml = require("gulp-yaml");
|
||||
const translationsSourceDir = path.join(__dirname, "..", "translations");
|
||||
const translationsJsonDir = path.join(__dirname, "..", "src", "js", "built-temp");
|
||||
|
||||
function gulptasksTranslations($, gulp, buildFolder) {
|
||||
function gulptasksTranslations($, gulp) {
|
||||
gulp.task("translations.convertToJson", () => {
|
||||
return gulp
|
||||
.src(path.join(translationsSourceDir, "*.yaml"))
|
||||
|
@ -2,9 +2,8 @@
|
||||
|
||||
const path = require("path");
|
||||
const webpack = require("webpack");
|
||||
const utils = require("./buildutils");
|
||||
const { getRevision, getVersion, getAllResourceImages } = require("./buildutils");
|
||||
const lzString = require("lz-string");
|
||||
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
||||
const CircularDependencyPlugin = require("circular-dependency-plugin");
|
||||
|
||||
module.exports = ({ watch = false, standalone = false }) => {
|
||||
@ -41,9 +40,9 @@ module.exports = ({ watch = false, standalone = false }) => {
|
||||
G_IS_BROWSER: "true",
|
||||
G_IS_STANDALONE: standalone ? "true" : "false",
|
||||
G_BUILD_TIME: "" + new Date().getTime(),
|
||||
G_BUILD_COMMIT_HASH: JSON.stringify(utils.getRevision()),
|
||||
G_BUILD_VERSION: JSON.stringify(utils.getVersion()),
|
||||
G_ALL_UI_IMAGES: JSON.stringify(utils.getAllResourceImages()),
|
||||
G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()),
|
||||
G_BUILD_VERSION: JSON.stringify(getVersion()),
|
||||
G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()),
|
||||
}),
|
||||
|
||||
new CircularDependencyPlugin({
|
||||
@ -60,7 +59,6 @@ module.exports = ({ watch = false, standalone = false }) => {
|
||||
// set the current working directory for displaying module paths
|
||||
cwd: path.join(__dirname, "..", "src", "js"),
|
||||
}),
|
||||
// new BundleAnalyzerPlugin()
|
||||
],
|
||||
module: {
|
||||
rules: [
|
||||
@ -94,6 +92,16 @@ module.exports = ({ watch = false, standalone = false }) => {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.worker\.js$/,
|
||||
use: {
|
||||
loader: "worker-loader",
|
||||
options: {
|
||||
fallback: false,
|
||||
inline: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
test: /\.ya?ml$/,
|
||||
type: "json", // Required by Webpack v4
|
||||
|
@ -2,14 +2,12 @@
|
||||
|
||||
const path = require("path");
|
||||
const webpack = require("webpack");
|
||||
const utils = require("./buildutils");
|
||||
const { getRevision, getVersion, getAllResourceImages } = require("./buildutils");
|
||||
const lzString = require("lz-string");
|
||||
|
||||
const TerserPlugin = require("terser-webpack-plugin");
|
||||
const StringReplacePlugin = require("string-replace-webpack-plugin");
|
||||
// const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
|
||||
const UnusedFilesPlugin = require("unused-files-webpack-plugin").UnusedFilesWebpackPlugin;
|
||||
// const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
|
||||
|
||||
module.exports = ({
|
||||
enableAssert = false,
|
||||
@ -34,9 +32,9 @@ module.exports = ({
|
||||
G_APP_ENVIRONMENT: JSON.stringify(environment),
|
||||
G_HAVE_ASSERT: enableAssert ? "true" : "false",
|
||||
G_BUILD_TIME: "" + new Date().getTime(),
|
||||
G_BUILD_COMMIT_HASH: JSON.stringify(utils.getRevision()),
|
||||
G_BUILD_VERSION: JSON.stringify(utils.getVersion()),
|
||||
G_ALL_UI_IMAGES: JSON.stringify(utils.getAllResourceImages()),
|
||||
G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()),
|
||||
G_BUILD_VERSION: JSON.stringify(getVersion()),
|
||||
G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()),
|
||||
};
|
||||
|
||||
const minifyNames = environment === "prod";
|
||||
@ -143,9 +141,9 @@ module.exports = ({
|
||||
ecma: es6 ? 6 : 5,
|
||||
preamble:
|
||||
"/* shapez.io Codebase - Copyright 2020 Tobias Springer - " +
|
||||
utils.getVersion() +
|
||||
getVersion() +
|
||||
" @ " +
|
||||
utils.getRevision() +
|
||||
getRevision() +
|
||||
" */",
|
||||
},
|
||||
},
|
||||
@ -164,15 +162,6 @@ module.exports = ({
|
||||
cwd: path.join(__dirname, "..", "src", "js"),
|
||||
patterns: ["../src/js/**/*.js"],
|
||||
}),
|
||||
|
||||
// new webpack.SourceMapDevToolPlugin({
|
||||
// filename: "[name].map",
|
||||
// publicPath: "/v/" + utils.getRevision() + "/",
|
||||
// }),
|
||||
// new ReplaceCompressBlocks()
|
||||
// new webpack.optimize.ModuleConcatenationPlugin()
|
||||
// new WebpackDeepScopeAnalysisPlugin()
|
||||
// new BundleAnalyzerPlugin()
|
||||
],
|
||||
module: {
|
||||
rules: [
|
||||
|
799
gulp/yarn.lock
@ -9,7 +9,7 @@
|
||||
"scripts": {
|
||||
"dev": "cd gulp && yarn gulp main.serveDev",
|
||||
"tslint": "cd src/js && tsc",
|
||||
"lint": "npx eslint src/js",
|
||||
"lint": "eslint src/js",
|
||||
"prettier-all": "prettier --write src/**/*.* && prettier --write gulp/**/*.*",
|
||||
"publishOnItchWindows": "butler push tmp_standalone_files/shapez.io-standalone-win32-x64 tobspr/shapezio:windows --userversion-file version",
|
||||
"publishOnItchLinux": "butler push tmp_standalone_files/shapez.io-standalone-linux-x64 tobspr/shapezio:linux --userversion-file version",
|
||||
@ -34,6 +34,7 @@
|
||||
"clipboard-copy": "^3.1.0",
|
||||
"colors": "^1.3.3",
|
||||
"core-js": "3",
|
||||
"crc": "^3.8.0",
|
||||
"cssnano-preset-advanced": "^4.0.7",
|
||||
"email-validator": "^2.0.4",
|
||||
"eslint": "7.1.0",
|
||||
@ -46,7 +47,6 @@
|
||||
"lz-string": "^1.4.4",
|
||||
"markdown-loader": "^4.0.0",
|
||||
"match-all": "^1.2.5",
|
||||
"obfuscator-loader": "^1.1.2",
|
||||
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
||||
"promise-polyfill": "^8.1.0",
|
||||
"query-string": "^6.8.1",
|
||||
@ -86,14 +86,12 @@
|
||||
"imagemin-pngquant": "^8.0.0",
|
||||
"jimp": "^0.6.1",
|
||||
"js-yaml": "^3.13.1",
|
||||
"onesky-fetch": "^0.0.7",
|
||||
"postcss-assets": "^5.0.0",
|
||||
"postcss-preset-env": "^6.5.0",
|
||||
"postcss-round-subpixels": "^1.2.0",
|
||||
"postcss-unprefix": "^2.1.3",
|
||||
"prettier": "^2.0.4",
|
||||
"sass-unused": "^0.3.0",
|
||||
"speed-measure-webpack-plugin": "^1.3.1",
|
||||
"strip-json-comments": "^3.0.1",
|
||||
"trim": "^0.0.1",
|
||||
"yarn": "^1.22.4"
|
||||
|
Before Width: | Height: | Size: 7.2 KiB |
BIN
res/ui/building_icons/constant_signal.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res/ui/building_icons/display.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.9 KiB |
BIN
res/ui/building_icons/filter.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res/ui/building_icons/lever.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
res/ui/building_icons/logic_gate.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 8.0 KiB |
BIN
res/ui/building_icons/wire_tunnel.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 67 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 226 KiB |
Before Width: | Height: | Size: 523 KiB |
Before Width: | Height: | Size: 1.0 MiB |
1308
res_built/atlas/atlas0_hq.json
Normal file
BIN
res_built/atlas/atlas0_hq.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
1308
res_built/atlas/atlas0_lq.json
Normal file
BIN
res_built/atlas/atlas0_lq.png
Normal file
After Width: | Height: | Size: 238 KiB |
1308
res_built/atlas/atlas0_mq.json
Normal file
BIN
res_built/atlas/atlas0_mq.png
Normal file
After Width: | Height: | Size: 567 KiB |
@ -7,28 +7,11 @@
|
||||
<string>5.4.0</string>
|
||||
<key>autoSDSettings</key>
|
||||
<array>
|
||||
<struct type="AutoSDSettings">
|
||||
<key>scale</key>
|
||||
<double>1</double>
|
||||
<key>extension</key>
|
||||
<string>_100</string>
|
||||
<key>spriteFilter</key>
|
||||
<string></string>
|
||||
<key>acceptFractionalValues</key>
|
||||
<true/>
|
||||
<key>maxTextureSize</key>
|
||||
<QSize>
|
||||
<key>width</key>
|
||||
<int>4096</int>
|
||||
<key>height</key>
|
||||
<int>4096</int>
|
||||
</QSize>
|
||||
</struct>
|
||||
<struct type="AutoSDSettings">
|
||||
<key>scale</key>
|
||||
<double>0.75</double>
|
||||
<key>extension</key>
|
||||
<string>_75</string>
|
||||
<string>_hq</string>
|
||||
<key>spriteFilter</key>
|
||||
<string></string>
|
||||
<key>acceptFractionalValues</key>
|
||||
@ -45,7 +28,7 @@
|
||||
<key>scale</key>
|
||||
<double>0.5</double>
|
||||
<key>extension</key>
|
||||
<string>_50</string>
|
||||
<string>_mq</string>
|
||||
<key>spriteFilter</key>
|
||||
<string></string>
|
||||
<key>acceptFractionalValues</key>
|
||||
@ -62,7 +45,7 @@
|
||||
<key>scale</key>
|
||||
<double>0.25</double>
|
||||
<key>extension</key>
|
||||
<string>_25</string>
|
||||
<string>_lq</string>
|
||||
<key>spriteFilter</key>
|
||||
<string></string>
|
||||
<key>acceptFractionalValues</key>
|
||||
@ -70,26 +53,9 @@
|
||||
<key>maxTextureSize</key>
|
||||
<QSize>
|
||||
<key>width</key>
|
||||
<int>1024</int>
|
||||
<int>2048</int>
|
||||
<key>height</key>
|
||||
<int>1024</int>
|
||||
</QSize>
|
||||
</struct>
|
||||
<struct type="AutoSDSettings">
|
||||
<key>scale</key>
|
||||
<double>0.1</double>
|
||||
<key>extension</key>
|
||||
<string>_10</string>
|
||||
<key>spriteFilter</key>
|
||||
<string></string>
|
||||
<key>acceptFractionalValues</key>
|
||||
<true/>
|
||||
<key>maxTextureSize</key>
|
||||
<QSize>
|
||||
<key>width</key>
|
||||
<int>-1</int>
|
||||
<key>height</key>
|
||||
<int>-1</int>
|
||||
<int>2048</int>
|
||||
</QSize>
|
||||
</struct>
|
||||
</array>
|
||||
@ -174,7 +140,7 @@
|
||||
<key>freeSizeMode</key>
|
||||
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum>
|
||||
<key>sizeConstraints</key>
|
||||
<enum type="AlgorithmSettings::SizeConstraints">AnySize</enum>
|
||||
<enum type="AlgorithmSettings::SizeConstraints">POT</enum>
|
||||
<key>forceSquared</key>
|
||||
<false/>
|
||||
<key>maxRects</key>
|
||||
@ -249,17 +215,104 @@
|
||||
</struct>
|
||||
<key>individualSpriteSettings</key>
|
||||
<map type="IndividualSpriteSettingsMap">
|
||||
<key type="filename">sprites/belt/forward_0.png</key>
|
||||
<key type="filename">sprites/belt/forward_1.png</key>
|
||||
<key type="filename">sprites/belt/forward_2.png</key>
|
||||
<key type="filename">sprites/buildings/miner.png</key>
|
||||
<key type="filename">sprites/buildings/rotater.png</key>
|
||||
<key type="filename">sprites/buildings/trash.png</key>
|
||||
<key type="filename">sprites/misc/wires_overlay_tile.png</key>
|
||||
<key type="filename">sprites/wires/pin_negative_accept.png</key>
|
||||
<key type="filename">sprites/wires/pin_negative_eject.png</key>
|
||||
<key type="filename">sprites/wires/pin_positive_accept.png</key>
|
||||
<key type="filename">sprites/wires/pin_positive_eject.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_0.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_1.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_10.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_11.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_12.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_13.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_2.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_3.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_4.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_5.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_6.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_7.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_8.png</key>
|
||||
<key type="filename">sprites/belt/built/forward_9.png</key>
|
||||
<key type="filename">sprites/belt/built/left_0.png</key>
|
||||
<key type="filename">sprites/belt/built/left_1.png</key>
|
||||
<key type="filename">sprites/belt/built/left_10.png</key>
|
||||
<key type="filename">sprites/belt/built/left_11.png</key>
|
||||
<key type="filename">sprites/belt/built/left_12.png</key>
|
||||
<key type="filename">sprites/belt/built/left_13.png</key>
|
||||
<key type="filename">sprites/belt/built/left_2.png</key>
|
||||
<key type="filename">sprites/belt/built/left_3.png</key>
|
||||
<key type="filename">sprites/belt/built/left_4.png</key>
|
||||
<key type="filename">sprites/belt/built/left_5.png</key>
|
||||
<key type="filename">sprites/belt/built/left_6.png</key>
|
||||
<key type="filename">sprites/belt/built/left_7.png</key>
|
||||
<key type="filename">sprites/belt/built/left_8.png</key>
|
||||
<key type="filename">sprites/belt/built/left_9.png</key>
|
||||
<key type="filename">sprites/belt/built/right_0.png</key>
|
||||
<key type="filename">sprites/belt/built/right_1.png</key>
|
||||
<key type="filename">sprites/belt/built/right_10.png</key>
|
||||
<key type="filename">sprites/belt/built/right_11.png</key>
|
||||
<key type="filename">sprites/belt/built/right_12.png</key>
|
||||
<key type="filename">sprites/belt/built/right_13.png</key>
|
||||
<key type="filename">sprites/belt/built/right_2.png</key>
|
||||
<key type="filename">sprites/belt/built/right_3.png</key>
|
||||
<key type="filename">sprites/belt/built/right_4.png</key>
|
||||
<key type="filename">sprites/belt/built/right_5.png</key>
|
||||
<key type="filename">sprites/belt/built/right_6.png</key>
|
||||
<key type="filename">sprites/belt/built/right_7.png</key>
|
||||
<key type="filename">sprites/belt/built/right_8.png</key>
|
||||
<key type="filename">sprites/belt/built/right_9.png</key>
|
||||
<key type="filename">sprites/blueprints/constant_signal.png</key>
|
||||
<key type="filename">sprites/blueprints/display.png</key>
|
||||
<key type="filename">sprites/blueprints/lever.png</key>
|
||||
<key type="filename">sprites/blueprints/logic_gate-not.png</key>
|
||||
<key type="filename">sprites/blueprints/logic_gate-or.png</key>
|
||||
<key type="filename">sprites/blueprints/logic_gate-transistor.png</key>
|
||||
<key type="filename">sprites/blueprints/logic_gate-xor.png</key>
|
||||
<key type="filename">sprites/blueprints/logic_gate.png</key>
|
||||
<key type="filename">sprites/blueprints/miner-chainable.png</key>
|
||||
<key type="filename">sprites/blueprints/miner.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater-fl.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater.png</key>
|
||||
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
|
||||
<key type="filename">sprites/blueprints/splitter-compact.png</key>
|
||||
<key type="filename">sprites/blueprints/trash.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_entry.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_exit-tier2.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_tunnel.png</key>
|
||||
<key type="filename">sprites/buildings/constant_signal.png</key>
|
||||
<key type="filename">sprites/buildings/display.png</key>
|
||||
<key type="filename">sprites/buildings/lever.png</key>
|
||||
<key type="filename">sprites/buildings/logic_gate-not.png</key>
|
||||
<key type="filename">sprites/buildings/logic_gate-or.png</key>
|
||||
<key type="filename">sprites/buildings/logic_gate-transistor.png</key>
|
||||
<key type="filename">sprites/buildings/logic_gate-xor.png</key>
|
||||
<key type="filename">sprites/buildings/logic_gate.png</key>
|
||||
<key type="filename">sprites/buildings/miner-chainable.png</key>
|
||||
<key type="filename">sprites/buildings/rotater-ccw.png</key>
|
||||
<key type="filename">sprites/buildings/rotater-fl.png</key>
|
||||
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
|
||||
<key type="filename">sprites/buildings/splitter-compact.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_entry.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_exit-tier2.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_exit.png</key>
|
||||
<key type="filename">sprites/buildings/wire_tunnel.png</key>
|
||||
<key type="filename">sprites/wires/lever_on.png</key>
|
||||
<key type="filename">sprites/wires/sets/color_cross.png</key>
|
||||
<key type="filename">sprites/wires/sets/color_forward.png</key>
|
||||
<key type="filename">sprites/wires/sets/color_split.png</key>
|
||||
<key type="filename">sprites/wires/sets/color_turn.png</key>
|
||||
<key type="filename">sprites/wires/sets/conflict_cross.png</key>
|
||||
<key type="filename">sprites/wires/sets/conflict_forward.png</key>
|
||||
<key type="filename">sprites/wires/sets/conflict_split.png</key>
|
||||
<key type="filename">sprites/wires/sets/conflict_turn.png</key>
|
||||
<key type="filename">sprites/wires/sets/regular_cross.png</key>
|
||||
<key type="filename">sprites/wires/sets/regular_forward.png</key>
|
||||
<key type="filename">sprites/wires/sets/regular_split.png</key>
|
||||
<key type="filename">sprites/wires/sets/regular_turn.png</key>
|
||||
<key type="filename">sprites/wires/sets/shape_cross.png</key>
|
||||
<key type="filename">sprites/wires/sets/shape_forward.png</key>
|
||||
<key type="filename">sprites/wires/sets/shape_split.png</key>
|
||||
<key type="filename">sprites/wires/sets/shape_turn.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
@ -268,109 +321,26 @@
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>32,32,64,64</rect>
|
||||
<rect>48,48,96,96</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>32,32,64,64</rect>
|
||||
<rect>48,48,96,96</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/belt/forward_10.png</key>
|
||||
<key type="filename">sprites/belt/forward_11.png</key>
|
||||
<key type="filename">sprites/belt/forward_12.png</key>
|
||||
<key type="filename">sprites/belt/forward_13.png</key>
|
||||
<key type="filename">sprites/belt/forward_14.png</key>
|
||||
<key type="filename">sprites/belt/forward_15.png</key>
|
||||
<key type="filename">sprites/belt/forward_16.png</key>
|
||||
<key type="filename">sprites/belt/forward_17.png</key>
|
||||
<key type="filename">sprites/belt/forward_18.png</key>
|
||||
<key type="filename">sprites/belt/forward_19.png</key>
|
||||
<key type="filename">sprites/belt/forward_20.png</key>
|
||||
<key type="filename">sprites/belt/forward_21.png</key>
|
||||
<key type="filename">sprites/belt/forward_22.png</key>
|
||||
<key type="filename">sprites/belt/forward_23.png</key>
|
||||
<key type="filename">sprites/belt/forward_24.png</key>
|
||||
<key type="filename">sprites/belt/forward_25.png</key>
|
||||
<key type="filename">sprites/belt/forward_26.png</key>
|
||||
<key type="filename">sprites/belt/forward_27.png</key>
|
||||
<key type="filename">sprites/belt/forward_3.png</key>
|
||||
<key type="filename">sprites/belt/forward_4.png</key>
|
||||
<key type="filename">sprites/belt/forward_5.png</key>
|
||||
<key type="filename">sprites/belt/forward_6.png</key>
|
||||
<key type="filename">sprites/belt/forward_7.png</key>
|
||||
<key type="filename">sprites/belt/forward_8.png</key>
|
||||
<key type="filename">sprites/belt/forward_9.png</key>
|
||||
<key type="filename">sprites/belt/left_0.png</key>
|
||||
<key type="filename">sprites/belt/left_1.png</key>
|
||||
<key type="filename">sprites/belt/left_10.png</key>
|
||||
<key type="filename">sprites/belt/left_11.png</key>
|
||||
<key type="filename">sprites/belt/left_12.png</key>
|
||||
<key type="filename">sprites/belt/left_13.png</key>
|
||||
<key type="filename">sprites/belt/left_14.png</key>
|
||||
<key type="filename">sprites/belt/left_15.png</key>
|
||||
<key type="filename">sprites/belt/left_16.png</key>
|
||||
<key type="filename">sprites/belt/left_17.png</key>
|
||||
<key type="filename">sprites/belt/left_18.png</key>
|
||||
<key type="filename">sprites/belt/left_19.png</key>
|
||||
<key type="filename">sprites/belt/left_2.png</key>
|
||||
<key type="filename">sprites/belt/left_20.png</key>
|
||||
<key type="filename">sprites/belt/left_21.png</key>
|
||||
<key type="filename">sprites/belt/left_22.png</key>
|
||||
<key type="filename">sprites/belt/left_23.png</key>
|
||||
<key type="filename">sprites/belt/left_24.png</key>
|
||||
<key type="filename">sprites/belt/left_25.png</key>
|
||||
<key type="filename">sprites/belt/left_26.png</key>
|
||||
<key type="filename">sprites/belt/left_27.png</key>
|
||||
<key type="filename">sprites/belt/left_3.png</key>
|
||||
<key type="filename">sprites/belt/left_4.png</key>
|
||||
<key type="filename">sprites/belt/left_5.png</key>
|
||||
<key type="filename">sprites/belt/left_6.png</key>
|
||||
<key type="filename">sprites/belt/left_7.png</key>
|
||||
<key type="filename">sprites/belt/left_8.png</key>
|
||||
<key type="filename">sprites/belt/left_9.png</key>
|
||||
<key type="filename">sprites/belt/right_0.png</key>
|
||||
<key type="filename">sprites/belt/right_1.png</key>
|
||||
<key type="filename">sprites/belt/right_10.png</key>
|
||||
<key type="filename">sprites/belt/right_11.png</key>
|
||||
<key type="filename">sprites/belt/right_12.png</key>
|
||||
<key type="filename">sprites/belt/right_13.png</key>
|
||||
<key type="filename">sprites/belt/right_14.png</key>
|
||||
<key type="filename">sprites/belt/right_15.png</key>
|
||||
<key type="filename">sprites/belt/right_16.png</key>
|
||||
<key type="filename">sprites/belt/right_17.png</key>
|
||||
<key type="filename">sprites/belt/right_18.png</key>
|
||||
<key type="filename">sprites/belt/right_19.png</key>
|
||||
<key type="filename">sprites/belt/right_2.png</key>
|
||||
<key type="filename">sprites/belt/right_20.png</key>
|
||||
<key type="filename">sprites/belt/right_21.png</key>
|
||||
<key type="filename">sprites/belt/right_22.png</key>
|
||||
<key type="filename">sprites/belt/right_23.png</key>
|
||||
<key type="filename">sprites/belt/right_24.png</key>
|
||||
<key type="filename">sprites/belt/right_25.png</key>
|
||||
<key type="filename">sprites/belt/right_26.png</key>
|
||||
<key type="filename">sprites/belt/right_27.png</key>
|
||||
<key type="filename">sprites/belt/right_3.png</key>
|
||||
<key type="filename">sprites/belt/right_4.png</key>
|
||||
<key type="filename">sprites/belt/right_5.png</key>
|
||||
<key type="filename">sprites/belt/right_6.png</key>
|
||||
<key type="filename">sprites/belt/right_7.png</key>
|
||||
<key type="filename">sprites/belt/right_8.png</key>
|
||||
<key type="filename">sprites/belt/right_9.png</key>
|
||||
<key type="filename">sprites/blueprints/belt_left.png</key>
|
||||
<key type="filename">sprites/blueprints/belt_right.png</key>
|
||||
<key type="filename">sprites/blueprints/belt_top.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_crossings-merger.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_crossings.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_left.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_right.png</key>
|
||||
<key type="filename">sprites/blueprints/wire_top.png</key>
|
||||
<key type="filename">sprites/blueprints/wire-cross.png</key>
|
||||
<key type="filename">sprites/blueprints/wire-split.png</key>
|
||||
<key type="filename">sprites/blueprints/wire-turn.png</key>
|
||||
<key type="filename">sprites/blueprints/wire.png</key>
|
||||
<key type="filename">sprites/buildings/belt_left.png</key>
|
||||
<key type="filename">sprites/buildings/belt_right.png</key>
|
||||
<key type="filename">sprites/buildings/belt_top.png</key>
|
||||
<key type="filename">sprites/buildings/wire_crossings-merger.png</key>
|
||||
<key type="filename">sprites/buildings/wire_crossings.png</key>
|
||||
<key type="filename">sprites/buildings/wire_left.png</key>
|
||||
<key type="filename">sprites/buildings/wire_right.png</key>
|
||||
<key type="filename">sprites/buildings/wire_top.png</key>
|
||||
<key type="filename">sprites/buildings/wire-cross.png</key>
|
||||
<key type="filename">sprites/buildings/wire-split.png</key>
|
||||
<key type="filename">sprites/buildings/wire-turn.png</key>
|
||||
<key type="filename">sprites/buildings/wire.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
@ -385,28 +355,6 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/blueprints/advanced_processor.png</key>
|
||||
<key type="filename">sprites/blueprints/energy_generator.png</key>
|
||||
<key type="filename">sprites/blueprints/painter-double.png</key>
|
||||
<key type="filename">sprites/blueprints/trash-storage.png</key>
|
||||
<key type="filename">sprites/buildings/advanced_processor.png</key>
|
||||
<key type="filename">sprites/buildings/energy_generator.png</key>
|
||||
<key type="filename">sprites/buildings/painter-double.png</key>
|
||||
<key type="filename">sprites/misc/energy_generator_overlay.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
<key>spriteScale</key>
|
||||
<double>1</double>
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>96,96,192,192</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>96,96,192,192</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/blueprints/cutter-quad.png</key>
|
||||
<key type="filename">sprites/blueprints/painter-quad.png</key>
|
||||
<key type="filename">sprites/buildings/cutter-quad.png</key>
|
||||
@ -426,11 +374,13 @@
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/blueprints/cutter.png</key>
|
||||
<key type="filename">sprites/blueprints/filter.png</key>
|
||||
<key type="filename">sprites/blueprints/mixer.png</key>
|
||||
<key type="filename">sprites/blueprints/painter-mirrored.png</key>
|
||||
<key type="filename">sprites/blueprints/painter.png</key>
|
||||
<key type="filename">sprites/blueprints/splitter.png</key>
|
||||
<key type="filename">sprites/blueprints/stacker.png</key>
|
||||
<key type="filename">sprites/buildings/filter.png</key>
|
||||
<key type="filename">sprites/buildings/painter-mirrored.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
@ -446,27 +396,9 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/blueprints/miner-chainable.png</key>
|
||||
<key type="filename">sprites/blueprints/miner.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater-fl.png</key>
|
||||
<key type="filename">sprites/blueprints/rotater.png</key>
|
||||
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
|
||||
<key type="filename">sprites/blueprints/splitter-compact.png</key>
|
||||
<key type="filename">sprites/blueprints/trash.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_entry.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_exit-tier2.png</key>
|
||||
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
|
||||
<key type="filename">sprites/buildings/miner-chainable.png</key>
|
||||
<key type="filename">sprites/buildings/rotater-ccw.png</key>
|
||||
<key type="filename">sprites/buildings/rotater-fl.png</key>
|
||||
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
|
||||
<key type="filename">sprites/buildings/splitter-compact.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_entry.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_exit-tier2.png</key>
|
||||
<key type="filename">sprites/buildings/underground_belt_exit.png</key>
|
||||
<key type="filename">sprites/blueprints/painter-double.png</key>
|
||||
<key type="filename">sprites/blueprints/trash-storage.png</key>
|
||||
<key type="filename">sprites/buildings/painter-double.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
@ -475,9 +407,9 @@
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>48,48,96,96</rect>
|
||||
<rect>96,96,192,192</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>48,48,96,96</rect>
|
||||
<rect>96,96,192,192</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
@ -515,6 +447,26 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/buildings/miner.png</key>
|
||||
<key type="filename">sprites/buildings/rotater.png</key>
|
||||
<key type="filename">sprites/buildings/trash.png</key>
|
||||
<key type="filename">sprites/wires/logical_acceptor.png</key>
|
||||
<key type="filename">sprites/wires/logical_ejector.png</key>
|
||||
<key type="filename">sprites/wires/overlay_tile.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
<key>spriteScale</key>
|
||||
<double>1</double>
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>32,32,64,64</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>32,32,64,64</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/buildings/trash-storage.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
@ -532,9 +484,6 @@
|
||||
</struct>
|
||||
<key type="filename">sprites/debug/acceptor_slot.png</key>
|
||||
<key type="filename">sprites/debug/ejector_slot.png</key>
|
||||
<key type="filename">sprites/map_overview/belt_forward.png</key>
|
||||
<key type="filename">sprites/map_overview/belt_left.png</key>
|
||||
<key type="filename">sprites/map_overview/belt_right.png</key>
|
||||
<key type="filename">sprites/misc/hub_direction_indicator.png</key>
|
||||
<key type="filename">sprites/misc/waypoint.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
@ -551,7 +500,6 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/misc/deletion_marker.png</key>
|
||||
<key type="filename">sprites/misc/slot_bad_arrow.png</key>
|
||||
<key type="filename">sprites/misc/slot_good_arrow.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
@ -568,21 +516,6 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/misc/lock_direction_indicator.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
<key>spriteScale</key>
|
||||
<double>1</double>
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>12,12,24,24</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>12,12,24,24</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/misc/storage_overlay.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
@ -598,13 +531,9 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/wires/battery_empty.png</key>
|
||||
<key type="filename">sprites/wires/battery_full.png</key>
|
||||
<key type="filename">sprites/wires/battery_low.png</key>
|
||||
<key type="filename">sprites/wires/battery_medium.png</key>
|
||||
<key type="filename">sprites/wires/negative_energy.png</key>
|
||||
<key type="filename">sprites/wires/positive_energy.png</key>
|
||||
<key type="filename">sprites/wires/waste_piled.png</key>
|
||||
<key type="filename">sprites/wires/boolean_false.png</key>
|
||||
<key type="filename">sprites/wires/boolean_true.png</key>
|
||||
<key type="filename">sprites/wires/wires_preview.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
@ -619,6 +548,27 @@
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
<key type="filename">sprites/wires/display/blue.png</key>
|
||||
<key type="filename">sprites/wires/display/cyan.png</key>
|
||||
<key type="filename">sprites/wires/display/green.png</key>
|
||||
<key type="filename">sprites/wires/display/purple.png</key>
|
||||
<key type="filename">sprites/wires/display/red.png</key>
|
||||
<key type="filename">sprites/wires/display/white.png</key>
|
||||
<key type="filename">sprites/wires/display/yellow.png</key>
|
||||
<struct type="IndividualSpriteSettings">
|
||||
<key>pivotPoint</key>
|
||||
<point_f>0.5,0.5</point_f>
|
||||
<key>spriteScale</key>
|
||||
<double>1</double>
|
||||
<key>scale9Enabled</key>
|
||||
<false/>
|
||||
<key>scale9Borders</key>
|
||||
<rect>11,11,22,22</rect>
|
||||
<key>scale9Paddings</key>
|
||||
<rect>11,11,22,22</rect>
|
||||
<key>scale9FromFile</key>
|
||||
<false/>
|
||||
</struct>
|
||||
</map>
|
||||
<key>fileList</key>
|
||||
<array>
|
||||
|
3
res_raw/sounds/music/theme-full.mp3
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4e6959df75e915fb1a8d55e3d0ab750349b27276788ded63178f2a117c2edcf5
|
||||
size 79441572
|
BIN
res_raw/sprites/belt/built/forward_0.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res_raw/sprites/belt/built/forward_1.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_10.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_11.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_12.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_13.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_2.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_3.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_4.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_5.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_6.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_7.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_8.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_9.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/left_0.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_1.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/left_10.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/left_11.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_12.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_13.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_2.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
res_raw/sprites/belt/built/left_3.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/left_4.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
res_raw/sprites/belt/built/left_5.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
res_raw/sprites/belt/built/left_6.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
res_raw/sprites/belt/built/left_7.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_8.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_9.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/right_0.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/right_1.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
res_raw/sprites/belt/built/right_10.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_11.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/right_12.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_13.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/right_2.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/right_3.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
res_raw/sprites/belt/built/right_4.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/right_5.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
res_raw/sprites/belt/built/right_6.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/right_7.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_8.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_9.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 732 B |
Before Width: | Height: | Size: 769 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 772 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 772 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 789 B |
Before Width: | Height: | Size: 758 B |
Before Width: | Height: | Size: 794 B |
Before Width: | Height: | Size: 761 B |
Before Width: | Height: | Size: 793 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 759 B |
Before Width: | Height: | Size: 793 B |
Before Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 794 B |