From bec6f656369d9fc2143a5a987d7756e07f5a14d1 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 21 Aug 2024 20:15:01 +0700 Subject: [PATCH] Update painter menu --- .../dbotthepony/mc/otm/menu/decorative/PainterMenu.kt | 11 ++++++----- .../ru/dbotthepony/mc/otm/network/StreamCodecs.kt | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt index 732ca65d0..c7964e42b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/menu/decorative/PainterMenu.kt @@ -1,5 +1,6 @@ package ru.dbotthepony.mc.otm.menu.decorative +import net.minecraft.tags.ItemTags import net.minecraft.world.SimpleContainer import net.minecraft.world.entity.player.Inventory import net.minecraft.world.entity.player.Player @@ -9,7 +10,6 @@ import net.minecraft.world.level.material.Fluids import net.neoforged.neoforge.capabilities.Capabilities import net.neoforged.neoforge.fluids.FluidStack import net.neoforged.neoforge.fluids.capability.IFluidHandler -import ru.dbotthepony.kommons.io.nullable import ru.dbotthepony.kommons.util.Listenable import ru.dbotthepony.kommons.util.ListenableDelegate import ru.dbotthepony.kommons.util.getValue @@ -22,11 +22,12 @@ import ru.dbotthepony.mc.otm.core.collect.SupplierMap import ru.dbotthepony.mc.otm.core.collect.filter import ru.dbotthepony.mc.otm.core.collect.maybe import ru.dbotthepony.mc.otm.core.isNotEmpty -import ru.dbotthepony.mc.otm.core.util.ResourceLocationValueCodec import ru.dbotthepony.mc.otm.menu.MatteryMenu import ru.dbotthepony.mc.otm.menu.MatterySlot import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput +import ru.dbotthepony.mc.otm.network.StreamCodecs +import ru.dbotthepony.mc.otm.network.nullable import ru.dbotthepony.mc.otm.recipe.AbstractPainterRecipe import ru.dbotthepony.mc.otm.registry.MMenus import ru.dbotthepony.mc.otm.registry.MRecipes @@ -47,17 +48,17 @@ class PainterMenu( val inputContainer = MatteryContainer(::rescan, 1) val outputContainer = MatteryContainer(1) private var lastRecipe: RecipeHolder? = null - var selectedRecipe by mSynchronizer.Slot(ListenableDelegate.Box(null), ResourceLocationValueCodec.nullable()).also { it.addListener(Runnable { rescan() }) } + var selectedRecipe by mSynchronizer.Slot(ListenableDelegate.Box(null), StreamCodecs.RESOURCE_LOCATION.nullable()).also { it.addListener(Runnable { rescan() }) } val isBulk = BooleanInputWithFeedback(this, tile?.let { it::isBulk }) - val selectRecipe = PlayerInput(ResourceLocationValueCodec) { + val selectRecipe = PlayerInput(StreamCodecs.RESOURCE_LOCATION) { selectedRecipe = it } val inputSlot = object : MatterySlot(inputContainer, 0) { override fun mayPlace(itemStack: ItemStack): Boolean { - if (!itemStack.isEmpty && itemStack.item is DyeableArmorItem) { + if (!itemStack.isEmpty && itemStack.`is`(ItemTags.DYEABLE)) { return super.mayPlace(itemStack) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/network/StreamCodecs.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/network/StreamCodecs.kt index d22e94611..64b954b5f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/network/StreamCodecs.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/network/StreamCodecs.kt @@ -6,6 +6,7 @@ import net.minecraft.network.FriendlyByteBuf import net.minecraft.network.RegistryFriendlyByteBuf import net.minecraft.network.codec.ByteBufCodecs import net.minecraft.network.codec.StreamCodec +import net.minecraft.resources.ResourceLocation import net.minecraft.util.valueproviders.FloatProvider import ru.dbotthepony.kommons.math.RGBAColor import ru.dbotthepony.mc.otm.core.math.readDecimal @@ -28,6 +29,7 @@ object StreamCodecs { val BOOLEAN = ByteBufCodecs.BOOL.wrap() val STRING = ByteBufCodecs.STRING_UTF8.wrap() val UUID = UUIDUtil.STREAM_CODEC.wrap() + val RESOURCE_LOCATION = ResourceLocation.STREAM_CODEC.wrap() val RGBA: MatteryStreamCodec = StreamCodec.of( { s, v -> s.writeFloat(v.red); s.writeFloat(v.green); s.writeFloat(v.blue); s.writeFloat(v.alpha) },