AlwaysTrue and AlwaysFalse boolean providers

This commit is contained in:
DBotThePony 2025-03-09 13:05:44 +07:00
parent bd8c5ed97b
commit 5f76aa1661
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -92,6 +92,36 @@ interface BooleanProvider {
}
}
object AlwaysTrue : BooleanProvider, Instance, Type<AlwaysTrue> {
override fun instance(): Instance {
return this
}
override fun sample(random: RandomSource): Boolean {
return true
}
override val type: Type<*>
get() = this
override val codec: MapCodec<AlwaysTrue> = MapCodec.unit(this)
}
object AlwaysFalse : BooleanProvider, Instance, Type<AlwaysFalse> {
override fun instance(): Instance {
return this
}
override fun sample(random: RandomSource): Boolean {
return false
}
override val type: Type<*>
get() = this
override val codec: MapCodec<AlwaysFalse> = MapCodec.unit(this)
}
companion object {
private val registryHolder = RegistryDelegate<Type<*>>("boolean_provider") {
defaultKey(ResourceLocation(OverdriveThatMatters.MOD_ID, "zero"))
@ -105,6 +135,8 @@ interface BooleanProvider {
init {
registrar.register("unbiased") { Unbiased.Companion }
registrar.register("linear_bias") { BiasedLinear.Companion }
registrar.register("true") { AlwaysTrue }
registrar.register("false") { AlwaysFalse }
}
val CODEC: Codec<BooleanProvider> by lazy {