From e0aa5ebbaec8cc6ae73fa052af1f48c33e216151 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 30 Mar 2025 18:16:43 +0700 Subject: [PATCH] Compile against kommons immutable* factory functions and mapped comparator --- .../block/entity/MatteryWorkerBlockEntity.kt | 2 +- .../BlackHoleGeneratorBlockEntity.kt | 2 +- .../entity/decorative/PainterBlockEntity.kt | 2 +- .../matter/MatterCapacitorBankBlockEntity.kt | 2 +- .../matter/PatternStorageBlockEntity.kt | 3 +- .../entity/storage/StorageBusBlockEntity.kt | 1 - .../tech/AbstractPoweredFurnaceBlockEntity.kt | 2 +- .../entity/tech/BatteryBankBlockEntity.kt | 2 +- .../client/render/blockentity/BankRenderer.kt | 2 +- .../GravitationStabilizerRenderer.kt | 1 - .../client/screen/decorative/PainterScreen.kt | 1 + .../client/screen/panels/button/Buttons.kt | 2 +- .../screen/panels/button/EnumButtonPanel.kt | 1 - .../mc/otm/container/ContainerHelpers.kt | 1 + .../mc/otm/graph/matter/MatterGraph.kt | 2 +- .../mc/otm/item/FluidCapsuleItem.kt | 2 +- .../mc/otm/matter/MatterManager.kt | 2 +- .../ru/dbotthepony/mc/otm/menu/Slots.kt | 2 +- .../mc/otm/menu/data/NetworkedItemView.kt | 3 +- .../mc/otm/menu/decorative/GrillMenu.kt | 2 +- .../mc/otm/menu/input/ItemFilterInput.kt | 2 +- .../menu/matter/MatterCapacitorBankMenu.kt | 2 +- .../mc/otm/menu/matter/MatterPanelMenu.kt | 3 +- .../otm/menu/matter/MatterReplicatorMenu.kt | 2 +- .../mc/otm/menu/matter/PatternStorageMenu.kt | 2 +- .../mc/otm/menu/tech/BatteryBankMenu.kt | 2 +- .../mc/otm/menu/tech/PlatePressMenu.kt | 2 +- .../mc/otm/menu/tech/PoweredFurnaceMenu.kt | 2 +- .../ru/dbotthepony/mc/otm/util/ItemSorter.kt | 2 + .../ru/dbotthepony/mc/otm/util/Savetables.kt | 1 + .../ru/dbotthepony/mc/otm/util/Utils.kt | 157 ------------------ .../mc/otm/tests/ComparatorTests.kt | 34 ---- 32 files changed, 30 insertions(+), 218 deletions(-) delete mode 100644 src/test/kotlin/ru/dbotthepony/mc/otm/tests/ComparatorTests.kt diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt index 1db03d391..d2456b661 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/MatteryWorkerBlockEntity.kt @@ -9,11 +9,11 @@ import net.minecraft.nbt.ListTag import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.entity.BlockEntityType import net.minecraft.world.level.block.state.BlockState +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.capability.IMatteryUpgrade import ru.dbotthepony.mc.otm.capability.UpgradeType import ru.dbotthepony.mc.otm.capability.energy.IMatteryEnergyStorage import ru.dbotthepony.mc.otm.container.UpgradeContainer -import ru.dbotthepony.mc.otm.util.immutableList import ru.dbotthepony.mc.otm.util.getCompoundList import ru.dbotthepony.mc.otm.util.set import ru.dbotthepony.mc.otm.util.countingLazy diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleGeneratorBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleGeneratorBlockEntity.kt index e8097144f..08166b25b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleGeneratorBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/blackhole/BlackHoleGeneratorBlockEntity.kt @@ -27,7 +27,7 @@ import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.collect.map import ru.dbotthepony.mc.otm.multiblock.ShapedMultiblock import ru.dbotthepony.mc.otm.util.getBlockStateNow -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.math.plus import ru.dbotthepony.mc.otm.util.math.times diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/PainterBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/PainterBlockEntity.kt index 9a0af40be..00ea3e27b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/PainterBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/decorative/PainterBlockEntity.kt @@ -20,7 +20,7 @@ import net.neoforged.neoforge.fluids.capability.IFluidHandler import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity import ru.dbotthepony.mc.otm.container.slotted.ContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.immutableMap import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.mapPresent diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt index 97cf7b7a6..91f15a357 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/MatterCapacitorBankBlockEntity.kt @@ -18,7 +18,7 @@ import ru.dbotthepony.mc.otm.capability.matter.IMatterStorage import ru.dbotthepony.mc.otm.capability.matter.ProfiledMatterStorage import ru.dbotthepony.mc.otm.container.slotted.ContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.graph.matter.SimpleMatterNode import ru.dbotthepony.mc.otm.menu.matter.MatterCapacitorBankMenu diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt index c7e2cb2e4..ea1805077 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/matter/PatternStorageBlockEntity.kt @@ -12,13 +12,12 @@ import net.minecraft.world.inventory.AbstractContainerMenu import ru.dbotthepony.mc.otm.menu.matter.PatternStorageMenu import net.minecraft.world.level.Level import net.minecraft.world.level.block.Block +import ru.dbotthepony.kommons.collect.filterNotNull import ru.dbotthepony.mc.otm.block.entity.MatteryDeviceBlockEntity import ru.dbotthepony.mc.otm.capability.matter.* import ru.dbotthepony.mc.otm.container.slotted.ContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.collect.filterNotNull import ru.dbotthepony.mc.otm.util.collect.map -import ru.dbotthepony.mc.otm.util.filterNotNull import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.graph.matter.SimpleMatterNode import ru.dbotthepony.mc.otm.registry.game.MBlockEntities diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt index 4976eab5c..59a88a17e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/storage/StorageBusBlockEntity.kt @@ -24,7 +24,6 @@ import ru.dbotthepony.mc.otm.capability.energy.ProfiledEnergyStorage import ru.dbotthepony.mc.otm.capability.energy.WorkerEnergyStorage import ru.dbotthepony.mc.otm.config.MachinesConfig import ru.dbotthepony.mc.otm.container.ItemFilterSet -import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.util.math.RelativeSide import ru.dbotthepony.mc.otm.util.math.isPositive import ru.dbotthepony.mc.otm.util.math.toIntSafe diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/AbstractPoweredFurnaceBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/AbstractPoweredFurnaceBlockEntity.kt index f4b9a50df..74fcd9fa6 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/AbstractPoweredFurnaceBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/AbstractPoweredFurnaceBlockEntity.kt @@ -35,7 +35,7 @@ import ru.dbotthepony.mc.otm.container.slotted.AutomationFilters import ru.dbotthepony.mc.otm.container.slotted.FilteredContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer import ru.dbotthepony.mc.otm.util.SimpleCache -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.otmRandom import ru.dbotthepony.mc.otm.container.ItemStackKey import ru.dbotthepony.mc.otm.container.asKey diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt index b9d644aed..fb35ea42e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/tech/BatteryBankBlockEntity.kt @@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.capability.maxEnergyStoredMattery import ru.dbotthepony.mc.otm.capability.transcieveEnergy import ru.dbotthepony.mc.otm.container.slotted.FilteredContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.otmRandom diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt index 805e89ae5..4b8116cb4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/BankRenderer.kt @@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.client.render.WidgetLocation import ru.dbotthepony.mc.otm.client.render.sprites.AbstractMatterySprite import ru.dbotthepony.mc.otm.util.ResourceLocation import ru.dbotthepony.mc.otm.util.get -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.math.BlockRotationFreedom import ru.dbotthepony.mc.otm.util.math.rotate import ru.dbotthepony.mc.otm.util.math.rotateY diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt index 05e5ce160..278a8cff7 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/render/blockentity/GravitationStabilizerRenderer.kt @@ -19,7 +19,6 @@ import ru.dbotthepony.mc.otm.block.entity.WorkerState import ru.dbotthepony.mc.otm.client.ShiftPressedCond import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.render.* -import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.util.math.BlockRotationFreedom import ru.dbotthepony.kommons.math.RGBAColor import ru.dbotthepony.mc.otm.block.entity.tech.GravitationStabilizerBlockEntity.Companion.RANGE diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/decorative/PainterScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/decorative/PainterScreen.kt index c083ca50e..ab28f70fa 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/decorative/PainterScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/decorative/PainterScreen.kt @@ -9,6 +9,7 @@ import net.minecraft.world.item.ItemStack import net.minecraft.world.item.Items import net.neoforged.neoforge.common.Tags import ru.dbotthepony.kommons.math.RGBAColor +import ru.dbotthepony.kommons.util.map import ru.dbotthepony.mc.otm.block.entity.decorative.PainterBlockEntity import ru.dbotthepony.mc.otm.client.render.FlatRectangleIcon import ru.dbotthepony.mc.otm.client.render.IGUIRenderable diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt index c3e4dc996..b2ce06bda 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/Buttons.kt @@ -31,7 +31,7 @@ import ru.dbotthepony.mc.otm.client.screen.tech.EssenceStorageScreen import ru.dbotthepony.mc.otm.config.ClientConfig import ru.dbotthepony.mc.otm.util.TextComponent import ru.dbotthepony.mc.otm.util.TranslatableComponent -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.math.RelativeSide import ru.dbotthepony.mc.otm.util.ItemStackSorter import ru.dbotthepony.mc.otm.util.getLevelFromXp diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt index 59ffe38bd..2d1d73d5b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/button/EnumButtonPanel.kt @@ -13,7 +13,6 @@ import ru.dbotthepony.mc.otm.client.playGuiClickSound import ru.dbotthepony.mc.otm.client.render.IGUIRenderable import ru.dbotthepony.mc.otm.client.render.UVWindingOrder import ru.dbotthepony.mc.otm.client.screen.panels.EditablePanel -import ru.dbotthepony.mc.otm.core.* import ru.dbotthepony.mc.otm.menu.input.IPlayerInputWithFeedback import ru.dbotthepony.mc.otm.network.MatteryStreamCodec import ru.dbotthepony.mc.otm.util.TextComponent diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/container/ContainerHelpers.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/container/ContainerHelpers.kt index 9f7608ec3..ac43fe514 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/container/ContainerHelpers.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/container/ContainerHelpers.kt @@ -16,6 +16,7 @@ import net.minecraft.world.item.ItemStack import net.minecraft.world.item.enchantment.EnchantmentEffectComponents import net.minecraft.world.item.enchantment.EnchantmentHelper import net.neoforged.neoforge.fluids.capability.IFluidHandler +import ru.dbotthepony.kommons.util.map import ru.dbotthepony.mc.otm.container.util.ItemStackHashStrategy import ru.dbotthepony.mc.otm.container.util.containerSlot import ru.dbotthepony.mc.otm.container.util.slotIterator diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/matter/MatterGraph.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/matter/MatterGraph.kt index d52917d19..60649ae78 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/graph/matter/MatterGraph.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/graph/matter/MatterGraph.kt @@ -4,7 +4,7 @@ import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet import net.minecraft.world.item.Item import ru.dbotthepony.mc.otm.capability.FlowDirection import ru.dbotthepony.mc.otm.capability.matter.* -import ru.dbotthepony.mc.otm.util.filterNotNull +import ru.dbotthepony.kommons.collect.filterNotNull import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.graph.GraphNodeList import java.util.* diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt index 9b0006f63..0f979e94a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/FluidCapsuleItem.kt @@ -35,7 +35,7 @@ import ru.dbotthepony.mc.otm.capability.moveFluid import ru.dbotthepony.mc.otm.container.get import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.collect.any -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.immutableMap import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.registry.CapabilitiesRegisterListener diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterManager.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterManager.kt index b0b298820..f888b5e1c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterManager.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterManager.kt @@ -84,7 +84,7 @@ import ru.dbotthepony.mc.otm.util.TextComponent import ru.dbotthepony.mc.otm.util.TranslatableComponent import ru.dbotthepony.mc.otm.util.collect.any import ru.dbotthepony.mc.otm.util.collect.filter -import ru.dbotthepony.mc.otm.util.filterNotNull +import ru.dbotthepony.kommons.collect.filterNotNull import ru.dbotthepony.mc.otm.util.getReverseTag import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.math.Decimal diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt index 1536d9d90..74733ebde 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/Slots.kt @@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.container.ItemFilterSet import ru.dbotthepony.mc.otm.container.UpgradeContainer import ru.dbotthepony.mc.otm.container.util.containerSlotOrNull import ru.dbotthepony.mc.otm.util.collect.ConditionalEnumSet -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.menu.input.InstantBooleanInput diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.kt index 1dbc7d54b..3bdc67341 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.kt @@ -16,10 +16,11 @@ import net.minecraft.world.inventory.ClickType import net.minecraft.world.item.ItemStack import net.neoforged.neoforge.network.PacketDistributor import net.neoforged.neoforge.network.handling.IPayloadContext +import ru.dbotthepony.kommons.collect.addSorted +import ru.dbotthepony.kommons.util.map import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.util.ResourceLocation -import ru.dbotthepony.mc.otm.util.addSorted import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.util.map import ru.dbotthepony.mc.otm.util.readBigInteger diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt index e5c3cee49..9d4c06cf4 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/GrillMenu.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.kommons.util.getValue import ru.dbotthepony.mc.otm.block.entity.decorative.GrillBlockEntity import ru.dbotthepony.mc.otm.container.slotted.ContainerSlot import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.menu.ChemicalFuelMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/input/ItemFilterInput.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/input/ItemFilterInput.kt index 3c5cd0f28..2ed372a18 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/input/ItemFilterInput.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/input/ItemFilterInput.kt @@ -4,7 +4,7 @@ import net.minecraft.world.entity.player.Player import ru.dbotthepony.kommons.util.Delegate import ru.dbotthepony.mc.otm.container.ItemFilter import ru.dbotthepony.mc.otm.container.ItemFilterSet -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.network.StreamCodecs import java.util.function.Predicate diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt index fa55ddc91..55c14fd41 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterCapacitorBankMenu.kt @@ -1,7 +1,7 @@ package ru.dbotthepony.mc.otm.menu.matter import net.minecraft.world.entity.player.Inventory -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.block.entity.matter.MatterCapacitorBankBlockEntity import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterPanelMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterPanelMenu.kt index d3f5ce57d..62136c96d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterPanelMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterPanelMenu.kt @@ -10,13 +10,14 @@ import net.minecraft.world.item.Item import net.neoforged.neoforge.network.PacketDistributor import net.neoforged.neoforge.network.handling.IPayloadContext import org.apache.logging.log4j.LogManager +import ru.dbotthepony.kommons.collect.addSorted import ru.dbotthepony.kommons.util.getValue +import ru.dbotthepony.kommons.util.map import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.block.entity.matter.MatterPanelBlockEntity import ru.dbotthepony.mc.otm.capability.matter.* import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.util.ResourceLocation -import ru.dbotthepony.mc.otm.util.addSorted import ru.dbotthepony.mc.otm.util.map import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.writeCollection diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt index 8f3eeb569..5ff733a6a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/MatterReplicatorMenu.kt @@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget import ru.dbotthepony.mc.otm.container.CombinedContainer import ru.dbotthepony.mc.otm.container.EnhancedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.util.isNotEmpty import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryPoweredMenu diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt index 921e98ce7..50dd8ca70 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/matter/PatternStorageMenu.kt @@ -1,7 +1,7 @@ package ru.dbotthepony.mc.otm.menu.matter import net.minecraft.world.entity.player.Inventory -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.block.entity.matter.PatternStorageBlockEntity import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.util.math.Decimal diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt index ca547be62..0a31824c8 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/BatteryBankMenu.kt @@ -4,7 +4,7 @@ import net.minecraft.world.entity.player.Inventory import ru.dbotthepony.mc.otm.block.entity.tech.BatteryBankBlockEntity import ru.dbotthepony.mc.otm.block.entity.RedstoneSetting import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.menu.BatteryMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.input.EnergyConfigPlayerInput diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt index 1902f4638..34be3886f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PlatePressMenu.kt @@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.block.entity.tech.PlatePressBlockEntity import ru.dbotthepony.mc.otm.compat.jei.PlatePressRecipeCategory import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.MatteryMenuSlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt index 38ffc64f7..5f53cbc23 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/tech/PoweredFurnaceMenu.kt @@ -12,7 +12,7 @@ import ru.dbotthepony.mc.otm.block.entity.tech.PoweredSmokerBlockEntity import ru.dbotthepony.mc.otm.compat.jei.MicrowaveRecipeCategory import ru.dbotthepony.mc.otm.container.EnhancedContainer import ru.dbotthepony.mc.otm.container.slotted.SlottedContainer -import ru.dbotthepony.mc.otm.util.immutableList +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.mc.otm.menu.OutputMenuSlot import ru.dbotthepony.mc.otm.menu.UserFilteredMenuSlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/util/ItemSorter.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/util/ItemSorter.kt index df908aa82..4cec7ab5c 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/util/ItemSorter.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/util/ItemSorter.kt @@ -8,6 +8,8 @@ import net.minecraft.world.item.CreativeModeTabs import net.minecraft.world.item.Item import net.minecraft.world.item.ItemStack import net.neoforged.neoforge.common.CreativeModeTabRegistry +import ru.dbotthepony.kommons.util.nullsFirst +import ru.dbotthepony.kommons.util.nullsLast import ru.dbotthepony.mc.otm.client.minecraft import ru.dbotthepony.mc.otm.client.render.IGUIRenderable import ru.dbotthepony.mc.otm.matter.MatterManager diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/util/Savetables.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/util/Savetables.kt index b3095b492..ffea92c63 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/util/Savetables.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/util/Savetables.kt @@ -18,6 +18,7 @@ import net.minecraft.nbt.Tag import net.minecraft.resources.ResourceLocation import net.neoforged.neoforge.common.util.INBTSerializable import org.apache.logging.log4j.LogManager +import ru.dbotthepony.kommons.guava.immutableList import ru.dbotthepony.kommons.util.Delegate import ru.dbotthepony.mc.otm.util.math.Decimal import ru.dbotthepony.mc.otm.util.math.Vector diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/util/Utils.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/util/Utils.kt index 30d7cb1f0..690ed8e29 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/util/Utils.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/util/Utils.kt @@ -155,22 +155,6 @@ inline var Entity.position: Vec3 get() = position() set(value) { setPos(value) } -inline fun immutableList(size: Int, initializer: (index: Int) -> T): ImmutableList { - require(size >= 0) { "Invalid list size $size" } - - return when (size) { - 0 -> ImmutableList.of() - 1 -> ImmutableList.of(initializer(0)) - else -> ImmutableList.Builder().let { - for (i in 0 until size) { - it.add(initializer(i)) - } - - it.build() - } - } -} - inline fun immutableMap(initializer: ImmutableMap.Builder.() -> Unit): ImmutableMap { val builder = ImmutableMap.Builder() initializer.invoke(builder) @@ -189,19 +173,6 @@ inline fun immutableSet(initializer: Consumer.() -> Unit): Immutabl return builder.build() } -inline fun immutableList(initializer: Consumer.() -> Unit): ImmutableList { - val builder = ImmutableList.Builder() - initializer.invoke(builder::add) - return builder.build() -} - -fun immutableList(a: V, vararg values: V): ImmutableList { - val builder = ImmutableList.Builder() - builder.add(a) - builder.addAll(values.iterator()) - return builder.build() -} - inline fun itemAttributes(builder: ItemAttributeModifiers.Builder.() -> Unit): ItemAttributeModifiers { val value = ItemAttributeModifiers.builder() builder(value) @@ -348,27 +319,8 @@ fun String.toUUID(): UUID { return UUID.nameUUIDFromBytes(toByteArray(Charsets.UTF_8)) } -fun Collection.probablyParallelStream(): Stream { - if (size >= 400) { - // TODO: https://github.com/MinecraftForge/EventBus/issues/44 - return stream() - } - - return stream() -} - fun Array.stream(): Stream = Arrays.stream(this) -@Suppress("unchecked_cast") -fun Stream.filterNotNull(): Stream { - return filter { it != null } as Stream -} - -@Suppress("unchecked_cast") -inline fun Stream<*>.filterIsInstance(): Stream { - return filter { it is T } as Stream -} - inline fun MutableList>.forValidRefs(fn: (T) -> Unit) { val iterator = listIterator() @@ -410,115 +362,6 @@ fun > BlockState.getValueNullable(prop: Property): T? { return null } -fun Stream.asIterable(): Iterable { - return object : Iterable { - override fun iterator(): Iterator { - return this@asIterable.iterator() - } - } -} - -fun Comparator.nullsFirst(): Comparator { - return Comparator.nullsFirst(this) -} - -fun Comparator.nullsLast(): Comparator { - return Comparator.nullsLast(this) -} - -class MappedComparator(private val parent: Comparator, private val mapper: (T) -> O) : Comparator { - override fun compare(o1: T, o2: T): Int { - return parent.compare(mapper.invoke(o1), mapper.invoke(o2)) - } - - override fun equals(other: Any?): Boolean { - return other is MappedComparator<*, *> && parent == other.parent - } - - override fun hashCode(): Int { - return parent.hashCode() - } - - override fun toString(): String { - return "MappedComparator[$parent]" - } -} - -fun Comparator.map(mapper: (B) -> A): Comparator { - return MappedComparator(this, mapper) -} - -fun Comparator.suppliers(): Comparator> { - return MappedComparator(this) { it.get() } -} - -/** - * Returns applicable index to put [element] into [List] determined by [comparator], optionally specifying ranges as [fromIndex] and [toIndex] - * - * If [List] is not sorted, result of this function is undefined - */ -fun List.searchInsertionIndex(element: E, comparator: Comparator, fromIndex: Int = 0, toIndex: Int = size): Int { - require(toIndex >= fromIndex) { "Invalid range: to $toIndex >= from $fromIndex" } - require(fromIndex >= 0) { "Invalid from index: $fromIndex" } - require(toIndex >= 0) { "Invalid to index: $toIndex" } - require(fromIndex <= size) { "Invalid from index: $fromIndex (list size $size)" } - require(toIndex <= size) { "Invalid to index: $toIndex (list size $size)" } - - if (fromIndex == size || fromIndex == toIndex || comparator.compare(element, this[fromIndex]) <= 0) { - return fromIndex - } - - // линейный поиск если границы маленькие - if (toIndex - fromIndex <= 10) { - for (i in fromIndex + 1 until toIndex) { - val compare = comparator.compare(element, this[i]) - - if (compare <= 0) { - return i - } - } - - return size - } else { - // двоичный поиск - var lower = fromIndex - var upper = toIndex - 1 - - while (upper - lower >= 10) { - val middle = (upper + lower) / 2 - val compare = comparator.compare(element, this[middle]) - - if (compare == 0) { - return middle - } else if (compare < 0) { - upper = middle - } else { - lower = middle - } - } - - return searchInsertionIndex(element, comparator, lower, upper + 1) - } -} - -/** - * Inserts [element] into [MutableList] at index determined by [comparator] - * - * If [MutableList] is not sorted, result of this function is undefined - */ -fun MutableList.addSorted(element: E, comparator: Comparator) { - add(searchInsertionIndex(element, comparator), element) -} - -/** - * Inserts [element] into [MutableList] at index determined by comparing values themselves - * - * If [MutableList] is not sorted, result of this function is undefined - */ -fun > MutableList.addSorted(element: E) { - add(searchInsertionIndex(element, ObjectComparators.NATURAL_COMPARATOR), element) -} - fun lazy2(a: () -> A, b: A.() -> B): Supplier { val first = lazy(a) return Supplier { b.invoke(first.value) } diff --git a/src/test/kotlin/ru/dbotthepony/mc/otm/tests/ComparatorTests.kt b/src/test/kotlin/ru/dbotthepony/mc/otm/tests/ComparatorTests.kt deleted file mode 100644 index 9cd3d7110..000000000 --- a/src/test/kotlin/ru/dbotthepony/mc/otm/tests/ComparatorTests.kt +++ /dev/null @@ -1,34 +0,0 @@ -package ru.dbotthepony.mc.otm.tests - -import it.unimi.dsi.fastutil.ints.IntComparators -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.DisplayName -import org.junit.jupiter.api.Test -import ru.dbotthepony.mc.otm.util.addSorted -import java.util.Random - -object ComparatorTests { - @Test - @DisplayName("Comparator tests") - fun test() { - val sortedList = mutableListOf(1, 4, 6) - sortedList.addSorted(2, IntComparators.NATURAL_COMPARATOR) - sortedList.addSorted(3, IntComparators.NATURAL_COMPARATOR) - sortedList.addSorted(7, IntComparators.NATURAL_COMPARATOR) - sortedList.addSorted(-1, IntComparators.NATURAL_COMPARATOR) - - assertEquals(mutableListOf(-1, 1, 2, 3, 4, 6, 7), sortedList) - - val rand = Random() - val sorted2 = ArrayList() - - for (i in 0 .. 100) { - sorted2.addSorted(rand.nextInt(-100, 100), IntComparators.NATURAL_COMPARATOR) - } - - val sorted22 = ArrayList(sorted2) - sorted22.sort() - - assertEquals(sorted22, sorted2) - } -}