Update FLUID_STACK component to use SimpleFluidContent
This commit is contained in:
parent
0446e5adb3
commit
5af896e476
@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.capability.fluid
|
||||
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.neoforged.neoforge.fluids.FluidStack
|
||||
import net.neoforged.neoforge.fluids.SimpleFluidContent
|
||||
import net.neoforged.neoforge.fluids.capability.IFluidHandler
|
||||
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem
|
||||
import ru.dbotthepony.mc.otm.registry.MDataComponentTypes
|
||||
@ -12,8 +13,8 @@ import java.util.function.IntSupplier
|
||||
*/
|
||||
open class ItemMatteryFluidHandler(val itemStack: ItemStack, private val _capacity: IntSupplier) : AbstractMatteryFluidHandler(), IFluidHandlerItem {
|
||||
override var fluid: FluidStack
|
||||
get() = itemStack[MDataComponentTypes.FLUID_STACK] ?: FluidStack.EMPTY
|
||||
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = value }
|
||||
get() = (itemStack[MDataComponentTypes.FLUID_STACK] ?: SimpleFluidContent.EMPTY).copy()
|
||||
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = SimpleFluidContent.copyOf(value) }
|
||||
|
||||
final override val capacity: Int
|
||||
get() = _capacity.asInt
|
||||
|
@ -1,5 +1,6 @@
|
||||
package ru.dbotthepony.mc.otm.item.matter
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.Item
|
||||
@ -119,7 +120,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
||||
}
|
||||
|
||||
patterns[i] = pattern
|
||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
||||
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||
return PatternInsertUpdated(pattern, ePattern)
|
||||
}
|
||||
}
|
||||
@ -129,7 +130,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
||||
|
||||
if (!simulate) {
|
||||
patterns.add(pattern)
|
||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
||||
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||
}
|
||||
|
||||
return PatternInsertInserted(pattern)
|
||||
|
@ -1,5 +1,6 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import com.mojang.serialization.Codec
|
||||
import net.minecraft.core.UUIDUtil
|
||||
import net.minecraft.core.component.DataComponentType
|
||||
@ -8,6 +9,7 @@ import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
import net.minecraft.network.codec.StreamCodec
|
||||
import net.neoforged.bus.api.IEventBus
|
||||
import net.neoforged.neoforge.fluids.FluidStack
|
||||
import net.neoforged.neoforge.fluids.SimpleFluidContent
|
||||
import ru.dbotthepony.mc.otm.capability.matter.PatternState
|
||||
import ru.dbotthepony.mc.otm.container.ItemFilter
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
@ -30,13 +32,13 @@ object MDataComponentTypes {
|
||||
}
|
||||
|
||||
val FLUID_STACK by registry.register("fluid_stack") {
|
||||
object : DataComponentType<FluidStack> {
|
||||
override fun codec(): Codec<FluidStack> {
|
||||
return FluidStack.OPTIONAL_CODEC
|
||||
object : DataComponentType<SimpleFluidContent> {
|
||||
override fun codec(): Codec<SimpleFluidContent> {
|
||||
return SimpleFluidContent.CODEC
|
||||
}
|
||||
|
||||
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, FluidStack> {
|
||||
return FluidStack.OPTIONAL_STREAM_CODEC
|
||||
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, SimpleFluidContent> {
|
||||
return SimpleFluidContent.STREAM_CODEC
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -53,7 +55,10 @@ object MDataComponentTypes {
|
||||
val EXOPACK_UPGRADE_ID: DataComponentType<UUID> by registry.register("exopack_upgrade_id") { uuid() }
|
||||
val QUANTUM_LINK_ID: DataComponentType<UUID> by registry.register("quantum_link_id") { uuid() }
|
||||
val CONDENSATION_DRIVE_UUID: DataComponentType<UUID> by registry.register("condensation_drive_uuid") { uuid() }
|
||||
val PATTERNS: DataComponentType<List<PatternState>> by registry.register("patterns") { DataComponentType.builder<List<PatternState>>().persistent(Codec.list(PatternState.CODEC)).build() }
|
||||
val PATTERNS: DataComponentType<ImmutableList<PatternState>> by registry.register("patterns") {
|
||||
DataComponentType.builder<ImmutableList<PatternState>>().persistent(Codec.list(PatternState.CODEC).xmap({ ImmutableList.copyOf(it) }, { it })).build()
|
||||
}
|
||||
|
||||
val ITEM_FILTER: DataComponentType<ItemFilter> by registry.register("item_filter") { DataComponentType.builder<ItemFilter>().persistent(ItemFilter.CODEC).build() }
|
||||
|
||||
val EXPERIENCE: DataComponentType<Long> by registry.register("experience") { DataComponentType.builder<Long>().persistent(Codec.LONG).networkSynchronized(StreamCodecs.LONG).build() }
|
||||
|
Loading…
Reference in New Issue
Block a user