diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index 59d2d4cf..6d914e66 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -214,6 +214,9 @@ public class CarpetSettings @Rule( desc = "Shulkers will respawn in end cities", category = FEATURE ) public static boolean shulkerSpawningInEndCities = false; + @Rule( desc = "Piglin brutes will respawn in bastion remnants", category = FEATURE ) + public static boolean bruteSpawningInBastionRemnants = false; + @Rule(desc = "Entities pushed or moved into unloaded chunks no longer disappear", category = {EXPERIMENTAL, BUGFIX}) public static boolean unloadedEntityFix = false; diff --git a/src/main/java/carpet/mixins/BastionRemnantFeatureMixin.java b/src/main/java/carpet/mixins/BastionRemnantFeatureMixin.java new file mode 100644 index 00000000..400cd1bc --- /dev/null +++ b/src/main/java/carpet/mixins/BastionRemnantFeatureMixin.java @@ -0,0 +1,34 @@ +package carpet.mixins; + +import carpet.CarpetSettings; + +import com.google.common.collect.Lists; +import com.mojang.serialization.Codec; +import net.minecraft.entity.EntityType; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.feature.BastionRemnantFeature; +import net.minecraft.world.gen.feature.BastionRemnantFeatureConfig; +import net.minecraft.world.gen.feature.StructureFeature; + +import org.spongepowered.asm.mixin.Mixin; + +import java.util.Collections; +import java.util.List; + +@Mixin(BastionRemnantFeature.class) +public abstract class BastionRemnantFeatureMixin extends StructureFeature { + + private static final List spawnList = Lists.newArrayList(new Biome.SpawnEntry(EntityType.PIGLIN_BRUTE, 5, 1, 2), new Biome.SpawnEntry(EntityType.PIGLIN, 10, 2, 4)); + + public BastionRemnantFeatureMixin(Codec codec) { + super(codec); + } + + @Override + public List getMonsterSpawns() + { + if (CarpetSettings.bruteSpawningInBastionRemnants) + return spawnList; + return Collections.emptyList(); + } +} diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index d325191e..207d7d71 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -136,6 +136,7 @@ "EntityNavigation_pathfindingMixin", "EndCityFeatureMixin", + "BastionRemnantFeatureMixin", "InfestedBlockMixin", "PlayerEntityMixin_portalDelayMixin",