Update painter menu
This commit is contained in:
parent
87b87b9b82
commit
bec6f65636
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.menu.decorative
|
package ru.dbotthepony.mc.otm.menu.decorative
|
||||||
|
|
||||||
|
import net.minecraft.tags.ItemTags
|
||||||
import net.minecraft.world.SimpleContainer
|
import net.minecraft.world.SimpleContainer
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
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.capabilities.Capabilities
|
||||||
import net.neoforged.neoforge.fluids.FluidStack
|
import net.neoforged.neoforge.fluids.FluidStack
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler
|
import net.neoforged.neoforge.fluids.capability.IFluidHandler
|
||||||
import ru.dbotthepony.kommons.io.nullable
|
|
||||||
import ru.dbotthepony.kommons.util.Listenable
|
import ru.dbotthepony.kommons.util.Listenable
|
||||||
import ru.dbotthepony.kommons.util.ListenableDelegate
|
import ru.dbotthepony.kommons.util.ListenableDelegate
|
||||||
import ru.dbotthepony.kommons.util.getValue
|
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.filter
|
||||||
import ru.dbotthepony.mc.otm.core.collect.maybe
|
import ru.dbotthepony.mc.otm.core.collect.maybe
|
||||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
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.MatteryMenu
|
||||||
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
import ru.dbotthepony.mc.otm.menu.MatterySlot
|
||||||
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
import ru.dbotthepony.mc.otm.menu.input.BooleanInputWithFeedback
|
||||||
import ru.dbotthepony.mc.otm.menu.input.ItemConfigPlayerInput
|
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.recipe.AbstractPainterRecipe
|
||||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||||
import ru.dbotthepony.mc.otm.registry.MRecipes
|
import ru.dbotthepony.mc.otm.registry.MRecipes
|
||||||
@ -47,17 +48,17 @@ class PainterMenu(
|
|||||||
val inputContainer = MatteryContainer(::rescan, 1)
|
val inputContainer = MatteryContainer(::rescan, 1)
|
||||||
val outputContainer = MatteryContainer(1)
|
val outputContainer = MatteryContainer(1)
|
||||||
private var lastRecipe: RecipeHolder<out AbstractPainterRecipe>? = null
|
private var lastRecipe: RecipeHolder<out AbstractPainterRecipe>? = 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 isBulk = BooleanInputWithFeedback(this, tile?.let { it::isBulk })
|
||||||
|
|
||||||
val selectRecipe = PlayerInput(ResourceLocationValueCodec) {
|
val selectRecipe = PlayerInput(StreamCodecs.RESOURCE_LOCATION) {
|
||||||
selectedRecipe = it
|
selectedRecipe = it
|
||||||
}
|
}
|
||||||
|
|
||||||
val inputSlot = object : MatterySlot(inputContainer, 0) {
|
val inputSlot = object : MatterySlot(inputContainer, 0) {
|
||||||
override fun mayPlace(itemStack: ItemStack): Boolean {
|
override fun mayPlace(itemStack: ItemStack): Boolean {
|
||||||
if (!itemStack.isEmpty && itemStack.item is DyeableArmorItem) {
|
if (!itemStack.isEmpty && itemStack.`is`(ItemTags.DYEABLE)) {
|
||||||
return super.mayPlace(itemStack)
|
return super.mayPlace(itemStack)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import net.minecraft.network.FriendlyByteBuf
|
|||||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||||
import net.minecraft.network.codec.ByteBufCodecs
|
import net.minecraft.network.codec.ByteBufCodecs
|
||||||
import net.minecraft.network.codec.StreamCodec
|
import net.minecraft.network.codec.StreamCodec
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.util.valueproviders.FloatProvider
|
import net.minecraft.util.valueproviders.FloatProvider
|
||||||
import ru.dbotthepony.kommons.math.RGBAColor
|
import ru.dbotthepony.kommons.math.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
||||||
@ -28,6 +29,7 @@ object StreamCodecs {
|
|||||||
val BOOLEAN = ByteBufCodecs.BOOL.wrap()
|
val BOOLEAN = ByteBufCodecs.BOOL.wrap()
|
||||||
val STRING = ByteBufCodecs.STRING_UTF8.wrap()
|
val STRING = ByteBufCodecs.STRING_UTF8.wrap()
|
||||||
val UUID = UUIDUtil.STREAM_CODEC.wrap()
|
val UUID = UUIDUtil.STREAM_CODEC.wrap()
|
||||||
|
val RESOURCE_LOCATION = ResourceLocation.STREAM_CODEC.wrap()
|
||||||
|
|
||||||
val RGBA: MatteryStreamCodec<ByteBuf, RGBAColor> = StreamCodec.of<ByteBuf, RGBAColor>(
|
val RGBA: MatteryStreamCodec<ByteBuf, RGBAColor> = StreamCodec.of<ByteBuf, RGBAColor>(
|
||||||
{ s, v -> s.writeFloat(v.red); s.writeFloat(v.green); s.writeFloat(v.blue); s.writeFloat(v.alpha) },
|
{ s, v -> s.writeFloat(v.red); s.writeFloat(v.green); s.writeFloat(v.blue); s.writeFloat(v.alpha) },
|
||||||
|
Loading…
Reference in New Issue
Block a user