diff --git a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java index 733bf75c2..59d7edc16 100644 --- a/src/main/java/biomesoplenty/api/biome/BOPBiomes.java +++ b/src/main/java/biomesoplenty/api/biome/BOPBiomes.java @@ -50,6 +50,7 @@ public class BOPBiomes public static Optional mountain = Optional.absent(); public static Optional origin_valley = Optional.absent(); public static Optional outback = Optional.absent(); + public static Optional prairie = Optional.absent(); public static Optional shrubland = Optional.absent(); public static Optional steppe = Optional.absent(); public static Optional thicket = 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 531ace475..82539c7d1 100644 --- a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java +++ b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenAlps.java @@ -17,14 +17,11 @@ import biomesoplenty.common.world.feature.GeneratorOreSingle; public class BiomeGenAlps extends BOPBiome { - private static final Height biomeHeight = new Height(8.0F, 0.025F); - public BiomeGenAlps() { // terrain this.terrainSettings.avgHeight(198).heightVariation(12, 12).octaves(1, 1, 2, 2, 3, 3); - this.setHeight(biomeHeight); this.setColor(13421772); this.setEnableSnow(); this.setTemperatureRainfall(0.0F, 0.5F); diff --git a/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenPrairie.java b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenPrairie.java new file mode 100644 index 000000000..787acf251 --- /dev/null +++ b/src/main/java/biomesoplenty/common/biome/overworld/BiomeGenPrairie.java @@ -0,0 +1,79 @@ +package biomesoplenty.common.biome.overworld; + +import biomesoplenty.api.biome.BOPBiome; +import biomesoplenty.api.biome.generation.GeneratorStage; +import biomesoplenty.api.biome.generation.GeneratorWeighted; +import biomesoplenty.common.block.BlockBOPDoublePlant; +import biomesoplenty.common.block.BlockBOPMushroom; +import biomesoplenty.common.enums.BOPClimates; +import biomesoplenty.common.enums.BOPFlowers; +import biomesoplenty.common.enums.BOPGems; +import biomesoplenty.common.enums.BOPPlants; +import biomesoplenty.common.world.feature.GeneratorDoubleFlora; +import biomesoplenty.common.world.feature.GeneratorFlora; +import biomesoplenty.common.world.feature.GeneratorGrass; +import biomesoplenty.common.world.feature.GeneratorOreSingle; +import biomesoplenty.common.world.feature.tree.GeneratorTaigaTree; +import net.minecraft.block.BlockPlanks.EnumType; +import net.minecraft.block.BlockTallGrass; +import net.minecraft.entity.passive.EntityHorse; +import net.minecraft.util.BlockPos; + +public class BiomeGenPrairie extends BOPBiome +{ + public BiomeGenPrairie() + { + // terrain + this.terrainSettings.avgHeight(64).heightVariation(4, 15); + + this.setColor(0xC8E580); + this.setTemperatureRainfall(0.8F, 0.3F); + + this.addWeight(BOPClimates.WARM_TEMPERATE, 10); + + this.spawnableCreatureList.add(new SpawnListEntry(EntityHorse.class, 1, 2, 6)); + + // trees + this.addGenerator("trees", GeneratorStage.TREE, (new GeneratorTaigaTree.Builder()).amountPerChunk(1).minHeight(6).maxHeight(8).log(EnumType.OAK).leaves(EnumType.OAK).create()); // TODO: implement pine cones + + // grasses + GeneratorWeighted grassGenerator = new GeneratorWeighted(100); + this.addGenerator("grass", GeneratorStage.GRASS, grassGenerator); + grassGenerator.add("shortgrass", 2, (new GeneratorGrass.Builder()).with(BOPPlants.SHORTGRASS).create()); + grassGenerator.add("mediumgrass", 3, (new GeneratorGrass.Builder()).with(BOPPlants.MEDIUMGRASS).create()); + grassGenerator.add("wheatgrass", 1, (new GeneratorGrass.Builder()).with(BOPPlants.WHEATGRASS).create()); + grassGenerator.add("dampgrass", 2, (new GeneratorGrass.Builder()).with(BOPPlants.DAMPGRASS).create()); + grassGenerator.add("tallgrass", 6, (new GeneratorGrass.Builder()).with(BlockTallGrass.EnumType.GRASS).create()); + + // flowers + GeneratorWeighted flowerGenerator = new GeneratorWeighted(0.6F); + this.addGenerator("flowers", GeneratorStage.GRASS, flowerGenerator); + flowerGenerator.add("white_anemones", 1, (new GeneratorFlora.Builder().with(BOPFlowers.WHITE_ANEMONE).generationAttempts(16).create())); + flowerGenerator.add("goldenrods", 2, (new GeneratorFlora.Builder().with(BOPFlowers.GOLDENROD).generationAttempts(16).create())); + + // other plants + this.addGenerator("berry_bushes", GeneratorStage.FLOWERS, (new GeneratorFlora.Builder()).amountPerChunk(0.4F).with(BOPPlants.BERRYBUSH).generationAttempts(8).create()); + this.addGenerator("shrubs", GeneratorStage.FLOWERS, (new GeneratorFlora.Builder()).amountPerChunk(0.7F).with(BOPPlants.SHRUB).create()); + this.addGenerator("water_reeds", GeneratorStage.LILYPAD, (new GeneratorFlora.Builder()).amountPerChunk(1).with(BOPPlants.REED).generationAttempts(32).create()); + this.addGenerator("leaf_piles", GeneratorStage.FLOWERS, (new GeneratorFlora.Builder()).amountPerChunk(5).with(BOPPlants.LEAFPILE).generationAttempts(32).create()); + this.addGenerator("flax", GeneratorStage.FLOWERS, (new GeneratorDoubleFlora.Builder()).amountPerChunk(0.2F).with(BlockBOPDoublePlant.DoublePlantType.FLAX).generationAttempts(8).create()); + + // shrooms + this.addGenerator("portobellos", GeneratorStage.SHROOM,(new GeneratorFlora.Builder()).amountPerChunk(2).with(BlockBOPMushroom.MushroomType.PORTOBELLO).create()); + + // gem + this.addGenerator("tanzanite", GeneratorStage.SAND, (new GeneratorOreSingle.Builder()).amountPerChunk(12).with(BOPGems.TANZANITE).create()); + } + + @Override + public int getGrassColorAtPos(BlockPos pos) + { + return 13165952; + } + + @Override + public int getFoliageColorAtPos(BlockPos pos) + { + return 11395195; + } +} diff --git a/src/main/java/biomesoplenty/common/init/ModBiomes.java b/src/main/java/biomesoplenty/common/init/ModBiomes.java index 667368f31..8e73d4d16 100644 --- a/src/main/java/biomesoplenty/common/init/ModBiomes.java +++ b/src/main/java/biomesoplenty/common/init/ModBiomes.java @@ -8,50 +8,7 @@ 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.bog; -import static biomesoplenty.api.biome.BOPBiomes.boreal_forest; -import static biomesoplenty.api.biome.BOPBiomes.brushland; -import static biomesoplenty.api.biome.BOPBiomes.canyon; -import static biomesoplenty.api.biome.BOPBiomes.canyon_ravine; -import static biomesoplenty.api.biome.BOPBiomes.chaparral; -import static biomesoplenty.api.biome.BOPBiomes.cherry_blossom_grove; -import static biomesoplenty.api.biome.BOPBiomes.cold_desert; -import static biomesoplenty.api.biome.BOPBiomes.coniferous_forest; -import static biomesoplenty.api.biome.BOPBiomes.crag; -import static biomesoplenty.api.biome.BOPBiomes.dead_forest; -import static biomesoplenty.api.biome.BOPBiomes.dead_swamp; -import static biomesoplenty.api.biome.BOPBiomes.deciduous_forest; -import static biomesoplenty.api.biome.BOPBiomes.dense_forest; -import static biomesoplenty.api.biome.BOPBiomes.eucalyptus_forest; -import static biomesoplenty.api.biome.BOPBiomes.fen; -import static biomesoplenty.api.biome.BOPBiomes.flower_field; -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; -import static biomesoplenty.api.biome.BOPBiomes.highland; -import static biomesoplenty.api.biome.BOPBiomes.jade_cliffs; -import static biomesoplenty.api.biome.BOPBiomes.lavender_fields; -import static biomesoplenty.api.biome.BOPBiomes.marsh; -import static biomesoplenty.api.biome.BOPBiomes.moor; -import static biomesoplenty.api.biome.BOPBiomes.mountain; -import static biomesoplenty.api.biome.BOPBiomes.mountain_foothills; -import static biomesoplenty.api.biome.BOPBiomes.origin_valley; -import static biomesoplenty.api.biome.BOPBiomes.outback; -import static biomesoplenty.api.biome.BOPBiomes.shrubland; -import static biomesoplenty.api.biome.BOPBiomes.steppe; -import static biomesoplenty.api.biome.BOPBiomes.thicket; -import static biomesoplenty.api.biome.BOPBiomes.tundra; -import static biomesoplenty.api.biome.BOPBiomes.woodland; -import static biomesoplenty.api.biome.BOPBiomes.xeric_shrubland; +import static biomesoplenty.api.biome.BOPBiomes.*; import java.io.File; import java.io.IOException; @@ -103,6 +60,7 @@ import biomesoplenty.common.biome.overworld.BiomeGenMoor; import biomesoplenty.common.biome.overworld.BiomeGenMountain; import biomesoplenty.common.biome.overworld.BiomeGenOriginValley; import biomesoplenty.common.biome.overworld.BiomeGenOutback; +import biomesoplenty.common.biome.overworld.BiomeGenPrairie; import biomesoplenty.common.biome.overworld.BiomeGenShrubland; import biomesoplenty.common.biome.overworld.BiomeGenSteppe; import biomesoplenty.common.biome.overworld.BiomeGenThicket; @@ -278,6 +236,7 @@ public class ModBiomes mountain = registerBOPBiome(new BiomeGenMountain(BiomeGenMountain.MountainType.PEAKS), "Mountain"); origin_valley = registerBOPBiome(new BiomeGenOriginValley(), "Origin Valley"); outback = registerBOPBiome(new BiomeGenOutback(), "Outback"); + prairie = registerBOPBiome(new BiomeGenPrairie(), "Prairie"); shrubland = registerBOPBiome(new BiomeGenShrubland(), "Shrubland"); steppe = registerBOPBiome(new BiomeGenSteppe(), "Steppe"); thicket = registerBOPBiome(new BiomeGenThicket(), "Thicket"); @@ -336,6 +295,7 @@ public class ModBiomes registerBiomeToDictionary(BOPBiomes.mountain, Type.MOUNTAIN, Type.FOREST, Type.DRY); registerBiomeToDictionary(BOPBiomes.origin_valley, Type.MAGICAL, Type.SPARSE); registerBiomeToDictionary(BOPBiomes.outback, Type.SANDY, Type.PLAINS, Type.SAVANNA, Type.DRY, Type.HOT); + registerBiomeToDictionary(BOPBiomes.prairie, Type.PLAINS, Type.DRY, Type.SPARSE); registerBiomeToDictionary(BOPBiomes.shrubland, Type.PLAINS, Type.SPARSE, Type.DRY); registerBiomeToDictionary(BOPBiomes.steppe, Type.PLAINS, Type.SANDY, Type.DRY, Type.HOT, Type.SAVANNA, Type.SPARSE, Type.DEAD); registerBiomeToDictionary(BOPBiomes.thicket, Type.PLAINS, Type.FOREST, Type.DRY, Type.DEAD, Type.DENSE);