Add matter value and complexity sorters

This commit is contained in:
DBotThePony 2023-03-09 16:51:30 +07:00
parent 4810894d72
commit 194aca51ea
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 27 additions and 1 deletions

View File

@ -633,6 +633,8 @@ private fun gui(provider: MatteryLanguageProvider) {
gui("sorting.count", "Sort by amount") gui("sorting.count", "Sort by amount")
gui("sorting.ascending", "Ascending") gui("sorting.ascending", "Ascending")
gui("sorting.descending", "Descending") gui("sorting.descending", "Descending")
gui("sorting.matter_value", "Matter value")
gui("sorting.matter_complexity", "Replication complexity")
gui("matter_panel.increase_by", "+%s") gui("matter_panel.increase_by", "+%s")
gui("matter_panel.decrease_by", "-%s") gui("matter_panel.decrease_by", "-%s")

View File

@ -641,6 +641,8 @@ private fun gui(provider: MatteryLanguageProvider) {
gui("sorting.count", "Сортировка по количеству") gui("sorting.count", "Сортировка по количеству")
gui("sorting.ascending", "Возрастающая") gui("sorting.ascending", "Возрастающая")
gui("sorting.descending", "Убывающая") gui("sorting.descending", "Убывающая")
gui("sorting.matter_value", "Значение материи")
gui("sorting.matter_complexity", "Сложность репликации")
gui("matter_panel.send", "Запросить") gui("matter_panel.send", "Запросить")
gui("matter_panel.close", "Закрыть") gui("matter_panel.close", "Закрыть")

View File

@ -9,6 +9,7 @@ import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.nullsFirst import ru.dbotthepony.mc.otm.core.nullsFirst
import ru.dbotthepony.mc.otm.core.nullsLast import ru.dbotthepony.mc.otm.core.nullsLast
import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.core.registryName
import ru.dbotthepony.mc.otm.matter.MatterManager
object CreativeMenuComparator : Comparator<Item> { object CreativeMenuComparator : Comparator<Item> {
override fun compare(o1: Item, o2: Item): Int { override fun compare(o1: Item, o2: Item): Int {
@ -42,6 +43,24 @@ object CreativeMenuComparator : Comparator<Item> {
val NullsLast = nullsLast() val NullsLast = nullsLast()
} }
object MatterValueComparator : Comparator<Item> {
override fun compare(o1: Item, o2: Item): Int {
return MatterManager.get(o1).matter.compareTo(MatterManager.get(o2).matter)
}
val NullsFirst = nullsFirst()
val NullsLast = nullsLast()
}
object MatterComplexityComparator : Comparator<Item> {
override fun compare(o1: Item, o2: Item): Int {
return MatterManager.get(o1).complexity.compareTo(MatterManager.get(o2).complexity)
}
val NullsFirst = nullsFirst()
val NullsLast = nullsLast()
}
object ItemLocalizedNameComparator : Comparator<Item> { object ItemLocalizedNameComparator : Comparator<Item> {
override fun compare(o1: Item, o2: Item): Int { override fun compare(o1: Item, o2: Item): Int {
return o1.description.string.compareTo(o2.description.string) return o1.description.string.compareTo(o2.description.string)
@ -77,7 +96,10 @@ enum class ItemSorter(val comparator: Comparator<Item?>, private val sTitle: Com
DEFAULT(CreativeMenuComparator.NullsFirst, TranslatableComponent("otm.gui.sorting.default")), DEFAULT(CreativeMenuComparator.NullsFirst, TranslatableComponent("otm.gui.sorting.default")),
NAME(ItemLocalizedNameComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.name")), NAME(ItemLocalizedNameComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.name")),
ID(ItemIDComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.id")), ID(ItemIDComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.id")),
MOD(ItemModComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.modid")); MOD(ItemModComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.modid")),
MATTER_VALUE(MatterValueComparator.NullsFirst.thenComparing(MatterComplexityComparator.NullsFirst).thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.matter_value")),
MATTER_COMPLEXITY(MatterComplexityComparator.NullsFirst.thenComparing(MatterValueComparator.NullsFirst).thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.matter_complexity")),
;
val title: Component get() = sTitle.copy() val title: Component get() = sTitle.copy()
} }