From 08b2a41043a6747f49a52be76ee1a846e73a24db Mon Sep 17 00:00:00 2001 From: Hanro50 Date: Fri, 24 Oct 2025 22:27:31 +0200 Subject: [PATCH] Fixed 3rd person rendering --- .../client/modeloverride/ModelOverride.java | 11 +- .../client/render/CarriedObjectRender.java | 153 ++++-------------- .../client/render/CarryRenderHelper.java | 2 +- .../render/CarryingItemRenderLayer.java | 22 +++ .../client/render/ICarryOnRenderState.java | 5 + .../carryon/compat/ClothConfigCompat.java | 2 - .../carryon/mixin/AvatarRendererMixin.java | 30 ++++ .../tschipp/carryon/mixin/EntityMixin.java | 2 +- .../carryon/mixin/EntityRendererMixin.java | 2 + .../tschipp/carryon/mixin/PlayerMixin.java | 4 - .../carryon/mixin/PlayerRenderStateMixin.java | 16 ++ Common/src/main/resources/carryon.mixins.json | 3 +- .../tschipp/carryon/CarryOnFabricMod.java | 3 +- .../mixin/ItemInHandRendererMixin.java | 2 +- .../carryon/carry/ICarryOnDataCapability.java | 1 - .../tschipp/carryon/events/ClientEvents.java | 11 +- .../tschipp/carryon/events/ClientEvents.java | 10 +- 17 files changed, 113 insertions(+), 166 deletions(-) create mode 100644 Common/src/main/java/tschipp/carryon/client/render/CarryingItemRenderLayer.java create mode 100644 Common/src/main/java/tschipp/carryon/mixin/AvatarRendererMixin.java diff --git a/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java b/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java index 58fa3d8..52d2cb2 100644 --- a/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java +++ b/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java @@ -39,22 +39,13 @@ import tschipp.carryon.common.scripting.Matchables.NBTCondition; import javax.annotation.Nullable; import java.util.Map; -public class ModelOverride -{ - //public static Codec CODEC = Codec.STRING.comapFlatMap(ModelOverride::of, override -> override.raw); - - private String raw; +public class ModelOverride { private BlockResult parsedBlock; - private Type type; - private Either parsedRHS; private Either renderObject; private ModelOverride(String raw, BlockResult parsedBlock, Type type, Either parsedRHS) { - this.raw = raw; this.parsedBlock = parsedBlock; - this.type = type; - this.parsedRHS = parsedRHS; parsedRHS.ifLeft(res -> { ItemStack stack = new ItemStack(res.item()); diff --git a/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java b/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java index 3114a16..3ce70e7 100644 --- a/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java +++ b/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java @@ -35,10 +35,8 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import org.joml.Matrix4f; import tschipp.carryon.Constants; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnData.CarryType; @@ -51,8 +49,7 @@ import java.util.*; public class CarriedObjectRender { - - public static boolean drawFirstPerson(Player player, PoseStack matrix, int light, float partialTicks,SubmitNodeCollector nodeCollector) + public static boolean draw(Player player, PoseStack matrix, int light, float partialTicks,SubmitNodeCollector nodeCollector, boolean firstPerson) { if(Services.PLATFORM.isModLoaded("firstperson") || Services.PLATFORM.isModLoaded("firstpersonmod")) return false; @@ -60,9 +57,9 @@ public class CarriedObjectRender CarryOnData carry = CarryOnDataManager.getCarryData(player); try { if (carry.isCarrying(CarryType.BLOCK)) - drawFirstPersonBlock(player, matrix, light, CarryRenderHelper.getRenderState(player), nodeCollector); + drawBlock(player, matrix, light, CarryRenderHelper.getRenderState(player), nodeCollector, firstPerson); else if (carry.isCarrying(CarryType.ENTITY)) - drawFirstPersonEntity(player, matrix, light, partialTicks,nodeCollector); + drawEntity(player, matrix, light, partialTicks,nodeCollector, firstPerson); } catch (Exception e) { @@ -82,13 +79,18 @@ public class CarriedObjectRender return carry.isCarrying(); } - private static void drawFirstPersonBlock(Player player, PoseStack matrix, int light, BlockState state,SubmitNodeCollector nodeCollector) + private static void drawBlock(Player player, PoseStack matrix, int light, BlockState state,SubmitNodeCollector nodeCollector, boolean firstPerson) { matrix.pushPose(); - matrix.scale(2.5f, 2.5f, 2.5f); - matrix.translate(0, -0.5, -1); - //RenderSystem.enableBlend(); - //RenderSystem.disableCull(); + if (firstPerson){ + matrix.scale(2.5f, 2.5f, 2.5f); + matrix.translate(0, -0.5, -1); + }else{ + matrix.scale(0.6f, 0.6f, 0.6f); + matrix.translate(0, 0.5, -0.8); + matrix.mulPose(Axis.ZN.rotationDegrees(180)); + + } CarryOnData carry = CarryOnDataManager.getCarryData(player); ItemStackRenderState renderState = new ItemStackRenderState(); @@ -105,20 +107,13 @@ public class CarriedObjectRender if(carry.getActiveScript().isPresent()) CarryRenderHelper.performScriptTransformation(matrix, carry.getActiveScript().get()); - //RenderSystem.setShaderTexture(0, GpuTexture); - ItemStack renderStack = CarryRenderHelper.getRenderItemStack(player); Minecraft.getInstance().getItemModelResolver().updateForTopItem(renderState, renderStack, ItemDisplayContext.NONE, player.level(), null, 0); - //renderState.render(matrix, light, OverlayTexture.NO_OVERLAY); -renderState.submit(matrix, nodeCollector, light, OverlayTexture.NO_OVERLAY, 0); - - - //RenderSystem.enableCull(); - //RenderSystem.disableBlend(); + renderState.submit(matrix, nodeCollector, light, OverlayTexture.NO_OVERLAY, 0); matrix.popPose(); } - private static void drawFirstPersonEntity(Player player, PoseStack matrix, int light, float partialTicks,SubmitNodeCollector nodeCollector) { + private static void drawEntity(Player player, PoseStack matrix, int light, float partialTicks,SubmitNodeCollector nodeCollector, boolean firstPerson) { EntityRenderDispatcher manager = Minecraft.getInstance().getEntityRenderDispatcher(); @@ -136,13 +131,17 @@ renderState.submit(matrix, nodeCollector, light, OverlayTexture.NO_OVERLAY, 0); float height = entity.getBbHeight(); float width = entity.getBbWidth(); - - matrix.pushPose(); - matrix.scale(0.8f, 0.8f, 0.8f); - matrix.mulPose(Axis.YP.rotationDegrees(180)); - matrix.translate(0.0, -height - .2, width * 1.3 + 0.1); - - // manager.setRenderShadow(false); + matrix.pushPose(); + matrix.mulPose(Axis.YP.rotationDegrees(180)); + if (firstPerson){ + matrix.scale(0.8f, 0.8f, 0.8f); + matrix.translate(0.0, -height - .2, width * 1.3 + 0.1); + }else{ + float multiplier = Math.min(9.9f, height * width) ; + matrix.scale((10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f); + matrix.translate(0.0, height / 2 + -(height / 4) + 0.5f, width - 0.1 < 0.7 ? width - 0.1 + (0.7 - (width - 0.1)) : width - 0.1); + matrix.mulPose(Axis.ZN.rotationDegrees(180)); + } Optional res = carry.getActiveScript(); if(res.isPresent()) @@ -158,111 +157,13 @@ renderState.submit(matrix, nodeCollector, light, OverlayTexture.NO_OVERLAY, 0); ((LivingEntity) entity).hurtTime = 0; try { - manager.submit(manager.extractEntity(entity, 0), new CameraRenderState(), 0, 0, 0, matrix, nodeCollector); - // manager.render(entity, 0, 0, 0, 0f, matrix, buffer, light); - //nodeCollector.submit - //manager.getRenderer(entity).submit(new EntityRenderState(), matrix, nodeCollector, null); + manager.submit(manager.extractEntity(entity, 0), new CameraRenderState(), 0, 0, 0, matrix, nodeCollector); } catch (Exception e) { } - // manager.setRenderShadow(true); matrix.popPose(); - } - - // RenderSystem.disableAlphaTest(); } - - /** - * Draws the third person view of entities and blocks - * @param partialticks - * @param mat - */ - public static void drawThirdPerson(float partialticks, Matrix4f mat) { - Minecraft mc = Minecraft.getInstance(); - Level level = mc.level; - int perspective = CarryRenderHelper.getPerspective(); - - PoseStack matrix = new PoseStack(); - matrix.mulPose(mat); - - // RenderSystem.enableBlend(); - // RenderSystem.disableCull(); - // RenderSystem.disableDepthTest(); - ItemStackRenderState renderState = new ItemStackRenderState(); - var layer = renderState.newLayer(); - layer.setRenderType(RenderType.glint()); - - for (Player player : level.players()) - { - try { - - CarryOnData carry = CarryOnDataManager.getCarryData(player); - - if (perspective == 0 && player == mc.player && !(Services.PLATFORM.isModLoaded("firstperson") || Services.PLATFORM.isModLoaded("firstpersonmod") || Services.PLATFORM.isModLoaded("realcamera"))) - continue; - - - if (carry.isCarrying(CarryType.BLOCK)) { - BlockState state = CarryRenderHelper.getRenderState(player); - - CarryRenderHelper.applyBlockTransformations(player, partialticks, matrix, state.getBlock()); - - ItemStack renderItemStack = CarryRenderHelper.getRenderItemStack(player); - - mc.getItemModelResolver().updateForTopItem(renderState, renderItemStack, ItemDisplayContext.NONE, level, null, 0); - - Optional res = carry.getActiveScript(); - res.ifPresent(script -> CarryRenderHelper.performScriptTransformation(matrix, script)); - - //RenderSystem.setShaderTexture(0, TextureAtlas.LOCATION_BLOCKS); - //RenderSystem.enableCull(); - - PoseStack.Pose p = matrix.last(); - PoseStack copy = new PoseStack(); - copy.mulPose(p.pose()); - matrix.popPose(); - - //RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - - renderState.submit(copy, null, 0, OverlayTexture.NO_OVERLAY, 0); - - // renderState.render(copy, buffer, light, OverlayTexture.NO_OVERLAY); - - matrix.popPose(); - } else if (carry.isCarrying(CarryType.ENTITY)) { - Entity entity = CarryRenderHelper.getRenderEntity(player); - - if (entity != null) { - CarryRenderHelper.applyEntityTransformations(player, partialticks, matrix, entity); - - // manager.setRenderShadow(false); - - Optional res = carry.getActiveScript(); - res.ifPresent(script -> CarryRenderHelper.performScriptTransformation(matrix, script)); - - if (entity instanceof LivingEntity le) - le.hurtTime = 0; - - //RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - - // manager.render(entity, 0, 0, 0, 0f, matrix, buffer, light); - matrix.popPose(); - // manager.setRenderShadow(true); - matrix.popPose(); - } - } - - - } - catch (Exception e) - { - } - - } - - } - } diff --git a/Common/src/main/java/tschipp/carryon/client/render/CarryRenderHelper.java b/Common/src/main/java/tschipp/carryon/client/render/CarryRenderHelper.java index 5a4893b..c6f98c9 100644 --- a/Common/src/main/java/tschipp/carryon/client/render/CarryRenderHelper.java +++ b/Common/src/main/java/tschipp/carryon/client/render/CarryRenderHelper.java @@ -156,7 +156,7 @@ public class CarryRenderHelper public static void applyBlockTransformations(Player player, float partialticks, PoseStack matrix, Block block) { - int perspective = CarryRenderHelper.getPerspective(); + //int perspective = CarryRenderHelper.getPerspective(); applyGeneralTransformations(player, partialticks, matrix); diff --git a/Common/src/main/java/tschipp/carryon/client/render/CarryingItemRenderLayer.java b/Common/src/main/java/tschipp/carryon/client/render/CarryingItemRenderLayer.java new file mode 100644 index 0000000..98e41a1 --- /dev/null +++ b/Common/src/main/java/tschipp/carryon/client/render/CarryingItemRenderLayer.java @@ -0,0 +1,22 @@ +package tschipp.carryon.client.render; + +import com.mojang.blaze3d.vertex.PoseStack; + +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.renderer.SubmitNodeCollector; +import net.minecraft.client.renderer.entity.RenderLayerParent; +import net.minecraft.client.renderer.entity.layers.RenderLayer; +import net.minecraft.client.renderer.entity.state.AvatarRenderState; + +public class CarryingItemRenderLayer extends RenderLayer { + public CarryingItemRenderLayer(RenderLayerParent renderer) { + super(renderer); + } + @Override + public void submit(PoseStack poseStack, SubmitNodeCollector nodeCollector, int packedLight, + AvatarRenderState renderState, float yRot, float xRot) { + if (renderState instanceof ICarryOnRenderState carryOnRenderState){ + CarriedObjectRender.draw(carryOnRenderState.getPlayer(), poseStack, packedLight, 0, nodeCollector,false); + } + } +} diff --git a/Common/src/main/java/tschipp/carryon/client/render/ICarryOnRenderState.java b/Common/src/main/java/tschipp/carryon/client/render/ICarryOnRenderState.java index 8215fde..28377b1 100644 --- a/Common/src/main/java/tschipp/carryon/client/render/ICarryOnRenderState.java +++ b/Common/src/main/java/tschipp/carryon/client/render/ICarryOnRenderState.java @@ -1,5 +1,6 @@ package tschipp.carryon.client.render; +import net.minecraft.world.entity.player.Player; import tschipp.carryon.common.carry.CarryOnData; public interface ICarryOnRenderState { @@ -12,4 +13,8 @@ public interface ICarryOnRenderState { void setRenderWidth(float val); + Player getPlayer(); + + void setPlayer(Player player); + } diff --git a/Common/src/main/java/tschipp/carryon/compat/ClothConfigCompat.java b/Common/src/main/java/tschipp/carryon/compat/ClothConfigCompat.java index 597c2af..3bfb0ba 100644 --- a/Common/src/main/java/tschipp/carryon/compat/ClothConfigCompat.java +++ b/Common/src/main/java/tschipp/carryon/compat/ClothConfigCompat.java @@ -4,13 +4,11 @@ import me.shedaniel.clothconfig2.api.ConfigBuilder; import me.shedaniel.clothconfig2.api.ConfigCategory; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import me.shedaniel.clothconfig2.impl.builders.SubCategoryBuilder; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import tschipp.carryon.config.AnnotationData; import tschipp.carryon.config.BuiltCategory; import tschipp.carryon.config.BuiltConfig; -import tschipp.carryon.config.ConfigLoader; import javax.annotation.Nullable; import java.util.List; diff --git a/Common/src/main/java/tschipp/carryon/mixin/AvatarRendererMixin.java b/Common/src/main/java/tschipp/carryon/mixin/AvatarRendererMixin.java new file mode 100644 index 0000000..f87c942 --- /dev/null +++ b/Common/src/main/java/tschipp/carryon/mixin/AvatarRendererMixin.java @@ -0,0 +1,30 @@ +package tschipp.carryon.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.client.entity.ClientAvatarEntity; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.renderer.entity.EntityRendererProvider; +import net.minecraft.client.renderer.entity.EntityRendererProvider.Context; +import net.minecraft.client.renderer.entity.LivingEntityRenderer; +import net.minecraft.client.renderer.entity.player.AvatarRenderer; +import net.minecraft.client.renderer.entity.state.AvatarRenderState; +import net.minecraft.world.entity.Avatar; +import tschipp.carryon.client.render.CarryingItemRenderLayer; + +@Mixin(AvatarRenderer.class) +public abstract class AvatarRendererMixin extends LivingEntityRenderer { + + public AvatarRendererMixin(Context context, PlayerModel model, float shadowRadius) { + super(context, model, shadowRadius); + } + + @Inject(method = "(Lnet/minecraft/client/renderer/entity/EntityRendererProvider$Context;Z)V", at = @At("RETURN")) + public void init(EntityRendererProvider.Context context, boolean slim, CallbackInfo info) { + //Player + this.addLayer(new CarryingItemRenderLayer(this)); + } +} diff --git a/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java b/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java index 9a314e0..fff8e74 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java @@ -95,7 +95,7 @@ public abstract class EntityMixin @Inject(method = "onPassengerTurned(Lnet/minecraft/world/entity/Entity;)V", at = @At("HEAD")) private void onPassengerTurned(Entity toUpdate, CallbackInfo ci) { - if((Object)this instanceof Player thisPlayer && toUpdate instanceof Player otherPlayer) + if((Object)this instanceof Player thisPlayer && toUpdate instanceof Player) { CarryOnData carry = CarryOnDataManager.getCarryData(thisPlayer); if(carry.isCarrying(CarryType.PLAYER)) { diff --git a/Common/src/main/java/tschipp/carryon/mixin/EntityRendererMixin.java b/Common/src/main/java/tschipp/carryon/mixin/EntityRendererMixin.java index b990b44..8a08264 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/EntityRendererMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/EntityRendererMixin.java @@ -30,6 +30,8 @@ public class EntityRendererMixin { ICarryOnRenderState carryOnRenderState = (ICarryOnRenderState) state; carryOnRenderState.setCarryOnData(carry); carryOnRenderState.setRenderWidth(CarryRenderHelper.getRenderWidth(player)); + + carryOnRenderState.setPlayer(player); } } } diff --git a/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java b/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java index 3c67966..ea2f242 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java @@ -20,8 +20,6 @@ package tschipp.carryon.mixin; - -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -30,13 +28,11 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.storage.ValueInput; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnDataManager; -import tschipp.carryon.common.carry.PlacementHandler; import tschipp.carryon.common.carry.CarryOnData.CarryType; import java.util.Optional; diff --git a/Common/src/main/java/tschipp/carryon/mixin/PlayerRenderStateMixin.java b/Common/src/main/java/tschipp/carryon/mixin/PlayerRenderStateMixin.java index b8cb7be..cfb18f0 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/PlayerRenderStateMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/PlayerRenderStateMixin.java @@ -1,6 +1,8 @@ package tschipp.carryon.mixin; import net.minecraft.client.renderer.entity.state.HumanoidRenderState; +import net.minecraft.world.entity.player.Player; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import tschipp.carryon.client.render.ICarryOnRenderState; @@ -15,6 +17,10 @@ public class PlayerRenderStateMixin implements ICarryOnRenderState { @Unique public float renderWidth = 0f; + + @Unique + public Player player = null; + @Unique @Override public CarryOnData getCarryOnData() { @@ -38,4 +44,14 @@ public class PlayerRenderStateMixin implements ICarryOnRenderState { public void setRenderWidth(float val) { renderWidth = val; } + + @Override + public Player getPlayer() { + return player; + } + + @Override + public void setPlayer(Player player) { + this.player = player; + } } diff --git a/Common/src/main/resources/carryon.mixins.json b/Common/src/main/resources/carryon.mixins.json index 820444e..04c7f9d 100644 --- a/Common/src/main/resources/carryon.mixins.json +++ b/Common/src/main/resources/carryon.mixins.json @@ -12,7 +12,8 @@ "HumanoidModelMixin", "MinecraftMixin", "PlayerRenderStateMixin", - "EntityRendererMixin" + "EntityRendererMixin", + "AvatarRendererMixin" ], "server": [ ], diff --git a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java index 8d6442a..4506c4f 100644 --- a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java +++ b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java @@ -37,14 +37,15 @@ public class CarryOnFabricMod implements ModInitializer { ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data"), builder -> builder .initializer(() -> new CarryOnData(new CompoundTag())) + .persistent(CarryOnData.CODEC) .syncWith(CarryOnData.STREAM_CODEC, (t, p) ->{ ServerPlayer player = (ServerPlayer) t; // the isAlive check avoids us syncing attachment data about dead players. Which causes a disconnect // player.tickCount > 0 avoids us syncing attachment data about players the instant they spawn. // Which also causes a disconnect as the player entity may not be synced yet. - return p.connection != null && player.isAlive() && player.tickCount > 0; }) + ); diff --git a/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java b/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java index 0e015e5..62c4e91 100644 --- a/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java +++ b/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java @@ -38,7 +38,7 @@ public class ItemInHandRendererMixin @Inject(at = @At(value = "HEAD"), method = "renderArmWithItem(Lnet/minecraft/client/player/AbstractClientPlayer;FFLnet/minecraft/world/InteractionHand;FLnet/minecraft/world/item/ItemStack;FLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;I)V", cancellable = true) private void renderArmWithItem(AbstractClientPlayer player, float partialTick, float pitch, InteractionHand hand, float swingProgress, ItemStack item, float equippedProgress, PoseStack poseStack, SubmitNodeCollector nodeCollector, int packedLight, CallbackInfo ci) { - if(CarriedObjectRender.drawFirstPerson(player, poseStack, packedLight, partialTick,nodeCollector)) + if(CarriedObjectRender.draw(player, poseStack, packedLight, partialTick,nodeCollector,true)) ci.cancel(); } diff --git a/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java b/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java index 49ab1f8..17c9e11 100644 --- a/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java +++ b/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java @@ -2,7 +2,6 @@ package tschipp.carryon.carry; import net.minecraftforge.common.capabilities.AutoRegisterCapability; import tschipp.carryon.common.carry.CarryOnData; -import tschipp.carryon.common.carry.CarryOnDataManager; @AutoRegisterCapability public interface ICarryOnDataCapability { diff --git a/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java b/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java index 92434f5..fb6076d 100644 --- a/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java +++ b/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java @@ -50,18 +50,9 @@ public class ClientEvents { float partialTicks = event.getPartialTick(); SubmitNodeCollector nodes =event.getNodeCollector(); //If true, cancels event - return CarriedObjectRender.drawFirstPerson(player, matrix, light, partialTicks,nodes) && CarryRenderHelper.getPerspective() == 0; + return CarriedObjectRender.draw(player, matrix, light, partialTicks,nodes,true) && CarryRenderHelper.getPerspective() == 0; } - /* - @SubscribeEvent - public static void onRenderLevel(Render event) - { - if(event.getStage() == Stage.AFTER_PARTICLES) - CarriedObjectRender.drawThirdPerson(Minecraft.getInstance().getTimer().getGameTimeDeltaPartialTick(true), event.getPoseStack()); - } - */ - @SubscribeEvent public static boolean onGuiInit(ScreenEvent.Init.Pre event) { diff --git a/NeoForge/src/main/java/tschipp/carryon/events/ClientEvents.java b/NeoForge/src/main/java/tschipp/carryon/events/ClientEvents.java index cdec802..c02f711 100644 --- a/NeoForge/src/main/java/tschipp/carryon/events/ClientEvents.java +++ b/NeoForge/src/main/java/tschipp/carryon/events/ClientEvents.java @@ -49,18 +49,12 @@ public class ClientEvents { PoseStack matrix = event.getPoseStack(); int light = event.getPackedLight(); float partialTicks = event.getPartialTick(); -SubmitNodeCollector nodes =event.getSubmitNodeCollector(); + SubmitNodeCollector nodes =event.getSubmitNodeCollector(); - if(CarriedObjectRender.drawFirstPerson(player, matrix, light, partialTicks,nodes) && CarryRenderHelper.getPerspective() == 0) + if(CarriedObjectRender.draw(player, matrix, light, partialTicks,nodes,true) && CarryRenderHelper.getPerspective() == 0) event.setCanceled(true); } - @SubscribeEvent - public static void onRenderLevel(RenderLevelStageEvent.AfterEntities event) - { - CarriedObjectRender.drawThirdPerson(event.getLevelRenderer().getTicks(), event.getPoseStack().last().pose()); - } - @SubscribeEvent public static void onGuiInit(ScreenEvent.Init.Pre event) {