package ru.dbotthepony.kstarbound.defs.npc import com.google.common.collect.ImmutableMap import it.unimi.dsi.fastutil.objects.Object2IntMap import ru.dbotthepony.kstarbound.json.builder.JsonFactory import java.util.function.Predicate @JsonFactory data class TenantDefinition( val name: String, val colonyTagCriteria: ImmutableMap, val priority: Double = 1.0 ) : Predicate>, Comparable { override fun test(t: Object2IntMap): Boolean { return colonyTagCriteria.all { t.getInt(it.key) >= it.value } } override fun compareTo(other: TenantDefinition): Int { return priority.compareTo(other.priority) } }