diff --git a/gulp/webpack.config.js b/gulp/webpack.config.js index 3f666e73..7db2e2c9 100644 --- a/gulp/webpack.config.js +++ b/gulp/webpack.config.js @@ -5,6 +5,7 @@ const webpack = require("webpack"); const { getRevision, getVersion, getAllResourceImages } = require("./buildutils"); const lzString = require("lz-string"); const CircularDependencyPlugin = require("circular-dependency-plugin"); +const StringReplacePlugin = require("string-replace-webpack-plugin"); module.exports = ({ watch = false, standalone = false, chineseVersion = false }) => { return { @@ -93,6 +94,31 @@ module.exports = ({ watch = false, standalone = false, chineseVersion = false }) }, ], }, + //TODO: fix es6 static on dev + // { + // test: /\.js$/, + // use: [ + // // "thread-loader", + // { + // loader: "babel-loader?cacheDirectory", + // options: { + // configFile: require.resolve("./babel.config.js"), + // }, + // }, + // "uglify-template-string-loader", // Finally found this plugin + // StringReplacePlugin.replace({ + // replacements: [ + // { pattern: /globalConfig\.tileSize/g, replacement: () => "32" }, + // { pattern: /globalConfig\.halfTileSize/g, replacement: () => "16" }, + // { + // pattern: /globalConfig\.beltSpeedItemsPerSecond/g, + // replacement: () => "2.0", + // }, + // { pattern: /globalConfig\.debug/g, replacement: () => "''" }, + // ], + // }), + // ], + // }, { test: /\.worker\.js$/, use: { diff --git a/src/js/modloader/old_buildings_codes.js b/src/js/modloader/old_buildings_codes.js new file mode 100644 index 00000000..2bc9d827 --- /dev/null +++ b/src/js/modloader/old_buildings_codes.js @@ -0,0 +1,107 @@ +export const codes = { + // Belt + 1: "belt/default/0", + 2: "belt/default/1", + 3: "belt/default/2", + + // Balancer + 4: "balancer/default/0", + 5: "balancer/merger/0", + 6: "balancer/merger-inverse/0", + 47: "balancer/splitter/0", + 48: "balancer/splitter-inverse/0", + + //Miner + 7: "miner/default/0", + 8: "miner/chainable/0", + + //Cutter + 9: "cutter/default/0", + 10: "cutter/quad/0", + + //Rotator + 11: "rotater/default/0", + 12: "rotater/ccw/0", + 13: "rotater/rotate180/0", + + //Stacker + 14: "stacker/default/0", + + //Mixer + 15: "mixer/default/0", + + //Painter + 16: "painter/default/0", + 17: "painter/mirrored/0", + 18: "painter/double/0", + 19: "painter/quad/0", + + //Trash + 20: "trash/default/0", + + //Storage + 21: "storage/default/0", + + //Underground belt + 22: "underground_belt/default/0", + 23: "underground_belt/default/1", + 24: "underground_belt/tier2/0", + 25: "underground_belt/tier2/1", + + //Hub + 26: "hub/default/0", + + //Wire + 27: "wire/default/0", + 28: "wire/default/1", + 29: "wire/default/2", + 30: "wire/default/3", + 52: "wire/second/0", + 53: "wire/second/1", + 54: "wire/second/2", + 55: "wire/second/3", + + //Constant Signal + 31: "constant_signal/default/0", + + //Logic Gate + 32: "logic_gate/default/0", + 34: "logic_gate/not/0", + 35: "logic_gate/xor/0", + 36: "logic_gate/or/0", + + //Lever + 33: "lever/default/0", + + //Filter + 37: "filter/default/0", + + //Transistor + 38: "transistor/default/0", + 60: "transistor/mirrored/0", + + //Wire Tunnel + 39: "wire_tunnel/default/0", + + //Display + 40: "display/default/0", + + //Virtual Processor + 42: "virtual_processor/default/0", + 44: "virtual_processor/rotater/0", + 45: "virtual_processor/unstacker/0", + 50: "virtual_processor/stacker/0", + 51: "virtual_processor/painter/0", + + //Analyzer + 43: "analyzer/default/0", + + //Comparator + 46: "comparator/default/0", + + //Reader + 49: "reader/default/0", + + //Item Producer + 61: "item_producer/default/0", +}; diff --git a/src/js/platform/achievement_provider.js b/src/js/platform/achievement_provider.js index 01efa815..4b4ccef0 100644 --- a/src/js/platform/achievement_provider.js +++ b/src/js/platform/achievement_provider.js @@ -9,7 +9,7 @@ import { VANILLA_THEMES } from "../game/theme"; import { enumAnalyticsDataSource } from "../game/production_analytics"; import { ShapeItem } from "../game/items/shape_item"; import { globalConfig } from "../core/config"; -import { codes } from "../savegame/schemas/ML01"; +import { codes } from "../modloader/old_buildings_codes"; export const ACHIEVEMENTS = { belt500Tiles: "belt500Tiles", diff --git a/src/js/savegame/schemas/ML01.js b/src/js/savegame/schemas/ML01.js index 801833e4..941a7db8 100644 --- a/src/js/savegame/schemas/ML01.js +++ b/src/js/savegame/schemas/ML01.js @@ -1,162 +1,10 @@ import { createLogger } from "../../core/logging.js"; -import { MetaAnalyzerBuilding } from "../../game/buildings/analyzer.js"; -import { MetaBalancerBuilding } from "../../game/buildings/balancer.js"; -import { MetaBeltBuilding } from "../../game/buildings/belt.js"; -import { MetaComparatorBuilding } from "../../game/buildings/comparator.js"; -import { MetaConstantSignalBuilding } from "../../game/buildings/constant_signal.js"; -import { MetaCutterBuilding } from "../../game/buildings/cutter.js"; -import { MetaDisplayBuilding } from "../../game/buildings/display.js"; -import { MetaFilterBuilding } from "../../game/buildings/filter.js"; -import { MetaHubBuilding } from "../../game/buildings/hub.js"; -import { MetaItemProducerBuilding } from "../../game/buildings/item_producer.js"; -import { MetaLeverBuilding } from "../../game/buildings/lever.js"; -import { MetaLogicGateBuilding } from "../../game/buildings/logic_gate.js"; -import { MetaMinerBuilding } from "../../game/buildings/miner.js"; -import { MetaMixerBuilding } from "../../game/buildings/mixer.js"; -import { MetaPainterBuilding } from "../../game/buildings/painter.js"; -import { MetaReaderBuilding } from "../../game/buildings/reader.js"; -import { MetaRotaterBuilding } from "../../game/buildings/rotater.js"; -import { MetaStackerBuilding } from "../../game/buildings/stacker.js"; -import { MetaStorageBuilding } from "../../game/buildings/storage.js"; -import { MetaTransistorBuilding } from "../../game/buildings/transistor.js"; -import { MetaTrashBuilding } from "../../game/buildings/trash.js"; -import { MetaUndergroundBeltBuilding } from "../../game/buildings/underground_belt.js"; -import { MetaVirtualProcessorBuilding } from "../../game/buildings/virtual_processor.js"; -import { MetaWireBuilding } from "../../game/buildings/wire.js"; -import { MetaWireTunnelBuilding } from "../../game/buildings/wire_tunnel.js"; -import { getCodeFromBuildingData } from "../../game/building_codes.js"; -import { defaultBuildingVariant } from "../../game/meta_building.js"; +import { codes } from "../../modloader/old_buildings_codes.js"; import { SavegameInterface_V1007 } from "./1007.js"; const schema = require("./ML01.json"); const logger = createLogger("savegame_interface/modloader"); -export const codes = { - // Belt - 1: getCodeFromBuildingData(new MetaBeltBuilding(), defaultBuildingVariant), - 2: getCodeFromBuildingData(new MetaBeltBuilding(), defaultBuildingVariant, 1), - 3: getCodeFromBuildingData(new MetaBeltBuilding(), defaultBuildingVariant, 2), - - // Balancer - 4: getCodeFromBuildingData(new MetaBalancerBuilding(), defaultBuildingVariant), - 5: getCodeFromBuildingData(new MetaBalancerBuilding(), MetaBalancerBuilding.variants.merger), - 6: getCodeFromBuildingData(new MetaBalancerBuilding(), MetaBalancerBuilding.variants.mergerInverse), - 47: getCodeFromBuildingData(new MetaBalancerBuilding(), MetaBalancerBuilding.variants.splitter), - 48: getCodeFromBuildingData(new MetaBalancerBuilding(), MetaBalancerBuilding.variants.splitterInverse), - - // Miner - 7: getCodeFromBuildingData(new MetaMinerBuilding(), defaultBuildingVariant), - 8: getCodeFromBuildingData(new MetaMinerBuilding(), MetaMinerBuilding.variants.chainable), - - // Cutter - 9: getCodeFromBuildingData(new MetaCutterBuilding(), defaultBuildingVariant), - 10: getCodeFromBuildingData(new MetaCutterBuilding(), MetaCutterBuilding.variants.quad), - - // Rotater - 11: getCodeFromBuildingData(new MetaRotaterBuilding(), defaultBuildingVariant), - 12: getCodeFromBuildingData(new MetaRotaterBuilding(), MetaRotaterBuilding.variants.ccw), - 13: getCodeFromBuildingData(new MetaRotaterBuilding(), MetaRotaterBuilding.variants.rotate180), - - // Stacker - 14: getCodeFromBuildingData(new MetaStackerBuilding(), defaultBuildingVariant), - - // Mixer - 15: getCodeFromBuildingData(new MetaMixerBuilding(), defaultBuildingVariant), - - // Painter - 16: getCodeFromBuildingData(new MetaPainterBuilding(), defaultBuildingVariant), - 17: getCodeFromBuildingData(new MetaPainterBuilding(), MetaPainterBuilding.variants.mirrored), - 18: getCodeFromBuildingData(new MetaPainterBuilding(), MetaPainterBuilding.variants.double), - 19: getCodeFromBuildingData(new MetaPainterBuilding(), MetaPainterBuilding.variants.quad), - - // Trash - 20: getCodeFromBuildingData(new MetaTrashBuilding(), defaultBuildingVariant), - - // Storage - 21: getCodeFromBuildingData(new MetaStorageBuilding(), defaultBuildingVariant), - - // Underground belt - 22: getCodeFromBuildingData(new MetaUndergroundBeltBuilding(), defaultBuildingVariant), - 23: getCodeFromBuildingData(new MetaUndergroundBeltBuilding(), defaultBuildingVariant, 1), - 24: getCodeFromBuildingData( - new MetaUndergroundBeltBuilding(), - MetaUndergroundBeltBuilding.variants.tier2 - ), - 25: getCodeFromBuildingData( - new MetaUndergroundBeltBuilding(), - MetaUndergroundBeltBuilding.variants.tier2, - 1 - ), - - // Hub - 26: getCodeFromBuildingData(new MetaHubBuilding(), defaultBuildingVariant), - - // Wire - 27: getCodeFromBuildingData(new MetaWireBuilding(), defaultBuildingVariant), - 28: getCodeFromBuildingData(new MetaWireBuilding(), defaultBuildingVariant, 1), - 29: getCodeFromBuildingData(new MetaWireBuilding(), defaultBuildingVariant, 2), - 30: getCodeFromBuildingData(new MetaWireBuilding(), defaultBuildingVariant, 3), - - 52: getCodeFromBuildingData(new MetaWireBuilding(), MetaWireBuilding.variants.second), - 53: getCodeFromBuildingData(new MetaWireBuilding(), MetaWireBuilding.variants.second, 1), - 54: getCodeFromBuildingData(new MetaWireBuilding(), MetaWireBuilding.variants.second, 2), - 55: getCodeFromBuildingData(new MetaWireBuilding(), MetaWireBuilding.variants.second, 3), - - // Constant signal - 31: getCodeFromBuildingData(new MetaConstantSignalBuilding(), defaultBuildingVariant), - - // Logic gate - 32: getCodeFromBuildingData(new MetaLogicGateBuilding(), defaultBuildingVariant), - 34: getCodeFromBuildingData(new MetaLogicGateBuilding(), MetaLogicGateBuilding.variants.not), - 35: getCodeFromBuildingData(new MetaLogicGateBuilding(), MetaLogicGateBuilding.variants.xor), - 36: getCodeFromBuildingData(new MetaLogicGateBuilding(), MetaLogicGateBuilding.variants.or), - - // Transistor - 38: getCodeFromBuildingData(new MetaTransistorBuilding(), defaultBuildingVariant), - 60: getCodeFromBuildingData(new MetaTransistorBuilding(), MetaTransistorBuilding.variants.mirrored), - - // Lever - 33: getCodeFromBuildingData(new MetaLeverBuilding(), defaultBuildingVariant), - - // Filter - 37: getCodeFromBuildingData(new MetaFilterBuilding(), defaultBuildingVariant), - - // Wire tunnel - 39: getCodeFromBuildingData(new MetaWireTunnelBuilding(), defaultBuildingVariant), - - // Display - 40: getCodeFromBuildingData(new MetaDisplayBuilding(), defaultBuildingVariant), - - // Virtual Processor - 42: getCodeFromBuildingData(new MetaVirtualProcessorBuilding(), defaultBuildingVariant), - 44: getCodeFromBuildingData( - new MetaVirtualProcessorBuilding(), - MetaVirtualProcessorBuilding.variants.rotater - ), - 45: getCodeFromBuildingData( - new MetaVirtualProcessorBuilding(), - MetaVirtualProcessorBuilding.variants.unstacker - ), - 50: getCodeFromBuildingData( - new MetaVirtualProcessorBuilding(), - MetaVirtualProcessorBuilding.variants.stacker - ), - 51: getCodeFromBuildingData( - new MetaVirtualProcessorBuilding(), - MetaVirtualProcessorBuilding.variants.painter - ), - - // Analyzer - 46: getCodeFromBuildingData(new MetaComparatorBuilding(), defaultBuildingVariant), - 43: getCodeFromBuildingData(new MetaAnalyzerBuilding(), defaultBuildingVariant), - - // Reader - 49: getCodeFromBuildingData(new MetaReaderBuilding(), defaultBuildingVariant), - - // Item producer - 61: getCodeFromBuildingData(new MetaItemProducerBuilding(), defaultBuildingVariant), -}; - export class SavegameInterface_ML01 extends SavegameInterface_V1007 { // @ts-ignore getVersion() {