From b9cff51b285c341f1575fbcd1f075722ba97893e Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Fri, 4 Apr 2025 04:57:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=A4=E5=A4=84=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atsuishio/superbwarfare/item/ContainerBlockItem.java | 9 ++++++++- .../superbwarfare/item/armor/ArmorRendererRegister.java | 5 +++-- src/main/resources/META-INF/accesstransformer.cfg | 3 ++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java b/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java index f88a26867..4048177db 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/ContainerBlockItem.java @@ -158,7 +158,14 @@ public class ContainerBlockItem extends BlockItem implements GeoItem { var data = stack.get(DataComponents.CUSTOM_DATA); var tag = data != null ? data.copyTag() : new CompoundTag(); - tag.put("Entity", entity.serializeNBT(entity.level().registryAccess())); + var entityTag = new CompoundTag(); + var encodedId = entity.getEncodeId(); + if (encodedId != null) { + entityTag.putString("id", encodedId); + } + entity.saveWithoutId(entityTag); + tag.put("Entity", entityTag); + tag.putString("EntityType", EntityType.getKey(entity.getType()).toString()); BlockItem.setBlockEntityData(stack, ModBlockEntities.CONTAINER.get(), tag); tag.putBoolean("CanPlacedAboveWater", canPlacedAboveWater); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/ArmorRendererRegister.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/ArmorRendererRegister.java index a52434727..a54b7d081 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/ArmorRendererRegister.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/ArmorRendererRegister.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.item.CustomRendererArmor; +import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; @@ -30,8 +31,8 @@ public class ArmorRendererRegister { if (this.renderer == null) this.renderer = armor.getRenderer(); - // TODO other params? - this.renderer.prepForRender(livingEntity, itemStack, equipmentSlot, original); + var mc = Minecraft.getInstance(); + this.renderer.prepForRender(livingEntity, itemStack, equipmentSlot, original, mc.levelRenderer.renderBuffers.bufferSource(), mc.getTimer().getGameTimeDeltaPartialTick(true), 0, 0, 0, 0); return this.renderer; } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 45a9fecf1..b30fcfef4 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -2,4 +2,5 @@ public net.minecraft.client.multiplayer.ClientLevel getEntities()Lnet/minecraft/ public net.minecraft.world.entity.Entity passengers # passengers public net.minecraft.world.entity.Entity boardingCooldown # boardingCooldown public net.minecraft.client.player.LocalPlayer handsBusy # handsBusy -public net.minecraft.client.renderer.culling.Frustum matrix # matrix \ No newline at end of file +public net.minecraft.client.renderer.culling.Frustum matrix # matrix +public net.minecraft.client.renderer.LevelRenderer renderBuffers # renderBuffers \ No newline at end of file