*SilkMoth* Model
This commit is contained in:
parent
b0ecc1152c
commit
fb29dd75f7
3 changed files with 129 additions and 11 deletions
|
@ -4,6 +4,12 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
|
||||||
import net.minecraft.client.model.geom.ModelPart;
|
import net.minecraft.client.model.geom.ModelPart;
|
||||||
|
import net.minecraft.client.model.geom.PartNames;
|
||||||
|
import net.minecraft.client.model.geom.PartPose;
|
||||||
|
import net.minecraft.client.model.geom.builders.CubeListBuilder;
|
||||||
|
import net.minecraft.client.model.geom.builders.LayerDefinition;
|
||||||
|
import net.minecraft.client.model.geom.builders.MeshDefinition;
|
||||||
|
import net.minecraft.client.model.geom.builders.PartDefinition;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import ru.betterend.entity.SilkMothEntity;
|
import ru.betterend.entity.SilkMothEntity;
|
||||||
|
@ -25,13 +31,123 @@ public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
private final ModelPart wingL_r1;
|
private final ModelPart wingL_r1;
|
||||||
private final ModelPart abdomen_r1;
|
private final ModelPart abdomen_r1;
|
||||||
|
|
||||||
public SilkMothEntityModel() {
|
public static LayerDefinition getTexturedModelData() {
|
||||||
|
MeshDefinition modelData = new MeshDefinition();
|
||||||
|
PartDefinition modelPartData = modelData.getRoot();
|
||||||
|
|
||||||
|
PartDefinition legsL = modelPartData.addOrReplaceChild(PartNames.LEFT_LEG, CubeListBuilder.create()
|
||||||
|
.texOffs(0, 0),
|
||||||
|
PartPose.offsetAndRotation(1.5f, 19.9f, -0.45f,
|
||||||
|
0.0f, 0.0f, 0.6981f));
|
||||||
|
|
||||||
|
legsL.addOrReplaceChild("cube_r1", CubeListBuilder.create()
|
||||||
|
.addBox(0.0216f, 0.0f, -0.5976f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 13),
|
||||||
|
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f,
|
||||||
|
0.0f, 0.2182f, 0.3927f));
|
||||||
|
|
||||||
|
legsL.addOrReplaceChild("cube_r2", CubeListBuilder.create()
|
||||||
|
.addBox(0.0f, 0.0f, -0.6f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 15),
|
||||||
|
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f,
|
||||||
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
|
legsL.addOrReplaceChild("cube_r3", CubeListBuilder.create()
|
||||||
|
.addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 14),
|
||||||
|
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f,
|
||||||
|
0.0f, -0.2182f, 0.3927f));
|
||||||
|
|
||||||
|
PartDefinition legsR = modelPartData.addOrReplaceChild(PartNames.RIGHT_LEG, CubeListBuilder.create()
|
||||||
|
.texOffs(0, 0),
|
||||||
|
PartPose.offsetAndRotation(-1.5f, 19.9f, -0.55f,
|
||||||
|
0.0f, 3.1416f, -0.6545f));
|
||||||
|
|
||||||
|
legsR.addOrReplaceChild("cube_r4", CubeListBuilder.create()
|
||||||
|
.addBox(0.0f, 0.0f, -0.5f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 10),
|
||||||
|
PartPose.offsetAndRotation(0.0f, 0.0f, -1.0f,
|
||||||
|
0.0f, 0.2182f, 0.3927f));
|
||||||
|
|
||||||
|
legsR.addOrReplaceChild("cube_r5", CubeListBuilder.create()
|
||||||
|
.addBox(0.0f, 0.0f, -0.4f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 11),
|
||||||
|
PartPose.offsetAndRotation(0.5f, 0.1f, -0.05f,
|
||||||
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
|
legsR.addOrReplaceChild("cube_r6", CubeListBuilder.create()
|
||||||
|
.addBox(0.0216f, 0.0f, -0.4024f, 3.0f, 0.0f, 1.0f)
|
||||||
|
.texOffs(0, 12),
|
||||||
|
PartPose.offsetAndRotation(0.0f, 0.0f, 0.9f,
|
||||||
|
0.0f, -0.2182f, 0.3927f));
|
||||||
|
|
||||||
|
PartDefinition head_pivot = modelPartData.addOrReplaceChild(PartNames.HEAD, CubeListBuilder.create()
|
||||||
|
.addBox(-1.5f, -1.5f, -2.0f, 3.0f, 3.0f, 3.0f)
|
||||||
|
.texOffs(15, 10),
|
||||||
|
PartPose.offset(0.0f, 18.0f, -3.0f));
|
||||||
|
|
||||||
|
head_pivot.addOrReplaceChild("tendril_r_r1", CubeListBuilder.create()
|
||||||
|
.mirror()
|
||||||
|
.addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f)
|
||||||
|
.texOffs(23, 0),
|
||||||
|
PartPose.offsetAndRotation(1.0f, -1.15f, -1.0f,
|
||||||
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
|
head_pivot.addOrReplaceChild("tendril_r_r2", CubeListBuilder.create()
|
||||||
|
.addBox(-1.5f, -5.0f, 0.0f, 3.0f, 5.0f, 0.0f)
|
||||||
|
.texOffs(23, 0),
|
||||||
|
PartPose.offsetAndRotation(-1.0f, -1.15f, -1.0f,
|
||||||
|
0.0f, 0.0f, -0.3927f));
|
||||||
|
|
||||||
|
PartDefinition bb_main = modelPartData.addOrReplaceChild(PartNames.BODY, CubeListBuilder.create()
|
||||||
|
.addBox(-2.5f, -8.5f, -3.0f, 5.0f, 5.0f, 3.0f)
|
||||||
|
.texOffs(19, 19),
|
||||||
|
PartPose.offset(0.0f, 24.0f, 0.0f));
|
||||||
|
|
||||||
|
bb_main.addOrReplaceChild(PartNames.RIGHT_WING, CubeListBuilder.create()
|
||||||
|
.mirror()
|
||||||
|
.addBox(-7.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f)
|
||||||
|
.texOffs(0, 5),
|
||||||
|
PartPose.offsetAndRotation(-1.5f, -6.5f, 0.5f,
|
||||||
|
0.0f, 0.0f, 0.3927f));
|
||||||
|
|
||||||
|
bb_main.addOrReplaceChild(PartNames.LEFT_WING, CubeListBuilder.create()
|
||||||
|
.addBox(-2.0f, 0.0f, -3.0f, 9.0f, 0.0f, 5.0f)
|
||||||
|
.texOffs(0, 5),
|
||||||
|
PartPose.offsetAndRotation(1.5f, -6.5f, 0.5f,
|
||||||
|
0.0f, 0.0f, -0.3927f));
|
||||||
|
|
||||||
|
bb_main.addOrReplaceChild("abdomen_r1", CubeListBuilder.create()
|
||||||
|
.addBox(-3.0f, -4.0f, -1.0f, 4.0f, 4.0f, 7.0f)
|
||||||
|
.texOffs(0, 10),
|
||||||
|
PartPose.offsetAndRotation(1.0f, -3.9f, 0.0f,
|
||||||
|
-0.3927f, 0.0f, 0.0f));
|
||||||
|
|
||||||
|
/*texWidth = 64;
|
||||||
|
texHeight = 64;*/
|
||||||
|
return LayerDefinition.create(modelData, 64, 64);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SilkMothEntityModel(ModelPart modelPart) {
|
||||||
super(RenderType::entityCutout);
|
super(RenderType::entityCutout);
|
||||||
|
|
||||||
texWidth = 64;
|
legsL = modelPart.getChild(PartNames.LEFT_LEG);
|
||||||
texHeight = 64;
|
cube_r1 = legsL.getChild("cube_r1");
|
||||||
|
cube_r2 = legsL.getChild("cube_r2");
|
||||||
|
cube_r3 = legsL.getChild("cube_r3");
|
||||||
|
legsR = modelPart.getChild(PartNames.RIGHT_LEG);
|
||||||
|
cube_r4 = legsR.getChild("cube_r4");
|
||||||
|
cube_r5 = legsR.getChild("cube_r5");
|
||||||
|
cube_r6 = legsR.getChild("cube_r6");
|
||||||
|
head_pivot = modelPart.getChild(PartNames.HEAD);
|
||||||
|
tendril_r_r1 = head_pivot.getChild("tendril_r_r1");
|
||||||
|
tendril_r_r2 = head_pivot.getChild("tendril_r_r2");
|
||||||
|
bb_main = modelPart.getChild(PartNames.BODY);
|
||||||
|
wingR_r1 = bb_main.getChild(PartNames.RIGHT_WING);
|
||||||
|
wingL_r1 = bb_main.getChild(PartNames.LEFT_WING);
|
||||||
|
abdomen_r1 = bb_main.getChild("abdomen_r1");
|
||||||
|
|
||||||
legsL = new ModelPart(this);
|
/*legsL = new ModelPart(this);
|
||||||
legsL.setPos(1.5F, 19.9F, -0.45F);
|
legsL.setPos(1.5F, 19.9F, -0.45F);
|
||||||
setRotationAngle(legsL, 0.0F, 0.0F, 0.6981F);
|
setRotationAngle(legsL, 0.0F, 0.0F, 0.6981F);
|
||||||
|
|
||||||
|
@ -111,7 +227,7 @@ public class SilkMothEntityModel extends BlockBenchModel<SilkMothEntity> {
|
||||||
abdomen_r1.setPos(1.0F, -3.9F, 0.0F);
|
abdomen_r1.setPos(1.0F, -3.9F, 0.0F);
|
||||||
bb_main.addChild(abdomen_r1);
|
bb_main.addChild(abdomen_r1);
|
||||||
setRotationAngle(abdomen_r1, -0.3927F, 0.0F, 0.0F);
|
setRotationAngle(abdomen_r1, -0.3927F, 0.0F, 0.0F);
|
||||||
abdomen_r1.texOffs(0, 10).addBox(-3.0F, -4.0F, -1.0F, 4.0F, 4.0F, 7.0F, 0.0F);
|
abdomen_r1.texOffs(0, 10).addBox(-3.0F, -4.0F, -1.0F, 4.0F, 4.0F, 7.0F, 0.0F);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,17 +1,20 @@
|
||||||
package ru.betterend.entity.render;
|
package ru.betterend.entity.render;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||||
|
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import ru.betterend.BetterEnd;
|
import ru.betterend.BetterEnd;
|
||||||
import ru.betterend.entity.SilkMothEntity;
|
import ru.betterend.entity.SilkMothEntity;
|
||||||
|
import ru.betterend.entity.model.CubozoaEntityModel;
|
||||||
import ru.betterend.entity.model.SilkMothEntityModel;
|
import ru.betterend.entity.model.SilkMothEntityModel;
|
||||||
|
import ru.betterend.registry.EndEntitiesRenders;
|
||||||
|
|
||||||
public class SilkMothEntityRenderer extends MobRenderer<SilkMothEntity, SilkMothEntityModel> {
|
public class SilkMothEntityRenderer extends MobRenderer<SilkMothEntity, SilkMothEntityModel> {
|
||||||
private static final ResourceLocation TEXTURE = BetterEnd.makeID("textures/entity/silk_moth.png");
|
private static final ResourceLocation TEXTURE = BetterEnd.makeID("textures/entity/silk_moth.png");
|
||||||
|
|
||||||
public SilkMothEntityRenderer(EntityRenderDispatcher entityRenderDispatcher) {
|
public SilkMothEntityRenderer(EntityRendererProvider.Context ctx) {
|
||||||
super(entityRenderDispatcher, new SilkMothEntityModel(), 0.5f);
|
super(ctx, new SilkMothEntityModel(ctx.bakeLayer(EndEntitiesRenders.SILK_MOTH_MODEL)), 0.5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -7,10 +7,7 @@ import net.minecraft.client.renderer.entity.MobRenderer;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import ru.betterend.BetterEnd;
|
import ru.betterend.BetterEnd;
|
||||||
import ru.betterend.entity.model.CubozoaEntityModel;
|
import ru.betterend.entity.model.*;
|
||||||
import ru.betterend.entity.model.DragonflyEntityModel;
|
|
||||||
import ru.betterend.entity.model.EndFishEntityModel;
|
|
||||||
import ru.betterend.entity.model.EndSlimeEntityModel;
|
|
||||||
import ru.betterend.entity.render.RendererEntityCubozoa;
|
import ru.betterend.entity.render.RendererEntityCubozoa;
|
||||||
import ru.betterend.entity.render.RendererEntityDragonfly;
|
import ru.betterend.entity.render.RendererEntityDragonfly;
|
||||||
import ru.betterend.entity.render.RendererEntityEndFish;
|
import ru.betterend.entity.render.RendererEntityEndFish;
|
||||||
|
@ -25,6 +22,7 @@ public class EndEntitiesRenders {
|
||||||
public static final ModelLayerLocation END_SLIME_MODEL = registerMain("endslime");
|
public static final ModelLayerLocation END_SLIME_MODEL = registerMain("endslime");
|
||||||
public static final ModelLayerLocation END_FISH_MODEL = registerMain("endfish");
|
public static final ModelLayerLocation END_FISH_MODEL = registerMain("endfish");
|
||||||
public static final ModelLayerLocation CUBOZOA_MODEL = registerMain("cubozoa");
|
public static final ModelLayerLocation CUBOZOA_MODEL = registerMain("cubozoa");
|
||||||
|
public static final ModelLayerLocation SILK_MOTH_MODEL = registerMain("silkmoth");
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
register(EndEntities.DRAGONFLY, RendererEntityDragonfly.class);
|
register(EndEntities.DRAGONFLY, RendererEntityDragonfly.class);
|
||||||
|
@ -39,6 +37,7 @@ public class EndEntitiesRenders {
|
||||||
EntityModelLayerRegistry.registerModelLayer(END_SLIME_MODEL, EndSlimeEntityModel::getCompleteTexturedModelData);
|
EntityModelLayerRegistry.registerModelLayer(END_SLIME_MODEL, EndSlimeEntityModel::getCompleteTexturedModelData);
|
||||||
EntityModelLayerRegistry.registerModelLayer(END_FISH_MODEL, EndFishEntityModel::getTexturedModelData);
|
EntityModelLayerRegistry.registerModelLayer(END_FISH_MODEL, EndFishEntityModel::getTexturedModelData);
|
||||||
EntityModelLayerRegistry.registerModelLayer(CUBOZOA_MODEL, CubozoaEntityModel::getTexturedModelData);
|
EntityModelLayerRegistry.registerModelLayer(CUBOZOA_MODEL, CubozoaEntityModel::getTexturedModelData);
|
||||||
|
EntityModelLayerRegistry.registerModelLayer(SILK_MOTH_MODEL, SilkMothEntityModel::getTexturedModelData);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void register(EntityType<?> type, Class<? extends MobRenderer<?, ?>> renderer) {
|
private static void register(EntityType<?> type, Class<? extends MobRenderer<?, ?>> renderer) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue