From 8ec12880792976678433b2c691c68aeab11b08ae Mon Sep 17 00:00:00 2001 From: DeadlyMC Date: Fri, 11 Oct 2019 18:28:37 +0530 Subject: [PATCH 1/3] flatWorldStructureSpawning --- .../mixins/FlatChunkGeneratorMixin.java | 58 +++++++++++++++++++ .../java/carpet/settings/CarpetSettings.java | 6 ++ src/main/resources/carpet.mixins.json | 1 + 3 files changed, 65 insertions(+) create mode 100644 src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java diff --git a/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java new file mode 100644 index 00000000..b4fdef36 --- /dev/null +++ b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java @@ -0,0 +1,58 @@ +package carpet.mixins; + +import carpet.settings.CarpetSettings; +import net.minecraft.entity.EntityCategory; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IWorld; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.source.BiomeSource; +import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.gen.chunk.FlatChunkGenerator; +import net.minecraft.world.gen.chunk.FlatChunkGeneratorConfig; +import net.minecraft.world.gen.feature.Feature; +import org.spongepowered.asm.mixin.Mixin; + +import java.util.List; + +@Mixin(FlatChunkGenerator.class) +public abstract class FlatChunkGeneratorMixin extends ChunkGenerator +{ + public FlatChunkGeneratorMixin(IWorld iWorld, BiomeSource biome, FlatChunkGeneratorConfig chunkGeneratorConfig) + { + super(iWorld, biome, chunkGeneratorConfig); + } + + @Override + public List getEntitySpawnList(EntityCategory category, BlockPos pos) + { + if (CarpetSettings.flatWorldStructureSpawning) + { + if (Feature.SWAMP_HUT.method_14029(this.world, pos)) + { + if (category == EntityCategory.MONSTER) + { + return Feature.SWAMP_HUT.getMonsterSpawns(); + } + + if (category == EntityCategory.CREATURE) + { + return Feature.SWAMP_HUT.getCreatureSpawns(); + } + } + else if (category == EntityCategory.MONSTER) + { + if (Feature.PILLAGER_OUTPOST.isApproximatelyInsideStructure(this.world, pos)) + { + return Feature.PILLAGER_OUTPOST.getMonsterSpawns(); + } + + if (Feature.OCEAN_MONUMENT.isApproximatelyInsideStructure(this.world, pos)) + { + return Feature.OCEAN_MONUMENT.getMonsterSpawns(); + } + } + } + + return super.getEntitySpawnList(category, pos); + } +} diff --git a/src/main/java/carpet/settings/CarpetSettings.java b/src/main/java/carpet/settings/CarpetSettings.java index 2fff5bb4..f707a39d 100644 --- a/src/main/java/carpet/settings/CarpetSettings.java +++ b/src/main/java/carpet/settings/CarpetSettings.java @@ -445,4 +445,10 @@ public class CarpetSettings category = BUGFIX ) public static boolean horseWanderingFix = false; + + @Rule( + desc = "Allows structure mobs to spawn in flat worlds", + category = {EXPERIMENTAL, CREATIVE} + ) + public static boolean flatWorldStructureSpawning = false; } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 6d0fc634..901905a0 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -67,6 +67,7 @@ "PlayerEntity_parrotMixin", "SaplingBlockMixin", "EntityMixin", + "FlatChunkGeneratorMixin", "GuardianEntityMixin", "DesertPyramidFeatureMixin", From 0957bb9b0cf27be6b622597475a697e4df1980de Mon Sep 17 00:00:00 2001 From: DeadlyMC Date: Fri, 11 Oct 2019 20:19:36 +0530 Subject: [PATCH 2/3] forgot to add desert temple spawns --- src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java index b4fdef36..b76d6cfe 100644 --- a/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java +++ b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java @@ -45,6 +45,14 @@ public abstract class FlatChunkGeneratorMixin extends ChunkGenerator Date: Fri, 11 Oct 2019 20:31:02 +0530 Subject: [PATCH 3/3] added nether and end mobs --- .../mixins/FlatChunkGeneratorMixin.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java index b76d6cfe..91bfc51c 100644 --- a/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java +++ b/src/main/java/carpet/mixins/FlatChunkGeneratorMixin.java @@ -1,6 +1,7 @@ package carpet.mixins; import carpet.settings.CarpetSettings; +import net.minecraft.block.Blocks; import net.minecraft.entity.EntityCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IWorld; @@ -58,6 +59,24 @@ public abstract class FlatChunkGeneratorMixin extends ChunkGenerator