diff --git a/src/main/java/com/progwml6/natura/common/config/Config.java b/src/main/java/com/progwml6/natura/common/config/Config.java index 4c83acb9..24699704 100644 --- a/src/main/java/com/progwml6/natura/common/config/Config.java +++ b/src/main/java/com/progwml6/natura/common/config/Config.java @@ -345,7 +345,7 @@ public static boolean syncConfig() public static int amaranthRarity = 1; public static int tigerRarity = 30; public static int willowRarity = 10; - public static int eucalyptusSpawnRarity = 40; + public static int eucalyptusSpawnRarity = 30; public static int eucalyptusSpawnRange = 32; public static int hopseedSpawnRarity = 10; public static int hopseedSpawnRange = 20; diff --git a/src/main/java/com/progwml6/natura/world/NaturaWorld.java b/src/main/java/com/progwml6/natura/world/NaturaWorld.java index eb328784..2b657e91 100644 --- a/src/main/java/com/progwml6/natura/world/NaturaWorld.java +++ b/src/main/java/com/progwml6/natura/world/NaturaWorld.java @@ -1,29 +1,20 @@ package com.progwml6.natura.world; -import org.apache.logging.log4j.Logger; - import com.google.common.eventbus.Subscribe; -import com.progwml6.natura.common.CommonProxy; -import com.progwml6.natura.common.NaturaPulse; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.library.Util; -import com.progwml6.natura.world.worldgen.CloudGenerator; -import com.progwml6.natura.world.worldgen.CropGenerator; -import com.progwml6.natura.world.worldgen.GlowshroomGenerator; -import com.progwml6.natura.world.worldgen.NetherBerryBushesGenerator; -import com.progwml6.natura.world.worldgen.NetherMinableGenerator; -import com.progwml6.natura.world.worldgen.NetherTreesGenerator; -import com.progwml6.natura.world.worldgen.OverworldBerryBushesGenerator; -import com.progwml6.natura.world.worldgen.OverworldTreesGenerator; -import com.progwml6.natura.world.worldgen.VineGenerator; -import com.progwml6.natura.world.worldgen.retrogen.TickHandlerWorldRetrogen; - +import org.apache.logging.log4j.Logger; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.SidedProxy; 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 com.progwml6.natura.common.CommonProxy; +import com.progwml6.natura.common.NaturaPulse; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.library.Util; +import com.progwml6.natura.world.worldgen.*; +import com.progwml6.natura.world.worldgen.retrogen.TickHandlerWorldRetrogen; import slimeknights.mantle.pulsar.pulse.Pulse; @Pulse(id = NaturaWorld.PulseId, description = "Everything that's found in the world and worldgen including the netherite dimension") diff --git a/src/main/java/com/progwml6/natura/world/WorldEvents.java b/src/main/java/com/progwml6/natura/world/WorldEvents.java index 925f2bdf..c85b6db2 100644 --- a/src/main/java/com/progwml6/natura/world/WorldEvents.java +++ b/src/main/java/com/progwml6/natura/world/WorldEvents.java @@ -1,8 +1,5 @@ package com.progwml6.natura.world; -import com.progwml6.natura.Natura; -import com.progwml6.natura.overworld.NaturaOverworld; -import com.progwml6.natura.shared.NaturaCommons; import net.minecraft.entity.EntityCreature; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.ai.EntityAITempt; @@ -16,21 +13,31 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent.EntityInteract; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -public class WorldEvents { +import com.progwml6.natura.Natura; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.shared.NaturaCommons; + +public class WorldEvents +{ // Broken? @SubscribeEvent - public void interactEvent(EntityInteract event) { - if (event.getTarget() instanceof EntityCow || event.getTarget() instanceof EntitySheep) { + public void interactEvent(EntityInteract event) + { + if (event.getTarget() instanceof EntityCow || event.getTarget() instanceof EntitySheep) + { ItemStack equipped = event.getEntityPlayer().getHeldItem(event.getHand()); EntityAnimal creature = (EntityAnimal) event.getTarget(); - if (equipped != null && equipped == NaturaCommons.barley && creature.getGrowingAge() == 0 && !creature.isInLove()) { + if (equipped == NaturaCommons.barley && creature.getGrowingAge() == 0 && !creature.isInLove()) + { EntityPlayer player = event.getEntityPlayer(); - if (!player.capabilities.isCreativeMode) { + if (!player.capabilities.isCreativeMode) + { equipped.shrink(1); - if (equipped.getCount() <= 0) { + if (equipped.getCount() <= 0) + { player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); } } @@ -42,15 +49,16 @@ public void interactEvent(EntityInteract event) { // Broken? @SubscribeEvent - public void onLivingJoin(EntityJoinWorldEvent event) { - if (event.getEntity() instanceof EntityCow || event.getEntity() instanceof EntitySheep) { + public void onLivingJoin(EntityJoinWorldEvent event) + { + if (event.getEntity() instanceof EntityCow || event.getEntity() instanceof EntitySheep) + { ((EntityLiving) event.getEntity()).tasks.addTask(3, new EntityAITempt((EntityCreature) event.getEntity(), 0.25F, NaturaCommons.materials, false)); } - if (Natura.pulseManager.isPulseLoaded(NaturaOverworld.PulseId)) { - if (event.getEntity() instanceof EntityChicken) { - ((EntityLiving) event.getEntity()).tasks.addTask(3, new EntityAITempt((EntityCreature) event.getEntity(), 0.25F, NaturaOverworld.overworldSeeds, false)); - } + if (Natura.pulseManager.isPulseLoaded(NaturaOverworld.PulseId) && event.getEntity() instanceof EntityChicken) + { + ((EntityLiving) event.getEntity()).tasks.addTask(3, new EntityAITempt((EntityCreature) event.getEntity(), 0.25F, NaturaOverworld.overworldSeeds, false)); } } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/CloudGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/CloudGenerator.java index a605ad24..2133af1c 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/CloudGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/CloudGenerator.java @@ -2,11 +2,6 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.shared.NaturaCommons; -import com.progwml6.natura.shared.block.clouds.BlockCloud; -import com.progwml6.natura.world.worldgen.clouds.CloudsGenerator; - import net.minecraft.block.state.IBlockState; import net.minecraft.init.Biomes; import net.minecraft.util.math.BlockPos; @@ -16,9 +11,14 @@ import net.minecraft.world.gen.IChunkGenerator; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.shared.NaturaCommons; +import com.progwml6.natura.shared.block.clouds.BlockCloud; +import com.progwml6.natura.world.worldgen.clouds.CloudsGenerator; + public class CloudGenerator implements IWorldGenerator { - public static CloudGenerator INSTANCE = new CloudGenerator(); + public static final CloudGenerator INSTANCE = new CloudGenerator(); //@formatter:off CloudsGenerator smallWhiteCloudGen; @@ -93,7 +93,9 @@ public void retroGen(Random random, int chunkX, int chunkZ, World world) public void generateOverworld(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; @@ -104,11 +106,6 @@ public void generateOverworld(Random random, int chunkX, int chunkZ, World world Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - if (biome == null) - { - return; - } - if (Config.generateOverworldClouds && biome.getRainfall() > 0.15f && random.nextInt(Config.cloudSpawnRarity) == 0 && world.provider.getDimension() != 1 && this.shouldGenerateInDimension(world.provider.getDimension(), Config.cloudBlacklist)) { xSpawn = xPos + random.nextInt(16); @@ -139,22 +136,15 @@ else if (size < 11) public void generateNether(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; - BlockPos chunkPos = new BlockPos(xPos, 0, zPos); - BlockPos position; - Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - - if (biome == null) - { - return; - } - if (world.provider.doesWaterVaporize()) { if (Config.generateAshClouds && random.nextInt(Config.ashSpawnRarity) == 0 && this.shouldGenerateInDimension(world.provider.getDimension(), Config.ashBlacklist)) @@ -223,7 +213,9 @@ else if (size < 11) public void generateEnd(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; @@ -234,11 +226,6 @@ public void generateEnd(Random random, int chunkX, int chunkZ, World world) Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - if (biome == null) - { - return; - } - if (Config.generateDarkClouds && biome == Biomes.SKY && world.provider.getDimension() == 1 && random.nextInt(4) == 0 && this.shouldGenerateInDimension(world.provider.getDimension(), Config.darkCloudBlacklist)) { xSpawn = xPos + random.nextInt(16); diff --git a/src/main/java/com/progwml6/natura/world/worldgen/CropGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/CropGenerator.java index 5c6da975..dd5257b1 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/CropGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/CropGenerator.java @@ -2,11 +2,6 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.overworld.NaturaOverworld; -import com.progwml6.natura.overworld.block.crops.BlockNaturaBarley; -import com.progwml6.natura.overworld.block.crops.BlockNaturaCotton; - import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -15,9 +10,14 @@ import net.minecraft.world.gen.IChunkGenerator; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.overworld.block.crops.BlockNaturaBarley; +import com.progwml6.natura.overworld.block.crops.BlockNaturaCotton; + public class CropGenerator implements IWorldGenerator { - public static CropGenerator INSTANCE = new CropGenerator(); + public static final CropGenerator INSTANCE = new CropGenerator(); @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) @@ -50,13 +50,9 @@ public void generateOverworld(Random random, int chunkX, int chunkZ, World world final int posY = random.nextInt(128) + Config.seaLevel; final int posZ = zPos + random.nextInt(16); final BlockPos newPos = new BlockPos(posX, posY, posZ); - //final BlockPos newPos = WorldGenHelper.getGroundPos(world, posX, posZ); - if (newPos != null) - { - this.generateBarley(world, random, newPos); - this.generateBarley(world, random, newPos); - } + this.generateBarley(world, random, newPos); + this.generateBarley(world, random, newPos); } // Cotton @@ -66,13 +62,9 @@ public void generateOverworld(Random random, int chunkX, int chunkZ, World world final int posZ = zPos + random.nextInt(16); final int posY = random.nextInt(128) + Config.seaLevel; final BlockPos newPos = new BlockPos(posX, posY, posZ); - //final BlockPos newPos = WorldGenHelper.getGroundPos(world, posX, posZ); - if (newPos != null) - { - this.generateCotton(world, random, newPos); - this.generateCotton(world, random, newPos); - } + this.generateCotton(world, random, newPos); + this.generateCotton(world, random, newPos); } // Bluebells @@ -82,17 +74,13 @@ public void generateOverworld(Random random, int chunkX, int chunkZ, World world final int posZ = zPos + random.nextInt(16); final int posY = random.nextInt(128) + Config.seaLevel; final BlockPos newPos = new BlockPos(posX, posY, posZ); - //final BlockPos newPos = WorldGenHelper.getGroundPos(world, posX, posZ); - if (newPos != null) - { - this.generateBluebells(world, random, newPos); - } + this.generateBluebells(world, random, newPos); } } } - public boolean generateBarley(World world, Random random, BlockPos position) + public void generateBarley(World world, Random random, BlockPos position) { IBlockState state = NaturaOverworld.barleyCrop.getDefaultState().withProperty(BlockNaturaBarley.AGE, 3); @@ -105,11 +93,9 @@ public boolean generateBarley(World world, Random random, BlockPos position) world.setBlockState(blockpos, state, 2); } } - - return true; } - public boolean generateCotton(World world, Random random, BlockPos position) + public void generateCotton(World world, Random random, BlockPos position) { IBlockState state = NaturaOverworld.cottonCrop.getDefaultState().withProperty(BlockNaturaCotton.AGE, 4); @@ -122,11 +108,9 @@ public boolean generateCotton(World world, Random random, BlockPos position) world.setBlockState(blockpos, state, 2); } } - - return true; } - public boolean generateBluebells(World world, Random random, BlockPos position) + public void generateBluebells(World world, Random random, BlockPos position) { IBlockState state = NaturaOverworld.bluebellsFlower.getDefaultState(); @@ -139,8 +123,6 @@ public boolean generateBluebells(World world, Random random, BlockPos position) world.setBlockState(blockpos, state, 2); } } - - return true; } public boolean goodClimate(Biome biome, float minTemp, float maxTemp, float minRain, float maxRain) @@ -148,12 +130,7 @@ public boolean goodClimate(Biome biome, float minTemp, float maxTemp, float minR float temp = biome.getDefaultTemperature(); float rain = biome.getRainfall(); - if (minTemp <= temp && temp <= maxTemp && minRain <= rain && rain <= maxRain) - { - return true; - } - - return false; + return minTemp <= temp && temp <= maxTemp && minRain <= rain && rain <= maxRain; } public boolean shouldGenerateInDimension(int dimension) diff --git a/src/main/java/com/progwml6/natura/world/worldgen/GlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/GlowshroomGenerator.java index 0f404677..56d9a376 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/GlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/GlowshroomGenerator.java @@ -2,14 +2,6 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.nether.block.shrooms.BlockNetherGlowshroom; -import com.progwml6.natura.world.worldgen.glowshroom.nether.BabyGlowshroomGenerator; -import com.progwml6.natura.world.worldgen.glowshroom.nether.BlueGlowshroomGenerator; -import com.progwml6.natura.world.worldgen.glowshroom.nether.GreenGlowshroomGenerator; -import com.progwml6.natura.world.worldgen.glowshroom.nether.PurpleGlowshroomGenerator; - import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; @@ -21,9 +13,17 @@ import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.nether.block.shrooms.BlockNetherGlowshroom; +import com.progwml6.natura.world.worldgen.glowshroom.nether.BabyGlowshroomGenerator; +import com.progwml6.natura.world.worldgen.glowshroom.nether.BlueGlowshroomGenerator; +import com.progwml6.natura.world.worldgen.glowshroom.nether.GreenGlowshroomGenerator; +import com.progwml6.natura.world.worldgen.glowshroom.nether.PurpleGlowshroomGenerator; + public class GlowshroomGenerator implements IWorldGenerator { - public static GlowshroomGenerator INSTANCE = new GlowshroomGenerator(); + public static final GlowshroomGenerator INSTANCE = new GlowshroomGenerator(); //@formatter:off final GreenGlowshroomGenerator greenGlowshroomGen; @@ -61,7 +61,9 @@ public void retroGen(Random random, int chunkX, int chunkZ, World world) public void generateNether(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; @@ -72,75 +74,81 @@ public void generateNether(Random random, int chunkX, int chunkZ, World world) Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - if (biome == null) - { - return; - } - - if (this.shouldGenerateInDimension(world.provider.getDimension())) + if (this.shouldGenerateInDimension(world.provider.getDimension()) && BiomeDictionary.hasType(biome, Type.NETHER)) { - if (BiomeDictionary.hasType(biome, Type.NETHER)) + if (Config.generateGlowshroomtree && random.nextInt(35) == 0) { - if (Config.generateGlowshroomtree && random.nextInt(35) == 0) + for (int iter = 0; iter < 5; iter++) { - for (int iter = 0; iter < 5; iter++) - { - xSpawn = xPos + random.nextInt(24) - 4; - zSpawn = zPos + random.nextInt(24) - 4; - ySpawn = this.findGround(world, xSpawn, random.nextInt(64) + 32, zSpawn); - position = new BlockPos(xSpawn, ySpawn, zSpawn); + xSpawn = xPos + random.nextInt(24) - 4; + zSpawn = zPos + random.nextInt(24) - 4; + ySpawn = this.findGround(world, xSpawn, random.nextInt(64) + 32, zSpawn); + position = new BlockPos(xSpawn, ySpawn, zSpawn); - if (random.nextInt(3) == 0) + if (random.nextInt(3) == 0) + { + this.purpleGlowshroomGen.generateShroom(random, world, position); + } + else + { + if (random.nextInt(2) == 0) { - this.purpleGlowshroomGen.generateShroom(random, world, position); + this.greenGlowshroomGen.generateShroom(random, world, position); } else { - if (random.nextInt(2) == 0) - { - this.greenGlowshroomGen.generateShroom(random, world, position); - } - else - { - this.blueGlowshroomGen.generateShroom(random, world, position); - } + this.blueGlowshroomGen.generateShroom(random, world, position); } } } + } - if (Config.generateGreenglowshroom && random.nextInt(7) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(128); - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); + if (Config.generateGreenglowshroom && random.nextInt(7) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(128); + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); - this.greenBabyGlowshroomGen.generateShroom(random, world, position); - } + this.greenBabyGlowshroomGen.generateShroom(random, world, position); + } - if (Config.generatePurpleglowshroom && random.nextInt(8) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(128); - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); + if (Config.generatePurpleglowshroom && random.nextInt(8) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(128); + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); - this.purpleBabyGlowshroomGen.generateShroom(random, world, position); - } + this.purpleBabyGlowshroomGen.generateShroom(random, world, position); + } - if (Config.generateBlueglowshroom && random.nextInt(9) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(128); - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); + if (Config.generateBlueglowshroom && random.nextInt(9) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(128); + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); - this.blueBabyGlowshroomGen.generateShroom(random, world, position); - } + this.blueBabyGlowshroomGen.generateShroom(random, world, position); } + } } + public boolean shouldGenerateInDimension(int dimension) + { + for (int dimensionId : Config.netherWorldGenBlacklist) + { + if (dimension == dimensionId) + { + return false; + } + } + + return true; + } + int findGround(World world, int x, int y, int z) { boolean foundGround = false; @@ -156,23 +164,9 @@ int findGround(World world, int x, int y, int z) { foundGround = true; } - } - while (!foundGround); + } while (!foundGround); return height + 1; } - public boolean shouldGenerateInDimension(int dimension) - { - for (int dimensionId : Config.netherWorldGenBlacklist) - { - if (dimension == dimensionId) - { - return false; - } - } - - return true; - } - } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/NetherBerryBushesGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/NetherBerryBushesGenerator.java index 83bc8dfe..c96b7427 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/NetherBerryBushesGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/NetherBerryBushesGenerator.java @@ -2,19 +2,19 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.world.worldgen.berry.nether.NetherBerryBushGenerator; - 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.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.world.worldgen.berry.nether.NetherBerryBushGenerator; + public class NetherBerryBushesGenerator implements IWorldGenerator { - public static NetherBerryBushesGenerator INSTANCE = new NetherBerryBushesGenerator(); + public static final NetherBerryBushesGenerator INSTANCE = new NetherBerryBushesGenerator(); //@formatter:off NetherBerryBushGenerator blightberryBushGen; @@ -46,57 +46,57 @@ public void retroGen(Random random, int chunkX, int chunkZ, World world) public void generateNether(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; BlockPos position; - if (this.shouldGenerateInDimension(world.provider.getDimension())) + if (this.shouldGenerateInDimension(world.provider.getDimension()) && world.provider.doesWaterVaporize()) { - if (world.provider.doesWaterVaporize()) + if (Config.generateBlightberries && random.nextInt(Config.blightberrySpawnRarity) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(Config.blightberrySpawnRange) + 16; + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); + + this.blightberryBushGen.generateBush(random, world, position); + } + + if (Config.generateDuskberries && random.nextInt(Config.duskberrySpawnRarity) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(Config.duskberrySpawnRange) + 16; + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); + + this.duskberryBushGen.generateBush(random, world, position); + } + + if (Config.generateSkyberries && random.nextInt(Config.skyberrySpawnRarity) == 0) { - if (Config.generateBlightberries && random.nextInt(Config.blightberrySpawnRarity) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(Config.blightberrySpawnRange) + 16; - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); - - this.blightberryBushGen.generateBush(random, world, position); - } - - if (Config.generateDuskberries && random.nextInt(Config.duskberrySpawnRarity) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(Config.duskberrySpawnRange) + 16; - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); - - this.duskberryBushGen.generateBush(random, world, position); - } - - if (Config.generateSkyberries && random.nextInt(Config.skyberrySpawnRarity) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(Config.skyberrySpawnRange) + 16; - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); - - this.skyberryBushGen.generateBush(random, world, position); - } - - if (Config.generateStingberries && random.nextInt(Config.stingberrySpawnRarity) == 0) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = random.nextInt(Config.stingberrySpawnRange) + 16; - zSpawn = zPos + random.nextInt(16); - position = new BlockPos(xSpawn, ySpawn, zSpawn); - - this.stingberryBushGen.generateBush(random, world, position); - } + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(Config.skyberrySpawnRange) + 16; + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); + + this.skyberryBushGen.generateBush(random, world, position); } + + if (Config.generateStingberries && random.nextInt(Config.stingberrySpawnRarity) == 0) + { + xSpawn = xPos + random.nextInt(16); + ySpawn = random.nextInt(Config.stingberrySpawnRange) + 16; + zSpawn = zPos + random.nextInt(16); + position = new BlockPos(xSpawn, ySpawn, zSpawn); + + this.stingberryBushGen.generateBush(random, world, position); + } + } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/NetherMinableGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/NetherMinableGenerator.java index f7eb5ae9..64b63549 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/NetherMinableGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/NetherMinableGenerator.java @@ -2,9 +2,6 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.nether.NaturaNether; - import net.minecraft.block.state.pattern.BlockMatcher; import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; @@ -17,9 +14,12 @@ import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.nether.NaturaNether; + public class NetherMinableGenerator implements IWorldGenerator { - public static NetherMinableGenerator INSTANCE = new NetherMinableGenerator(); + public static final NetherMinableGenerator INSTANCE = new NetherMinableGenerator(); //@formatter:off WorldGenMinable tainedSoilGen; @@ -47,7 +47,9 @@ public void retroGen(Random random, int chunkX, int chunkZ, World world) public void generateNether(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16; int yPos = world.getSeaLevel() / 2 + 1 - 5; @@ -57,39 +59,32 @@ public void generateNether(Random random, int chunkX, int chunkZ, World world) Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - if (biome == null) - { - return; - } - - if (this.shouldGenerateInDimension(world.provider.getDimension())) + if (this.shouldGenerateInDimension(world.provider.getDimension()) && BiomeDictionary.hasType(biome, Type.NETHER)) { - if (BiomeDictionary.hasType(biome, Type.NETHER)) + if (Config.generateTaintedSoil) { - if (Config.generateTaintedSoil) + for (int i = 0; i < Config.tainedSoilClusterCount; i++) { - for (int i = 0; i < Config.tainedSoilClusterCount; i++) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = yPos + random.nextInt(10); - zSpawn = zPos + random.nextInt(16); - - this.tainedSoilGen.generate(world, random, new BlockPos(xSpawn, ySpawn, zSpawn)); - } + xSpawn = xPos + random.nextInt(16); + ySpawn = yPos + random.nextInt(10); + zSpawn = zPos + random.nextInt(16); + + this.tainedSoilGen.generate(world, random, new BlockPos(xSpawn, ySpawn, zSpawn)); } + } - if (Config.generateHeatSand) + if (Config.generateHeatSand) + { + for (int i = 0; i < Config.heatSandClusterCount; i++) { - for (int i = 0; i < Config.heatSandClusterCount; i++) - { - xSpawn = xPos + random.nextInt(16); - ySpawn = yPos + random.nextInt(10); - zSpawn = zPos + random.nextInt(16); - - this.heatSandGen.generate(world, random, new BlockPos(xSpawn, ySpawn, zSpawn)); - } + xSpawn = xPos + random.nextInt(16); + ySpawn = yPos + random.nextInt(10); + zSpawn = zPos + random.nextInt(16); + + this.heatSandGen.generate(world, random, new BlockPos(xSpawn, ySpawn, zSpawn)); } } + } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/NetherTreesGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/NetherTreesGenerator.java index 0568f6df..c9e4a0ec 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/NetherTreesGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/NetherTreesGenerator.java @@ -119,7 +119,6 @@ public void generateNether(Random random, int chunkX, int chunkZ, World world) this.ghostwoodTreeGen.generateTree(random, world, position); } } - } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreesGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreesGenerator.java index 1c5e0aff..0e8555ec 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreesGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/OverworldTreesGenerator.java @@ -215,7 +215,7 @@ public void generateOverworld(Random random, int chunkX, int chunkZ, World world this.hopseedTreeGen.generateTree(random, world, position); } - if (Config.generateEucalyptus && random.nextInt(Config.eucalyptusSpawnRarity) < 10) + if (Config.generateEucalyptus && random.nextInt(Config.eucalyptusSpawnRarity) == 0) { xSpawn = xPos + random.nextInt(16); ySpawn = random.nextInt(Config.eucalyptusSpawnRange) + Config.seaLevel; diff --git a/src/main/java/com/progwml6/natura/world/worldgen/VineGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/VineGenerator.java index de2762d8..893504bb 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/VineGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/VineGenerator.java @@ -2,10 +2,6 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.world.worldgen.vine.ThornvinesGenerator; - import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -16,9 +12,13 @@ import net.minecraftforge.common.BiomeDictionary.Type; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.world.worldgen.vine.ThornvinesGenerator; + public class VineGenerator implements IWorldGenerator { - public static VineGenerator INSTANCE = new VineGenerator(); + public static final VineGenerator INSTANCE = new VineGenerator(); //@formatter:off ThornvinesGenerator thornvinesGen; @@ -44,7 +44,9 @@ public void retroGen(Random random, int chunkX, int chunkZ, World world) public void generateNether(Random random, int chunkX, int chunkZ, World world) { - int xSpawn, ySpawn, zSpawn; + int xSpawn; + int ySpawn; + int zSpawn; int xPos = chunkX * 16 + 8; int zPos = chunkZ * 16 + 8; @@ -55,34 +57,23 @@ public void generateNether(Random random, int chunkX, int chunkZ, World world) Biome biome = world.getChunk(chunkPos).getBiome(chunkPos, world.getBiomeProvider()); - if (biome == null) + if (this.shouldGenerateInDimension(world.provider.getDimension()) && BiomeDictionary.hasType(biome, Type.NETHER) && Config.generateThornvines && random.nextInt(Config.thornSpawnRarity) == 0) { - return; - } + ySpawn = 108; - if (this.shouldGenerateInDimension(world.provider.getDimension())) - { - if (BiomeDictionary.hasType(biome, Type.NETHER)) + for (int i = 0; i < 20; i++) { - if (Config.generateThornvines && random.nextInt(Config.thornSpawnRarity) == 0) + IBlockState vine = this.thornvinesGen.getRandomizedVine(random); + xSpawn = xPos + random.nextInt(16); + zSpawn = zPos + random.nextInt(16); + int size = random.nextInt(25) + 1; + int height = ySpawn - (random.nextInt(size) + random.nextInt(size) + random.nextInt(size)); + + for (int yHeight = ySpawn; yHeight > height; yHeight--) { - ySpawn = 108; - - for (int i = 0; i < 20; i++) - { - IBlockState vine = this.thornvinesGen.getRandomizedVine(random); - xSpawn = xPos + random.nextInt(16); - zSpawn = zPos + random.nextInt(16); - int size = random.nextInt(25) + 1; - int height = ySpawn - (random.nextInt(size) + random.nextInt(size) + random.nextInt(size)); - - for (int yHeight = ySpawn; yHeight > height; yHeight--) - { - position = new BlockPos(xSpawn, yHeight, zSpawn); - - this.thornvinesGen.generateVines(random, world, position, vine); - } - } + position = new BlockPos(xSpawn, yHeight, zSpawn); + + this.thornvinesGen.generateVines(world, position, vine); } } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/BaseGlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/BaseGlowshroomGenerator.java index 1ffa4d03..d24a96c5 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/BaseGlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/BaseGlowshroomGenerator.java @@ -13,7 +13,6 @@ public class BaseGlowshroomGenerator implements IWorldGenerator @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { - } public void generateShroom(Random random, World world, BlockPos pos) diff --git a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BabyGlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BabyGlowshroomGenerator.java index f309b051..20fe9f37 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BabyGlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BabyGlowshroomGenerator.java @@ -2,14 +2,12 @@ import java.util.Random; -import com.progwml6.natura.nether.block.shrooms.BlockNetherGlowshroom; -import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; - import net.minecraft.block.state.IBlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.IChunkGenerator; + +import com.progwml6.natura.nether.block.shrooms.BlockNetherGlowshroom; +import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; public class BabyGlowshroomGenerator extends BaseGlowshroomGenerator { @@ -20,11 +18,6 @@ public BabyGlowshroomGenerator(IBlockState glowshroom) this.glowshroom = glowshroom; } - @Override - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) - { - } - @Override public void generateShroom(Random random, World world, BlockPos pos) { diff --git a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BlueGlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BlueGlowshroomGenerator.java index 6de0ef26..2bbcf45c 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BlueGlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/BlueGlowshroomGenerator.java @@ -2,19 +2,19 @@ import java.util.Random; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; -import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; - import net.minecraft.block.Block; +import net.minecraft.block.BlockMycelium; +import net.minecraft.block.BlockNetherrack; +import net.minecraft.block.BlockSoulSand; import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.IChunkGenerator; + +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; +import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; public class BlueGlowshroomGenerator extends BaseGlowshroomGenerator { @@ -25,11 +25,6 @@ public BlueGlowshroomGenerator(IBlockState glowshroom) this.glowshroom = glowshroom; } - @Override - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) - { - } - @Override public void generateShroom(Random random, World world, BlockPos pos) { @@ -70,17 +65,11 @@ public void generateShroom(Random random, World world, BlockPos pos) } } } - if (!flag) - { - } - else + if (flag) { Block block1 = world.getBlockState(pos.down()).getBlock(); - if (block1 != Blocks.MYCELIUM && block1 != Blocks.NETHERRACK && block1 != Blocks.SOUL_SAND && block1 != NaturaNether.netherTaintedSoil) - { - } - else + if (block1 instanceof BlockMycelium || block1 instanceof BlockNetherrack || block1 instanceof BlockSoulSand || block1 == NaturaNether.netherTaintedSoil) { int k2 = pos.getY() + height - 3; diff --git a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/GreenGlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/GreenGlowshroomGenerator.java index 2b76aea0..3f526600 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/GreenGlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/GreenGlowshroomGenerator.java @@ -2,19 +2,19 @@ import java.util.Random; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; -import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; - import net.minecraft.block.Block; +import net.minecraft.block.BlockMycelium; +import net.minecraft.block.BlockNetherrack; +import net.minecraft.block.BlockSoulSand; import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.IChunkGenerator; + +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; +import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; public class GreenGlowshroomGenerator extends BaseGlowshroomGenerator { @@ -25,11 +25,6 @@ public GreenGlowshroomGenerator(IBlockState glowshroom) this.glowshroom = glowshroom; } - @Override - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) - { - } - @Override public void generateShroom(Random random, World world, BlockPos pos) { @@ -70,17 +65,11 @@ public void generateShroom(Random random, World world, BlockPos pos) } } } - if (!flag) - { - } - else + if (flag) { Block block1 = world.getBlockState(pos.down()).getBlock(); - if (block1 != Blocks.MYCELIUM && block1 != Blocks.NETHERRACK && block1 != Blocks.SOUL_SAND && block1 != NaturaNether.netherTaintedSoil) - { - } - else + if (block1 instanceof BlockMycelium || block1 instanceof BlockNetherrack || block1 instanceof BlockSoulSand || block1 == NaturaNether.netherTaintedSoil) { int k2 = pos.getY() + height; diff --git a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/PurpleGlowshroomGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/PurpleGlowshroomGenerator.java index 5bd9605d..bc6d9c3d 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/PurpleGlowshroomGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/glowshroom/nether/PurpleGlowshroomGenerator.java @@ -2,19 +2,19 @@ import java.util.Random; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; -import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; -import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; - import net.minecraft.block.Block; +import net.minecraft.block.BlockMycelium; +import net.minecraft.block.BlockNetherrack; +import net.minecraft.block.BlockSoulSand; import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos.MutableBlockPos; import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.IChunkGenerator; + +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom; +import com.progwml6.natura.nether.block.shrooms.BlockNetherLargeGlowshroom.EnumType; +import com.progwml6.natura.world.worldgen.glowshroom.BaseGlowshroomGenerator; public class PurpleGlowshroomGenerator extends BaseGlowshroomGenerator { @@ -25,11 +25,6 @@ public PurpleGlowshroomGenerator(IBlockState glowshroom) this.glowshroom = glowshroom; } - @Override - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) - { - } - @Override public void generateShroom(Random random, World world, BlockPos pos) { @@ -70,17 +65,11 @@ public void generateShroom(Random random, World world, BlockPos pos) } } } - if (!flag) - { - } - else + if (flag) { Block block1 = world.getBlockState(pos.down()).getBlock(); - if (block1 != Blocks.MYCELIUM && block1 != Blocks.NETHERRACK && block1 != Blocks.SOUL_SAND && block1 != NaturaNether.netherTaintedSoil) - { - } - else + if (block1 instanceof BlockMycelium || block1 instanceof BlockNetherrack || block1 instanceof BlockSoulSand || block1 == NaturaNether.netherTaintedSoil) { int k2 = pos.getY() + height - 1; diff --git a/src/main/java/com/progwml6/natura/world/worldgen/retrogen/TickHandlerWorldRetrogen.java b/src/main/java/com/progwml6/natura/world/worldgen/retrogen/TickHandlerWorldRetrogen.java index 7898993b..25776499 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/retrogen/TickHandlerWorldRetrogen.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/retrogen/TickHandlerWorldRetrogen.java @@ -4,21 +4,6 @@ import java.util.Random; import com.google.common.collect.LinkedListMultimap; -import com.progwml6.natura.Natura; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.nether.NaturaNether; -import com.progwml6.natura.overworld.NaturaOverworld; -import com.progwml6.natura.world.NaturaWorld; -import com.progwml6.natura.world.worldgen.CloudGenerator; -import com.progwml6.natura.world.worldgen.CropGenerator; -import com.progwml6.natura.world.worldgen.GlowshroomGenerator; -import com.progwml6.natura.world.worldgen.NetherBerryBushesGenerator; -import com.progwml6.natura.world.worldgen.NetherMinableGenerator; -import com.progwml6.natura.world.worldgen.NetherTreesGenerator; -import com.progwml6.natura.world.worldgen.OverworldBerryBushesGenerator; -import com.progwml6.natura.world.worldgen.OverworldTreesGenerator; -import com.progwml6.natura.world.worldgen.VineGenerator; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; @@ -27,26 +12,30 @@ import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; import net.minecraftforge.fml.common.gameevent.TickEvent.WorldTickEvent; +import com.progwml6.natura.Natura; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.nether.NaturaNether; +import com.progwml6.natura.overworld.NaturaOverworld; +import com.progwml6.natura.world.NaturaWorld; +import com.progwml6.natura.world.worldgen.*; + public class TickHandlerWorldRetrogen { - public static TickHandlerWorldRetrogen INSTANCE = new TickHandlerWorldRetrogen(); - + public static final TickHandlerWorldRetrogen INSTANCE = new TickHandlerWorldRetrogen(); + private final LinkedListMultimap chunkRegenList = LinkedListMultimap.create(); // Overworld //@formatter:off private OverworldTreesGenerator overworldTreesGenerator; private OverworldBerryBushesGenerator overworldBerryBushesGenerator; private CloudGenerator cloudGenerator; private CropGenerator cropGenerator; - // Nether private NetherTreesGenerator netherTreesGenerator; private NetherBerryBushesGenerator netherBerryBushesGenerator; private GlowshroomGenerator glowshroomGenerator; private VineGenerator vineGenerator; - private NetherMinableGenerator netherMineableGenerator; //@formatter:on - - private final LinkedListMultimap chunkRegenList = LinkedListMultimap.create(); + private NetherMinableGenerator netherMineableGenerator; public TickHandlerWorldRetrogen() { @@ -141,7 +130,7 @@ public void chunkLoadEventHandler(ChunkDataEvent.Load event) { NBTTagCompound tag = (NBTTagCompound) event.getData().getTag(NaturaWorld.PulseId); - if (tag == null || !tag.hasKey("retrogen")) + if (!tag.hasKey("retrogen")) { ChunkCoords coords = new ChunkCoords(event.getChunk()); this.chunkRegenList.put(coords.dimension, coords); diff --git a/src/main/java/com/progwml6/natura/world/worldgen/saguaro/SaguaroGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/saguaro/SaguaroGenerator.java index 03b49f98..b0db3bda 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/saguaro/SaguaroGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/saguaro/SaguaroGenerator.java @@ -2,12 +2,9 @@ import java.util.Random; -import com.progwml6.natura.common.config.Config; -import com.progwml6.natura.overworld.NaturaOverworld; - import net.minecraft.block.Block; +import net.minecraft.block.BlockSand; import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.WorldType; @@ -15,19 +12,17 @@ import net.minecraft.world.gen.IChunkGenerator; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.common.config.Config; +import com.progwml6.natura.overworld.NaturaOverworld; + public class SaguaroGenerator implements IWorldGenerator { - private Random rand; - - private World world; - - private BlockPos basePos = BlockPos.ORIGIN; - public final IBlockState saguaro; - public final boolean findGround; - public final boolean isBaby; + private Random rand; + private World world; + private BlockPos basePos = BlockPos.ORIGIN; public SaguaroGenerator(IBlockState saguaro, boolean findGround, boolean isBaby) { @@ -39,7 +34,6 @@ public SaguaroGenerator(IBlockState saguaro, boolean findGround, boolean isBaby) @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { - } public void generateSaguaro(Random random, World worldIn, BlockPos position) @@ -67,64 +61,11 @@ public void generateSaguaro(Random random, World worldIn, BlockPos position) this.rand = new Random(random.nextLong()); - if (!this.validSaguaroLocation()) - { - this.world = null; //Fix vanilla Mem leak, holds latest world - } - else + if (this.validSaguaroLocation()) { this.generateSaguaro(); - this.world = null; //Fix vanilla Mem leak, holds latest world - } - } - - private boolean blocksMatch(World world, BlockPos pos) - { - Block underBlock = world.getBlockState(pos.down()).getBlock(); - - if (underBlock == Blocks.SAND) - { - return true; - } - else - { - return false; - } - } - - private boolean validSaguaroLocation() - { - BlockPos down = this.basePos.down(); - - IBlockState currentState = this.world.getBlockState(this.basePos); - Block currentBlock = currentState.getBlock(); - - IBlockState stateBelow = this.world.getBlockState(down); - Block blockBelow = stateBelow.getBlock(); - - if (!this.world.isAirBlock(this.basePos)) - { - if (currentBlock == NaturaOverworld.saguaroBaby) - { - if (blockBelow == null || !blockBelow.canSustainPlant(stateBelow, this.world, down, net.minecraft.util.EnumFacing.UP, NaturaOverworld.saguaro)) - { - return false; - } - } - else - { - return false; - } - } - else - { - if (blockBelow == null || !blockBelow.canSustainPlant(stateBelow, this.world, down, net.minecraft.util.EnumFacing.UP, NaturaOverworld.saguaro)) - { - return false; - } } - - return true; + this.world = null; //Fix vanilla Mem leak, holds latest world } void generateSaguaro() @@ -252,17 +193,14 @@ BlockPos findGround(World world, BlockPos pos) Block block = world.getBlockState(position).getBlock(); - if (block == Blocks.SAND && !world.getBlockState(position.up()).isFullBlock()) + if (block instanceof BlockSand && !world.getBlockState(position.up()).isFullBlock()) { returnHeight = height + 1; break; } height--; - } - while (height > Config.flatSeaLevel); - - return new BlockPos(pos.getX(), returnHeight, pos.getZ()); + } while (height > Config.flatSeaLevel); } else { @@ -272,17 +210,49 @@ BlockPos findGround(World world, BlockPos pos) Block block = world.getBlockState(position).getBlock(); - if (block == Blocks.SAND && !world.getBlockState(position.up()).isFullBlock()) + if (block instanceof BlockSand && !world.getBlockState(position.up()).isFullBlock()) { returnHeight = height + 1; break; } height--; - } - while (height > Config.seaLevel); + } while (height > Config.seaLevel); + } + return new BlockPos(pos.getX(), returnHeight, pos.getZ()); + } + + private boolean blocksMatch(World world, BlockPos pos) + { + Block underBlock = world.getBlockState(pos.down()).getBlock(); - return new BlockPos(pos.getX(), returnHeight, pos.getZ()); + return underBlock instanceof BlockSand; + } + + private boolean validSaguaroLocation() + { + BlockPos down = this.basePos.down(); + + IBlockState currentState = this.world.getBlockState(this.basePos); + Block currentBlock = currentState.getBlock(); + + IBlockState stateBelow = this.world.getBlockState(down); + Block blockBelow = stateBelow.getBlock(); + + if (!this.world.isAirBlock(this.basePos)) + { + if (currentBlock == NaturaOverworld.saguaroBaby) + { + return blockBelow.canSustainPlant(stateBelow, this.world, down, net.minecraft.util.EnumFacing.UP, NaturaOverworld.saguaro); + } + else + { + return false; + } + } + else + { + return blockBelow.canSustainPlant(stateBelow, this.world, down, net.minecraft.util.EnumFacing.UP, NaturaOverworld.saguaro); } } } diff --git a/src/main/java/com/progwml6/natura/world/worldgen/vine/ThornvinesGenerator.java b/src/main/java/com/progwml6/natura/world/worldgen/vine/ThornvinesGenerator.java index ee826a85..16f2f19d 100644 --- a/src/main/java/com/progwml6/natura/world/worldgen/vine/ThornvinesGenerator.java +++ b/src/main/java/com/progwml6/natura/world/worldgen/vine/ThornvinesGenerator.java @@ -2,8 +2,6 @@ import java.util.Random; -import com.progwml6.natura.nether.NaturaNether; - import net.minecraft.block.BlockVine; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.IBlockState; @@ -14,6 +12,8 @@ import net.minecraft.world.gen.IChunkGenerator; import net.minecraftforge.fml.common.IWorldGenerator; +import com.progwml6.natura.nether.NaturaNether; + public class ThornvinesGenerator implements IWorldGenerator { public final IBlockState vine; @@ -26,10 +26,9 @@ public ThornvinesGenerator(IBlockState vine) @Override public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, IChunkProvider chunkProvider) { - } - public void generateVines(Random random, World world, BlockPos pos, IBlockState vine) + public void generateVines(World world, BlockPos pos, IBlockState vine) { if (world.getBlockState(pos).getBlock() == Blocks.AIR) { @@ -40,7 +39,7 @@ public void generateVines(Random random, World world, BlockPos pos, IBlockState public IBlockState getRandomizedVine(Random random) { IBlockState state = NaturaNether.netherThornVines.getDefaultState(); - PropertyBool[] sides = new PropertyBool[] { BlockVine.NORTH, BlockVine.EAST, BlockVine.SOUTH, BlockVine.WEST }; + PropertyBool[] sides = new PropertyBool[] {BlockVine.NORTH, BlockVine.EAST, BlockVine.SOUTH, BlockVine.WEST}; for (PropertyBool side : sides) { state = state.withProperty(side, false);