package mouse_in_house.entity.renderer; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.Dist; import net.minecraft.util.math.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraft.entity.Entity; import net.minecraft.client.renderer.model.ModelRenderer; import net.minecraft.client.renderer.entity.model.EntityModel; import net.minecraft.client.renderer.entity.MobRenderer; import mouse_in_house.entity.MousetestEntity; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.mojang.blaze3d.matrix.MatrixStack; @OnlyIn(Dist.CLIENT) public class MousetestRenderer { public static class ModelRegisterHandler { @SubscribeEvent @OnlyIn(Dist.CLIENT) public void registerModels(ModelRegistryEvent event) { RenderingRegistry.registerEntityRenderingHandler(MousetestEntity.entity, renderManager -> { return new MobRenderer(renderManager, new Modelmouse(), 0.3f) { @Override public ResourceLocation getEntityTexture(Entity entity) { MousetestEntity.CustomEntity mouse = (MousetestEntity.CustomEntity) entity; return new ResourceLocation("mouse_in_house:textures/gray_1_" + String.valueOf(mouse.getVariant()) + ".png"); } }; }); } } // Made with Blockbench 4.1.4 // Exported for Minecraft version 1.15 - 1.16 with MCP mappings // Paste this class into your mod and generate all required imports public static class Modelmouse extends EntityModel { private final ModelRenderer head; private final ModelRenderer ears; private final ModelRenderer body; private final ModelRenderer tail; private final ModelRenderer legs; private final ModelRenderer FrontR; private final ModelRenderer SideR; private final ModelRenderer FrontL; private final ModelRenderer SideL; public Modelmouse() { textureWidth = 32; textureHeight = 32; head = new ModelRenderer(this); head.setRotationPoint(0.0F, 21.0F, -2.0F); head.setTextureOffset(12, 14).addBox(-1.5F, -2.0F, -7.0F, 3.0F, 3.0F, 4.0F, 0.0F, false); ears = new ModelRenderer(this); ears.setRotationPoint(0.0F, -2.0F, -4.0F); head.addChild(ears); ears.setTextureOffset(0, 2).addBox(-2.5F, -2.0F, 0.0F, 2.0F, 2.0F, 0.0F, 0.0F, false); ears.setTextureOffset(0, 0).addBox(0.5F, -2.0F, 0.0F, 2.0F, 2.0F, 0.0F, 0.0F, false); body = new ModelRenderer(this); body.setRotationPoint(0.0F, 20.5F, -1.0F); body.setTextureOffset(0, 0).addBox(-2.5F, -2.5F, -4.0F, 5.0F, 5.0F, 9.0F, 0.0F, false); tail = new ModelRenderer(this); tail.setRotationPoint(0.0F, 0.5F, 5.0F); body.addChild(tail); tail.setTextureOffset(0, 6).addBox(0.0F, -1.0F, 0.0F, 0.0F, 1.0F, 8.0F, 0.0F, false); legs = new ModelRenderer(this); legs.setRotationPoint(0.0F, 24.0F, 0.0F); FrontR = new ModelRenderer(this); FrontR.setRotationPoint(-2.0F, -1.0F, -3.5F); legs.addChild(FrontR); FrontR.setTextureOffset(0, 4).addBox(0.0F, 0.0F, -0.5F, 0.0F, 1.0F, 1.0F, 0.0F, false); SideR = new ModelRenderer(this); SideR.setRotationPoint(-2.0F, -1.0F, 2.5F); legs.addChild(SideR); SideR.setTextureOffset(4, 0).addBox(0.0F, 0.0F, -0.5F, 0.0F, 1.0F, 1.0F, 0.0F, false); FrontL = new ModelRenderer(this); FrontL.setRotationPoint(2.0F, -1.0F, -3.5F); legs.addChild(FrontL); FrontL.setTextureOffset(2, 3).addBox(0.0F, 0.0F, -0.5F, 0.0F, 1.0F, 1.0F, 0.0F, false); SideL = new ModelRenderer(this); SideL.setRotationPoint(2.0F, -1.0F, 2.5F); legs.addChild(SideL); SideL.setTextureOffset(0, 3).addBox(0.0F, 0.0F, -0.5F, 0.0F, 1.0F, 1.0F, 0.0F, false); } @Override public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { head.render(matrixStack, buffer, packedLight, packedOverlay); body.render(matrixStack, buffer, packedLight, packedOverlay); legs.render(matrixStack, buffer, packedLight, packedOverlay); } public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { modelRenderer.rotateAngleX = x; modelRenderer.rotateAngleY = y; modelRenderer.rotateAngleZ = z; } public void setRotationAngles(Entity e, float f, float f1, float f2, float f3, float f4) { this.head.rotateAngleY = f3 / (180F / (float) Math.PI); this.head.rotateAngleX = f4 / (180F / (float) Math.PI); this.FrontR.rotateAngleX = MathHelper.cos(f * 1.0F) * 1.0F * f1; this.tail.rotateAngleY = MathHelper.cos(f * 0.6662F + (float) Math.PI) * f1; this.SideL.rotateAngleX = MathHelper.cos(f * 1.0F) * 1.0F * f1; this.SideR.rotateAngleX = MathHelper.cos(f * 1.0F) * -1.0F * f1; this.FrontL.rotateAngleX = MathHelper.cos(f * 1.0F) * -1.0F * f1; } } }