diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index aab42f1018..2bac555a86 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -58,7 +58,7 @@ public class Vars implements Loadable{ /** If true, mod code and scripts do not run. For internal testing only. This WILL break mods if enabled. */ public static boolean skipModCode = false; /** Default accessible content types used for player-selectable icons. */ - public static final ContentType[] defaultContentIcons = {ContentType.item, ContentType.liquid, ContentType.block, ContentType.unit}; + public static final ContentType[] defaultContentIcons = {ContentType.item, ContentType.liquid, ContentType.block, ContentType.unit, ContentType.status}; /** Default rule environment. */ public static final int defaultEnv = Env.terrestrial | Env.spores | Env.groundOil | Env.groundWater | Env.oxygen; /** Wall darkness radius. */ diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index e93dfb87d0..78c14a2ffe 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -174,6 +174,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //region io public final void writeBase(Writes write){ + //TODO: this code is a legacy mess; in future versions, it should be replaced with a different system that has a 1-integer module bitmask + byte version. boolean writeVisibility = state.rules.fog && visibleFlags != 0; write.f(health); @@ -237,7 +238,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if((moduleBits & 1) != 0) (items == null ? new ItemModule() : items).read(read, legacy); if((moduleBits & (1 << 1)) != 0) (power == null ? new PowerModule() : power).read(read, legacy); if((moduleBits & (1 << 2)) != 0) (liquids == null ? new LiquidModule() : liquids).read(read, legacy); - //1 << 3 is skipped (oldconsume module) + //1 << 3 is skipped (old consume module) if((moduleBits & (1 << 4)) != 0){ timeScale = read.f(); timeScaleDuration = read.f(); diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index 08ee702a5d..307ed0e636 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -653,6 +653,15 @@ public class ApplicationTests{ assertEquals(500, world.height()); } + @Test + void load152BESave(){ + resetWorld(); + SaveIO.load(Core.files.internal("152_be.msav")); + + assertEquals(414, world.width()); + assertEquals(414, world.height()); + } + @Test void arrayIterators(){ Seq arr = Seq.with("a", "b" , "c", "d", "e", "f"); diff --git a/tests/src/test/resources/152_be.msav b/tests/src/test/resources/152_be.msav new file mode 100644 index 0000000000..f401b830b8 Binary files /dev/null and b/tests/src/test/resources/152_be.msav differ