From 194aca51ea6f7a0f4119d24dff99a21ef2b7db1e Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 9 Mar 2023 16:51:30 +0700 Subject: [PATCH] Add matter value and complexity sorters --- .../mc/otm/datagen/lang/English.kt | 2 ++ .../mc/otm/datagen/lang/Russian.kt | 2 ++ .../mc/otm/core/util/ItemSorter.kt | 24 ++++++++++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index eaf589cda..7c4275819 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -633,6 +633,8 @@ private fun gui(provider: MatteryLanguageProvider) { gui("sorting.count", "Sort by amount") gui("sorting.ascending", "Ascending") 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.decrease_by", "-%s") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index cdce390c5..6054bcecf 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -641,6 +641,8 @@ private fun gui(provider: MatteryLanguageProvider) { gui("sorting.count", "Сортировка по количеству") gui("sorting.ascending", "Возрастающая") gui("sorting.descending", "Убывающая") + gui("sorting.matter_value", "Значение материи") + gui("sorting.matter_complexity", "Сложность репликации") gui("matter_panel.send", "Запросить") gui("matter_panel.close", "Закрыть") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/ItemSorter.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/ItemSorter.kt index 76a467de8..fe6c1b229 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/ItemSorter.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/util/ItemSorter.kt @@ -9,6 +9,7 @@ import ru.dbotthepony.mc.otm.core.TranslatableComponent import ru.dbotthepony.mc.otm.core.nullsFirst import ru.dbotthepony.mc.otm.core.nullsLast import ru.dbotthepony.mc.otm.core.registryName +import ru.dbotthepony.mc.otm.matter.MatterManager object CreativeMenuComparator : Comparator { override fun compare(o1: Item, o2: Item): Int { @@ -42,6 +43,24 @@ object CreativeMenuComparator : Comparator { val NullsLast = nullsLast() } +object MatterValueComparator : Comparator { + 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 { + 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 { override fun compare(o1: Item, o2: Item): Int { return o1.description.string.compareTo(o2.description.string) @@ -77,7 +96,10 @@ enum class ItemSorter(val comparator: Comparator, private val sTitle: Com DEFAULT(CreativeMenuComparator.NullsFirst, TranslatableComponent("otm.gui.sorting.default")), NAME(ItemLocalizedNameComparator.NullsFirst.thenComparing(CreativeMenuComparator.NullsFirst), TranslatableComponent("otm.gui.sorting.name")), 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() }