From aa69af64fbe32ddeafd4aa19f231246b3024e19e Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 12 Mar 2019 13:42:20 -0400 Subject: [PATCH] Fixed some ores not loading in correctly / Conflict check --- core/src/io/anuke/mindustry/io/MapIO.java | 6 ++++-- core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/io/anuke/mindustry/io/MapIO.java b/core/src/io/anuke/mindustry/io/MapIO.java index e8f647d8cf..5327ddbdd0 100644 --- a/core/src/io/anuke/mindustry/io/MapIO.java +++ b/core/src/io/anuke/mindustry/io/MapIO.java @@ -9,6 +9,7 @@ import io.anuke.arc.graphics.Pixmap; import io.anuke.arc.graphics.Pixmap.Format; import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Pack; +import io.anuke.arc.util.Strings; import io.anuke.arc.util.Structs; import io.anuke.mindustry.content.Blocks; import io.anuke.mindustry.game.MappableContent; @@ -26,6 +27,7 @@ import io.anuke.mindustry.world.blocks.BlockPart; import io.anuke.mindustry.world.blocks.Floor; import java.io.*; +import java.util.Arrays; import java.util.zip.DeflaterOutputStream; import java.util.zip.InflaterInputStream; @@ -390,10 +392,10 @@ public class MapIO{ block = missingBlocks.get(name); }else if(name.startsWith("ore-")){ //an ore floor combination String[] split = name.split("-"); - String itemName = split[1], floorName = split[2]; + String itemName = split[1], floorName = Strings.join("-", Arrays.copyOfRange(split, 2, split.length)); Item item = content.getByName(ContentType.item, itemName); Block oreBlock = item == null ? null : content.getByName(ContentType.block, "ore-" + item.name); - Block floor = content.getByName(ContentType.block, floorName); + Block floor = missingBlocks.get(floorName, content.getByName(ContentType.block, floorName)); if(oreBlock != null && floor != null){ oreMap.put(id, oreBlock.id); block = floor; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java index c728375dc1..5b30ca64b3 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java @@ -32,8 +32,7 @@ public class MapsDialog extends FloatingDialog{ Map map = MapIO.readMap(file, true); String name = map.tags.get("name", file.nameWithoutExtension()); - //TODO filename conflict, erasure - Map conflict = world.maps.byName(name); + Map conflict = world.maps.all().find(m -> m.fileName().equals(file.nameWithoutExtension()) || m.name().equals(file.name())); if(conflict != null && !conflict.custom){ ui.showError(Core.bundle.format("editor.import.exists", name));