Posted September 9, 20214 yr I have been attempting to make a spear for my mod, and up until now everything had been going fairly well by using the trident as a guide. The problem is that I absolutely cannot get the entity to render. As in, at all. I am registering the renderer, and I've confirmed the event is being called for it. @OnlyIn(Dist.CLIENT) public void ClientSetup(FMLClientSetupEvent event) { if(Config.flailEnabled.get())ModItems.RegisterFlailOverrides(); MinecraftForge.EVENT_BUS.addListener(ClientEvents::OnClick); MinecraftForge.EVENT_BUS.addListener(ClientEvents::OnKeyPressed); RenderingRegistry.registerEntityRenderingHandler(ModEntities.SPEAR.get(), RenderSpear::new); } The other 3 lines here work perfectly. Here is the renderer: public class RenderSpear extends EntityRenderer<SpearEntity> { public RenderSpear(EntityRendererManager manager) { super(manager); } @Override public void render(SpearEntity spearEntity, float yaw, float partialTicks, MatrixStack matrix, @NotNull IRenderTypeBuffer buffer, int light) { System.out.println("the funny"); matrix.pushPose(); //todo: translate/rotate/scale matrix Minecraft mc = Minecraft.getInstance(); mc.getItemRenderer().render(spearEntity.spearItem, ItemCameraTransforms.TransformType.FIXED, false, matrix, buffer, light, OverlayTexture.NO_OVERLAY, mc.getItemRenderer().getModel(spearEntity.spearItem, spearEntity.level, null)); matrix.popPose(); } @Override public ResourceLocation getTextureLocation(@NotNull SpearEntity entity) { return null; } } The println at the top does not print, proving this method is not being called. The entity itself works fine, I can throw it and deal damage just like a trident. It just won't render.
September 9, 20214 yr For those that might stumble upon this post with the same problem in the future: The solution in this case was to add this to the entity class: @Override public IPacket<?> getAddEntityPacket() { return NetworkHooks.getEntitySpawningPacket(this); } A rule of thumb: If you custom entity is not a LivingEntity, then you need to override getAddEntityPacket(). This is due to the fact that vanilla handles non-living entity spawn packets in a hard coded way.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.