diff --git a/core/assets/maps/archipelago.msav b/core/assets/maps/default/archipelago.msav similarity index 100% rename from core/assets/maps/archipelago.msav rename to core/assets/maps/default/archipelago.msav diff --git a/core/assets/maps/caldera.msav b/core/assets/maps/default/caldera.msav similarity index 100% rename from core/assets/maps/caldera.msav rename to core/assets/maps/default/caldera.msav diff --git a/core/assets/maps/canyon.msav b/core/assets/maps/default/canyon.msav similarity index 100% rename from core/assets/maps/canyon.msav rename to core/assets/maps/default/canyon.msav diff --git a/core/assets/maps/debrisField.msav b/core/assets/maps/default/debrisField.msav similarity index 100% rename from core/assets/maps/debrisField.msav rename to core/assets/maps/default/debrisField.msav diff --git a/core/assets/maps/domain.msav b/core/assets/maps/default/domain.msav similarity index 100% rename from core/assets/maps/domain.msav rename to core/assets/maps/default/domain.msav diff --git a/core/assets/maps/fork.msav b/core/assets/maps/default/fork.msav similarity index 100% rename from core/assets/maps/fork.msav rename to core/assets/maps/default/fork.msav diff --git a/core/assets/maps/fortress.msav b/core/assets/maps/default/fortress.msav similarity index 100% rename from core/assets/maps/fortress.msav rename to core/assets/maps/default/fortress.msav diff --git a/core/assets/maps/glacier.msav b/core/assets/maps/default/glacier.msav similarity index 100% rename from core/assets/maps/glacier.msav rename to core/assets/maps/default/glacier.msav diff --git a/core/assets/maps/islands.msav b/core/assets/maps/default/islands.msav similarity index 100% rename from core/assets/maps/islands.msav rename to core/assets/maps/default/islands.msav diff --git a/core/assets/maps/labyrinth.msav b/core/assets/maps/default/labyrinth.msav similarity index 100% rename from core/assets/maps/labyrinth.msav rename to core/assets/maps/default/labyrinth.msav diff --git a/core/assets/maps/maze.msav b/core/assets/maps/default/maze.msav similarity index 100% rename from core/assets/maps/maze.msav rename to core/assets/maps/default/maze.msav diff --git a/core/assets/maps/moltenLake.msav b/core/assets/maps/default/moltenLake.msav similarity index 100% rename from core/assets/maps/moltenLake.msav rename to core/assets/maps/default/moltenLake.msav diff --git a/core/assets/maps/mudFlats.msav b/core/assets/maps/default/mudFlats.msav similarity index 100% rename from core/assets/maps/mudFlats.msav rename to core/assets/maps/default/mudFlats.msav diff --git a/core/assets/maps/passage.msav b/core/assets/maps/default/passage.msav similarity index 100% rename from core/assets/maps/passage.msav rename to core/assets/maps/default/passage.msav diff --git a/core/assets/maps/shattered.msav b/core/assets/maps/default/shattered.msav similarity index 100% rename from core/assets/maps/shattered.msav rename to core/assets/maps/default/shattered.msav diff --git a/core/assets/maps/tendrils.msav b/core/assets/maps/default/tendrils.msav similarity index 100% rename from core/assets/maps/tendrils.msav rename to core/assets/maps/default/tendrils.msav diff --git a/core/assets/maps/triad.msav b/core/assets/maps/default/triad.msav similarity index 100% rename from core/assets/maps/triad.msav rename to core/assets/maps/default/triad.msav diff --git a/core/assets/maps/veins.msav b/core/assets/maps/default/veins.msav similarity index 100% rename from core/assets/maps/veins.msav rename to core/assets/maps/default/veins.msav diff --git a/core/assets/maps/wasteland.msav b/core/assets/maps/default/wasteland.msav similarity index 100% rename from core/assets/maps/wasteland.msav rename to core/assets/maps/default/wasteland.msav diff --git a/core/assets/maps/aegis.msav b/core/assets/maps/erekir/aegis.msav similarity index 100% rename from core/assets/maps/aegis.msav rename to core/assets/maps/erekir/aegis.msav diff --git a/core/assets/maps/atlas.msav b/core/assets/maps/erekir/atlas.msav similarity index 100% rename from core/assets/maps/atlas.msav rename to core/assets/maps/erekir/atlas.msav diff --git a/core/assets/maps/basin.msav b/core/assets/maps/erekir/basin.msav similarity index 100% rename from core/assets/maps/basin.msav rename to core/assets/maps/erekir/basin.msav diff --git a/core/assets/maps/caldera-erekir.msav b/core/assets/maps/erekir/caldera-erekir.msav similarity index 100% rename from core/assets/maps/caldera-erekir.msav rename to core/assets/maps/erekir/caldera-erekir.msav diff --git a/core/assets/maps/crevice.msav b/core/assets/maps/erekir/crevice.msav similarity index 100% rename from core/assets/maps/crevice.msav rename to core/assets/maps/erekir/crevice.msav diff --git a/core/assets/maps/crossroads.msav b/core/assets/maps/erekir/crossroads.msav similarity index 100% rename from core/assets/maps/crossroads.msav rename to core/assets/maps/erekir/crossroads.msav diff --git a/core/assets/maps/intersect.msav b/core/assets/maps/erekir/intersect.msav similarity index 100% rename from core/assets/maps/intersect.msav rename to core/assets/maps/erekir/intersect.msav diff --git a/core/assets/maps/karst.msav b/core/assets/maps/erekir/karst.msav similarity index 100% rename from core/assets/maps/karst.msav rename to core/assets/maps/erekir/karst.msav diff --git a/core/assets/maps/lake.msav b/core/assets/maps/erekir/lake.msav similarity index 100% rename from core/assets/maps/lake.msav rename to core/assets/maps/erekir/lake.msav diff --git a/core/assets/maps/marsh.msav b/core/assets/maps/erekir/marsh.msav similarity index 100% rename from core/assets/maps/marsh.msav rename to core/assets/maps/erekir/marsh.msav diff --git a/core/assets/maps/onset.msav b/core/assets/maps/erekir/onset.msav similarity index 100% rename from core/assets/maps/onset.msav rename to core/assets/maps/erekir/onset.msav diff --git a/core/assets/maps/origin.msav b/core/assets/maps/erekir/origin.msav similarity index 100% rename from core/assets/maps/origin.msav rename to core/assets/maps/erekir/origin.msav diff --git a/core/assets/maps/peaks.msav b/core/assets/maps/erekir/peaks.msav similarity index 100% rename from core/assets/maps/peaks.msav rename to core/assets/maps/erekir/peaks.msav diff --git a/core/assets/maps/ravine.msav b/core/assets/maps/erekir/ravine.msav similarity index 100% rename from core/assets/maps/ravine.msav rename to core/assets/maps/erekir/ravine.msav diff --git a/core/assets/maps/siege.msav b/core/assets/maps/erekir/siege.msav similarity index 100% rename from core/assets/maps/siege.msav rename to core/assets/maps/erekir/siege.msav diff --git a/core/assets/maps/split.msav b/core/assets/maps/erekir/split.msav similarity index 100% rename from core/assets/maps/split.msav rename to core/assets/maps/erekir/split.msav diff --git a/core/assets/maps/stronghold.msav b/core/assets/maps/erekir/stronghold.msav similarity index 100% rename from core/assets/maps/stronghold.msav rename to core/assets/maps/erekir/stronghold.msav diff --git a/core/assets/maps/hidden-serpulo/0.msav b/core/assets/maps/hidden-serpulo/0.msav deleted file mode 100644 index 4437244046..0000000000 Binary files a/core/assets/maps/hidden-serpulo/0.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/103.msav b/core/assets/maps/hidden-serpulo/103.msav deleted file mode 100644 index 4eed2053a4..0000000000 Binary files a/core/assets/maps/hidden-serpulo/103.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/111.msav b/core/assets/maps/hidden-serpulo/111.msav deleted file mode 100644 index fb0066a7df..0000000000 Binary files a/core/assets/maps/hidden-serpulo/111.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/116.msav b/core/assets/maps/hidden-serpulo/116.msav deleted file mode 100644 index d1a087c4f4..0000000000 Binary files a/core/assets/maps/hidden-serpulo/116.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/127.msav b/core/assets/maps/hidden-serpulo/127.msav deleted file mode 100644 index a479cf6286..0000000000 Binary files a/core/assets/maps/hidden-serpulo/127.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/13.msav b/core/assets/maps/hidden-serpulo/13.msav deleted file mode 100644 index e694239390..0000000000 Binary files a/core/assets/maps/hidden-serpulo/13.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/133.msav b/core/assets/maps/hidden-serpulo/133.msav deleted file mode 100644 index eee9b0cad0..0000000000 Binary files a/core/assets/maps/hidden-serpulo/133.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/16.msav b/core/assets/maps/hidden-serpulo/16.msav deleted file mode 100644 index d7a3ae52c6..0000000000 Binary files a/core/assets/maps/hidden-serpulo/16.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/161.msav b/core/assets/maps/hidden-serpulo/161.msav deleted file mode 100644 index ebfa77f25b..0000000000 Binary files a/core/assets/maps/hidden-serpulo/161.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/162.msav b/core/assets/maps/hidden-serpulo/162.msav deleted file mode 100644 index bf8d69e714..0000000000 Binary files a/core/assets/maps/hidden-serpulo/162.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/176.msav b/core/assets/maps/hidden-serpulo/176.msav deleted file mode 100644 index 4b998a6fc9..0000000000 Binary files a/core/assets/maps/hidden-serpulo/176.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/180.msav b/core/assets/maps/hidden-serpulo/180.msav deleted file mode 100644 index 6baf0947b8..0000000000 Binary files a/core/assets/maps/hidden-serpulo/180.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/185.msav b/core/assets/maps/hidden-serpulo/185.msav deleted file mode 100644 index fc8c146bb3..0000000000 Binary files a/core/assets/maps/hidden-serpulo/185.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/19.msav b/core/assets/maps/hidden-serpulo/19.msav deleted file mode 100644 index 986e446288..0000000000 Binary files a/core/assets/maps/hidden-serpulo/19.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/191.msav b/core/assets/maps/hidden-serpulo/191.msav deleted file mode 100644 index 271175e8eb..0000000000 Binary files a/core/assets/maps/hidden-serpulo/191.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/192.msav b/core/assets/maps/hidden-serpulo/192.msav deleted file mode 100644 index 18cb02613a..0000000000 Binary files a/core/assets/maps/hidden-serpulo/192.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/197.msav b/core/assets/maps/hidden-serpulo/197.msav deleted file mode 100644 index 638ee025e8..0000000000 Binary files a/core/assets/maps/hidden-serpulo/197.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/20.msav b/core/assets/maps/hidden-serpulo/20.msav deleted file mode 100644 index d5e0006cac..0000000000 Binary files a/core/assets/maps/hidden-serpulo/20.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/200.msav b/core/assets/maps/hidden-serpulo/200.msav deleted file mode 100644 index f59f943316..0000000000 Binary files a/core/assets/maps/hidden-serpulo/200.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/207.msav b/core/assets/maps/hidden-serpulo/207.msav deleted file mode 100644 index 046e0a494b..0000000000 Binary files a/core/assets/maps/hidden-serpulo/207.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/225.msav b/core/assets/maps/hidden-serpulo/225.msav deleted file mode 100644 index 05a1635d03..0000000000 Binary files a/core/assets/maps/hidden-serpulo/225.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/230.msav b/core/assets/maps/hidden-serpulo/230.msav deleted file mode 100644 index f397ca63bf..0000000000 Binary files a/core/assets/maps/hidden-serpulo/230.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/24.msav b/core/assets/maps/hidden-serpulo/24.msav deleted file mode 100644 index a4cb35e98e..0000000000 Binary files a/core/assets/maps/hidden-serpulo/24.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/240.msav b/core/assets/maps/hidden-serpulo/240.msav deleted file mode 100644 index cc01624503..0000000000 Binary files a/core/assets/maps/hidden-serpulo/240.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/248.msav b/core/assets/maps/hidden-serpulo/248.msav deleted file mode 100644 index cffa78ccb2..0000000000 Binary files a/core/assets/maps/hidden-serpulo/248.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/254.msav b/core/assets/maps/hidden-serpulo/254.msav deleted file mode 100644 index f193747cb4..0000000000 Binary files a/core/assets/maps/hidden-serpulo/254.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/259.msav b/core/assets/maps/hidden-serpulo/259.msav deleted file mode 100644 index 38a58bee1a..0000000000 Binary files a/core/assets/maps/hidden-serpulo/259.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/263.msav b/core/assets/maps/hidden-serpulo/263.msav deleted file mode 100644 index ca5638ad99..0000000000 Binary files a/core/assets/maps/hidden-serpulo/263.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/265.msav b/core/assets/maps/hidden-serpulo/265.msav deleted file mode 100644 index 0a35dbead8..0000000000 Binary files a/core/assets/maps/hidden-serpulo/265.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/30.msav b/core/assets/maps/hidden-serpulo/30.msav deleted file mode 100644 index f197c6d64a..0000000000 Binary files a/core/assets/maps/hidden-serpulo/30.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/47.msav b/core/assets/maps/hidden-serpulo/47.msav deleted file mode 100644 index a2e6ec9d3b..0000000000 Binary files a/core/assets/maps/hidden-serpulo/47.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/55.msav b/core/assets/maps/hidden-serpulo/55.msav deleted file mode 100644 index dddbdcce07..0000000000 Binary files a/core/assets/maps/hidden-serpulo/55.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/6.msav b/core/assets/maps/hidden-serpulo/6.msav deleted file mode 100644 index e470b70fab..0000000000 Binary files a/core/assets/maps/hidden-serpulo/6.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/66.msav b/core/assets/maps/hidden-serpulo/66.msav deleted file mode 100644 index 2234375c69..0000000000 Binary files a/core/assets/maps/hidden-serpulo/66.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/67.msav b/core/assets/maps/hidden-serpulo/67.msav deleted file mode 100644 index 7ddeb48851..0000000000 Binary files a/core/assets/maps/hidden-serpulo/67.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/69.msav b/core/assets/maps/hidden-serpulo/69.msav deleted file mode 100644 index 7749129ab9..0000000000 Binary files a/core/assets/maps/hidden-serpulo/69.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/76.msav b/core/assets/maps/hidden-serpulo/76.msav deleted file mode 100644 index 20227dcc0d..0000000000 Binary files a/core/assets/maps/hidden-serpulo/76.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/92.msav b/core/assets/maps/hidden-serpulo/92.msav deleted file mode 100644 index 78c22881a9..0000000000 Binary files a/core/assets/maps/hidden-serpulo/92.msav and /dev/null differ diff --git a/core/assets/maps/hidden-serpulo/94.msav b/core/assets/maps/hidden-serpulo/94.msav deleted file mode 100644 index f0148257a4..0000000000 Binary files a/core/assets/maps/hidden-serpulo/94.msav and /dev/null differ diff --git a/core/assets/maps/atolls.msav b/core/assets/maps/serpulo/atolls.msav similarity index 100% rename from core/assets/maps/atolls.msav rename to core/assets/maps/serpulo/atolls.msav diff --git a/core/assets/maps/biomassFacility.msav b/core/assets/maps/serpulo/biomassFacility.msav similarity index 100% rename from core/assets/maps/biomassFacility.msav rename to core/assets/maps/serpulo/biomassFacility.msav diff --git a/core/assets/maps/coastline.msav b/core/assets/maps/serpulo/coastline.msav similarity index 100% rename from core/assets/maps/coastline.msav rename to core/assets/maps/serpulo/coastline.msav diff --git a/core/assets/maps/craters.msav b/core/assets/maps/serpulo/craters.msav similarity index 100% rename from core/assets/maps/craters.msav rename to core/assets/maps/serpulo/craters.msav diff --git a/core/assets/maps/cruxscape.msav b/core/assets/maps/serpulo/cruxscape.msav similarity index 100% rename from core/assets/maps/cruxscape.msav rename to core/assets/maps/serpulo/cruxscape.msav diff --git a/core/assets/maps/desolateRift.msav b/core/assets/maps/serpulo/desolateRift.msav similarity index 100% rename from core/assets/maps/desolateRift.msav rename to core/assets/maps/serpulo/desolateRift.msav diff --git a/core/assets/maps/extractionOutpost.msav b/core/assets/maps/serpulo/extractionOutpost.msav similarity index 100% rename from core/assets/maps/extractionOutpost.msav rename to core/assets/maps/serpulo/extractionOutpost.msav diff --git a/core/assets/maps/facility32m.msav b/core/assets/maps/serpulo/facility32m.msav similarity index 100% rename from core/assets/maps/facility32m.msav rename to core/assets/maps/serpulo/facility32m.msav diff --git a/core/assets/maps/fallenVessel.msav b/core/assets/maps/serpulo/fallenVessel.msav similarity index 100% rename from core/assets/maps/fallenVessel.msav rename to core/assets/maps/serpulo/fallenVessel.msav diff --git a/core/assets/maps/frontier.msav b/core/assets/maps/serpulo/frontier.msav similarity index 100% rename from core/assets/maps/frontier.msav rename to core/assets/maps/serpulo/frontier.msav diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/serpulo/frozenForest.msav similarity index 100% rename from core/assets/maps/frozenForest.msav rename to core/assets/maps/serpulo/frozenForest.msav diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/serpulo/fungalPass.msav similarity index 100% rename from core/assets/maps/fungalPass.msav rename to core/assets/maps/serpulo/fungalPass.msav diff --git a/core/assets/maps/geothermalStronghold.msav b/core/assets/maps/serpulo/geothermalStronghold.msav similarity index 100% rename from core/assets/maps/geothermalStronghold.msav rename to core/assets/maps/serpulo/geothermalStronghold.msav diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/serpulo/groundZero.msav similarity index 100% rename from core/assets/maps/groundZero.msav rename to core/assets/maps/serpulo/groundZero.msav diff --git a/core/assets/maps/impact0078.msav b/core/assets/maps/serpulo/impact0078.msav similarity index 100% rename from core/assets/maps/impact0078.msav rename to core/assets/maps/serpulo/impact0078.msav diff --git a/core/assets/maps/infestedCanyons.msav b/core/assets/maps/serpulo/infestedCanyons.msav similarity index 100% rename from core/assets/maps/infestedCanyons.msav rename to core/assets/maps/serpulo/infestedCanyons.msav diff --git a/core/assets/maps/mycelialBastion.msav b/core/assets/maps/serpulo/mycelialBastion.msav similarity index 100% rename from core/assets/maps/mycelialBastion.msav rename to core/assets/maps/serpulo/mycelialBastion.msav diff --git a/core/assets/maps/navalFortress.msav b/core/assets/maps/serpulo/navalFortress.msav similarity index 100% rename from core/assets/maps/navalFortress.msav rename to core/assets/maps/serpulo/navalFortress.msav diff --git a/core/assets/maps/nuclearComplex.msav b/core/assets/maps/serpulo/nuclearComplex.msav similarity index 100% rename from core/assets/maps/nuclearComplex.msav rename to core/assets/maps/serpulo/nuclearComplex.msav diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/serpulo/overgrowth.msav similarity index 100% rename from core/assets/maps/overgrowth.msav rename to core/assets/maps/serpulo/overgrowth.msav diff --git a/core/assets/maps/perilousHarbor.msav b/core/assets/maps/serpulo/perilousHarbor.msav similarity index 100% rename from core/assets/maps/perilousHarbor.msav rename to core/assets/maps/serpulo/perilousHarbor.msav diff --git a/core/assets/maps/planetaryTerminal.msav b/core/assets/maps/serpulo/planetaryTerminal.msav similarity index 100% rename from core/assets/maps/planetaryTerminal.msav rename to core/assets/maps/serpulo/planetaryTerminal.msav diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/serpulo/ruinousShores.msav similarity index 100% rename from core/assets/maps/ruinousShores.msav rename to core/assets/maps/serpulo/ruinousShores.msav diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/serpulo/saltFlats.msav similarity index 100% rename from core/assets/maps/saltFlats.msav rename to core/assets/maps/serpulo/saltFlats.msav diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/serpulo/stainedMountains.msav similarity index 100% rename from core/assets/maps/stainedMountains.msav rename to core/assets/maps/serpulo/stainedMountains.msav diff --git a/core/assets/maps/sunkenPier.msav b/core/assets/maps/serpulo/sunkenPier.msav similarity index 100% rename from core/assets/maps/sunkenPier.msav rename to core/assets/maps/serpulo/sunkenPier.msav diff --git a/core/assets/maps/taintedWoods.msav b/core/assets/maps/serpulo/taintedWoods.msav similarity index 100% rename from core/assets/maps/taintedWoods.msav rename to core/assets/maps/serpulo/taintedWoods.msav diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/serpulo/tarFields.msav similarity index 100% rename from core/assets/maps/tarFields.msav rename to core/assets/maps/serpulo/tarFields.msav diff --git a/core/assets/maps/testingGrounds.msav b/core/assets/maps/serpulo/testingGrounds.msav similarity index 100% rename from core/assets/maps/testingGrounds.msav rename to core/assets/maps/serpulo/testingGrounds.msav diff --git a/core/assets/maps/weatheredChannels.msav b/core/assets/maps/serpulo/weatheredChannels.msav similarity index 100% rename from core/assets/maps/weatheredChannels.msav rename to core/assets/maps/serpulo/weatheredChannels.msav diff --git a/core/assets/maps/windsweptIslands.msav b/core/assets/maps/serpulo/windsweptIslands.msav similarity index 100% rename from core/assets/maps/windsweptIslands.msav rename to core/assets/maps/serpulo/windsweptIslands.msav diff --git a/core/src/mindustry/maps/Maps.java b/core/src/mindustry/maps/Maps.java index eefa52e6f5..006aa1566c 100644 --- a/core/src/mindustry/maps/Maps.java +++ b/core/src/mindustry/maps/Maps.java @@ -40,6 +40,8 @@ public class Maps{ private static String[] defaultMapNames = {"maze", "fortress", "labyrinth", "islands", "tendrils", "caldera", "wasteland", "shattered", "fork", "triad", "mudFlats", "moltenLake", "archipelago", "debrisField", "domain", "veins", "glacier", "passage"}; /** Maps tagged as PvP */ private static String[] pvpMaps = {"veins", "glacier", "passage"}; + /** If true, the defaultMapNames are prefixed with default/ */ + private static boolean useDefaultFolder = true; /** All maps stored in an ordered array. */ private Seq maps = new Seq<>(); @@ -126,7 +128,7 @@ public class Maps{ //defaults; must work try{ for(String name : defaultMapNames){ - Fi file = Core.files.internal("maps/" + name + "." + mapExtension); + Fi file = Core.files.internal((useDefaultFolder ? "maps/default/" : "maps/") + name + "." + mapExtension); loadMap(file, false); } }catch(IOException e){ diff --git a/core/src/mindustry/maps/SectorSubmissions.java b/core/src/mindustry/maps/SectorSubmissions.java index 81da1512c8..89be35d0c4 100644 --- a/core/src/mindustry/maps/SectorSubmissions.java +++ b/core/src/mindustry/maps/SectorSubmissions.java @@ -91,7 +91,7 @@ public class SectorSubmissions{ sub.author = author; sub.mapFileLink = mapFileLink; - var preset = new SectorPreset("sector-" + planet.name + "-" + id, "hidden-serpulo/" + id, planet, id); + var preset = new SectorPreset("sector-" + planet.name + "-" + id, "hidden/" + id, planet, id); preset.requireUnlock = false; if(difficulty > 0f) preset.difficulty = difficulty; diff --git a/core/src/mindustry/maps/generators/FileMapGenerator.java b/core/src/mindustry/maps/generators/FileMapGenerator.java index 31bd1903e2..94ac6702ce 100644 --- a/core/src/mindustry/maps/generators/FileMapGenerator.java +++ b/core/src/mindustry/maps/generators/FileMapGenerator.java @@ -1,6 +1,7 @@ package mindustry.maps.generators; import arc.math.geom.*; +import arc.struct.*; import mindustry.*; import mindustry.content.*; import mindustry.game.*; @@ -18,12 +19,33 @@ public class FileMapGenerator implements WorldGenerator{ public final SectorPreset preset; public FileMapGenerator(String mapName, SectorPreset preset){ - //try to look for the prefixed map first, then the mod-specific one - this.map = maps != null ? maps.loadInternalMap( - preset.minfo.mod == null || Vars.tree.get("maps/" + mapName + "." + mapExtension).exists() ? - mapName : - mapName.substring(1 + preset.minfo.mod.name.length()) - ) : null; + if(maps == null){ + this.map = null; + }else{ + Seq candidates = new Seq<>(4); + + ///.msav + candidates.add(preset.planet.name + "/" + mapName); + + //.msav (directly in maps folder) + candidates.add(mapName); + + //for modded maps, try loading without the mod prefix + if(preset.minfo.mod != null){ + String baseName = mapName.substring(1 + preset.minfo.mod.name.length()); + + ///.msav + candidates.add(preset.planet.name + "/" + baseName); + + //.msav (directly in maps folder) + candidates.add(baseName); + } + + //find the first matching candidate to load + String fileName = candidates.find(name -> Vars.tree.get("maps/" + name + "." + mapExtension).exists()); + + this.map = maps.loadInternalMap(fileName == null ? candidates.first() : fileName); + } this.preset = preset; } diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index 53b5984998..4ceb099d4f 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -42,6 +42,8 @@ public class SectorPreset extends UnlockableContent{ /** Sectors that prevent this sector from being landed on until they are completed. */ public Seq shieldSectors = new Seq<>(); + private @Nullable String fileName; + public SectorPreset(String name, Planet planet, int sector){ this(name, null, planet, sector); } @@ -62,12 +64,14 @@ public class SectorPreset extends UnlockableContent{ if(mod != null){ this.minfo.mod = mod; } - //this.name can change based on the mod being loaded, so if a fileName is not specified, make sure to use the newly assigned this.name - this.generator = new FileMapGenerator(fileName == null ? this.name : fileName, this); + this.fileName = fileName; } public void initialize(Planet planet, int sector){ this.planet = planet; + if(generator == null){ + this.generator = new FileMapGenerator(fileName == null ? this.name : fileName, this); + } this.originalPosition = sector; //auto remap based on data var data = planet.getData(); diff --git a/tests/src/test/java/ApplicationTests.java b/tests/src/test/java/ApplicationTests.java index a3eb36f283..5ea8e47422 100644 --- a/tests/src/test/java/ApplicationTests.java +++ b/tests/src/test/java/ApplicationTests.java @@ -105,7 +105,7 @@ public class ApplicationTests{ public void init(){ super.init(); begins[0] = true; - testMap = maps.loadInternalMap("groundZero"); + testMap = maps.loadInternalMap("serpulo/groundZero"); Thread.currentThread().interrupt(); } }; diff --git a/tests/src/test/java/ModTestAllure.java b/tests/src/test/java/ModTestAllure.java index 06f902d09b..3ef4949630 100644 --- a/tests/src/test/java/ModTestAllure.java +++ b/tests/src/test/java/ModTestAllure.java @@ -24,7 +24,7 @@ public class ModTestAllure extends GenericModTest{ assertNotNull(type, "A mod unit must be loaded."); assertTrue(type.weapons.size > 0, "A mod unit must have a weapon."); - Vars.world.loadMap(maps.loadInternalMap("groundZero")); + Vars.world.loadMap(maps.loadInternalMap("serpulo/groundZero")); Unit unit = type.spawn(0, 0);