diff --git a/src/main/java/com/minelittlepony/unicopia/client/particle/SphereParticle.java b/src/main/java/com/minelittlepony/unicopia/client/particle/SphereParticle.java index e36a1b15..cbae1835 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/particle/SphereParticle.java +++ b/src/main/java/com/minelittlepony/unicopia/client/particle/SphereParticle.java @@ -10,7 +10,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; -import com.minelittlepony.client.render.MagicGlow; +import com.minelittlepony.unicopia.client.render.RenderLayers; import com.minelittlepony.unicopia.client.render.model.SphereModel; import com.minelittlepony.unicopia.magic.Caster; import com.minelittlepony.unicopia.particles.ParticleHandle.Attachment; @@ -126,9 +126,9 @@ public class SphereParticle extends Particle implements Attachment { float lerpedRad = MathHelper.lerp(tickDelta, prevRadius, radius); - model.render(matrices, lerpedRad + 0.1F, immediate.getBuffer(MagicGlow.getRenderLayer()), 1, 1, red, green, blue, alpha); - - model.render(matrices, lerpedRad - 0.1F, immediate.getBuffer(MagicGlow.getRenderLayer()), 1, 1, red * 0.9F, green * 0.9F, blue * 0.9F, Math.min(1, alpha + 0.2F)); + VertexConsumer buffer = immediate.getBuffer(RenderLayers.magic()); + model.render(matrices, lerpedRad + 0.1F, buffer, 1, 1, red, green, blue, alpha); + model.render(matrices, lerpedRad - 0.1F, buffer, 1, 1, red * 0.9F, green * 0.9F, blue * 0.9F, Math.min(1, alpha + 0.2F)); immediate.draw(); diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/ButterflyEntityRenderer.java b/src/main/java/com/minelittlepony/unicopia/client/render/ButterflyEntityRenderer.java index a1dec684..a8a2f901 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/ButterflyEntityRenderer.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/ButterflyEntityRenderer.java @@ -5,12 +5,12 @@ import com.minelittlepony.unicopia.entity.ButterflyEntity; import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.minecraft.client.render.entity.EntityRenderDispatcher; -import net.minecraft.client.render.entity.LivingEntityRenderer; +import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; -public class ButterflyEntityRenderer extends LivingEntityRenderer { +public class ButterflyEntityRenderer extends MobEntityRenderer { public ButterflyEntityRenderer(EntityRenderDispatcher manager, EntityRendererRegistry.Context context) { super(manager, new ButterflyEntityModel(), 0.25F); @@ -22,17 +22,18 @@ public class ButterflyEntityRenderer extends LivingEntityRenderer { +public class CloudEntityRenderer extends MobEntityRenderer { private static final Identifier NORMAL = new Identifier("unicopia", "textures/entity/clouds.png"); private static final Identifier RAINING = new Identifier("unicopia", "textures/entity/clouds_storm.png"); @@ -32,27 +28,29 @@ public class CloudEntityRenderer extends LivingEntityRenderer { private ModelPart rightWingOuter; public ButterflyEntityModel() { + super(RenderLayers::entityNoLighting); textureWidth = 64; textureHeight = 64; @@ -58,9 +58,7 @@ public class ButterflyEntityModel extends EntityModel { @Override public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { - RenderSystem.disableLighting(); body.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); - RenderSystem.enableLighting(); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/model/CloudEntityModel.java b/src/main/java/com/minelittlepony/unicopia/client/render/model/CloudEntityModel.java index a8c2404c..a7011a5c 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/model/CloudEntityModel.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/model/CloudEntityModel.java @@ -1,16 +1,19 @@ package com.minelittlepony.unicopia.client.render.model; -import com.google.common.collect.ImmutableList; +import com.minelittlepony.unicopia.client.render.RenderLayers; import com.minelittlepony.unicopia.entity.CloudEntity; import net.minecraft.client.model.ModelPart; -import net.minecraft.client.render.entity.model.CompositeEntityModel; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.util.math.MatrixStack; -public class CloudEntityModel extends CompositeEntityModel { +public class CloudEntityModel extends EntityModel { private final ModelPart body; public CloudEntityModel() { + super(RenderLayers::cloud); body = new ModelPart(this, 0, 0); body.setTextureSize(250, 90); @@ -27,8 +30,8 @@ public class CloudEntityModel extends CompositeEntityModel { } @Override - public Iterable getParts() { - return ImmutableList.of(body); + public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { + body.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/entity/ButterflyEntity.java b/src/main/java/com/minelittlepony/unicopia/entity/ButterflyEntity.java index 35dae17f..d776362b 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/ButterflyEntity.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/ButterflyEntity.java @@ -74,7 +74,7 @@ public class ButterflyEntity extends AmbientEntity { @Override public boolean collides() { - return false; + return true; } @Override @@ -82,7 +82,7 @@ public class ButterflyEntity extends AmbientEntity { super.tick(); Vec3d vel = getVelocity(); - setVelocity(vel.x, getY() * 0.6, vel.z); + setVelocity(vel.x, vel.y * 0.6 + 0.02F, vel.z); } public boolean isResting() { @@ -199,7 +199,7 @@ public class ButterflyEntity extends AmbientEntity { } @Override - public float getEyeHeight(EntityPose pos) { + public float getEyeHeight(EntityPose pose) { return getHeight() / 2; } diff --git a/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java b/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java index e54b1e3d..8198168e 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java @@ -29,7 +29,7 @@ public interface UEntities { EntityType CUCCOON = register("cuccoon", FabricEntityTypeBuilder.create(EntityCategory.MISC, CuccoonEntity::new).size(EntityDimensions.changing(1.5F, 1.6F))); - EntityType BUTTERFLY = register("butterfly", FabricEntityTypeBuilder.create(EntityCategory.AMBIENT, ButterflyEntity::new)); + EntityType BUTTERFLY = register("butterfly", FabricEntityTypeBuilder.create(EntityCategory.AMBIENT, ButterflyEntity::new).size(EntityDimensions.fixed(1, 1))); EntityType THROWN_ITEM = register("thrown_item", FabricEntityTypeBuilder.create(EntityCategory.MISC, ProjectileEntity::new).trackable(100, 2)); EntityType THROWN_SPEAR = register("thrown_spear", FabricEntityTypeBuilder.create(EntityCategory.MISC, SpearEntity::new).trackable(100, 2));