Added Rainbow Birch trees and Rainbow Valley island biome

This commit is contained in:
Forstride 2019-12-29 23:20:12 -05:00
parent 6fbf2bc527
commit fbc3c11a07
32 changed files with 502 additions and 5 deletions

View file

@ -51,6 +51,7 @@ public class BOPBiomes
public static Optional<Biome> pasture = Optional.empty();
public static Optional<Biome> prairie = Optional.empty();
public static Optional<Biome> pumpkin_patch = Optional.empty();
public static Optional<Biome> rainbow_valley = Optional.empty();
public static Optional<Biome> rainforest = Optional.empty();
public static Optional<Biome> redwood_forest = Optional.empty();
public static Optional<Biome> redwood_forest_edge = Optional.empty();

View file

@ -37,6 +37,8 @@ public class BOPBlocks
public static Block origin_leaves;
public static Block flowering_oak_sapling;
public static Block flowering_oak_leaves;
public static Block rainbow_birch_sapling;
public static Block rainbow_birch_leaves;
public static Block yellow_autumn_sapling;
public static Block yellow_autumn_leaves;
public static Block orange_autumn_sapling;
@ -256,6 +258,7 @@ public class BOPBlocks
public static Block potted_origin_sapling;
public static Block potted_flowering_oak_sapling;
public static Block potted_rainbow_birch_sapling;
public static Block potted_yellow_autumn_sapling;
public static Block potted_orange_autumn_sapling;
public static Block potted_maple_sapling;

View file

@ -0,0 +1,105 @@
/*******************************************************************************
* Copyright 2014-2019, the Biomes O' Plenty Team
*
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.biome.overworld;
import biomesoplenty.api.biome.BOPBiomes;
import biomesoplenty.api.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.FernGrassFeature;
import biomesoplenty.common.world.gen.feature.StandardGrassFeature;
import com.google.common.collect.ImmutableList;
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.DefaultBiomeFeatures;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.IFeatureConfig;
import net.minecraft.world.gen.feature.MultipleRandomFeatureConfig;
import net.minecraft.world.gen.feature.NoFeatureConfig;
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 RainbowValleyBiome extends BiomeBOP
{
public RainbowValleyBiome()
{
super((new Builder()).surfaceBuilder(new ConfiguredSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.GRASS_DIRT_GRAVEL_CONFIG)).precipitation(RainType.RAIN).category(Category.FOREST).depth(0.5F).scale(0.5F).temperature(0.55F).downfall(1.0F).waterColor(4566514).waterFogColor(267827).parent((String)null));
// Structures
this.addStructureStart(Feature.MINESHAFT.configured(new MineshaftConfig(0.004D, MineshaftStructure.Type.NORMAL)));
this.addStructureStart(Feature.STRONGHOLD.configured(IFeatureConfig.NO_FEATURE_CONFIG));
// Underground
DefaultBiomeFeatures.addDefaultCarvers(this);
DefaultBiomeFeatures.addStructureFeaturePlacement(this);
DefaultBiomeFeatures.addDefaultLakes(this);
DefaultBiomeFeatures.addDefaultMonsterRoom(this);
DefaultBiomeFeatures.addDefaultUndergroundVariety(this);
DefaultBiomeFeatures.addDefaultOres(this);
DefaultBiomeFeatures.addDefaultSoftDisks(this);
////////////////////////////////////////////////////////////
// Vegetation
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_SELECTOR.configured(new MultipleRandomFeatureConfig(ImmutableList.of(BOPBiomeFeatures.BUSH.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.2F), BOPBiomeFeatures.FIR_TREE_SMALL.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.1F), BOPBiomeFeatures.FIR_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.025F), BOPBiomeFeatures.BIG_RAINBOW_BIRCH_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG).weighted(0.2F)), BOPBiomeFeatures.RAINBOW_BIRCH_TREE.configured(DefaultBiomeFeatures.NORMAL_TREE_CONFIG))).decorated(Placement.COUNT_EXTRA_HEIGHTMAP.configured(new AtSurfaceWithExtraConfig(15, 0.5F, 1))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, BOPBiomeFeatures.RAINBOW_VALLEY_FLOWERS.configured(IFeatureConfig.NO_FEATURE_CONFIG).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(25))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, new StandardGrassFeature(NoFeatureConfig::deserialize).configured(IFeatureConfig.NO_FEATURE_CONFIG).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(15))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(BOPBlocks.sprout.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_DOUBLE.configured(new FrequencyConfig(7))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.LILAC.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(3))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.ROSE_BUSH.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(4))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(Blocks.PEONY.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(1))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(BOPBlocks.goldenrod.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(2))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfigurationDouble(BOPBlocks.blue_hydrangea.getDefaultState())).decorated(Placement.COUNT_HEIGHTMAP_32.configured(new FrequencyConfig(5))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.BROWN_MUSHROOM.getDefaultState())).decorated(Placement.CHANCE_HEIGHTMAP_DOUBLE.configured(new ChanceConfig(4))));
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, Feature.RANDOM_PATCH.configured(BiomeFeatureHelper.createClusterConfiguration(Blocks.RED_MUSHROOM.getDefaultState())).decorated(Placement.CHANCE_HEIGHTMAP_DOUBLE.configured(new ChanceConfig(8))));
////////////////////////////////////////////////////////////
// Other Features
DefaultBiomeFeatures.addDefaultSprings(this);
DefaultBiomeFeatures.addSurfaceFreezing(this);
// Entities
this.addSpawn(EntityClassification.CREATURE, new Biome.SpawnListEntry(EntityType.FOX, 8, 2, 4));
this.addSpawn(EntityClassification.CREATURE, new SpawnListEntry(EntityType.SHEEP, 12, 4, 4));
this.addSpawn(EntityClassification.CREATURE, new SpawnListEntry(EntityType.PIG, 10, 4, 4));
this.addSpawn(EntityClassification.CREATURE, new SpawnListEntry(EntityType.CHICKEN, 10, 4, 4));
this.addSpawn(EntityClassification.CREATURE, new SpawnListEntry(EntityType.COW, 8, 4, 4));
this.addSpawn(EntityClassification.AMBIENT, new SpawnListEntry(EntityType.BAT, 10, 8, 8));
this.setBeachBiome((Biome)null);
}
@OnlyIn(Dist.CLIENT)
@Override
public int getGrassColor(double x, double z) {
double d0 = INFO_NOISE.noiseAt(x * 0.0225D, z * 0.0225D, false);
return d0 < -0.1D ? 0x77CE7F : 0x75CE8D;
}
@OnlyIn(Dist.CLIENT)
@Override
public int getFoliageColor()
{
return 0x75CE8D;
}
}

View file

@ -0,0 +1,16 @@
package biomesoplenty.common.block.trees;
import biomesoplenty.common.world.gen.feature.BOPBiomeFeatures;
import net.minecraft.world.gen.feature.BaseTreeFeatureConfig;
import net.minecraft.world.gen.feature.Feature;
import java.util.Random;
public class RainbowBirchTree extends TreeDefaultConfig
{
@Override
protected Feature<? extends BaseTreeFeatureConfig> getFeature(Random random)
{
return (random.nextInt(10) == 0 ? BOPBiomeFeatures.BIG_RAINBOW_BIRCH_TREE : BOPBiomeFeatures.RAINBOW_BIRCH_TREE);
}
}

View file

@ -26,6 +26,7 @@ public class BOPBiomeFeatures
public static final Feature<BaseTreeFeatureConfig> SMALL_JUNGLE_TREE = new BasicTreeFeature.Builder().maxHeight(9).log(Blocks.JUNGLE_LOG.getDefaultState()).leaves(Blocks.JUNGLE_LEAVES.getDefaultState()).trunkFruit(Blocks.COCOA.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> ORIGIN_TREE = new BasicTreeFeature.Builder().leaves(BOPBlocks.origin_leaves.getDefaultState()).minHeight(5).maxHeight(8).create();
public static final Feature<BaseTreeFeatureConfig> FLOWERING_OAK_TREE = new BasicTreeFeature.Builder().altLeaves(BOPBlocks.flowering_oak_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> RAINBOW_BIRCH_TREE = new BasicTreeFeature.Builder().log(Blocks.BIRCH_LOG.getDefaultState()).leaves(BOPBlocks.rainbow_birch_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> YELLOW_AUTUMN_TREE = new BasicTreeFeature.Builder().log(Blocks.BIRCH_LOG.getDefaultState()).leaves(BOPBlocks.yellow_autumn_leaves.getDefaultState()).minHeight(5).maxHeight(8).create();
public static final Feature<BaseTreeFeatureConfig> ORANGE_AUTUMN_TREE = new BasicTreeFeature.Builder().log(Blocks.DARK_OAK_LOG.getDefaultState()).leaves(BOPBlocks.orange_autumn_leaves.getDefaultState()).minHeight(5).maxHeight(8).create();
public static final Feature<BaseTreeFeatureConfig> MAPLE_TREE = new BasicTreeFeature.Builder().leaves(BOPBlocks.maple_leaves.getDefaultState()).minHeight(5).maxHeight(10).create();
@ -41,6 +42,7 @@ public class BOPBiomeFeatures
public static final Feature<BaseTreeFeatureConfig> BIG_OAK_TREE = new BigTreeFeature.Builder().create();
public static final Feature<BaseTreeFeatureConfig> BIG_ORIGIN_TREE = new BigTreeFeature.Builder().leaves(BOPBlocks.origin_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> BIG_FLOWERING_OAK_TREE = new BigTreeFeature.Builder().altLeaves(BOPBlocks.flowering_oak_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> BIG_RAINBOW_BIRCH_TREE = new BigTreeFeature.Builder().log(Blocks.BIRCH_LOG.getDefaultState()).leaves(BOPBlocks.rainbow_birch_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> BIG_YELLOW_AUTUMN_TREE = new BigTreeFeature.Builder().log(Blocks.BIRCH_LOG.getDefaultState()).leaves(BOPBlocks.yellow_autumn_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> BIG_ORANGE_AUTUMN_TREE = new BigTreeFeature.Builder().log(Blocks.DARK_OAK_LOG.getDefaultState()).leaves(BOPBlocks.orange_autumn_leaves.getDefaultState()).create();
public static final Feature<BaseTreeFeatureConfig> BIG_MAPLE_TREE = new BigTreeFeature.Builder().leaves(BOPBlocks.maple_leaves.getDefaultState()).create();
@ -143,6 +145,7 @@ public class BOPBiomeFeatures
public static final FlowersFeature MYSTIC_GROVE_FLOWERS = new MysticGroveFlowersFeature();
public static final FlowersFeature OMINOUS_WOODS_FLOWERS = new OminousWoodsFlowersFeature();
public static final FlowersFeature ORIGIN_FLOWERS = new OriginFlowersFeature();
public static final FlowersFeature RAINBOW_VALLEY_FLOWERS = new RainbowValleyFlowersFeature();
public static final FlowersFeature RAINFOREST_FLOWERS = new RainforestFlowersFeature();
public static final FlowersFeature SHRUBLAND_FLOWERS = new ShrublandFlowersFeature();
public static final FlowersFeature SNOWY_FLOWERS = new SnowyFlowersFeature();

View file

@ -0,0 +1,32 @@
/*******************************************************************************
* Copyright 2014-2019, the Biomes O' Plenty Team
*
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
*
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
******************************************************************************/
package biomesoplenty.common.world.gen.feature;
import biomesoplenty.api.block.BOPBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.gen.feature.NoFeatureConfig;
import java.util.Random;
public class RainbowValleyFlowersFeature extends DefaultFlowersFeatureNoConfig
{
private static final Block[] FLOWERS = new Block[]{BOPBlocks.pink_daffodil, BOPBlocks.orange_cosmos, Blocks.ALLIUM, Blocks.AZURE_BLUET, Blocks.ORANGE_TULIP, Blocks.PINK_TULIP, Blocks.RED_TULIP, Blocks.WHITE_TULIP, Blocks.CORNFLOWER, Blocks.LILY_OF_THE_VALLEY, Blocks.BLUE_ORCHID, Blocks.OXEYE_DAISY, Blocks.DANDELION, Blocks.POPPY};
@Override
public BlockState getRandomFlower(Random p_202355_1_, BlockPos p_202355_2_, NoFeatureConfig config)
{
double d0 = MathHelper.clamp((1.0D + Biome.INFO_NOISE.noiseAt((double)p_202355_2_.getX() / 48.0D, (double)p_202355_2_.getZ() / 48.0D, false)) / 2.0D, 0.0D, 0.9999D);
Block block = FLOWERS[(int)(d0 * (double)FLOWERS.length)];
return block.getDefaultState();
}
}

View file

@ -13,10 +13,14 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.color.BlockColors;
import net.minecraft.client.renderer.color.ItemColors;
import net.minecraft.item.BlockItem;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.FoliageColors;
import net.minecraft.world.GrassColors;
import net.minecraft.world.ILightReader;
import net.minecraft.world.biome.BiomeColors;
import java.awt.*;
public class ClientProxy extends CommonProxy
{
public ClientProxy()
@ -40,6 +44,11 @@ public class ClientProxy extends CommonProxy
world != null && pos != null ? BiomeColors.getAverageFoliageColor(world, pos) : FoliageColors.getDefault(),
BOPBlocks.bush, BOPBlocks.flowering_oak_leaves, BOPBlocks.mahogany_leaves, BOPBlocks.palm_leaves,
BOPBlocks.willow_leaves, BOPBlocks.willow_vine);
//Rainbow Birch Leaf Coloring
blockColors.register((state, world, pos, tintIndex) ->
world != null && pos != null ? getRainbowBirchColor(world, pos) : FoliageColors.getDefault(),
BOPBlocks.rainbow_birch_leaves);
//Item Coloring
itemColors.register((stack, tintIndex) -> {
@ -48,4 +57,10 @@ public class ClientProxy extends CommonProxy
BOPBlocks.sprout, BOPBlocks.bush, BOPBlocks.flowering_oak_leaves, BOPBlocks.mahogany_leaves,
BOPBlocks.palm_leaves, BOPBlocks.willow_leaves, BOPBlocks.willow_vine);
}
public static int getRainbowBirchColor(ILightReader world, BlockPos pos)
{
Color foliage = Color.getHSBColor((((float)pos.getX() + (float)pos.getZ()) % 100) / 100, 0.6F, 1.0F);
return foliage.getRGB();
}
}

View file

@ -93,6 +93,7 @@ public class ModBiomes
pasture = registerBiome(new PastureBiome(), "pasture");
prairie = registerBiome(new PrairieBiome(), "prairie");
pumpkin_patch = registerBiome(new PumpkinPatchBiome(), "pumpkin_patch");
rainbow_valley = registerBiome(new RainbowValleyBiome(), "rainbow_valley");
rainforest = registerBiome(new RainforestBiome(), "rainforest");
redwood_forest = registerBiome(new RedwoodForestBiome(), "redwood_forest");
scrubland = registerBiome(new ScrublandBiome(), "scrubland");
@ -135,13 +136,17 @@ public class ModBiomes
registerIslandBiome(origin_hills, BOPClimates.COOL_TEMPERATE, 50);
registerIslandBiome(origin_hills, BOPClimates.DRY_TEMPERATE, 50);
registerIslandBiome(origin_hills, BOPClimates.WET_TEMPERATE, 50);
registerIslandBiome(origin_hills, BOPClimates.WET_TEMPERATE, 75);
registerIslandBiome(volcano, BOPClimates.WARM_TEMPERATE, 50);
registerIslandBiome(volcano, BOPClimates.MEDITERRANEAN, 50);
registerIslandBiome(volcano, BOPClimates.WARM_TEMPERATE, 75);
registerIslandBiome(volcano, BOPClimates.MEDITERRANEAN, 75);
registerIslandBiome(volcano, BOPClimates.SAVANNA, 50);
registerIslandBiome(tropics, BOPClimates.SUBTROPICAL, 50);
registerIslandBiome(rainbow_valley, BOPClimates.WET_TEMPERATE, 25);
registerIslandBiome(rainbow_valley, BOPClimates.WARM_TEMPERATE, 25);
registerIslandBiome(rainbow_valley, BOPClimates.MEDITERRANEAN, 25);
registerIslandBiome(tropics, BOPClimates.SUBTROPICAL, 75);
registerIslandBiome(tropics, BOPClimates.TROPICAL, 50);
registerIslandBiome(tropics, BOPClimates.HOT_DESERT, 50);
}
@ -187,6 +192,7 @@ public class ModBiomes
registerBiomeToDictionary(pasture, Type.PLAINS, Type.DRY);
registerBiomeToDictionary(prairie, Type.PLAINS, Type.DRY, Type.SPARSE);
registerBiomeToDictionary(pumpkin_patch, Type.FOREST, Type.COLD, Type.DENSE);
registerBiomeToDictionary(rainbow_valley, Type.WATER, Type.FOREST, Type.LUSH, Type.DENSE, Type.MAGICAL, Type.RARE);
registerBiomeToDictionary(rainforest, Type.JUNGLE, Type.FOREST, Type.LUSH, Type.HILLS, Type.WET, Type.DENSE);
registerBiomeToDictionary(redwood_forest, Type.FOREST, Type.DENSE);
registerBiomeToDictionary(redwood_forest_edge, Type.FOREST, Type.DENSE);

View file

@ -63,6 +63,8 @@ public class ModBlocks
origin_leaves = registerBlock(new LeavesBlock(Block.Properties.create(Material.LEAVES, MaterialColor.EMERALD).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT).noOcclusion()), "origin_leaves");
flowering_oak_sapling = registerBlock(new SaplingBlockBOP(new FloweringOakTree(), Block.Properties.create(Material.PLANTS).doesNotBlockMovement().tickRandomly().zeroHardnessAndResistance().sound(SoundType.PLANT)), "flowering_oak_sapling");
flowering_oak_leaves = registerBlock(new LeavesBlock(Block.Properties.create(Material.LEAVES).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT).noOcclusion()), "flowering_oak_leaves");
rainbow_birch_sapling = registerBlock(new SaplingBlockBOP(new RainbowBirchTree(), Block.Properties.create(Material.PLANTS).doesNotBlockMovement().tickRandomly().zeroHardnessAndResistance().sound(SoundType.PLANT)), "rainbow_birch_sapling");
rainbow_birch_leaves = registerBlock(new LeavesBlock(Block.Properties.create(Material.LEAVES).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT).noOcclusion()), "rainbow_birch_leaves");
yellow_autumn_sapling = registerBlock(new SaplingBlockBOP(new YellowAutumnTree(), Block.Properties.create(Material.PLANTS).doesNotBlockMovement().tickRandomly().zeroHardnessAndResistance().sound(SoundType.PLANT)), "yellow_autumn_sapling");
yellow_autumn_leaves = registerBlock(new LeavesBlock(Block.Properties.create(Material.LEAVES, MaterialColor.YELLOW_TERRACOTTA).hardnessAndResistance(0.2F).tickRandomly().sound(SoundType.PLANT).noOcclusion()), "yellow_autumn_leaves");
orange_autumn_sapling = registerBlock(new SaplingBlockBOP(new OrangeAutumnTree(), Block.Properties.create(Material.PLANTS).doesNotBlockMovement().tickRandomly().zeroHardnessAndResistance().sound(SoundType.PLANT)), "orange_autumn_sapling");
@ -289,6 +291,7 @@ public class ModBlocks
//Potted Plants
potted_origin_sapling = registerBlockNoGroup(new FlowerPotBlock(origin_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_origin_sapling");
potted_flowering_oak_sapling = registerBlockNoGroup(new FlowerPotBlock(flowering_oak_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_flowering_oak_sapling");
potted_rainbow_birch_sapling = registerBlockNoGroup(new FlowerPotBlock(rainbow_birch_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_rainbow_birch_sapling");
potted_yellow_autumn_sapling = registerBlockNoGroup(new FlowerPotBlock(yellow_autumn_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_yellow_autumn_sapling");
potted_orange_autumn_sapling = registerBlockNoGroup(new FlowerPotBlock(orange_autumn_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_orange_autumn_sapling");
potted_maple_sapling = registerBlockNoGroup(new FlowerPotBlock(maple_sapling, Block.Properties.create(Material.MISCELLANEOUS).zeroHardnessAndResistance()), "potted_maple_sapling");
@ -326,6 +329,7 @@ public class ModBlocks
RenderTypeLookup.setRenderLayer(origin_leaves, transparentRenderType);
RenderTypeLookup.setRenderLayer(flowering_oak_leaves, transparentRenderType);
RenderTypeLookup.setRenderLayer(rainbow_birch_leaves, transparentRenderType);
RenderTypeLookup.setRenderLayer(yellow_autumn_leaves, transparentRenderType);
RenderTypeLookup.setRenderLayer(orange_autumn_leaves, transparentRenderType);
RenderTypeLookup.setRenderLayer(maple_leaves, transparentRenderType);
@ -344,6 +348,7 @@ public class ModBlocks
RenderTypeLookup.setRenderLayer(origin_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(flowering_oak_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(rainbow_birch_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(yellow_autumn_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(orange_autumn_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(maple_sapling, cutoutRenderType);
@ -389,6 +394,7 @@ public class ModBlocks
RenderTypeLookup.setRenderLayer(potted_origin_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(potted_flowering_oak_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(potted_rainbow_birch_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(potted_yellow_autumn_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(potted_orange_autumn_sapling, cutoutRenderType);
RenderTypeLookup.setRenderLayer(potted_maple_sapling, cutoutRenderType);

View file

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

View file

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

View file

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

View file

@ -48,6 +48,7 @@
"biome.biomesoplenty.pasture": "Pasture",
"biome.biomesoplenty.prairie": "Prairie",
"biome.biomesoplenty.pumpkin_patch": "Pumpkin Patch",
"biome.biomesoplenty.rainbow_valley": "Rainbow Valley",
"biome.biomesoplenty.rainforest": "Rainforest",
"biome.biomesoplenty.redwood_forest": "Redwood Forest",
"biome.biomesoplenty.redwood_forest_edge": "Redwood Forest Edge",
@ -267,6 +268,7 @@
"block.biomesoplenty.potted_pink_cherry_sapling": "Potted Pink Cherry Sapling",
"block.biomesoplenty.potted_pink_daffodil": "Potted Pink Daffodil",
"block.biomesoplenty.potted_pink_hibiscus": "Potted Pink Hibiscus",
"block.biomesoplenty.potted_rainbow_birch_sapling": "Potted Rainbow Birch Sapling",
"block.biomesoplenty.potted_redwood_sapling": "Potted Redwood Sapling",
"block.biomesoplenty.potted_rose": "Potted Rose",
"block.biomesoplenty.potted_sprout": "Potted Sprout",
@ -278,6 +280,8 @@
"block.biomesoplenty.potted_willow_sapling": "Potted Willow Sapling",
"block.biomesoplenty.potted_wilted_lily": "Potted Wilted Lily",
"block.biomesoplenty.potted_yellow_autumn_sapling": "Potted Yellow Autumn Sapling",
"block.biomesoplenty.rainbow_birch_leaves": "Rainbow Birch Leaves",
"block.biomesoplenty.rainbow_birch_sapling": "Rainbow Birch Sapling",
"block.biomesoplenty.redwood_button": "Redwood Button",
"block.biomesoplenty.redwood_door": "Redwood Door",
"block.biomesoplenty.redwood_fence": "Redwood Fence",

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/flower_pot_cross",
"textures": {
"plant": "biomesoplenty:block/rainbow_birch_sapling"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "block/leaves",
"textures": {
"all": "minecraft:block/birch_leaves"
}
}

View file

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

View file

@ -0,0 +1,6 @@
{
"parent": "block/cross",
"textures": {
"cross": "biomesoplenty:block/rainbow_birch_sapling"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "minecraft:item/flower_pot"
}
}

View file

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

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "biomesoplenty:block/rainbow_birch_sapling"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

View file

@ -242,6 +242,12 @@
"conditions": {
"biome": "biomesoplenty:pumpkin_patch"
}
},
"rainbow_valley": {
"trigger": "minecraft:location",
"conditions": {
"biome": "biomesoplenty:rainbow_valley"
}
},
"rainforest": {
"trigger": "minecraft:location",

View file

@ -241,6 +241,12 @@
"conditions": {
"biome": "biomesoplenty:pumpkin_patch"
}
},
"rainbow_valley": {
"trigger": "minecraft:location",
"conditions": {
"biome": "biomesoplenty:rainbow_valley"
}
},
"rainforest": {
"trigger": "minecraft:location",
@ -457,6 +463,7 @@
"pasture",
"prairie",
"pumpkin_patch",
"rainbow_valley",
"rainforest",
"redwood_forest",
"redwood_forest_edge",

View file

@ -0,0 +1,33 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:flower_pot"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "biomesoplenty:rainbow_birch_sapling"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -0,0 +1,182 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:alternatives",
"children": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:alternative",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"item": "minecraft:shears"
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
],
"name": "biomesoplenty:rainbow_birch_leaves"
},
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:survives_explosion"
},
{
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune",
"chances": [
0.05,
0.0625,
0.083333336,
0.1
]
}
],
"name": "biomesoplenty:rainbow_birch_sapling"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune",
"chances": [
0.02,
0.022222223,
0.025,
0.033333335,
0.1
]
}
],
"functions": [
{
"function": "minecraft:set_count",
"count": {
"min": 1.0,
"max": 2.0,
"type": "minecraft:uniform"
}
},
{
"function": "minecraft:explosion_decay"
}
],
"name": "minecraft:stick"
}
],
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:alternative",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"item": "minecraft:shears"
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"conditions": [
{
"condition": "minecraft:survives_explosion"
},
{
"condition": "minecraft:table_bonus",
"enchantment": "minecraft:fortune",
"chances": [
0.005,
0.0055555557,
0.00625,
0.008333334,
0.025
]
}
],
"name": "minecraft:apple"
}
],
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:alternative",
"terms": [
{
"condition": "minecraft:match_tool",
"predicate": {
"item": "minecraft:shears"
}
},
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
]
}
}
]
}
]
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "biomesoplenty:rainbow_birch_sapling"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}

View file

@ -3,6 +3,7 @@
"values": [
"biomesoplenty:potted_origin_sapling",
"biomesoplenty:potted_flowering_oak_sapling",
"biomesoplenty:potted_rainbow_birch_sapling",
"biomesoplenty:potted_yellow_autumn_sapling",
"biomesoplenty:potted_orange_autumn_sapling",
"biomesoplenty:potted_maple_sapling",

View file

@ -3,6 +3,7 @@
"values": [
"biomesoplenty:origin_leaves",
"biomesoplenty:flowering_oak_leaves",
"biomesoplenty:rainbow_birch_leaves",
"biomesoplenty:yellow_autumn_leaves",
"biomesoplenty:orange_autumn_leaves",
"biomesoplenty:maple_leaves",

View file

@ -3,6 +3,7 @@
"values": [
"biomesoplenty:origin_sapling",
"biomesoplenty:flowering_oak_sapling",
"biomesoplenty:rainbow_birch_sapling",
"biomesoplenty:yellow_autumn_sapling",
"biomesoplenty:orange_autumn_sapling",
"biomesoplenty:maple_sapling",

View file

@ -3,6 +3,7 @@
"values": [
"biomesoplenty:origin_leaves",
"biomesoplenty:flowering_oak_leaves",
"biomesoplenty:rainbow_birch_leaves",
"biomesoplenty:yellow_autumn_leaves",
"biomesoplenty:orange_autumn_leaves",
"biomesoplenty:maple_leaves",

View file

@ -3,6 +3,7 @@
"values": [
"biomesoplenty:origin_sapling",
"biomesoplenty:flowering_oak_sapling",
"biomesoplenty:rainbow_birch_sapling",
"biomesoplenty:yellow_autumn_sapling",
"biomesoplenty:orange_autumn_sapling",
"biomesoplenty:maple_sapling",