From c965bcdc8254169f50919fd9d44a2a1ce1dd910f Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 26 Mar 2025 19:36:52 +0700 Subject: [PATCH] Move decimal sampling to random utils --- .../ru/dbotthepony/mc/otm/core/RandomUtils.kt | 15 +++++++++++++++ .../ru/dbotthepony/mc/otm/core/math/Decimal.kt | 14 -------------- .../mc/otm/data/world/DecimalProvider.kt | 2 +- .../mc/otm/item/weapon/EnergySwordItem.kt | 2 +- .../mc/otm/item/weapon/FallingSunItem.kt | 2 +- .../mc/otm/worldgen/feature/BlackHolePlacer.kt | 3 +-- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/RandomUtils.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/RandomUtils.kt index a042c8d08..62214303e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/RandomUtils.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/RandomUtils.kt @@ -3,6 +3,7 @@ package ru.dbotthepony.mc.otm.core import it.unimi.dsi.fastutil.ints.IntList import net.minecraft.Util import net.minecraft.util.RandomSource +import ru.dbotthepony.mc.otm.core.math.Decimal import java.util.* import java.util.random.RandomGenerator import kotlin.NoSuchElementException @@ -101,3 +102,17 @@ fun List.random(random: RandomSource): T { throw NoSuchElementException("This list is empty") 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) +} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt index 18f0bb4e4..0a85c870a 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/math/Decimal.kt @@ -4,7 +4,6 @@ import net.minecraft.nbt.ByteArrayTag import net.minecraft.nbt.StringTag import net.minecraft.nbt.Tag import net.minecraft.network.FriendlyByteBuf -import net.minecraft.util.RandomSource import java.math.BigDecimal import java.math.BigInteger import java.math.MathContext @@ -1604,16 +1603,3 @@ fun Short.toDecimal() = Decimal(this) fun Long.toDecimal() = Decimal(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) -} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/data/world/DecimalProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/data/world/DecimalProvider.kt index 67a993e4e..fc733d3f3 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/data/world/DecimalProvider.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/data/world/DecimalProvider.kt @@ -8,7 +8,7 @@ import net.minecraft.util.RandomSource import net.neoforged.bus.api.IEventBus import ru.dbotthepony.mc.otm.OverdriveThatMatters 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.registry.MBuiltInRegistries import ru.dbotthepony.mc.otm.registry.MDeferredRegister diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/EnergySwordItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/EnergySwordItem.kt index d9a00fd6b..bf4d16672 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/EnergySwordItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/EnergySwordItem.kt @@ -31,7 +31,7 @@ import ru.dbotthepony.mc.otm.core.damageType import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.config.DecimalConfigValue 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.util.WriteOnce import ru.dbotthepony.mc.otm.item.MatteryItem diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt index 0f3351298..0b7042e3b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/weapon/FallingSunItem.kt @@ -31,7 +31,7 @@ import ru.dbotthepony.mc.otm.core.damageType import ru.dbotthepony.mc.otm.core.math.Decimal import ru.dbotthepony.mc.otm.config.DecimalConfigValue 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.util.WriteOnce import ru.dbotthepony.mc.otm.item.MatteryItem diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt index 102d3eccf..9a687d100 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/worldgen/feature/BlackHolePlacer.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.worldgen.feature -import com.mojang.serialization.Codec import com.mojang.serialization.codecs.RecordCodecBuilder import net.minecraft.world.level.levelgen.feature.Feature 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.config.ServerConfig 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.registry.game.MBlocks