mirror of
https://github.com/TechnoVisionDev/Forge-Modding-Tutorial-1.16
synced 2024-10-27 20:34:04 +00:00
Update Custom Entity
This commit is contained in:
parent
40c38da37f
commit
0595d64df1
@ -34,8 +34,8 @@ public class Tutorial
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setup(final FMLCommonSetupEvent event) {
|
private void setup(final FMLCommonSetupEvent event) {
|
||||||
DeferredWorkQueue.runLater(() -> {
|
DeferredWorkQueue.runLater(() -> { // func_233813_a_() --> create()
|
||||||
GlobalEntityTypeAttributes.put(ModEntityType.GOAT.get(), HogEntity.setCustomAttributes().func_233813_a_());
|
GlobalEntityTypeAttributes.put(ModEntityType.HOG.get(), HogEntity.setCustomAttributes().func_233813_a_());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,69 +4,59 @@ import com.mojang.blaze3d.matrix.MatrixStack;
|
|||||||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||||
import com.technovision.tutorial.entities.HogEntity;
|
import com.technovision.tutorial.entities.HogEntity;
|
||||||
import net.minecraft.client.renderer.entity.model.EntityModel;
|
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.client.renderer.model.ModelRenderer;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
public class HogModel<T extends HogEntity> extends EntityModel<T> {
|
public class HogModel<T extends HogEntity> extends EntityModel<T> {
|
||||||
|
|
||||||
private final ModelRenderer body;
|
|
||||||
private final ModelRenderer rotation;
|
|
||||||
private final ModelRenderer body_sub_1;
|
|
||||||
private final ModelRenderer head;
|
private final ModelRenderer head;
|
||||||
private final ModelRenderer leg1;
|
private final ModelRenderer body;
|
||||||
private final ModelRenderer leg2;
|
private final ModelRenderer legFrontRight;
|
||||||
private final ModelRenderer leg3;
|
private final ModelRenderer legFrontLeft;
|
||||||
private final ModelRenderer leg4;
|
private final ModelRenderer legBackRight;
|
||||||
|
private final ModelRenderer legBackLeft;
|
||||||
|
|
||||||
public HogModel() {
|
public HogModel() {
|
||||||
textureWidth = 64;
|
textureWidth = 64;
|
||||||
textureHeight = 32;
|
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 = new ModelRenderer(this);
|
||||||
head.setRotationPoint(0.0F, 12.0F, -6.0F);
|
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(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);
|
head.setTextureOffset(16, 16).addBox(-2.0F, 0.0F, -9.0F, 4.0F, 3.0F, 1.0F, 0.0F, false);
|
||||||
|
|
||||||
leg1 = new ModelRenderer(this);
|
body = new ModelRenderer(this);
|
||||||
leg1.setRotationPoint(3.0F, 18.0F, 7.0F);
|
body.setRotationPoint(0.0F, 11.0F, 2.0F);
|
||||||
leg1.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false);
|
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);
|
legFrontRight = new ModelRenderer(this);
|
||||||
leg2.setRotationPoint(-3.0F, 18.0F, 7.0F);
|
legFrontRight.setRotationPoint(3.0F, 18.0F, -5.0F);
|
||||||
leg2.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false);
|
legFrontRight.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false);
|
||||||
|
|
||||||
leg3 = new ModelRenderer(this);
|
legFrontLeft = new ModelRenderer(this);
|
||||||
leg3.setRotationPoint(3.0F, 18.0F, -5.0F);
|
legFrontLeft.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.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false);
|
||||||
|
|
||||||
leg4 = new ModelRenderer(this);
|
legBackRight = new ModelRenderer(this);
|
||||||
leg4.setRotationPoint(-3.0F, 18.0F, -5.0F);
|
legBackRight.setRotationPoint(3.0F, 18.0F, 7.0F);
|
||||||
leg4.setTextureOffset(0, 16).addBox(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, 0.0F, false);
|
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
|
@Override
|
||||||
public void render(MatrixStack matrixStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){
|
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);
|
head.render(matrixStack, buffer, packedLight, packedOverlay);
|
||||||
leg1.render(matrixStack, buffer, packedLight, packedOverlay);
|
body.render(matrixStack, buffer, packedLight, packedOverlay);
|
||||||
leg2.render(matrixStack, buffer, packedLight, packedOverlay);
|
legFrontRight.render(matrixStack, buffer, packedLight, packedOverlay);
|
||||||
leg3.render(matrixStack, buffer, packedLight, packedOverlay);
|
legFrontLeft.render(matrixStack, buffer, packedLight, packedOverlay);
|
||||||
leg4.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) {
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
@ -76,5 +66,13 @@ public class HogModel<T extends HogEntity> extends EntityModel<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public class HogEntity extends AnimalEntity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AgeableEntity createChild(AgeableEntity ageable) {
|
public AgeableEntity createChild(AgeableEntity ageable) {
|
||||||
return ModEntityType.GOAT.get().create(this.world);
|
return ModEntityType.HOG.get().create(this.world);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -14,8 +14,8 @@ public class ModEntityType {
|
|||||||
public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, Tutorial.MOD_ID);
|
public static final DeferredRegister<EntityType<?>> ENTITY_TYPES = DeferredRegister.create(ForgeRegistries.ENTITIES, Tutorial.MOD_ID);
|
||||||
|
|
||||||
// Entity Types
|
// Entity Types
|
||||||
public static final RegistryObject<EntityType<HogEntity>> GOAT = ENTITY_TYPES.register("goat",
|
public static final RegistryObject<EntityType<HogEntity>> HOG = ENTITY_TYPES.register("hog",
|
||||||
() -> EntityType.Builder.create(HogEntity::new, EntityClassification.CREATURE)
|
() -> EntityType.Builder.create(HogEntity::new, EntityClassification.CREATURE)
|
||||||
.size(1.0f, 1.0f) // Hitbox
|
.size(1.0f, 1.0f) // Hitbox Size
|
||||||
.build(new ResourceLocation(Tutorial.MOD_ID, "goat").toString()));
|
.build(new ResourceLocation(Tutorial.MOD_ID, "hog").toString()));
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,6 @@ public class ClientEventBusSubscriber {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onClientSetup(FMLClientSetupEvent event) {
|
public static void onClientSetup(FMLClientSetupEvent event) {
|
||||||
RenderingRegistry.registerEntityRenderingHandler(ModEntityType.GOAT.get(), HogRenderer::new);
|
RenderingRegistry.registerEntityRenderingHandler(ModEntityType.HOG.get(), HogRenderer::new);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,5 +13,6 @@
|
|||||||
"item.tutorial.ruby_helmet": "Ruby Helmet",
|
"item.tutorial.ruby_helmet": "Ruby Helmet",
|
||||||
"item.tutorial.ruby_chestplate": "Ruby Chestplate",
|
"item.tutorial.ruby_chestplate": "Ruby Chestplate",
|
||||||
"item.tutorial.ruby_leggings": "Ruby Leggings",
|
"item.tutorial.ruby_leggings": "Ruby Leggings",
|
||||||
"item.tutorial.ruby_boots": "Ruby Boots"
|
"item.tutorial.ruby_boots": "Ruby Boots",
|
||||||
|
"entity.tutorial.hog": "Hog"
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user