This commit is contained in:
DBotThePony 2025-03-09 15:01:23 +07:00
parent 3ee539bc9d
commit 00ff8fa91e
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -46,9 +46,9 @@ class WormPlacement(
) : PlacementModifier() {
private inner class Worm(private val random: RandomSource, private var position: Vector) {
private var remainingDistance = length.sample(random)
private var xzRotation = random.nextDouble(-PI / 2.0, PI / 2.0)
private var xzRotation = random.nextDouble(-PI, PI)
private var xyRotation = normalizeAngle(initialAngleXY.sample(random).toDouble())
private var xzTargetRotation = random.nextDouble(-PI / 2.0, PI / 2.0)
private var xzTargetRotation = random.nextDouble(-PI, PI)
private var xyTargetRotation = normalizeAngle(initialAngleXY.sample(random).toDouble())
private var xzSin = sin(xzRotation)
@ -190,14 +190,14 @@ class WormPlacement(
return UniformFloat.of(-rad, increment(rad))
}
fun normalDistributedTurnRate(deviation: Float): FloatProvider {
return normalDistributedTurnRateRadians(deviation * DEGREES_TO_RADIANS)
fun normalDistributedTurnRate(deviation: Float, mean: Float = 0f): FloatProvider {
return normalDistributedTurnRateRadians(deviation * DEGREES_TO_RADIANS, mean * DEGREES_TO_RADIANS)
}
fun normalDistributedTurnRateRadians(deviation: Float): FloatProvider {
fun normalDistributedTurnRateRadians(deviation: Float, mean: Float = 0f): FloatProvider {
require(deviation >= 0f) { "Provided value must be non-negative, $deviation given" }
if (deviation == 0f) return ConstantFloat.ZERO
return ClampedNormalFloat.of(0f, deviation, -PI.toFloat() * 2f, PI.toFloat() * 2f)
return ClampedNormalFloat.of(mean, deviation, -PI.toFloat() * 2f, PI.toFloat() * 2f)
}
private const val DEGREES_TO_RADIANS = PI.toFloat() / 180f