WIP rework stuff
|
@ -20,19 +20,17 @@ public class BOPBiomes
|
|||
public static RegistryKey<Biome> alps = register("alps");
|
||||
public static RegistryKey<Biome> alps_foothills = register("alps_foothills");
|
||||
public static RegistryKey<Biome> bayou = register("bayou");
|
||||
public static RegistryKey<Biome> bog = register("bog");
|
||||
public static RegistryKey<Biome> boreal_forest = register("boreal_forest");
|
||||
public static RegistryKey<Biome> chaparral = register("chaparral");
|
||||
public static RegistryKey<Biome> bayou_mangrove = register("bayou_mangrove");
|
||||
public static RegistryKey<Biome> cherry_blossom_grove = register("cherry_blossom_grove");
|
||||
public static RegistryKey<Biome> cold_desert = register("cold_desert");
|
||||
public static RegistryKey<Biome> coniferous_forest = register("coniferous_forest");
|
||||
public static RegistryKey<Biome> coniferous_lakes = register("coniferous_lakes");
|
||||
public static RegistryKey<Biome> dead_forest = register("dead_forest");
|
||||
public static RegistryKey<Biome> dense_bayou = register("dense_bayou");
|
||||
public static RegistryKey<Biome> dryland = register("dryland");
|
||||
public static RegistryKey<Biome> dry_steppe = register("dry_steppe");
|
||||
public static RegistryKey<Biome> fir_clearing = register("fir_clearing");
|
||||
public static RegistryKey<Biome> floodplain = register("floodplain");
|
||||
public static RegistryKey<Biome> flower_meadow = register("flower_meadow");
|
||||
public static RegistryKey<Biome> fungal_jungle = register("fungal_jungle");
|
||||
public static RegistryKey<Biome> grassland = register("grassland");
|
||||
public static RegistryKey<Biome> gravel_beach = register("gravel_beach");
|
||||
public static RegistryKey<Biome> grove = register("grove");
|
||||
public static RegistryKey<Biome> highland = register("highland");
|
||||
|
@ -40,48 +38,41 @@ public class BOPBiomes
|
|||
public static RegistryKey<Biome> jade_cliffs = register("jade_cliffs");
|
||||
public static RegistryKey<Biome> lavender_field = register("lavender_field");
|
||||
public static RegistryKey<Biome> lush_desert = register("lush_desert");
|
||||
public static RegistryKey<Biome> lush_grassland = register("lush_grassland");
|
||||
public static RegistryKey<Biome> lush_swamp = register("lush_swamp");
|
||||
public static RegistryKey<Biome> mangrove = register("mangrove");
|
||||
public static RegistryKey<Biome> maple_woods = register("maple_woods");
|
||||
public static RegistryKey<Biome> marsh = register("marsh");
|
||||
public static RegistryKey<Biome> meadow = register("meadow");
|
||||
public static RegistryKey<Biome> mire = register("mire");
|
||||
public static RegistryKey<Biome> muskeg = register("muskeg");
|
||||
public static RegistryKey<Biome> mystic_grove = register("mystic_grove");
|
||||
public static RegistryKey<Biome> mystic_plains = register("mystic_plains");
|
||||
public static RegistryKey<Biome> ominous_woods = register("ominous_woods");
|
||||
public static RegistryKey<Biome> orchard = register("orchard");
|
||||
public static RegistryKey<Biome> origin_valley = register("origin_valley");
|
||||
public static RegistryKey<Biome> outback = register("outback");
|
||||
public static RegistryKey<Biome> overgrown_cliffs = register("overgrown_cliffs");
|
||||
public static RegistryKey<Biome> pasture = register("pasture");
|
||||
public static RegistryKey<Biome> poppy_field = register("poppy_field");
|
||||
public static RegistryKey<Biome> prairie = register("prairie");
|
||||
public static RegistryKey<Biome> pumpkin_patch = register("pumpkin_patch");
|
||||
public static RegistryKey<Biome> rainbow_hills = register("rainbow_hills");
|
||||
public static RegistryKey<Biome> rainforest = register("rainforest");
|
||||
public static RegistryKey<Biome> rainforest_clearing = register("rainforest_clearing");
|
||||
public static RegistryKey<Biome> rainforest_cliffs = register("rainforest_cliffs");
|
||||
public static RegistryKey<Biome> redwood_forest = register("redwood_forest");
|
||||
public static RegistryKey<Biome> redwood_forest_edge = register("redwood_forest_edge");
|
||||
public static RegistryKey<Biome> scrubland = register("scrubland");
|
||||
public static RegistryKey<Biome> seasonal_forest = register("seasonal_forest");
|
||||
public static RegistryKey<Biome> shield = register("shield");
|
||||
public static RegistryKey<Biome> shroomy_wetland = register("shroomy_wetland");
|
||||
public static RegistryKey<Biome> shrubland = register("shrubland");
|
||||
public static RegistryKey<Biome> shrubland_hills = register("shrubland_hills");
|
||||
public static RegistryKey<Biome> silkglade = register("silkglade");
|
||||
public static RegistryKey<Biome> snowy_coniferous_forest = register("snowy_coniferous_forest");
|
||||
public static RegistryKey<Biome> snowy_fir_clearing = register("snowy_fir_clearing");
|
||||
public static RegistryKey<Biome> snowy_forest = register("snowy_forest");
|
||||
public static RegistryKey<Biome> steppe = register("steppe");
|
||||
public static RegistryKey<Biome> temperate_rainforest = register("temperate_rainforest");
|
||||
public static RegistryKey<Biome> temperate_rainforest_hills = register("temperate_rainforest_hills");
|
||||
public static RegistryKey<Biome> tropical_rainforest = register("tropical_rainforest");
|
||||
public static RegistryKey<Biome> tropic_beach = register("tropic_beach");
|
||||
public static RegistryKey<Biome> tropics = register("tropics");
|
||||
public static RegistryKey<Biome> tundra = register("tundra");
|
||||
public static RegistryKey<Biome> tundra_basin = register("tundra_basin");
|
||||
public static RegistryKey<Biome> tundra_bog = register("tundra_bog");
|
||||
public static RegistryKey<Biome> volcanic_plains = register("volcanic_plains");
|
||||
public static RegistryKey<Biome> volcano = register("volcano");
|
||||
public static RegistryKey<Biome> wasteland = register("wasteland");
|
||||
public static RegistryKey<Biome> wetland = register("wetland");
|
||||
public static RegistryKey<Biome> woodland = register("woodland");
|
||||
public static RegistryKey<Biome> wetland_marsh = register("wetland_marsh");
|
||||
|
||||
public static RegistryKey<Biome> crystalline_chasm = register("crystalline_chasm");
|
||||
public static RegistryKey<Biome> undergrowth = register("undergrowth");
|
||||
|
|
|
@ -39,7 +39,6 @@ public enum BOPClimates
|
|||
MEDITERRANEAN,
|
||||
SAVANNA,
|
||||
HOT_DESERT,
|
||||
WASTELAND,
|
||||
NETHER;
|
||||
|
||||
private int totalBiomesWeight;
|
||||
|
@ -135,15 +134,15 @@ public enum BOPClimates
|
|||
// we will contrive to make any combination equally likely, so the overall rarity of each climate is in proportion to the number of times it appears in the array
|
||||
private static final BOPClimates[] climateMapping = new BOPClimates[]
|
||||
{
|
||||
WET_BOREAL, TUNDRA, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, TUNDRA, DRY_BOREAL,
|
||||
TUNDRA, TUNDRA, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, ICE_CAP, TUNDRA, TUNDRA,
|
||||
WET_BOREAL, WET_BOREAL, TUNDRA, TUNDRA, TUNDRA, TUNDRA, TUNDRA, TUNDRA, TUNDRA, TUNDRA, DRY_BOREAL, DRY_BOREAL,
|
||||
WET_TEMPERATE, WET_BOREAL, WET_BOREAL, WET_BOREAL, WET_BOREAL, WET_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_TEMPERATE,
|
||||
WET_BOREAL, WET_BOREAL, WET_BOREAL, WET_BOREAL, WET_BOREAL, WET_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL, DRY_BOREAL,
|
||||
WET_TEMPERATE, WET_TEMPERATE, WET_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, DRY_TEMPERATE, DRY_TEMPERATE, DRY_TEMPERATE,
|
||||
WET_TEMPERATE, WET_TEMPERATE, WET_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, COOL_TEMPERATE, DRY_TEMPERATE, DRY_TEMPERATE, DRY_TEMPERATE,
|
||||
SUBTROPICAL, SUBTROPICAL, SUBTROPICAL, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, SAVANNA, SAVANNA, SAVANNA,
|
||||
TROPICAL, TROPICAL, SUBTROPICAL, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, SAVANNA, HOT_DESERT, HOT_DESERT,
|
||||
SUBTROPICAL, SUBTROPICAL, WET_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, DRY_TEMPERATE, SAVANNA, SAVANNA,
|
||||
SUBTROPICAL, SUBTROPICAL, SUBTROPICAL, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, WARM_TEMPERATE, SAVANNA, SAVANNA, SAVANNA,
|
||||
TROPICAL, TROPICAL, SUBTROPICAL, SUBTROPICAL, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, SAVANNA, SAVANNA, HOT_DESERT, HOT_DESERT,
|
||||
TROPICAL, TROPICAL, TROPICAL, SUBTROPICAL, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, SAVANNA, HOT_DESERT, HOT_DESERT, WASTELAND
|
||||
TROPICAL, TROPICAL, SUBTROPICAL, SUBTROPICAL, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, MEDITERRANEAN, SAVANNA, SAVANNA, HOT_DESERT, HOT_DESERT
|
||||
};
|
||||
|
||||
public static int[] getClimateMappingInts()
|
||||
|
|
|
@ -28,5 +28,10 @@ public class BOPItems
|
|||
public static Item umbran_boat;
|
||||
public static Item hellbark_boat;
|
||||
|
||||
public static Item venison;
|
||||
public static Item cooked_venison;
|
||||
public static Item turkey_leg;
|
||||
public static Item cooked_turkey_leg;
|
||||
|
||||
public static Item music_disc_wanderer;
|
||||
}
|
||||
|
|
|
@ -12,4 +12,11 @@ import net.minecraft.util.SoundEvent;
|
|||
public class BOPSounds
|
||||
{
|
||||
public static SoundEvent music_disc_wanderer;
|
||||
public static SoundEvent deer_hurt;
|
||||
public static SoundEvent deer_dead;
|
||||
public static SoundEvent deer_step;
|
||||
public static SoundEvent turkey_ambient;
|
||||
public static SoundEvent turkey_hurt;
|
||||
public static SoundEvent turkey_dead;
|
||||
public static SoundEvent turkey_step;
|
||||
}
|
||||
|
|
|
@ -24,14 +24,14 @@ public class BayouBiome extends BiomeTemplate
|
|||
{
|
||||
public BayouBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.SUBTROPICAL, 7);
|
||||
this.setBeachBiome(BOPBiomes.mangrove);
|
||||
this.addWeight(BOPClimates.SUBTROPICAL, 10);
|
||||
this.setBeachBiome(BOPBiomes.bayou_mangrove);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.315F).scale(-0.05F).temperature(0.95F).downfall(0.9F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.3F).scale(0.0F).temperature(0.95F).downfall(0.9F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x62AF84).waterFogColor(0x0C211C).fogColor(12638463).skyColor(calculateSkyColor(0.95F)).grassColorOverride(0x6FAA50).foliageColorOverride(0x8BDB67).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public class BayouBiome extends BiomeTemplate
|
|||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_7);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
|
@ -20,20 +21,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class MangroveBiome extends BiomeTemplate
|
||||
public class BayouMangrove extends BiomeTemplate
|
||||
{
|
||||
public MangroveBiome()
|
||||
public BayouMangrove()
|
||||
{
|
||||
this.addWeight(BOPClimates.SUBTROPICAL, 10);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.25F).scale(-0.025F).temperature(0.81F).downfall(0.7F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.275F).scale(-0.025F).temperature(0.95F).downfall(0.9F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x448FBD).waterFogColor(0x061326).fogColor(12638463).skyColor(calculateSkyColor(0.81F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x62AF84).waterFogColor(0x0C211C).fogColor(12638463).skyColor(calculateSkyColor(0.95F)).grassColorOverride(0x6FAA50).foliageColorOverride(0x8BDB67).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -59,7 +59,7 @@ public class MangroveBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MANGROVE_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BAYOU_MANGROVE_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MANGROVE_ROOTS);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
|
@ -79,8 +79,6 @@ public class MangroveBiome extends BiomeTemplate
|
|||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.WATER_AMBIENT, new MobSpawnInfo.Spawners(EntityType.COD, 15, 3, 6));
|
||||
builder.addSpawn(EntityClassification.WATER_AMBIENT, new MobSpawnInfo.Spawners(EntityType.PUFFERFISH, 15, 1, 3));
|
||||
builder.addSpawn(EntityClassification.WATER_AMBIENT, new MobSpawnInfo.Spawners(EntityType.TROPICAL_FISH, 25, 8, 8));
|
||||
builder.addSpawn(EntityClassification.WATER_CREATURE, new MobSpawnInfo.Spawners(EntityType.SQUID, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.WATER_CREATURE, new MobSpawnInfo.Spawners(EntityType.DOLPHIN, 2, 1, 2));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
|
@ -1,96 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class BorealForestBiome extends BiomeTemplate
|
||||
{
|
||||
public BorealForestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 7);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
// Base properties
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(0.3F).scale(0.3F).temperature(0.3F).downfall(0.6F);
|
||||
|
||||
// Special effects
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.3F)).grassColorOverride(0x9FB771).foliageColorOverride(0xC9CE65).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
// Surface builder
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BOREAL_FOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@ import biomesoplenty.api.biome.BOPBiomes;
|
|||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -83,11 +84,9 @@ public class ConiferousForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -12,35 +12,35 @@ import biomesoplenty.api.enums.BOPClimates;
|
|||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class ShieldBiome extends BiomeTemplate
|
||||
public class ConiferousLakesBiome extends BiomeTemplate
|
||||
{
|
||||
public ShieldBiome()
|
||||
public ConiferousLakesBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_BOREAL, 5);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(-0.2F).scale(0.15F).temperature(0.4F).downfall(0.8F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(-0.3F).scale(0.2F).temperature(0.45F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.4F)).grassColorOverride(0x7C9B45).foliageColorOverride(0x8EAF4F).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.45F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.CHAPARRAL, SurfaceBuilder.CONFIG_GRASS));
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.EXPOSED_STONE, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
|
@ -48,7 +48,9 @@ public class ShieldBiome extends BiomeTemplate
|
|||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
@ -58,15 +60,16 @@ public class ShieldBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SHIELD_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CONIFEROUS_LAKES_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CONIFEROUS_FOREST_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_BERRY_SPARSE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_RIVER);
|
||||
|
||||
|
@ -81,10 +84,10 @@ public class ShieldBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.WATER_AMBIENT, new MobSpawnInfo.Spawners(EntityType.SALMON, 5, 1, 5));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
|
@ -24,7 +24,7 @@ public class DeadForestBiome extends BiomeTemplate
|
|||
{
|
||||
public DeadForestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 2);
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 1);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
|
@ -14,25 +15,24 @@ import net.minecraft.entity.EntityClassification;
|
|||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class LushSwampBiome extends BiomeTemplate
|
||||
public class DenseBayouBiome extends BiomeTemplate
|
||||
{
|
||||
public LushSwampBiome()
|
||||
public DenseBayouBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.SUBTROPICAL, 3);
|
||||
this.setBeachBiome(null);
|
||||
this.setBeachBiome(BOPBiomes.bayou_mangrove);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.05F).scale(0.1F).temperature(0.81F).downfall(1.0F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.315F).scale(-0.05F).temperature(0.95F).downfall(0.9F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.81F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x62AF84).waterFogColor(0x0C211C).fogColor(12638463).skyColor(calculateSkyColor(0.95F)).grassColorOverride(0x6FAA50).foliageColorOverride(0x8BDB67).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,7 +41,6 @@ public class LushSwampBiome extends BiomeTemplate
|
|||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.SWAMP_HUT);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_SWAMP);
|
||||
|
||||
|
@ -56,19 +55,19 @@ public class LushSwampBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_SWAMP_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_SWAMP_FLOWERS);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DENSE_BAYOU_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BLUE_HYDRANGEA_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_24);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DENSE_BAYOU_VINES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_15);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_RIVER);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -81,10 +80,6 @@ public class LushSwampBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
|
@ -10,7 +10,6 @@ package biomesoplenty.common.biome.overworld;
|
|||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -20,31 +19,30 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class OutbackBiome extends BiomeTemplate
|
||||
public class DrySteppeBiome extends BiomeTemplate
|
||||
{
|
||||
public OutbackBiome()
|
||||
public DrySteppeBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.HOT_DESERT, 7);
|
||||
this.setRiverBiome(null);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.DESERT).depth(0.05F).scale(0.0F).temperature(2.0F).downfall(0.05F);
|
||||
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.SAVANNA).depth(1.4F).scale(0.3F).temperature(1.5F).downfall(0.1F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(2.0F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(0x9E9DFF).grassColorOverride(0xDBBA9F).foliageColorOverride(0xD6C7A8).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, BOPSurfaceBuilders.RED_SAND_SURFACE));
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_SAVANNA);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_DESERT);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
@ -59,16 +57,17 @@ public class OutbackBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OUTBACK_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DESERT_GRASS_20);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_CACTUS_DESERT);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH_2);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEAD_GRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addExtraEmeralds(builder);
|
||||
DefaultBiomeFeatures.addInfestedStone(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
|
@ -77,6 +76,7 @@ public class OutbackBiome extends BiomeTemplate
|
|||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.LLAMA, 5, 4, 6));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
|
@ -86,6 +86,5 @@ public class OutbackBiome extends BiomeTemplate
|
|||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.HUSK, 80, 4, 4));
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@ public class DrylandBiome extends BiomeTemplate
|
|||
{
|
||||
public DrylandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.SAVANNA, 1);
|
||||
this.addWeight(BOPClimates.SAVANNA, 5);
|
||||
this.setRiverBiome(null);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
@ -43,8 +43,6 @@ public class DrylandBiome extends BiomeTemplate
|
|||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_DESERT);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
builder.addStructureStart(StructureFeatures.NETHER_FOSSIL);
|
||||
|
@ -65,7 +63,8 @@ public class DrylandBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DRYLAND_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEAD_GRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DEAD_GRASS_2);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DESERT_GRASS_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH);
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ package biomesoplenty.common.biome.overworld;
|
|||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -77,11 +78,9 @@ public class FirClearingBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -1,90 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class GrasslandBiome extends BiomeTemplate
|
||||
{
|
||||
public GrasslandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.COOL_TEMPERATE, 5);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(0.1F).scale(0.2F).temperature(0.6F).downfall(0.7F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).grassColorOverride(0x88C57F).foliageColorOverride(0x6AB66F).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_PLAINS);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_3);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.HORSE, 5, 2, 6));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.DONKEY, 1, 1, 3));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -24,7 +24,7 @@ public class GroveBiome extends BiomeTemplate
|
|||
{
|
||||
public GroveBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 7);
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 10);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ public class JadeCliffsBiome extends BiomeTemplate
|
|||
{
|
||||
public JadeCliffsBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 1);
|
||||
this.addWeight(BOPClimates.WARM_TEMPERATE, 1);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public class LavenderFieldBiome extends BiomeTemplate
|
|||
{
|
||||
public LavenderFieldBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 5);
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,7 +54,7 @@ public class LavenderFieldBiome extends BiomeTemplate
|
|||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LAVENDER_FIELD_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LAVENDER_FIELD_FLOWERS);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LAVENDER_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
|
|
|
@ -25,7 +25,7 @@ public class LushDesertBiome extends BiomeTemplate
|
|||
{
|
||||
public LushDesertBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.HOT_DESERT, 1);
|
||||
this.addWeight(BOPClimates.SAVANNA, 1);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ public class LushDesertBiome extends BiomeTemplate
|
|||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OVERGROWN_CLIFFS_SPRING);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATER_SPRING_EXTRA);
|
||||
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class LushGrasslandBiome extends BiomeTemplate
|
||||
{
|
||||
public LushGrasslandBiome()
|
||||
{
|
||||
this.setBeachBiome(BOPBiomes.mangrove);
|
||||
this.addWeight(BOPClimates.TROPICAL, 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(0.2F).scale(0.2F).temperature(0.95F).downfall(0.9F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.95F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_JUNGLE);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_GRASSLAND_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_GRASSLAND_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_125);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_RIVER);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -24,7 +24,6 @@ public class MapleWoodsBiome extends BiomeTemplate
|
|||
{
|
||||
public MapleWoodsBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 3);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ public class MuskegBiome extends BiomeTemplate
|
|||
{
|
||||
public MuskegBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.TUNDRA, 2);
|
||||
this.addWeight(BOPClimates.TUNDRA, 3);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ public class MysticGroveBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MYSTIC_GROVE_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MYSTIC_GROVE_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BLUE_HYDRANGEA_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BLUE_HYDRANGEA_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.HUGE_RED_MUSHROOM_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILAC_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SMALL_RED_MUSHROOM);
|
||||
|
|
|
@ -7,31 +7,32 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class TemperateRainforestHillsBiome extends BiomeTemplate
|
||||
public class MysticPlainsBiome extends BiomeTemplate
|
||||
{
|
||||
public TemperateRainforestHillsBiome()
|
||||
public MysticPlainsBiome()
|
||||
{
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
this.setBeachBiome(null);
|
||||
this.setRiverBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.75F).scale(0.25F).temperature(0.65F).downfall(1.2F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.0F).scale(-0.05F).temperature(0.7F).downfall(0.8F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.65F)).grassColorOverride(0xB6D367).foliageColorOverride(0x95D660).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x9C3FE4).waterFogColor(0x2E0533).fogColor(0xFFC9DA).skyColor(0x66DBFF).grassColorOverride(0x69CFDB).foliageColorOverride(0x70E0B5).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -51,17 +52,21 @@ public class TemperateRainforestHillsBiome extends BiomeTemplate
|
|||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Features.DISK_CLAY);
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.WHITE_SAND_DISK);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TEMPERATE_RAINFOREST_HILLS_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MYSTIC_PLAINS_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BLUE_HYDRANGEA_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILAC_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_25);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_24);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
|
@ -76,18 +81,10 @@ public class TemperateRainforestHillsBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 20, 1, 1));
|
||||
}
|
||||
}
|
|
@ -22,7 +22,7 @@ public class PrairieBiome extends BiomeTemplate
|
|||
{
|
||||
public PrairieBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 10);
|
||||
this.addWeight(BOPClimates.MEDITERRANEAN, 7);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -31,7 +31,7 @@ public class PumpkinPatchBiome extends BiomeTemplate
|
|||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.0F).scale(-0.025F).temperature(0.4F).downfall(0.8F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.4F)).grassColorOverride(0xA6B952).foliageColorOverride(0x91A627).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.4F)).grassColorOverride(0xB5B952).foliageColorOverride(0xA3A627).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -24,16 +24,16 @@ public class RainforestBiome extends BiomeTemplate
|
|||
{
|
||||
public RainforestBiome()
|
||||
{
|
||||
this.setBeachBiome(BOPBiomes.mangrove);
|
||||
this.addWeight(BOPClimates.SUBTROPICAL, 1);
|
||||
this.addWeight(BOPClimates.TROPICAL, 7);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(1.2F).scale(0.5F).temperature(0.9F).downfall(1.5F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(0.15F).scale(0.35F).temperature(1.0F).downfall(1.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.9F)).grassColorOverride(0x47B063).foliageColorOverride(0x47BA6D).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -42,8 +42,9 @@ public class RainforestBiome extends BiomeTemplate
|
|||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.JUNGLE_TEMPLE);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_MOUNTAIN);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_JUNGLE);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
@ -51,7 +52,8 @@ public class RainforestBiome extends BiomeTemplate
|
|||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.ORANGE_SAND_DISK);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -60,18 +62,21 @@ public class RainforestBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.PEONY_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_MELON);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addExtraEmeralds(builder);
|
||||
DefaultBiomeFeatures.addInfestedStone(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
|
@ -79,10 +84,8 @@ public class RainforestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PARROT, 40, 1, 2));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
|
@ -92,5 +95,6 @@ public class RainforestBiome extends BiomeTemplate
|
|||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.OCELOT, 2, 1, 1));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,20 +19,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class FloodplainBiome extends BiomeTemplate
|
||||
public class RainforestClearingBiome extends BiomeTemplate
|
||||
{
|
||||
public FloodplainBiome()
|
||||
public RainforestClearingBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.TROPICAL, 5);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.275F).scale(0.0F).temperature(0.9F).downfall(1.2F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(-0.125F).scale(-0.05F).temperature(1.0F).downfall(1.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.9F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -57,11 +56,13 @@ public class FloodplainBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FLOODPLAIN_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_CLEARING_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_7);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_15);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_24);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_250);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
|
@ -20,20 +20,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class OvergrownCliffsBiome extends BiomeTemplate
|
||||
public class RainforestCliffsBiome extends BiomeTemplate
|
||||
{
|
||||
public OvergrownCliffsBiome()
|
||||
public RainforestCliffsBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.TROPICAL, 3);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(2.9F).scale(0.6F).temperature(0.95F).downfall(0.8F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(2.9F).scale(0.6F).temperature(1.0F).downfall(1.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(0.95F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x3FDF99).waterFogColor(0x042F26).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -52,27 +51,31 @@ public class OvergrownCliffsBiome extends BiomeTemplate
|
|||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.ORANGE_SAND_DISK);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OVERGROWN_CLIFFS_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.JUNGLE_FLOWERS);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_CLIFFS_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OVERGROWN_CLIFFS_VINES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_7);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINFOREST_CLIFFS_VINES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_25);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_24);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_50);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OVERGROWN_CLIFFS_SPRING);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATER_SPRING_EXTRA);
|
||||
|
||||
DefaultBiomeFeatures.addExtraEmeralds(builder);
|
||||
DefaultBiomeFeatures.addInfestedStone(builder);
|
|
@ -1,95 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
import sun.java2d.Surface;
|
||||
|
||||
public class ScrublandBiome extends BiomeTemplate
|
||||
{
|
||||
public ScrublandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.SAVANNA, 5);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.SAVANNA).depth(0.1F).scale(0.2F).temperature(1.1F).downfall(0.1F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(1.1F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_SAVANNA);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.ORANGE_SAND_DISK);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SCRUBLAND_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SCRUB_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entity spawning
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@ import biomesoplenty.api.biome.BOPBiomes;
|
|||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -24,7 +25,7 @@ public class SeasonalForestBiome extends BiomeTemplate
|
|||
{
|
||||
public SeasonalForestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 5);
|
||||
this.addWeight(BOPClimates.DRY_BOREAL, 7);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
|
@ -60,8 +61,10 @@ public class SeasonalForestBiome extends BiomeTemplate
|
|||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SEASONAL_FOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.HUGE_TOADSTOOL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_3);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SMALL_TOADSTOOL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
|
@ -78,10 +81,8 @@ public class SeasonalForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.turkey, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -20,20 +20,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class MireBiome extends BiomeTemplate
|
||||
public class ShroomyWetlandBiome extends BiomeTemplate
|
||||
{
|
||||
public MireBiome()
|
||||
public ShroomyWetlandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 3);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.125F).scale(-0.05F).temperature(0.55F).downfall(0.9F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.125F).scale(-0.05F).temperature(0.6F).downfall(0.7F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x354762).waterFogColor(0x040511).fogColor(12638463).skyColor(calculateSkyColor(0.55F)).grassColorOverride(0x66704C).foliageColorOverride(0x878E61).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x272179).waterFogColor(0x0C031B).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).grassColorOverride(0x5A935F).foliageColorOverride(0x4F9657).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -61,15 +60,21 @@ public class MireBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.MIRE_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SHROOMY_WETLAND_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.HUGE_BROWN_MUSHROOM_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.PODZOL_SPLATTER);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SMALL_BROWN_MUSHROOM);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
|
@ -23,7 +23,7 @@ public class ShrublandBiome extends BiomeTemplate
|
|||
{
|
||||
public ShrublandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_TEMPERATE, 5);
|
||||
this.addWeight(BOPClimates.DRY_TEMPERATE, 7);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
|
@ -19,25 +20,25 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class ChaparralBiome extends BiomeTemplate
|
||||
public class ShrublandHillsBiome extends BiomeTemplate
|
||||
{
|
||||
public ChaparralBiome()
|
||||
public ShrublandHillsBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WARM_TEMPERATE, 5);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(1.1F).scale(0.3F).temperature(0.8F).downfall(0.45F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(1.0F).scale(0.2F).temperature(0.6F).downfall(0.05F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.CHAPARRAL, SurfaceBuilder.CONFIG_GRASS));
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.EXPOSED_STONE, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
|
@ -54,11 +55,11 @@ public class ChaparralBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CHAPARRAL_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CHAPARRAL_FLOWERS);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SHRUBLAND_HILLS_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SHRUBLAND_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
|
@ -10,6 +10,7 @@ package biomesoplenty.common.biome.overworld;
|
|||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -77,11 +78,8 @@ public class SnowyConiferousForestBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -9,6 +9,7 @@ package biomesoplenty.common.biome.overworld;
|
|||
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
|
@ -71,11 +72,8 @@ public class SnowyFirClearingBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(ModEntities.deer, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class SnowyForestBiome extends BiomeTemplate
|
||||
{
|
||||
public SnowyForestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.TUNDRA, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.SNOW).biomeCategory(Biome.Category.ICY).depth(0.2F).scale(0.2F).temperature(-0.25F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(-0.25F)).grassColorOverride(0xAD9364).foliageColorOverride(0xB7B763).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_SNOWY);
|
||||
builder.addStructureStart(StructureFeatures.IGLOO);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SNOWY_FOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SNOWY_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_3);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.RABBIT, 4, 2, 3));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.WOLF, 5, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -1,92 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class SteppeBiome extends BiomeTemplate
|
||||
{
|
||||
public SteppeBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.DRY_TEMPERATE, 3);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.PLAINS).depth(1.6F).scale(0.3F).temperature(0.775F).downfall(0.05F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.775F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_MOUNTAIN);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DESERT_GRASS_20);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_6);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addExtraEmeralds(builder);
|
||||
DefaultBiomeFeatures.addInfestedStone(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.LLAMA, 5, 4, 6));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.HORSE, 5, 2, 6));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.DONKEY, 1, 1, 3));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -1,99 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class TemperateRainforestBiome extends BiomeTemplate
|
||||
{
|
||||
public TemperateRainforestBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 3);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(-0.25F).scale(0.1F).temperature(0.65F).downfall(1.2F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.65F)).grassColorOverride(0xB6D367).foliageColorOverride(0x95D660).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TEMPERATE_RAINFOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.FLOWER_DEFAULT);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.CATTAIL_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_14);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SPROUTS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
|
@ -1,101 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class TropicalRainforestBiome extends BiomeTemplate
|
||||
{
|
||||
public TropicalRainforestBiome()
|
||||
{
|
||||
this.setBeachBiome(BOPBiomes.mangrove);
|
||||
this.addWeight(BOPClimates.TROPICAL, 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.JUNGLE).depth(0.1F).scale(0.3F).temperature(1.0F).downfall(1.0F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x1FA14A).waterFogColor(0x02271A).fogColor(12638463).skyColor(calculateSkyColor(1.0F)).grassColorOverride(0xA7E140).foliageColorOverride(0x88E140).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.JUNGLE_TEMPLE);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_JUNGLE);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TROPICAL_RAINFOREST_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.JUNGLE_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_16);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LARGE_FERN_7);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LILY_PAD_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TALL_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_MELON);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.SEAGRASS_SWAMP);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PARROT, 40, 1, 2));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.OCELOT, 2, 1, 1));
|
||||
}
|
||||
}
|
|
@ -52,7 +52,7 @@ public class TropicsBiome extends BiomeTemplate
|
|||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.WHITE_SAND_DISK);
|
||||
builder.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, BOPConfiguredFeatures.WHITE_SAND_DISK_EXTRA);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.biome.BOPBiomes;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
|
@ -20,40 +21,32 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class ColdDesertBiome extends BiomeTemplate
|
||||
public class TundraBasinBiome extends BiomeTemplate
|
||||
{
|
||||
public ColdDesertBiome()
|
||||
public TundraBasinBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.ICE_CAP, 7);
|
||||
this.setBeachBiome(null);
|
||||
this.setRiverBiome(null);
|
||||
this.setBeachBiome(BOPBiomes.gravel_beach);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.ICY).depth(0.0F).scale(0.0F).temperature(0.25F).downfall(0.0F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(0.0F).scale(-0.1F).temperature(0.2F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.25F)).grassColorOverride(0xAD9364).foliageColorOverride(0xB5A76C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.2F)).grassColorOverride(0xAD9364).foliageColorOverride(0xB5A76C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.COLD_DESERT, SurfaceBuilder.CONFIG_GRAVEL));
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRAVEL));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_SNOWY);
|
||||
builder.addStructureStart(StructureFeatures.IGLOO);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_LAVA);
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
|
@ -75,7 +68,6 @@ public class ColdDesertBiome extends BiomeTemplate
|
|||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.POLAR_BEAR, 1, 1, 2));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
|
@ -19,20 +19,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class BogBiome extends BiomeTemplate
|
||||
public class TundraBogBiome extends BiomeTemplate
|
||||
{
|
||||
public BogBiome()
|
||||
public TundraBogBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_BOREAL, 3);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.15F).scale(-0.025F).temperature(0.45F).downfall(0.9F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.TAIGA).depth(-0.15F).scale(-0.025F).temperature(0.2F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.45F)).grassColorOverride(0xA89557).foliageColorOverride(0xC67F5B).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.2F)).grassColorOverride(0xAD9364).foliageColorOverride(0xB5A76C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -57,13 +56,11 @@ public class BogBiome extends BiomeTemplate
|
|||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BOG_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TUNDRA_BOG_TREES);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_50);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.FERN_GRASS_8);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.REED_10);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WATERGRASS_5);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_BERRY_DECORATED);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
|
@ -23,7 +23,7 @@ public class WastelandBiome extends BiomeTemplate
|
|||
{
|
||||
public WastelandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WASTELAND, 10);
|
||||
this.addWeight(BOPClimates.HOT_DESERT, 1);
|
||||
this.setBeachBiome(null);
|
||||
this.setRiverBiome(null);
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public class WetlandBiome extends BiomeTemplate
|
|||
{
|
||||
public WetlandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 7);
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 10);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
|
|
|
@ -20,20 +20,19 @@ import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
|||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class MarshBiome extends BiomeTemplate
|
||||
public class WetlandMarshBiome extends BiomeTemplate
|
||||
{
|
||||
public MarshBiome()
|
||||
public WetlandMarshBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WET_TEMPERATE, 5);
|
||||
this.setBeachBiome(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.15F).scale(-0.05F).temperature(0.65F).downfall(0.7F);
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.SWAMP).depth(-0.15F).scale(-0.05F).temperature(0.6F).downfall(0.7F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.65F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x272179).waterFogColor(0x0C031B).fogColor(12638463).skyColor(calculateSkyColor(0.6F)).grassColorOverride(0x5A935F).foliageColorOverride(0x4F9657).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -42,6 +41,7 @@ public class MarshBiome extends BiomeTemplate
|
|||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.MARSH, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.SWAMP_HUT);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_SWAMP);
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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;
|
||||
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeTemplate;
|
||||
import biomesoplenty.common.world.gen.feature.BOPConfiguredFeatures;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.*;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.Features;
|
||||
import net.minecraft.world.gen.feature.structure.StructureFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
|
||||
public class WoodlandBiome extends BiomeTemplate
|
||||
{
|
||||
public WoodlandBiome()
|
||||
{
|
||||
this.addWeight(BOPClimates.WARM_TEMPERATE, 3);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureBiome(Biome.Builder builder)
|
||||
{
|
||||
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.FOREST).depth(0.1F).scale(0.1F).temperature(0.8F).downfall(0.5F);
|
||||
|
||||
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(0.8F)).grassColorOverride(0x85C047).foliageColorOverride(0x68AF1A).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
|
||||
{
|
||||
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
|
||||
|
||||
// Structures
|
||||
builder.addStructureStart(StructureFeatures.VILLAGE_PLAINS);
|
||||
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
|
||||
builder.addStructureStart(StructureFeatures.WOODLAND_MANSION);
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
|
||||
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(builder);
|
||||
DefaultBiomeFeatures.addDefaultLakes(builder);
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
|
||||
DefaultBiomeFeatures.addDefaultOres(builder);
|
||||
DefaultBiomeFeatures.addDefaultSoftDisks(builder);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.WOODLAND_TREES);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.GROVE_FLOWERS);
|
||||
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.GOLDENROD_1);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.HUGE_TOADSTOOL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ROSE_BUSH_4);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.SMALL_TOADSTOOL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_6);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.TOADSTOOL_EXTRA);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.BROWN_MUSHROOM_NORMAL);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_PUMPKIN);
|
||||
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.RED_MUSHROOM_NORMAL);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(builder);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configureMobSpawns(MobSpawnInfo.Builder builder)
|
||||
{
|
||||
// Entities
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.SHEEP, 12, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.PIG, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.CHICKEN, 10, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.COW, 8, 4, 4));
|
||||
builder.addSpawn(EntityClassification.CREATURE, new MobSpawnInfo.Spawners(EntityType.FOX, 8, 2, 4));
|
||||
builder.addSpawn(EntityClassification.AMBIENT, new MobSpawnInfo.Spawners(EntityType.BAT, 10, 8, 8));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SPIDER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE, 95, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SKELETON, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.CREEPER, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.SLIME, 100, 4, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.ENDERMAN, 10, 1, 4));
|
||||
builder.addSpawn(EntityClassification.MONSTER, new MobSpawnInfo.Spawners(EntityType.WITCH, 5, 1, 1));
|
||||
}
|
||||
}
|
91
src/main/java/biomesoplenty/common/entity/DeerEntity.java
Normal file
|
@ -0,0 +1,91 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import biomesoplenty.api.sound.BOPSounds;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
||||
import net.minecraft.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.entity.ai.goal.*;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
|
||||
public class DeerEntity extends AnimalEntity {
|
||||
public DeerEntity(EntityType<? extends DeerEntity> type, World worldIn)
|
||||
{
|
||||
super(type, worldIn);
|
||||
}
|
||||
|
||||
private static final Ingredient FOOD_ITEMS = Ingredient.of(Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS);
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new SwimGoal(this));
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 2.0D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 0.8D, false, FOOD_ITEMS));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.25D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtGoal(this, PlayerEntity.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new LookRandomlyGoal(this));
|
||||
}
|
||||
|
||||
public static AttributeModifierMap.MutableAttribute createAttributes() {
|
||||
return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 9.0D).add(Attributes.MOVEMENT_SPEED, (double)0.2F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
|
||||
return BOPSounds.deer_hurt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getDeathSound() {
|
||||
return BOPSounds.deer_dead;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void playStepSound(BlockPos pos, BlockState blockIn) {
|
||||
this.playSound(BOPSounds.deer_step, 0.15F, 1.0F);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the volume for the sounds this mob makes.
|
||||
*/
|
||||
@Override
|
||||
protected float getSoundVolume() {
|
||||
return 0.4F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DeerEntity getBreedOffspring(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) {
|
||||
return ModEntities.deer.create(p_241840_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose poseIn, EntitySize sizeIn) {
|
||||
return this.isBaby() ? sizeIn.height * 0.95F : 1.3F;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
|
||||
* the animal type)
|
||||
*/
|
||||
@Override
|
||||
public boolean isFood(ItemStack stack) {
|
||||
return FOOD_ITEMS.test(stack);
|
||||
}
|
||||
}
|
159
src/main/java/biomesoplenty/common/entity/DeerModel.java
Normal file
|
@ -0,0 +1,159 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||
import net.minecraft.client.renderer.entity.model.AgeableModel;
|
||||
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class DeerModel<T extends Entity> extends AgeableModel<T>
|
||||
{
|
||||
private final ModelRenderer head;
|
||||
private final ModelRenderer snout;
|
||||
private final ModelRenderer neck;
|
||||
private final ModelRenderer body;
|
||||
private final ModelRenderer tail;
|
||||
private final ModelRenderer ear0;
|
||||
private final ModelRenderer ear1;
|
||||
private final ModelRenderer leg0;
|
||||
private final ModelRenderer leg1;
|
||||
private final ModelRenderer leg2;
|
||||
private final ModelRenderer leg3;
|
||||
private final ModelRenderer antler0;
|
||||
private final ModelRenderer antler1;
|
||||
private boolean scaleHead = true;
|
||||
private float yHeadOffset = 14.0F;
|
||||
private float zHeadOffset = 3.0F;
|
||||
private float babyHeadScale = 2.0F;
|
||||
private float babyBodyScale = 2.0F;
|
||||
private float bodyYOffset = 24.0F;
|
||||
|
||||
public DeerModel()
|
||||
{
|
||||
this.texWidth = 128;
|
||||
this.texHeight = 32;
|
||||
|
||||
this.head = new ModelRenderer(this, 0, 0);
|
||||
this.head.addBox(-3F, -3F, -6F, 6, 6, 6);
|
||||
this.head.setPos(0F, 3F, -9F);
|
||||
|
||||
this.snout = new ModelRenderer(this, 24, 0);
|
||||
this.snout.addBox(-2F, -1F, -10F, 4, 4, 4);
|
||||
|
||||
this.ear0 = new ModelRenderer(this, 32, 16);
|
||||
this.ear0.addBox(-1F, -8F, -2F, 3, 6, 1);
|
||||
this.ear0.zRot = -1.047198F;
|
||||
|
||||
this.ear1 = new ModelRenderer(this, 32, 23);
|
||||
this.ear1.addBox(-2F, -8F, -2F, 3, 6, 1);
|
||||
this.ear1.zRot = 1.047198F;
|
||||
|
||||
this.antler0 = new ModelRenderer(this, 70, 18);
|
||||
this.antler0.addBox(-7F, -14F, -2F, 8, 12, 1);
|
||||
this.antler0.xRot = -0.5235988F;
|
||||
this.antler0.yRot = -1.047198F;
|
||||
|
||||
this.antler1 = new ModelRenderer(this, 88, 18);
|
||||
this.antler1.addBox(-1F, -14F, -2F, 8, 12, 1);
|
||||
this.antler1.xRot = -0.5235988F;
|
||||
this.antler1.yRot = 1.047198F;
|
||||
|
||||
this.head.addChild(snout);
|
||||
this.head.addChild(ear0);
|
||||
this.head.addChild(ear1);
|
||||
this.head.addChild(antler0);
|
||||
this.head.addChild(antler1);
|
||||
|
||||
this.neck = new ModelRenderer(this, 0, 12);
|
||||
this.neck.addBox(-2F, 0F, -9F, 4, 6, 9);
|
||||
this.neck.setPos(0F, 6F, -2F);
|
||||
this.neck.xRot = -0.6283185F;
|
||||
|
||||
this.body = new ModelRenderer(this, 40, 0);
|
||||
this.body.addBox(-4F, -9F, -7F, 8, 18, 7);
|
||||
this.body.setPos(0F, 5F, 1F);
|
||||
this.body.xRot = 1.570796F;
|
||||
|
||||
this.leg0 = new ModelRenderer(this, 70, 0);
|
||||
this.leg0.addBox(0F, 0F, 0F, 3, 12, 3);
|
||||
this.leg0.setPos(-4F, 12F, 6F);
|
||||
|
||||
this.leg1 = new ModelRenderer(this, 82, 0);
|
||||
this.leg1.addBox(-3F, 0F, 0F, 3, 12, 3);
|
||||
this.leg1.setPos(4F, 12F, 6F);
|
||||
|
||||
this.leg2 = new ModelRenderer(this, 94, 0);
|
||||
this.leg2.addBox(0F, 0F, 0F, 3, 12, 3);
|
||||
this.leg2.setPos(-4F, 12F, -7F);
|
||||
|
||||
this.leg3 = new ModelRenderer(this, 106, 0);
|
||||
this.leg3.addBox(-3F, 0F, 0F, 3, 12, 3);
|
||||
this.leg3.setPos(4F, 12F, -7F);
|
||||
|
||||
this.tail = new ModelRenderer(this, 32, 8);
|
||||
this.tail.addBox(0F, 0F, 0F, 2, 6, 2);
|
||||
this.tail.setPos(-1F, 7F, 8F);
|
||||
this.tail.xRot = 0.4363323F;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> headParts() {
|
||||
return ImmutableList.of(this.head);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> bodyParts() {
|
||||
return ImmutableList.of(this.body, this.neck, this.leg0, this.leg1, this.leg2, this.leg3, this.tail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
||||
this.head.xRot = headPitch * ((float)Math.PI / 180F);
|
||||
this.head.yRot = netHeadYaw * ((float)Math.PI / 180F);
|
||||
this.leg0.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
this.leg1.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.leg2.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.leg3.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
if (this.young)
|
||||
{
|
||||
matrixStackIn.pushPose();
|
||||
if (this.scaleHead)
|
||||
{
|
||||
float f = 1.5F / this.babyHeadScale;
|
||||
matrixStackIn.scale(f, f, f);
|
||||
}
|
||||
|
||||
matrixStackIn.translate(0.0D, (double)(this.yHeadOffset / 16.0F), (double)(this.zHeadOffset / 16.0F));
|
||||
this.headParts().forEach((p_228230_8_) -> {
|
||||
p_228230_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
matrixStackIn.pushPose();
|
||||
float f1 = 1.0F / this.babyBodyScale;
|
||||
matrixStackIn.scale(f1, f1, f1);
|
||||
matrixStackIn.translate(0.0D, (double)(this.bodyYOffset / 16.0F), 0.0D);
|
||||
this.bodyParts().forEach((p_228229_8_) -> {
|
||||
p_228229_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.headParts().forEach((p_228228_8_) -> {
|
||||
p_228228_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
this.bodyParts().forEach((p_228227_8_) -> {
|
||||
p_228227_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
28
src/main/java/biomesoplenty/common/entity/DeerRenderer.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class DeerRenderer extends MobRenderer<DeerEntity, DeerModel<DeerEntity>> {
|
||||
private static final ResourceLocation DEER_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/deer.png");
|
||||
private static final ResourceLocation FAWN_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/fawn.png");
|
||||
|
||||
public DeerRenderer(EntityRendererManager renderManagerIn) {
|
||||
super(renderManagerIn, new DeerModel<>(), 0.7F);
|
||||
}
|
||||
|
||||
public ResourceLocation getTextureLocation(DeerEntity entity) {
|
||||
if (entity.getAge() < 0)
|
||||
{
|
||||
return FAWN_LOCATION;
|
||||
}
|
||||
else
|
||||
{
|
||||
return DEER_LOCATION;
|
||||
}
|
||||
}
|
||||
}
|
120
src/main/java/biomesoplenty/common/entity/TurkeyEntity.java
Normal file
|
@ -0,0 +1,120 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import biomesoplenty.api.sound.BOPSounds;
|
||||
import biomesoplenty.init.ModEntities;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.entity.*;
|
||||
import net.minecraft.entity.ai.attributes.AttributeModifierMap;
|
||||
import net.minecraft.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.entity.ai.goal.*;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
import net.minecraft.item.crafting.Ingredient;
|
||||
import net.minecraft.pathfinding.PathNodeType;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
|
||||
public class TurkeyEntity extends AnimalEntity {
|
||||
private static final Ingredient FOOD_ITEMS = Ingredient.of(Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS);
|
||||
public float flap;
|
||||
public float flapSpeed;
|
||||
public float oFlapSpeed;
|
||||
public float oFlap;
|
||||
public float flapping = 1.0F;
|
||||
|
||||
public TurkeyEntity(EntityType<? extends TurkeyEntity> type, World worldIn) {
|
||||
super(type, worldIn);
|
||||
this.setPathfindingMalus(PathNodeType.WATER, 0.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void registerGoals() {
|
||||
this.goalSelector.addGoal(0, new SwimGoal(this));
|
||||
this.goalSelector.addGoal(1, new PanicGoal(this, 1.4D));
|
||||
this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(3, new TemptGoal(this, 1.0D, false, FOOD_ITEMS));
|
||||
this.goalSelector.addGoal(4, new FollowParentGoal(this, 1.1D));
|
||||
this.goalSelector.addGoal(5, new WaterAvoidingRandomWalkingGoal(this, 1.0D));
|
||||
this.goalSelector.addGoal(6, new LookAtGoal(this, PlayerEntity.class, 6.0F));
|
||||
this.goalSelector.addGoal(7, new LookRandomlyGoal(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose poseIn, EntitySize sizeIn) {
|
||||
return this.isBaby() ? sizeIn.height * 0.85F : sizeIn.height * 0.92F;
|
||||
}
|
||||
|
||||
public static AttributeModifierMap.MutableAttribute createAttributes() {
|
||||
return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 7.0D).add(Attributes.MOVEMENT_SPEED, (double)0.25F);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
|
||||
* use this to react to sunlight and start to burn.
|
||||
*/
|
||||
@Override
|
||||
public void aiStep() {
|
||||
super.aiStep();
|
||||
this.oFlap = this.flap;
|
||||
this.oFlapSpeed = this.flapSpeed;
|
||||
this.flapSpeed = (float)((double)this.flapSpeed + (double)(this.onGround ? -1 : 4) * 0.3D);
|
||||
this.flapSpeed = MathHelper.clamp(this.flapSpeed, 0.0F, 1.0F);
|
||||
if (!this.onGround && this.flapping < 1.0F) {
|
||||
this.flapping = 1.0F;
|
||||
}
|
||||
|
||||
this.flapping = (float)((double)this.flapping * 0.9D);
|
||||
Vector3d vec3d = this.getDeltaMovement();
|
||||
if (!this.onGround && vec3d.y < 0.0D) {
|
||||
this.setDeltaMovement(vec3d.multiply(1.0D, 0.6D, 1.0D));
|
||||
}
|
||||
|
||||
this.flap += this.flapping * 2.0F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean causeFallDamage(float distance, float damageMultiplier) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getAmbientSound() {
|
||||
return BOPSounds.turkey_ambient;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getHurtSound(DamageSource damageSourceIn) {
|
||||
return BOPSounds.turkey_hurt;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SoundEvent getDeathSound() {
|
||||
return BOPSounds.turkey_dead;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void playStepSound(BlockPos pos, BlockState blockIn) {
|
||||
this.playSound(BOPSounds.turkey_step, 0.15F, 1.0F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TurkeyEntity getBreedOffspring(ServerWorld p_241840_1_, AgeableEntity p_241840_2_) {
|
||||
return ModEntities.turkey.create(p_241840_1_);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the parameter is an item which this animal can be fed to breed it (wheat, carrots or seeds depending on
|
||||
* the animal type)
|
||||
*/
|
||||
@Override
|
||||
public boolean isFood(ItemStack stack) {
|
||||
return FOOD_ITEMS.test(stack);
|
||||
}
|
||||
}
|
137
src/main/java/biomesoplenty/common/entity/TurkeyModel.java
Normal file
|
@ -0,0 +1,137 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||
import com.mojang.blaze3d.vertex.IVertexBuilder;
|
||||
import net.minecraft.client.renderer.entity.model.AgeableModel;
|
||||
import net.minecraft.client.renderer.model.ModelRenderer;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class TurkeyModel<T extends Entity> extends AgeableModel<T>
|
||||
{
|
||||
private final ModelRenderer head;
|
||||
private final ModelRenderer chest;
|
||||
private final ModelRenderer body;
|
||||
private final ModelRenderer leg0;
|
||||
private final ModelRenderer leg1;
|
||||
private final ModelRenderer wing0;
|
||||
private final ModelRenderer wing1;
|
||||
private final ModelRenderer beak;
|
||||
private final ModelRenderer wattle;
|
||||
private final ModelRenderer plume;
|
||||
private boolean scaleHead = true;
|
||||
private float yHeadOffset = 12.0F;
|
||||
private float zHeadOffset = 3.0F;
|
||||
private float babyHeadScale = 2.0F;
|
||||
private float babyBodyScale = 2.0F;
|
||||
private float bodyYOffset = 24.0F;
|
||||
|
||||
public TurkeyModel()
|
||||
{
|
||||
this.texWidth = 128;
|
||||
this.texHeight = 64;
|
||||
|
||||
this.chest = new ModelRenderer(this, 0, 22);
|
||||
this.chest.addBox(-4F, -4F, -4F, 8, 5, 5);
|
||||
this.chest.setPos(0F, 14F, -3F);
|
||||
|
||||
this.head = new ModelRenderer(this, 0, 32);
|
||||
this.head.addBox(-2F, -10F, -5F, 4, 10, 3);
|
||||
this.head.setPos(0F, 14F, -3F);
|
||||
|
||||
this.beak = new ModelRenderer(this, 0, 45);
|
||||
this.beak.addBox(-1F, -8F, -7F, 2, 1, 2);
|
||||
this.beak.setPos(0F, 14F, -3F);
|
||||
|
||||
this.wattle = new ModelRenderer(this, 14, 32);
|
||||
this.wattle.addBox(-1F, -7F, -6F, 2, 7, 1);
|
||||
this.wattle.setPos(0F, 14F, -3F);
|
||||
|
||||
this.body = new ModelRenderer(this, 0, 0);
|
||||
this.body.addBox(-6F, 0F, -6F, 12, 8, 14);
|
||||
this.body.setPos(0F, 10F, 0F);
|
||||
|
||||
this.wing0 = new ModelRenderer(this, 26, 22);
|
||||
this.wing0.addBox(-1F, 0F, 0F, 1, 6, 8);
|
||||
this.wing0.setPos(-6F, 11F, -4F);
|
||||
|
||||
this.wing1 = new ModelRenderer(this, 26, 22);
|
||||
this.wing1.addBox(0F, 0F, 0F, 1, 6, 8);
|
||||
this.wing1.setPos(6F, 11F, -4F);
|
||||
|
||||
this.plume = new ModelRenderer(this, 52, 0);
|
||||
this.plume.addBox(-11F, -13F, 6F, 22, 14, 0);
|
||||
this.plume.setPos(0F, 12F, 0F);
|
||||
this.plume.xRot = -0.2617994F;
|
||||
|
||||
this.leg0 = new ModelRenderer(this, 44, 22);
|
||||
this.leg0.addBox(-5F, 0F, -5F, 5, 6, 4);
|
||||
this.leg0.setPos(0F, 18F, 4F);
|
||||
|
||||
this.leg1 = new ModelRenderer(this, 44, 22);
|
||||
this.leg1.addBox(0F, 0F, -5F, 5, 6, 4);
|
||||
this.leg1.setPos(0F, 18F, 4F);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> headParts() {
|
||||
return ImmutableList.of(this.head, this.beak, this.wattle);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Iterable<ModelRenderer> bodyParts() {
|
||||
return ImmutableList.of(this.body, this.chest, this.leg0, this.leg1, this.wing0, this.wing1, this.plume);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupAnim(T entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
|
||||
this.chest.xRot = (headPitch * ((float)Math.PI / 180F)) + 0.7853982F;
|
||||
this.chest.yRot = netHeadYaw * ((float)Math.PI / 180F);
|
||||
this.head.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.head.yRot = this.chest.yRot;
|
||||
this.beak.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.beak.yRot = this.chest.yRot;
|
||||
this.wattle.xRot = this.chest.xRot - 0.7853982F;
|
||||
this.wattle.yRot = this.chest.yRot;
|
||||
this.leg0.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount;
|
||||
this.leg1.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount;
|
||||
this.wing0.zRot = ageInTicks;
|
||||
this.wing1.zRot = -ageInTicks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
if (this.young) {
|
||||
matrixStackIn.pushPose();
|
||||
if (this.scaleHead) {
|
||||
float f = 1.5F / this.babyHeadScale;
|
||||
matrixStackIn.scale(f, f, f);
|
||||
}
|
||||
|
||||
matrixStackIn.translate(0.0D, (double)(this.yHeadOffset / 16.0F), (double)(this.zHeadOffset / 16.0F));
|
||||
this.headParts().forEach((p_228230_8_) -> {
|
||||
p_228230_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
matrixStackIn.pushPose();
|
||||
float f1 = 1.0F / this.babyBodyScale;
|
||||
matrixStackIn.scale(f1, f1, f1);
|
||||
matrixStackIn.translate(0.0D, (double)(this.bodyYOffset / 16.0F), 0.0D);
|
||||
this.bodyParts().forEach((p_228229_8_) -> {
|
||||
if (p_228229_8_ != this.plume) { p_228229_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha); }
|
||||
});
|
||||
matrixStackIn.popPose();
|
||||
} else {
|
||||
this.headParts().forEach((p_228228_8_) -> {
|
||||
p_228228_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
this.bodyParts().forEach((p_228227_8_) -> {
|
||||
p_228227_8_.render(matrixStackIn, bufferIn, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package biomesoplenty.common.entity;
|
||||
|
||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class TurkeyRenderer extends MobRenderer<TurkeyEntity, TurkeyModel<TurkeyEntity>> {
|
||||
private static final ResourceLocation TURKEY_LOCATION = new ResourceLocation("biomesoplenty:textures/entity/turkey.png");
|
||||
|
||||
public TurkeyRenderer(EntityRendererManager renderManagerIn) {
|
||||
super(renderManagerIn, new TurkeyModel<>(), 0.6F);
|
||||
}
|
||||
|
||||
public ResourceLocation getTextureLocation(TurkeyEntity entity) {
|
||||
return TURKEY_LOCATION;
|
||||
}
|
||||
|
||||
protected float getBob(TurkeyEntity livingBase, float partialTicks) {
|
||||
float f = MathHelper.lerp(partialTicks, livingBase.oFlap, livingBase.flap);
|
||||
float f1 = MathHelper.lerp(partialTicks, livingBase.oFlapSpeed, livingBase.flapSpeed);
|
||||
return (MathHelper.sin(f) + 1.0F) * f1;
|
||||
}
|
||||
}
|
|
@ -31,7 +31,6 @@ public class BOPConfiguredFeatures
|
|||
{
|
||||
// Trees
|
||||
public static final ConfiguredFeature<?, ?> ACACIA_BUSH = register("acacia_bush", BOPFeatures.ACACIA_BUSH.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> ACACIA_TWIGLET = register("acacia_twiglet", BOPFeatures.ACACIA_TWIGLET.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> ACACIA_TWIGLET_SMALL = register("acacia_twiglet_small", BOPFeatures.ACACIA_TWIGLET_SMALL.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> ACACIA_TWIGLET_TREE = register("acacia_twiglet_tree", BOPFeatures.ACACIA_TWIGLET_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> ALPS_SPRUCE_TREE = register("alps_spruce_tree", BOPFeatures.ALPS_SPRUCE_TREE.configured(Features.OAK.config()));
|
||||
|
@ -85,11 +84,8 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> REDWOOD_TREE = register("redwood_tree", BOPFeatures.REDWOOD_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_TREE_LARGE = register("redwood_tree_large", BOPFeatures.REDWOOD_TREE_LARGE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_TREE_MEDIUM = register("redwood_tree_medium", BOPFeatures.REDWOOD_TREE_MEDIUM.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SEQUOIA_TREE = register("sequoia_tree", BOPFeatures.SEQUOIA_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SEQUOIA_TREE_LARGE = register("sequoia_tree_large", BOPFeatures.SEQUOIA_TREE_LARGE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SILK_TREE = register("silk_tree", BOPFeatures.SILK_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SMALL_DEAD_TREE = register("small_dead_tree", BOPFeatures.SMALL_DEAD_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SMALL_JUNGLE_TREE = register("small_jungle_tree", BOPFeatures.SMALL_JUNGLE_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SPARSE_ACACIA_TREE = register("sparse_acacia_tree", BOPFeatures.SPARSE_ACACIA_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SPARSE_OAK_TREE = register("sparse_oak_tree", BOPFeatures.SPARSE_OAK_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> SPRUCE_BUSH = register("spruce_bush", BOPFeatures.SPRUCE_BUSH.configured(Features.OAK.config()));
|
||||
|
@ -98,7 +94,6 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> TALL_SPRUCE_TREE = register("tall_spruce_tree", BOPFeatures.TALL_SPRUCE_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> TALL_SPRUCE_TREE_BEES = register("tall_spruce_tree_bees", BOPFeatures.TALL_SPRUCE_TREE.configured(Features.OAK.config().withDecorators(ImmutableList.of(Features.Placements.BEEHIVE_005))));
|
||||
public static final ConfiguredFeature<?, ?> TALL_SWAMP_TREE = register("tall_swamp_tree", BOPFeatures.TALL_SWAMP_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> TALL_TWIGLET_TREE = register("tall_twiglet_tree", BOPFeatures.TALL_TWIGLET_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> TALL_UMBRAN_TREE = register("tall_umbran_tree", BOPFeatures.TALL_UMBRAN_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> TWIGLET_TREE = register("twiglet_tree", BOPFeatures.TWIGLET_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> TWIGLET_TREE_VOLCANO = register("twiglet_tree_volcano", BOPFeatures.TWIGLET_TREE_VOLCANO.configured(Features.OAK.config()));
|
||||
|
@ -106,87 +101,74 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> WHITE_CHERRY_TREE_BEES = register("white_cherry_tree_bees", BOPFeatures.WHITE_CHERRY_TREE.configured(Features.OAK.config().withDecorators(ImmutableList.of(Features.Placements.BEEHIVE_002))));
|
||||
public static final ConfiguredFeature<?, ?> WILLOW_TREE = register("willow_tree", BOPFeatures.WILLOW_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> YELLOW_AUTUMN_TREE = register("yellow_autumn_tree", BOPFeatures.YELLOW_AUTUMN_TREE.configured(Features.OAK.config()));
|
||||
public static final ConfiguredFeature<?, ?> YELLOW_POPLAR_TREE = register("yellow_poplar_tree", BOPFeatures.YELLOW_POPLAR_TREE.configured(Features.OAK.config()));
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Biome Tree Listings
|
||||
public static final ConfiguredFeature<?, ?> ALPS_FOOTHILLS_TREES = register("alps_foothills_trees", ALPS_SPRUCE_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> BAYOU_TREES = register("bayou_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE_MEDIUM.weighted(0.3F)), CYPRESS_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> BOG_TREES = register("bog_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPRUCE_TWIGLET_TREE.weighted(0.4F), MAPLE_TWIGLET_TREE.weighted(0.6F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> BOREAL_FOREST_TREES = register("boreal_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_OAK_TREE.weighted(0.075F), Features.OAK.weighted(0.15F), YELLOW_POPLAR_TREE.weighted(0.3F), YELLOW_AUTUMN_TREE.weighted(0.15F)), TALL_SPRUCE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> CHAPARRAL_TREES = register("chaparral_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TWIGLET_TREE.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(12, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> BAYOU_TREES = register("bayou_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE_MEDIUM.weighted(0.3F)), CYPRESS_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> BAYOU_MANGROVE_TREES = register("bayou_mangrove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE_MEDIUM.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(15, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> CHERRY_BLOSSOM_GROVE_TREES = register("cherry_blossom_grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(WHITE_CHERRY_TREE_BEES.weighted(0.1F), PINK_CHERRY_TREE_BEES.weighted(0.2F), BIG_WHITE_CHERRY_TREE.weighted(0.3F), FLOWERING_OAK_TREE_BEES.weighted(0.15F), FLOWERING_BUSH.weighted(0.3F)), BIG_PINK_CHERRY_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> CONIFEROUS_FOREST_TREES = register("coniferous_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.33333334F)), FIR_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> CONIFEROUS_LAKES_TREES = register("coniferous_lakes_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.1F)), FIR_TREE_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> DEAD_FOREST_TREES = register("dead_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DYING_TREE.weighted(0.2F), DEAD_TREE.weighted(0.1F), TALL_SPRUCE_TREE.weighted(0.3F), SMALL_DEAD_TREE.weighted(0.3F)), Features.OAK)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> DRYLAND_TREES = register("dry_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TWIGLET_TREE.weighted(0.4F), DYING_TREE.weighted(0.1F), SPARSE_OAK_TREE.weighted(0.2F)), ACACIA_TWIGLET_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> DENSE_BAYOU_TREES = register("dense_bayou_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(CYPRESS_TREE.weighted(0.2F), CYPRESS_TREE_MEDIUM.weighted(0.5F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> DRYLAND_TREES = register("dryland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TWIGLET_TREE.weighted(0.4F), DYING_TREE.weighted(0.1F), SPARSE_OAK_TREE.weighted(0.2F)), ACACIA_TWIGLET_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> FIR_CLEARING_TREES = register("fir_clearing_trees", FIR_TREE_SMALL.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> FLOODPLAIN_TREES = register("floodplain_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPARSE_OAK_TREE.weighted(0.3F), BIG_OAK_TREE.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> FLOWER_MEADOW_TREES = register("flower_meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> FUNGAL_JUNGLE_TREES = register("fungal_jungle_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> GROVE_TREES = register("grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPARSE_OAK_TREE.weighted(0.05F), DARK_OAK_POPLAR.weighted(0.2F), SPRUCE_POPLAR.weighted(0.4F), FLOWERING_BUSH.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> JADE_CLIFFS_TREES = register("jade_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.075F), Features.PINE.weighted(0.025F)), SPRUCE_BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(35, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LAVENDER_FIELD_TREES = register("lavender_field_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FLOWERING_OAK_TREE_BEES.weighted(0.2F), BIG_FLOWERING_OAK_TREE.weighted(0.1F), BIG_JACARANDA_TREE.weighted(0.1F)), JACARANDA_TREE_BEES)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_DESERT_TREES = register("lush_desert_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(ACACIA_BUSH.weighted(0.4F), SPARSE_ACACIA_TREE.weighted(0.2F)), ACACIA_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_GRASSLAND_TREES = register("lush_grassland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SMALL_JUNGLE_TREE.weighted(0.1F), Features.OAK_BEES_0002.weighted(0.2F), PALM_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.95F, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_SWAMP_TREES = register("lush_swamp_trees", TALL_SWAMP_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MANGROVE_TREES = register("mangrove_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(15, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MAPLE_WOODS_TREES = register("maple_woods_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.2F), BIG_MAPLE_TREE.weighted(0.05F)), MAPLE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.15F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_TREES = register("meadow_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE_BEES.weighted(0.25F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MIRE_TREES = register("mire_trees", DARK_OAK_TWIGLET_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MUSKEG_TREES = register("muskeg_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DARK_OAK_TWIGLET_TREE.weighted(0.4F), DEAD_TREE.weighted(0.3F), DYING_TREE.weighted(0.075F), DEAD_TWIGLET_TREE_TALL.weighted(0.1F)), DEAD_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> MYSTIC_GROVE_TREES = register("mystic_grove_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(GIANT_TREE.weighted(0.01F), TALL_SWAMP_TREE.weighted(0.1F), BIG_FLOWERING_OAK_TREE.weighted(0.2F), JACARANDA_TREE.weighted(0.3F), BIG_MAGIC_TREE.weighted(0.3F)), MAGIC_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> OMINOUS_WOODS_TREES = register("ominous_woods_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE.weighted(0.05F), DYING_TREE.weighted(0.15F), WILLOW_TREE.weighted(0.15F), TALL_UMBRAN_TREE.weighted(0.7F)), UMBRAN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> ORCHARD_TREES = register("orchard_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_FLOWERING_OAK_TREE.weighted(0.1F)), FLOWERING_OAK_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(2, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> ORIGIN_VALLEY_TREES = register("origin_valley_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_ORIGIN_TREE.weighted(0.1F)), ORIGIN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(BOPPlacements.ALPHA_TREE.configured(NoPlacementConfig.INSTANCE)));
|
||||
public static final ConfiguredFeature<?, ?> OUTBACK_TREES = register("outback_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(ACACIA_TWIGLET_TREE.weighted(0.15F)), ACACIA_TWIGLET_SMALL)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.6F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> OVERGROWN_CLIFFS_TREES = register("overgrown_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.3F), MAHOGANY_TREE.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(16, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> PRAIRIE_TREES = register("prairie_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_OAK_TREE.weighted(0.1F)), SPARSE_OAK_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.85F, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> PUMPKIN_PATCH_TREES = register("pumpkin_patch_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.2F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINBOW_HILLS_TREES = register("rainbow_hills_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.2F), FIR_TREE_SMALL.weighted(0.1F), FIR_TREE.weighted(0.025F), BIG_RAINBOW_BIRCH_TREE.weighted(0.2F)), RAINBOW_BIRCH_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(15, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_TREES = register("rainforest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.BIRCH.weighted(0.1F), BIG_OAK_TREE.weighted(0.4F)), Features.OAK)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_TREES = register("rainforest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.JUNGLE_TREE.weighted(0.1F)), MAHOGANY_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(12, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_CLEARING_TREES = register("rainforest_clearing_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPARSE_OAK_TREE.weighted(0.3F), BIG_OAK_TREE.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_CLIFFS_TREES = register("rainforest_cliffs_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.4F), MAHOGANY_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(20, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_EDGE_TREES = register("redwood_forest_edge_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(REDWOOD_TREE.weighted(0.3F), REDWOOD_TREE_MEDIUM.weighted(0.1F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> REDWOOD_FOREST_TREES = register("redwood_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(REDWOOD_TREE.weighted(0.1F), REDWOOD_TREE_MEDIUM.weighted(0.3F), REDWOOD_TREE_LARGE.weighted(0.5F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(18, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SCRUBLAND_TREES = register("scrubland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPRUCE_TWIGLET_TREE.weighted(0.3F), TALL_TWIGLET_TREE.weighted(0.1F)), ACACIA_TWIGLET)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.5F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SEASONAL_FOREST_TREES = register("seasonal_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BIG_OAK_TREE.weighted(0.05F), DYING_TREE.weighted(0.1F), MAPLE_TREE.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.3F), BIG_MAPLE_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_ORANGE_AUTUMN_TREE.weighted(0.1F)), ORANGE_AUTUMN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHIELD_TREES = register("shield_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BUSH.weighted(0.3F)), TALL_SPRUCE_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(6, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SEASONAL_FOREST_TREES = register("seasonal_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.OAK.weighted(0.05F), BIG_OAK_TREE.weighted(0.025F), MAPLE_TREE.weighted(0.2F), YELLOW_AUTUMN_TREE.weighted(0.3F), BIG_MAPLE_TREE.weighted(0.1F), BIG_YELLOW_AUTUMN_TREE.weighted(0.1F), BIG_ORANGE_AUTUMN_TREE.weighted(0.1F)), ORANGE_AUTUMN_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHROOMY_WETLAND_TREES = register("shroomy_wetland_trees", DARK_OAK_TWIGLET_TREE.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHRUBLAND_TREES = register("shrubland_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.05F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SHRUBLAND_HILLS_TREES = register("shrubland_hills_trees", BUSH.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(10, 0.05F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SILKGLADE_TREES = register("silkglade_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.SWAMP_TREE.weighted(0.05F), BIRCH_POPLAR.weighted(0.15F), COBWEB_BUSH.weighted(0.2F), SMALL_DEAD_TREE.weighted(0.5F), SILK_TREE.weighted(0.2F), FULL_COBWEB_BUSH.weighted(0.05F), FULL_SILK_TREE.weighted(0.05F)), BUSH)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SNOWY_CONIFEROUS_FOREST_TREES = register("snowy_coniferous_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(FIR_TREE.weighted(0.33333334F)), FIR_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(4, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> SNOWY_FOREST_TREES = register("snowy_forest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DYING_TREE.weighted(0.2F)), Features.OAK)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(3, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TEMPERATE_RAINFOREST_HILLS_TREES = register("temperate_rainforest_hills_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SEQUOIA_TREE.weighted(0.5F)), SEQUOIA_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(8, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TEMPERATE_RAINFOREST_TREES = register("temperate_rainforest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SWAMP_TREE.weighted(0.15F), BIG_OAK_TREE.weighted(0.1F), SEQUOIA_TREE.weighted(0.5F)), SEQUOIA_TREE_LARGE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(4, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TROPICAL_RAINFOREST_TREES = register("tropical_rainforest_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(Features.JUNGLE_TREE.weighted(0.1F)), MAHOGANY_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(12, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TROPICS_TREES = register("tropics_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(JUNGLE_TWIGLET_TREE.weighted(0.3F), FLOWERING_BUSH.weighted(0.1F)), PALM_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(11, 0.2F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TUNDRA_TREES = register("tundra_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TWIGLET_TREE_SMALL.weighted(0.1F)), MAPLE_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.3F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> TUNDRA_BOG_TREES = register("tundra_bog_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(SPRUCE_TWIGLET_TREE.weighted(0.4F), MAPLE_TWIGLET_TREE.weighted(0.6F)), TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(16, 0.4F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> UNDERGROWTH_TREES = register("undergrowth_trees", HELLBARK_TREE.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35)));
|
||||
public static final ConfiguredFeature<?, ?> VOLCANIC_PLAINS_TREES = register("volcanic_plains_trees", TWIGLET_TREE_VOLCANO.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(1, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> WASTELAND_TREES = register("wasteland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(DEAD_TREE_WASTELAND.weighted(0.2F)), DYING_TREE_WASTELAND)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.75F, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> WETLAND_TREES = register("wetland_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(TALL_SPRUCE_TREE.weighted(0.5F)), WILLOW_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.1F, 1))));
|
||||
public static final ConfiguredFeature<?, ?> WOODLAND_TREES = register("woodland_trees", Features.OAK.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(7, 0.1F, 1))));
|
||||
|
||||
// Biome Flower Listings
|
||||
public static final ConfiguredFeature<?, ?> CHAPARRAL_FLOWERS = register("chaparral_flowers", BOPFeatures.CHAPARRAL_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(17)));
|
||||
public static final ConfiguredFeature<?, ?> CHERRY_BLOSSOM_GROVE_FLOWERS = register("cherry_blossom_grove_flowers", BOPFeatures.CHERRY_BLOSSOM_GROVE_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> CONIFEROUS_FOREST_FLOWERS = register("coniferous_forest_flowers", BOPFeatures.CONIFEROUS_FOREST_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(4)));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_DESERT_FLOWERS = register("lush_desert_flowers", BOPFeatures.WILDFLOWER_FEATURE.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> FLOWER_MEADOW_FLOWERS = register("flower_meadow_flowers", BOPFeatures.FLOWER_MEADOW_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(150)));
|
||||
public static final ConfiguredFeature<?, ?> GROVE_FLOWERS = register("grove_flowers", BOPFeatures.EXTENDED_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> JUNGLE_FLOWERS = register("jungle_flowers", BOPFeatures.JUNGLE_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> LAVENDER_FIELD_FLOWERS = register("lavender_field_flowers", BOPFeatures.LAVENDER_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(500)));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_GRASSLAND_FLOWERS = register("lush_grassland_flowers", BOPFeatures.LUSH_GRASSLAND_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> LUSH_SWAMP_FLOWERS = register("lush_swamp_flowers", BOPFeatures.LUSH_SWAMP_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> LAVENDER_FLOWERS = register("lavender_flowers", BOPFeatures.LAVENDER_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(500)));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_FLOWERS = register("meadow_flowers", BOPFeatures.MEADOW_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> MEADOW_FLOWERS_2 = register("meadow_flowers_2", BOPFeatures.FLOWER_MEADOW_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> MOOR_FLOWERS = register("moor_flowers", BOPFeatures.MOOR_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> MOOR_FLOWERS_2 = register("moor_flowers_2", BOPFeatures.VIOLET_FEATURE.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(50)));
|
||||
public static final ConfiguredFeature<?, ?> MYSTIC_GROVE_FLOWERS = register("mystic_grove_flowers", BOPFeatures.MYSTIC_GROVE_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(18)));
|
||||
public static final ConfiguredFeature<?, ?> MYSTIC_PLAINS_FLOWERS = register("mystic_plains_flowers", BOPFeatures.MYSTIC_GROVE_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(50)));
|
||||
public static final ConfiguredFeature<?, ?> OMINOUS_WOODS_FLOWERS = register("ominous_woods_flowers", BOPFeatures.OMINOUS_WOODS_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> ORCHARD_FLOWERS = register("orchard_flowers", BOPFeatures.EXTENDED_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(15)));
|
||||
public static final ConfiguredFeature<?, ?> ORIGIN_FLOWERS = register("origin_flowers", BOPFeatures.ORIGIN_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(4)));
|
||||
public static final ConfiguredFeature<?, ?> POPPY_FIELD_FLOWERS = register("poppy_field_flowers", BOPFeatures.POPPY_FEATURE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(500)));
|
||||
public static final ConfiguredFeature<?, ?> RAINBOW_HILLS_FLOWERS = register("rainbow_hills_flowers", BOPFeatures.RAINBOW_HILLS_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(25)));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_FLOWERS = register("rainforest_flowers", BOPFeatures.RAINFOREST_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_FLOWERS = register("rainforest_flowers", BOPFeatures.RAINFOREST_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(5)));
|
||||
public static final ConfiguredFeature<?, ?> SHRUBLAND_FLOWERS = register("shrubland_flowers", BOPFeatures.SHRUBLAND_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> SNOWY_FLOWERS = register("snowy_flowers", BOPFeatures.SNOWY_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> TROPIC_FLOWERS = register("tropic_flowers", BOPFeatures.TROPICS_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(15)));
|
||||
|
@ -296,10 +278,11 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> BLACK_SAND_DISK = register("black_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.black_sand.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(4));
|
||||
public static final ConfiguredFeature<?, ?> BONE_SPINE = register("bone_spine", BOPFeatures.BONE_SPINE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> BRAMBLE = register("bramble", BOPFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> DENSE_BAYOU_VINES = register("dense_bayou_vines", BOPFeatures.DENSE_BAYOU_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128));
|
||||
public static final ConfiguredFeature<?, ?> FLESH_TENDON = register("flesh_tendon", BOPFeatures.FLESH_TENDON.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(65)));
|
||||
public static final ConfiguredFeature<?, ?> GRAVEL_DISK_EXTRA = register("gravel_disk_extra", Feature.DISK.configured(new SphereReplaceConfig(Blocks.GRAVEL.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(6));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_BROWN_MUSHROOM_EXTRA = register("huge_brown_mushroom_extra", Features.HUGE_BROWN_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(17)));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_GLOWSHROOM = register("huge_glowshroom", BOPFeatures.HUGE_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(7)));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_BROWN_MUSHROOM_EXTRA = register("huge_brown_mushroom_extra", Features.HUGE_BROWN_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(19)));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_GLOWSHROOM = register("huge_glowshroom", BOPFeatures.HUGE_GLOWSHROOM.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(9)));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_RED_MUSHROOM_EXTRA = register("huge_red_mushroom_extra", Features.HUGE_RED_MUSHROOM.decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(6)));
|
||||
public static final ConfiguredFeature<?, ?> HUGE_TOADSTOOL = register("huge_toadstool", BOPFeatures.HUGE_TOADSTOOL.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(1)));
|
||||
public static final ConfiguredFeature<?, ?> LARGE_CRYSTAL = register("large_crystal", BOPFeatures.LARGE_CRYSTAL.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(200)));
|
||||
|
@ -310,11 +293,10 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> NETHER_BRAMBLE = register("nether_bramble", BOPFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(50)));
|
||||
public static final ConfiguredFeature<?, ?> NETHER_VINES = register("nether_vines", BOPFeatures.NETHER_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(150)));
|
||||
public static final ConfiguredFeature<?, ?> OBSIDIAN_SPLATTER = register("obsidian_splatter", BOPFeatures.OBSIDIAN_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(12)));
|
||||
public static final ConfiguredFeature<?, ?> ORANGE_SAND_DISK = register("orange_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.orange_sand.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(5));
|
||||
public static final ConfiguredFeature<?, ?> OVERGROWN_CLIFFS_SPRING = register("overgrown_cliffs_spring", Feature.SPRING.configured(BOPFeatures.OVERGROWN_CLIFFS_SPRING_CONFIG).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128));
|
||||
public static final ConfiguredFeature<?, ?> OVERGROWN_CLIFFS_VINES = register("overgrown_cliffs_vines", BOPFeatures.OVERGROWN_CLIFFS_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(150)));
|
||||
public static final ConfiguredFeature<?, ?> PODZOL_SPLATTER = register("podzol_splatter", BOPFeatures.PODZOL_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(14)));
|
||||
public static final ConfiguredFeature<?, ?> ORANGE_SAND_DISK = register("orange_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.orange_sand.defaultBlockState(), FeatureSpread.of(2, 4), 2, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(3));
|
||||
public static final ConfiguredFeature<?, ?> PODZOL_SPLATTER = register("podzol_splatter", BOPFeatures.PODZOL_SPLATTER.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(16)));
|
||||
public static final ConfiguredFeature<?, ?> PUMPKIN_PATCH = register("pumpkin_patch", BOPFeatures.PUMPKIN_PATCH.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35)));
|
||||
public static final ConfiguredFeature<?, ?> RAINFOREST_CLIFFS_VINES = register("overgrown_cliffs_vines", BOPFeatures.RAINFOREST_CLIFFS_VINES.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128));
|
||||
public static final ConfiguredFeature<?, ?> SCATTERED_ROCKS = register("scattered_rocks", BOPFeatures.SCATTERED_ROCKS.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
|
||||
public static final ConfiguredFeature<?, ?> SCRUB_EXTRA = register("scrub_extra", BOPFeatures.SCRUB.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35)));
|
||||
public static final ConfiguredFeature<?, ?> SCRUB_NORMAL = register("scrub_normal", BOPFeatures.SCRUB.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10)));
|
||||
|
@ -329,7 +311,9 @@ public class BOPConfiguredFeatures
|
|||
public static final ConfiguredFeature<?, ?> VOLCANO_SPRING = register("volcano_spring", Feature.SPRING.configured(BOPFeatures.VOLCANO_SPRING_CONFIG).decorated(Placement.RANGE_VERY_BIASED.configured(new TopSolidRangeConfig(8, 16, 256))).squared().count(75));
|
||||
public static final ConfiguredFeature<?, ?> WATER_LAKE_COMMON = register("water_lake_common", Feature.LAKE.configured(new BlockStateFeatureConfig(Blocks.WATER.defaultBlockState())).decorated(Placement.WATER_LAKE.configured(new ChanceConfig(1))));
|
||||
public static final ConfiguredFeature<?, ?> WATER_LAKE_UNCOMMON = register("water_lake_uncommon", Feature.LAKE.configured(new BlockStateFeatureConfig(Blocks.WATER.defaultBlockState())).decorated(Placement.WATER_LAKE.configured(new ChanceConfig(3))));
|
||||
public static final ConfiguredFeature<?, ?> WHITE_SAND_DISK = register("white_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.white_sand.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(8));
|
||||
public static final ConfiguredFeature<?, ?> WATER_SPRING_EXTRA = register("water_spring_extra", Feature.SPRING.configured(BOPFeatures.OVERGROWN_CLIFFS_SPRING_CONFIG).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).count(128));
|
||||
public static final ConfiguredFeature<?, ?> WHITE_SAND_DISK = register("white_sand_disk", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.white_sand.defaultBlockState(), FeatureSpread.of(2, 4), 2, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(2));
|
||||
public static final ConfiguredFeature<?, ?> WHITE_SAND_DISK_EXTRA = register("white_sand_disk_extra", Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.white_sand.defaultBlockState(), FeatureSpread.of(4, 2), 1, ImmutableList.of(Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()))).decorated(Features.Placements.TOP_SOLID_HEIGHTMAP_SQUARE).count(8));
|
||||
|
||||
private static <FC extends IFeatureConfig> ConfiguredFeature<FC, ?> register(String key, ConfiguredFeature<FC, ?> feature)
|
||||
{
|
||||
|
|
|
@ -120,6 +120,7 @@ public class BOPFeatures
|
|||
public static final Feature<NoFeatureConfig> BIG_PUMPKIN = register("big_pumpkin", new BigPumpkinFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> BONE_SPINE = register("bone_spine", new BoneSpineFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> BRAMBLE = register("bramble", new BrambleFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> DENSE_BAYOU_VINES = register("dense_bayou_vines", new DenseBayouVinesFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> FERN_GRASS = register("fern_grass", new FernGrassFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> FLESH_TENDON = register("flesh_tendon", new FleshTendonFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> GRASS_SPLATTER = register("grass_splatter", new GrassSplatterFeature(NoFeatureConfig.CODEC));
|
||||
|
@ -130,7 +131,7 @@ public class BOPFeatures
|
|||
public static final Feature<NoFeatureConfig> MYCELIUM_SPLATTER = register("mycelium_splatter", new MyceliumSplatterFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> NETHER_VINES = register("nether_vines", new NetherVinesFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> OBSIDIAN_SPLATTER = register("obsidian_splatter", new ObsidianSplatterFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> OVERGROWN_CLIFFS_VINES = register("overgrown_cliffs_vines", new OvergrownCliffsVinesFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> RAINFOREST_CLIFFS_VINES = register("rainforest_cliffs_vines", new RainforestCliffsVinesFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> PODZOL_SPLATTER = register("podzol_splatter", new PodzolSplatterFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> PUMPKIN_PATCH = register("pumpkin_patch", new PumpkinPatchFeature(NoFeatureConfig.CODEC));
|
||||
public static final Feature<NoFeatureConfig> SCATTERED_ROCKS = register("scattered_rocks", new ScatteredRocksFeature(NoFeatureConfig.CODEC));
|
||||
|
@ -146,15 +147,11 @@ public class BOPFeatures
|
|||
public static final Feature<ColumnConfig> BLACK_SANDSTONE_COLUMN = register("black_sandstone_column", new BlackSandstoneColumnFeature(ColumnConfig.CODEC));
|
||||
|
||||
//Flowers
|
||||
public static final FlowersFeature<NoFeatureConfig> CHAPARRAL_FLOWERS = register("chaparral_flowers", new ChaparralFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> CHERRY_BLOSSOM_GROVE_FLOWERS = register("cherry_blossom_grove_flowers", new CherryBlossomGroveFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> CONIFEROUS_FOREST_FLOWERS = register("coniferous_forest_flowers", new ConiferousForestFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> EXTENDED_FLOWERS = register("extended_flowers", new ExtendedFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> FLOWER_MEADOW_FLOWERS = register("flower_meadow_flowers", new FlowerMeadowFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> JUNGLE_FLOWERS = register("jungle_flowers", new JungleFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> LAVENDER_FLOWERS = register("lavender_flowers", new LavenderFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> LUSH_GRASSLAND_FLOWERS = register("lush_grassland_flowers", new LushGrasslandFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> LUSH_SWAMP_FLOWERS = register("lush_swamp_flowers", new LushSwampFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> MEADOW_FLOWERS = register("meadow_flowers", new MeadowFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> MOOR_FLOWERS = register("moor_flowers", new MoorFlowersFeature());
|
||||
public static final FlowersFeature<NoFeatureConfig> MYSTIC_GROVE_FLOWERS = register("mystic_grove_flowers", new MysticGroveFlowersFeature());
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ChaparralFlowersFeature extends DefaultFlowersFeatureNoConfig
|
||||
{
|
||||
private static final Block[] FLOWERS = new Block[]{BOPBlocks.wildflower, Blocks.AZURE_BLUET, Blocks.DANDELION, Blocks.POPPY};
|
||||
|
||||
@Override
|
||||
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
|
||||
{
|
||||
double d0 = MathHelper.clamp((1.0D + Biome.BIOME_INFO_NOISE.getValue((double)p_202355_2_.getX() / 48.0D, (double)p_202355_2_.getZ() / 48.0D, false)) / 2.0D, 0.0D, 0.9999D);
|
||||
Block block = FLOWERS[(int)(d0 * (double)FLOWERS.length)];
|
||||
return block.defaultBlockState();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import biomesoplenty.common.util.block.IBlockPosQuery;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.VineBlock;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.ISeedReader;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.gen.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class DenseBayouVinesFeature extends Feature<NoFeatureConfig>
|
||||
{
|
||||
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.willow_log || world.getBlockState(pos).getBlock() == BOPBlocks.willow_leaves || world.getBlockState(pos).getBlock() == Blocks.OAK_LEAVES || world.getBlockState(pos).getBlock() == Blocks.GRASS_BLOCK || world.getBlockState(pos).getBlock() == Blocks.DIRT;
|
||||
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos);
|
||||
int minHeight = 2;
|
||||
int maxHeight = 6;
|
||||
|
||||
public DenseBayouVinesFeature(Codec<NoFeatureConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean place(ISeedReader world, ChunkGenerator chunkGenerator, Random rand, BlockPos startPos, NoFeatureConfig config)
|
||||
{
|
||||
while (startPos.getY() > 1 && this.replace.matches(world, startPos)) {startPos = startPos.below();}
|
||||
|
||||
if (!this.placeOn.matches(world, startPos.offset(2, 0, 2)))
|
||||
{
|
||||
// Abandon if we can't place the tree on this block
|
||||
return false;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; ++i)
|
||||
{
|
||||
BlockPos genPos = startPos.offset(rand.nextInt(4) - rand.nextInt(4), rand.nextInt(3) - rand.nextInt(3), rand.nextInt(4) - rand.nextInt(4));
|
||||
|
||||
if (!this.replace.matches(world, genPos)) continue;
|
||||
|
||||
BlockState vineState = BOPBlocks.willow_vine.defaultBlockState();
|
||||
|
||||
// make sure there is an adjacent block for the vine to attach to
|
||||
List<Direction> validDirections = Lists.newArrayList();
|
||||
|
||||
for (Direction facing : Direction.values()) {
|
||||
if (facing == Direction.UP || facing == Direction.DOWN) continue;
|
||||
if (this.placeOn.matches(world, genPos.relative(facing))) validDirections.add(facing);
|
||||
}
|
||||
|
||||
if (validDirections.isEmpty()) continue;
|
||||
|
||||
Direction direction = validDirections.get(rand.nextInt(validDirections.size()));
|
||||
vineState = vineState.setValue(VineBlock.getPropertyForFace(direction), Boolean.valueOf(true));
|
||||
|
||||
// choose random target height
|
||||
int targetHeight = minHeight + rand.nextInt(maxHeight);
|
||||
|
||||
// keep placing blocks upwards (if there's room)
|
||||
for (int height = 0; height <= targetHeight; height++)
|
||||
{
|
||||
BlockPos offsetPos = genPos.below(height);
|
||||
|
||||
if (replace.matches(world, offsetPos) && vineState.getBlock().canSurvive(vineState, world, offsetPos))
|
||||
{
|
||||
world.setBlock(offsetPos, vineState, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean setBlock(IWorld world, BlockPos pos, BlockState state)
|
||||
{
|
||||
if (this.replace.matches(world, pos))
|
||||
{
|
||||
super.setBlock(world, pos, state);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class JungleFlowersFeature extends DefaultFlowersFeatureNoConfig
|
||||
{
|
||||
@Override
|
||||
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
|
||||
{
|
||||
int j = p_202355_1_.nextInt(3);
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
return BOPBlocks.orange_cosmos.defaultBlockState();
|
||||
case 1:
|
||||
return Blocks.POPPY.defaultBlockState();
|
||||
case 2:
|
||||
default:
|
||||
return Blocks.DANDELION.defaultBlockState();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class LushGrasslandFlowersFeature extends DefaultFlowersFeatureNoConfig
|
||||
{
|
||||
@Override
|
||||
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
|
||||
{
|
||||
int j = p_202355_1_.nextInt(2);
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
return BOPBlocks.orange_cosmos.defaultBlockState();
|
||||
case 1:
|
||||
default:
|
||||
return Blocks.OXEYE_DAISY.defaultBlockState();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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.world.gen.feature;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class LushSwampFlowersFeature extends DefaultFlowersFeatureNoConfig
|
||||
{
|
||||
private static final Block[] FLOWERS = new Block[]{Blocks.BLUE_ORCHID, Blocks.AZURE_BLUET, Blocks.DANDELION, Blocks.POPPY};
|
||||
|
||||
@Override
|
||||
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
|
||||
{
|
||||
double d0 = MathHelper.clamp((1.0D + Biome.BIOME_INFO_NOISE.getValue((double)p_202355_2_.getX() / 48.0D, (double)p_202355_2_.getZ() / 48.0D, false)) / 2.0D, 0.0D, 0.9999D);
|
||||
Block block = FLOWERS[(int)(d0 * (double)FLOWERS.length)];
|
||||
return block.defaultBlockState();
|
||||
}
|
||||
}
|
|
@ -18,14 +18,14 @@ import net.minecraft.world.gen.feature.NoFeatureConfig;
|
|||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class OvergrownCliffsVinesFeature extends Feature<NoFeatureConfig>
|
||||
public class RainforestCliffsVinesFeature extends Feature<NoFeatureConfig>
|
||||
{
|
||||
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == Blocks.DIRT || world.getBlockState(pos).getBlock() == Blocks.GRASS_BLOCK || world.getBlockState(pos).getBlock() == Blocks.STONE || world.getBlockState(pos).getBlock() == Blocks.TERRACOTTA || world.getBlockState(pos).getBlock() == Blocks.ANDESITE || world.getBlockState(pos).getBlock() == Blocks.GRANITE || world.getBlockState(pos).getBlock() == Blocks.DIORITE;
|
||||
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos);
|
||||
int minHeight = 7;
|
||||
int maxHeight = 14;
|
||||
|
||||
public OvergrownCliffsVinesFeature(Codec<NoFeatureConfig> deserializer)
|
||||
public RainforestCliffsVinesFeature(Codec<NoFeatureConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
|
@ -8,25 +8,28 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class RainforestFlowersFeature extends DefaultFlowersFeatureNoConfig
|
||||
{
|
||||
private static final Block[] FLOWERS = new Block[]{BOPBlocks.pink_daffodil, Blocks.BLUE_ORCHID, Blocks.OXEYE_DAISY, Blocks.DANDELION, Blocks.POPPY};
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
|
||||
{
|
||||
double d0 = MathHelper.clamp((1.0D + Biome.BIOME_INFO_NOISE.getValue((double)p_202355_2_.getX() / 48.0D, (double)p_202355_2_.getZ() / 48.0D, false)) / 2.0D, 0.0D, 0.9999D);
|
||||
Block block = FLOWERS[(int)(d0 * (double)FLOWERS.length)];
|
||||
return block.defaultBlockState();
|
||||
int j = p_202355_1_.nextInt(3);
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
return BOPBlocks.orange_cosmos.defaultBlockState();
|
||||
case 1:
|
||||
return Blocks.POPPY.defaultBlockState();
|
||||
case 2:
|
||||
default:
|
||||
return Blocks.DANDELION.defaultBlockState();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,8 +32,7 @@ public class BOPSurfaceBuilders
|
|||
public static final SurfaceBuilderConfig DRIED_SALT_SURFACE = new SurfaceBuilderConfig(BOPBlocks.dried_salt.defaultBlockState(), BOPBlocks.dried_salt.defaultBlockState(), BOPBlocks.dried_salt.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig ORIGIN_GRASS_SURFACE = new SurfaceBuilderConfig(BOPBlocks.origin_grass_block.defaultBlockState(), Blocks.DIRT.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
|
||||
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> CHAPARRAL = register("chaparral", new ChaparralSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> COLD_DESERT = register("cold_desert", new ColdDesertSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> EXPOSED_STONE = register("exposed_stone", new ExposedStoneSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> TERRACOTTA = register("terracotta", new TerracottaSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> MARSH = register("marsh", new MarshSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> MANGROVE = register("mangrove", new MangroveSurfaceBuilder(SurfaceBuilderConfig.CODEC));
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* 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.world.gen.surfacebuilders;
|
||||
|
||||
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.chunk.IChunk;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class ColdDesertSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
|
||||
{
|
||||
public ColdDesertSurfaceBuilder(Codec<SurfaceBuilderConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config)
|
||||
{
|
||||
if (noise > 2.6D)
|
||||
{
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPSurfaceBuilders.SNOW_SNOW_GRAVEL_SURFACE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_GRAVEL);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -16,9 +16,9 @@ import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
|
|||
|
||||
import java.util.Random;
|
||||
|
||||
public class ChaparralSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
|
||||
public class ExposedStoneSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
|
||||
{
|
||||
public ChaparralSurfaceBuilder(Codec<SurfaceBuilderConfig> deserializer)
|
||||
public ExposedStoneSurfaceBuilder(Codec<SurfaceBuilderConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
|
@ -60,14 +60,6 @@ public enum BOPMixOceansLayer implements IAreaTransformer3, IDimOffset0Transform
|
|||
oceanId = BOPLayerUtil.WARM_OCEAN;
|
||||
break;
|
||||
|
||||
case WASTELAND:
|
||||
if (BiomeUtil.exists(BOPBiomes.wasteland))
|
||||
{
|
||||
oceanId = BiomeUtil.getBiomeId(BOPBiomes.wasteland);
|
||||
break;
|
||||
}
|
||||
// Fallthrough
|
||||
|
||||
default:
|
||||
oceanId = BOPLayerUtil.OCEAN;
|
||||
break;
|
||||
|
|
|
@ -61,17 +61,12 @@ public enum BOPShoreLayer implements ICastleTransformer
|
|||
return MUSHROOM_FIELD_SHORE;
|
||||
}
|
||||
}
|
||||
else if (biome != null && biome.getBiomeCategory() == Biome.Category.JUNGLE)
|
||||
else if (biome != null && biome.getBiomeCategory() == Biome.Category.JUNGLE && biomeId != getBiomeIdIfPresent(BOPBiomes.rainforest, biomeId) && biomeId != getBiomeIdIfPresent(BOPBiomes.rainforest_clearing, biomeId) && biomeId != getBiomeIdIfPresent(BOPBiomes.rainforest_cliffs, biomeId))
|
||||
{
|
||||
if (!isJungleCompatible(northBiomeId) || !isJungleCompatible(eastBiomeId) || !isJungleCompatible(southBiomeId) || !isJungleCompatible(westBiomeId))
|
||||
{
|
||||
return JUNGLE_EDGE;
|
||||
}
|
||||
|
||||
if (BOPLayerUtil.isOcean(northBiomeId) || BOPLayerUtil.isOcean(eastBiomeId) || BOPLayerUtil.isOcean(southBiomeId) || BOPLayerUtil.isOcean(westBiomeId))
|
||||
{
|
||||
return getBiomeIdIfPresent(BOPBiomes.mangrove, biomeId);
|
||||
}
|
||||
}
|
||||
else if (biomeId != MOUNTAINS && biomeId != WOODED_MOUNTAINS && biomeId != MOUNTAIN_EDGE)
|
||||
{
|
||||
|
@ -103,10 +98,6 @@ public enum BOPShoreLayer implements ICastleTransformer
|
|||
}
|
||||
else
|
||||
{
|
||||
if (key == Biomes.JUNGLE || key == Biomes.JUNGLE_HILLS || key == Biomes.JUNGLE_EDGE || key == Biomes.MODIFIED_JUNGLE || key == Biomes.BAMBOO_JUNGLE || key == Biomes.BAMBOO_JUNGLE_HILLS || key == Biomes.MODIFIED_JUNGLE_EDGE)
|
||||
{
|
||||
return getBiomeIdIfPresent(BOPBiomes.mangrove, biomeId);
|
||||
}
|
||||
if (key == Biomes.TAIGA || key == Biomes.TAIGA_MOUNTAINS || key == Biomes.TAIGA_HILLS || key == Biomes.GIANT_TREE_TAIGA || key == Biomes.GIANT_SPRUCE_TAIGA || key == Biomes.GIANT_TREE_TAIGA_HILLS || key == Biomes.GIANT_SPRUCE_TAIGA_HILLS || key == Biomes.BIRCH_FOREST_HILLS || key == Biomes.BIRCH_FOREST || key == Biomes.TALL_BIRCH_HILLS || key == Biomes.TALL_BIRCH_FOREST || key == Biomes.DARK_FOREST_HILLS || key == Biomes.DARK_FOREST)
|
||||
{
|
||||
return getBiomeIdIfPresent(BOPBiomes.gravel_beach, biomeId);
|
||||
|
|
|
@ -16,8 +16,8 @@ import biomesoplenty.common.world.layer.traits.IBOPContextExtended;
|
|||
public enum RainfallNoiseLayer implements IBOPAreaTransformer0
|
||||
{
|
||||
SMALL_ZONES(0.20D),
|
||||
MEDIUM_ZONES(0.10D),
|
||||
LARGE_ZONES(0.05D);
|
||||
MEDIUM_ZONES(0.05D),
|
||||
LARGE_ZONES(0.01D);
|
||||
|
||||
private final double scale;
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ import biomesoplenty.common.world.layer.traits.IBOPContextExtended;
|
|||
public enum TemperatureNoiseLayer implements IBOPAreaTransformer0
|
||||
{
|
||||
SMALL_ZONES(0.20D),
|
||||
MEDIUM_ZONES(0.10D),
|
||||
LARGE_ZONES(0.05D);
|
||||
MEDIUM_ZONES(0.05D),
|
||||
LARGE_ZONES(0.01D);
|
||||
|
||||
private final double scale;
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ public class BiomesOPlenty
|
|||
|
||||
private void commonSetup(final FMLCommonSetupEvent event)
|
||||
{
|
||||
ModEntities.setup();
|
||||
ModVanillaCompat.setup();
|
||||
}
|
||||
|
||||
|
|
|
@ -123,67 +123,58 @@ public class ModBiomes
|
|||
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.TECHNICAL_BIOME);
|
||||
|
||||
// Both a standard biome and a technical biome
|
||||
registerBiome(new MangroveBiome(), "mangrove");
|
||||
registerBiome(new BayouMangrove(), "bayou_mangrove");
|
||||
|
||||
//Overworld Biomes
|
||||
registerBiome(new AlpsBiome(), "alps");
|
||||
registerBiome(new BayouBiome(), "bayou");
|
||||
registerBiome(new BogBiome(), "bog");
|
||||
registerBiome(new BorealForestBiome(), "boreal_forest");
|
||||
registerBiome(new ChaparralBiome(), "chaparral");
|
||||
registerBiome(new CherryBlossomGroveBiome(), "cherry_blossom_grove");
|
||||
registerBiome(new ColdDesertBiome(), "cold_desert");
|
||||
registerBiome(new ConiferousForestBiome(), "coniferous_forest");
|
||||
registerBiome(new ConiferousLakesBiome(), "coniferous_lakes");
|
||||
registerBiome(new DeadForestBiome(), "dead_forest");
|
||||
registerBiome(new DenseBayouBiome(), "dense_bayou");
|
||||
registerBiome(new DrylandBiome(), "dryland");
|
||||
registerBiome(new DrySteppeBiome(), "dry_steppe");
|
||||
registerBiome(new FirClearingBiome(), "fir_clearing");
|
||||
registerBiome(new FloodplainBiome(), "floodplain");
|
||||
registerBiome(new FlowerMeadowBiome(), "flower_meadow");
|
||||
registerBiome(new FungalJungleBiome(), "fungal_jungle");
|
||||
registerBiome(new GrasslandBiome(), "grassland");
|
||||
registerBiome(new GroveBiome(), "grove");
|
||||
registerBiome(new HighlandBiome(), "highland");
|
||||
registerBiome(new HighlandMoorBiome(), "highland_moor");
|
||||
registerBiome(new JadeCliffsBiome(), "jade_cliffs");
|
||||
registerBiome(new LavenderFieldBiome(), "lavender_field");
|
||||
registerBiome(new LushDesertBiome(), "lush_desert");
|
||||
registerBiome(new LushGrasslandBiome(), "lush_grassland");
|
||||
registerBiome(new LushSwampBiome(), "lush_swamp");
|
||||
registerBiome(new MapleWoodsBiome(), "maple_woods");
|
||||
registerBiome(new MarshBiome(), "marsh");
|
||||
registerBiome(new MeadowBiome(), "meadow");
|
||||
registerBiome(new MireBiome(), "mire");
|
||||
registerBiome(new MuskegBiome(), "muskeg");
|
||||
registerBiome(new MysticGroveBiome(), "mystic_grove");
|
||||
registerBiome(new MysticPlainsBiome(), "mystic_plains");
|
||||
registerBiome(new OminousWoodsBiome(), "ominous_woods");
|
||||
registerBiome(new OriginValleyBiome(), "origin_valley");
|
||||
registerBiome(new OutbackBiome(), "outback");
|
||||
registerBiome(new OvergrownCliffsBiome(), "overgrown_cliffs");
|
||||
registerBiome(new PastureBiome(), "pasture");
|
||||
registerBiome(new PoppyFieldBiome(), "poppy_field");
|
||||
registerBiome(new PrairieBiome(), "prairie");
|
||||
registerBiome(new PumpkinPatchBiome(), "pumpkin_patch");
|
||||
registerBiome(new RainbowHillsBiome(), "rainbow_hills");
|
||||
registerBiome(new RainforestBiome(), "rainforest");
|
||||
registerBiome(new RainforestClearingBiome(), "rainforest_clearing");
|
||||
registerBiome(new RainforestCliffsBiome(), "rainforest_cliffs");
|
||||
registerBiome(new RedwoodForestBiome(), "redwood_forest");
|
||||
registerBiome(new ScrublandBiome(), "scrubland");
|
||||
registerBiome(new SeasonalForestBiome(), "seasonal_forest");
|
||||
registerBiome(new ShieldBiome(), "shield");
|
||||
registerBiome(new ShroomyWetlandBiome(), "shroomy_wetland");
|
||||
registerBiome(new ShrublandBiome(), "shrubland");
|
||||
registerBiome(new ShrublandHillsBiome(), "shrubland_hills");
|
||||
registerBiome(new SilkgladeBiome(), "silkglade");
|
||||
registerBiome(new SnowyConiferousForestBiome(), "snowy_coniferous_forest");
|
||||
registerBiome(new SnowyFirClearingBiome(), "snowy_fir_clearing");
|
||||
registerBiome(new SnowyForestBiome(), "snowy_forest");
|
||||
registerBiome(new SteppeBiome(), "steppe");
|
||||
registerBiome(new TemperateRainforestBiome(), "temperate_rainforest");
|
||||
registerBiome(new TemperateRainforestHillsBiome(), "temperate_rainforest_hills");
|
||||
registerBiome(new TropicalRainforestBiome(), "tropical_rainforest");
|
||||
registerBiome(new TropicsBiome(), "tropics");
|
||||
registerBiome(new TundraBiome(), "tundra");
|
||||
registerBiome(new TundraBasinBiome(), "tundra_basin");
|
||||
registerBiome(new TundraBogBiome(), "tundra_bog");
|
||||
registerBiome(new VolcanoBiome(), "volcano");
|
||||
registerBiome(new WastelandBiome(), "wasteland");
|
||||
registerBiome(new WetlandBiome(), "wetland");
|
||||
registerBiome(new WoodlandBiome(), "woodland");
|
||||
registerBiome(new WetlandMarshBiome(), "wetland_marsh");
|
||||
|
||||
//Nether Biomes
|
||||
registerBiome(new CrystallineChasmBiome(), "crystalline_chasm");
|
||||
|
@ -195,13 +186,32 @@ public class ModBiomes
|
|||
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.STANDARD_BIOME);
|
||||
|
||||
//Sub/Island Biomes (Note: Rarity supports two decimal places)
|
||||
registerSubBiome(coniferous_forest, fir_clearing, 0.38F, 100);
|
||||
registerSubBiome(bayou, dense_bayou, 1.0F, 100);
|
||||
registerSubBiome(bayou, bayou_mangrove, 1.0F, 100);
|
||||
|
||||
registerSubBiome(coniferous_forest, fir_clearing, 0.75F, 100);
|
||||
registerSubBiome(coniferous_forest, coniferous_lakes, 1.0F, 100);
|
||||
|
||||
registerSubBiome(highland, highland_moor, 0.75F, 100);
|
||||
registerSubBiome(meadow, flower_meadow, 0.5F, 100);
|
||||
registerSubBiome(prairie, pasture, 1.0F, 100);
|
||||
registerSubBiome(seasonal_forest, pumpkin_patch, 0.45F, 100);
|
||||
registerSubBiome(snowy_coniferous_forest, snowy_fir_clearing, 0.5F, 100);
|
||||
registerSubBiome(temperate_rainforest, temperate_rainforest_hills, 0.8F, 100);
|
||||
|
||||
registerSubBiome(dryland, dry_steppe, 1.0F, 100);
|
||||
|
||||
registerSubBiome(mystic_grove, mystic_plains, 0.75F, 100);
|
||||
|
||||
registerSubBiome(rainforest, rainforest_cliffs, 2.0F, 100);
|
||||
registerSubBiome(rainforest, rainforest_clearing, 2.0F, 100);
|
||||
|
||||
registerSubBiome(shrubland, shrubland_hills, 0.75F, 100);
|
||||
|
||||
registerSubBiome(tundra, tundra_basin, 1.5F, 100);
|
||||
registerSubBiome(tundra, tundra_bog, 2.0F, 100);
|
||||
|
||||
registerSubBiome(wetland, wetland_marsh, 1.25F, 100);
|
||||
registerSubBiome(wetland, shroomy_wetland, 1.0F, 100);
|
||||
|
||||
BiomeRegistry.configureSubBiomes();
|
||||
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.SUB_BIOME);
|
||||
|
@ -227,16 +237,18 @@ public class ModBiomes
|
|||
|
||||
// Set up vanilla biomes
|
||||
registerVanillaBiome(Biomes.SNOWY_TUNDRA, BOPClimates.ICE_CAP, 10);
|
||||
registerVanillaBiome(Biomes.MOUNTAINS, BOPClimates.TUNDRA, 7);
|
||||
registerVanillaBiome(Biomes.SNOWY_TAIGA, BOPClimates.TUNDRA, 10);
|
||||
registerVanillaBiome(Biomes.FROZEN_OCEAN, BOPClimates.ICE_CAP, 3);
|
||||
registerVanillaBiome(Biomes.MOUNTAINS, BOPClimates.TUNDRA, 10);
|
||||
registerVanillaBiome(Biomes.SNOWY_TAIGA, BOPClimates.TUNDRA, 7);
|
||||
registerVanillaBiome(Biomes.TAIGA, BOPClimates.WET_BOREAL, 10);
|
||||
registerVanillaBiome(Biomes.GIANT_TREE_TAIGA, BOPClimates.DRY_BOREAL, 5);
|
||||
registerVanillaBiome(Biomes.DARK_FOREST, BOPClimates.WET_TEMPERATE, 5);
|
||||
registerVanillaBiome(Biomes.SWAMP, BOPClimates.WET_TEMPERATE, 7);
|
||||
registerVanillaBiome(Biomes.BIRCH_FOREST, BOPClimates.DRY_TEMPERATE, 7);
|
||||
registerVanillaBiome(Biomes.FOREST, BOPClimates.COOL_TEMPERATE, 10);
|
||||
registerVanillaBiome(Biomes.BIRCH_FOREST, BOPClimates.COOL_TEMPERATE, 7);
|
||||
registerVanillaBiome(Biomes.PLAINS, BOPClimates.WARM_TEMPERATE, 10);
|
||||
registerVanillaBiome(Biomes.JUNGLE, BOPClimates.TROPICAL, 15);
|
||||
registerVanillaBiome(Biomes.SWAMP, BOPClimates.SUBTROPICAL, 7);
|
||||
registerVanillaBiome(Biomes.LUKEWARM_OCEAN, BOPClimates.SUBTROPICAL, 3);
|
||||
registerVanillaBiome(Biomes.JUNGLE, BOPClimates.TROPICAL, 10);
|
||||
registerVanillaBiome(Biomes.SAVANNA, BOPClimates.SAVANNA, 10);
|
||||
registerVanillaBiome(Biomes.DESERT, BOPClimates.HOT_DESERT, 15);
|
||||
registerVanillaBiome(Biomes.BADLANDS_PLATEAU, BOPClimates.HOT_DESERT, 10);
|
||||
|
@ -259,19 +271,17 @@ public class ModBiomes
|
|||
registerVillagerType(alps, VillagerType.SNOW);
|
||||
registerVillagerType(alps_foothills, VillagerType.SNOW);
|
||||
registerVillagerType(bayou, VillagerType.SWAMP);
|
||||
registerVillagerType(bog, VillagerType.SWAMP);
|
||||
registerVillagerType(boreal_forest, VillagerType.TAIGA);
|
||||
registerVillagerType(chaparral, VillagerType.PLAINS);
|
||||
registerVillagerType(bayou_mangrove, VillagerType.SWAMP);
|
||||
registerVillagerType(cherry_blossom_grove, VillagerType.PLAINS);
|
||||
registerVillagerType(cold_desert, VillagerType.SNOW);
|
||||
registerVillagerType(coniferous_forest, VillagerType.TAIGA);
|
||||
registerVillagerType(coniferous_lakes, VillagerType.TAIGA);
|
||||
registerVillagerType(dead_forest, VillagerType.TAIGA);
|
||||
registerVillagerType(dense_bayou, VillagerType.SWAMP);
|
||||
registerVillagerType(dryland, VillagerType.SAVANNA);
|
||||
registerVillagerType(dry_steppe, VillagerType.SAVANNA);
|
||||
registerVillagerType(fir_clearing, VillagerType.TAIGA);
|
||||
registerVillagerType(floodplain, VillagerType.JUNGLE);
|
||||
registerVillagerType(flower_meadow, VillagerType.TAIGA);
|
||||
registerVillagerType(fungal_jungle, VillagerType.JUNGLE);
|
||||
registerVillagerType(grassland, VillagerType.PLAINS);
|
||||
registerVillagerType(gravel_beach, VillagerType.PLAINS);
|
||||
registerVillagerType(grove, VillagerType.PLAINS);
|
||||
registerVillagerType(highland, VillagerType.PLAINS);
|
||||
|
@ -279,48 +289,41 @@ public class ModBiomes
|
|||
registerVillagerType(jade_cliffs, VillagerType.PLAINS);
|
||||
registerVillagerType(lavender_field, VillagerType.PLAINS);
|
||||
registerVillagerType(lush_desert, VillagerType.DESERT);
|
||||
registerVillagerType(lush_grassland, VillagerType.JUNGLE);
|
||||
registerVillagerType(lush_swamp, VillagerType.JUNGLE);
|
||||
registerVillagerType(mangrove, VillagerType.SWAMP);
|
||||
registerVillagerType(maple_woods, VillagerType.TAIGA);
|
||||
registerVillagerType(marsh, VillagerType.SWAMP);
|
||||
registerVillagerType(meadow, VillagerType.TAIGA);
|
||||
registerVillagerType(mire, VillagerType.SWAMP);
|
||||
registerVillagerType(muskeg, VillagerType.SNOW);
|
||||
registerVillagerType(mystic_grove, VillagerType.PLAINS);
|
||||
registerVillagerType(mystic_plains, VillagerType.PLAINS);
|
||||
registerVillagerType(ominous_woods, VillagerType.SWAMP);
|
||||
registerVillagerType(orchard, VillagerType.PLAINS);
|
||||
registerVillagerType(origin_valley, VillagerType.PLAINS);
|
||||
registerVillagerType(outback, VillagerType.SAVANNA);
|
||||
registerVillagerType(overgrown_cliffs, VillagerType.JUNGLE);
|
||||
registerVillagerType(pasture, VillagerType.PLAINS);
|
||||
registerVillagerType(poppy_field, VillagerType.PLAINS);
|
||||
registerVillagerType(prairie, VillagerType.PLAINS);
|
||||
registerVillagerType(pumpkin_patch, VillagerType.PLAINS);
|
||||
registerVillagerType(rainbow_hills, VillagerType.PLAINS);
|
||||
registerVillagerType(rainforest, VillagerType.JUNGLE);
|
||||
registerVillagerType(rainforest_clearing, VillagerType.JUNGLE);
|
||||
registerVillagerType(rainforest_cliffs, VillagerType.JUNGLE);
|
||||
registerVillagerType(redwood_forest, VillagerType.PLAINS);
|
||||
registerVillagerType(redwood_forest_edge, VillagerType.PLAINS);
|
||||
registerVillagerType(scrubland, VillagerType.SAVANNA);
|
||||
registerVillagerType(seasonal_forest, VillagerType.PLAINS);
|
||||
registerVillagerType(shield, VillagerType.TAIGA);
|
||||
registerVillagerType(shroomy_wetland, VillagerType.SWAMP);
|
||||
registerVillagerType(shrubland, VillagerType.PLAINS);
|
||||
registerVillagerType(shrubland_hills, VillagerType.PLAINS);
|
||||
registerVillagerType(silkglade, VillagerType.SWAMP);
|
||||
registerVillagerType(snowy_coniferous_forest, VillagerType.SNOW);
|
||||
registerVillagerType(snowy_fir_clearing, VillagerType.SNOW);
|
||||
registerVillagerType(snowy_forest, VillagerType.SNOW);
|
||||
registerVillagerType(steppe, VillagerType.PLAINS);
|
||||
registerVillagerType(temperate_rainforest, VillagerType.PLAINS);
|
||||
registerVillagerType(temperate_rainforest_hills, VillagerType.PLAINS);
|
||||
registerVillagerType(tropical_rainforest, VillagerType.JUNGLE);
|
||||
registerVillagerType(tropic_beach, VillagerType.JUNGLE);
|
||||
registerVillagerType(tropics, VillagerType.JUNGLE);
|
||||
registerVillagerType(tundra, VillagerType.TAIGA);
|
||||
registerVillagerType(tundra_basin, VillagerType.TAIGA);
|
||||
registerVillagerType(tundra_bog, VillagerType.TAIGA);
|
||||
registerVillagerType(volcanic_plains, VillagerType.PLAINS);
|
||||
registerVillagerType(volcano, VillagerType.PLAINS);
|
||||
registerVillagerType(wasteland, VillagerType.DESERT);
|
||||
registerVillagerType(wetland, VillagerType.SWAMP);
|
||||
registerVillagerType(woodland, VillagerType.PLAINS);
|
||||
registerVillagerType(wetland_marsh, VillagerType.SWAMP);
|
||||
}
|
||||
|
||||
private static void registerVillagerType(RegistryKey<Biome> key, VillagerType type)
|
||||
|
|
|
@ -7,40 +7,85 @@
|
|||
******************************************************************************/
|
||||
package biomesoplenty.init;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import biomesoplenty.common.entity.DeerEntity;
|
||||
import biomesoplenty.common.entity.DeerRenderer;
|
||||
import biomesoplenty.common.entity.TurkeyEntity;
|
||||
import biomesoplenty.common.entity.TurkeyRenderer;
|
||||
import biomesoplenty.common.util.inventory.ItemGroupBOP;
|
||||
import biomesoplenty.core.BiomesOPlenty;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntitySpawnPlacementRegistry;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.ai.attributes.GlobalEntityTypeAttributes;
|
||||
import net.minecraft.entity.passive.AnimalEntity;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.SpawnEggItem;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.gen.Heightmap;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModEntities
|
||||
{
|
||||
private static List<EntityType> entities = Lists.newArrayList();
|
||||
private static List<Item> spawnEggs = Lists.newArrayList();
|
||||
|
||||
public static EntityType<DeerEntity> deer = addEntity(DeerEntity::new, EntityClassification.CREATURE, 1.0F, 1.6F, "deer", 0x765134, 0xF7EFE6);
|
||||
public static EntityType<TurkeyEntity> turkey = addEntity(TurkeyEntity::new, EntityClassification.CREATURE, 0.9F, 1.4F, "turkey", 0x6B492E, 0xE23131);
|
||||
|
||||
public static <T extends AnimalEntity> EntityType<T> addEntity(EntityType.IFactory<T> type, EntityClassification classification, float width, float height, String name, int eggPrimary, int eggSecondary)
|
||||
{
|
||||
EntityType<T> entity = EntityType.Builder.of(type, classification).sized(width, height).build(BiomesOPlenty.MOD_ID + ":" + name);
|
||||
entity.setRegistryName(new ResourceLocation(BiomesOPlenty.MOD_ID, name));
|
||||
entities.add(entity);
|
||||
|
||||
Item spawnEgg = new SpawnEggItem(entity, eggPrimary, eggSecondary, (new Item.Properties()).tab(ItemGroupBOP.instance));
|
||||
spawnEgg.setRegistryName(new ResourceLocation(BiomesOPlenty.MOD_ID, name + "_spawn_egg"));
|
||||
spawnEggs.add(spawnEgg);
|
||||
|
||||
return entity;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerEntities(RegistryEvent.Register<EntityType<?>> event)
|
||||
{
|
||||
// BOPEntities.boat_bop = EntityType.Builder.<BoatEntityBOP>of(BoatEntityBOP::new, EntityClassification.MISC).setTrackingRange(80).setUpdateInterval(3).setShouldReceiveVelocityUpdates(true).sized(1.375f, 0.5625f).setCustomClientFactory(BoatEntityBOP::new).build(MOD_ID + ":boat_bop");
|
||||
// BOPEntities.boat_bop.setRegistryName("boat_bop");
|
||||
// ForgeRegistries.ENTITIES.register(BOPEntities.boat_bop);
|
||||
for (EntityType entity : entities)
|
||||
{
|
||||
ForgeRegistries.ENTITIES.register(entity);
|
||||
}
|
||||
}
|
||||
|
||||
public static <T extends Entity> EntityType<T> createEntity(EntityType.IFactory<T> factory, EntityClassification classification, String name, int trackingRange, int updateFrequency, boolean sendsVelocityUpdates)
|
||||
@SubscribeEvent
|
||||
public static void registerSpawnEggs(RegistryEvent.Register<Item> event)
|
||||
{
|
||||
ResourceLocation location = new ResourceLocation("biomesoplenty", name);
|
||||
EntityType<T> type = EntityType.Builder.<T>of(factory, classification).setTrackingRange(trackingRange).setUpdateInterval(updateFrequency).setShouldReceiveVelocityUpdates(sendsVelocityUpdates).build(location.toString());
|
||||
type.setRegistryName(name);
|
||||
ForgeRegistries.ENTITIES.register(type);
|
||||
return type;
|
||||
for (Item spawnEgg : spawnEggs)
|
||||
{
|
||||
ForgeRegistries.ITEMS.register(spawnEgg);
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static void registerRendering()
|
||||
{
|
||||
// RenderingRegistry.registerEntityRenderingHandler((EntityType<? extends BoatEntityBOP>)BOPEntities.boat_bop, BoatRendererBOP::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(deer, DeerRenderer::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(turkey, TurkeyRenderer::new);
|
||||
}
|
||||
|
||||
public static void setup()
|
||||
{
|
||||
EntitySpawnPlacementRegistry.register(deer, EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, DeerEntity::checkAnimalSpawnRules);
|
||||
EntitySpawnPlacementRegistry.register(turkey, EntitySpawnPlacementRegistry.PlacementType.ON_GROUND, Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, TurkeyEntity::checkAnimalSpawnRules);
|
||||
|
||||
GlobalEntityTypeAttributes.put(deer, DeerEntity.createAttributes().build());
|
||||
GlobalEntityTypeAttributes.put(turkey, TurkeyEntity.createAttributes().build());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,10 @@ import biomesoplenty.common.item.MusicDiscItemBOP;
|
|||
import biomesoplenty.common.util.inventory.ItemGroupBOP;
|
||||
import net.minecraft.entity.item.BoatEntity;
|
||||
import net.minecraft.item.BoatItem;
|
||||
import net.minecraft.item.Food;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.potion.EffectInstance;
|
||||
import net.minecraft.potion.Effects;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
@ -22,6 +25,11 @@ import static biomesoplenty.api.item.BOPItems.*;
|
|||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
public class ModItems
|
||||
{
|
||||
public static final Food VENISON = (new Food.Builder()).nutrition(3).saturationMod(0.3F).meat().build();
|
||||
public static final Food COOKED_VENISON = (new Food.Builder()).nutrition(8).saturationMod(0.8F).meat().build();
|
||||
public static final Food TURKEY_LEG = (new Food.Builder()).nutrition(1).saturationMod(0.15F).effect(new EffectInstance(Effects.HUNGER, 600, 0), 0.3F).meat().build();
|
||||
public static final Food COOKED_TURKEY_LEG = (new Food.Builder()).nutrition(3).saturationMod(0.3F).meat().build();
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerItems(RegistryEvent.Register<Item> event)
|
||||
{
|
||||
|
@ -42,6 +50,11 @@ public class ModItems
|
|||
umbran_boat = registerItem(new BoatItem(BoatEntity.Type.OAK, (new Item.Properties()).stacksTo(1).tab(ItemGroupBOP.instance)), "umbran_boat");
|
||||
hellbark_boat = registerItem(new BoatItem(BoatEntity.Type.OAK, (new Item.Properties()).stacksTo(1).tab(ItemGroupBOP.instance)), "hellbark_boat");
|
||||
|
||||
venison = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(VENISON)), "venison");
|
||||
cooked_venison = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(COOKED_VENISON)), "cooked_venison");
|
||||
turkey_leg = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(TURKEY_LEG)), "turkey_leg");
|
||||
cooked_turkey_leg = registerItem(new Item(new Item.Properties().tab(ItemGroupBOP.instance).food(COOKED_TURKEY_LEG)), "cooked_turkey_leg");
|
||||
|
||||
bop_icon = registerItem(new Item(new Item.Properties()), "bop_icon");
|
||||
}
|
||||
|
||||
|
|
|
@ -10,12 +10,13 @@ package biomesoplenty.init;
|
|||
import biomesoplenty.core.BiomesOPlenty;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.util.SoundEvents;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import static biomesoplenty.api.sound.BOPSounds.music_disc_wanderer;
|
||||
import static biomesoplenty.api.sound.BOPSounds.*;
|
||||
|
||||
|
||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
|
@ -25,6 +26,13 @@ public class ModSounds
|
|||
public static void registerSounds(RegistryEvent.Register<SoundEvent> event)
|
||||
{
|
||||
music_disc_wanderer = registerSound("music_disc.wanderer");
|
||||
deer_hurt = registerSound("entity.biomesoplenty.deer.hurt");
|
||||
deer_dead = registerSound("entity.biomesoplenty.deer.dead");
|
||||
deer_step = SoundEvents.LLAMA_STEP;
|
||||
turkey_ambient = registerSound("entity.biomesoplenty.turkey.ambient");
|
||||
turkey_hurt = registerSound("entity.biomesoplenty.turkey.hurt");
|
||||
turkey_dead = registerSound("entity.biomesoplenty.turkey.dead");
|
||||
turkey_step = SoundEvents.CHICKEN_STEP;
|
||||
}
|
||||
|
||||
private static SoundEvent registerSound(String soundName)
|
||||
|
|
|
@ -10,20 +10,20 @@
|
|||
"biome.biomesoplenty.alps": "Alps",
|
||||
"biome.biomesoplenty.alps_foothills": "Alps Foothills",
|
||||
"biome.biomesoplenty.bayou": "Bayou",
|
||||
"biome.biomesoplenty.bog": "Bog",
|
||||
"biome.biomesoplenty.boreal_forest": "Boreal Forest",
|
||||
"biome.biomesoplenty.chaparral": "Chaparral",
|
||||
"biome.biomesoplenty.bayou_mangrove": "Bayou Mangrove",
|
||||
"biome.biomesoplenty.cherry_blossom_grove": "Cherry Blossom Grove",
|
||||
"biome.biomesoplenty.cold_desert": "Cold Desert",
|
||||
"biome.biomesoplenty.coniferous_forest": "Coniferous Forest",
|
||||
"biome.biomesoplenty.coniferous_lakes": "Coniferous Lakes",
|
||||
"biome.biomesoplenty.crystalline_chasm": "Crystalline Chasm",
|
||||
"biome.biomesoplenty.dead_forest": "Dead Forest",
|
||||
"biome.biomesoplenty.dead_plains": "Dead Plains",
|
||||
"biome.biomesoplenty.dense_bayou": "Dense Bayou",
|
||||
"biome.biomesoplenty.dryland": "Dryland",
|
||||
"biome.biomesoplenty.dry_steppe": "Dry Steppe",
|
||||
"biome.biomesoplenty.fir_clearing": "Fir Clearing",
|
||||
"biome.biomesoplenty.floodplain": "Floodplain",
|
||||
"biome.biomesoplenty.flower_meadow": "Flower Meadow",
|
||||
"biome.biomesoplenty.fungal_jungle": "Fungal Jungle",
|
||||
"biome.biomesoplenty.grassland": "Grassland",
|
||||
"biome.biomesoplenty.gravel_beach": "Gravel Beach",
|
||||
"biome.biomesoplenty.grove": "Grove",
|
||||
"biome.biomesoplenty.highland": "Highland",
|
||||
|
@ -31,67 +31,66 @@
|
|||
"biome.biomesoplenty.jade_cliffs": "Jade Cliffs",
|
||||
"biome.biomesoplenty.lavender_field": "Lavender Field",
|
||||
"biome.biomesoplenty.lush_desert": "Lush Desert",
|
||||
"biome.biomesoplenty.lush_grassland": "Lush Grassland",
|
||||
"biome.biomesoplenty.lush_swamp": "Lush Swamp",
|
||||
"biome.biomesoplenty.mangrove": "Mangrove",
|
||||
"biome.biomesoplenty.maple_woods": "Maple Woods",
|
||||
"biome.biomesoplenty.marsh": "Marsh",
|
||||
"biome.biomesoplenty.meadow": "Meadow",
|
||||
"biome.biomesoplenty.mire": "Mire",
|
||||
"biome.biomesoplenty.muskeg": "Muskeg",
|
||||
"biome.biomesoplenty.mystic_grove": "Mystic Grove",
|
||||
"biome.biomesoplenty.mystic_plains": "Mystic Plains",
|
||||
"biome.biomesoplenty.ominous_woods": "Ominous Woods",
|
||||
"biome.biomesoplenty.orchard": "Orchard",
|
||||
"biome.biomesoplenty.origin_valley": "Origin Valley",
|
||||
"biome.biomesoplenty.outback": "Outback",
|
||||
"biome.biomesoplenty.overgrown_cliffs": "Overgrown Cliffs",
|
||||
"biome.biomesoplenty.pasture": "Pasture",
|
||||
"biome.biomesoplenty.poppy_field": "Poppy Field",
|
||||
"biome.biomesoplenty.prairie": "Prairie",
|
||||
"biome.biomesoplenty.pumpkin_patch": "Pumpkin Patch",
|
||||
"biome.biomesoplenty.rainbow_hills": "Rainbow Hills",
|
||||
"biome.biomesoplenty.rainforest": "Rainforest",
|
||||
"biome.biomesoplenty.rainforest_clearing": "Rainforest Clearing",
|
||||
"biome.biomesoplenty.rainforest_cliffs": "Rainforest Cliffs",
|
||||
"biome.biomesoplenty.redwood_forest": "Redwood Forest",
|
||||
"biome.biomesoplenty.redwood_forest_edge": "Redwood Forest Edge",
|
||||
"biome.biomesoplenty.scrubland": "Scrubland",
|
||||
"biome.biomesoplenty.seasonal_forest": "Seasonal Forest",
|
||||
"biome.biomesoplenty.shield": "Shield",
|
||||
"biome.biomesoplenty.shroomy_wetland": "Shroomy Wetland",
|
||||
"biome.biomesoplenty.shrubland": "Shrubland",
|
||||
"biome.biomesoplenty.shrubland_hills": "Shrubland Hills",
|
||||
"biome.biomesoplenty.silkglade": "Silkglade",
|
||||
"biome.biomesoplenty.snowy_coniferous_forest": "Snowy Coniferous Forest",
|
||||
"biome.biomesoplenty.snowy_fir_clearing": "Snowy Fir Clearing",
|
||||
"biome.biomesoplenty.snowy_forest": "Snowy Forest",
|
||||
"biome.biomesoplenty.steppe": "Steppe",
|
||||
"biome.biomesoplenty.temperate_rainforest": "Temperate Rainforest",
|
||||
"biome.biomesoplenty.temperate_rainforest_hills": "Temperate Rainforest Hills",
|
||||
"biome.biomesoplenty.tropical_rainforest": "Tropical Rainforest",
|
||||
"biome.biomesoplenty.tropic_beach": "Tropic Beach",
|
||||
"biome.biomesoplenty.tropics": "Tropics",
|
||||
"biome.biomesoplenty.tundra": "Tundra",
|
||||
"biome.biomesoplenty.tundra_basin": "Tundra Basin",
|
||||
"biome.biomesoplenty.tundra_bog": "Tundra Bog",
|
||||
"biome.biomesoplenty.undergrowth": "Undergrowth",
|
||||
"biome.biomesoplenty.visceral_heap": "Visceral Heap",
|
||||
"biome.biomesoplenty.volcanic_plains": "Volcanic Plains",
|
||||
"biome.biomesoplenty.volcano": "Volcano",
|
||||
"biome.biomesoplenty.wasteland": "Wasteland",
|
||||
"biome.biomesoplenty.wetland": "Wetland",
|
||||
"biome.biomesoplenty.wetland_marsh": "Wetland Marsh",
|
||||
"biome.biomesoplenty.withered_abyss": "Withered Abyss",
|
||||
"biome.biomesoplenty.woodland": "Woodland",
|
||||
|
||||
"item.biomesoplenty.bop_icon": "BOP Icon",
|
||||
"item.biomesoplenty.cherry_boat": "Cherry Boat",
|
||||
"item.biomesoplenty.cooked_turkey_leg": "Cooked Turkey Leg",
|
||||
"item.biomesoplenty.cooked_venison": "Cooked Venison",
|
||||
"item.biomesoplenty.dead_boat": "Dead Boat",
|
||||
"item.biomesoplenty.deer_spawn_egg": "Deer Spawn Egg",
|
||||
"item.biomesoplenty.fir_boat": "Fir Boat",
|
||||
"item.biomesoplenty.hellbark_boat": "Hellbark Boat",
|
||||
"item.biomesoplenty.jacaranda_boat": "Jacaranda Boat",
|
||||
"item.biomesoplenty.magic_boat": "Magic Boat",
|
||||
"item.biomesoplenty.mahogany_boat": "Mahogany Boat",
|
||||
"item.biomesoplenty.mud_brick": "Mud Brick",
|
||||
"item.biomesoplenty.mud_ball": "Mud Ball",
|
||||
"item.biomesoplenty.mud_brick": "Mud Brick",
|
||||
"item.biomesoplenty.music_disc_wanderer": "Music Disc",
|
||||
"item.biomesoplenty.music_disc_wanderer.desc": "Tim Rurkowski - Wanderer",
|
||||
"item.biomesoplenty.palm_boat": "Palm Boat",
|
||||
"item.biomesoplenty.redwood_boat": "Redwood Boat",
|
||||
"item.biomesoplenty.turkey_leg": "Raw Turkey Leg",
|
||||
"item.biomesoplenty.turkey_spawn_egg": "Turkey Spawn Egg",
|
||||
"item.biomesoplenty.umbran_boat": "Umbran Boat",
|
||||
"item.biomesoplenty.venison": "Raw Venison",
|
||||
"item.biomesoplenty.willow_boat": "Willow Boat",
|
||||
|
||||
"block.biomesoplenty.black_sand": "Black Sand",
|
||||
|
@ -403,5 +402,7 @@
|
|||
"commands.biomesoplenty.tpbiome.success": "Teleported %s to biome %s at (%s, %s, %s)",
|
||||
"commands.biomesoplenty.tpbiome.error": "Couldn't find biome %s!",
|
||||
|
||||
"entity.biomesoplenty.boat_bop": "Boat"
|
||||
"entity.biomesoplenty.boat_bop": "Boat",
|
||||
"entity.biomesoplenty.deer": "Deer",
|
||||
"entity.biomesoplenty.turkey": "Turkey"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/cooked_turkey_leg"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/cooked_venison"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "item/template_spawn_egg"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/turkey_leg"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "item/template_spawn_egg"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "biomesoplenty:item/venison"
|
||||
}
|
||||
}
|
|
@ -6,5 +6,30 @@
|
|||
"stream": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.ambient": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/ambient"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.hurt": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/hurt"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.turkey.dead": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/turkey/dead"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.deer.hurt": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/deer/hurt"
|
||||
]
|
||||
},
|
||||
"entity.biomesoplenty.deer.dead": {
|
||||
"sounds": [
|
||||
"biomesoplenty:entity/deer/dead"
|
||||
]
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 291 B |
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 337 B |
Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 432 B |
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 473 B |
BIN
src/main/resources/assets/biomesoplenty/textures/entity/deer.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
src/main/resources/assets/biomesoplenty/textures/entity/fawn.png
Normal file
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 531 B |
After Width: | Height: | Size: 421 B |
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 411 B |
|
@ -33,22 +33,10 @@
|
|||
"biome": "biomesoplenty:bayou"
|
||||
}
|
||||
},
|
||||
"bog": {
|
||||
"bayou_mangrove": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:bog"
|
||||
}
|
||||
},
|
||||
"boreal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:boreal_forest"
|
||||
}
|
||||
},
|
||||
"chaparral": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:chaparral"
|
||||
"biome": "biomesoplenty:bayou_mangrove"
|
||||
}
|
||||
},
|
||||
"cherry_blossom_grove": {
|
||||
|
@ -56,18 +44,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:cherry_blossom_grove"
|
||||
}
|
||||
},
|
||||
"cold_desert": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:cold_desert"
|
||||
}
|
||||
},
|
||||
"coniferous_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:coniferous_forest"
|
||||
}
|
||||
},
|
||||
"coniferous_lakes": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:coniferous_lakes"
|
||||
}
|
||||
},
|
||||
"crystalline_chasm": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -80,24 +68,30 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:dead_forest"
|
||||
}
|
||||
},
|
||||
"dense_bayou": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dense_bayou"
|
||||
}
|
||||
},
|
||||
"dryland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dryland"
|
||||
}
|
||||
},
|
||||
"dry_steppe": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dry_steppe"
|
||||
}
|
||||
},
|
||||
"fir_clearing": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:fir_clearing"
|
||||
}
|
||||
},
|
||||
"floodplain": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:floodplain"
|
||||
}
|
||||
},
|
||||
"flower_meadow": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -110,12 +104,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:fungal_jungle"
|
||||
}
|
||||
},
|
||||
"grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:grassland"
|
||||
}
|
||||
},
|
||||
"gravel_beach": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -158,48 +146,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_desert"
|
||||
}
|
||||
},
|
||||
"lush_grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_grassland"
|
||||
}
|
||||
},
|
||||
"lush_swamp": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_swamp"
|
||||
}
|
||||
},
|
||||
"mangrove": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mangrove"
|
||||
}
|
||||
},
|
||||
"maple_woods": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:maple_woods"
|
||||
}
|
||||
},
|
||||
"marsh": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:marsh"
|
||||
}
|
||||
},
|
||||
"meadow": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow"
|
||||
}
|
||||
},
|
||||
"mire": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mire"
|
||||
}
|
||||
},
|
||||
"muskeg": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -212,6 +170,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:mystic_grove"
|
||||
}
|
||||
},
|
||||
"mystic_plains": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mystic_plains"
|
||||
}
|
||||
},
|
||||
"ominous_woods": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -230,18 +194,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:origin_valley"
|
||||
}
|
||||
},
|
||||
"outback": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:outback"
|
||||
}
|
||||
},
|
||||
"overgrown_cliffs": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:overgrown_cliffs"
|
||||
}
|
||||
},
|
||||
"pasture": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -278,6 +230,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest"
|
||||
}
|
||||
},
|
||||
"rainforest_clearing": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest_clearing"
|
||||
}
|
||||
},
|
||||
"rainforest_cliffs": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest_cliffs"
|
||||
}
|
||||
},
|
||||
"redwood_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -290,12 +254,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_forest_edge"
|
||||
}
|
||||
},
|
||||
"scrubland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:scrubland"
|
||||
}
|
||||
},
|
||||
"seasonal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -303,10 +261,10 @@
|
|||
"biome": "biomesoplenty:seasonal_forest"
|
||||
}
|
||||
},
|
||||
"shield": {
|
||||
"shroomy_wetland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:shield"
|
||||
"biome": "biomesoplenty:shroomy_wetland"
|
||||
}
|
||||
},
|
||||
"shrubland": {
|
||||
|
@ -314,6 +272,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:shrubland"
|
||||
}
|
||||
},
|
||||
"shrubland_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:shrubland_hills"
|
||||
}
|
||||
},
|
||||
"silkglade": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -332,36 +296,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:snowy_fir_clearing"
|
||||
}
|
||||
},
|
||||
"snowy_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:snowy_forest"
|
||||
}
|
||||
},
|
||||
"steppe": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:steppe"
|
||||
}
|
||||
},
|
||||
"temperate_rainforest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:temperate_rainforest"
|
||||
}
|
||||
},
|
||||
"temperate_rainforest_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:temperate_rainforest_hills"
|
||||
}
|
||||
},
|
||||
"tropical_rainforest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tropical_rainforest"
|
||||
}
|
||||
},
|
||||
"tropic_beach": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -380,6 +314,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra"
|
||||
}
|
||||
},
|
||||
"tundra_basin": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra_basin"
|
||||
}
|
||||
},
|
||||
"tundra_bog": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra_bog"
|
||||
}
|
||||
},
|
||||
"undergrowth": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -416,18 +362,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:wetland"
|
||||
}
|
||||
},
|
||||
"wetland_marsh": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:wetland_marsh"
|
||||
}
|
||||
},
|
||||
"withered_abyss": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:withered_abyss"
|
||||
}
|
||||
},
|
||||
"woodland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:woodland"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rewards": {
|
||||
|
|
|
@ -32,22 +32,10 @@
|
|||
"biome": "biomesoplenty:bayou"
|
||||
}
|
||||
},
|
||||
"bog": {
|
||||
"bayou_mangrove": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:bog"
|
||||
}
|
||||
},
|
||||
"boreal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:boreal_forest"
|
||||
}
|
||||
},
|
||||
"chaparral": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:chaparral"
|
||||
"biome": "biomesoplenty:bayou_mangrove"
|
||||
}
|
||||
},
|
||||
"cherry_blossom_grove": {
|
||||
|
@ -55,18 +43,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:cherry_blossom_grove"
|
||||
}
|
||||
},
|
||||
"cold_desert": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:cold_desert"
|
||||
}
|
||||
},
|
||||
"coniferous_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:coniferous_forest"
|
||||
}
|
||||
},
|
||||
"coniferous_lakes": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:coniferous_lakes"
|
||||
}
|
||||
},
|
||||
"crystalline_chasm": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -79,24 +67,30 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:dead_forest"
|
||||
}
|
||||
},
|
||||
"dense_bayou": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dense_bayou"
|
||||
}
|
||||
},
|
||||
"dryland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dryland"
|
||||
}
|
||||
},
|
||||
"dry_steppe": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:dry_steppe"
|
||||
}
|
||||
},
|
||||
"fir_clearing": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:fir_clearing"
|
||||
}
|
||||
},
|
||||
"floodplain": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:floodplain"
|
||||
}
|
||||
},
|
||||
"flower_meadow": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -109,12 +103,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:fungal_jungle"
|
||||
}
|
||||
},
|
||||
"grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:grassland"
|
||||
}
|
||||
},
|
||||
"gravel_beach": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -157,48 +145,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_desert"
|
||||
}
|
||||
},
|
||||
"lush_grassland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_grassland"
|
||||
}
|
||||
},
|
||||
"lush_swamp": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:lush_swamp"
|
||||
}
|
||||
},
|
||||
"mangrove": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mangrove"
|
||||
}
|
||||
},
|
||||
"maple_woods": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:maple_woods"
|
||||
}
|
||||
},
|
||||
"marsh": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:marsh"
|
||||
}
|
||||
},
|
||||
"meadow": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:meadow"
|
||||
}
|
||||
},
|
||||
"mire": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mire"
|
||||
}
|
||||
},
|
||||
"muskeg": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -211,6 +169,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:mystic_grove"
|
||||
}
|
||||
},
|
||||
"mystic_plains": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:mystic_plains"
|
||||
}
|
||||
},
|
||||
"ominous_woods": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -229,12 +193,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:origin_valley"
|
||||
}
|
||||
},
|
||||
"outback": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:outback"
|
||||
}
|
||||
},
|
||||
"overgrown_cliffs": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -277,6 +235,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest"
|
||||
}
|
||||
},
|
||||
"rainforest_clearing": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest_clearing"
|
||||
}
|
||||
},
|
||||
"rainforest_cliffs": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:rainforest_cliffs"
|
||||
}
|
||||
},
|
||||
"redwood_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -289,12 +259,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:redwood_forest_edge"
|
||||
}
|
||||
},
|
||||
"scrubland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:scrubland"
|
||||
}
|
||||
},
|
||||
"seasonal_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -302,10 +266,10 @@
|
|||
"biome": "biomesoplenty:seasonal_forest"
|
||||
}
|
||||
},
|
||||
"shield": {
|
||||
"shroomy_wetland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:shield"
|
||||
"biome": "biomesoplenty:shroomy_wetland"
|
||||
}
|
||||
},
|
||||
"shrubland": {
|
||||
|
@ -313,6 +277,12 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:shrubland"
|
||||
}
|
||||
},
|
||||
"shrubland_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:shrubland_hills"
|
||||
}
|
||||
},
|
||||
"silkglade": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -331,36 +301,6 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:snowy_fir_clearing"
|
||||
}
|
||||
},
|
||||
"snowy_forest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:snowy_forest"
|
||||
}
|
||||
},
|
||||
"steppe": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:steppe"
|
||||
}
|
||||
},
|
||||
"temperate_rainforest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:temperate_rainforest"
|
||||
}
|
||||
},
|
||||
"temperate_rainforest_hills": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:temperate_rainforest_hills"
|
||||
}
|
||||
},
|
||||
"tropical_rainforest": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tropical_rainforest"
|
||||
}
|
||||
},
|
||||
"tropic_beach": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -379,6 +319,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra"
|
||||
}
|
||||
},
|
||||
"tundra_basin": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra_basin"
|
||||
}
|
||||
},
|
||||
"tundra_bog": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:tundra_bog"
|
||||
}
|
||||
},
|
||||
"undergrowth": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -415,18 +367,18 @@
|
|||
"conditions": {
|
||||
"biome": "biomesoplenty:wetland"
|
||||
}
|
||||
},
|
||||
"wetland_marsh": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:wetland_marsh"
|
||||
}
|
||||
},
|
||||
"withered_abyss": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:withered_abyss"
|
||||
}
|
||||
},
|
||||
"woodland": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:woodland"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
|
@ -434,20 +386,18 @@
|
|||
"alps",
|
||||
"alps_foothills",
|
||||
"bayou",
|
||||
"bog",
|
||||
"boreal_forest",
|
||||
"chaparral",
|
||||
"bayou_mangrove",
|
||||
"cherry_blossom_grove",
|
||||
"cold_desert",
|
||||
"coniferous_forest",
|
||||
"coniferous_lakes",
|
||||
"crystalline_chasm",
|
||||
"dead_forest",
|
||||
"dense_bayou",
|
||||
"dryland",
|
||||
"dry_steppe",
|
||||
"fir_clearing",
|
||||
"floodplain",
|
||||
"flower_meadow",
|
||||
"fungal_jungle",
|
||||
"grassland",
|
||||
"gravel_beach",
|
||||
"grove",
|
||||
"highland",
|
||||
|
@ -455,51 +405,44 @@
|
|||
"jade_cliffs",
|
||||
"lavender_field",
|
||||
"lush_desert",
|
||||
"lush_grassland",
|
||||
"lush_swamp",
|
||||
"mangrove",
|
||||
"maple_woods",
|
||||
"marsh",
|
||||
"meadow",
|
||||
"mire",
|
||||
"muskeg",
|
||||
"mystic_grove",
|
||||
"mystic_plains",
|
||||
"ominous_woods",
|
||||
"orchard",
|
||||
"origin_valley",
|
||||
"outback",
|
||||
"overgrown_cliffs",
|
||||
"pasture",
|
||||
"poppy_field",
|
||||
"prairie",
|
||||
"pumpkin_patch",
|
||||
"rainbow_hills",
|
||||
"rainforest",
|
||||
"rainforest_clearing",
|
||||
"rainforest_cliffs",
|
||||
"redwood_forest",
|
||||
"redwood_forest_edge",
|
||||
"scrubland",
|
||||
"seasonal_forest",
|
||||
"shield",
|
||||
"shroomy_wetland",
|
||||
"shrubland",
|
||||
"shrubland_hills",
|
||||
"silkglade",
|
||||
"snowy_coniferous_forest",
|
||||
"snowy_fir_clearing",
|
||||
"snowy_forest",
|
||||
"steppe",
|
||||
"temperate_rainforest",
|
||||
"temperate_rainforest_hills",
|
||||
"tropical_rainforest",
|
||||
"tropic_beach",
|
||||
"tropics",
|
||||
"tundra",
|
||||
"tundra_basin",
|
||||
"tundra_bog",
|
||||
"undergrowth",
|
||||
"visceral_heap",
|
||||
"volcanic_plains",
|
||||
"volcano",
|
||||
"wasteland",
|
||||
"wetland",
|
||||
"withered_abyss",
|
||||
"woodland"
|
||||
"wetland_marsh",
|
||||
"withered_abyss"
|
||||
]
|
||||
]
|
||||
}
|