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.minecraft.world.item.ItemStack
|
||||||
import net.neoforged.neoforge.fluids.FluidStack
|
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.IFluidHandler
|
||||||
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem
|
import net.neoforged.neoforge.fluids.capability.IFluidHandlerItem
|
||||||
import ru.dbotthepony.mc.otm.registry.MDataComponentTypes
|
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 {
|
open class ItemMatteryFluidHandler(val itemStack: ItemStack, private val _capacity: IntSupplier) : AbstractMatteryFluidHandler(), IFluidHandlerItem {
|
||||||
override var fluid: FluidStack
|
override var fluid: FluidStack
|
||||||
get() = itemStack[MDataComponentTypes.FLUID_STACK] ?: FluidStack.EMPTY
|
get() = (itemStack[MDataComponentTypes.FLUID_STACK] ?: SimpleFluidContent.EMPTY).copy()
|
||||||
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = value }
|
set(value) { itemStack[MDataComponentTypes.FLUID_STACK] = SimpleFluidContent.copyOf(value) }
|
||||||
|
|
||||||
final override val capacity: Int
|
final override val capacity: Int
|
||||||
get() = _capacity.asInt
|
get() = _capacity.asInt
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.item.matter
|
package ru.dbotthepony.mc.otm.item.matter
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
@ -119,7 +120,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
patterns[i] = pattern
|
patterns[i] = pattern
|
||||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||||
return PatternInsertUpdated(pattern, ePattern)
|
return PatternInsertUpdated(pattern, ePattern)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -129,7 +130,7 @@ class PatternStorageItem : Item, CapabilitiesRegisterListener {
|
|||||||
|
|
||||||
if (!simulate) {
|
if (!simulate) {
|
||||||
patterns.add(pattern)
|
patterns.add(pattern)
|
||||||
stack[MDataComponentTypes.PATTERNS] = patterns
|
stack[MDataComponentTypes.PATTERNS] = ImmutableList.copyOf(patterns)
|
||||||
}
|
}
|
||||||
|
|
||||||
return PatternInsertInserted(pattern)
|
return PatternInsertInserted(pattern)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList
|
||||||
import com.mojang.serialization.Codec
|
import com.mojang.serialization.Codec
|
||||||
import net.minecraft.core.UUIDUtil
|
import net.minecraft.core.UUIDUtil
|
||||||
import net.minecraft.core.component.DataComponentType
|
import net.minecraft.core.component.DataComponentType
|
||||||
@ -8,6 +9,7 @@ import net.minecraft.network.RegistryFriendlyByteBuf
|
|||||||
import net.minecraft.network.codec.StreamCodec
|
import net.minecraft.network.codec.StreamCodec
|
||||||
import net.neoforged.bus.api.IEventBus
|
import net.neoforged.bus.api.IEventBus
|
||||||
import net.neoforged.neoforge.fluids.FluidStack
|
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.capability.matter.PatternState
|
||||||
import ru.dbotthepony.mc.otm.container.ItemFilter
|
import ru.dbotthepony.mc.otm.container.ItemFilter
|
||||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||||
@ -30,13 +32,13 @@ object MDataComponentTypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val FLUID_STACK by registry.register("fluid_stack") {
|
val FLUID_STACK by registry.register("fluid_stack") {
|
||||||
object : DataComponentType<FluidStack> {
|
object : DataComponentType<SimpleFluidContent> {
|
||||||
override fun codec(): Codec<FluidStack> {
|
override fun codec(): Codec<SimpleFluidContent> {
|
||||||
return FluidStack.OPTIONAL_CODEC
|
return SimpleFluidContent.CODEC
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, FluidStack> {
|
override fun streamCodec(): StreamCodec<in RegistryFriendlyByteBuf, SimpleFluidContent> {
|
||||||
return FluidStack.OPTIONAL_STREAM_CODEC
|
return SimpleFluidContent.STREAM_CODEC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,7 +55,10 @@ object MDataComponentTypes {
|
|||||||
val EXOPACK_UPGRADE_ID: DataComponentType<UUID> by registry.register("exopack_upgrade_id") { uuid() }
|
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 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 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 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() }
|
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