diff --git a/src/main/java/com/technovision/tutorial/Tutorial.java b/src/main/java/com/technovision/tutorial/Tutorial.java index 1007335..7d8f849 100644 --- a/src/main/java/com/technovision/tutorial/Tutorial.java +++ b/src/main/java/com/technovision/tutorial/Tutorial.java @@ -34,8 +34,8 @@ public class Tutorial } private void setup(final FMLCommonSetupEvent event) { - DeferredWorkQueue.runLater(() -> { - GlobalEntityTypeAttributes.put(ModEntityType.GOAT.get(), HogEntity.setCustomAttributes().func_233813_a_()); + DeferredWorkQueue.runLater(() -> { // func_233813_a_() --> create() + GlobalEntityTypeAttributes.put(ModEntityType.HOG.get(), HogEntity.setCustomAttributes().func_233813_a_()); }); } diff --git a/src/main/java/com/technovision/tutorial/client/entity/model/HogModel.java b/src/main/java/com/technovision/tutorial/client/entity/model/HogModel.java index 65d1ff9..90f91d1 100644 --- a/src/main/java/com/technovision/tutorial/client/entity/model/HogModel.java +++ b/src/main/java/com/technovision/tutorial/client/entity/model/HogModel.java @@ -4,69 +4,59 @@ import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.vertex.IVertexBuilder; import com.technovision.tutorial.entities.HogEntity; import net.minecraft.client.renderer.entity.model.EntityModel; -import net.minecraft.client.renderer.entity.model.PigModel; +import net.minecraft.client.renderer.entity.model.QuadrupedModel; import net.minecraft.client.renderer.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.math.MathHelper; public class HogModel extends EntityModel { - private final ModelRenderer body; - private final ModelRenderer rotation; - private final ModelRenderer body_sub_1; private final ModelRenderer head; - private final ModelRenderer leg1; - private final ModelRenderer leg2; - private final ModelRenderer leg3; - private final ModelRenderer leg4; + private final ModelRenderer body; + private final ModelRenderer legFrontRight; + private final ModelRenderer legFrontLeft; + private final ModelRenderer legBackRight; + private final ModelRenderer legBackLeft; public HogModel() { textureWidth = 64; textureHeight = 32; - body = new ModelRenderer(this); - body.setRotationPoint(0.0F, 11.0F, 2.0F); - - - rotation = new ModelRenderer(this); - rotation.setRotationPoint(0.0F, 0.0F, 0.0F); - body.addChild(rotation); - setRotationAngle(rotation, 1.5708F, 0.0F, 0.0F); - - - body_sub_1 = new ModelRenderer(this); - body_sub_1.setRotationPoint(0.0F, 0.0F, 0.0F); - rotation.addChild(body_sub_1); - body_sub_1.setTextureOffset(28, 8).addBox(-5.0F, -10.0F, -7.0F, 10.0F, 16.0F, 8.0F, 0.0F, false); - head = new ModelRenderer(this); head.setRotationPoint(0.0F, 12.0F, -6.0F); head.setTextureOffset(0, 0).addBox(-4.0F, -4.0F, -8.0F, 8.0F, 8.0F, 8.0F, 0.0F, false); head.setTextureOffset(16, 16).addBox(-2.0F, 0.0F, -9.0F, 4.0F, 3.0F, 1.0F, 0.0F, false); - leg1 = new ModelRenderer(this); - leg1.setRotationPoint(3.0F, 18.0F, 7.0F); - leg1.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); + body = new ModelRenderer(this); + body.setRotationPoint(0.0F, 11.0F, 2.0F); + setRotationAngle(body, 1.5708F, 0.0F, 0.0F); + body.setTextureOffset(28, 8).addBox(-5.0F, -10.0F, -7.0F, 10.0F, 16.0F, 8.0F, 0.0F, false); - leg2 = new ModelRenderer(this); - leg2.setRotationPoint(-3.0F, 18.0F, 7.0F); - leg2.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); + legFrontRight = new ModelRenderer(this); + legFrontRight.setRotationPoint(3.0F, 18.0F, -5.0F); + legFrontRight.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); - leg3 = new ModelRenderer(this); - leg3.setRotationPoint(3.0F, 18.0F, -5.0F); - leg3.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); + legFrontLeft = new ModelRenderer(this); + legFrontLeft.setRotationPoint(-3.0F, 18.0F, -5.0F); + legFrontLeft.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); - leg4 = new ModelRenderer(this); - leg4.setRotationPoint(-3.0F, 18.0F, -5.0F); - leg4.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); + legBackRight = new ModelRenderer(this); + legBackRight.setRotationPoint(3.0F, 18.0F, 7.0F); + legBackRight.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); + + legBackLeft = new ModelRenderer(this); + legBackLeft.setRotationPoint(-3.0F, 18.0F, 7.0F); + legBackLeft.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false); } @Override public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ - body.render(matrixStack, buffer, packedLight, packedOverlay); head.render(matrixStack, buffer, packedLight, packedOverlay); - leg1.render(matrixStack, buffer, packedLight, packedOverlay); - leg2.render(matrixStack, buffer, packedLight, packedOverlay); - leg3.render(matrixStack, buffer, packedLight, packedOverlay); - leg4.render(matrixStack, buffer, packedLight, packedOverlay); + body.render(matrixStack, buffer, packedLight, packedOverlay); + legFrontRight.render(matrixStack, buffer, packedLight, packedOverlay); + legFrontLeft.render(matrixStack, buffer, packedLight, packedOverlay); + legBackRight.render(matrixStack, buffer, packedLight, packedOverlay); + legBackLeft.render(matrixStack, buffer, packedLight, packedOverlay); } public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { @@ -76,5 +66,13 @@ public class HogModel extends EntityModel { } @Override - public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { } + public void setRotationAngles(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + this.head.rotateAngleX = headPitch * ((float)Math.PI / 180F); + this.head.rotateAngleY = netHeadYaw * ((float)Math.PI / 180F); + this.body.rotateAngleX = ((float)Math.PI / 2F); + this.legBackRight.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; + this.legBackLeft.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; + this.legFrontRight.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount; + this.legFrontLeft.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; + } } diff --git a/src/main/java/com/technovision/tutorial/entities/HogEntity.java b/src/main/java/com/technovision/tutorial/entities/HogEntity.java index 9f604b8..25bd4e2 100644 --- a/src/main/java/com/technovision/tutorial/entities/HogEntity.java +++ b/src/main/java/com/technovision/tutorial/entities/HogEntity.java @@ -38,7 +38,7 @@ public class HogEntity extends AnimalEntity { @Override public AgeableEntity createChild(AgeableEntity ageable) { - return ModEntityType.GOAT.get().create(this.world); + return ModEntityType.HOG.get().create(this.world); } @Override diff --git a/src/main/java/com/technovision/tutorial/init/ModEntityType.java b/src/main/java/com/technovision/tutorial/init/ModEntityType.java index 143f4fd..92f5a3b 100644 --- a/src/main/java/com/technovision/tutorial/init/ModEntityType.java +++ b/src/main/java/com/technovision/tutorial/init/ModEntityType.java @@ -14,8 +14,8 @@ public class ModEntityType { public static final DeferredRegister> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, Tutorial.MOD_ID); // Entity Types - public static final RegistryObject> GOAT = ENTITY_TYPES.register("goat", + public static final RegistryObject> HOG = ENTITY_TYPES.register("hog", () -> EntityType.Builder.create(HogEntity::new, EntityClassification.CREATURE) - .size(1.0f, 1.0f) // Hitbox - .build(new ResourceLocation(Tutorial.MOD_ID, "goat").toString())); + .size(1.0f, 1.0f) // Hitbox Size + .build(new ResourceLocation(Tutorial.MOD_ID, "hog").toString())); } diff --git a/src/main/java/com/technovision/tutorial/util/ClientEventBusSubscriber.java b/src/main/java/com/technovision/tutorial/util/ClientEventBusSubscriber.java index 09053b9..1101b2e 100644 --- a/src/main/java/com/technovision/tutorial/util/ClientEventBusSubscriber.java +++ b/src/main/java/com/technovision/tutorial/util/ClientEventBusSubscriber.java @@ -14,6 +14,6 @@ public class ClientEventBusSubscriber { @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { - RenderingRegistry.registerEntityRenderingHandler(ModEntityType.GOAT.get(), HogRenderer::new); + RenderingRegistry.registerEntityRenderingHandler(ModEntityType.HOG.get(), HogRenderer::new); } } diff --git a/src/main/resources/assets/tutorial/lang/en_us.json b/src/main/resources/assets/tutorial/lang/en_us.json index 5b68be7..40f3014 100644 --- a/src/main/resources/assets/tutorial/lang/en_us.json +++ b/src/main/resources/assets/tutorial/lang/en_us.json @@ -13,5 +13,6 @@ "item.tutorial.ruby_helmet": "Ruby Helmet", "item.tutorial.ruby_chestplate": "Ruby Chestplate", "item.tutorial.ruby_leggings": "Ruby Leggings", - "item.tutorial.ruby_boots": "Ruby Boots" + "item.tutorial.ruby_boots": "Ruby Boots", + "entity.tutorial.hog": "Hog" } \ No newline at end of file