mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-15 18:28:42 +07:00
Easier location of mod errors, by specifying not only the name of the object with unique problems, but also the type
This commit is contained in:
@ -382,7 +382,7 @@ class Ruleset {
|
|||||||
UniqueValidator(this@Ruleset).checkUnique(
|
UniqueValidator(this@Ruleset).checkUnique(
|
||||||
Unique(it),
|
Unique(it),
|
||||||
false,
|
false,
|
||||||
cityStateType,
|
null,
|
||||||
true
|
true
|
||||||
).isEmpty()
|
).isEmpty()
|
||||||
})
|
})
|
||||||
@ -390,7 +390,7 @@ class Ruleset {
|
|||||||
UniqueValidator(this@Ruleset).checkUnique(
|
UniqueValidator(this@Ruleset).checkUnique(
|
||||||
Unique(it),
|
Unique(it),
|
||||||
false,
|
false,
|
||||||
cityStateType,
|
null,
|
||||||
true
|
true
|
||||||
).isEmpty()
|
).isEmpty()
|
||||||
})
|
})
|
||||||
|
@ -102,7 +102,7 @@ class RulesetValidator(val ruleset: Ruleset) {
|
|||||||
val errors = uniqueValidator.checkUnique(
|
val errors = uniqueValidator.checkUnique(
|
||||||
unique,
|
unique,
|
||||||
tryFixUnknownUniques,
|
tryFixUnknownUniques,
|
||||||
cityStateType,
|
null,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
lines.addAll(errors)
|
lines.addAll(errors)
|
||||||
|
@ -9,7 +9,6 @@ import com.unciv.models.ruleset.unique.UniqueComplianceError
|
|||||||
import com.unciv.models.ruleset.unique.UniqueParameterType
|
import com.unciv.models.ruleset.unique.UniqueParameterType
|
||||||
import com.unciv.models.ruleset.unique.UniqueTarget
|
import com.unciv.models.ruleset.unique.UniqueTarget
|
||||||
import com.unciv.models.ruleset.unique.UniqueType
|
import com.unciv.models.ruleset.unique.UniqueType
|
||||||
import com.unciv.models.stats.INamed
|
|
||||||
|
|
||||||
class UniqueValidator(val ruleset: Ruleset) {
|
class UniqueValidator(val ruleset: Ruleset) {
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
val errors = checkUnique(
|
val errors = checkUnique(
|
||||||
unique,
|
unique,
|
||||||
tryFixUnknownUniques,
|
tryFixUnknownUniques,
|
||||||
uniqueContainer as? INamed,
|
uniqueContainer,
|
||||||
reportRulesetSpecificErrors
|
reportRulesetSpecificErrors
|
||||||
)
|
)
|
||||||
lines.addAll(errors)
|
lines.addAll(errors)
|
||||||
@ -56,16 +55,16 @@ class UniqueValidator(val ruleset: Ruleset) {
|
|||||||
fun checkUnique(
|
fun checkUnique(
|
||||||
unique: Unique,
|
unique: Unique,
|
||||||
tryFixUnknownUniques: Boolean,
|
tryFixUnknownUniques: Boolean,
|
||||||
namedObj: INamed?,
|
uniqueContainer: IHasUniques?,
|
||||||
reportRulesetSpecificErrors: Boolean
|
reportRulesetSpecificErrors: Boolean
|
||||||
): List<RulesetError> {
|
): List<RulesetError> {
|
||||||
val prefix by lazy { (if (namedObj is IRulesetObject) "${namedObj.originRuleset}: " else "") +
|
val prefix by lazy { (if (uniqueContainer is IRulesetObject) "${uniqueContainer.originRuleset}: " else "") +
|
||||||
(if (namedObj == null) "The" else "${namedObj.name}'s") }
|
(if (uniqueContainer == null) "The" else "(${uniqueContainer.getUniqueTarget().name}) ${uniqueContainer.name}'s") }
|
||||||
if (unique.type == null) return checkUntypedUnique(unique, tryFixUnknownUniques, prefix)
|
if (unique.type == null) return checkUntypedUnique(unique, tryFixUnknownUniques, prefix)
|
||||||
|
|
||||||
val rulesetErrors = RulesetErrorList()
|
val rulesetErrors = RulesetErrorList()
|
||||||
|
|
||||||
if (namedObj is IHasUniques && !unique.type.canAcceptUniqueTarget(namedObj.getUniqueTarget()))
|
if (uniqueContainer != null && !unique.type.canAcceptUniqueTarget(uniqueContainer.getUniqueTarget()))
|
||||||
rulesetErrors.add(RulesetError("$prefix unique \"${unique.text}\" is not allowed on its target type", RulesetErrorSeverity.Warning))
|
rulesetErrors.add(RulesetError("$prefix unique \"${unique.text}\" is not allowed on its target type", RulesetErrorSeverity.Warning))
|
||||||
|
|
||||||
val typeComplianceErrors = getComplianceErrors(unique)
|
val typeComplianceErrors = getComplianceErrors(unique)
|
||||||
|
Reference in New Issue
Block a user