From 102640fef65d397209081b5c7202ed37959a6065 Mon Sep 17 00:00:00 2001 From: KiryuEnjoyer Date: Sat, 11 Apr 2026 18:27:13 +0200 Subject: [PATCH 1/3] Zebra Dazzle config --- .../common/levelgen/feature/ZebraDazzleFeature.java | 9 ++++++++- .../environmental/core/EnvironmentalConfig.java | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java index 57df8d3aa..c0fd1d697 100644 --- a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java +++ b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java @@ -4,6 +4,7 @@ import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; import com.teamabnormals.environmental.common.entity.animal.zebroid.Zebra; +import com.teamabnormals.environmental.core.EnvironmentalConfig; import com.teamabnormals.environmental.core.registry.EnvironmentalEntityTypes; import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; @@ -32,7 +33,12 @@ public boolean place(FeaturePlaceContext context) { List> zebras = Lists.newArrayList(); int spawnedZebras = 0; - int zebraCount = 18 + random.nextInt(3) + random.nextInt(3) + random.nextInt(3); + //int zebraCount = 18 + random.nextInt(3) + random.nextInt(3) + random.nextInt(3); + int zebraCount = EnvironmentalConfig.COMMON.zebraGroupSize.get() + + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() + + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() + + EnvironmentalConfig.COMMON.zebraExtraSpawns.get(); + for (int i = 0; i < 64; ++i) { int spawnRange = 8; double d0 = (double) pos.getX() + (random.nextDouble() - random.nextDouble()) * (double) spawnRange + 0.5D; @@ -51,6 +57,7 @@ public boolean place(FeaturePlaceContext context) { } } + //If zebra group is larger than 16, spawn some babies if (zebras.size() > 16) { for (Pair pair : zebras) { Zebra zebra = pair.getFirst(); diff --git a/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java b/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java index d12b98f32..c6ded15ab 100644 --- a/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java +++ b/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java @@ -6,6 +6,7 @@ import net.minecraftforge.common.ForgeConfigSpec.IntValue; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import org.apache.commons.lang3.tuple.Pair; +import org.checkerframework.common.value.qual.IntVal; @EventBusSubscriber(modid = Environmental.MOD_ID) public class EnvironmentalConfig { @@ -27,6 +28,9 @@ public static class Common { public final IntValue minimumAdditionalHoglets; public final IntValue maximumAdditionalHoglets; + public final IntValue zebraGroupSize; + public final IntValue zebraExtraSpawns; + public final BooleanValue muddyPigs; public final BooleanValue naturalMuddyPigs; public final DoubleValue muddyPigDecorationChance; @@ -42,6 +46,10 @@ public static class Common { Common(ForgeConfigSpec.Builder builder) { builder.push("mobs"); + builder.push("zebra"); + zebraGroupSize = builder.comment("Define group size for zebras dazzles").defineInRange("Zebra Group Size", 18, 0, 100); + zebraExtraSpawns = builder.comment("Random range which spawns extra zebras. default is 3. set to 0 to spawn exactly the amount of zebras specified in group size with no variation").defineInRange("Extra Zebra Ranges", 3, 0, 100); + builder.pop(); builder.push("deer"); deerFlowerReproducing = builder.comment("If Deer can reproduce and spread flowers by feeding them an Apple followed by a flower").define("Deer flower reproducing", true); deerAntlerChance = builder.comment("The chance Deer have to spawn with Antlers; 0.0 for never, 1.0 for always").defineInRange("Deer Antler chance", 0.5D, 0.0D, 1.0D); From 481d46985708e0dd163bd624a318d24ac2a1a0f6 Mon Sep 17 00:00:00 2001 From: KiryuEnjoyer Date: Sat, 11 Apr 2026 20:35:32 +0200 Subject: [PATCH 2/3] Fix zebra size check in ZebraDazzleFeature --- .../common/levelgen/feature/ZebraDazzleFeature.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java index c0fd1d697..ec3b9801a 100644 --- a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java +++ b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java @@ -33,7 +33,6 @@ public boolean place(FeaturePlaceContext context) { List> zebras = Lists.newArrayList(); int spawnedZebras = 0; - //int zebraCount = 18 + random.nextInt(3) + random.nextInt(3) + random.nextInt(3); int zebraCount = EnvironmentalConfig.COMMON.zebraGroupSize.get() + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() @@ -57,8 +56,9 @@ public boolean place(FeaturePlaceContext context) { } } - //If zebra group is larger than 16, spawn some babies - if (zebras.size() > 16) { + /* Check if zebra group size is equal to or greater than size set in config. + previously checked for greater than 16? magic numbers bad!*/ + if (zebras.size() >= EnvironmentalConfig.COMMON.zebraGroupSize.get()) { for (Pair pair : zebras) { Zebra zebra = pair.getFirst(); Vec3 zebraPos = pair.getSecond(); From aa76a59a5b188d96da846e727ed5581665650130 Mon Sep 17 00:00:00 2001 From: KiryuEnjoyer Date: Sat, 11 Apr 2026 21:57:05 +0200 Subject: [PATCH 3/3] Add config to completely disable dazzle spawning --- .../levelgen/feature/ZebraDazzleFeature.java | 22 +++++++++++++++---- .../core/EnvironmentalConfig.java | 2 ++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java index ec3b9801a..03e3b49ed 100644 --- a/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java +++ b/src/main/java/com/teamabnormals/environmental/common/levelgen/feature/ZebraDazzleFeature.java @@ -27,16 +27,30 @@ public ZebraDazzleFeature(Codec config) { @Override public boolean place(FeaturePlaceContext context) { + + if(EnvironmentalConfig.COMMON.enableZebraDazzles.get() == false + || (EnvironmentalConfig.COMMON.zebraGroupSize.get() == 0 + && EnvironmentalConfig.COMMON.zebraExtraSpawns.get() == 0)) + { + return false; + } + BlockPos pos = context.origin(); WorldGenLevel level = context.level(); RandomSource random = context.random(); List> zebras = Lists.newArrayList(); int spawnedZebras = 0; - int zebraCount = EnvironmentalConfig.COMMON.zebraGroupSize.get() - + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() - + EnvironmentalConfig.COMMON.zebraExtraSpawns.get() - + EnvironmentalConfig.COMMON.zebraExtraSpawns.get(); + + int extraZebras = EnvironmentalConfig.COMMON.zebraExtraSpawns.get(); + int zebraCount = EnvironmentalConfig.COMMON.zebraGroupSize.get(); + + if(extraZebras > 0) + { + zebraCount += random.nextInt(extraZebras + 1); + zebraCount += random.nextInt(extraZebras + 1); + zebraCount += random.nextInt(extraZebras + 1); + } for (int i = 0; i < 64; ++i) { int spawnRange = 8; diff --git a/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java b/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java index c6ded15ab..6b6ff5434 100644 --- a/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java +++ b/src/main/java/com/teamabnormals/environmental/core/EnvironmentalConfig.java @@ -28,6 +28,7 @@ public static class Common { public final IntValue minimumAdditionalHoglets; public final IntValue maximumAdditionalHoglets; + public final BooleanValue enableZebraDazzles; public final IntValue zebraGroupSize; public final IntValue zebraExtraSpawns; @@ -47,6 +48,7 @@ public static class Common { Common(ForgeConfigSpec.Builder builder) { builder.push("mobs"); builder.push("zebra"); + enableZebraDazzles = builder.comment("Whether or not to spawn Zebra Dazzles").define("Spawn Zebra Dazzles", true); zebraGroupSize = builder.comment("Define group size for zebras dazzles").defineInRange("Zebra Group Size", 18, 0, 100); zebraExtraSpawns = builder.comment("Random range which spawns extra zebras. default is 3. set to 0 to spawn exactly the amount of zebras specified in group size with no variation").defineInRange("Extra Zebra Ranges", 3, 0, 100); builder.pop();