End fish prototype

This commit is contained in:
paulevsGitch 2020-10-23 20:04:37 +03:00
parent df8e285757
commit 4237f5bdca
12 changed files with 152 additions and 11 deletions

View file

@ -0,0 +1,13 @@
package ru.betterend.entity;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.entity.Entity;
public abstract class BlockBenchModel<T extends Entity> extends EntityModel<T> {
protected void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) {
modelRenderer.pitch = x;
modelRenderer.yaw = y;
modelRenderer.roll = z;
}
}

View file

@ -0,0 +1,33 @@
package ru.betterend.entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.DefaultAttributeContainer;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.entity.passive.SchoolingFishEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.sound.SoundEvent;
import net.minecraft.world.World;
public class EntityEndFish extends SchoolingFishEntity {
public EntityEndFish(EntityType<EntityEndFish> entityType, World world) {
super(entityType, world);
}
@Override
protected ItemStack getFishBucketItem() {
return null;
}
@Override
protected SoundEvent getFlopSound() {
return null;
}
public static DefaultAttributeContainer.Builder createMobAttributes() {
return LivingEntity.createLivingAttributes()
.add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)
.add(EntityAttributes.GENERIC_FOLLOW_RANGE, 16.0D)
.add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.5D);
}
}

View file

@ -2,11 +2,11 @@ package ru.betterend.entity.model;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.util.math.MatrixStack;
import ru.betterend.entity.BlockBenchModel;
import ru.betterend.entity.EntityDragonfly;
public class ModelEntityDragonfly extends EntityModel<EntityDragonfly> {
public class ModelEntityDragonfly extends BlockBenchModel<EntityDragonfly> {
private final ModelPart model;
private final ModelPart head;
private final ModelPart tail;
@ -99,10 +99,4 @@ public class ModelEntityDragonfly extends EntityModel<EntityDragonfly> {
public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) {
model.render(matrices, vertices, light, overlay);
}
public void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) {
modelRenderer.pitch = x;
modelRenderer.yaw = y;
modelRenderer.roll = z;
}
}

View file

@ -0,0 +1,70 @@
package ru.betterend.entity.model;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
import ru.betterend.entity.BlockBenchModel;
import ru.betterend.entity.EntityEndFish;
public class ModelEntityEndFish extends BlockBenchModel<EntityEndFish> {
private final ModelPart model;
private final ModelPart fin_top;
private final ModelPart fin_bottom;
private final ModelPart flipper;
private final ModelPart fin_right;
private final ModelPart fin_left;
public ModelEntityEndFish() {
textureWidth = 32;
textureHeight = 32;
model = new ModelPart(this);
model.setPivot(0.0F, 20.0F, 0.0F);
model.setTextureOffset(0, 0).addCuboid(-1.0F, -2.0F, -4.0F, 2.0F, 4.0F, 8.0F, 0.0F);
fin_top = new ModelPart(this);
fin_top.setPivot(0.0F, -2.0F, -4.0F);
model.addChild(fin_top);
setRotationAngle(fin_top, -0.6981F, 0.0F, 0.0F);
fin_top.setTextureOffset(0, 6).addCuboid(0.0F, -8.0F, 0.0F, 0.0F, 8.0F, 6.0F, 0.0F);
fin_bottom = new ModelPart(this);
fin_bottom.setPivot(0.0F, 2.0F, -4.0F);
model.addChild(fin_bottom);
setRotationAngle(fin_bottom, 0.6981F, 0.0F, 0.0F);
fin_bottom.setTextureOffset(0, 6).addCuboid(0.0F, 0.0F, 0.0F, 0.0F, 8.0F, 6.0F, 0.0F);
flipper = new ModelPart(this);
flipper.setPivot(0.0F, 0.0F, 2.0F);
model.addChild(flipper);
setRotationAngle(flipper, -0.7854F, 0.0F, 0.0F);
flipper.setTextureOffset(0, 15).addCuboid(0.0F, -5.0F, 0.0F, 0.0F, 5.0F, 5.0F, 0.0F);
fin_right = new ModelPart(this);
fin_right.setPivot(-1.0F, 0.0F, -1.0F);
model.addChild(fin_right);
setRotationAngle(fin_right, 1.5708F, 0.7854F, 0.0F);
fin_right.setTextureOffset(0, 25).addCuboid(-3.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F, 0.0F);
fin_left = new ModelPart(this);
fin_left.setPivot(1.0F, 0.0F, -1.0F);
model.addChild(fin_left);
setRotationAngle(fin_left, 1.5708F, -0.7854F, 0.0F);
fin_left.setTextureOffset(0, 25).addCuboid(0.7071F, 0.7071F, -1.5F, 3.0F, 0.0F, 3.0F, 0.0F, true);
}
@Override
public void setAngles(EntityEndFish entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
}
@Override
public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) {
RenderSystem.enableCull();
model.render(matrices, vertices, light, overlay);
RenderSystem.disableCull();
}
}

View file

@ -0,0 +1,30 @@
package ru.betterend.entity.render;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.client.render.entity.feature.EyesFeatureRenderer;
import net.minecraft.util.Identifier;
import ru.betterend.BetterEnd;
import ru.betterend.entity.EntityEndFish;
import ru.betterend.entity.model.ModelEntityEndFish;
public class RendererEntityEndFish extends MobEntityRenderer<EntityEndFish, ModelEntityEndFish> {
private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/end_fish/end_fish_2.png");
private static final RenderLayer GLOW = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/end_fish/end_fish_2_glow.png"));
public RendererEntityEndFish(EntityRenderDispatcher entityRenderDispatcher) {
super(entityRenderDispatcher, new ModelEntityEndFish(), 0.5f);
this.addFeature(new EyesFeatureRenderer<EntityEndFish, ModelEntityEndFish>(this) {
@Override
public RenderLayer getEyesTexture() {
return GLOW;
}
});
}
@Override
public Identifier getTexture(EntityEndFish entity) {
return TEXTURE;
}
}