Skip to main content

steel_core/worldgen/feature/
prelude.rs

1pub(super) use std::sync::LazyLock;
2
3pub(super) use rustc_hash::FxHashSet;
4pub(super) use steel_math::{fast_floor, lerp};
5pub(super) use steel_registry::biome::{BiomeRef, TemperatureModifier};
6pub(super) use steel_registry::blocks::{
7    BlockRef, block_state_ext::BlockStateExt as _, properties::BambooLeaves,
8    properties::BlockStateProperties, properties::CreakingHeartState, properties::DoubleBlockHalf,
9    properties::SpeleothemThickness, properties::WallSide, shapes,
10};
11pub(super) use steel_registry::feature::{
12    AttachedToLeavesDecorator, AttachedToLogsDecorator, BambooConfiguration,
13    BasaltColumnsConfiguration, BendingTrunkPlacer, BlobFoliagePlacer, BlockBlobConfiguration,
14    BlockColumnConfiguration, BlockHolderSet, BlockPileConfiguration, BlockPredicate,
15    BlockStateData, BlockStateProvider, CherryFoliagePlacer, CherryTrunkPlacer,
16    ConfiguredFeatureKind, ConfiguredFeatureRef, DeltaFeatureConfiguration, DiskConfiguration,
17    DripstoneClusterConfiguration, DualNoiseProvider, EndGatewayConfiguration, EndSpike,
18    EndSpikeConfiguration, FallenTreeConfiguration, FeatureHeightmap, FeatureNoiseParameters,
19    FeatureSize, FluidStateData, FoliagePlacer, FossilConfiguration, GeodeBlockSettings,
20    GeodeConfiguration, HugeFungusConfiguration, HugeMushroomConfiguration, LakeConfiguration,
21    LargeDripstoneConfiguration, MangroveRootPlacement, MangroveRootPlacer,
22    MultifaceGrowthConfiguration, NetherForestVegetationConfiguration,
23    NetherrackReplaceBlobsConfiguration, NoiseProvider, NoiseThresholdProvider, OreConfiguration,
24    PlaceOnGroundDecorator, PlacedFeatureData, PlacedFeatureEntryRef, PlacedFeatureRef,
25    PlacementModifier, PointedDripstoneConfiguration, RandomSpreadFoliagePlacer, RootPlacer,
26    RootSystemConfiguration, RuleTest, SculkPatchConfiguration, SeaPickleConfiguration,
27    SeagrassConfiguration, SimpleBlockConfiguration, SpeleothemClusterConfiguration,
28    SpeleothemConfiguration, SpikeConfiguration, SpringConfiguration, TreeConfiguration,
29    TreeDecorator, TrunkPlacer, TwistingVinesConfiguration, UnderwaterMagmaConfiguration,
30    UpwardsBranchingTrunkPlacer, VegetationPatchConfiguration, VerticalSurface,
31};
32pub(super) use steel_registry::fluid::{FluidRef, FluidState, FluidStateExt as _};
33pub(super) use steel_registry::{
34    REGISTRY, Registry, RegistryEntry as _, RegistryExt as _, TaggedRegistryExt as _,
35    vanilla_blocks, vanilla_fluids,
36};
37pub(super) use steel_utils::axis::Axis;
38pub(super) use steel_utils::random::{
39    Random as _, RandomSource, legacy_random::LegacyRandom, worldgen_random::WorldgenRandom,
40};
41pub(super) use steel_utils::types::UpdateFlags;
42pub(super) use steel_utils::value_providers::IntProvider;
43pub(super) use steel_utils::{BlockPos, BlockStateId, Direction, Identifier, Rotation, SectionPos};
44pub(super) use steel_worldgen::noise::{NormalNoise, PerlinSimplexNoise};
45
46pub(super) use crate::behavior::BLOCK_BEHAVIORS;
47pub(super) use crate::chunk::heightmap::HeightmapType;
48pub(super) use crate::chunk::status::ChunkStatus;
49pub(super) use crate::fluid::state::get_fluid_state_from_block;
50pub(super) use crate::world::{LevelAccessor, LevelReader};
51pub(super) use crate::worldgen::generator::vanilla::fuzzed_biome_at_block;
52pub(super) use crate::worldgen::region::{WorldGenBulkSectionAccess, WorldGenRegion};
53
54pub(super) const DECORATION_STEP_COUNT: usize = 11;