Move stuff from "Decimal" to appropriate places
This commit is contained in:
parent
85dde24e59
commit
e93c766edb
@ -22,7 +22,7 @@ import ru.dbotthepony.mc.otm.core.chart.DecimalHistoryChart
|
||||
import ru.dbotthepony.mc.otm.core.math.BlockRotation
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.RelativeSide
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.mapPresent
|
||||
import ru.dbotthepony.mc.otm.core.nbt.set
|
||||
import ru.dbotthepony.mc.otm.core.util.countingLazy
|
||||
|
@ -15,7 +15,7 @@ import ru.dbotthepony.mc.otm.capability.FlowDirection
|
||||
import ru.dbotthepony.mc.otm.capability.extractEnergy
|
||||
import ru.dbotthepony.mc.otm.capability.receiveEnergy
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.set
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames
|
||||
import ru.dbotthepony.mc.otm.triggers.AndroidBatteryTrigger
|
||||
|
@ -13,8 +13,8 @@ import ru.dbotthepony.mc.otm.compat.jade.JadeUids
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.getCapability
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.putDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.putDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.formatMatter
|
||||
import snownee.jade.api.BlockAccessor
|
||||
import snownee.jade.api.IBlockComponentProvider
|
||||
|
@ -13,8 +13,8 @@ import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.kommons.math.RGBAColor
|
||||
import ru.dbotthepony.mc.otm.capability.IProfiledStorage
|
||||
import ru.dbotthepony.mc.otm.core.getCapability
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.putDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.putDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.formatPower
|
||||
import snownee.jade.api.*
|
||||
import snownee.jade.api.config.IPluginConfig
|
||||
|
@ -7,7 +7,6 @@ import ru.dbotthepony.kommons.util.Delegate
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.WriteOnce
|
||||
|
||||
abstract class AbstractConfig(private val configName: String, private val type: ModConfig.Type = ModConfig.Type.SERVER) {
|
||||
|
@ -3,7 +3,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.kommons.util.setValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
|
||||
object CablesConfig : AbstractConfig("cables") {
|
||||
enum class E(throughput: Decimal) {
|
||||
|
@ -0,0 +1,58 @@
|
||||
package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import net.neoforged.neoforge.common.ModConfigSpec
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
|
||||
class DecimalConfigValue(
|
||||
parent: ModConfigSpec.ConfigValue<String>,
|
||||
val minimum: Decimal? = null,
|
||||
val maximum: Decimal? = null,
|
||||
) : ObservedConfigValue<Decimal>(parent) {
|
||||
override fun fromString(value: String): Decimal? {
|
||||
try {
|
||||
val parsed = Decimal(value)
|
||||
|
||||
if (minimum != null && minimum > parsed) {
|
||||
return minimum
|
||||
} else if (maximum != null && maximum < parsed) {
|
||||
return maximum
|
||||
}
|
||||
|
||||
return parsed
|
||||
} catch (err: java.lang.NumberFormatException) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
override fun toString(value: Decimal): Pair<String, Decimal> {
|
||||
if (minimum != null && minimum > value) {
|
||||
return minimum.toString() to minimum
|
||||
} else if (maximum != null && maximum < value) {
|
||||
return maximum.toString() to maximum
|
||||
}
|
||||
|
||||
return value.toString() to value
|
||||
}
|
||||
}
|
||||
|
||||
private fun ModConfigSpec.Builder.commentRange(minimum: Decimal?, maximum: Decimal?) {
|
||||
if (minimum != null && maximum != null) {
|
||||
comment("Range: $minimum ~ $maximum")
|
||||
} else if (minimum != null) {
|
||||
comment("Range: >= $minimum")
|
||||
} else if (maximum != null) {
|
||||
comment("Range: <= $maximum")
|
||||
}
|
||||
}
|
||||
|
||||
fun ModConfigSpec.Builder.defineDecimal(path: String, defaultValue: Decimal, minimum: Decimal? = null, maximum: Decimal? = null): DecimalConfigValue {
|
||||
commentRange(minimum, maximum)
|
||||
comment("Default: $defaultValue")
|
||||
return DecimalConfigValue(define(path, defaultValue.toString()), minimum, maximum)
|
||||
}
|
||||
|
||||
fun ModConfigSpec.Builder.defineDecimal(path: List<String>, defaultValue: Decimal, minimum: Decimal? = null, maximum: Decimal? = null): DecimalConfigValue {
|
||||
commentRange(minimum, maximum)
|
||||
comment("Default: $defaultValue")
|
||||
return DecimalConfigValue(define(path, defaultValue.toString()), minimum, maximum)
|
||||
}
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
|
||||
object ExopackConfig : AbstractConfig("exopack") {
|
||||
val ENERGY_CAPACITY by builder
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
|
||||
object ItemsConfig : AbstractConfig("items") {
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
|
||||
object MachinesConfig : AbstractConfig("machines") {
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
|
||||
object PlayerConfig : AbstractConfig("player") {
|
||||
init {
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.config
|
||||
|
||||
import ru.dbotthepony.kommons.util.getValue
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
|
||||
object ServerConfig : AbstractConfig("misc") {
|
||||
val LABORATORY_LAMP_LIGHT_LENGTH: Int by builder.comment("In blocks").defineInRange("LABORATORY_LAMP_LIGHT_LENGTH", 6, 1, 128)
|
||||
|
@ -1,17 +1,10 @@
|
||||
package ru.dbotthepony.mc.otm.core.math
|
||||
|
||||
import net.minecraft.nbt.ByteArrayTag
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.StringTag
|
||||
import net.minecraft.nbt.Tag
|
||||
import net.minecraft.network.FriendlyByteBuf
|
||||
import net.minecraft.util.RandomSource
|
||||
import net.neoforged.neoforge.common.ModConfigSpec
|
||||
import ru.dbotthepony.mc.otm.config.ObservedConfigValue
|
||||
import ru.dbotthepony.mc.otm.core.util.readVarIntLE
|
||||
import ru.dbotthepony.mc.otm.core.util.writeVarIntLE
|
||||
import java.io.InputStream
|
||||
import java.io.OutputStream
|
||||
import java.math.BigDecimal
|
||||
import java.math.BigInteger
|
||||
import java.math.MathContext
|
||||
@ -1603,28 +1596,6 @@ sealed class Decimal : Number(), Comparable<Decimal> {
|
||||
}
|
||||
}
|
||||
|
||||
fun FriendlyByteBuf.readDecimal() = Decimal.read(this)
|
||||
fun FriendlyByteBuf.writeDecimal(value: Decimal) = value.write(this)
|
||||
|
||||
fun InputStream.readDecimal(): Decimal {
|
||||
val size = readVarIntLE()
|
||||
require(size >= 0) { "Negative payload size: $size" }
|
||||
val bytes = ByteArray(size)
|
||||
read(bytes)
|
||||
return Decimal.fromByteArray(bytes)
|
||||
}
|
||||
|
||||
fun OutputStream.writeDecimal(value: Decimal) {
|
||||
val bytes = value.toByteArray()
|
||||
writeVarIntLE(bytes.size)
|
||||
write(bytes)
|
||||
}
|
||||
|
||||
fun CompoundTag.getDecimal(key: String) = Decimal.deserializeNBT(this[key])
|
||||
fun CompoundTag.putDecimal(key: String, value: Decimal) = put(key, value.serializeNBT())
|
||||
|
||||
operator fun CompoundTag.set(key: String, value: Decimal) = putDecimal(key, value)
|
||||
|
||||
fun Float.toDecimal() = Decimal(this)
|
||||
fun Double.toDecimal() = Decimal(this)
|
||||
fun Int.toDecimal() = Decimal(this)
|
||||
@ -1633,60 +1604,6 @@ fun Short.toDecimal() = Decimal(this)
|
||||
fun Long.toDecimal() = Decimal(this)
|
||||
fun Decimal.toDecimal() = this
|
||||
|
||||
class DecimalConfigValue(
|
||||
parent: ModConfigSpec.ConfigValue<String>,
|
||||
val minimum: Decimal? = null,
|
||||
val maximum: Decimal? = null,
|
||||
) : ObservedConfigValue<Decimal>(parent) {
|
||||
override fun fromString(value: String): Decimal? {
|
||||
try {
|
||||
val parsed = Decimal(value)
|
||||
|
||||
if (minimum != null && minimum > parsed) {
|
||||
return minimum
|
||||
} else if (maximum != null && maximum < parsed) {
|
||||
return maximum
|
||||
}
|
||||
|
||||
return parsed
|
||||
} catch (err: java.lang.NumberFormatException) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
override fun toString(value: Decimal): Pair<String, Decimal> {
|
||||
if (minimum != null && minimum > value) {
|
||||
return minimum.toString() to minimum
|
||||
} else if (maximum != null && maximum < value) {
|
||||
return maximum.toString() to maximum
|
||||
}
|
||||
|
||||
return value.toString() to value
|
||||
}
|
||||
}
|
||||
|
||||
private fun ModConfigSpec.Builder.commentRange(minimum: Decimal?, maximum: Decimal?) {
|
||||
if (minimum != null && maximum != null) {
|
||||
comment("Range: $minimum ~ $maximum")
|
||||
} else if (minimum != null) {
|
||||
comment("Range: >= $minimum")
|
||||
} else if (maximum != null) {
|
||||
comment("Range: <= $maximum")
|
||||
}
|
||||
}
|
||||
|
||||
fun ModConfigSpec.Builder.defineDecimal(path: String, defaultValue: Decimal, minimum: Decimal? = null, maximum: Decimal? = null): DecimalConfigValue {
|
||||
commentRange(minimum, maximum)
|
||||
comment("Default: $defaultValue")
|
||||
return DecimalConfigValue(define(path, defaultValue.toString()), minimum, maximum)
|
||||
}
|
||||
|
||||
fun ModConfigSpec.Builder.defineDecimal(path: List<String>, defaultValue: Decimal, minimum: Decimal? = null, maximum: Decimal? = null): DecimalConfigValue {
|
||||
commentRange(minimum, maximum)
|
||||
comment("Default: $defaultValue")
|
||||
return DecimalConfigValue(define(path, defaultValue.toString()), minimum, maximum)
|
||||
}
|
||||
|
||||
fun RandomSource.nextDecimal(min: Decimal, max: Decimal, round: Boolean = false): Decimal {
|
||||
val value = nextDouble()
|
||||
|
||||
|
@ -20,6 +20,7 @@ import net.minecraft.nbt.ShortTag
|
||||
import net.minecraft.nbt.StringTag
|
||||
import net.minecraft.nbt.Tag
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readBinaryJson
|
||||
import ru.dbotthepony.mc.otm.core.util.writeBinaryJson
|
||||
import java.util.UUID
|
||||
@ -115,3 +116,7 @@ fun CompoundTag.getJson(key: String, sizeLimit: NbtAccounter = NbtAccounter(1 sh
|
||||
fun CompoundTag.getBoolean(index: String, orElse: Boolean): Boolean {
|
||||
return (this[index] as? NumericTag)?.asInt?.let { it > 0 } ?: orElse
|
||||
}
|
||||
|
||||
fun CompoundTag.getDecimal(key: String) = Decimal.deserializeNBT(this[key])
|
||||
fun CompoundTag.putDecimal(key: String, value: Decimal) = put(key, value.serializeNBT())
|
||||
operator fun CompoundTag.set(key: String, value: Decimal) = putDecimal(key, value)
|
||||
|
@ -5,12 +5,14 @@ import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.NbtAccounter
|
||||
import net.minecraft.nbt.NbtIo
|
||||
import net.minecraft.network.FriendlyByteBuf
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.level.material.Fluid
|
||||
import net.neoforged.neoforge.fluids.FluidStack
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import java.io.*
|
||||
import java.math.BigDecimal
|
||||
import java.math.BigInteger
|
||||
@ -238,3 +240,20 @@ fun OutputStream.writeBinaryString(input: String) {
|
||||
writeVarIntLE(bytes.size)
|
||||
write(bytes)
|
||||
}
|
||||
|
||||
fun FriendlyByteBuf.readDecimal() = Decimal.read(this)
|
||||
fun FriendlyByteBuf.writeDecimal(value: Decimal) = value.write(this)
|
||||
|
||||
fun InputStream.readDecimal(): Decimal {
|
||||
val size = readVarIntLE()
|
||||
require(size >= 0) { "Negative payload size: $size" }
|
||||
val bytes = ByteArray(size)
|
||||
read(bytes)
|
||||
return Decimal.fromByteArray(bytes)
|
||||
}
|
||||
|
||||
fun OutputStream.writeDecimal(value: Decimal) {
|
||||
val bytes = value.toByteArray()
|
||||
writeVarIntLE(bytes.size)
|
||||
write(bytes)
|
||||
}
|
||||
|
@ -38,8 +38,8 @@ import ru.dbotthepony.mc.otm.core.ResourceLocation
|
||||
import ru.dbotthepony.mc.otm.core.TextComponent
|
||||
import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.readBlockType
|
||||
import ru.dbotthepony.mc.otm.core.registryName
|
||||
import ru.dbotthepony.mc.otm.core.util.formatPower
|
||||
|
@ -38,11 +38,10 @@ import ru.dbotthepony.mc.otm.core.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.collect.filter
|
||||
import ru.dbotthepony.mc.otm.core.isNotEmpty
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.set
|
||||
import ru.dbotthepony.mc.otm.core.math.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.set
|
||||
import ru.dbotthepony.mc.otm.core.util.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nextUUID
|
||||
import ru.dbotthepony.mc.otm.core.util.formatPower
|
||||
import ru.dbotthepony.mc.otm.isClientThread
|
||||
|
@ -29,8 +29,8 @@ import ru.dbotthepony.mc.otm.player.matteryPlayer
|
||||
import ru.dbotthepony.mc.otm.core.ResourceLocation
|
||||
import ru.dbotthepony.mc.otm.core.damageType
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.DecimalConfigValue
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
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.otmRandom
|
||||
import ru.dbotthepony.mc.otm.core.util.WriteOnce
|
||||
|
@ -29,8 +29,8 @@ import ru.dbotthepony.mc.otm.player.matteryPlayer
|
||||
import ru.dbotthepony.mc.otm.core.ResourceLocation
|
||||
import ru.dbotthepony.mc.otm.core.damageType
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.DecimalConfigValue
|
||||
import ru.dbotthepony.mc.otm.core.math.defineDecimal
|
||||
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.otmRandom
|
||||
import ru.dbotthepony.mc.otm.core.util.WriteOnce
|
||||
|
@ -2,8 +2,8 @@ package ru.dbotthepony.mc.otm.matter
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readDouble
|
||||
import ru.dbotthepony.mc.otm.core.util.writeDouble
|
||||
import java.io.InputStream
|
||||
|
@ -9,8 +9,8 @@ import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
import ru.dbotthepony.kommons.math.RGBAColor
|
||||
import ru.dbotthepony.mc.otm.core.math.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.readDecimal
|
||||
import ru.dbotthepony.mc.otm.core.util.writeDecimal
|
||||
import ru.dbotthepony.mc.otm.core.readBlockType
|
||||
import ru.dbotthepony.mc.otm.core.readItemType
|
||||
import ru.dbotthepony.mc.otm.core.writeBlockType
|
||||
|
@ -14,8 +14,7 @@ import ru.dbotthepony.mc.otm.config.IFoodRegenerationValues
|
||||
import ru.dbotthepony.mc.otm.config.PlayerConfig
|
||||
import ru.dbotthepony.mc.otm.core.damageType
|
||||
import ru.dbotthepony.mc.otm.core.math.Decimal
|
||||
import ru.dbotthepony.mc.otm.core.math.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.math.set
|
||||
import ru.dbotthepony.mc.otm.core.nbt.getDecimal
|
||||
import ru.dbotthepony.mc.otm.core.nbt.set
|
||||
import ru.dbotthepony.mc.otm.registry.MDamageTypes
|
||||
import kotlin.math.max
|
||||
|
Loading…
Reference in New Issue
Block a user