Fixed observed item stacks are not properly synched
This commit is contained in:
parent
74afafd904
commit
5166bf20ad
@ -0,0 +1,22 @@
|
||||
package ru.dbotthepony.mc.otm.network
|
||||
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
import net.minecraft.world.item.ItemStack
|
||||
|
||||
object ItemStackCodec : MatteryStreamCodec<RegistryFriendlyByteBuf, ItemStack> {
|
||||
override fun decode(stream: RegistryFriendlyByteBuf): ItemStack {
|
||||
return ItemStack.OPTIONAL_STREAM_CODEC.decode(stream)
|
||||
}
|
||||
|
||||
override fun encode(stream: RegistryFriendlyByteBuf, value: ItemStack) {
|
||||
return ItemStack.OPTIONAL_STREAM_CODEC.encode(stream, value)
|
||||
}
|
||||
|
||||
override fun copy(value: ItemStack): ItemStack {
|
||||
return value.copy()
|
||||
}
|
||||
|
||||
override fun compare(a: ItemStack, b: ItemStack): Boolean {
|
||||
return ItemStack.isSameItemSameComponents(a, b)
|
||||
}
|
||||
}
|
@ -21,6 +21,7 @@ import ru.dbotthepony.mc.otm.OTM_CLEANER
|
||||
import ru.dbotthepony.mc.otm.core.collect.filterNotNull
|
||||
import ru.dbotthepony.mc.otm.core.collect.map
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.network.ItemStackCodec
|
||||
import ru.dbotthepony.mc.otm.network.MatteryStreamCodec
|
||||
import ru.dbotthepony.mc.otm.network.StreamCodecs
|
||||
import ru.dbotthepony.mc.otm.network.decodePayload
|
||||
@ -282,15 +283,15 @@ class SynchableGroup : Observer, ISynchable, Iterable<ISynchable> {
|
||||
}
|
||||
|
||||
fun item(value: ItemStack = ItemStack.EMPTY, setter: DelegateSetter<ItemStack> = DelegateSetter.passthrough(), getter: DelegateGetter<ItemStack> = DelegateGetter.passthrough()): SynchableDelegate<ItemStack> {
|
||||
return add(ListenableDelegate.maskSmart(value, getter, setter), ItemStack.OPTIONAL_STREAM_CODEC.wrap())
|
||||
return add(ListenableDelegate.maskSmart(value, getter, setter), ItemStackCodec)
|
||||
}
|
||||
|
||||
fun computedItem(delegate: Supplier<ItemStack>): SynchableDelegate<ItemStack> {
|
||||
return computed(delegate, ItemStack.OPTIONAL_STREAM_CODEC.wrap())
|
||||
return computed(delegate, ItemStackCodec)
|
||||
}
|
||||
|
||||
fun observedItem(value: ItemStack = ItemStack.EMPTY, setter: DelegateSetter<ItemStack> = DelegateSetter.passthrough(), getter: DelegateGetter<ItemStack> = DelegateGetter.passthrough()): SynchableObservedDelegate<ItemStack> {
|
||||
return add(Delegate.maskSmart(value, getter, setter), ItemStack.OPTIONAL_STREAM_CODEC.wrap())
|
||||
return add(Delegate.maskSmart(value, getter, setter), ItemStackCodec)
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user