I have been trying for a while now to make a custom player renderer, and replace the vanilla player renderer with it. So far I've come up with a custom player renderer class that extends vanilla PlayerRenderer: package com.FireDude123.BOTW.entity.renderer;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.player.AbstractClientPlayer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.player.PlayerRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.common.MinecraftForge;
public class PoseablePlayerRenderer extends PlayerRenderer {
public PoseablePlayerRenderer(EntityRendererProvider.Context ctx, boolean slim) {
super(ctx, slim);
System.out.println("here too");
}
@Override
public void render(AbstractClientPlayer p_117788_, float p_117789_, float p_117790_, PoseStack poseStack, MultiBufferSource p_117792_, int p_117793_) {
System.out.println("didnt get here lol");
model.leftArm.xRot=(float)Math.toRadians(160);
super.render(p_117788_, p_117789_, p_117790_, poseStack, p_117792_, p_117793_);
}
}
As you can see, the intended purpose of this is to raise the player's left arm by 160 degrees. However, combined with this logic in ClientModEvents: @Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public static class ClientModEvents
{
@SubscribeEvent
public static void onClientSetup(FMLClientSetupEvent event)
{
EntityRenderers.register((EntityType<? extends AbstractClientPlayer>)(EntityType<?)EntityType.PLAYER, ctx -> new PoseablePlayerRenderer(ctx, true));
EntityRenderers.register(Entities.MAGNESIS_BLOCK.get(), com.FireDude123.BOTW.entity.renderer.BlockDisplayRenderer::new);
EntityRenderers.register(Entities.REMOTE_BOMB.get(), ThrownItemRenderer::new);
EntityRenderers.register(Entities.CRYONIS_ICE.get(), com.FireDude123.BOTW.entity.renderer.BlockDisplayRenderer::new);
EntityRenderers.register(Entities.STASIS_BLOCK.get(), FallingBlockRenderer::new);
}
@SubscribeEvent
public static void registerLayerDefinitions(EntityRenderersEvent.RegisterLayerDefinitions event) {
event.registerLayerDefinition(new ModelLayerLocation(new ResourceLocation(BOTW.MODID, "paraglider"), "main"), ParagliderLayer::createBodyLayer);
}
}(I also have a paraglider layer here for something else, it's working perfectly fine, also I used the slim setting because the player is slim in 1.20.1 forge) This logic isn't replacing the renderer, as far as I can tell. Can someone please advise as to why, and how to fix it?