From df59c70cca2042d69a299be0d88c31aedfedc1a6 Mon Sep 17 00:00:00 2001 From: Matt Caughey Date: Thu, 28 Jan 2016 20:01:07 -0500 Subject: [PATCH] Removed Arctic and Glacier biomes, improved Cold/Frozen Desert biomes. (Be sure to fix biome IDs in your configs!) --- .../biomesoplenty/api/biome/BOPBiomes.java | 2 - .../common/biome/overworld/BiomeGenAlps.java | 1 + .../biome/overworld/BiomeGenArctic.java | 64 ------------------- .../biome/overworld/BiomeGenColdDesert.java | 42 ++++++++++-- .../biome/overworld/BiomeGenGlacier.java | 36 ----------- .../biomesoplenty/common/init/ModBiomes.java | 10 --- .../world/layer/GenLayerRiverMixBOP.java | 2 +- 7 files changed, 38 insertions(+), 119 deletions(-) delete mode 100644 src/main/java/biomesoplenty/common/biome/overworld/BiomeGenArctic.java delete mode 100644 src/main/java/biomesoplenty/common/biome/overworld/BiomeGenGlacier.java diff --git a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java index 3626a6ba4..8bd7d6b75 100644 --- a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java +++ b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java @@ -19,7 +19,6 @@ public class BOPBiomes // normal biomes which have weights public static Optional alps = Optional.absent(); - public static Optional arctic = Optional.absent(); public static Optional bamboo_forest = Optional.absent(); public static Optional bayou = Optional.absent(); public static Optional bog = Optional.absent(); @@ -79,7 +78,6 @@ public class BOPBiomes public static Optional xeric_shrubland = Optional.absent(); // edge-biomes, sub-biomes and mutated-biomes - public static Optional glacier = Optional.absent(); public static Optional mountain_foothills = Optional.absent(); public static Optional canyon_ravine = Optional.absent(); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java index f28fd03f0..178253e5c 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java @@ -26,6 +26,7 @@ public class BiomeGenAlps extends BOPBiome this.setEnableSnow(); this.setTemperatureRainfall(0.0F, 0.5F); + this.canGenerateRivers = false; this.canSpawnInBiome = false; this.canGenerateVillages = false; diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenArctic.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenArctic.java deleted file mode 100644 index 51818eb84..000000000 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenArctic.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright 2015-2016, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.common.biome.overworld; - -import net.minecraft.util.BlockPos; -import biomesoplenty.api.biome.BOPBiome; -import biomesoplenty.api.biome.generation.GeneratorStage; -import biomesoplenty.api.block.BOPBlocks; -import biomesoplenty.common.block.BlockBOPDirt; -import biomesoplenty.common.block.BlockBOPGrass; -import biomesoplenty.common.enums.BOPClimates; -import biomesoplenty.common.enums.BOPGems; -import biomesoplenty.common.world.BOPWorldSettings; -import biomesoplenty.common.world.feature.GeneratorOreSingle; - -public class BiomeGenArctic extends BOPBiome -{ - public BiomeGenArctic() - { - // terrain - this.terrainSettings.avgHeight(64).heightVariation(6, 4).octaves(0, 0, 2, 0, 0, 5).sidewaysNoise(0.2F); - - this.topBlock = BOPBlocks.grass.getDefaultState().withProperty(BlockBOPGrass.VARIANT, BlockBOPGrass.BOPGrassType.SILTY); - this.fillerBlock = BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY); - - this.setColor(14540253); - this.setEnableSnow(); - this.setTemperatureRainfall(0.05F, 0.5F); - - this.canSpawnInBiome = false; - this.canGenerateVillages = false; - - this.addWeight(BOPClimates.ICE_CAP, 30); - - this.spawnableCreatureList.clear(); - - // gem - this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create()); - } - - @Override - public void applySettings(BOPWorldSettings settings) - { - if (!settings.generateBopGems) {this.removeGenerator("tanzanite");} - } - - @Override - public int getGrassColorAtPos(BlockPos pos) - { - return 11176526; - } - - @Override - public int getFoliageColorAtPos(BlockPos pos) - { - return 11903827; - } -} diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenColdDesert.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenColdDesert.java index f7afb4e44..bde2cb43c 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenColdDesert.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenColdDesert.java @@ -8,7 +8,12 @@ package biomesoplenty.common.biome.overworld; +import java.util.Random; + +import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.chunk.ChunkPrimer; import biomesoplenty.api.biome.BOPBiome; import biomesoplenty.api.biome.generation.GeneratorStage; import biomesoplenty.api.block.BOPBlocks; @@ -17,6 +22,7 @@ import biomesoplenty.common.enums.BOPGems; import biomesoplenty.common.util.biome.GeneratorUtils.ScatterYMethod; import biomesoplenty.common.util.block.BlockQuery.BlockQueryBlock; import biomesoplenty.common.util.block.BlockQuery.IBlockPosQuery; +import biomesoplenty.common.util.config.BOPConfig.IConfigObj; import biomesoplenty.common.world.BOPWorldSettings; import biomesoplenty.common.world.feature.GeneratorBlobs; import biomesoplenty.common.world.feature.GeneratorOreSingle; @@ -25,6 +31,9 @@ import biomesoplenty.common.world.feature.GeneratorSplotches; public class BiomeGenColdDesert extends BOPBiome { + public IBlockState usualTopBlock; + public IBlockState alternateTopBlock; + public static enum ColdDesertType {FROZEN, COLD;} public BiomeGenColdDesert(ColdDesertType type) @@ -38,45 +47,66 @@ public class BiomeGenColdDesert extends BOPBiome this.topBlock = Blocks.gravel.getDefaultState(); this.fillerBlock = Blocks.stone.getDefaultState(); - this.enableRain = false; + this.canGenerateRivers = false; + + this.usualTopBlock = this.topBlock; + + this.setDisableRain(); this.enableSnow = false; if (type == ColdDesertType.FROZEN) { + this.alternateTopBlock = BOPBlocks.hard_ice.getDefaultState(); this.setTemperatureRainfall(0.0F, 0.0F); - this.addWeight(BOPClimates.FROZEN_DESERT, 20); + this.addWeight(BOPClimates.FROZEN_DESERT, 10); this.setColor(0xB3D7E3); } else { + this.alternateTopBlock = Blocks.snow.getDefaultState(); this.setTemperatureRainfall(0.2F, 0.0F); - this.addWeight(BOPClimates.COLD_DESERT, 20); + this.addWeight(BOPClimates.COLD_DESERT, 10); this.setColor(0xB3AF9B); } this.spawnableCreatureList.clear(); // gravel, stone and boulders - IBlockPosQuery surface = new BlockQueryBlock(Blocks.stone, Blocks.gravel, BOPBlocks.hard_ice); + IBlockPosQuery surface = new BlockQueryBlock(Blocks.stone, Blocks.gravel); if (type == ColdDesertType.FROZEN) { - this.addGenerator("hard_ice_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(13).splotchSize(24).placeOn(surface).replace(surface).with(BOPBlocks.hard_ice.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(3).splotchSize(16).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); } else { this.addGenerator("stone_patches", GeneratorStage.SAND, (new GeneratorSplotches.Builder()).amountPerChunk(6).splotchSize(24).placeOn(surface).replace(surface).with(Blocks.stone.getDefaultState()).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); } - this.addGenerator("boulders", GeneratorStage.SAND_PASS2, (new GeneratorBlobs.Builder()).amountPerChunk(0.2F).placeOn(surface).with(Blocks.stone.getDefaultState()).minRadius(0.3F).maxRadius(3.2F).numBalls(4).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); + this.addGenerator("boulders", GeneratorStage.SAND_PASS2, (new GeneratorBlobs.Builder()).amountPerChunk(0.2F).placeOn(surface).with(Blocks.cobblestone.getDefaultState()).minRadius(0.3F).maxRadius(3.2F).numBalls(4).scatterYMethod(ScatterYMethod.AT_SURFACE).create()); // gem this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create()); } + @Override + public void configure(IConfigObj conf) + { + super.configure(conf); + + this.usualTopBlock = this.topBlock; + this.alternateTopBlock = conf.getBlockState("alternateTopBlock", this.alternateTopBlock); + } + @Override public void applySettings(BOPWorldSettings settings) { if (!settings.generateBopGems) {this.removeGenerator("tanzanite");} } + @Override + public void genTerrainBlocks(World world, Random rand, ChunkPrimer primer, int x, int z, double noise) + { + this.topBlock = (noise + rand.nextDouble() * 3.0D > 1.8D) ? this.alternateTopBlock : this.usualTopBlock; + super.genTerrainBlocks(world, rand, primer, x, z, noise); + } + } diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenGlacier.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenGlacier.java deleted file mode 100644 index d1759caf3..000000000 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenGlacier.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright 2015-2016, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.common.biome.overworld; - -import biomesoplenty.api.block.BOPBlocks; - -public class BiomeGenGlacier extends BiomeGenArctic -{ - public BiomeGenGlacier() - { - super(); - - this.canSpawnInBiome = false; - - // clear weights - this biome shouldn't spawn except as arctic sub-biome - clearWeights(); - - // terrain - higher than arctic - this.terrainSettings.avgHeight(88).heightVariation(6, 6).octaves(1, 1, 3, 1, 1, 0); - this.avgDirtDepth = 16; - - this.setColor(0xB0BBD9); - - this.canGenerateVillages = false; - - this.topBlock = BOPBlocks.hard_ice.getDefaultState(); - this.fillerBlock = BOPBlocks.hard_ice.getDefaultState(); - - } -} diff --git a/src/main/java/biomesoplenty/common/init/ModBiomes.java b/src/main/java/biomesoplenty/common/init/ModBiomes.java index 8ce0c39be..2c0e47159 100644 --- a/src/main/java/biomesoplenty/common/init/ModBiomes.java +++ b/src/main/java/biomesoplenty/common/init/ModBiomes.java @@ -9,7 +9,6 @@ package biomesoplenty.common.init; import static biomesoplenty.api.biome.BOPBiomes.alps; -import static biomesoplenty.api.biome.BOPBiomes.arctic; import static biomesoplenty.api.biome.BOPBiomes.bamboo_forest; import static biomesoplenty.api.biome.BOPBiomes.bayou; import static biomesoplenty.api.biome.BOPBiomes.birch_forest_extension; @@ -38,7 +37,6 @@ import static biomesoplenty.api.biome.BOPBiomes.frost_forest; import static biomesoplenty.api.biome.BOPBiomes.frozen_desert; import static biomesoplenty.api.biome.BOPBiomes.fungi_forest; import static biomesoplenty.api.biome.BOPBiomes.garden; -import static biomesoplenty.api.biome.BOPBiomes.glacier; import static biomesoplenty.api.biome.BOPBiomes.grassland; import static biomesoplenty.api.biome.BOPBiomes.grove; import static biomesoplenty.api.biome.BOPBiomes.heathland; @@ -102,7 +100,6 @@ import biomesoplenty.api.biome.BOPBiome; import biomesoplenty.api.biome.BOPBiomes; import biomesoplenty.api.biome.IExtendedBiome; import biomesoplenty.common.biome.overworld.BiomeGenAlps; -import biomesoplenty.common.biome.overworld.BiomeGenArctic; import biomesoplenty.common.biome.overworld.BiomeGenBambooForest; import biomesoplenty.common.biome.overworld.BiomeGenBayou; import biomesoplenty.common.biome.overworld.BiomeGenBog; @@ -124,7 +121,6 @@ import biomesoplenty.common.biome.overworld.BiomeGenFlowerField; import biomesoplenty.common.biome.overworld.BiomeGenFrostForest; import biomesoplenty.common.biome.overworld.BiomeGenFungiForest; import biomesoplenty.common.biome.overworld.BiomeGenGarden; -import biomesoplenty.common.biome.overworld.BiomeGenGlacier; import biomesoplenty.common.biome.overworld.BiomeGenGrassland; import biomesoplenty.common.biome.overworld.BiomeGenGrove; import biomesoplenty.common.biome.overworld.BiomeGenHeathland; @@ -332,7 +328,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry // normal biomes which have weights alps = registerBOPBiome(new BiomeGenAlps(), "Alps"); - arctic = registerBOPBiome(new BiomeGenArctic(), "Arctic"); bamboo_forest = registerBOPBiome(new BiomeGenBambooForest(), "Bamboo Forest"); bayou = registerBOPBiome(new BiomeGenBayou(), "Bayou"); bog = registerBOPBiome(new BiomeGenBog(), "Bog"); @@ -395,10 +390,7 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry mountain_foothills = registerBOPBiome(new BiomeGenMountain(BiomeGenMountain.MountainType.FOOTHILLS), "Mountain Foothills"); canyon_ravine = registerBOPBiome(new BiomeGenCanyon(BiomeGenCanyon.CanyonType.RAVINE), "Canyon Ravine"); - glacier = registerBOPBiome(new BiomeGenGlacier(), "Glacier"); // TODO: implement glacier - setSubBiome(Optional.of(BiomeGenBase.frozenOcean), arctic); // add some arctic regions in frozen oceans - setSubBiome(arctic, glacier); setSubBiome(canyon, canyon_ravine); } @@ -408,7 +400,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry //TODO: Add biome dictionary tags for biomes that haven't been added yet registerBiomeToDictionary(BOPBiomes.alps, Type.SNOWY, Type.MOUNTAIN, Type.COLD); - registerBiomeToDictionary(BOPBiomes.arctic, Type.SNOWY, Type.WASTELAND, Type.COLD, Type.DEAD); registerBiomeToDictionary(BOPBiomes.bamboo_forest, Type.JUNGLE, Type.FOREST, Type.DENSE, Type.LUSH); registerBiomeToDictionary(BOPBiomes.bayou, Type.SWAMP, Type.WATER, Type.LUSH, Type.WET); registerBiomeToDictionary(BOPBiomes.bog, Type.SWAMP, Type.FOREST, Type.WET, Type.DEAD); @@ -468,7 +459,6 @@ public class ModBiomes implements BOPBiomes.IBiomeRegistry registerBiomeToDictionary(BOPBiomes.xeric_shrubland, Type.PLAINS, Type.SPARSE, Type.DRY, Type.LUSH, Type.HOT, Type.SANDY); // edge-biomes, sub-biomes and mutated-biomes - registerBiomeToDictionary(BOPBiomes.glacier, Type.SNOWY, Type.HILLS, Type.COLD, Type.DEAD); registerBiomeToDictionary(BOPBiomes.mountain_foothills, Type.HILLS, Type.MOUNTAIN); registerBiomeToDictionary(BOPBiomes.canyon_ravine, Type.SANDY, Type.HILLS, Type.DRY, Type.HOT); diff --git a/src/main/java/biomesoplenty/common/world/layer/GenLayerRiverMixBOP.java b/src/main/java/biomesoplenty/common/world/layer/GenLayerRiverMixBOP.java index 4a71601bc..476f949b9 100644 --- a/src/main/java/biomesoplenty/common/world/layer/GenLayerRiverMixBOP.java +++ b/src/main/java/biomesoplenty/common/world/layer/GenLayerRiverMixBOP.java @@ -47,7 +47,7 @@ public class GenLayerRiverMixBOP extends BOPGenLayer { if (riverValues[i] == BiomeGenBase.river.biomeID) { - if (biomeIds[i] == BiomeGenBase.icePlains.biomeID || (BOPBiomes.arctic.isPresent() && biomeIds[i] == BOPBiomes.arctic.get().biomeID)) + if (biomeIds[i] == BiomeGenBase.icePlains.biomeID || (BOPBiomes.cold_desert.isPresent() && biomeIds[i] == BOPBiomes.cold_desert.get().biomeID) || (BOPBiomes.frozen_desert.isPresent() && biomeIds[i] == BOPBiomes.frozen_desert.get().biomeID)) { out[i] = BiomeGenBase.frozenRiver.biomeID; }