Jello improvements

This commit is contained in:
paulevsGitch 2020-12-06 18:05:32 +03:00
parent d37e55b101
commit 8ae202ac44
8 changed files with 94 additions and 16 deletions

View file

@ -4,48 +4,102 @@ import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.MathHelper;
import ru.betterend.entity.BlockBenchModel; import ru.betterend.entity.BlockBenchModel;
import ru.betterend.entity.EntityJello; import ru.betterend.entity.EntityJello;
public class ModelEntityJello extends BlockBenchModel<EntityJello> { public class ModelEntityJello extends BlockBenchModel<EntityJello> {
private final ModelPart model; private final ModelPart model;
private final ModelPart tentacles; private final ModelPart main_cube_r1;
private final ModelPart main_cube; private final ModelPart tentacle_center_1;
private final ModelPart tentacle_1;
private final ModelPart tentacle_center_2;
private final ModelPart tentacle_2;
private final ModelPart tentacle_center_3;
private final ModelPart tentacle_3;
private final ModelPart tentacle_center_4;
private final ModelPart tentacle_4;
private float scaleY;
private float scaleXZ;
public ModelEntityJello() { public ModelEntityJello() {
super(RenderLayer::getEntityTranslucent); super(RenderLayer::getEntityTranslucent);
textureWidth = 48; textureWidth = 48;
textureHeight = 48; textureHeight = 48;
model = new ModelPart(this); model = new ModelPart(this);
model.setPivot(0.0F, 24.0F, 0.0F); model.setPivot(0.0F, 24.0F, 0.0F);
model.setTextureOffset(16, 17).addCuboid(-4.0F, -7.0F, 4.5F, 8.0F, 7.0F, 0.0F, 0.0F);
model.setTextureOffset(16, 17).addCuboid(-4.0F, -7.0F, -4.5F, 8.0F, 7.0F, 0.0F, 0.0F);
model.setTextureOffset(0, 17).addCuboid(-2.0F, -12.5F, -2.0F, 4.0F, 4.0F, 4.0F, 0.0F); model.setTextureOffset(0, 17).addCuboid(-2.0F, -12.5F, -2.0F, 4.0F, 4.0F, 4.0F, 0.0F);
tentacles = new ModelPart(this); main_cube_r1 = new ModelPart(this);
tentacles.setPivot(0.0F, -6.0F, 0.0F); main_cube_r1.setPivot(0.0F, -14.0F, 0.0F);
model.addChild(tentacles); model.addChild(main_cube_r1);
setRotationAngle(tentacles, 0.0F, -1.5708F, 0.0F); setRotationAngle(main_cube_r1, 0.0F, 0.0F, -3.1416F);
tentacles.setTextureOffset(16, 17).addCuboid(-4.0F, -1.0F, 4.5F, 8.0F, 7.0F, 0.0F, 0.0F); main_cube_r1.setTextureOffset(0, 0).addCuboid(-5.0F, -7.0F, -5.0F, 10.0F, 7.0F, 10.0F, 0.0F);
tentacles.setTextureOffset(16, 17).addCuboid(-4.0F, -1.0F, -4.5F, 8.0F, 7.0F, 0.0F, 0.0F);
main_cube = new ModelPart(this); tentacle_center_1 = new ModelPart(this);
main_cube.setPivot(0.0F, -14.0F, 0.0F); tentacle_center_1.setPivot(0.0F, 0.0F, 0.0F);
model.addChild(main_cube); model.addChild(tentacle_center_1);
setRotationAngle(main_cube, 0.0F, 0.0F, -3.1416F);
main_cube.setTextureOffset(0, 0).addCuboid(-5.0F, -7.0F, -5.0F, 10.0F, 7.0F, 10.0F, 0.0F);
tentacle_1 = new ModelPart(this);
tentacle_1.setPivot(0.0F, -7.0F, 4.5F);
tentacle_center_1.addChild(tentacle_1);
tentacle_1.setTextureOffset(16, 17).addCuboid(-4.0F, 0.0F, 0.0F, 8.0F, 7.0F, 0.0F, 0.0F);
tentacle_center_2 = new ModelPart(this);
tentacle_center_2.setPivot(0.0F, 0.0F, 0.0F);
model.addChild(tentacle_center_2);
setRotationAngle(tentacle_center_2, 0.0F, -1.5708F, 0.0F);
tentacle_2 = new ModelPart(this);
tentacle_2.setPivot(0.0F, -7.0F, 4.5F);
tentacle_center_2.addChild(tentacle_2);
tentacle_2.setTextureOffset(16, 17).addCuboid(-4.0F, 0.0F, 0.0F, 8.0F, 7.0F, 0.0F, 0.0F);
tentacle_center_3 = new ModelPart(this);
tentacle_center_3.setPivot(0.0F, 0.0F, 0.0F);
model.addChild(tentacle_center_3);
setRotationAngle(tentacle_center_3, 0.0F, 3.1416F, 0.0F);
tentacle_3 = new ModelPart(this);
tentacle_3.setPivot(0.0F, -7.0F, 4.5F);
tentacle_center_3.addChild(tentacle_3);
tentacle_3.setTextureOffset(16, 17).addCuboid(-4.0F, 0.0F, 0.0F, 8.0F, 7.0F, 0.0F, 0.0F);
tentacle_center_4 = new ModelPart(this);
tentacle_center_4.setPivot(0.0F, 0.0F, 0.0F);
model.addChild(tentacle_center_4);
setRotationAngle(tentacle_center_4, 0.0F, 1.5708F, 0.0F);
tentacle_4 = new ModelPart(this);
tentacle_4.setPivot(0.0F, -7.0F, 4.5F);
tentacle_center_4.addChild(tentacle_4);
tentacle_4.setTextureOffset(16, 17).addCuboid(-4.0F, 0.0F, 0.0F, 8.0F, 7.0F, 0.0F, 0.0F);
} }
@Override @Override
public void setAngles(EntityJello entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) { public void setAngles(EntityJello entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
float sin = MathHelper.sin(animationProgress * 0.13F);
scaleY = sin * 0.1F + 0.9F;
scaleXZ = MathHelper.sin(animationProgress * 0.13F + 3.14F) * 0.1F + 0.9F;
tentacle_1.pitch = sin * 0.15F;
tentacle_2.pitch = sin * 0.15F;
tentacle_3.pitch = sin * 0.15F;
tentacle_4.pitch = sin * 0.15F;
} }
@Override @Override
public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) {
matrices.push();
matrices.scale(scaleXZ, scaleY, scaleXZ);
model.render(matrices, vertices, light, overlay); model.render(matrices, vertices, light, overlay);
matrices.pop();
} }
} }

View file

@ -1,7 +1,9 @@
package ru.betterend.entity.render; package ru.betterend.entity.render;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.client.render.entity.feature.EyesFeatureRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
@ -10,9 +12,16 @@ import ru.betterend.entity.model.ModelEntityJello;
public class RendererEntityJello extends MobEntityRenderer<EntityJello, ModelEntityJello> { public class RendererEntityJello extends MobEntityRenderer<EntityJello, ModelEntityJello> {
private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/jello.png"); private static final Identifier TEXTURE = BetterEnd.makeID("textures/entity/jello.png");
private static final RenderLayer GLOW = RenderLayer.getEyes(BetterEnd.makeID("textures/entity/jello_glow.png"));
public RendererEntityJello(EntityRenderDispatcher entityRenderDispatcher) { public RendererEntityJello(EntityRenderDispatcher entityRenderDispatcher) {
super(entityRenderDispatcher, new ModelEntityJello(), 0.5f); super(entityRenderDispatcher, new ModelEntityJello(), 0.5f);
this.addFeature(new EyesFeatureRenderer<EntityJello, ModelEntityJello>(this) {
@Override
public RenderLayer getEyesTexture() {
return GLOW;
}
});
} }
@Override @Override

View file

@ -36,6 +36,7 @@ public class BiomeFoggyMushroomland extends EndBiome {
.addStructureFeature(ConfiguredStructureFeatures.END_CITY) .addStructureFeature(ConfiguredStructureFeatures.END_CITY)
.addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5) .addMobSpawn(EndEntities.DRAGONFLY, 80, 2, 5)
.addMobSpawn(EndEntities.END_FISH, 20, 2, 5) .addMobSpawn(EndEntities.END_FISH, 20, 2, 5)
.addMobSpawn(EndEntities.JELLO, 10, 3, 8)
.addMobSpawn(EndEntities.END_SLIME, 10, 1, 2) .addMobSpawn(EndEntities.END_SLIME, 10, 1, 2)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
} }

View file

@ -29,6 +29,7 @@ public class BiomeMegalake extends EndBiome {
.addFeature(EndFeatures.MENGER_SPONGE) .addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3) .addMobSpawn(EndEntities.DRAGONFLY, 50, 1, 3)
.addMobSpawn(EndEntities.END_FISH, 50, 3, 8) .addMobSpawn(EndEntities.END_FISH, 50, 3, 8)
.addMobSpawn(EndEntities.JELLO, 50, 3, 8)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
} }
} }

View file

@ -32,6 +32,7 @@ public class BiomeMegalakeGrove extends EndBiome {
.addFeature(EndFeatures.MENGER_SPONGE) .addFeature(EndFeatures.MENGER_SPONGE)
.addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3) .addMobSpawn(EndEntities.DRAGONFLY, 20, 1, 3)
.addMobSpawn(EndEntities.END_FISH, 20, 3, 8) .addMobSpawn(EndEntities.END_FISH, 20, 3, 8)
.addMobSpawn(EndEntities.JELLO, 50, 3, 8)
.addMobSpawn(EntityType.ENDERMAN, 10, 1, 2)); .addMobSpawn(EntityType.ENDERMAN, 10, 1, 2));
} }
} }

View file

@ -0,0 +1,12 @@
{
"map": [
{
"predicate": {
"materialPredicate": {
"renderLayerName": "eyes"
}
},
"material": "canvas:emissive_transform"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB