Move decimal sampling to random utils

This commit is contained in:
DBotThePony 2025-03-26 19:36:52 +07:00
parent 5663b262eb
commit c965bcdc82
Signed by: DBot
GPG Key ID: DCC23B5715498507
6 changed files with 19 additions and 19 deletions

View File

@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.core
import it.unimi.dsi.fastutil.ints.IntList import it.unimi.dsi.fastutil.ints.IntList
import net.minecraft.Util import net.minecraft.Util
import net.minecraft.util.RandomSource import net.minecraft.util.RandomSource
import ru.dbotthepony.mc.otm.core.math.Decimal
import java.util.* import java.util.*
import java.util.random.RandomGenerator import java.util.random.RandomGenerator
import kotlin.NoSuchElementException import kotlin.NoSuchElementException
@ -101,3 +102,17 @@ fun <T> List<T>.random(random: RandomSource): T {
throw NoSuchElementException("This list is empty") throw NoSuchElementException("This list is empty")
return get(random.nextInt(size)) return get(random.nextInt(size))
} }
fun RandomSource.nextDecimal(min: Decimal, max: Decimal, round: Boolean = false): Decimal {
val value = nextDouble()
return if (round) {
Decimal((min + (max - min) * value).whole)
} else {
min + (max - min) * value
}
}
fun RandomSource.nextVariance(value: Decimal, round: Boolean = false): Decimal {
return nextDecimal(-value / 2, value / 2, round)
}

View File

@ -4,7 +4,6 @@ import net.minecraft.nbt.ByteArrayTag
import net.minecraft.nbt.StringTag import net.minecraft.nbt.StringTag
import net.minecraft.nbt.Tag import net.minecraft.nbt.Tag
import net.minecraft.network.FriendlyByteBuf import net.minecraft.network.FriendlyByteBuf
import net.minecraft.util.RandomSource
import java.math.BigDecimal import java.math.BigDecimal
import java.math.BigInteger import java.math.BigInteger
import java.math.MathContext import java.math.MathContext
@ -1604,16 +1603,3 @@ fun Short.toDecimal() = Decimal(this)
fun Long.toDecimal() = Decimal(this) fun Long.toDecimal() = Decimal(this)
fun Decimal.toDecimal() = this fun Decimal.toDecimal() = this
fun RandomSource.nextDecimal(min: Decimal, max: Decimal, round: Boolean = false): Decimal {
val value = nextDouble()
return if (round) {
Decimal((min + (max - min) * value).whole)
} else {
min + (max - min) * value
}
}
fun RandomSource.nextVariance(value: Decimal, round: Boolean = false): Decimal {
return nextDecimal(-value / 2, value / 2, round)
}

View File

@ -8,7 +8,7 @@ import net.minecraft.util.RandomSource
import net.neoforged.bus.api.IEventBus import net.neoforged.bus.api.IEventBus
import ru.dbotthepony.mc.otm.OverdriveThatMatters import ru.dbotthepony.mc.otm.OverdriveThatMatters
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.core.math.nextDecimal import ru.dbotthepony.mc.otm.core.nextDecimal
import ru.dbotthepony.mc.otm.data.codec.DecimalCodec import ru.dbotthepony.mc.otm.data.codec.DecimalCodec
import ru.dbotthepony.mc.otm.registry.MBuiltInRegistries import ru.dbotthepony.mc.otm.registry.MBuiltInRegistries
import ru.dbotthepony.mc.otm.registry.MDeferredRegister import ru.dbotthepony.mc.otm.registry.MDeferredRegister

View File

@ -31,7 +31,7 @@ import ru.dbotthepony.mc.otm.core.damageType
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.config.DecimalConfigValue import ru.dbotthepony.mc.otm.config.DecimalConfigValue
import ru.dbotthepony.mc.otm.config.defineDecimal import ru.dbotthepony.mc.otm.config.defineDecimal
import ru.dbotthepony.mc.otm.core.math.nextVariance import ru.dbotthepony.mc.otm.core.nextVariance
import ru.dbotthepony.mc.otm.core.otmRandom import ru.dbotthepony.mc.otm.core.otmRandom
import ru.dbotthepony.mc.otm.core.util.WriteOnce import ru.dbotthepony.mc.otm.core.util.WriteOnce
import ru.dbotthepony.mc.otm.item.MatteryItem import ru.dbotthepony.mc.otm.item.MatteryItem

View File

@ -31,7 +31,7 @@ import ru.dbotthepony.mc.otm.core.damageType
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.config.DecimalConfigValue import ru.dbotthepony.mc.otm.config.DecimalConfigValue
import ru.dbotthepony.mc.otm.config.defineDecimal import ru.dbotthepony.mc.otm.config.defineDecimal
import ru.dbotthepony.mc.otm.core.math.nextVariance import ru.dbotthepony.mc.otm.core.nextVariance
import ru.dbotthepony.mc.otm.core.otmRandom import ru.dbotthepony.mc.otm.core.otmRandom
import ru.dbotthepony.mc.otm.core.util.WriteOnce import ru.dbotthepony.mc.otm.core.util.WriteOnce
import ru.dbotthepony.mc.otm.item.MatteryItem import ru.dbotthepony.mc.otm.item.MatteryItem

View File

@ -1,6 +1,5 @@
package ru.dbotthepony.mc.otm.worldgen.feature package ru.dbotthepony.mc.otm.worldgen.feature
import com.mojang.serialization.Codec
import com.mojang.serialization.codecs.RecordCodecBuilder import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.world.level.levelgen.feature.Feature import net.minecraft.world.level.levelgen.feature.Feature
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext
@ -8,7 +7,7 @@ import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfigur
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
import ru.dbotthepony.mc.otm.config.ServerConfig import ru.dbotthepony.mc.otm.config.ServerConfig
import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.core.math.Decimal
import ru.dbotthepony.mc.otm.core.math.nextDecimal import ru.dbotthepony.mc.otm.core.nextDecimal
import ru.dbotthepony.mc.otm.data.codec.DecimalCodec import ru.dbotthepony.mc.otm.data.codec.DecimalCodec
import ru.dbotthepony.mc.otm.registry.game.MBlocks import ru.dbotthepony.mc.otm.registry.game.MBlocks