diff --git a/gulp/package.json b/gulp/package.json index 2a17b4fd..adc4389f 100644 --- a/gulp/package.json +++ b/gulp/package.json @@ -46,6 +46,7 @@ "postcss": ">=5.0.0", "promise-polyfill": "^8.1.0", "query-string": "^6.8.1", + "raw-loader": "^4.0.2", "rusha": "^0.8.13", "serialize-error": "^3.0.0", "stream-browserify": "^3.0.0", diff --git a/gulp/yarn.lock b/gulp/yarn.lock index f4f3ba7f..93ef55b1 100644 --- a/gulp/yarn.lock +++ b/gulp/yarn.lock @@ -989,6 +989,11 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz" @@ -1237,6 +1242,11 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + ajv@^4.7.0: version "4.11.8" resolved "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" @@ -1255,6 +1265,16 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" @@ -7407,6 +7427,15 @@ loader-utils@^1.0.0, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4 emojis-list "^3.0.0" json5 "^1.0.1" +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + localtunnel@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.0.tgz" @@ -10227,6 +10256,14 @@ raw-body@^2.3.2: iconv-lite "0.4.24" unpipe "1.0.0" +raw-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + rcedit@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/rcedit/-/rcedit-2.0.0.tgz" @@ -10869,6 +10906,15 @@ schema-utils@^2.6.5: ajv "^6.12.0" ajv-keywords "^3.4.1" +schema-utils@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + seek-bzip@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz" diff --git a/src/js/mods/dev_mod.js b/src/js/mods/dev_mod.js index dbe4aa0f..b636dace 100644 --- a/src/js/mods/dev_mod.js +++ b/src/js/mods/dev_mod.js @@ -1,4 +1,4 @@ -export default function (shapez) { +registerMod(shapez => { class MetaDemoModBuilding extends shapez.MetaBuilding { constructor() { super("demoModBuilding"); @@ -27,9 +27,6 @@ export default function (shapez) { } init() { - // Increase belt speed - shapez.globalConfig.beltSpeedItemsPerSecond = 25; - // Add some custom css this.modInterface.registerCss(` * { @@ -115,7 +112,7 @@ export default function (shapez) { }); } }; -} +}); //////////////////////////////////////////////////////////////////////// // @notice: Later this part will be autogenerated diff --git a/src/js/mods/modloader.js b/src/js/mods/modloader.js index 3db01878..45c70caa 100644 --- a/src/js/mods/modloader.js +++ b/src/js/mods/modloader.js @@ -35,9 +35,15 @@ export class ModLoader { async initMods() { LOG.log("hook:init"); - if (G_IS_STANDALONE) { + if (G_IS_STANDALONE || G_IS_DEV) { try { - const mods = await getIPCRenderer().invoke("get-mods"); + let mods = []; + if (G_IS_STANDALONE) { + mods = await getIPCRenderer().invoke("get-mods"); + } else if (G_IS_DEV && globalConfig.debug.loadDevMod) { + // @ts-expect-error + mods = [require("!!raw-loader!./dev_mod")]; + } mods.forEach(modCode => { window.registerMod = mod => { @@ -50,10 +56,6 @@ export class ModLoader { } catch (ex) { alert("Failed to load mods: " + ex); } - } else if (G_IS_DEV) { - if (globalConfig.debug.loadDevMod) { - this.modLoadQueue.push(/** @type {any} */ (require("./dev_mod").default)); - } } let exports = {};