From 1acd1059257510369c1b05a1fc648acf8f680370 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 24 Mar 2025 19:27:03 +0700 Subject: [PATCH] Move tritanium worms to enhanced placed feature --- .../ru/dbotthepony/mc/otm/datagen/WorldGen.kt | 117 +++++++----------- .../mc/otm/worldgen/EnhancedPlacedFeature.kt | 8 ++ 2 files changed, 53 insertions(+), 72 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt index 23693c5db..2e464be48 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/WorldGen.kt @@ -128,57 +128,56 @@ fun registerPlacedFeatures(context: BootstrapContext) { ) )) - context.register(PlacedFeatures.WORM_TRITANIUM, PlacedFeature( - configured.getOrThrow(ConfiguredFeatures.TRITANIUM_ORE_SMALL), - listOf( - EnormousPlacement( - chunkScanRange = 24, - seedMix = 9284343575495L, - children = listOf( - RarityFilter.onAverageOnceEvery(140), - InSquarePlacement.spread(), - HeightRangePlacement.of(StandardDeviationHeightProvider(VerticalAnchor.absolute(-40), 15.0)), - SplitPlacement( - // "heart" - EllipsoidPlacement( - count = UniformInt.of(600, 900), - xLength = UniformFloat.of(9f, 12f), - yLength = UniformFloat.of(9f, 12f), - zLength = UniformFloat.of(9f, 12f), - x = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), - y = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), - z = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), + context.register( + PlacedFeatures.WORM_TRITANIUM, + EnhancedPlacedFeature.Builder(RarityFilter.onAverageOnceEvery(140)) + .then(InSquarePlacement.spread()) + .then(HeightRangePlacement.of(StandardDeviationHeightProvider(VerticalAnchor.absolute(-40), 15.0))) + .then( + SplitPlacement( + // "heart" + EllipsoidPlacement( + count = UniformInt.of(600, 900), + xLength = UniformFloat.of(9f, 12f), + yLength = UniformFloat.of(9f, 12f), + zLength = UniformFloat.of(9f, 12f), + x = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), + y = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), + z = ClampedNormalFloat.of(0f, 0.4f, -1f, 1f), + ), + // "branches" + ChainPlacement( + CountPlacement.of(UniformInt.of(2, 7)), + WormPlacement( + length = UniformInt.of(60, 120), + turnRateXY = WormPlacement.normalDistributedTurnRate(2f, 3f), + initialAngleXY = WormPlacement.normalDistributedTurnRate(3f, 4f), + turnRateXZ = WormPlacement.normalDistributedTurnRate(30f), + turnSpeedXZ = WormPlacement.constantTurnRate(10f), + turnSpeedXY = WormPlacement.constantTurnRate(4f), + turnChanceXY = BooleanProvider.Unbiased(6), + turnChanceXZ = BooleanProvider.BiasedLinear(0.6f, 5), + maxTravelUp = 90, + maxTravelDown = 10, ), - // "branches" - ChainPlacement( - CountPlacement.of(UniformInt.of(2, 7)), - WormPlacement( - length = UniformInt.of(60, 120), - turnRateXY = WormPlacement.normalDistributedTurnRate(2f, 3f), - initialAngleXY = WormPlacement.normalDistributedTurnRate(3f, 4f), - turnRateXZ = WormPlacement.normalDistributedTurnRate(30f), - turnSpeedXZ = WormPlacement.constantTurnRate(10f), - turnSpeedXY = WormPlacement.constantTurnRate(4f), - turnChanceXY = BooleanProvider.Unbiased(6), - turnChanceXZ = BooleanProvider.BiasedLinear(0.6f, 5), - maxTravelUp = 90, - maxTravelDown = 10, - ), - EllipsoidPlacement( - count = UniformInt.of(3, 6), - xLength = ConstantFloat.of(4f), - yLength = ConstantFloat.of(4f), - zLength = ConstantFloat.of(4f), - x = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), - y = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), - z = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), - ) + EllipsoidPlacement( + count = UniformInt.of(3, 6), + xLength = ConstantFloat.of(4f), + yLength = ConstantFloat.of(4f), + zLength = ConstantFloat.of(4f), + x = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), + y = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), + z = ClampedNormalFloat.of(0f, 0.2f, -1f, 1f), ) ) ) ) - ) - )) + .then(configured.getOrThrow(ConfiguredFeatures.TRITANIUM_ORE_SMALL)) + .build( + chunkScanRange = 24, + seedMix = 9284343575495L, + ) + ) } run { @@ -189,32 +188,6 @@ fun registerPlacedFeatures(context: BootstrapContext) { ClampedNormalFloat.of(-0.4f, 0.2f, -2f, 2f), ) - /* - context.register(PlacedFeatures.DILITHIUM, PlacedFeature( - ore, - listOf( - EnormousPlacement( - chunkScanRange = 6, - seedMix = 237483209523709234L, - children = listOf( - RarityFilter.onAverageOnceEvery(120), - InSquarePlacement.spread(), - HeightRangePlacement.of(StandardDeviationHeightProvider(VerticalAnchor.absolute(0), 15.0)), - EllipsoidPlacement( - x = ringularity, - y = ringularity, - z = ringularity, - count = UniformInt.of(8000, 16000), - xLength = UniformFloat.of(30f, 70f), - yLength = UniformFloat.of(40f, 90f), - zLength = UniformFloat.of(30f, 70f), - ) - ), - ) - ) - )) - */ - context.register( PlacedFeatures.DILITHIUM, EnhancedPlacedFeature.Builder(RarityFilter.onAverageOnceEvery(120)) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/EnhancedPlacedFeature.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/EnhancedPlacedFeature.kt index 5b8b88015..0e58a43c5 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/EnhancedPlacedFeature.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/EnhancedPlacedFeature.kt @@ -283,6 +283,14 @@ object EnhancedPlacedFeature : Feature( return Builder(root ?: this, action).also(children::add) } + fun then(action: ConfiguredFeature<*, *>): Builder { + return then(EnhancedFeature.Wrapper.configure(action)) + } + + fun then(action: Holder>): Builder { + return then(EnhancedFeature.Wrapper.configure(action)) + } + private fun buildNode(): Node { return Node(children.map { it.buildNode() }, contents) }