2019-04-30 17:33:10 +00:00
|
|
|
/*******************************************************************************
|
|
|
|
* Copyright 2014-2019, 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;
|
|
|
|
|
2019-08-03 06:45:56 +00:00
|
|
|
import biomesoplenty.api.block.BOPBlocks;
|
2019-04-30 17:33:10 +00:00
|
|
|
import biomesoplenty.api.enums.BOPClimates;
|
2020-08-20 10:18:53 +00:00
|
|
|
import biomesoplenty.common.biome.BiomeTemplate;
|
2019-12-26 02:43:42 +00:00
|
|
|
import biomesoplenty.common.world.biome.BiomeFeatureHelper;
|
2019-04-30 17:33:10 +00:00
|
|
|
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
|
2019-04-30 19:35:40 +00:00
|
|
|
import biomesoplenty.common.world.gen.feature.StandardGrassFeature;
|
2019-12-26 03:31:52 +00:00
|
|
|
import com.google.common.collect.ImmutableList;
|
2019-06-13 05:08:11 +00:00
|
|
|
import net.minecraft.block.Blocks;
|
2019-06-13 06:07:49 +00:00
|
|
|
import net.minecraft.entity.EntityClassification;
|
|
|
|
import net.minecraft.entity.EntityType;
|
2019-04-30 17:33:10 +00:00
|
|
|
import net.minecraft.world.biome.Biome;
|
2020-07-03 16:47:52 +00:00
|
|
|
import net.minecraft.world.biome.BiomeAmbience;
|
2019-06-25 06:47:04 +00:00
|
|
|
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
2020-07-03 16:47:52 +00:00
|
|
|
import net.minecraft.world.biome.MoodSoundAmbience;
|
2019-04-30 17:33:10 +00:00
|
|
|
import net.minecraft.world.gen.GenerationStage;
|
2019-06-13 06:07:49 +00:00
|
|
|
import net.minecraft.world.gen.feature.*;
|
|
|
|
import net.minecraft.world.gen.placement.*;
|
2019-06-13 07:31:07 +00:00
|
|
|
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
2019-06-25 06:47:04 +00:00
|
|
|
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
2019-04-30 17:33:10 +00:00
|
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
|
|
2020-08-20 10:18:53 +00:00
|
|
|
public class CherryBlossomGroveBiome extends BiomeTemplate
|
2019-04-30 17:33:10 +00:00
|
|
|
{
|
|
|
|
public CherryBlossomGroveBiome()
|
|
|
|
{
|
2020-07-03 16:47:52 +00:00
|
|
|
super((new Biome.Builder()).surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS)).precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(-0.1F).scale(0.1F).temperature(0.6F).downfall(0.9F).specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()).parent((String)null));
|
2019-04-30 17:33:10 +00:00
|
|
|
|
2019-06-27 20:52:52 +00:00
|
|
|
// Structures
|
2020-07-03 16:47:52 +00:00
|
|
|
DefaultBiomeFeatures.addDefaultOverworldLandStructures(this);
|
|
|
|
this.addStructureStart(DefaultBiomeFeatures.RUINED_PORTAL_STANDARD);
|
2019-04-30 17:33:10 +00:00
|
|
|
|
2019-06-27 20:52:52 +00:00
|
|
|
// Underground
|
2019-12-25 08:38:59 +00:00
|
|
|
DefaultBiomeFeatures.addDefaultCarvers(this);
|
|
|
|
DefaultBiomeFeatures.addDefaultLakes(this);
|
|
|
|
DefaultBiomeFeatures.addDefaultMonsterRoom(this);
|
|
|
|
DefaultBiomeFeatures.addDefaultUndergroundVariety(this);
|
|
|
|
DefaultBiomeFeatures.addDefaultOres(this);
|
2019-04-30 17:33:10 +00:00
|
|
|
|
2019-06-27 20:52:52 +00:00
|
|
|
////////////////////////////////////////////////////////////
|
2019-04-30 17:33:10 +00:00
|
|
|
|
|
|
|
// Vegetation
|
2020-01-24 13:39:45 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BOPBiomeFeatures.WHITE_CHERRY_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_WITH_BEES_002_CONFIG).weighted(0.1F), BOPBiomeFeatures.PINK_CHERRY_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_WITH_BEES_002_CONFIG).weighted(0.2F), BOPBiomeFeatures.BIG_WHITE_CHERRY_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.3F), BOPBiomeFeatures.FLOWERING_OAK_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_WITH_BEES_002_CONFIG).weighted(0.15F), BOPBiomeFeatures.FLOWERING_BUSH.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.3F)), BOPBiomeFeatures.BIG_PINK_CHERRY_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG))).decorated(Placement.COUNT_EXTRA_HEIGHTMAP.configured(new AtSurfaceWithExtraConfig(5, 0.3F, 1))));
|
2019-12-26 03:31:52 +00:00
|
|
|
|
2019-12-31 07:27:53 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.PEONY.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(1))));
|
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.LILAC.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(4))));
|
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.CHERRY_BLOSSOM_GROVE_FLOWERS.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(5))));
|
2020-07-03 13:49:05 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, new StandardGrassFeature(NoFeatureConfig.CODEC).configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(11))));
|
2019-12-31 07:27:53 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.SHORT_BAMBOO.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(5))));
|
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(5))));
|
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.BROWN_MUSHROOM.defaultBlockState())).decorated(Placement.CHANCE_HEIGHTMAP_DOUBLE.configured(new ChanceConfig(2))));
|
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.RED_MUSHROOM.defaultBlockState())).decorated(Placement.CHANCE_HEIGHTMAP_DOUBLE.configured(new ChanceConfig(4))));
|
2019-12-26 09:19:37 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(DefaultBiomeFeatures.SUGAR_CANE_CONFIG).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(15))));
|
2019-12-26 17:56:30 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(DefaultBiomeFeatures.WATERLILLY_CONFIG).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(5))));
|
2019-12-31 07:27:53 +00:00
|
|
|
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.SEAGRASS.configured(new SeaGrassConfig(32, 0.4D)).decorated(Placement.TOP_SOLID_HEIGHTMAP.configured(IPlacementConfig.NONE)));
|
2019-04-30 17:33:10 +00:00
|
|
|
|
2019-06-27 20:52:52 +00:00
|
|
|
////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// Other Features
|
2019-12-25 08:38:59 +00:00
|
|
|
DefaultBiomeFeatures.addDefaultSprings(this);
|
|
|
|
DefaultBiomeFeatures.addSurfaceFreezing(this);
|
2019-06-27 20:52:52 +00:00
|
|
|
|
|
|
|
// Entities
|
2019-06-13 05:08:11 +00:00
|
|
|
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.SHEEP, 12, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.PIG, 10, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.CHICKEN, 10, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.COW, 8, 4, 4));
|
2019-07-22 06:40:59 +00:00
|
|
|
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.PANDA, 80, 1, 2));
|
2019-06-13 05:08:11 +00:00
|
|
|
this.addSpawn(EntityClassification.AMBIENT, new Biome.SpawnListEntry(EntityType.BAT, 10, 8, 8));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SPIDER, 100, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ZOMBIE, 95, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SKELETON, 100, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.CREEPER, 100, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SLIME, 100, 4, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ENDERMAN, 10, 1, 4));
|
|
|
|
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
2019-04-30 17:33:10 +00:00
|
|
|
|
2019-05-21 00:41:51 +00:00
|
|
|
this.addWeight(BOPClimates.COOL_TEMPERATE, 1);
|
2019-04-30 17:33:10 +00:00
|
|
|
}
|
2019-05-01 22:39:21 +00:00
|
|
|
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
2019-06-13 04:49:50 +00:00
|
|
|
@Override
|
2019-12-25 08:38:59 +00:00
|
|
|
public int getGrassColor(double x, double z)
|
2019-05-01 22:39:21 +00:00
|
|
|
{
|
2019-07-22 06:40:59 +00:00
|
|
|
return 0x85CE71;
|
2019-05-01 22:39:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
2019-06-13 04:49:50 +00:00
|
|
|
@Override
|
2019-12-25 08:38:59 +00:00
|
|
|
public int getFoliageColor()
|
2019-05-01 22:39:21 +00:00
|
|
|
{
|
2019-07-22 06:40:59 +00:00
|
|
|
return 0x63BF66;
|
2019-05-01 22:39:21 +00:00
|
|
|
}
|
2019-04-30 17:33:10 +00:00
|
|
|
}
|