Map editor knows to remove resources that don't exist in mods

This commit is contained in:
Yair Morgenstern
2021-02-16 20:10:36 +02:00
parent 5fa08d9f2d
commit 2b33bb9873

View File

@ -466,6 +466,8 @@ class TileEditorOptionsTable(val mapEditorScreen: MapEditorScreen): Table(Camera
if (terrainFeature == null || terrainFeature.occursOn.isNotEmpty() && !terrainFeature.occursOn.contains(tileInfo.baseTerrain))
tileInfo.terrainFeature = null
}
if (tileInfo.resource != null && !ruleset.tileResources.containsKey(tileInfo.resource))
tileInfo.resource = null
if (tileInfo.resource != null) {
val resource = tileInfo.getTileResource()
if (resource.terrainsCanBeFoundOn.none { it == tileInfo.baseTerrain || it == tileInfo.terrainFeature })
@ -489,7 +491,7 @@ class TileEditorOptionsTable(val mapEditorScreen: MapEditorScreen): Table(Camera
tileInfo.improvement = null // Unset, and check if it can be reset. If so, do it, if not, invalid.
if (tileInfo.canImprovementBeBuiltHere(improvement)
// Allow building 'other' improvements like city ruins, barb encampments, Great Improvements etc
|| (improvement.terrainsCanBeBuiltOn.isEmpty() && ruleset.tileResources.values.none { it.improvement==improvement.name }
|| (improvement.terrainsCanBeBuiltOn.isEmpty() && ruleset.tileResources.values.none { it.improvement == improvement.name }
&& !tileInfo.isImpassible() && tileInfo.isLand))
tileInfo.improvement = improvement.name
}