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.nbt.CompoundTag
import net.minecraft.network.chat.Component import net.minecraft.network.chat.Component
import net.minecraft.resources.ResourceLocation import net.minecraft.resources.ResourceLocation
import net.neoforged.neoforge.capabilities.BlockCapability
import ru.dbotthepony.mc.otm.capability.AbstractProfiledStorage import ru.dbotthepony.mc.otm.capability.AbstractProfiledStorage
import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.MatteryCapability
import ru.dbotthepony.mc.otm.compat.jade.JadeColors 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.TranslatableComponent
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.kommons.math.RGBAColor 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.getDecimal
import ru.dbotthepony.mc.otm.core.math.putDecimal import ru.dbotthepony.mc.otm.core.math.putDecimal
import ru.dbotthepony.mc.otm.core.util.formatMatter 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 getUid(): ResourceLocation = JadeUids.MATTER_STORAGE
override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { 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() val matterData = CompoundTag()
matterData.putDecimal("storedMatter", it.storedMatter) 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.JadeTagKeys
import ru.dbotthepony.mc.otm.compat.jade.JadeUids import ru.dbotthepony.mc.otm.compat.jade.JadeUids
import ru.dbotthepony.mc.otm.core.TranslatableComponent 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.mc.otm.core.math.Decimal
import ru.dbotthepony.kommons.math.RGBAColor 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.getDecimal
import ru.dbotthepony.mc.otm.core.math.putDecimal import ru.dbotthepony.mc.otm.core.math.putDecimal
import ru.dbotthepony.mc.otm.core.util.formatPower 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 getUid(): ResourceLocation = JadeUids.MATTERY_ENERGY
override fun appendServerData(data: CompoundTag, accessor: BlockAccessor) { 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() val energyData = CompoundTag()
energyData.putDecimal("batteryLevel", it.batteryLevel) 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.CompoundTag
import net.minecraft.nbt.ListTag import net.minecraft.nbt.ListTag
import net.minecraft.resources.ResourceLocation 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.ItemJob
import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity import ru.dbotthepony.mc.otm.block.entity.MatteryWorkerBlockEntity
import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys import ru.dbotthepony.mc.otm.compat.jade.JadeTagKeys
@ -36,7 +37,7 @@ object MatteryWorkerProvider : IBlockComponentProvider, IServerDataProvider<Bloc
if (job.currentJob is ItemJob) { if (job.currentJob is ItemJob) {
val currentJob = job.currentJob as 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) it.add(jobData)
@ -61,7 +62,7 @@ object MatteryWorkerProvider : IBlockComponentProvider, IServerDataProvider<Bloc
val progress = job.getFloat("workProgress") val progress = job.getFloat("workProgress")
val isIdling = job.getBoolean("isIdling") val isIdling = job.getBoolean("isIdling")
val isUnableToProcess = job.getBoolean("isUnableToProcess") val isUnableToProcess = job.getBoolean("isUnableToProcess")
val itemStack = job.getItemStack("itemStack") val itemStack = ItemStack.parseOptional(accessor.level.registryAccess(), job.getCompound("itemStack"))
if (!isIdling) { if (!isIdling) {
if (!itemStack.isEmpty) { if (!itemStack.isEmpty) {

View File

@ -5,6 +5,7 @@ import com.google.gson.JsonSyntaxException
import com.mojang.serialization.Codec import com.mojang.serialization.Codec
import com.mojang.serialization.DataResult import com.mojang.serialization.DataResult
import com.mojang.serialization.JsonOps import com.mojang.serialization.JsonOps
import net.minecraft.core.BlockPos
import net.minecraft.core.Holder import net.minecraft.core.Holder
import net.minecraft.core.Registry import net.minecraft.core.Registry
import net.minecraft.core.RegistryAccess 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.DamageSource
import net.minecraft.world.damagesource.DamageType import net.minecraft.world.damagesource.DamageType
import net.minecraft.world.item.Item import net.minecraft.world.item.Item
import net.minecraft.world.level.Level
import net.minecraft.world.level.block.Block import net.minecraft.world.level.block.Block
import net.minecraft.world.level.material.Fluid import net.minecraft.world.level.material.Fluid
import net.minecraft.world.phys.AABB import net.minecraft.world.phys.AABB
import net.minecraft.world.phys.Vec3 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.readBinaryJson
import ru.dbotthepony.mc.otm.core.util.writeBinaryJson import ru.dbotthepony.mc.otm.core.util.writeBinaryJson
import kotlin.jvm.optionals.getOrNull 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 { fun AABB(mins: Vec3i, maxs: Vec3i): AABB {
return AABB(Vec3.atLowerCornerOf(mins), Vec3.atLowerCornerOf(maxs)) 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)
}