Render *EndSlime*
This commit is contained in:
parent
d6696feb16
commit
e5bf933758
7 changed files with 124 additions and 37 deletions
|
@ -0,0 +1,56 @@
|
|||
package ru.betterend.entity.model;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.client.renderer.entity.layers.EyesLayer;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.entity.CubozoaEntity;
|
||||
import ru.betterend.entity.model.CubozoaEntityModel;
|
||||
import ru.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class RendererEntityCubozoa extends MobRenderer<CubozoaEntity, CubozoaEntityModel> {
|
||||
private static final ResourceLocation[] TEXTURE = new ResourceLocation[2];
|
||||
private static final RenderType[] GLOW = new RenderType[2];
|
||||
|
||||
public RendererEntityCubozoa(EntityRendererProvider.Context ctx) {
|
||||
super(ctx, new CubozoaEntityModel(ctx.bakeLayer(EndEntitiesRenders.CUBOZOA_MODEL)), 0.5f);
|
||||
this.addLayer(new EyesLayer<CubozoaEntity, CubozoaEntityModel>(this) {
|
||||
@Override
|
||||
public RenderType renderType() {
|
||||
return GLOW[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack matrices, MultiBufferSource vertexConsumers, int light, CubozoaEntity entity, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) {
|
||||
VertexConsumer vertexConsumer = vertexConsumers.getBuffer(GLOW[entity.getVariant()]);
|
||||
this.getParentModel().renderToBuffer(matrices, vertexConsumer, 15728640, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void scale(CubozoaEntity entity, PoseStack matrixStack, float f) {
|
||||
float scale = entity.getScale();
|
||||
matrixStack.scale(scale, scale, scale);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(CubozoaEntity entity) {
|
||||
return TEXTURE[entity.getVariant()];
|
||||
}
|
||||
|
||||
static {
|
||||
TEXTURE[0] = BetterEnd.makeID("textures/entity/cubozoa/cubozoa.png");
|
||||
TEXTURE[1] = BetterEnd.makeID("textures/entity/cubozoa/cubozoa_sulphur.png");
|
||||
|
||||
GLOW[0] = RenderType.eyes(BetterEnd.makeID("textures/entity/cubozoa/cubozoa_glow.png"));
|
||||
GLOW[1] = RenderType.eyes(BetterEnd.makeID("textures/entity/cubozoa/cubozoa_sulphur_glow.png"));
|
||||
}
|
||||
}
|
|
@ -5,10 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
|
|||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.client.renderer.entity.RenderLayerParent;
|
||||
import net.minecraft.client.renderer.entity.*;
|
||||
import net.minecraft.client.renderer.entity.layers.EyesLayer;
|
||||
import net.minecraft.client.renderer.entity.layers.RenderLayer;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
@ -16,15 +13,17 @@ import net.minecraft.resources.ResourceLocation;
|
|||
import net.minecraft.util.Mth;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.entity.EndSlimeEntity;
|
||||
import ru.betterend.entity.model.CubozoaEntityModel;
|
||||
import ru.betterend.entity.model.EndSlimeEntityModel;
|
||||
import ru.betterend.registry.EndEntitiesRenders;
|
||||
|
||||
public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlimeEntityModel<EndSlimeEntity>> {
|
||||
private static final ResourceLocation TEXTURE[] = new ResourceLocation[4];
|
||||
private static final RenderType GLOW[] = new RenderType[4];
|
||||
|
||||
public RendererEntityEndSlime(EntityRenderDispatcher entityRenderDispatcher) {
|
||||
super(entityRenderDispatcher, new EndSlimeEntityModel<EndSlimeEntity>(false), 0.25F);
|
||||
this.addLayer(new OverlayFeatureRenderer<EndSlimeEntity>(this));
|
||||
public RendererEntityEndSlime(EntityRendererProvider.Context ctx) {
|
||||
super(ctx, new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_MODEL)), 0.25f);
|
||||
this.addLayer(new OverlayFeatureRenderer<EndSlimeEntity>(this, ctx));
|
||||
this.addLayer(new EyesLayer<EndSlimeEntity, EndSlimeEntityModel<EndSlimeEntity>>(this) {
|
||||
@Override
|
||||
public RenderType renderType() {
|
||||
|
@ -69,11 +68,13 @@ public class RendererEntityEndSlime extends MobRenderer<EndSlimeEntity, EndSlime
|
|||
|
||||
private final class OverlayFeatureRenderer<T extends EndSlimeEntity>
|
||||
extends RenderLayer<T, EndSlimeEntityModel<T>> {
|
||||
private final EndSlimeEntityModel<T> modelOrdinal = new EndSlimeEntityModel<T>(true);
|
||||
private final EndSlimeEntityModel<T> modelLake = new EndSlimeEntityModel<T>(true);
|
||||
private final EndSlimeEntityModel<T> modelOrdinal;
|
||||
private final EndSlimeEntityModel<T> modelLake;
|
||||
|
||||
public OverlayFeatureRenderer(RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext) {
|
||||
public OverlayFeatureRenderer(RenderLayerParent<T, EndSlimeEntityModel<T>> featureRendererContext, EntityRendererProvider.Context ctx) {
|
||||
super(featureRendererContext);
|
||||
modelOrdinal = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL));
|
||||
modelLake = new EndSlimeEntityModel<>(ctx.bakeLayer(EndEntitiesRenders.END_SLIME_SHELL_MODEL));
|
||||
}
|
||||
|
||||
public void render(PoseStack matrixStack, MultiBufferSource vertexConsumerProvider, int i, T livingEntity,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue