Adjust butterfly brightness to account for their surroundings. (should prevent them from glowing)

This commit is contained in:
Sollace 2023-10-23 23:10:54 +01:00
parent 95da60c24c
commit dc29729419
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB

View file

@ -1,20 +1,26 @@
package com.minelittlepony.unicopia.client.render.entity; package com.minelittlepony.unicopia.client.render.entity;
import org.jetbrains.annotations.Nullable;
import com.minelittlepony.unicopia.client.render.RenderLayers; import com.minelittlepony.unicopia.client.render.RenderLayers;
import com.minelittlepony.unicopia.entity.mob.ButterflyEntity; import com.minelittlepony.unicopia.entity.mob.ButterflyEntity;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.model.ModelData; import net.minecraft.client.model.ModelData;
import net.minecraft.client.model.ModelPart; import net.minecraft.client.model.ModelPart;
import net.minecraft.client.model.ModelPartBuilder; import net.minecraft.client.model.ModelPartBuilder;
import net.minecraft.client.model.ModelPartData; import net.minecraft.client.model.ModelPartData;
import net.minecraft.client.model.ModelTransform; import net.minecraft.client.model.ModelTransform;
import net.minecraft.client.model.TexturedModelData; import net.minecraft.client.model.TexturedModelData;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.entity.EntityRendererFactory; import net.minecraft.client.render.entity.EntityRendererFactory;
import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.render.entity.MobEntityRenderer;
import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.EntityModel;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
public class ButterflyEntityRenderer extends MobEntityRenderer<ButterflyEntity, ButterflyEntityRenderer.ButterflyEntityModel> { public class ButterflyEntityRenderer extends MobEntityRenderer<ButterflyEntity, ButterflyEntityRenderer.ButterflyEntityModel> {
@ -45,6 +51,23 @@ public class ButterflyEntityRenderer extends MobEntityRenderer<ButterflyEntity,
super.setupTransforms(entity, matrices, age, yaw, ticks); super.setupTransforms(entity, matrices, age, yaw, ticks);
} }
@Override
@Nullable
protected RenderLayer getRenderLayer(ButterflyEntity entity, boolean showBody, boolean translucent, boolean showOutline) {
if (showBody && !translucent) {
BlockPos pos = entity.getBlockPos();
if (getBlockLight(entity, pos) < 7 && getSkyLight(entity, pos) < 15) {
return RenderLayers.getEntityTranslucent(getTexture(entity));
}
}
return super.getRenderLayer(entity, showBody, translucent, showOutline);
}
@Override
protected int getSkyLight(ButterflyEntity entity, BlockPos pos) {
return (int)(super.getSkyLight(entity, pos) * (entity.getWorld() instanceof ClientWorld w ? w.getSkyBrightness(MinecraftClient.getInstance().getTickDelta()) : 1));
}
public static class ButterflyEntityModel extends EntityModel<ButterflyEntity> { public static class ButterflyEntityModel extends EntityModel<ButterflyEntity> {
private final ModelPart body; private final ModelPart body;
private final ModelPart leftWing; private final ModelPart leftWing;