- Added Lush Desert biome

- Added Orange Sand/Sandstone (And all matching blocks for it)
- Changed the Brushland into a new biome called the Dryland
- Renamed the Origin Hills to Origin Valley
- Renamed the Rainbow Valley to Rainbow Hills
- Removed Xeric Shrubland sub-biome
- Removed Oasis sub-biome
- Improved various textures
This commit is contained in:
Forstride 2020-10-05 21:01:09 -04:00
parent 1a5742af0f
commit 9279cc7547
188 changed files with 1929 additions and 362 deletions

View File

@ -1,6 +1,6 @@
---
name: 1.16.1 Standalone Bug
about: For bugs that occur with Biomes O' Plenty for 1.16.1. We do not support older versions!
name: 1.16.3 Standalone Bug
about: For bugs that occur with Biomes O' Plenty for 1.16.3. We do not support older versions!
title: ''
labels: bug-minor
assignees: ''

View File

@ -1,6 +1,6 @@
---
name: 1.16.1 Standalone Crash
about: For crashes that occur with Biomes O' Plenty for 1.16.1. We do not support older versions!
name: 1.16.3 Standalone Crash
about: For crashes that occur with Biomes O' Plenty for 1.16.3. We do not support older versions!
title: ''
labels: crash
assignees: ''

View File

@ -1,6 +1,6 @@
---
name: 1.16.1 Feature Request
about: Feature requests for Biomes O' Plenty for 1.16.1. We do not support older versions!
name: 1.16.3 Feature Request
about: Feature requests for Biomes O' Plenty for 1.16.3. We do not support older versions!
title: ''
labels: feature
assignees: ''

View File

@ -22,12 +22,12 @@ public class BOPBiomes
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> brushland = register("brushland");
public static RegistryKey<Biome> chaparral = register("chaparral");
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> dead_forest = register("dead_forest");
public static RegistryKey<Biome> dryland = register("dryland");
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");
@ -39,6 +39,7 @@ public class BOPBiomes
public static RegistryKey<Biome> highland_moor = register("highland_moor");
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");
@ -48,17 +49,16 @@ public class BOPBiomes
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> oasis = register("oasis");
public static RegistryKey<Biome> ominous_woods = register("ominous_woods");
public static RegistryKey<Biome> orchard = register("orchard");
public static RegistryKey<Biome> origin_hills = register("origin_hills");
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_valley = register("rainbow_valley");
public static RegistryKey<Biome> rainbow_hills = register("rainbow_hills");
public static RegistryKey<Biome> rainforest = register("rainforest");
public static RegistryKey<Biome> redwood_forest = register("redwood_forest");
public static RegistryKey<Biome> redwood_forest_edge = register("redwood_forest_edge");
@ -82,7 +82,6 @@ public class BOPBiomes
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> xeric_shrubland = register("xeric_shrubland");
public static RegistryKey<Biome> crystalline_chasm = register("crystalline_chasm");
public static RegistryKey<Biome> undergrowth = register("undergrowth");

View File

@ -23,6 +23,18 @@ public class BOPBlocks
public static Block white_sandstone_stairs;
public static Block white_sandstone_wall;
public static Block orange_sand;
public static Block orange_sandstone;
public static Block cut_orange_sandstone;
public static Block cut_orange_sandstone_slab;
public static Block chiseled_orange_sandstone;
public static Block smooth_orange_sandstone;
public static Block smooth_orange_sandstone_slab;
public static Block smooth_orange_sandstone_stairs;
public static Block orange_sandstone_slab;
public static Block orange_sandstone_stairs;
public static Block orange_sandstone_wall;
public static Block black_sand;
public static Block black_sandstone;
public static Block cut_black_sandstone;

View File

@ -47,7 +47,7 @@ public class BogBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -52,7 +52,7 @@ public class ColdDesertBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_LAVA);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_LAVA);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -52,7 +52,7 @@ public class ConiferousForestBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -7,45 +7,52 @@
******************************************************************************/
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.*;
import net.minecraft.world.gen.feature.structure.StructureFeatures;
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
public class XericShrublandBiome extends BiomeTemplate
public class DrylandBiome extends BiomeTemplate
{
public XericShrublandBiome() {}
public DrylandBiome()
{
this.addWeight(BOPClimates.SAVANNA, 1);
this.setRiverBiome(null);
this.setBeachBiome(null);
}
@Override
protected void configureBiome(Biome.Builder builder)
{
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.SAVANNA).depth(0.0F).scale(-0.05F).temperature(1.75F).downfall(0.1F);
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.SAVANNA).depth(0.1F).scale(0.1F).temperature(1.5F).downfall(0.1F);
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(1.75F)).grassColorOverride(0xE5DFA9).foliageColorOverride(0xDAE0B3).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, SurfaceBuilder.CONFIG_FULL_SAND));
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_GRASS));
// Structures
builder.addStructureStart(StructureFeatures.VILLAGE_DESERT);
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
builder.addStructureStart(StructureFeatures.DESERT_PYRAMID);
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_DESERT);
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
builder.addStructureStart(StructureFeatures.NETHER_FOSSIL);
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_LAVA);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_LAVA);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
@ -55,19 +62,17 @@ public class XericShrublandBiome extends BiomeTemplate
////////////////////////////////////////////////////////////
// Vegetation
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.XERIC_SHRUBLAND_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.XERIC_SHRUBLAND_FLOWERS);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DRYLAND_TREES);
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.DUNE_GRASS_100);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH_2);
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.STANDARD_GRASS_6);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH);
////////////////////////////////////////////////////////////
// Other Features
DefaultBiomeFeatures.addDefaultSprings(builder);
DefaultBiomeFeatures.addDesertExtraDecoration(builder);
DefaultBiomeFeatures.addSurfaceFreezing(builder);
}
@ -85,6 +90,5 @@ public class XericShrublandBiome 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));
}
}

View File

@ -46,7 +46,7 @@ public class FirClearingBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -48,7 +48,7 @@ public class FloodplainBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_COMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_COMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -45,7 +45,7 @@ public class HighlandMoorBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_COMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_COMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -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;
@ -15,42 +16,39 @@ 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 BrushlandBiome extends BiomeTemplate
public class LushDesertBiome extends BiomeTemplate
{
public BrushlandBiome()
public LushDesertBiome()
{
this.addWeight(BOPClimates.SAVANNA, 5);
this.addWeight(BOPClimates.HOT_DESERT, 1);
this.setBeachBiome(null);
}
@Override
protected void configureBiome(Biome.Builder builder)
{
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.SAVANNA).depth(0.1F).scale(0.1F).temperature(1.5F).downfall(0.1F);
builder.precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.DESERT).depth(0.6F).scale(0.6F).temperature(1.8F).downfall(0.15F);
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(1.5F)).grassColorOverride(0xE5DFA9).foliageColorOverride(0xDAE0B3).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).skyColor(calculateSkyColor(1.8F)).grassColorOverride(0xEFE182).foliageColorOverride(0xD3D156).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
}
@Override
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
{
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.BRUSHLAND, SurfaceBuilder.CONFIG_GRASS));
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.LUSH_DESERT, BOPSurfaceBuilders.ORANGE_SAND_SURFACE));
// Structures
builder.addStructureStart(StructureFeatures.VILLAGE_SAVANNA);
builder.addStructureStart(StructureFeatures.PILLAGER_OUTPOST);
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_STANDARD);
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_DESERT);
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_LAVA);
DefaultBiomeFeatures.addDefaultLakes(builder);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
DefaultBiomeFeatures.addDefaultOres(builder);
@ -59,19 +57,22 @@ public class BrushlandBiome extends BiomeTemplate
////////////////////////////////////////////////////////////
// Vegetation
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BRUSHLAND_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_DESERT_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.LUSH_DESERT_FLOWERS);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BUSH_15);
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.DUNE_GRASS_10);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.STANDARD_GRASS_12);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DUNE_GRASS_128);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_DEAD_BUSH_2);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);
////////////////////////////////////////////////////////////
// Other Features
DefaultBiomeFeatures.addDefaultSprings(builder);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OVERGROWN_CLIFFS_SPRING);
DefaultBiomeFeatures.addSurfaceFreezing(builder);
}

View File

@ -48,7 +48,7 @@ public class MangroveBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_COMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_COMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -48,7 +48,7 @@ public class MarshBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_COMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_COMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -50,7 +50,7 @@ public class MireBiome extends BiomeTemplate
DefaultBiomeFeatures.addDefaultCarvers(builder);
DefaultBiomeFeatures.addDefaultLakes(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.MUD_LAKE);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.MUD_LAKE);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -49,7 +49,7 @@ public class MuskegBiome extends BiomeTemplate
DefaultBiomeFeatures.addDefaultCarvers(builder);
DefaultBiomeFeatures.addDefaultLakes(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -48,7 +48,7 @@ public class MysticGroveBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -1,82 +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.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 OasisBiome extends BiomeTemplate
{
public OasisBiome() {}
@Override
protected void configureBiome(Biome.Builder builder)
{
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.DESERT).depth(-0.275F).scale(-0.05F).temperature(2.0F).downfall(0.5F);
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(4159204).waterFogColor(329011).fogColor(12638463).skyColor(calculateSkyColor(2.0F)).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
}
@Override
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
{
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.CONFIG_FULL_SAND));
// Structures
DefaultBiomeFeatures.addDefaultOverworldLandStructures(builder);
builder.addStructureStart(StructureFeatures.RUINED_PORTAL_DESERT);
// 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.OASIS_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DESERT_GRASS_10);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DUNE_GRASS_20);
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.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.HUSK, 80, 4, 4));
}
}

View File

@ -50,7 +50,7 @@ public class OminousWoodsBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -20,9 +20,9 @@ import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.*;
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
public class OriginHillsBiome extends BiomeTemplate
public class OriginValleyBiome extends BiomeTemplate
{
public OriginHillsBiome()
public OriginValleyBiome()
{
this.setBeachBiome(null);
this.setRiverBiome(null);
@ -39,7 +39,7 @@ public class OriginHillsBiome extends BiomeTemplate
@Override
protected void configureGeneration(BiomeGenerationSettings.Builder builder)
{
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.ORIGIN_HILLS, BOPSurfaceBuilders.ORIGIN_GRASS_SURFACE));
builder.surfaceBuilder(new ConfiguredSurfaceBuilder(BOPSurfaceBuilders.ORIGIN_VALLEY, BOPSurfaceBuilders.ORIGIN_GRASS_SURFACE));
// Underground
builder.addCarver(GenerationStage.Carving.AIR, BOPConfiguredCarvers.ORIGIN_CAVE);
@ -58,7 +58,7 @@ public class OriginHillsBiome extends BiomeTemplate
////////////////////////////////////////////////////////////
// Vegetation
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ORIGIN_HILLS_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ORIGIN_VALLEY_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.ORIGIN_FLOWERS);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Features.PATCH_SUGAR_CANE);

View File

@ -49,7 +49,7 @@ public class OutbackBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_LAVA);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_LAVA);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);
@ -61,7 +61,7 @@ public class OutbackBiome extends BiomeTemplate
// Vegetation
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.OUTBACK_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.DESERT_GRASS_5);
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);

View File

@ -18,9 +18,9 @@ import net.minecraft.world.gen.feature.*;
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
public class RainbowValleyBiome extends BiomeTemplate
public class RainbowHillsBiome extends BiomeTemplate
{
public RainbowValleyBiome()
public RainbowHillsBiome()
{
this.setBeachBiome(null);
this.setGrassColorFunction(this::getGrassColor);
@ -53,8 +53,8 @@ public class RainbowValleyBiome extends BiomeTemplate
////////////////////////////////////////////////////////////
// Vegetation
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINBOW_VALLEY_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINBOW_VALLEY_FLOWERS);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINBOW_HILLS_TREES);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.RAINBOW_HILLS_FLOWERS);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.BLUE_HYDRANGEA_4);
builder.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPConfiguredFeatures.GOLDENROD_2);

View File

@ -46,7 +46,7 @@ public class RedwoodForestBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -43,7 +43,7 @@ public class RedwoodForestEdgeBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -10,19 +10,22 @@ 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, 7);
this.addWeight(BOPClimates.SAVANNA, 5);
}
@Override
@ -50,7 +53,8 @@ public class ScrublandBiome 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,6 +64,7 @@ public class ScrublandBiome extends BiomeTemplate
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);
////////////////////////////////////////////////////////////

View File

@ -47,7 +47,7 @@ public class SnowyConiferousForestBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -43,7 +43,7 @@ public class SnowyFirClearingBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -48,7 +48,7 @@ public class TemperateRainforestBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -46,7 +46,7 @@ public class TemperateRainforestHillsBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Features.LAKE_WATER);
builder.addFeature(GenerationStage.Decoration.LAKES, Features.LAKE_WATER);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -47,7 +47,7 @@ public class VolcanoBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.LAVA_LAKE_COMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.LAVA_LAKE_COMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -31,7 +31,7 @@ public class WastelandBiome extends BiomeTemplate
@Override
protected void configureBiome(Biome.Builder builder)
{
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.DESERT).depth(-0.05F).scale(-0.05F).temperature(2.0F).downfall(0.0F);
builder.precipitation(Biome.RainType.NONE).biomeCategory(Biome.Category.DESERT).depth(0.0F).scale(-0.1F).temperature(2.0F).downfall(0.0F);
builder.specialEffects((new BiomeAmbience.Builder()).waterColor(0x433721).waterFogColor(0x0C0C03).fogColor(0xDBDDC1).skyColor(0x70ADEF).grassColorOverride(0xAD9364).foliageColorOverride(0xB5A76C).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build());
}

View File

@ -48,7 +48,7 @@ public class WetlandBiome extends BiomeTemplate
// Underground
DefaultBiomeFeatures.addDefaultCarvers(builder);
builder.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
builder.addFeature(GenerationStage.Decoration.LAKES, BOPConfiguredFeatures.WATER_LAKE_UNCOMMON);
DefaultBiomeFeatures.addDefaultMonsterRoom(builder);
DefaultBiomeFeatures.addDefaultUndergroundVariety(builder);

View File

@ -66,7 +66,7 @@ public class FlowerBlockBOP extends FlowerBlock
if (this == BOPBlocks.wildflower)
{
return ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || super.canSurvive(state, worldIn, pos);
return ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || ground == BOPBlocks.orange_sand || ground == BOPBlocks.black_sand || super.canSurvive(state, worldIn, pos);
}
if (this == BOPBlocks.burning_blossom)
{

View File

@ -85,11 +85,11 @@ public class FoliageBlockBOP extends BushBlock implements IPlantable
}
if (this == BOPBlocks.dune_grass)
{
return ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || ground == BOPBlocks.black_sand;
return ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || ground == BOPBlocks.orange_sand || ground == BOPBlocks.black_sand;
}
if (this == BOPBlocks.desert_grass || this == BOPBlocks.dead_grass)
{
return ground == BOPBlocks.dried_salt || ground == Blocks.GRAVEL || ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || ground == BOPBlocks.black_sand || ground == Blocks.NETHERRACK || super.canSurvive(state, worldIn, pos);
return ground == BOPBlocks.dried_salt || ground == Blocks.GRAVEL || ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_sand || ground == BOPBlocks.orange_sand || ground == BOPBlocks.black_sand || ground == Blocks.NETHERRACK || super.canSurvive(state, worldIn, pos);
}
return super.canSurvive(state, worldIn, pos);

View File

@ -97,7 +97,7 @@ public class SaplingBlockBOP extends SaplingBlock implements IGrowable
if (this == BOPBlocks.palm_sapling)
{
return ground == BOPBlocks.white_sand || ground == Blocks.RED_SAND || ground == Blocks.SAND || super.canSurvive(state, worldIn, pos);
return ground == BOPBlocks.white_sand || ground == BOPBlocks.orange_sand || ground == BOPBlocks.black_sand || ground == Blocks.RED_SAND || ground == Blocks.SAND || super.canSurvive(state, worldIn, pos);
}
if (this == BOPBlocks.hellbark_sapling)
{

View File

@ -77,7 +77,6 @@ public class BOPConfiguredFeatures
public static final ConfiguredFeature<?, ?> MAHOGANY_TREE = register("mahogany_tree", BOPFeatures.MAHOGANY_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> MAPLE_TREE = register("maple_tree", BOPFeatures.MAPLE_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> MAPLE_TWIGLET_TREE = register("maple_twiglet_tree", BOPFeatures.MAPLE_TWIGLET_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> OASIS_JUNGLE_TWIGLET_TREE = register("oasis_jungle_twiglet_tree", BOPFeatures.OASIS_JUNGLE_TWIGLET_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> ORANGE_AUTUMN_TREE = register("orange_autumn_tree", BOPFeatures.ORANGE_AUTUMN_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> ORIGIN_TREE = register("origin_tree", BOPFeatures.ORIGIN_TREE.configured(Features.OAK.config()));
public static final ConfiguredFeature<?, ?> PALM_TREE = register("palm_tree", BOPFeatures.PALM_TREE.configured(Features.OAK.config()));
@ -91,6 +90,7 @@ public class BOPConfiguredFeatures
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()));
public static final ConfiguredFeature<?, ?> SPRUCE_POPLAR = register("spruce_poplar", BOPFeatures.SPRUCE_POPLAR.configured(Features.OAK.config()));
@ -115,11 +115,11 @@ public class BOPConfiguredFeatures
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<?, ?> BRUSHLAND_TREES = register("brushland_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(3, 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<?, ?> 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<?, ?> 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<?, ?> 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))));
@ -127,6 +127,7 @@ public class BOPConfiguredFeatures
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))));
@ -135,15 +136,14 @@ public class BOPConfiguredFeatures
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<?, ?> OASIS_TREES = register("oasis_trees", Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(PALM_TREE.weighted(0.3F)), OASIS_JUNGLE_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig(5, 0.2F, 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_HILLS_TREES = register("origin_hills_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_BUSH.weighted(0.1F)), ACACIA_TWIGLET_TREE)).decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)0.5F, 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_VALLEY_TREES = register("rainbow_valley_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<?, ?> 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<?, ?> 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))));
@ -164,12 +164,12 @@ public class BOPConfiguredFeatures
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))));
public static final ConfiguredFeature<?, ?> XERIC_SHRUBLAND_TREES = register("xeric_shrubland_trees", ACACIA_TWIGLET_SMALL.decorated(Features.Placements.HEIGHTMAP_SQUARE).decorated(Placement.COUNT_EXTRA.configured(new AtSurfaceWithExtraConfig((int)1F, 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)));
@ -185,7 +185,7 @@ public class BOPConfiguredFeatures
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_VALLEY_FLOWERS = register("rainbow_valley_flowers", BOPFeatures.RAINBOW_VALLEY_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(25)));
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<?, ?> 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)));
@ -193,7 +193,6 @@ public class BOPConfiguredFeatures
public static final ConfiguredFeature<?, ?> UNDERGROWTH_FLOWERS = register("undergrowth_flowers", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.burning_blossom.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(8)));
public static final ConfiguredFeature<?, ?> WASTELAND_FLOWERS = register("wasteland_flowers", BOPFeatures.WASTELAND_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(1)));
public static final ConfiguredFeature<?, ?> WETLAND_FLOWERS = register("wetland_flowers", BOPFeatures.WETLAND_FLOWERS.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(3)));
public static final ConfiguredFeature<?, ?> XERIC_SHRUBLAND_FLOWERS = register("xeric_shrubland_flowers", BOPFeatures.WILDFLOWER_FEATURE.configured(IFeatureConfig.NONE).decorated(Features.Placements.ADD_32).decorated(Features.Placements.HEIGHTMAP_SQUARE.count(1)));
/////////////////////////////////////////////////////////////////////
@ -223,11 +222,8 @@ public class BOPConfiguredFeatures
public static final ConfiguredFeature<?, ?> SPROUTS_75 = register("sprouts_75", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(75)));
public static final ConfiguredFeature<?, ?> SPROUTS_200 = register("sprouts_200", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE).decorated(FeatureUtil.denseCount(200)));
public static final ConfiguredFeature<?, ?> DUNE_GRASS_10 = register("dune_grass_10", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dune_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10)));
public static final ConfiguredFeature<?, ?> DUNE_GRASS_20 = register("dune_grass_20", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dune_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(20)));
public static final ConfiguredFeature<?, ?> DUNE_GRASS_100 = register("dune_grass_100", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dune_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(100)));
public static final ConfiguredFeature<?, ?> DUNE_GRASS_128 = register("dune_grass_128", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dune_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(128)));
public static final ConfiguredFeature<?, ?> DESERT_GRASS_5 = register("desert_grass_5", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.desert_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(5)));
public static final ConfiguredFeature<?, ?> DESERT_GRASS_10 = register("desert_grass_10", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.desert_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(10)));
public static final ConfiguredFeature<?, ?> DESERT_GRASS_20 = register("desert_grass_20", Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.desert_grass.defaultBlockState())).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(20)));
@ -298,7 +294,7 @@ public class BOPConfiguredFeatures
public static final ConfiguredFeature<?, ?> BIG_PUMPKIN = register("big_pumpkin", BOPFeatures.BIG_PUMPKIN.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(3)));
public static final ConfiguredFeature<?, ?> BLACK_SANDSTONE_COLUMN = register("black_sandstone_column", BOPFeatures.BLACK_SANDSTONE_COLUMN.configured(new ColumnConfig(FeatureSpread.fixed(1), FeatureSpread.of(1, 3))).decorated(Placement.COUNT_MULTILAYER.configured(new FeatureSpreadConfig(2))).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(1)));
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(6)));
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<?, ?> 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));
@ -314,7 +310,8 @@ 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<?, ?> OVERGROWN_CLIFFS_SPRING = register("overgrown_cliffs_spring", Feature.SPRING.configured(BOPFeatures.OVERGROWN_CLIFFS_SPRING_CONFIG).decorated(Placement.RANGE_VERY_BIASED.configured(new TopSolidRangeConfig(8, 16, 256))).squared().decorated(FeatureUtil.denseCount(150)));
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<?, ?> PUMPKIN_PATCH = register("pumpkin_patch", BOPFeatures.PUMPKIN_PATCH.configured(IFeatureConfig.NONE).decorated(Features.Placements.HEIGHTMAP_DOUBLE_SQUARE.count(35)));

View File

@ -8,7 +8,6 @@
package biomesoplenty.common.world.gen.feature;
import biomesoplenty.api.block.BOPBlocks;
import biomesoplenty.common.world.gen.carver.OriginCaveWorldCarver;
import biomesoplenty.common.world.gen.feature.tree.*;
import biomesoplenty.core.BiomesOPlenty;
import com.google.common.collect.ImmutableSet;
@ -19,7 +18,6 @@ import net.minecraft.fluid.Fluids;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.gen.carver.WorldCarver;
import net.minecraft.world.gen.feature.*;
public class BOPFeatures
@ -79,6 +77,7 @@ public class BOPFeatures
public static final Feature<BaseTreeFeatureConfig> WILLOW_TREE = register("willow_tree", new BasicTreeFeature.Builder().log(BOPBlocks.willow_log.defaultBlockState()).leaves(BOPBlocks.willow_leaves.defaultBlockState()).vine(BOPBlocks.willow_vine.defaultBlockState()).minHeight(6).maxHeight(10).maxLeavesRadius(2).leavesOffset(0).create());
//Sparse Trees
public static final Feature<BaseTreeFeatureConfig> SPARSE_ACACIA_TREE = register("sparse_acacia_tree", new BigTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.orange_sand).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).maxHeight(8).foliageHeight(1).create());
public static final Feature<BaseTreeFeatureConfig> SPARSE_OAK_TREE = register("sparse_oak_tree", new BigTreeFeature.Builder().maxHeight(10).foliageHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> DYING_TREE = register("dying_tree", new BigTreeFeature.Builder().log(BOPBlocks.dead_log.defaultBlockState()).leaves(BOPBlocks.dead_leaves.defaultBlockState()).maxHeight(10).foliageHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> DYING_TREE_WASTELAND = register("dying_tree_wasteland", new BigTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.dried_salt).log(BOPBlocks.dead_log.defaultBlockState()).leaves(BOPBlocks.dead_leaves.defaultBlockState()).maxHeight(10).foliageHeight(1).create());
@ -86,7 +85,7 @@ public class BOPFeatures
//Bushes/Twiglets
public static final Feature<BaseTreeFeatureConfig> BUSH = register("bush", new BushTreeFeature.Builder().create());
public static final Feature<BaseTreeFeatureConfig> SPRUCE_BUSH = register("spruce_bush", new BushTreeFeature.Builder().log(Blocks.SPRUCE_LOG.defaultBlockState()).leaves(Blocks.SPRUCE_LEAVES.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_BUSH = register("acacia_bush", new BushTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.RED_SAND).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_BUSH = register("acacia_bush", new BushTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.orange_sand).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> FLOWERING_BUSH = register("flowering_bush", new BushTreeFeature.Builder().altLeaves(BOPBlocks.flowering_oak_leaves.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> COBWEB_BUSH = register("cobweb_bush", new BushTreeFeature.Builder().altLeaves(Blocks.COBWEB.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> FULL_COBWEB_BUSH = register("full_cobweb_bush", new BushTreeFeature.Builder().leaves(Blocks.COBWEB.defaultBlockState()).create());
@ -96,10 +95,9 @@ public class BOPFeatures
public static final Feature<BaseTreeFeatureConfig> TALL_TWIGLET_TREE = register("tall_twiglet_tree", new TwigletTreeFeature.Builder().minHeight(2).maxHeight(4).create());
public static final Feature<BaseTreeFeatureConfig> SPRUCE_TWIGLET_TREE = register("spruce_twiglet_tree", new TwigletTreeFeature.Builder().log(Blocks.SPRUCE_LOG.defaultBlockState()).leaves(Blocks.SPRUCE_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> JUNGLE_TWIGLET_TREE = register("jungle_twiglet_tree", new TwigletTreeFeature.Builder().log(Blocks.JUNGLE_LOG.defaultBlockState()).leaves(Blocks.JUNGLE_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).trunkFruit(Blocks.COCOA.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> OASIS_JUNGLE_TWIGLET_TREE = register("oasis_jungle_twiglet_tree", new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.SAND).log(Blocks.JUNGLE_LOG.defaultBlockState()).leaves(Blocks.JUNGLE_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).trunkFruit(Blocks.COCOA.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> DARK_OAK_TWIGLET_TREE = register("dark_oak_twiglet_tree", new TwigletTreeFeature.Builder().log(Blocks.DARK_OAK_LOG.defaultBlockState()).leaves(Blocks.DARK_OAK_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_TWIGLET_TREE = register("acacia_twiglet_tree", new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.RED_SAND).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_TWIGLET_SMALL = register("acacia_twiglet_small", new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.SAND).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_TWIGLET_SMALL = register("acacia_twiglet_small", new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.SAND || world.getBlockState(pos).getBlock() == BOPBlocks.orange_sand).log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> ACACIA_TWIGLET = register("acacia_twiglet", new TwigletTreeFeature.Builder().log(Blocks.ACACIA_LOG.defaultBlockState()).leaves(Blocks.ACACIA_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create());
public static final Feature<BaseTreeFeatureConfig> MAPLE_TWIGLET_TREE = register("maple_twiglet_tree", new TwigletTreeFeature.Builder().minHeight(1).maxHeight(2).leaves(BOPBlocks.maple_leaves.defaultBlockState()).create());
public static final Feature<BaseTreeFeatureConfig> DEAD_TWIGLET_TREE_SMALL = register("dead_twiglet_tree_small", new TwigletTreeFeature.Builder().minHeight(1).maxHeight(1).leaves(BOPBlocks.dead_leaves.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).create());
@ -162,7 +160,7 @@ public class BOPFeatures
public static final FlowersFeature<NoFeatureConfig> MYSTIC_GROVE_FLOWERS = register("mystic_grove_flowers", new MysticGroveFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> OMINOUS_WOODS_FLOWERS = register("ominous_woods_flowers", new OminousWoodsFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> ORIGIN_FLOWERS = register("origin_flowers", new OriginFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> RAINBOW_VALLEY_FLOWERS = register("rainbow_valley_flowers", new RainbowValleyFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> RAINBOW_HILLS_FLOWERS = register("rainbow_hills_flowers", new RainbowHillsFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> RAINFOREST_FLOWERS = register("rainforest_flowers", new RainforestFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> SHRUBLAND_FLOWERS = register("shrubland_flowers", new ShrublandFlowersFeature());
public static final FlowersFeature<NoFeatureConfig> SNOWY_FLOWERS = register("snowy_flowers", new SnowyFlowersFeature());
@ -177,7 +175,7 @@ public class BOPFeatures
//Other
public static final LiquidsConfig VOLCANO_SPRING_CONFIG = new LiquidsConfig(Fluids.LAVA.defaultFluidState(), true, 4, 1, ImmutableSet.of(Blocks.BASALT, Blocks.MAGMA_BLOCK, BOPBlocks.black_sand, BOPBlocks.black_sandstone, Blocks.STONE, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE));
public static final LiquidsConfig OVERGROWN_CLIFFS_SPRING_CONFIG = new LiquidsConfig(Fluids.WATER.defaultFluidState(), true, 4, 1, ImmutableSet.of(Blocks.DIRT, Blocks.TERRACOTTA, Blocks.STONE, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE));
public static final LiquidsConfig OVERGROWN_CLIFFS_SPRING_CONFIG = new LiquidsConfig(Fluids.WATER.defaultFluidState(), true, 4, 1, ImmutableSet.of(Blocks.DIRT, Blocks.TERRACOTTA, Blocks.STONE, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE, BOPBlocks.orange_sandstone));
private static <C extends IFeatureConfig, F extends Feature<C>> F register(String key, F value)
{

View File

@ -5,6 +5,7 @@ import biomesoplenty.common.util.block.IBlockPosQuery;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.material.Material;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.ISeedReader;
import net.minecraft.world.IWorld;
@ -17,8 +18,8 @@ import java.util.Random;
public class BoneSpineFeature extends Feature<NoFeatureConfig>
{
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.flesh;
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos);
protected IBlockPosQuery placeOn = (world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.flesh || world.getBlockState(pos).getBlock() == Blocks.GRASS_BLOCK;
protected IBlockPosQuery replace = (world, pos) -> world.getBlockState(pos).isAir(world, pos) || world.getBlockState(pos).canBeReplacedByLeaves(world, pos) || world.getBlockState(pos).getMaterial() == Material.WATER;
private int maxHeight = 3;
public BoneSpineFeature(Codec<NoFeatureConfig> deserializer)

View File

@ -18,7 +18,7 @@ import net.minecraft.world.gen.feature.NoFeatureConfig;
import java.util.Random;
public class RainbowValleyFlowersFeature extends DefaultFlowersFeatureNoConfig
public class RainbowHillsFlowersFeature extends DefaultFlowersFeatureNoConfig
{
private static final Block[] FLOWERS = new Block[]{BOPBlocks.pink_daffodil, BOPBlocks.orange_cosmos, Blocks.ALLIUM, Blocks.AZURE_BLUET, Blocks.ORANGE_TULIP, Blocks.PINK_TULIP, Blocks.RED_TULIP, Blocks.WHITE_TULIP, Blocks.CORNFLOWER, Blocks.LILY_OF_THE_VALLEY, Blocks.BLUE_ORCHID, Blocks.OXEYE_DAISY, Blocks.DANDELION, Blocks.POPPY};

View File

@ -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 biomesoplenty.api.block.BOPBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
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 XericShrublandFlowersFeature extends DefaultFlowersFeatureNoConfig
{
private static final Block[] FLOWERS = new Block[]{BOPBlocks.wildflower};
@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();
}
}

View File

@ -8,7 +8,6 @@
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.api.block.BOPBlocks;
import biomesoplenty.common.world.gen.feature.*;
import biomesoplenty.core.BiomesOPlenty;
import net.minecraft.block.Blocks;
import net.minecraft.util.ResourceLocation;
@ -27,11 +26,12 @@ public class BOPSurfaceBuilders
public static final SurfaceBuilderConfig RED_SAND_SURFACE = new SurfaceBuilderConfig(Blocks.RED_SAND.defaultBlockState(), Blocks.RED_SAND.defaultBlockState(), Blocks.RED_SAND.defaultBlockState());
public static final SurfaceBuilderConfig SNOW_SNOW_GRAVEL_SURFACE = new SurfaceBuilderConfig(Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.SNOW_BLOCK.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
public static final SurfaceBuilderConfig WHITE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState(), BOPBlocks.white_sand.defaultBlockState());
public static final SurfaceBuilderConfig ORANGE_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState(), BOPBlocks.orange_sand.defaultBlockState());
public static final SurfaceBuilderConfig ORANGE_SANDSTONE_SURFACE = new SurfaceBuilderConfig(BOPBlocks.orange_sandstone.defaultBlockState(), BOPBlocks.orange_sandstone.defaultBlockState(), BOPBlocks.orange_sandstone.defaultBlockState());
public static final SurfaceBuilderConfig BLACK_SAND_SURFACE = new SurfaceBuilderConfig(BOPBlocks.black_sand.defaultBlockState(), BOPBlocks.black_sand.defaultBlockState(), BOPBlocks.black_sand.defaultBlockState());
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> BRUSHLAND = register("brushland", new BrushlandSurfaceBuilder(SurfaceBuilderConfig.CODEC));
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> TERRACOTTA = register("terracotta", new TerracottaSurfaceBuilder(SurfaceBuilderConfig.CODEC));
@ -41,11 +41,13 @@ public class BOPSurfaceBuilders
public static final SurfaceBuilder<SurfaceBuilderConfig> PODZOL = register("podzol", new PodzolSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> VOLCANO = register("volcano", new VolcanoSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> DEEP_TOP_LAYER = register("deep_top_layer", new DeepTopLayerSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> ORANGE_SANDSTONE = register("orange_sandstone", new OrangeSandstoneSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> POPPY_FIELD = register("poppy_field", new PoppyFieldSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> WITHERED_ABYSS = register("withered_abyss", new WitheredAbyssSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> FLESH = register("flesh", new FleshSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> ORIGIN_HILLS = register("origin_hills", new OriginHillsSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> ORIGIN_VALLEY = register("origin_valley", new OriginValleySurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> TROPICS = register("tropics", new TropicsSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> LUSH_DESERT = register("lush_desert", new LushDesertSurfaceBuilder(SurfaceBuilderConfig.CODEC));
public static final SurfaceBuilder<SurfaceBuilderConfig> BLACK_SAND = register("black_sand", new BlackSandSurfaceBuilder(SurfaceBuilderConfig.CODEC));
private static <C extends ISurfaceBuilderConfig, F extends SurfaceBuilder<C>> F register(String key, F builder)

View File

@ -1,38 +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 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 BrushlandSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
{
public BrushlandSurfaceBuilder(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 > 1.9D)
{
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_FULL_SAND);
}
else
{
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_GRASS);
}
}
}

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
import com.mojang.serialization.Codec;

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.api.block.BOPBlocks;
import com.google.common.collect.ImmutableList;

View File

@ -0,0 +1,32 @@
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.api.block.BOPBlocks;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
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 LushDesertSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig> {
public LushDesertSurfaceBuilder(Codec<SurfaceBuilderConfig> p_i232124_1_) {
super(p_i232124_1_);
}
@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 > 1.9D)
{
BOPSurfaceBuilders.ORANGE_SANDSTONE.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPSurfaceBuilders.ORANGE_SANDSTONE_SURFACE);
}
else
{
BOPSurfaceBuilders.ORANGE_SANDSTONE.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPSurfaceBuilders.ORANGE_SAND_SURFACE);
}
}
}

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;

View File

@ -5,7 +5,7 @@
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.common.world.gen.surfacebuilders.BOPSurfaceBuilders;
import com.mojang.serialization.Codec;

View File

@ -0,0 +1,100 @@
package biomesoplenty.common.world.gen.surfacebuilders;
import biomesoplenty.api.block.BOPBlocks;
import com.mojang.serialization.Codec;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
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 OrangeSandstoneSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig> {
public OrangeSandstoneSurfaceBuilder(Codec<SurfaceBuilderConfig> p_i232124_1_) {
super(p_i232124_1_);
}
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) {
this.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, config.getTopMaterial(), config.getUnderMaterial(), config.getUnderwaterMaterial(), seaLevel);
}
protected void apply(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, BlockState top, BlockState middle, BlockState bottom, int sealevel) {
BlockState blockstate = top;
BlockState blockstate1 = middle;
BlockPos.Mutable blockpos$mutable = new BlockPos.Mutable();
int i = -1;
int j = (int)(noise / 3.0D + 4.0D + random.nextDouble() * 0.25D);
int k = x & 15;
int l = z & 15;
for(int i1 = startHeight; i1 >= 0; --i1)
{
blockpos$mutable.set(k, i1, l);
BlockState blockstate2 = chunkIn.getBlockState(blockpos$mutable);
if (blockstate2.isAir())
{
i = -1;
}
else if (blockstate2.is(defaultBlock.getBlock()))
{
if (i == -1)
{
if (j <= 0)
{
blockstate = Blocks.AIR.defaultBlockState();
blockstate1 = defaultBlock;
}
else if (i1 >= sealevel - 4 && i1 <= sealevel + 1)
{
blockstate = top;
blockstate1 = middle;
}
if (i1 < sealevel && (blockstate == null || blockstate.isAir()))
{
if (biomeIn.getTemperature(blockpos$mutable.set(x, i1, z)) < 0.15F)
{
blockstate = Blocks.ICE.defaultBlockState();
}
else
{
blockstate = defaultFluid;
}
blockpos$mutable.set(k, i1, l);
}
i = j;
if (i1 >= sealevel - 1)
{
chunkIn.setBlockState(blockpos$mutable, blockstate, false);
}
else if (i1 < sealevel - 7 - j)
{
blockstate = Blocks.AIR.defaultBlockState();
blockstate1 = defaultBlock;
chunkIn.setBlockState(blockpos$mutable, bottom, false);
}
else
{
chunkIn.setBlockState(blockpos$mutable, blockstate1, false);
}
}
else if (i > 0)
{
--i;
chunkIn.setBlockState(blockpos$mutable, blockstate1, false);
if (i == 0 && blockstate1.is(BOPBlocks.orange_sand) && j > 1)
{
i = random.nextInt(4) + Math.max(0, i1 - 63);
blockstate1 = BOPBlocks.orange_sandstone.defaultBlockState();
}
}
}
}
}
}

View File

@ -16,12 +16,12 @@ import net.minecraft.world.gen.surfacebuilders.SurfaceBuilderConfig;
import java.util.Random;
import java.util.stream.IntStream;
public class OriginHillsSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
public class OriginValleySurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
{
protected long seed;
protected AlphaOctavePerlinNoise sandNoise;
protected AlphaOctavePerlinNoise gravelNoise;
public OriginHillsSurfaceBuilder(Codec<SurfaceBuilderConfig> p_i232124_1_)
public OriginValleySurfaceBuilder(Codec<SurfaceBuilderConfig> p_i232124_1_)
{
super(p_i232124_1_);
}

View File

@ -7,7 +7,6 @@
******************************************************************************/
package biomesoplenty.init;
import biomesoplenty.api.biome.BOPBiomes;
import biomesoplenty.api.enums.BOPClimates;
import biomesoplenty.common.biome.BiomeMetadata;
import biomesoplenty.common.biome.BiomeRegistry;
@ -21,16 +20,13 @@ import biomesoplenty.common.util.biome.BiomeUtil;
import biomesoplenty.common.world.BOPBiomeGeneratorTypeScreen;
import biomesoplenty.common.world.BOPBiomeProvider;
import biomesoplenty.common.world.BOPNetherBiomeProvider;
import biomesoplenty.core.BiomesOPlenty;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.BiomeGeneratorTypeScreens;
import net.minecraft.entity.villager.VillagerType;
import net.minecraft.util.RegistryKey;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeColors;
@ -134,12 +130,12 @@ public class ModBiomes
registerBiome(new BayouBiome(), "bayou");
registerBiome(new BogBiome(), "bog");
registerBiome(new BorealForestBiome(), "boreal_forest");
registerBiome(new BrushlandBiome(), "brushland");
registerBiome(new ChaparralBiome(), "chaparral");
registerBiome(new CherryBlossomGroveBiome(), "cherry_blossom_grove");
registerBiome(new ColdDesertBiome(), "cold_desert");
registerBiome(new ConiferousForestBiome(), "coniferous_forest");
registerBiome(new DeadForestBiome(), "dead_forest");
registerBiome(new DrylandBiome(), "dryland");
registerBiome(new FirClearingBiome(), "fir_clearing");
registerBiome(new FloodplainBiome(), "floodplain");
registerBiome(new FlowerMeadowBiome(), "flower_meadow");
@ -150,6 +146,7 @@ public class ModBiomes
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");
@ -158,16 +155,15 @@ public class ModBiomes
registerBiome(new MireBiome(), "mire");
registerBiome(new MuskegBiome(), "muskeg");
registerBiome(new MysticGroveBiome(), "mystic_grove");
registerBiome(new OasisBiome(), "oasis");
registerBiome(new OminousWoodsBiome(), "ominous_woods");
registerBiome(new OriginHillsBiome(), "origin_hills");
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 RainbowValleyBiome(), "rainbow_valley");
registerBiome(new RainbowHillsBiome(), "rainbow_hills");
registerBiome(new RainforestBiome(), "rainforest");
registerBiome(new RedwoodForestBiome(), "redwood_forest");
registerBiome(new ScrublandBiome(), "scrubland");
@ -188,7 +184,6 @@ public class ModBiomes
registerBiome(new WastelandBiome(), "wasteland");
registerBiome(new WetlandBiome(), "wetland");
registerBiome(new WoodlandBiome(), "woodland");
registerBiome(new XericShrublandBiome(), "xeric_shrubland");
//Nether Biomes
registerBiome(new CrystallineChasmBiome(), "crystalline_chasm");
@ -200,8 +195,6 @@ public class ModBiomes
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.STANDARD_BIOME);
//Sub/Island Biomes (Note: Rarity supports two decimal places)
registerSubBiome(Biomes.DESERT, oasis, 0.1F, 100);
registerSubBiome(brushland, xeric_shrubland, 1.0F, 100);
registerSubBiome(coniferous_forest, fir_clearing, 0.38F, 100);
registerSubBiome(highland, highland_moor, 0.75F, 100);
registerSubBiome(meadow, flower_meadow, 0.5F, 100);
@ -213,17 +206,17 @@ public class ModBiomes
BiomeRegistry.configureSubBiomes();
BiomeRegistry.finalizeRegistrations(BiomeRegistry.RegistrationType.SUB_BIOME);
registerIslandBiome(origin_hills, BOPClimates.COOL_TEMPERATE, 50);
registerIslandBiome(origin_hills, BOPClimates.DRY_TEMPERATE, 50);
registerIslandBiome(origin_hills, BOPClimates.WET_TEMPERATE, 75);
registerIslandBiome(origin_valley, BOPClimates.COOL_TEMPERATE, 50);
registerIslandBiome(origin_valley, BOPClimates.DRY_TEMPERATE, 50);
registerIslandBiome(origin_valley, BOPClimates.WET_TEMPERATE, 75);
registerIslandBiome(volcano, BOPClimates.WARM_TEMPERATE, 75);
registerIslandBiome(volcano, BOPClimates.MEDITERRANEAN, 75);
registerIslandBiome(volcano, BOPClimates.SAVANNA, 50);
registerIslandBiome(rainbow_valley, BOPClimates.WET_TEMPERATE, 25);
registerIslandBiome(rainbow_valley, BOPClimates.WARM_TEMPERATE, 25);
registerIslandBiome(rainbow_valley, BOPClimates.MEDITERRANEAN, 25);
registerIslandBiome(rainbow_hills, BOPClimates.WET_TEMPERATE, 25);
registerIslandBiome(rainbow_hills, BOPClimates.WARM_TEMPERATE, 25);
registerIslandBiome(rainbow_hills, BOPClimates.MEDITERRANEAN, 25);
registerIslandBiome(tropics, BOPClimates.SUBTROPICAL, 75);
registerIslandBiome(tropics, BOPClimates.TROPICAL, 50);
@ -268,12 +261,12 @@ public class ModBiomes
registerVillagerType(bayou, VillagerType.SWAMP);
registerVillagerType(bog, VillagerType.SWAMP);
registerVillagerType(boreal_forest, VillagerType.TAIGA);
registerVillagerType(brushland, VillagerType.SAVANNA);
registerVillagerType(chaparral, VillagerType.PLAINS);
registerVillagerType(cherry_blossom_grove, VillagerType.PLAINS);
registerVillagerType(cold_desert, VillagerType.SNOW);
registerVillagerType(coniferous_forest, VillagerType.TAIGA);
registerVillagerType(dead_forest, VillagerType.TAIGA);
registerVillagerType(dryland, VillagerType.SAVANNA);
registerVillagerType(fir_clearing, VillagerType.TAIGA);
registerVillagerType(floodplain, VillagerType.JUNGLE);
registerVillagerType(flower_meadow, VillagerType.TAIGA);
@ -285,6 +278,7 @@ public class ModBiomes
registerVillagerType(highland_moor, VillagerType.PLAINS);
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);
@ -294,17 +288,16 @@ public class ModBiomes
registerVillagerType(mire, VillagerType.SWAMP);
registerVillagerType(muskeg, VillagerType.SNOW);
registerVillagerType(mystic_grove, VillagerType.PLAINS);
registerVillagerType(oasis, VillagerType.DESERT);
registerVillagerType(ominous_woods, VillagerType.SWAMP);
registerVillagerType(orchard, VillagerType.PLAINS);
registerVillagerType(origin_hills, 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_valley, VillagerType.PLAINS);
registerVillagerType(rainbow_hills, VillagerType.PLAINS);
registerVillagerType(rainforest, VillagerType.JUNGLE);
registerVillagerType(redwood_forest, VillagerType.PLAINS);
registerVillagerType(redwood_forest_edge, VillagerType.PLAINS);
@ -328,7 +321,6 @@ public class ModBiomes
registerVillagerType(wasteland, VillagerType.DESERT);
registerVillagerType(wetland, VillagerType.SWAMP);
registerVillagerType(woodland, VillagerType.PLAINS);
registerVillagerType(xeric_shrubland, VillagerType.DESERT);
}
private static void registerVillagerType(RegistryKey<Biome> key, VillagerType type)

View File

@ -48,6 +48,18 @@ public class ModBlocks
cut_white_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(cut_white_sandstone)), "cut_white_sandstone_slab");
chiseled_white_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.QUARTZ).strength(0.8F)), "chiseled_white_sandstone");
orange_sand = registerBlock(new SandBlockBOP(0xCC9A61, AbstractBlock.Properties.of(Material.SAND, MaterialColor.COLOR_ORANGE).strength(0.5F).sound(SoundType.SAND).harvestLevel(0).harvestTool(ToolType.SHOVEL)), "orange_sand");
orange_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_ORANGE).strength(0.8F)), "orange_sandstone");
orange_sandstone_stairs = registerBlock(new StairsBlock(orange_sandstone.defaultBlockState(), Block.Properties.copy(orange_sandstone)), "orange_sandstone_stairs");
orange_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(orange_sandstone)), "orange_sandstone_slab");
orange_sandstone_wall = registerBlock(new WallBlock(Block.Properties.copy(orange_sandstone)),"orange_sandstone_wall");
smooth_orange_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_ORANGE).strength(2.0F, 6.0F)), "smooth_orange_sandstone");
smooth_orange_sandstone_stairs = registerBlock(new StairsBlock(orange_sandstone.defaultBlockState(), Block.Properties.copy(smooth_orange_sandstone)), "smooth_orange_sandstone_stairs");
smooth_orange_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(smooth_orange_sandstone)), "smooth_orange_sandstone_slab");
cut_orange_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_ORANGE).strength(0.8F)), "cut_orange_sandstone");
cut_orange_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(cut_orange_sandstone)), "cut_orange_sandstone_slab");
chiseled_orange_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_ORANGE).strength(0.8F)), "chiseled_orange_sandstone");
black_sand = registerBlock(new SandBlockBOP(0x2D2C2F, AbstractBlock.Properties.of(Material.SAND, MaterialColor.COLOR_BLACK).strength(0.5F).sound(SoundType.SAND).harvestLevel(0).harvestTool(ToolType.SHOVEL)), "black_sand");
black_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_BLACK).strength(0.8F)), "black_sandstone");
black_sandstone_stairs = registerBlock(new StairsBlock(black_sandstone.defaultBlockState(), Block.Properties.copy(black_sandstone)), "black_sandstone_stairs");

View File

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "biomesoplenty:block/chiseled_orange_sandstone" }
}
}

View File

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "biomesoplenty:block/cut_orange_sandstone" }
}
}

View File

@ -0,0 +1,7 @@
{
"variants": {
"type=bottom": { "model": "biomesoplenty:block/cut_orange_sandstone_slab" },
"type=top": { "model": "biomesoplenty:block/cut_orange_sandstone_slab_top" },
"type=double": { "model": "biomesoplenty:block/cut_orange_sandstone" }
}
}

View File

@ -0,0 +1,10 @@
{
"variants": {
"": [
{ "model": "biomesoplenty:block/orange_sand" },
{ "model": "biomesoplenty:block/orange_sand", "y": 90 },
{ "model": "biomesoplenty:block/orange_sand", "y": 180 },
{ "model": "biomesoplenty:block/orange_sand", "y": 270 }
]
}
}

View File

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "biomesoplenty:block/orange_sandstone" }
}
}

View File

@ -0,0 +1,7 @@
{
"variants": {
"type=bottom": { "model": "biomesoplenty:block/orange_sandstone_slab" },
"type=top": { "model": "biomesoplenty:block/orange_sandstone_slab_top" },
"type=double": { "model": "biomesoplenty:block/orange_sandstone" }
}
}

View File

@ -0,0 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs" },
"facing=west,half=bottom,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "biomesoplenty:block/orange_sandstone_stairs", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "biomesoplenty:block/orange_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true }
}
}

View File

@ -0,0 +1,90 @@
{
"multipart": [
{
"when": {
"up": "true"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_post"
}
},
{
"when": {
"north": "low"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side",
"uvlock": true
}
},
{
"when": {
"east": "low"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side",
"y": 90,
"uvlock": true
}
},
{
"when": {
"south": "low"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side",
"y": 180,
"uvlock": true
}
},
{
"when": {
"west": "low"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side",
"y": 270,
"uvlock": true
}
},
{
"when": {
"north": "tall"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side_tall",
"uvlock": true
}
},
{
"when": {
"east": "tall"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side_tall",
"y": 90,
"uvlock": true
}
},
{
"when": {
"south": "tall"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side_tall",
"y": 180,
"uvlock": true
}
},
{
"when": {
"west": "tall"
},
"apply": {
"model": "biomesoplenty:block/orange_sandstone_wall_side_tall",
"y": 270,
"uvlock": true
}
}
]
}

View File

@ -1,8 +1,22 @@
{
"variants": {
"snowy=false": {
"model": "biomesoplenty:block/origin_grass_block"
},
"snowy=false": [
{
"model": "biomesoplenty:block/origin_grass_block"
},
{
"model": "biomesoplenty:block/origin_grass_block",
"y": 90
},
{
"model": "biomesoplenty:block/origin_grass_block",
"y": 180
},
{
"model": "biomesoplenty:block/origin_grass_block",
"y": 270
}
],
"snowy=true": {
"model": "biomesoplenty:block/origin_grass_block_snow"
}

View File

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "biomesoplenty:block/smooth_orange_sandstone" }
}
}

View File

@ -0,0 +1,7 @@
{
"variants": {
"type=bottom": { "model": "biomesoplenty:block/smooth_orange_sandstone_slab" },
"type=top": { "model": "biomesoplenty:block/smooth_orange_sandstone_slab_top" },
"type=double": { "model": "biomesoplenty:block/smooth_orange_sandstone" }
}
}

View File

@ -0,0 +1,44 @@
{
"variants": {
"facing=east,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs" },
"facing=west,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer" },
"facing=west,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer" },
"facing=north,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "y": 180, "uvlock": true },
"facing=east,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner" },
"facing=west,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 180, "uvlock": true },
"facing=south,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 90, "uvlock": true },
"facing=north,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 270, "uvlock": true },
"facing=east,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 270, "uvlock": true },
"facing=west,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 90, "uvlock": true },
"facing=south,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner" },
"facing=north,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "y": 180, "uvlock": true },
"facing=east,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "x": 180, "uvlock": true },
"facing=west,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "uvlock": true },
"facing=east,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "uvlock": true },
"facing=west,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
"facing=east,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
"facing=west,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true },
"facing=south,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
"facing=north,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "uvlock": true },
"facing=east,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "uvlock": true },
"facing=west,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
"facing=south,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
"facing=north,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_orange_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true }
}
}

View File

@ -1,7 +1,16 @@
{
"variants": {
"axis=y": { "model": "biomesoplenty:block/umbran_log" },
"axis=z": { "model": "biomesoplenty:block/umbran_log", "x": 90 },
"axis=x": { "model": "biomesoplenty:block/umbran_log", "x": 90, "y": 90 }
"axis=y": [
{ "model": "biomesoplenty:block/umbran_log" },
{ "model": "biomesoplenty:block/umbran_log_holes" }
],
"axis=z": [
{ "model": "biomesoplenty:block/umbran_log", "x": 90 },
{ "model": "biomesoplenty:block/umbran_log_holes", "x": 90 }
],
"axis=x": [
{ "model": "biomesoplenty:block/umbran_log", "x": 90, "y": 90 },
{ "model": "biomesoplenty:block/umbran_log_holes", "x": 90, "y": 90 }
]
}
}

View File

@ -1,7 +1,16 @@
{
"variants": {
"axis=y": { "model": "biomesoplenty:block/umbran_wood" },
"axis=z": { "model": "biomesoplenty:block/umbran_wood", "x": 90 },
"axis=x": { "model": "biomesoplenty:block/umbran_wood", "x": 90, "y": 90 }
"axis=y": [
{ "model": "biomesoplenty:block/umbran_wood" },
{ "model": "biomesoplenty:block/umbran_wood_holes" }
],
"axis=z": [
{ "model": "biomesoplenty:block/umbran_wood", "x": 90 },
{ "model": "biomesoplenty:block/umbran_wood_holes", "x": 90 }
],
"axis=x": [
{ "model": "biomesoplenty:block/umbran_wood", "x": 90, "y": 90 },
{ "model": "biomesoplenty:block/umbran_wood_holes", "x": 90, "y": 90 }
]
}
}

View File

@ -12,13 +12,13 @@
"biome.biomesoplenty.bayou": "Bayou",
"biome.biomesoplenty.bog": "Bog",
"biome.biomesoplenty.boreal_forest": "Boreal Forest",
"biome.biomesoplenty.brushland": "Brushland",
"biome.biomesoplenty.chaparral": "Chaparral",
"biome.biomesoplenty.cherry_blossom_grove": "Cherry Blossom Grove",
"biome.biomesoplenty.cold_desert": "Cold Desert",
"biome.biomesoplenty.coniferous_forest": "Coniferous Forest",
"biome.biomesoplenty.crystalline_chasm": "Crystalline Chasm",
"biome.biomesoplenty.dead_forest": "Dead Forest",
"biome.biomesoplenty.dryland": "Dryland",
"biome.biomesoplenty.fir_clearing": "Fir Clearing",
"biome.biomesoplenty.floodplain": "Floodplain",
"biome.biomesoplenty.flower_meadow": "Flower Meadow",
@ -30,6 +30,7 @@
"biome.biomesoplenty.highland_moor": "Highland Moor",
"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",
@ -39,17 +40,16 @@
"biome.biomesoplenty.mire": "Mire",
"biome.biomesoplenty.muskeg": "Muskeg",
"biome.biomesoplenty.mystic_grove": "Mystic Grove",
"biome.biomesoplenty.oasis": "Oasis",
"biome.biomesoplenty.ominous_woods": "Ominous Woods",
"biome.biomesoplenty.orchard": "Orchard",
"biome.biomesoplenty.origin_hills": "Origin Hills",
"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_valley": "Rainbow Valley",
"biome.biomesoplenty.rainbow_hills": "Rainbow Hills",
"biome.biomesoplenty.rainforest": "Rainforest",
"biome.biomesoplenty.redwood_forest": "Redwood Forest",
"biome.biomesoplenty.redwood_forest_edge": "Redwood Forest Edge",
@ -76,7 +76,6 @@
"biome.biomesoplenty.wetland": "Wetland",
"biome.biomesoplenty.withered_abyss": "Withered Abyss",
"biome.biomesoplenty.woodland": "Woodland",
"biome.biomesoplenty.xeric_shrubland": "Xeric Shrubland",
"item.biomesoplenty.bop_icon": "BOP Icon",
"item.biomesoplenty.cherry_boat": "Cherry Boat",
@ -121,6 +120,9 @@
"block.biomesoplenty.chiseled_black_sandstone": "Chiseled Black Sandstone",
"block.biomesoplenty.cut_black_sandstone": "Cut Black Sandstone",
"block.biomesoplenty.cut_black_sandstone_slab": "Cut Black Sandstone Slab",
"block.biomesoplenty.chiseled_orange_sandstone": "Chiseled Orange Sandstone",
"block.biomesoplenty.cut_orange_sandstone": "Cut Orange Sandstone",
"block.biomesoplenty.cut_orange_sandstone_slab": "Cut Orange Sandstone Slab",
"block.biomesoplenty.chiseled_white_sandstone": "Chiseled White Sandstone",
"block.biomesoplenty.cut_white_sandstone": "Cut White Sandstone",
"block.biomesoplenty.cut_white_sandstone_slab": "Cut White Sandstone Slab",
@ -240,6 +242,11 @@
"block.biomesoplenty.orange_autumn_leaves": "Orange Autumn Leaves",
"block.biomesoplenty.orange_autumn_sapling": "Orange Autumn Sapling",
"block.biomesoplenty.orange_cosmos": "Orange Cosmos",
"block.biomesoplenty.orange_sand": "Orange Sand",
"block.biomesoplenty.orange_sandstone": "Orange Sandstone",
"block.biomesoplenty.orange_sandstone_slab": "Orange Sandstone Slab",
"block.biomesoplenty.orange_sandstone_stairs": "Orange Sandstone Stairs",
"block.biomesoplenty.orange_sandstone_wall": "Orange Sandstone Wall",
"block.biomesoplenty.origin_grass_block": "Origin Grass Block",
"block.biomesoplenty.origin_leaves": "Origin Leaves",
"block.biomesoplenty.origin_sapling": "Origin Sapling",
@ -315,6 +322,9 @@
"block.biomesoplenty.smooth_black_sandstone": "Smooth Black Sandstone",
"block.biomesoplenty.smooth_black_sandstone_slab": "Smooth Black Sandstone Slab",
"block.biomesoplenty.smooth_black_sandstone_stairs": "Smooth Black Sandstone Stairs",
"block.biomesoplenty.smooth_orange_sandstone": "Smooth Orange Sandstone",
"block.biomesoplenty.smooth_orange_sandstone_slab": "Smooth Orange Sandstone Slab",
"block.biomesoplenty.smooth_orange_sandstone_stairs": "Smooth Orange Sandstone Stairs",
"block.biomesoplenty.smooth_white_sandstone": "Smooth White Sandstone",
"block.biomesoplenty.smooth_white_sandstone_slab": "Smooth White Sandstone Slab",
"block.biomesoplenty.smooth_white_sandstone_stairs": "Smooth White Sandstone Stairs",

View File

@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/chiseled_orange_sandstone"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/cut_orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/cut_orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab_top",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/cut_orange_sandstone"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "biomesoplenty:block/orange_sand"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/cube_bottom_top",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab_top",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/inner_stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/outer_stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_bottom",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/wall_inventory",
"textures": {
"wall": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_post",
"textures": {
"wall": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_side",
"textures": {
"wall": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_side_tall",
"textures": {
"wall": "biomesoplenty:block/orange_sandstone"
}
}

View File

@ -3,7 +3,7 @@
"textures": {
"top": "biomesoplenty:block/origin_grass_block_top",
"bottom": "minecraft:block/dirt",
"side": "biomesoplenty:block/origin_grass_block_snow",
"side": "minecraft:block/grass_block_snow",
"particle": "minecraft:block/dirt"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/slab_top",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/inner_stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,8 @@
{
"parent": "block/outer_stairs",
"textures": {
"bottom": "biomesoplenty:block/orange_sandstone_top",
"top": "biomesoplenty:block/orange_sandstone_top",
"side": "biomesoplenty:block/orange_sandstone_top"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "biomesoplenty:block/umbran_log_top",
"side": "biomesoplenty:block/umbran_log_holes"
}
}

View File

@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "biomesoplenty:block/umbran_log_holes",
"side": "biomesoplenty:block/umbran_log_holes"
}
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/chiseled_orange_sandstone"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/cut_orange_sandstone"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/cut_orange_sandstone_slab"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/orange_sand"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/orange_sandstone"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/orange_sandstone_slab"
}

View File

@ -0,0 +1,3 @@
{
"parent": "biomesoplenty:block/orange_sandstone_stairs"
}

Some files were not shown because too many files have changed in this diff Show More