Update jade compat

This commit is contained in:
DBotThePony 2024-08-10 16:24:17 +07:00
parent 68e1bd9036
commit 494bf70f6b
Signed by: DBot
GPG Key ID: DCC23B5715498507
4 changed files with 18 additions and 5 deletions

View File

@ -4,6 +4,7 @@ import net.minecraft.ChatFormatting
import net.minecraft.nbt.CompoundTag
import net.minecraft.network.chat.Component
import net.minecraft.resources.ResourceLocation
import net.neoforged.neoforge.capabilities.BlockCapability
import ru.dbotthepony.mc.otm.capability.AbstractProfiledStorage
import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.compat.jade.JadeColors
@ -12,6 +13,9 @@ import ru.dbotthepony.mc.otm.compat.jade.JadeUids
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
import ru.dbotthepony.mc.otm.capability.matter.IMatterStorage
import ru.dbotthepony.mc.otm.core.getCapability
import ru.dbotthepony.mc.otm.core.math.getDecimal
import ru.dbotthepony.mc.otm.core.math.putDecimal
import ru.dbotthepony.mc.otm.core.util.formatMatter
@ -27,7 +31,7 @@ object MatterStorageProvider : IBlockComponentProvider, IServerDataProvider<Bloc
override fun getUid(): ResourceLocation = JadeUids.MATTER_STORAGE
override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) {
accessor.blockEntity?.getCapability(MatteryCapability.MATTER)?.ifPresentK {
accessor.level.getCapability(MatteryCapability.MATTER_BLOCK, accessor.position)?.let {
val matterData = CompoundTag()
matterData.putDecimal("storedMatter", it.storedMatter)

View File

@ -10,9 +10,9 @@ import ru.dbotthepony.mc.otm.compat.jade.JadeColors
import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys
import ru.dbotthepony.mc.otm.compat.jade.JadeUids
import ru.dbotthepony.mc.otm.core.TranslatableComponent
import ru.dbotthepony.mc.otm.core.ifPresentK
import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.kommons.math.RGBAColor
import ru.dbotthepony.mc.otm.core.getCapability
import ru.dbotthepony.mc.otm.core.math.getDecimal
import ru.dbotthepony.mc.otm.core.math.putDecimal
import ru.dbotthepony.mc.otm.core.util.formatPower
@ -25,7 +25,7 @@ object MatteryEnergyProvider : IBlockComponentProvider, IServerDataProvider<Bloc
override fun getUid(): ResourceLocation = JadeUids.MATTERY_ENERGY
override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) {
accessor.blockEntity?.getCapability(MatteryCapability.ENERGY)?.ifPresentK {
accessor.level.getCapability(MatteryCapability.BLOCK_ENERGY, accessor.position)?.let {
val energyData = CompoundTag()
energyData.putDecimal("batteryLevel", it.batteryLevel)

View File

@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.compat.jade.providers
import net.minecraft.nbt.CompoundTag
import net.minecraft.nbt.ListTag
import net.minecraft.resources.ResourceLocation
import net.minecraft.world.item.ItemStack
import ru.dbotthepony.mc.otm.block.entity.ItemJob
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys
@ -36,7 +37,7 @@ object MatteryWorkerProvider : IBlockComponentProvider, IServerDataProvider<Bloc
if (job.currentJob is ItemJob) {
val currentJob = job.currentJob as ItemJob
jobData.put("itemStack", currentJob.itemStack.serializeNBT())
jobData.put("itemStack", currentJob.itemStack.saveOptional(accessor.level.registryAccess()))
}
it.add(jobData)
@ -61,7 +62,7 @@ object MatteryWorkerProvider : IBlockComponentProvider, IServerDataProvider<Bloc
val progress = job.getFloat("workProgress")
val isIdling = job.getBoolean("isIdling")
val isUnableToProcess = job.getBoolean("isUnableToProcess")
val itemStack = job.getItemStack("itemStack")
val itemStack = ItemStack.parseOptional(accessor.level.registryAccess(), job.getCompound("itemStack"))
if (!isIdling) {
if (!itemStack.isEmpty) {

View File

@ -5,6 +5,7 @@ import com.google.gson.JsonSyntaxException
import com.mojang.serialization.Codec
import com.mojang.serialization.DataResult
import com.mojang.serialization.JsonOps
import net.minecraft.core.BlockPos
import net.minecraft.core.Holder
import net.minecraft.core.Registry
import net.minecraft.core.RegistryAccess
@ -24,10 +25,12 @@ import net.minecraft.tags.DamageTypeTags
import net.minecraft.world.damagesource.DamageSource
import net.minecraft.world.damagesource.DamageType
import net.minecraft.world.item.Item
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block
import net.minecraft.world.level.material.Fluid
import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3
import net.neoforged.neoforge.capabilities.BlockCapability
import ru.dbotthepony.mc.otm.core.util.readBinaryJson
import ru.dbotthepony.mc.otm.core.util.writeBinaryJson
import kotlin.jvm.optionals.getOrNull
@ -114,3 +117,8 @@ fun <IN, OUT> DataResult<IN>.mapOrNull(map: (IN) -> OUT): OUT? {
fun AABB(mins: Vec3i, maxs: Vec3i): AABB {
return AABB(Vec3.atLowerCornerOf(mins), Vec3.atLowerCornerOf(maxs))
}
@Deprecated("Unchecked capability cast")
fun <T, C> Level.getCapability(capability: BlockCapability<T, C>, blockPos: BlockPos): T? {
return getCapability(capability as BlockCapability<T, Void>, blockPos)
}