PrideSlime -> 🪦

This commit is contained in:
blryface 2024-09-15 19:03:45 -03:00
parent 00684d6d93
commit 83f7e43017
5 changed files with 0 additions and 141 deletions

View File

@ -60,7 +60,6 @@ public class JoyClient implements ClientModInitializer {
EntityRendererRegistry.register(ModEntities.TREE, TreeRenderer::new);
EntityRendererRegistry.register(ModEntities.AXOLOTL, AxolotlRenderer::new);
EntityRendererRegistry.register(ModEntities.FROG, FrogRenderer::new);
EntityRendererRegistry.register(ModEntities.PRIDE_SLIME, PrideSlimeRenderer::new);
EntityRendererRegistry.register(ModEntities.PRIDE_SNIFFER, PrideSnifferRenderer::new);
}
}

View File

@ -1,46 +0,0 @@
package gay.pridecraft.joy.renderer.entity;
import gay.pridecraft.joy.Joy;
import gay.pridecraft.joy.entity.custom.living.CustomSlimeEntity;
import gay.pridecraft.joy.renderer.feature.PrideSlimeOverlayFeatureRenderer;
import gay.pridecraft.joy.renderer.model.PrideSlimeEntityModel;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.EntityRendererFactory;
import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.client.render.entity.model.EntityModelLayers;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
@Environment(EnvType.CLIENT)
public class PrideSlimeRenderer extends MobEntityRenderer<CustomSlimeEntity.PrideSlimeEntity, PrideSlimeEntityModel<CustomSlimeEntity.PrideSlimeEntity>> {
private static final Identifier TEXTURE = Identifier.of(Joy.MOD_ID, "textures/entity/slime/pride_slime.png");
public PrideSlimeRenderer(EntityRendererFactory.Context context) {
super(context, new PrideSlimeEntityModel<>(context.getPart(EntityModelLayers.SLIME)), 0.25F);
this.addFeature(new PrideSlimeOverlayFeatureRenderer<>(this, context.getModelLoader()));
}
@Override
public Identifier getTexture(CustomSlimeEntity.PrideSlimeEntity entity) {
return TEXTURE;
}
public void render(CustomSlimeEntity.PrideSlimeEntity slimeEntity, float f, float g, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i) {
this.shadowRadius = 0.25F * (float)slimeEntity.getSize();
super.render(slimeEntity, f, g, matrixStack, vertexConsumerProvider, i);
}
protected void scale(CustomSlimeEntity.PrideSlimeEntity slimeEntity, MatrixStack matrixStack, float f) {
float g = 0.999F;
matrixStack.scale(0.999F, 0.999F, 0.999F);
matrixStack.translate(0.0F, 0.001F, 0.0F);
float h = (float) slimeEntity.getSize();
float i = MathHelper.lerp(f, slimeEntity.lastStretch, slimeEntity.stretch) / (h * 0.5F + 1.0F);
float j = 1.0F / (i + 1.0F);
matrixStack.scale(j * h, 1.0F / j * h, j * h);
}
}

View File

@ -1,47 +0,0 @@
package gay.pridecraft.joy.renderer.feature;
import gay.pridecraft.joy.renderer.model.PrideSlimeEntityModel;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.feature.FeatureRenderer;
import net.minecraft.client.render.entity.feature.FeatureRendererContext;
import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.render.entity.model.EntityModelLayers;
import net.minecraft.client.render.entity.model.EntityModelLoader;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.LivingEntity;
@Environment(EnvType.CLIENT)
public class PrideSlimeOverlayFeatureRenderer<T extends LivingEntity> extends FeatureRenderer<T, PrideSlimeEntityModel<T>> {
private final EntityModel<T> model;
public PrideSlimeOverlayFeatureRenderer(FeatureRendererContext<T, PrideSlimeEntityModel<T>> context, EntityModelLoader loader) {
super(context);
this.model = new PrideSlimeEntityModel<>(loader.getModelPart(EntityModelLayers.SLIME_OUTER));
}
public void render(
MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, T livingEntity, float f, float g, float h, float j, float k, float l
) {
MinecraftClient minecraftClient = MinecraftClient.getInstance();
boolean bl = minecraftClient.hasOutline(livingEntity) && livingEntity.isInvisible();
if (!livingEntity.isInvisible() || bl) {
VertexConsumer vertexConsumer;
if (bl) {
vertexConsumer = vertexConsumerProvider.getBuffer(RenderLayer.getOutline(this.getTexture(livingEntity)));
} else {
vertexConsumer = vertexConsumerProvider.getBuffer(RenderLayer.getEntityTranslucent(this.getTexture(livingEntity)));
}
this.getContextModel().copyStateTo(this.model);
this.model.animateModel(livingEntity, f, g, h);
this.model.setAngles(livingEntity, f, g, j, k, l);
this.model.render(matrixStack, vertexConsumer, i, LivingEntityRenderer.getOverlay(livingEntity, 0.0F));
}
}
}

View File

@ -1,47 +0,0 @@
package gay.pridecraft.joy.renderer.model;
import net.minecraft.client.render.entity.model.SinglePartEntityModel;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.model.ModelData;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.model.ModelPartBuilder;
import net.minecraft.client.model.ModelPartData;
import net.minecraft.client.model.ModelTransform;
import net.minecraft.client.model.TexturedModelData;
import net.minecraft.entity.Entity;
@Environment(EnvType.CLIENT)
public class PrideSlimeEntityModel<T extends Entity> extends SinglePartEntityModel<T> {
private final ModelPart root;
public PrideSlimeEntityModel(ModelPart root) {
this.root = root;
}
public static TexturedModelData getOuterTexturedModelData() {
ModelData modelData = new ModelData();
ModelPartData modelPartData = modelData.getRoot();
modelPartData.addChild("cube", ModelPartBuilder.create().uv(0, 0).cuboid(-4.0F, 16.0F, -4.0F, 8.0F, 8.0F, 8.0F), ModelTransform.NONE);
return TexturedModelData.of(modelData, 64, 32);
}
public static TexturedModelData getInnerTexturedModelData() {
ModelData modelData = new ModelData();
ModelPartData modelPartData = modelData.getRoot();
modelPartData.addChild("cube", ModelPartBuilder.create().uv(0, 16).cuboid(-3.0F, 17.0F, -3.0F, 6.0F, 6.0F, 6.0F), ModelTransform.NONE);
modelPartData.addChild("right_eye", ModelPartBuilder.create().uv(32, 0).cuboid(-3.25F, 18.0F, -3.5F, 2.0F, 2.0F, 2.0F), ModelTransform.NONE);
modelPartData.addChild("left_eye", ModelPartBuilder.create().uv(32, 4).cuboid(1.25F, 18.0F, -3.5F, 2.0F, 2.0F, 2.0F), ModelTransform.NONE);
modelPartData.addChild("mouth", ModelPartBuilder.create().uv(32, 8).cuboid(0.0F, 21.0F, -3.5F, 1.0F, 1.0F, 1.0F), ModelTransform.NONE);
return TexturedModelData.of(modelData, 64, 32);
}
public void setAngles(T entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
}
public ModelPart getPart() {
return this.root;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB