From a8bc7e511f559a24ba19ede64cc47764630ae03d Mon Sep 17 00:00:00 2001 From: OldSerpskiStalker Date: Tue, 24 Sep 2024 18:26:08 +0500 Subject: [PATCH] Added generation of the 'monster_egg:97' block in over world --- .../worldgenerator/BlockMonsterEgg.java | 96 +++++++++++++++++++ ...estone.java => BlockMossyCobblestone.java} | 10 +- ...ackGenerator.java => BlockNetherRack.java} | 9 +- .../configs/ConfigDebugSingleEvents.java | 1 - .../configs/ConfigWorldGenerator.java | 69 +++++++++++-- .../initializer/RegisterOreGenerators.java | 6 +- .../technical/proxy/ClientProxy.java | 3 - 7 files changed, 172 insertions(+), 22 deletions(-) create mode 100644 dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMonsterEgg.java rename dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/{MossyCobblestone.java => BlockMossyCobblestone.java} (89%) rename dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/{NetherRackGenerator.java => BlockNetherRack.java} (90%) diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMonsterEgg.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMonsterEgg.java new file mode 100644 index 0000000..a80d158 --- /dev/null +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMonsterEgg.java @@ -0,0 +1,96 @@ +package org.imesense.dynamicspawncontrol.gameplay.worldgenerator; + +import net.minecraft.block.Block; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.IChunkGenerator; +import net.minecraft.world.gen.feature.WorldGenMinable; +import net.minecraft.world.gen.feature.WorldGenerator; +import net.minecraftforge.fml.common.IWorldGenerator; +import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; +import org.imesense.dynamicspawncontrol.technical.configs.ConfigWorldGenerator; + +import java.util.Objects; +import java.util.Random; + +/** + * + * OldSerpskiStalker: + * ... + */ +public final class BlockMonsterEgg implements IWorldGenerator +{ + /** + * + */ + private final WorldGenerator CLASS_MONSTER_EGG_GENERATOR; + + /** + * + */ + public BlockMonsterEgg() + { + CodeGenericUtils.printInitClassToLog(BlockMonsterEgg.class); + + CLASS_MONSTER_EGG_GENERATOR = new WorldGenMinable( + Objects.requireNonNull(Block.getBlockFromName("monster_egg")).getDefaultState(), 5); + } + + /** + * + * @param gen + * @param world + * @param rand + * @param chunkX + * @param chunkZ + * @param chance + * @param minHeight + * @param maxHeight + */ + private void run(WorldGenerator gen, World world, Random rand, int chunkX, int chunkZ, int chance, int minHeight, int maxHeight) + { + int heightDiff = maxHeight - minHeight + 1; + + for (int i = 0; i < chance; i++) + { + int x = chunkX * 16 + rand.nextInt(16); + int y = minHeight + rand.nextInt(heightDiff); + int z = chunkZ * 16 + rand.nextInt(16); + + x += rand.nextInt(10) - 6 / 2; + z += rand.nextInt(10) - 6 / 2; + + gen.generate(world, rand, new BlockPos(x, y, z)); + } + } + + /** + * + * @param random + * @param chunkX + * @param chunkZ + * @param world + * @param chunkGenerator + * @param chunkProvider + */ + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) + { + switch (world.provider.getDimension()) + { + case 0: + { + run( + CLASS_MONSTER_EGG_GENERATOR, world, random, chunkX, chunkZ, + ConfigWorldGenerator.settingsGenerationBlockNetherRack.BlockNetherRackChanceSpawn, + ConfigWorldGenerator.settingsGenerationBlockNetherRack.GetBlockNetherRackMinHeight, + ConfigWorldGenerator.settingsGenerationBlockNetherRack.GetBlockNetherRackMaxHeight + ); + break; + } + + case 1: case -1: default: break; + } + } +} diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/MossyCobblestone.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMossyCobblestone.java similarity index 89% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/MossyCobblestone.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMossyCobblestone.java index 56dec5c..d1ef0dd 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/MossyCobblestone.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockMossyCobblestone.java @@ -16,8 +16,10 @@ /** * + * OldSerpskiStalker: + * ... */ -public final class MossyCobblestone implements IWorldGenerator +public final class BlockMossyCobblestone implements IWorldGenerator { /** * @@ -27,12 +29,12 @@ public final class MossyCobblestone implements IWorldGenerator /** * */ - public MossyCobblestone() + public BlockMossyCobblestone() { - CodeGenericUtils.printInitClassToLog(MossyCobblestone.class); + CodeGenericUtils.printInitClassToLog(BlockMossyCobblestone.class); CLASS_MOSSY_COBBLESTONE_GENERATOR = new WorldGenMinable( - Objects.requireNonNull(Block.getBlockFromName("mossy_cobblestone")).getDefaultState(), 9); + Objects.requireNonNull(Block.getBlockFromName("mossy_cobblestone")).getDefaultState(), 5); } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/NetherRackGenerator.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockNetherRack.java similarity index 90% rename from dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/NetherRackGenerator.java rename to dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockNetherRack.java index 5428d29..38948ff 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/NetherRackGenerator.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/gameplay/worldgenerator/BlockNetherRack.java @@ -9,7 +9,6 @@ import net.minecraft.world.gen.feature.WorldGenerator; import net.minecraftforge.fml.common.IWorldGenerator; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; -import org.imesense.dynamicspawncontrol.gameplay.gameworld.WorldTime; import org.imesense.dynamicspawncontrol.technical.configs.ConfigWorldGenerator; import java.util.Objects; @@ -20,7 +19,7 @@ * OldSerpskiStalker: * ... */ -public final class NetherRackGenerator implements IWorldGenerator +public final class BlockNetherRack implements IWorldGenerator { /** * @@ -30,12 +29,12 @@ public final class NetherRackGenerator implements IWorldGenerator /** * */ - public NetherRackGenerator() + public BlockNetherRack() { - CodeGenericUtils.printInitClassToLog(NetherRackGenerator.class); + CodeGenericUtils.printInitClassToLog(BlockNetherRack.class); CLASS_NETHER_RACK_GENERATOR = new WorldGenMinable( - Objects.requireNonNull(Block.getBlockFromName("netherrack")).getDefaultState(), 9); + Objects.requireNonNull(Block.getBlockFromName("netherrack")).getDefaultState(), 5); } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java index 3095e78..0cb26ac 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigDebugSingleEvents.java @@ -3,7 +3,6 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; -import org.imesense.dynamicspawncontrol.gameplay.worldgenerator.NetherRackGenerator; import org.imesense.dynamicspawncontrol.technical.customlibrary.Log; import org.imesense.dynamicspawncontrol.technical.proxy.ClientProxy; diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java index 143e439..c71b016 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/configs/ConfigWorldGenerator.java @@ -61,6 +61,27 @@ public static final class settingsGenerationBlockMossyCobblestone public static int GetBlockMossyCobblestoneMaxHeight = 45; } + /** + * + */ + public static final class settingsGenerationBlockMonsterEgg + { + /** + * + */ + public static int BlockMonsterEggChanceSpawn = 10; + + /** + * + */ + public static int GetBlockMonsterEggMinHeight = 7; + + /** + * + */ + public static int GetBlockMonsterEggMaxHeight = 40; + } + /** * */ @@ -96,10 +117,12 @@ public void init(FMLPreInitializationEvent event) @Override public void readProperties(Configuration configuration) { + //-' *************************************************************************************************** + settingsGenerationBlockNetherRack.BlockNetherRackChanceSpawn = this.getConfigValueI( configuration, "Ore Netherrack Chance Spawn", - "ore_generator_over_world", + "config_netherrack", settingsGenerationBlockNetherRack.BlockNetherRackChanceSpawn, 1, 100, @@ -109,7 +132,7 @@ public void readProperties(Configuration configuration) settingsGenerationBlockNetherRack.GetBlockNetherRackMinHeight = this.getConfigValueI( configuration, "Ore Netherrack Min Height", - "ore_generator_over_world", + "config_netherrack", settingsGenerationBlockNetherRack.GetBlockNetherRackMinHeight, 2, 10, @@ -119,17 +142,19 @@ public void readProperties(Configuration configuration) settingsGenerationBlockNetherRack.GetBlockNetherRackMaxHeight = this.getConfigValueI( configuration, "Ore Netherrack Max Height", - "ore_generator_over_world", + "config_netherrack", settingsGenerationBlockNetherRack.GetBlockNetherRackMaxHeight, 10, 20, "The maximal height of 'netherrack' appearing" ); + //-' *************************************************************************************************** + settingsGenerationBlockMossyCobblestone.BlockMossyCobblestoneChanceSpawn = this.getConfigValueI( configuration, "Ore Mossy Cobblestone Chance Spawn", - "ore_generator_over_world", + "config_mossy_cobblestone", settingsGenerationBlockMossyCobblestone.BlockMossyCobblestoneChanceSpawn, 1, 100, @@ -139,7 +164,7 @@ public void readProperties(Configuration configuration) settingsGenerationBlockMossyCobblestone.GetBlockMossyCobblestoneMinHeight = this.getConfigValueI( configuration, "Ore Mossy Cobblestone Min Height", - "ore_generator_over_world", + "config_mossy_cobblestone", settingsGenerationBlockMossyCobblestone.GetBlockMossyCobblestoneMinHeight, 5, 25, @@ -149,12 +174,44 @@ public void readProperties(Configuration configuration) settingsGenerationBlockMossyCobblestone.GetBlockMossyCobblestoneMaxHeight = this.getConfigValueI( configuration, "Ore Mossy Cobblestone Max Height", - "ore_generator_over_world", + "config_mossy_cobblestone", settingsGenerationBlockMossyCobblestone.GetBlockMossyCobblestoneMaxHeight, 25, 65, "The maximal height of 'mossy_cobblestone' appearing" ); + + //-' *************************************************************************************************** + + settingsGenerationBlockMonsterEgg.BlockMonsterEggChanceSpawn = this.getConfigValueI( + configuration, + "Ore Monster Egg Chance Spawn", + "config_monster_egg", + settingsGenerationBlockMonsterEgg.BlockMonsterEggChanceSpawn, + 1, + 100, + "The chance of 'monster_egg' appearing" + ); + + settingsGenerationBlockMonsterEgg.GetBlockMonsterEggMinHeight = this.getConfigValueI( + configuration, + "Ore Monster Egg Min Height", + "config_monster_egg", + settingsGenerationBlockMonsterEgg.GetBlockMonsterEggMinHeight, + 5, + 25, + "The minimal height of 'monster_egg' appearing" + ); + + settingsGenerationBlockMonsterEgg.GetBlockMonsterEggMaxHeight = this.getConfigValueI( + configuration, + "Ore Monster Egg Max Height", + "config_monster_egg", + settingsGenerationBlockMonsterEgg.GetBlockMonsterEggMaxHeight, + 25, + 65, + "The maximal height of 'monster_egg' appearing" + ); } /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterOreGenerators.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterOreGenerators.java index c7d9baa..00fa87f 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterOreGenerators.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/initializer/RegisterOreGenerators.java @@ -1,6 +1,5 @@ package org.imesense.dynamicspawncontrol.technical.initializer; -import net.minecraft.world.gen.feature.WorldGenerator; import net.minecraftforge.fml.common.IWorldGenerator; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.GameRegistry; @@ -18,8 +17,9 @@ public final class RegisterOreGenerators */ private static final Class[] ORE_GENERATOR_CLASSES = { - NetherRackGenerator.class, - MossyCobblestone.class + BlockNetherRack.class, + BlockMossyCobblestone.class, + BlockMonsterEgg.class }; /** diff --git a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java index be182d1..b3d1fdd 100644 --- a/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java +++ b/dynamicspawncontrol-1.12.2/src/main/java/org/imesense/dynamicspawncontrol/technical/proxy/ClientProxy.java @@ -11,9 +11,6 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; -import org.imesense.dynamicspawncontrol.gameplay.worldgenerator.MossyCobblestone; -import org.imesense.dynamicspawncontrol.gameplay.worldgenerator.NetherRackGenerator; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterConfigClasses; import org.imesense.dynamicspawncontrol.debug.CodeGenericUtils; import org.imesense.dynamicspawncontrol.technical.initializer.RegisterOreGenerators;