From 239a759e3c058e958636a927c740fc4577419476 Mon Sep 17 00:00:00 2001 From: Micle Date: Mon, 25 May 2026 16:52:54 +0100 Subject: [PATCH] Ported config. Adjusted particle color logic. --- .../firefly_bush_backport/config/Config.java | 26 +++++++++---------- .../particle/FireflyParticle.java | 7 ++--- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/main/java/dev/micle/firefly_bush_backport/config/Config.java b/src/main/java/dev/micle/firefly_bush_backport/config/Config.java index 3ec34fa..a536cab 100644 --- a/src/main/java/dev/micle/firefly_bush_backport/config/Config.java +++ b/src/main/java/dev/micle/firefly_bush_backport/config/Config.java @@ -1,17 +1,18 @@ package dev.micle.firefly_bush_backport.config; import dev.micle.firefly_bush_backport.FireflyBushBackport; -import net.minecraft.util.random.SimpleWeightedRandomList; -import net.minecraft.world.level.Level; +import net.minecraft.util.WeightedList; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.event.config.ModConfigEvent; import org.apache.commons.lang3.tuple.Pair; import java.awt.*; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Mod.EventBusSubscriber(modid = FireflyBushBackport.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) public final class Config { @@ -37,13 +38,13 @@ public final class Config { } public static void register() { - FireflyBushBackport.getFMLJavaModLoadingContext().registerConfig(ModConfig.Type.CLIENT, CLIENT_SPEC); - FireflyBushBackport.getFMLJavaModLoadingContext().registerConfig(ModConfig.Type.COMMON, COMMON_SPEC); - FireflyBushBackport.getFMLJavaModLoadingContext().registerConfig(ModConfig.Type.SERVER, SERVER_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, CLIENT_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, COMMON_SPEC); + ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, SERVER_SPEC); } @SubscribeEvent - public static void onConfigReloadEvent(ModConfigEvent event) { + public static void onConfigReloadEvent(ModConfig.ModConfigEvent event) { if (event.getConfig().getSpec() == CLIENT_SPEC) { Client.onConfigReload(); } else if (event.getConfig().getSpec() == COMMON_SPEC) { @@ -74,7 +75,7 @@ public final class Config { public static ForgeConfigSpec.DoubleValue particleExtraScale; public static ForgeConfigSpec.DoubleValue particleExtraBrightness; private static ForgeConfigSpec.ConfigValue> particleExtraColors; - public static SimpleWeightedRandomList particleExtraColorsWeightedList; + public static WeightedList particleExtraColorsWeightedList; Client(ForgeConfigSpec.Builder builder) { builder.comment("Settings for the firefly bush.").push("bush"); @@ -85,7 +86,7 @@ public final class Config { bushFireflyVerticalRange = builder .defineInRange("bushFireflyVerticalRange", 5.0, 0, Double.MAX_VALUE); bushFireflySpawnMaxBrightnessLevel = builder - .defineInRange("bushFireflySpawnMaxBrightnessLevel", 13, 0, Level.MAX_BRIGHTNESS); + .defineInRange("bushFireflySpawnMaxBrightnessLevel", 13, 0, 15); bushFireflyAmbientSoundChanceOneIn = builder .defineInRange("bushFireflyAmbientSoundChanceOneIn", 30, 0, Integer.MAX_VALUE); @@ -120,18 +121,17 @@ public final class Config { .defineInRange("particleExtraBrightness", 255.0, 0, 255); particleExtraColors = builder .comment("List of color hex values and their weight. Format: ','") - .defineList("particleExtraColors", List.of("#ffffff,1"), Client::isValidColorEntry); + .defineList("particleExtraColors", Stream.of("#ffffff,1").collect(Collectors.toList()), Client::isValidColorEntry); builder.pop(); builder.pop(); } private static void onConfigReload() { - SimpleWeightedRandomList.Builder particleExtraColorsWeightedListBuilder = SimpleWeightedRandomList.builder(); + particleExtraColorsWeightedList = new WeightedList<>(); for (String entry : particleExtraColors.get()) { String[] splitEntry = entry.split(","); - particleExtraColorsWeightedListBuilder.add(Color.decode(splitEntry[0]), Integer.parseInt(splitEntry[1])); + particleExtraColorsWeightedList.add(Color.decode(splitEntry[0]), Integer.parseInt(splitEntry[1])); } - particleExtraColorsWeightedList = particleExtraColorsWeightedListBuilder.build(); } private static boolean isValidColorEntry(Object entry) { 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 6af4afd..562cab1 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 @@ -15,7 +15,6 @@ import net.minecraftforge.api.distmarker.OnlyIn; import javax.annotation.ParametersAreNonnullByDefault; import java.awt.*; -import java.util.Optional; import java.util.Random; import java.util.stream.Stream; @@ -173,10 +172,8 @@ public class FireflyParticle extends SpriteTexturedParticle { fireflyParticle.pickSprite(this.sprite); fireflyParticle.setAlpha(0.0F); - Optional optionalColor = Config.Client.particleExtraColorsWeightedList.getRandomValue(clientLevel.random); - optionalColor.ifPresent(color -> - fireflyParticle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F) - ); + Color color = Config.Client.particleExtraColorsWeightedList.getOne(clientLevel.random); + fireflyParticle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F); return fireflyParticle; }