From ffb52b2d8bc5d3709e709f0152110b7d83c4d2ec Mon Sep 17 00:00:00 2001 From: Micle Date: Thu, 5 Jun 2025 23:50:39 +0100 Subject: [PATCH] Implemented particle light color method. --- .../particle/FireflyParticle.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/dev/micle/firefly_bush_backport/particle/FireflyParticle.java b/src/main/java/dev/micle/firefly_bush_backport/particle/FireflyParticle.java index 05e5362..e7d3e5f 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/particle/FireflyParticle.java +++ b/src/main/java/dev/micle/firefly_bush_backport/particle/FireflyParticle.java @@ -3,6 +3,7 @@ package dev.micle.firefly_bush_backport.particle; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleRenderType; import net.minecraft.client.particle.TextureSheetParticle; +import net.minecraft.util.Mth; import org.jetbrains.annotations.NotNull; public class FireflyParticle extends TextureSheetParticle { @@ -27,4 +28,21 @@ public class FireflyParticle extends TextureSheetParticle { public @NotNull ParticleRenderType getRenderType() { return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; } + + @Override + public int getLightColor(float partialTick) { + return (int) (255.0F * getFadeAmount(this.getLifetimeProgress(this.age + partialTick), PARTICLE_FADE_IN_LIGHT_TIME, PARTICLE_FADE_OUT_LIGHT_TIME)); + } + + private static float getFadeAmount(float lifetimeProgress, float fadeIn, float fadeOut) { + if (lifetimeProgress >= 1.0F - fadeIn) { + return (1.0F - lifetimeProgress) / fadeIn; + } else { + return lifetimeProgress <= fadeOut ? lifetimeProgress / fadeOut : 1.0F; + } + } + + private float getLifetimeProgress(float age) { + return Mth.clamp(age / this.lifetime, 0.0F, 1.0F); + } }