mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-28 21:58:54 +07:00
Modding: Added "non-[filter]" and multi-value filtering to Tile filter
This commit is contained in:
@ -357,11 +357,19 @@ enum class UniqueParameterType(
|
||||
TileFilter("tileFilter", "Farm", "Anything that can be used either in an improvementFilter or in a terrainFilter can be used here, plus 'unimproved'", "Tile Filters") {
|
||||
private val knownValues = setOf("unimproved", "All Road", "Great Improvement")
|
||||
override fun getErrorSeverity(parameterText: String, ruleset: Ruleset):
|
||||
UniqueType.UniqueParameterErrorSeverity? {
|
||||
if (parameterText in knownValues) return null
|
||||
if (ImprovementFilter.getErrorSeverity(parameterText, ruleset) == null) return null
|
||||
return TerrainFilter.getErrorSeverity(parameterText, ruleset)
|
||||
UniqueType.UniqueParameterErrorSeverity? {
|
||||
val isKnown = MultiFilter.multiFilter(parameterText, {isKnownValue(it, ruleset)}, true)
|
||||
if (isKnown) return null
|
||||
return UniqueType.UniqueParameterErrorSeverity.PossibleFilteringUnique
|
||||
}
|
||||
|
||||
override fun isKnownValue(parameterText: String, ruleset: Ruleset): Boolean {
|
||||
if (parameterText in knownValues) return true
|
||||
if (ImprovementFilter.isKnownValue(parameterText, ruleset)) return true
|
||||
if (TerrainFilter.isKnownValue(parameterText, ruleset)) return true
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getTranslationWriterStringsForOutput() = knownValues
|
||||
},
|
||||
|
||||
|
@ -11,7 +11,7 @@ Note that all of these are case-sensitive!
|
||||
|
||||
## General Filter Rules
|
||||
|
||||
- All filters accept multiple values in the format: `{A} {B} {C}` etc, meaning "the object must match ALL of these filters"
|
||||
- All filters except for `cityFilter` and `populationFilter` accept multiple values in the format: `{A} {B} {C}` etc, meaning "the object must match ALL of these filters"
|
||||
- For example: `[{Military} {Water}] units`, `[{Wounded} {Armor}] units`, etc.
|
||||
- No space or other text is allowed between the `[` and the first `{`.
|
||||
- All filters accept `non-[filter]` as a possible value
|
||||
|
Reference in New Issue
Block a user