Fix computed boolean field being ambiguous
This commit is contained in:
parent
9a841bf43b
commit
982554d2f0
@ -7,7 +7,7 @@ import ru.dbotthepony.mc.otm.core.nbt.set
|
||||
|
||||
abstract class AndroidSwitchableFeature(type: AndroidFeatureType<*>, android: MatteryPlayerCapability) : AndroidFeature(type, android) {
|
||||
var isActive by synchronizer.bool(setter = setter@{ value, access, setByRemote ->
|
||||
if (value != access.read()) {
|
||||
if (value != access.readBoolean()) {
|
||||
access.write(value)
|
||||
|
||||
if (!setByRemote) {
|
||||
@ -18,7 +18,7 @@ abstract class AndroidSwitchableFeature(type: AndroidFeatureType<*>, android: Ma
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}).property
|
||||
|
||||
open val allowToSwitchByPlayer: Boolean get() = true
|
||||
open val allowToSwitchByPlayerWhileSpectator: Boolean get() = true
|
||||
|
@ -113,7 +113,7 @@ abstract class MatteryMenu @JvmOverloads protected constructor(
|
||||
*/
|
||||
inner class PlayerInput<V>(val codec: IStreamCodec<V>, allowSpectators: Boolean = false, val handler: (V) -> Unit) : Predicate<Player?> {
|
||||
val id = playerInputs.size
|
||||
var allowSpectators by mSynchronizer.bool(allowSpectators)
|
||||
var allowSpectators by mSynchronizer.bool(allowSpectators).property
|
||||
|
||||
init {
|
||||
playerInputs.add(this)
|
||||
|
@ -2,11 +2,12 @@ package ru.dbotthepony.mc.otm.menu.input
|
||||
|
||||
import ru.dbotthepony.mc.otm.core.GetterSetter
|
||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
import java.util.function.BooleanSupplier
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
class BooleanInputWithFeedback(menu: MatteryMenu) : AbstractPlayerInputWithFeedback<Boolean>() {
|
||||
override val input = menu.booleanInput { consumer?.invoke(it) }
|
||||
override val value by menu.mSynchronizer.bool(getter = { supplier?.invoke() ?: false })
|
||||
override val value by menu.mSynchronizer.computedBool(BooleanSupplier { supplier?.invoke() ?: false })
|
||||
|
||||
constructor(menu: MatteryMenu, state: KMutableProperty0<Boolean>) : this(menu) {
|
||||
with(state)
|
||||
|
@ -10,7 +10,7 @@ import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||
*/
|
||||
class ItemHandlerPlayerInput(val menu: MatteryMenu, val allowPull: Boolean = false, val allowPush: Boolean = false) {
|
||||
private val allowedFlags = MatteryDeviceBlockEntity.ItemHandlerMode.values().map { menu.mSynchronizer.bool() to it }
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = allowedFlags[value.ordinal].first.value
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = allowedFlags[value.ordinal].first.boolean
|
||||
|
||||
inner class Piece(val side: RelativeSide) {
|
||||
fun isAllowed(value: MatteryDeviceBlockEntity.ItemHandlerMode) = this@ItemHandlerPlayerInput.isAllowed(value)
|
||||
|
@ -6,7 +6,7 @@ import kotlin.reflect.KMutableProperty0
|
||||
|
||||
class StringInputWithFeedback(menu: MatteryMenu) : AbstractPlayerInputWithFeedback<String>() {
|
||||
override val input = menu.stringInput { consumer?.invoke(it.replace('\u0000', ' ')) }
|
||||
override val value by menu.mSynchronizer.string(getter = { supplier?.invoke() ?: "" })
|
||||
override val value by menu.mSynchronizer.string { supplier?.invoke() ?: "" }
|
||||
|
||||
constructor(menu: MatteryMenu, state: KMutableProperty0<String>) : this(menu) {
|
||||
with(state)
|
||||
|
@ -7,7 +7,7 @@ class ProgressGaugeWidget(menu: MatteryMenu) : AbstractWidget(menu) {
|
||||
var progress = {0f}
|
||||
var stuck = {false}
|
||||
var progressContainer by menu.mSynchronizer.short()
|
||||
var stuckContainer by menu.mSynchronizer.bool()
|
||||
var stuckContainer by menu.mSynchronizer.bool().property
|
||||
|
||||
constructor(
|
||||
menu: MatteryMenu,
|
||||
|
@ -88,7 +88,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
}
|
||||
|
||||
fun byte(getter: () -> Byte) = ComputedField(getter, ByteValueCodec)
|
||||
fun bool(getter: BooleanSupplier) = ComputedBooleanField(getter)
|
||||
fun computedBool(getter: BooleanSupplier) = ComputedBooleanField(getter)
|
||||
fun short(getter: () -> Short) = ComputedField(getter, ShortValueCodec)
|
||||
fun long(getter: LongSupplier) = ComputedLongField(getter)
|
||||
fun fixedLong(getter: LongSupplier) = ComputedFixedLongField(getter)
|
||||
@ -103,7 +103,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
fun string(getter: () -> String) = ComputedField(getter, BinaryStringCodec)
|
||||
|
||||
fun byte(getter: KProperty0<Byte>) = ComputedField(getter, ByteValueCodec)
|
||||
fun bool(getter: KProperty0<Boolean>) = ComputedBooleanField(getter::get)
|
||||
fun computedBool(getter: KProperty0<Boolean>) = ComputedBooleanField(getter::get)
|
||||
fun short(getter: KProperty0<Short>) = ComputedField(getter, ShortValueCodec)
|
||||
fun long(getter: KProperty0<Long>) = ComputedLongField(getter::get)
|
||||
fun fixedLong(getter: KProperty0<Long>) = ComputedFixedLongField(getter::get)
|
||||
@ -118,7 +118,7 @@ class FieldSynchronizer(private val callback: Runnable, private val alwaysCallCa
|
||||
fun string(getter: KProperty0<String>) = ComputedField(getter, BinaryStringCodec)
|
||||
|
||||
fun byte(getter: Supplier<Byte>) = ComputedField(getter::get, ByteValueCodec)
|
||||
fun bool(getter: Supplier<Boolean>) = ComputedBooleanField(getter::get)
|
||||
fun computedBool(getter: Supplier<Boolean>) = ComputedBooleanField(getter::get)
|
||||
fun short(getter: Supplier<Short>) = ComputedField(getter::get, ShortValueCodec)
|
||||
fun long(getter: Supplier<Long>) = ComputedLongField(getter::get)
|
||||
fun fixedLong(getter: Supplier<Long>) = ComputedFixedLongField(getter::get)
|
||||
|
Loading…
Reference in New Issue
Block a user