From 5625e34cc613e669a51c83ecaab8dcf0b0711fb9 Mon Sep 17 00:00:00 2001 From: Micle Date: Fri, 6 Jun 2025 00:58:40 +0100 Subject: [PATCH] Implemented particle spawning for bush. Added workaround for incorrect sky light brightness, checking if moon is visible first. --- .../firefly_bush_backport/block/FireflyBushBlock.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java index 0d05009..8a2cab3 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java +++ b/src/main/java/dev/micle/firefly_bush_backport/block/FireflyBushBlock.java @@ -1,5 +1,6 @@ package dev.micle.firefly_bush_backport.block; +import dev.micle.firefly_bush_backport.particle.ModParticles; import dev.micle.firefly_bush_backport.sound.ModSounds; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -36,6 +37,14 @@ public class FireflyBushBlock extends BushBlock implements BonemealableBlock { && level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, blockPos.getX(), blockPos.getZ()) <= blockPos.getY()) { level.playLocalSound(blockPos, ModSounds.FIREFLY_BUSH_IDLE.get(), SoundSource.AMBIENT, 1.0F, 1.0F, false); } + + if ((isMoonVisible(level) || level.getMaxLocalRawBrightness(blockPos) <= FIREFLY_SPAWN_MAX_BRIGHTNESS_LEVEL) && + randomSource.nextDouble() <= FIREFLY_CHANCE_PER_TICK) { + double d0 = blockPos.getX() + randomSource.nextDouble() * FIREFLY_HORIZONTAL_RANGE - FIREFLY_VERTICAL_RANGE; + double d1 = blockPos.getY() + randomSource.nextDouble() * FIREFLY_VERTICAL_RANGE; + double d2 = blockPos.getZ() + randomSource.nextDouble() * FIREFLY_HORIZONTAL_RANGE - FIREFLY_VERTICAL_RANGE; + level.addParticle(ModParticles.FIREFLY.get(), d0, d1, d2, 0.0, 0.0, 0.0); + } } public boolean isMoonVisible(Level level) {