Added black sand/sandstone, changed the Volcano Edge biome into Volcanic Plains
|
@ -72,8 +72,8 @@ public class BOPBiomes
|
|||
public static Optional<Biome> tropic_beach = Optional.empty();
|
||||
public static Optional<Biome> tropics = Optional.empty();
|
||||
public static Optional<Biome> tundra = Optional.empty();
|
||||
public static Optional<Biome> volcanic_plains = Optional.empty();
|
||||
public static Optional<Biome> volcano = Optional.empty();
|
||||
public static Optional<Biome> volcano_edge = Optional.empty();
|
||||
public static Optional<Biome> wasteland = Optional.empty();
|
||||
public static Optional<Biome> wetland = Optional.empty();
|
||||
public static Optional<Biome> woodland = Optional.empty();
|
||||
|
|
|
@ -23,6 +23,18 @@ public class BOPBlocks
|
|||
public static Block white_sandstone_stairs;
|
||||
public static Block white_sandstone_wall;
|
||||
|
||||
public static Block black_sand;
|
||||
public static Block black_sandstone;
|
||||
public static Block cut_black_sandstone;
|
||||
public static Block cut_black_sandstone_slab;
|
||||
public static Block chiseled_black_sandstone;
|
||||
public static Block smooth_black_sandstone;
|
||||
public static Block smooth_black_sandstone_slab;
|
||||
public static Block smooth_black_sandstone_stairs;
|
||||
public static Block black_sandstone_slab;
|
||||
public static Block black_sandstone_stairs;
|
||||
public static Block black_sandstone_wall;
|
||||
|
||||
public static Block mud;
|
||||
public static Block mud_bricks;
|
||||
public static Block mud_brick_slab;
|
||||
|
|
|
@ -45,7 +45,7 @@ public class UndergrowthBiome extends NetherBiomeBOP
|
|||
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.BRAMBLE.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(50))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.burning_blossom.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(8))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(50))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(75))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dead_grass.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(40))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.root.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(8))));
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_DECORATION, BOPBiomeFeatures.NETHER_VINES.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(150))));
|
||||
|
|
|
@ -14,6 +14,8 @@ import biomesoplenty.common.world.biome.BiomeFeatureHelper;
|
|||
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
|
||||
import biomesoplenty.common.world.gen.feature.StandardGrassFeature;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
|
@ -53,6 +55,8 @@ public class OminousWoodsBiome extends BiomeBOP
|
|||
DefaultBiomeFeatures.addDefaultUndergroundVariety(this);
|
||||
DefaultBiomeFeatures.addDefaultOres(this);
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.DISK.configured(new SphereReplaceConfig(BOPBlocks.black_sand.defaultBlockState(), 8, 2, Lists.newArrayList(new BlockState[]{Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()}))).decorated(Placement.COUNT_TOP_SOLID.configured(new FrequencyConfig(3))));
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, the Biomes O' Plenty Team
|
||||
*
|
||||
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
||||
*
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import biomesoplenty.api.enums.BOPClimates;
|
||||
import biomesoplenty.common.biome.BiomeBOP;
|
||||
import biomesoplenty.common.world.biome.BiomeFeatureHelper;
|
||||
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
|
||||
import biomesoplenty.common.world.gen.feature.StandardGrassFeature;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeAmbience;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.biome.MoodSoundAmbience;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.MineshaftConfig;
|
||||
import net.minecraft.world.gen.feature.structure.MineshaftStructure;
|
||||
import net.minecraft.world.gen.placement.*;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class VolcanicPlainsBiome extends BiomeBOP
|
||||
{
|
||||
public VolcanicPlainsBiome()
|
||||
{
|
||||
super((new Builder()).surfaceBuilder(new ConfiguredSurfaceBuilder(BOPBiomeFeatures.BLACK_SAND_SURFACE_BUILDER, BOPBiomeFeatures.BLACK_SAND_SURFACE)).precipitation(RainType.RAIN).biomeCategory(Category.NONE).depth(0.05F).scale(0.0F).temperature(0.95F).downfall(0.3F).specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()).parent((String)null));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(this);
|
||||
this.addStructureStart(DefaultBiomeFeatures.RUINED_PORTAL_STANDARD);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(this);
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.LAKES, Feature.LAKE.configured(new BlockStateFeatureConfig(Blocks.LAVA.defaultBlockState())).decorated(Placement.LAVA_LAKE.configured(new ChanceConfig(80))));
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(this);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(this);
|
||||
DefaultBiomeFeatures.addDefaultOres(this);
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.TWIGLET_TREE_VOLCANO.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).decorated(Placement.COUNT_EXTRA_HEIGHTMAP.configured(new AtSurfaceWithExtraConfig(1, 0.1F, 1))));
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, new StandardGrassFeature(NoFeatureConfig.CODEC).configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(10))));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(200))));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.GRASS_SPLATTER.configured(IFeatureConfig.NONE).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(25))));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.BLACK_SANDSTONE_COLUMN.configured(DefaultBiomeFeatures.SMALL_BASALT_COLUMN_FEATURE_CONFIG).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(1))));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.SPRING.configured(BOPBiomeFeatures.VOLCANO_SPRING_CONFIG).decorated(Placement.COUNT_VERY_BIASED_RANGE.configured(new CountRangeConfig(50, 8, 16, 256))));
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(this);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(this);
|
||||
|
||||
// Entities
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.SPIDER, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.ZOMBIE, 95, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.SKELETON, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.CREEPER, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.SLIME, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.ENDERMAN, 10, 1, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
||||
|
||||
this.setBeachBiome((Biome)null);
|
||||
this.setRiverBiome((Biome)null);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getGrassColor(double x, double z)
|
||||
{
|
||||
return 0x4A703B;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getFoliageColor() { return 0x547D42; }
|
||||
}
|
|
@ -55,6 +55,9 @@ public class VolcanoBiome extends BiomeBOP
|
|||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(this);
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.SPRING.configured(BOPBiomeFeatures.VOLCANO_SPRING_CONFIG).decorated(Placement.COUNT_VERY_BIASED_RANGE.configured(new CountRangeConfig(75, 8, 16, 256))));
|
||||
|
||||
DefaultBiomeFeatures.addExtraEmeralds(this);
|
||||
DefaultBiomeFeatures.addInfestedStone(this);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(this);
|
||||
|
@ -70,27 +73,17 @@ public class VolcanoBiome extends BiomeBOP
|
|||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
||||
|
||||
this.setRiverBiome((Biome)null);
|
||||
this.setBeachBiome(BOPBiomes.volcano_edge);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getSkyColor()
|
||||
{
|
||||
return 0x96A8CA;
|
||||
this.setBeachBiome(BOPBiomes.volcanic_plains);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getGrassColor(double x, double z)
|
||||
{
|
||||
return 0xAD9364;
|
||||
return 0x4A703B;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getFoliageColor()
|
||||
{
|
||||
return 0xB7B763;
|
||||
}
|
||||
public int getFoliageColor() { return 0x547D42; }
|
||||
}
|
||||
|
|
|
@ -1,107 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright 2014-2019, the Biomes O' Plenty Team
|
||||
*
|
||||
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
||||
*
|
||||
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||
******************************************************************************/
|
||||
package biomesoplenty.common.biome.overworld;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import biomesoplenty.common.biome.BiomeBOP;
|
||||
import biomesoplenty.common.world.biome.BiomeFeatureHelper;
|
||||
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeAmbience;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.biome.MoodSoundAmbience;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
import net.minecraft.world.gen.feature.structure.MineshaftConfig;
|
||||
import net.minecraft.world.gen.feature.structure.MineshaftStructure;
|
||||
import net.minecraft.world.gen.placement.AtSurfaceWithExtraConfig;
|
||||
import net.minecraft.world.gen.placement.ChanceConfig;
|
||||
import net.minecraft.world.gen.placement.FrequencyConfig;
|
||||
import net.minecraft.world.gen.placement.Placement;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class VolcanoEdgeBiome extends BiomeBOP
|
||||
{
|
||||
public VolcanoEdgeBiome()
|
||||
{
|
||||
super((new Biome.Builder()).surfaceBuilder(new ConfiguredSurfaceBuilder(BOPBiomeFeatures.VOLCANO_EDGE_SURFACE_BUILDER, SurfaceBuilder.CONFIG_STONE)).precipitation(Biome.RainType.RAIN).biomeCategory(Biome.Category.NONE).depth(1.25F).scale(0.4F).temperature(0.95F).downfall(0.3F).specialEffects((new BiomeAmbience.Builder()).waterColor(4566514).waterFogColor(267827).fogColor(12638463).ambientMoodSound(MoodSoundAmbience.LEGACY_CAVE_SETTINGS).build()).parent((String)null));
|
||||
|
||||
// Structures
|
||||
DefaultBiomeFeatures.addDefaultOverworldLandStructures(this);
|
||||
this.addStructureStart(DefaultBiomeFeatures.RUINED_PORTAL_MOUNTAIN);
|
||||
|
||||
// Underground
|
||||
DefaultBiomeFeatures.addDefaultCarvers(this);
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.LOCAL_MODIFICATIONS, Feature.LAKE.configured(new BlockStateFeatureConfig(Blocks.LAVA.defaultBlockState())).decorated(Placement.LAVA_LAKE.configured(new ChanceConfig(10))));
|
||||
|
||||
DefaultBiomeFeatures.addDefaultMonsterRoom(this);
|
||||
DefaultBiomeFeatures.addDefaultUndergroundVariety(this);
|
||||
DefaultBiomeFeatures.addDefaultOres(this);
|
||||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, Feature.DISK.configured(new SphereReplaceConfig(Blocks.GRAVEL.defaultBlockState(), 6, 2, Lists.newArrayList(new BlockState[]{Blocks.DIRT.defaultBlockState(), Blocks.GRASS_BLOCK.defaultBlockState()}))).decorated(Placement.COUNT_TOP_SOLID.configured(new FrequencyConfig(1))));
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Vegetation
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BOPBiomeFeatures.DYING_TREE_VOLCANO.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.1F)), BOPBiomeFeatures.DEAD_TREE_VOLCANO.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG))).decorated(Placement.COUNT_EXTRA_HEIGHTMAP.configured(new AtSurfaceWithExtraConfig(1, 0.2F, 1))));
|
||||
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.dead_grass.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(2))));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.defaultBlockState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(2))));
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
// Other Features
|
||||
DefaultBiomeFeatures.addDefaultSprings(this);
|
||||
DefaultBiomeFeatures.addExtraEmeralds(this);
|
||||
DefaultBiomeFeatures.addInfestedStone(this);
|
||||
DefaultBiomeFeatures.addSurfaceFreezing(this);
|
||||
|
||||
// Entities
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SPIDER, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ZOMBIE, 95, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ZOMBIE_VILLAGER, 5, 1, 1));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SKELETON, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.CREEPER, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.SLIME, 100, 4, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.ENDERMAN, 10, 1, 4));
|
||||
this.addSpawn(EntityClassification.MONSTER, new Biome.SpawnListEntry(EntityType.WITCH, 5, 1, 1));
|
||||
|
||||
this.setRiverBiome((Biome)null);
|
||||
this.setBeachBiome((Biome)null);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getSkyColor()
|
||||
{
|
||||
return 0x96A8CA;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getGrassColor(double x, double z)
|
||||
{
|
||||
return 0xAD9364;
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public int getFoliageColor()
|
||||
{
|
||||
return 0xB7B763;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
return ground == Blocks.SAND || ground == Blocks.RED_SAND || ground == BOPBlocks.white_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 == 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.black_sand || ground == Blocks.NETHERRACK || super.canSurvive(state, worldIn, pos);
|
||||
}
|
||||
|
||||
return super.canSurvive(state, worldIn, pos);
|
||||
|
|
|
@ -12,9 +12,9 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraftforge.common.PlantType;
|
||||
|
||||
public class WhiteSandBlock extends SandBlock
|
||||
public class SandBlockBOP extends SandBlock
|
||||
{
|
||||
public WhiteSandBlock(int p_i48338_1_, Block.Properties properties)
|
||||
public SandBlockBOP(int p_i48338_1_, Block.Properties properties)
|
||||
{
|
||||
super(p_i48338_1_, properties);
|
||||
}
|
|
@ -9,9 +9,11 @@ package biomesoplenty.common.world.gen.feature;
|
|||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import biomesoplenty.common.world.gen.feature.tree.*;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.LeavesBlock;
|
||||
import net.minecraft.block.SaplingBlock;
|
||||
import net.minecraft.fluid.Fluids;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.world.gen.carver.WorldCarver;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
|
@ -78,7 +80,6 @@ public class BOPBiomeFeatures
|
|||
public static final Feature<BaseTreeFeatureConfig> SPARSE_OAK_TREE = new BigTreeFeature.Builder().maxHeight(10).foliageHeight(2).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> 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 = 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();
|
||||
public static final Feature<BaseTreeFeatureConfig> DYING_TREE_VOLCANO = new BigTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.GRAVEL).log(BOPBlocks.dead_log.defaultBlockState()).leaves(BOPBlocks.dead_leaves.defaultBlockState()).maxHeight(10).foliageHeight(2).create();
|
||||
|
||||
//Bushes/Twiglets
|
||||
public static final Feature<BaseTreeFeatureConfig> BUSH = new BushTreeFeature.Builder().create();
|
||||
|
@ -101,6 +102,7 @@ public class BOPBiomeFeatures
|
|||
public static final Feature<BaseTreeFeatureConfig> DEAD_TWIGLET_TREE_SMALL = new TwigletTreeFeature.Builder().minHeight(1).maxHeight(1).leaves(BOPBlocks.dead_leaves.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> DEAD_TWIGLET_TREE = new TwigletTreeFeature.Builder().trunkFruit(BOPBlocks.dead_branch.defaultBlockState()).leafChance(0.05F, 0.25F).leaves(BOPBlocks.dead_leaves.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).minHeight(4).maxHeight(7).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> DEAD_TWIGLET_TREE_TALL = new TwigletTreeFeature.Builder().trunkFruit(BOPBlocks.dead_branch.defaultBlockState()).leafChance(0.15F, 0.6F).leaves(BOPBlocks.dead_leaves.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).minHeight(8).maxHeight(12).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> TWIGLET_TREE_VOLCANO = new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.black_sand).log(Blocks.DARK_OAK_LOG.defaultBlockState()).leaves(Blocks.DARK_OAK_LEAVES.defaultBlockState()).minHeight(1).maxHeight(2).create();
|
||||
|
||||
//Special Trees
|
||||
public static final Feature<BaseTreeFeatureConfig> REDWOOD_TREE = new RedwoodTreeFeature.Builder().create();
|
||||
|
@ -110,7 +112,6 @@ public class BOPBiomeFeatures
|
|||
public static final Feature<BaseTreeFeatureConfig> PALM_TREE = new PalmTreeFeature.Builder().create();
|
||||
public static final Feature<BaseTreeFeatureConfig> DEAD_TREE = new TwigletTreeFeature.Builder().trunkFruit(BOPBlocks.dead_branch.defaultBlockState()).leafChance(0.0F, 0.0F).leaves(Blocks.AIR.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).minHeight(6).maxHeight(10).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> DEAD_TREE_WASTELAND = new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == BOPBlocks.dried_salt).trunkFruit(BOPBlocks.dead_branch.defaultBlockState()).leafChance(0.0F, 0.0F).leaves(Blocks.AIR.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).minHeight(6).maxHeight(10).create();
|
||||
public static final Feature<BaseTreeFeatureConfig> DEAD_TREE_VOLCANO = new TwigletTreeFeature.Builder().placeOn((world, pos) -> world.getBlockState(pos).getBlock() == Blocks.GRAVEL).trunkFruit(BOPBlocks.dead_branch.defaultBlockState()).leafChance(0.0F, 0.0F).leaves(Blocks.AIR.defaultBlockState()).log(BOPBlocks.dead_log.defaultBlockState()).minHeight(6).maxHeight(10).create();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -136,6 +137,8 @@ public class BOPBiomeFeatures
|
|||
public static final Feature<NoFeatureConfig> SMALL_CRYSTAL = new SmallCrystalFeature(NoFeatureConfig.CODEC);
|
||||
public static final Feature<NoFeatureConfig> LARGE_CRYSTAL = new LargeCrystalFeature(NoFeatureConfig.CODEC);
|
||||
public static final Feature<NoFeatureConfig> FLESH_TENDON = new FleshTendonFeature(NoFeatureConfig.CODEC);
|
||||
public static final Feature<NoFeatureConfig> GRASS_SPLATTER = new GrassSplatterFeature(NoFeatureConfig.CODEC);
|
||||
public static final Feature<ColumnConfig> BLACK_SANDSTONE_COLUMN = new BlackSandstoneColumnFeature(ColumnConfig.CODEC);
|
||||
|
||||
//Flowers
|
||||
public static final FlowersFeature CHAPARRAL_FLOWERS = new ChaparralFlowersFeature();
|
||||
|
@ -170,13 +173,13 @@ public class BOPBiomeFeatures
|
|||
public static final SurfaceBuilder<SurfaceBuilderConfig> MUD_SURFACE_BUILDER = new MudSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> PODZOL_SURFACE_BUILDER = new PodzolSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> VOLCANO_SURFACE_BUILDER = new VolcanoSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> VOLCANO_EDGE_SURFACE_BUILDER = new VolcanoEdgeSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> DEEP_TOP_LAYER = new DeepTopLayerSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> POPPY_FIELD_SURFACE_BUILDER = new PoppyFieldSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> WITHERED_ABYSS_SURFACE_BUILDER = new WitheredAbyssSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> FLESH_SURFACE_BUILDER = new FleshSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> ORIGIN_HILLS_SURFACE_BUILDER = new OriginHillsSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> TROPICS_SURFACE_BUILDER = new TropicsSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
public static final SurfaceBuilder<SurfaceBuilderConfig> BLACK_SAND_SURFACE_BUILDER = new BlackSandSurfaceBuilder(SurfaceBuilderConfig.CODEC);
|
||||
|
||||
public static final SurfaceBuilderConfig BLACKSTONE_SURFACE = new SurfaceBuilderConfig(Blocks.BLACKSTONE.defaultBlockState(), Blocks.BLACKSTONE.defaultBlockState(), Blocks.BLACKSTONE.defaultBlockState());
|
||||
public static final SurfaceBuilderConfig BASALT_SURFACE = new SurfaceBuilderConfig(Blocks.BASALT.defaultBlockState(), Blocks.BASALT.defaultBlockState(), Blocks.GRAVEL.defaultBlockState());
|
||||
|
@ -186,6 +189,7 @@ public class BOPBiomeFeatures
|
|||
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 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());
|
||||
|
||||
|
@ -197,4 +201,7 @@ public class BOPBiomeFeatures
|
|||
|
||||
//Carvers
|
||||
public static final WorldCarver<ProbabilityConfig> ORIGIN_CAVE = new OriginCaveWorldCarver(ProbabilityConfig.CODEC, 256);
|
||||
|
||||
//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));
|
||||
}
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
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 BlackSandSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig> {
|
||||
public BlackSandSurfaceBuilder(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 + 3.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.black_sand) && j > 1)
|
||||
{
|
||||
i = random.nextInt(4) + Math.max(0, i1 - 63);
|
||||
blockstate1 = BOPBlocks.black_sandstone.defaultBlockState();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import biomesoplenty.common.block.NetherCrystalBlock;
|
||||
import biomesoplenty.common.util.block.IBlockPosQuery;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.serialization.Codec;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.BushBlock;
|
||||
import net.minecraft.state.properties.AttachFace;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.ISeedReader;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.gen.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.ColumnConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.structure.StructureManager;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Random;
|
||||
|
||||
public class BlackSandstoneColumnFeature extends Feature<ColumnConfig> {
|
||||
private static final ImmutableList<Block> CANNOT_PLACE_ON = ImmutableList.of(Blocks.DARK_OAK_LOG, Blocks.DARK_OAK_LEAVES, Blocks.WATER, Blocks.LAVA, Blocks.BEDROCK, Blocks.MAGMA_BLOCK, Blocks.SOUL_SAND, Blocks.NETHER_BRICKS, Blocks.NETHER_BRICK_FENCE, Blocks.NETHER_BRICK_STAIRS, Blocks.NETHER_WART, Blocks.CHEST, Blocks.SPAWNER);
|
||||
|
||||
public BlackSandstoneColumnFeature(Codec<ColumnConfig> p_i231925_1_) {
|
||||
super(p_i231925_1_);
|
||||
}
|
||||
|
||||
public boolean place(ISeedReader p_230362_1_, StructureManager p_230362_2_, ChunkGenerator p_230362_3_, Random p_230362_4_, BlockPos p_230362_5_, ColumnConfig p_230362_6_) {
|
||||
int i = p_230362_3_.getSeaLevel();
|
||||
BlockPos blockpos = findSurface(p_230362_1_, i, p_230362_5_.mutable().clamp(Direction.Axis.Y, 1, p_230362_1_.getMaxBuildHeight() - 1), Integer.MAX_VALUE);
|
||||
if (blockpos == null) {
|
||||
return false;
|
||||
} else {
|
||||
int j = calculateHeight(p_230362_4_, p_230362_6_);
|
||||
boolean flag = p_230362_4_.nextFloat() < 0.9F;
|
||||
int k = Math.min(j, flag ? 5 : 8);
|
||||
int l = flag ? 50 : 15;
|
||||
boolean flag1 = false;
|
||||
|
||||
for(BlockPos blockpos1 : BlockPos.randomBetweenClosed(p_230362_4_, l, blockpos.getX() - k, blockpos.getY(), blockpos.getZ() - k, blockpos.getX() + k, blockpos.getY(), blockpos.getZ() + k)) {
|
||||
int i1 = j - blockpos1.distManhattan(blockpos);
|
||||
if (i1 >= 0) {
|
||||
flag1 |= this.placeColumn(p_230362_1_, i, blockpos1, i1, calculateReach(p_230362_4_, p_230362_6_));
|
||||
}
|
||||
}
|
||||
|
||||
return flag1;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean placeColumn(IWorld p_236248_1_, int p_236248_2_, BlockPos p_236248_3_, int p_236248_4_, int p_236248_5_) {
|
||||
boolean flag = false;
|
||||
|
||||
for(BlockPos blockpos : BlockPos.betweenClosed(p_236248_3_.getX() - p_236248_5_, p_236248_3_.getY(), p_236248_3_.getZ() - p_236248_5_, p_236248_3_.getX() + p_236248_5_, p_236248_3_.getY(), p_236248_3_.getZ() + p_236248_5_)) {
|
||||
int i = blockpos.distManhattan(p_236248_3_);
|
||||
BlockPos blockpos1 = isAirOrLavaOcean(p_236248_1_, p_236248_2_, blockpos) ? findSurface(p_236248_1_, p_236248_2_, blockpos.mutable(), i) : findAir(p_236248_1_, blockpos.mutable(), i);
|
||||
if (blockpos1 != null) {
|
||||
int j = p_236248_4_ - i / 2;
|
||||
|
||||
for(BlockPos.Mutable blockpos$mutable = blockpos1.mutable(); j >= 0; --j) {
|
||||
if (isAirOrLavaOcean(p_236248_1_, p_236248_2_, blockpos$mutable)) {
|
||||
this.setBlock(p_236248_1_, blockpos$mutable, BOPBlocks.black_sandstone.defaultBlockState());
|
||||
blockpos$mutable.move(Direction.UP);
|
||||
flag = true;
|
||||
} else {
|
||||
if (!p_236248_1_.getBlockState(blockpos$mutable).is( BOPBlocks.black_sandstone)) {
|
||||
break;
|
||||
}
|
||||
|
||||
blockpos$mutable.move(Direction.UP);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static BlockPos findSurface(IWorld p_236246_0_, int p_236246_1_, BlockPos.Mutable p_236246_2_, int p_236246_3_) {
|
||||
for(; p_236246_2_.getY() > 1 && p_236246_3_ > 0; p_236246_2_.move(Direction.DOWN)) {
|
||||
--p_236246_3_;
|
||||
if (isAirOrLavaOcean(p_236246_0_, p_236246_1_, p_236246_2_)) {
|
||||
BlockState blockstate = p_236246_0_.getBlockState(p_236246_2_.move(Direction.DOWN));
|
||||
p_236246_2_.move(Direction.UP);
|
||||
if (!blockstate.isAir() && !(blockstate.getBlock() instanceof BushBlock) && !CANNOT_PLACE_ON.contains(blockstate.getBlock())) {
|
||||
return p_236246_2_;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static BlockPos findAir(IWorld p_236249_0_, BlockPos.Mutable p_236249_1_, int p_236249_2_) {
|
||||
while(p_236249_1_.getY() < p_236249_0_.getMaxBuildHeight() && p_236249_2_ > 0) {
|
||||
--p_236249_2_;
|
||||
BlockState blockstate = p_236249_0_.getBlockState(p_236249_1_);
|
||||
if (CANNOT_PLACE_ON.contains(blockstate.getBlock())) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (blockstate.isAir() || blockstate.getBlock() instanceof BushBlock) {
|
||||
return p_236249_1_;
|
||||
}
|
||||
|
||||
p_236249_1_.move(Direction.UP);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static int calculateHeight(Random p_236250_0_, ColumnConfig p_236250_1_) {
|
||||
return p_236250_1_.minimumHeight + p_236250_0_.nextInt(p_236250_1_.maximumHeight - p_236250_1_.minimumHeight + 1);
|
||||
}
|
||||
|
||||
private static int calculateReach(Random p_236251_0_, ColumnConfig p_236251_1_) {
|
||||
return p_236251_1_.minimumReach + p_236251_0_.nextInt(p_236251_1_.maximumReach - p_236251_1_.minimumReach + 1);
|
||||
}
|
||||
|
||||
private static boolean isAirOrLavaOcean(IWorld p_236247_0_, int p_236247_1_, BlockPos p_236247_2_) {
|
||||
BlockState blockstate = p_236247_0_.getBlockState(p_236247_2_);
|
||||
return blockstate.isAir() || blockstate.getBlock() instanceof BushBlock || blockstate.is(Blocks.LAVA) && p_236247_2_.getY() <= p_236247_1_;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package biomesoplenty.common.world.gen.feature;
|
||||
|
||||
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.ISeedReader;
|
||||
import net.minecraft.world.gen.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.NoFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.structure.StructureManager;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class GrassSplatterFeature extends Feature<NoFeatureConfig>
|
||||
{
|
||||
public GrassSplatterFeature(Codec<NoFeatureConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean place(ISeedReader worldIn, StructureManager structureManager, ChunkGenerator chunkGenerator, Random rand, BlockPos pos, NoFeatureConfig config)
|
||||
{
|
||||
int i = 0;
|
||||
int j = rand.nextInt(8 - 2) + 2;
|
||||
|
||||
for (int k = pos.getX() - j; k <= pos.getX() + j; ++k)
|
||||
{
|
||||
for (int l = pos.getZ() - j; l <= pos.getZ() + j; ++l)
|
||||
{
|
||||
int i1 = k - pos.getX();
|
||||
int j1 = l - pos.getZ();
|
||||
if (i1 * i1 + j1 * j1 <= j * j)
|
||||
{
|
||||
for (int k1 = pos.getY() - 2; k1 <= pos.getY() + 2; ++k1)
|
||||
{
|
||||
BlockPos blockpos = new BlockPos(k, k1, l);
|
||||
BlockState blockstate = worldIn.getBlockState(blockpos);
|
||||
BlockState blockstate1 = worldIn.getBlockState(blockpos.above());
|
||||
|
||||
if (blockstate.getBlock() == BOPBlocks.black_sand && blockstate1.isAir(worldIn, blockpos.above()))
|
||||
{
|
||||
worldIn.setBlock(blockpos, Blocks.GRASS_BLOCK.defaultBlockState(), 2);
|
||||
if (rand.nextInt(3) == 0)
|
||||
{
|
||||
worldIn.setBlock(blockpos.above(), Blocks.FERN.defaultBlockState(), 2);
|
||||
}
|
||||
|
||||
++i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return i > 0;
|
||||
}
|
||||
}
|
|
@ -1,41 +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 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 VolcanoEdgeSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig>
|
||||
{
|
||||
public VolcanoEdgeSurfaceBuilder(Codec<SurfaceBuilderConfig> deserializer)
|
||||
{
|
||||
super(deserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise, BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config) {
|
||||
if (noise > 2.6D)
|
||||
{
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, BOPBiomeFeatures.BASALT_SURFACE);
|
||||
}
|
||||
else if (noise > 0.8F)
|
||||
{
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_STONE);
|
||||
}
|
||||
else
|
||||
{
|
||||
SurfaceBuilder.DEFAULT.apply(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilder.CONFIG_GRAVEL);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -49,8 +49,8 @@ public enum BOPBiomeEdgeLayer implements ICastleTransformer
|
|||
// line BOP redwood forest with BOP redwood forest edge
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.redwood_forest, BOPBiomes.redwood_forest_edge)) { return outBiomeId[0]; }
|
||||
|
||||
// line BOP volcano with BOP volcano edge
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.volcano, BOPBiomes.volcano_edge)) { return outBiomeId[0]; }
|
||||
// line BOP volcano with BOP volcanic plains
|
||||
if (this.replaceBiomeEdge(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, BOPBiomes.volcano, BOPBiomes.volcanic_plains)) { return outBiomeId[0]; }
|
||||
|
||||
// line mountains with mountain edges
|
||||
if (this.replaceBiomeEdgeIfNecessary(outBiomeId, northBiomeId, eastBiomeId, southBiomeId, westBiomeId, biomeId, MOUNTAINS, MOUNTAIN_EDGE)) { return outBiomeId[0]; }
|
||||
|
|
|
@ -65,7 +65,7 @@ public class ModBiomes
|
|||
registerTechnicalBiome(new TropicBeachBiome(), "tropic_beach");
|
||||
registerTechnicalBiome(new AlpsFoothillsBiome(), "alps_foothills");
|
||||
registerTechnicalBiome(new RedwoodForestEdgeBiome(), "redwood_forest_edge");
|
||||
registerTechnicalBiome(new VolcanoEdgeBiome(), "volcano_edge");
|
||||
registerTechnicalBiome(new VolcanicPlainsBiome(), "volcanic_plains");
|
||||
registerTechnicalBiome(new OrchardBiome(), "orchard");
|
||||
|
||||
BiomeRegistry.configureTechnicalBiomes();
|
||||
|
@ -268,8 +268,8 @@ public class ModBiomes
|
|||
registerBiomeToDictionary(tropic_beach, Type.OVERWORLD, Type.BEACH, Type.HOT);
|
||||
registerBiomeToDictionary(tropics, Type.OVERWORLD, Type.JUNGLE, Type.LUSH, Type.HOT);
|
||||
registerBiomeToDictionary(tundra, Type.OVERWORLD, Type.COLD, Type.WASTELAND, Type.DEAD, Type.SPARSE);
|
||||
registerBiomeToDictionary(volcanic_plains, Type.OVERWORLD, Type.DEAD, Type.WASTELAND, Type.MOUNTAIN, Type.HOT, Type.DRY);
|
||||
registerBiomeToDictionary(volcano, Type.OVERWORLD, Type.DEAD, Type.WASTELAND, Type.MOUNTAIN, Type.HOT, Type.DRY);
|
||||
registerBiomeToDictionary(volcano_edge, Type.OVERWORLD, Type.DEAD, Type.WASTELAND, Type.MOUNTAIN, Type.HOT, Type.DRY);
|
||||
registerBiomeToDictionary(wasteland, Type.OVERWORLD, Type.WASTELAND, Type.DEAD, Type.DRY, Type.SPARSE, Type.HOT);
|
||||
registerBiomeToDictionary(wetland, Type.OVERWORLD, Type.SWAMP, Type.FOREST, Type.LUSH, Type.WET, Type.DENSE);
|
||||
registerBiomeToDictionary(woodland, Type.OVERWORLD, Type.FOREST);
|
||||
|
@ -343,8 +343,8 @@ public class ModBiomes
|
|||
registerVillagerType(tropic_beach, IVillagerType.JUNGLE);
|
||||
registerVillagerType(tropics, IVillagerType.JUNGLE);
|
||||
registerVillagerType(tundra, IVillagerType.TAIGA);
|
||||
registerVillagerType(volcanic_plains, IVillagerType.PLAINS);
|
||||
registerVillagerType(volcano, IVillagerType.PLAINS);
|
||||
registerVillagerType(volcano_edge, IVillagerType.PLAINS);
|
||||
registerVillagerType(wasteland, IVillagerType.DESERT);
|
||||
registerVillagerType(wetland, IVillagerType.SWAMP);
|
||||
registerVillagerType(woodland, IVillagerType.PLAINS);
|
||||
|
|
|
@ -36,7 +36,7 @@ public class ModBlocks
|
|||
public static void registerBlocks(RegistryEvent.Register<Block> event)
|
||||
{
|
||||
//Terrain
|
||||
white_sand = registerBlock(new WhiteSandBlock(0xF3F1E4, AbstractBlock.Properties.of(Material.SAND, MaterialColor.QUARTZ).strength(0.5F).sound(SoundType.SAND).harvestLevel(0).harvestTool(ToolType.SHOVEL)), "white_sand");
|
||||
white_sand = registerBlock(new SandBlockBOP(0xF3F1E4, AbstractBlock.Properties.of(Material.SAND, MaterialColor.QUARTZ).strength(0.5F).sound(SoundType.SAND).harvestLevel(0).harvestTool(ToolType.SHOVEL)), "white_sand");
|
||||
white_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.QUARTZ).strength(0.8F)), "white_sandstone");
|
||||
white_sandstone_stairs = registerBlock(new StairsBlock(white_sandstone.defaultBlockState(), Block.Properties.copy(white_sandstone)), "white_sandstone_stairs");
|
||||
white_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(white_sandstone)), "white_sandstone_slab");
|
||||
|
@ -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");
|
||||
|
||||
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");
|
||||
black_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(black_sandstone)), "black_sandstone_slab");
|
||||
black_sandstone_wall = registerBlock(new WallBlock(Block.Properties.copy(black_sandstone)),"black_sandstone_wall");
|
||||
smooth_black_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_BLACK).strength(2.0F, 6.0F)), "smooth_black_sandstone");
|
||||
smooth_black_sandstone_stairs = registerBlock(new StairsBlock(black_sandstone.defaultBlockState(), Block.Properties.copy(smooth_black_sandstone)), "smooth_black_sandstone_stairs");
|
||||
smooth_black_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(smooth_black_sandstone)), "smooth_black_sandstone_slab");
|
||||
cut_black_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_BLACK).strength(0.8F)), "cut_black_sandstone");
|
||||
cut_black_sandstone_slab = registerBlock(new SlabBlock(Block.Properties.copy(cut_black_sandstone)), "cut_black_sandstone_slab");
|
||||
chiseled_black_sandstone = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.COLOR_BLACK).strength(0.8F)), "chiseled_black_sandstone");
|
||||
|
||||
mud = registerBlock(new MudBlock(AbstractBlock.Properties.of(Material.DIRT, MaterialColor.TERRACOTTA_BROWN).strength(0.6F).harvestLevel(0).harvestTool(ToolType.SHOVEL).sound(new SoundType(1.0F, 0.5F, SoundEvents.SLIME_BLOCK_BREAK, SoundEvents.SLIME_BLOCK_STEP, SoundEvents.SLIME_BLOCK_PLACE, SoundEvents.SLIME_BLOCK_HIT, SoundEvents.SLIME_BLOCK_FALL))), "mud");
|
||||
mud_bricks = registerBlock(new Block(AbstractBlock.Properties.of(Material.STONE, MaterialColor.TERRACOTTA_BROWN).strength(1.0F)), "mud_bricks");
|
||||
mud_brick_stairs = registerBlock(new StairsBlock(mud_bricks.defaultBlockState(), Block.Properties.copy(mud_bricks)), "mud_brick_stairs");
|
||||
|
|
|
@ -91,7 +91,6 @@ public class ModFeatures
|
|||
registerFeatures(BOPBiomeFeatures.SPARSE_OAK_TREE, "sparse_oak_tree");
|
||||
registerFeatures(BOPBiomeFeatures.DYING_TREE, "dying_tree");
|
||||
registerFeatures(BOPBiomeFeatures.DYING_TREE_WASTELAND, "dying_tree_wasteland");
|
||||
registerFeatures(BOPBiomeFeatures.DYING_TREE_VOLCANO, "dying_tree_volcano");
|
||||
|
||||
//Bushes/Twiglets
|
||||
registerFeatures(BOPBiomeFeatures.BUSH, "bush");
|
||||
|
@ -114,6 +113,7 @@ public class ModFeatures
|
|||
registerFeatures(BOPBiomeFeatures.DEAD_TWIGLET_TREE_SMALL, "dead_twiglet_tree_small");
|
||||
registerFeatures(BOPBiomeFeatures.DEAD_TWIGLET_TREE, "dead_twiglet_tree");
|
||||
registerFeatures(BOPBiomeFeatures.DEAD_TWIGLET_TREE_TALL, "dead_twiglet_tree_tall");
|
||||
registerFeatures(BOPBiomeFeatures.TWIGLET_TREE_VOLCANO, "twiglet_tree_volcano");
|
||||
|
||||
//Special Trees
|
||||
registerFeatures(BOPBiomeFeatures.REDWOOD_TREE, "redwood_tree");
|
||||
|
@ -123,7 +123,6 @@ public class ModFeatures
|
|||
registerFeatures(BOPBiomeFeatures.PALM_TREE, "palm_tree");
|
||||
registerFeatures(BOPBiomeFeatures.DEAD_TREE, "dead_tree");
|
||||
registerFeatures(BOPBiomeFeatures.DEAD_TREE_WASTELAND, "dead_tree_wasteland");
|
||||
registerFeatures(BOPBiomeFeatures.DEAD_TREE_VOLCANO, "dead_tree_volcano");
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -149,6 +148,8 @@ public class ModFeatures
|
|||
registerFeatures(BOPBiomeFeatures.SMALL_CRYSTAL, "small_crystal");
|
||||
registerFeatures(BOPBiomeFeatures.LARGE_CRYSTAL, "large_crystal");
|
||||
registerFeatures(BOPBiomeFeatures.FLESH_TENDON, "flesh_tendon");
|
||||
registerFeatures(BOPBiomeFeatures.GRASS_SPLATTER, "grass_splatter");
|
||||
registerFeatures(BOPBiomeFeatures.BLACK_SANDSTONE_COLUMN, "black_sandstone_spire");
|
||||
|
||||
//Flowers
|
||||
registerFeatures(BOPBiomeFeatures.CHAPARRAL_FLOWERS, "chaparral_flowers");
|
||||
|
|
|
@ -21,6 +21,7 @@ import net.minecraft.world.gen.feature.*;
|
|||
import net.minecraft.world.gen.placement.AtSurfaceWithExtraConfig;
|
||||
import net.minecraft.world.gen.placement.FrequencyConfig;
|
||||
import net.minecraft.world.gen.placement.Placement;
|
||||
import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder;
|
||||
import net.minecraftforge.common.BiomeDictionary;
|
||||
|
||||
import java.util.List;
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"variants": {
|
||||
"": [
|
||||
{ "model": "biomesoplenty:block/black_sand" },
|
||||
{ "model": "biomesoplenty:block/black_sand", "y": 90 },
|
||||
{ "model": "biomesoplenty:block/black_sand", "y": 180 },
|
||||
{ "model": "biomesoplenty:block/black_sand", "y": 270 }
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "biomesoplenty:block/black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "biomesoplenty:block/black_sandstone_slab" },
|
||||
"type=top": { "model": "biomesoplenty:block/black_sandstone_slab_top" },
|
||||
"type=double": { "model": "biomesoplenty:block/black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "biomesoplenty:block/black_sandstone_stairs", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "biomesoplenty:block/black_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "biomesoplenty:block/black_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"when": {
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_post"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"north": "low"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side",
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"east": "low"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side",
|
||||
"y": 90,
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "low"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side",
|
||||
"y": 180,
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"west": "low"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side",
|
||||
"y": 270,
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"north": "tall"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side_tall",
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"east": "tall"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side_tall",
|
||||
"y": 90,
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "tall"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side_tall",
|
||||
"y": 180,
|
||||
"uvlock": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"west": "tall"
|
||||
},
|
||||
"apply": {
|
||||
"model": "biomesoplenty:block/black_sandstone_wall_side_tall",
|
||||
"y": 270,
|
||||
"uvlock": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "biomesoplenty:block/chiseled_black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "biomesoplenty:block/cut_black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "biomesoplenty:block/cut_black_sandstone_slab" },
|
||||
"type=top": { "model": "biomesoplenty:block/cut_black_sandstone_slab_top" },
|
||||
"type=double": { "model": "biomesoplenty:block/cut_black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "biomesoplenty:block/smooth_black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"type=bottom": { "model": "biomesoplenty:block/smooth_black_sandstone_slab" },
|
||||
"type=top": { "model": "biomesoplenty:block/smooth_black_sandstone_slab_top" },
|
||||
"type=double": { "model": "biomesoplenty:block/smooth_black_sandstone" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=east,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_outer", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "biomesoplenty:block/smooth_black_sandstone_stairs_inner", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -69,8 +69,8 @@
|
|||
"biome.biomesoplenty.tundra": "Tundra",
|
||||
"biome.biomesoplenty.undergrowth": "Undergrowth",
|
||||
"biome.biomesoplenty.visceral_heap": "Visceral Heap",
|
||||
"biome.biomesoplenty.volcanic_plains": "Volcanic Plains",
|
||||
"biome.biomesoplenty.volcano": "Volcano",
|
||||
"biome.biomesoplenty.volcano_edge": "Volcano Edge",
|
||||
"biome.biomesoplenty.wasteland": "Wasteland",
|
||||
"biome.biomesoplenty.wetland": "Wetland",
|
||||
"biome.biomesoplenty.withered_abyss": "Withered Abyss",
|
||||
|
@ -94,6 +94,11 @@
|
|||
"item.biomesoplenty.umbran_boat": "Umbran Boat",
|
||||
"item.biomesoplenty.willow_boat": "Willow Boat",
|
||||
|
||||
"block.biomesoplenty.black_sand": "Black Sand",
|
||||
"block.biomesoplenty.black_sandstone": "Black Sandstone",
|
||||
"block.biomesoplenty.black_sandstone_slab": "Black Sandstone Slab",
|
||||
"block.biomesoplenty.black_sandstone_stairs": "Black Sandstone Stairs",
|
||||
"block.biomesoplenty.black_sandstone_wall": "Black Sandstone Wall",
|
||||
"block.biomesoplenty.blue_hydrangea": "Blue Hydrangea",
|
||||
"block.biomesoplenty.bramble": "Bramble",
|
||||
"block.biomesoplenty.burning_blossom": "Burning Blossom",
|
||||
|
@ -112,6 +117,9 @@
|
|||
"block.biomesoplenty.cherry_trapdoor": "Cherry Trapdoor",
|
||||
"block.biomesoplenty.cherry_wall_sign": "Cherry Wall Sign",
|
||||
"block.biomesoplenty.cherry_wood": "Cherry Wood",
|
||||
"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_white_sandstone": "Chiseled White Sandstone",
|
||||
"block.biomesoplenty.cut_white_sandstone": "Cut White Sandstone",
|
||||
"block.biomesoplenty.cut_white_sandstone_slab": "Cut White Sandstone Slab",
|
||||
|
@ -304,6 +312,9 @@
|
|||
"block.biomesoplenty.reed": "Reed",
|
||||
"block.biomesoplenty.root": "Root",
|
||||
"block.biomesoplenty.rose": "Rose",
|
||||
"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_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",
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "biomesoplenty:block/black_sand"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/cube_bottom_top",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab_top",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/inner_stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/outer_stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_bottom",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/wall_inventory",
|
||||
"textures": {
|
||||
"wall": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/template_wall_post",
|
||||
"textures": {
|
||||
"wall": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/template_wall_side",
|
||||
"textures": {
|
||||
"wall": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:block/template_wall_side_tall",
|
||||
"textures": {
|
||||
"wall": "biomesoplenty:block/black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/chiseled_black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/cut_black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/cut_black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab_top",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/cut_black_sandstone"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/slab_top",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/inner_stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"parent": "block/outer_stairs",
|
||||
"textures": {
|
||||
"bottom": "biomesoplenty:block/black_sandstone_top",
|
||||
"top": "biomesoplenty:block/black_sandstone_top",
|
||||
"side": "biomesoplenty:block/black_sandstone_top"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/black_sand"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/black_sandstone"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/black_sandstone_slab"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/black_sandstone_stairs"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/black_sandstone_wall_inventory"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/chiseled_black_sandstone"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/cut_black_sandstone"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/cut_black_sandstone_slab"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/smooth_black_sandstone"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/smooth_black_sandstone_slab"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "biomesoplenty:block/smooth_black_sandstone_stairs"
|
||||
}
|
After Width: | Height: | Size: 276 B |
After Width: | Height: | Size: 289 B |
After Width: | Height: | Size: 288 B |
After Width: | Height: | Size: 269 B |
After Width: | Height: | Size: 285 B |
After Width: | Height: | Size: 278 B |
Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 361 B |
|
@ -387,17 +387,17 @@
|
|||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
},
|
||||
"volcanic_plains": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcanic_plains"
|
||||
}
|
||||
},
|
||||
"volcano": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcano"
|
||||
}
|
||||
},
|
||||
"volcano_edge": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcano_edge"
|
||||
}
|
||||
},
|
||||
"wasteland": {
|
||||
"trigger": "minecraft:location",
|
||||
|
|
|
@ -386,17 +386,17 @@
|
|||
"biome": "biomesoplenty:visceral_heap"
|
||||
}
|
||||
},
|
||||
"volcanic_plains": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcanic_plains"
|
||||
}
|
||||
},
|
||||
"volcano": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcano"
|
||||
}
|
||||
},
|
||||
"volcano_edge": {
|
||||
"trigger": "minecraft:location",
|
||||
"conditions": {
|
||||
"biome": "biomesoplenty:volcano_edge"
|
||||
}
|
||||
},
|
||||
"wasteland": {
|
||||
"trigger": "minecraft:location",
|
||||
|
@ -493,8 +493,8 @@
|
|||
"tundra",
|
||||
"undergrowth",
|
||||
"visceral_heap",
|
||||
"volcanic_plains",
|
||||
"volcano",
|
||||
"volcano_edge",
|
||||
"wasteland",
|
||||
"wetland",
|
||||
"withered_abyss",
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
},
|
||||
"has_sand": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sand"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_the_recipe",
|
||||
"has_sand"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_slab"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_slab"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_slab_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_slab_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_stairs"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_stairs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_stairs_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_stairs_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:chiseled_black_sandstone"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_chiseled_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:chiseled_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_cut_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:cut_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:chiseled_black_sandstone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_chiseled_black_sandstone",
|
||||
"has_cut_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:chiseled_black_sandstone_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:chiseled_black_sandstone_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cut_black_sandstone_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cut_black_sandstone_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cut_black_sandstone_slab"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_cut_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:cut_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cut_black_sandstone_slab"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_cut_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cut_black_sandstone_slab_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cut_black_sandstone_slab_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:cut_black_sandstone_slab_from_cut_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_cut_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:cut_black_sandstone_slab_from_cut_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_cut_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:smooth_black_sandstone"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:smooth_black_sandstone_slab"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_smooth_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:smooth_black_sandstone_slab"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_smooth_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:smooth_black_sandstone_slab_from_smooth_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_smooth_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:smooth_black_sandstone_slab_from_smooth_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_smooth_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:smooth_black_sandstone_stairs"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_smooth_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:smooth_black_sandstone_stairs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_smooth_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:smooth_black_sandstone_stairs_from_smooth_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_smooth_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:smooth_black_sandstone_stairs_from_smooth_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_smooth_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_wall"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_wall"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"biomesoplenty:black_sandstone_wall_from_black_sandstone_stonecutting"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_black_sandstone": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"item": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "biomesoplenty:black_sandstone_wall_from_black_sandstone_stonecutting"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_black_sandstone",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:black_sand"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:black_sandstone"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:block_state_property",
|
||||
"block": "biomesoplenty:black_sandstone_slab",
|
||||
"properties": {
|
||||
"type": "double"
|
||||
}
|
||||
}
|
||||
],
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"function": "minecraft:explosion_decay"
|
||||
}
|
||||
],
|
||||
"name": "biomesoplenty:black_sandstone_slab"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:black_sandstone_stairs"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:black_sandstone_wall"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:chiseled_black_sandstone"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:cut_black_sandstone"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:block_state_property",
|
||||
"block": "biomesoplenty:cut_black_sandstone_slab",
|
||||
"properties": {
|
||||
"type": "double"
|
||||
}
|
||||
}
|
||||
],
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"function": "minecraft:explosion_decay"
|
||||
}
|
||||
],
|
||||
"name": "biomesoplenty:cut_black_sandstone_slab"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "biomesoplenty:smooth_black_sandstone"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_count",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:block_state_property",
|
||||
"block": "biomesoplenty:smooth_black_sandstone_slab",
|
||||
"properties": {
|
||||
"type": "double"
|
||||
}
|
||||
}
|
||||
],
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"function": "minecraft:explosion_decay"
|
||||
}
|
||||
],
|
||||
"name": "biomesoplenty:smooth_black_sandstone_slab"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|