Fixed the bases of fir/redwood trees not generating properly. Various biome tweaks
This commit is contained in:
parent
4370284949
commit
be568c0612
14 changed files with 84 additions and 48 deletions
|
@ -91,6 +91,8 @@ public class BayouBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(Blocks.TALL_GRASS.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(6)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(Blocks.LARGE_FERN.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(12)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(5)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(BOPBlocks.tall_cattail.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(7)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.cattail), TWICE_SURFACE, new FrequencyConfig(14)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(4)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.WATERLILY, IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(50)));
|
||||
|
|
|
@ -77,7 +77,7 @@ public class MarshBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(Blocks.TALL_GRASS.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(50)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.SEA_GRASS, new SeaGrassConfig(64, 0.6D), TOP_SOLID_ONCE, IPlacementConfig.NO_PLACEMENT_CONFIG));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(7)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.watergrass), TWICE_SURFACE, new FrequencyConfig(50)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.WATER), HEIGHT_BIASED_RANGE, new CountRangeConfig(50, 8, 8, 256)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.LIQUIDS, new LiquidsConfig(Fluids.LAVA), HEIGHT_VERY_BIASED_RANGE, new CountRangeConfig(20, 8, 16, 256)));
|
||||
|
|
|
@ -22,6 +22,7 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.BushConfig;
|
||||
import net.minecraft.world.gen.feature.DoublePlantConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.IFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.LakesConfig;
|
||||
|
@ -88,6 +89,8 @@ public class MireBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.DARK_OAK_TWIGLET_TREE, BOPBiomeFeatures.TALL_TWIGLET_TREE, BOPBiomeFeatures.DEAD_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.8F, 0.4F, 0.1F}, BOPBiomeFeatures.DYING_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(3, 0.2F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BIG_BROWN_MUSHROOM, IFeatureConfig.NO_FEATURE_CONFIG, AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig((int)0.9F, 0.1F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new StandardGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(5)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(BOPBlocks.tall_cattail.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(6)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.cattail), TWICE_SURFACE, new FrequencyConfig(12)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(5)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(15)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
|
|
|
@ -79,7 +79,7 @@ public class RedwoodForestBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(Blocks.GRAVEL, 6, 2, Lists.newArrayList(Blocks.DIRT, Blocks.GRASS_BLOCK)), TOP_SOLID, new FrequencyConfig(1)));
|
||||
|
||||
// Vegetation
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.REDWOOD_TREE, BOPBiomeFeatures.REDWOOD_TREE_MEDIUM, BOPBiomeFeatures.REDWOOD_TREE_LARGE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.1F, 0.5F, 0.3F}, BOPBiomeFeatures.BUSH, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(16, 0.2F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.REDWOOD_TREE, BOPBiomeFeatures.REDWOOD_TREE_MEDIUM, BOPBiomeFeatures.REDWOOD_TREE_LARGE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.1F, 0.3F, 0.5F}, BOPBiomeFeatures.BUSH, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(18, 0.2F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new FernGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(12)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(4)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
|
|
|
@ -78,7 +78,7 @@ public class RedwoodForestEdgeBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(Blocks.GRAVEL, 6, 2, Lists.newArrayList(Blocks.DIRT, Blocks.GRASS_BLOCK)), TOP_SOLID, new FrequencyConfig(1)));
|
||||
|
||||
// Vegetation
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.REDWOOD_TREE, BOPBiomeFeatures.REDWOOD_TREE_MEDIUM, BOPBiomeFeatures.SPARSE_OAK_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.3F, 0.1F, 0.4F}, BOPBiomeFeatures.BUSH, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(5, 0.3F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.REDWOOD_TREE, BOPBiomeFeatures.REDWOOD_TREE_MEDIUM}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG, IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.3F, 0.1F}, BOPBiomeFeatures.BUSH, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(5, 0.3F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new FernGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(12)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(4)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
|
|
|
@ -52,7 +52,7 @@ public class TemperateRainforestBiome extends BiomeBOP
|
|||
{
|
||||
public TemperateRainforestBiome()
|
||||
{
|
||||
super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(DEFAULT_SURFACE_BUILDER, GRASS_DIRT_GRAVEL_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.FOREST).depth(0.1F).scale(0.2F).temperature(0.65F).downfall(1.2F).waterColor(4159204).waterFogColor(329011).parent((String)null));
|
||||
super((new Biome.BiomeBuilder()).surfaceBuilder(new CompositeSurfaceBuilder(DEFAULT_SURFACE_BUILDER, GRASS_DIRT_GRAVEL_SURFACE)).precipitation(Biome.RainType.RAIN).category(Biome.Category.FOREST).depth(-0.1F).scale(0.2F).temperature(0.65F).downfall(1.2F).waterColor(4159204).waterFogColor(329011).parent((String)null));
|
||||
|
||||
// Mineshafts and Strongholds
|
||||
this.addStructure(Feature.MINESHAFT, new MineshaftConfig(0.004D, MineshaftStructure.Type.NORMAL));
|
||||
|
@ -89,6 +89,8 @@ public class TemperateRainforestBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new FernGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(Blocks.LARGE_FERN.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(15)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(BOPBlocks.tall_cattail.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(5)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.cattail), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFlowerFeature(Feature.DEFAULT_FLOWERS, SURFACE_PLUS_32, new FrequencyConfig(2)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(4)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
|
|
|
@ -87,13 +87,13 @@ public class WetlandBiome extends BiomeBOP
|
|||
this.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, createCompositeFeature(Feature.SPHERE_REPLACE, new SphereReplaceConfig(Blocks.CLAY, 4, 1, Lists.newArrayList(Blocks.DIRT, Blocks.CLAY)), TOP_SOLID, new FrequencyConfig(1)));
|
||||
|
||||
// Vegetation
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.TALL_SPRUCE_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.33333334F}, BOPBiomeFeatures.WILLOW_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(6, 0.1F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.RANDOM_FEATURE_LIST, new RandomDefaultFeatureListConfig(new Feature[]{BOPBiomeFeatures.TALL_SPRUCE_TREE}, new IFeatureConfig[]{IFeatureConfig.NO_FEATURE_CONFIG}, new float[]{0.5F}, BOPBiomeFeatures.WILLOW_TREE, IFeatureConfig.NO_FEATURE_CONFIG), AT_SURFACE_WITH_EXTRA, new AtSurfaceWithExtraConfig(5, 0.1F, 1)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFlowerFeature(BOPBiomeFeatures.WETLAND_FLOWERS, SURFACE_PLUS_32, new FrequencyConfig(3)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new FernGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(8)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(new FernGrassFeature(), IFeatureConfig.NO_FEATURE_CONFIG, TWICE_SURFACE, new FrequencyConfig(16)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.reed), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.watergrass), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(BOPBlocks.tall_cattail.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(5)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.cattail), TWICE_SURFACE, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.DOUBLE_PLANT, new DoublePlantConfig(BOPBlocks.tall_cattail.getDefaultState()), SURFACE_PLUS_32, new FrequencyConfig(10)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.cattail), TWICE_SURFACE, new FrequencyConfig(20)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.BROWN_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(4)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(Blocks.RED_MUSHROOM), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(8)));
|
||||
this.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, createCompositeFeature(Feature.BUSH, new BushConfig(BOPBlocks.toadstool), TWICE_SURFACE_WITH_CHANCE, new ChanceConfig(6)));
|
||||
|
|
|
@ -65,11 +65,6 @@ public class BlockDoublePlantBOP extends BlockDoublePlant implements IPlantable
|
|||
{
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
if (block == BOPBlocks.tall_cattail)
|
||||
{
|
||||
return EnumPlantType.Beach;
|
||||
}
|
||||
|
||||
return EnumPlantType.Plains;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,10 +11,13 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.fluid.IFluidState;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.state.properties.DoubleBlockHalf;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.IWorldReaderBase;
|
||||
import net.minecraftforge.common.EnumPlantType;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
|
@ -24,33 +27,48 @@ public class BlockDoubleWatersidePlant extends BlockDoublePlantBOP
|
|||
{
|
||||
super(droppedBlock, properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPlantType getPlantType(IBlockReader world, BlockPos pos)
|
||||
{
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
return EnumPlantType.Beach;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidPosition(IBlockState state, IWorldReaderBase worldReader, BlockPos pos)
|
||||
{
|
||||
IBlockState soil = worldReader.getBlockState(pos.down());
|
||||
if (soil == this)
|
||||
return true;
|
||||
else if (soil.canSustainPlant(worldReader, pos.down(), EnumFacing.UP, this))
|
||||
if (state.getBlock() != this) return super.isValidPosition(state, worldReader, pos);
|
||||
if (state.get(HALF) != DoubleBlockHalf.UPPER)
|
||||
{
|
||||
BlockPos blockpos = pos.down();
|
||||
Iterator var7 = EnumFacing.Plane.HORIZONTAL.iterator();
|
||||
IBlockState soil = worldReader.getBlockState(pos.down());
|
||||
if (soil.canSustainPlant(worldReader, pos.down(), EnumFacing.UP, this))
|
||||
{
|
||||
BlockPos blockpos = pos.down();
|
||||
Iterator var7 = EnumFacing.Plane.HORIZONTAL.iterator();
|
||||
|
||||
IBlockState iblockstate;
|
||||
IFluidState ifluidstate;
|
||||
do {
|
||||
if (!var7.hasNext()) {
|
||||
return false;
|
||||
}
|
||||
IBlockState iblockstate;
|
||||
IFluidState ifluidstate;
|
||||
do {
|
||||
if (!var7.hasNext()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
EnumFacing enumfacing = (EnumFacing)var7.next();
|
||||
iblockstate = worldReader.getBlockState(blockpos.offset(enumfacing));
|
||||
ifluidstate = worldReader.getFluidState(blockpos.offset(enumfacing));
|
||||
} while(!ifluidstate.isTagged(FluidTags.WATER) && iblockstate.getBlock() != Blocks.FROSTED_ICE);
|
||||
EnumFacing enumfacing = (EnumFacing)var7.next();
|
||||
iblockstate = worldReader.getBlockState(blockpos.offset(enumfacing));
|
||||
ifluidstate = worldReader.getFluidState(blockpos.offset(enumfacing));
|
||||
} while(!ifluidstate.isTagged(FluidTags.WATER) && iblockstate.getBlock() != Blocks.FROSTED_ICE);
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
{
|
||||
IBlockState iblockstate = worldReader.getBlockState(pos.down());
|
||||
return iblockstate.getBlock() == this && iblockstate.get(HALF) == DoubleBlockHalf.LOWER;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,8 +64,8 @@ public class BlockMud extends Block
|
|||
case Crop: return false;
|
||||
case Cave: return false;
|
||||
case Plains: return false;
|
||||
case Water: return true;
|
||||
case Beach: return false;
|
||||
case Water: return false;
|
||||
case Beach: return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -61,10 +61,6 @@ public class BlockPlantBOP extends BlockBush implements IPlantable
|
|||
{
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
if (block == BOPBlocks.cattail)
|
||||
{
|
||||
return EnumPlantType.Beach;
|
||||
}
|
||||
if (block == BOPBlocks.tiny_cactus)
|
||||
{
|
||||
return EnumPlantType.Desert;
|
||||
|
|
|
@ -9,6 +9,7 @@ package biomesoplenty.common.block;
|
|||
|
||||
import java.util.Iterator;
|
||||
|
||||
import biomesoplenty.api.block.BOPBlocks;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.fluid.IFluidState;
|
||||
|
@ -16,7 +17,9 @@ import net.minecraft.init.Blocks;
|
|||
import net.minecraft.tags.FluidTags;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockReader;
|
||||
import net.minecraft.world.IWorldReaderBase;
|
||||
import net.minecraftforge.common.EnumPlantType;
|
||||
|
||||
public class BlockWatersidePlant extends BlockPlantBOP
|
||||
{
|
||||
|
@ -24,6 +27,14 @@ public class BlockWatersidePlant extends BlockPlantBOP
|
|||
{
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumPlantType getPlantType(IBlockReader world, BlockPos pos)
|
||||
{
|
||||
Block block = world.getBlockState(pos).getBlock();
|
||||
|
||||
return EnumPlantType.Beach;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidPosition(IBlockState state, IWorldReaderBase worldReader, BlockPos pos)
|
||||
|
|
|
@ -139,10 +139,16 @@ public class RedwoodTreeFeature extends TreeFeatureBase
|
|||
// Move down until we reach the ground
|
||||
while (startPos.getY() > 1 && world.isAirBlock(startPos) || world.getBlockState(startPos).getMaterial() == Material.LEAVES) {startPos = startPos.down();}
|
||||
|
||||
if (!this.placeOn.matches(world, startPos))
|
||||
for (int x = 0; x <= this.trunkWidth - 1; x++)
|
||||
{
|
||||
// Abandon if we can't place the tree on this block
|
||||
return false;
|
||||
for (int z = 0; z <= this.trunkWidth - 1; z++)
|
||||
{
|
||||
if (!this.placeOn.matches(world, startPos.add(x, 0, z)))
|
||||
{
|
||||
// Abandon if we can't place the tree on this block
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Choose heights
|
||||
|
@ -199,8 +205,7 @@ public class RedwoodTreeFeature extends TreeFeatureBase
|
|||
int trunkStart = MathHelper.ceil(0.25D - trunkWidth / 2.0D);
|
||||
int trunkEnd = MathHelper.floor(0.25D + trunkWidth / 2.0D);
|
||||
|
||||
// TODO: Temporary fix for trees generating larger than normal bases when in the sides of hills
|
||||
if (this.trunkWidth <= 1)
|
||||
if (trunkWidth < 1 || trunkWidth > this.trunkWidth)
|
||||
{
|
||||
trunkStart = 0;
|
||||
trunkEnd = 0;
|
||||
|
|
|
@ -58,7 +58,6 @@ public class TaigaTreeFeature extends TreeFeatureBase
|
|||
{
|
||||
for (int y = 0; y <= height; y++)
|
||||
{
|
||||
|
||||
int trunkWidth = (this.trunkWidth * (height - y) / height) + 1;
|
||||
int trunkStart = MathHelper.ceil(0.25D - trunkWidth / 2.0D);
|
||||
int trunkEnd = MathHelper.floor(0.25D + trunkWidth / 2.0D);
|
||||
|
@ -138,10 +137,16 @@ public class TaigaTreeFeature extends TreeFeatureBase
|
|||
// Move down until we reach the ground
|
||||
while (startPos.getY() > 1 && world.isAirBlock(startPos) || world.getBlockState(startPos).getMaterial() == Material.LEAVES) {startPos = startPos.down();}
|
||||
|
||||
if (!this.placeOn.matches(world, startPos))
|
||||
for (int x = 0; x <= this.trunkWidth - 1; x++)
|
||||
{
|
||||
// Abandon if we can't place the tree on this block
|
||||
return false;
|
||||
for (int z = 0; z <= this.trunkWidth - 1; z++)
|
||||
{
|
||||
if (!this.placeOn.matches(world, startPos.add(x, 0, z)))
|
||||
{
|
||||
// Abandon if we can't place the tree on this block
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Choose heights
|
||||
|
@ -210,8 +215,7 @@ public class TaigaTreeFeature extends TreeFeatureBase
|
|||
int trunkStart = MathHelper.ceil(0.25D - trunkWidth / 2.0D);
|
||||
int trunkEnd = MathHelper.floor(0.25D + trunkWidth / 2.0D);
|
||||
|
||||
// TODO: Temporary fix for trees generating larger than normal bases when in the sides of hills
|
||||
if (this.trunkWidth <= 1)
|
||||
if (trunkWidth < 1 || trunkWidth > this.trunkWidth)
|
||||
{
|
||||
trunkStart = 0;
|
||||
trunkEnd = 0;
|
||||
|
|
Loading…
Reference in a new issue