Private
Public Access
1
0

Implemented particle spawning for bush. Added workaround for incorrect sky light brightness, checking if moon is visible first.

This commit is contained in:
2025-06-06 00:58:40 +01:00
parent 8d1415a257
commit 5625e34cc6

View File

@ -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) {