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