Merge branch '1.19.3' of https://git.dbotthepony.ru/DBot/overdrive_that_matters into 1.19.2
This commit is contained in:
commit
9366267a63
@ -15,7 +15,10 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
|
|||||||
var value: Int = 0
|
var value: Int = 0
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
private var ignoreRecompute = false
|
||||||
|
|
||||||
fun recompute() {
|
fun recompute() {
|
||||||
|
if (ignoreRecompute) return
|
||||||
var value = 0
|
var value = 0
|
||||||
|
|
||||||
for (mapValue in backingMap.values) {
|
for (mapValue in backingMap.values) {
|
||||||
@ -35,9 +38,15 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ignoreRecompute = true
|
||||||
|
|
||||||
|
try {
|
||||||
this.value += value - (old ?: 0)
|
this.value += value - (old ?: 0)
|
||||||
observer.invoke(this.value)
|
observer.invoke(this.value)
|
||||||
return true
|
return true
|
||||||
|
} finally {
|
||||||
|
ignoreRecompute = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
operator fun get(key: UUID): Int? {
|
operator fun get(key: UUID): Int? {
|
||||||
@ -53,17 +62,29 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ignoreRecompute = true
|
||||||
|
|
||||||
|
try {
|
||||||
val old = backingMap.remove(key) ?: return true
|
val old = backingMap.remove(key) ?: return true
|
||||||
value -= old
|
value -= old
|
||||||
return true
|
return true
|
||||||
|
} finally {
|
||||||
|
ignoreRecompute = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clear() {
|
fun clear() {
|
||||||
|
ignoreRecompute = true
|
||||||
|
|
||||||
|
try {
|
||||||
backingMap.clear()
|
backingMap.clear()
|
||||||
val old = this.value
|
} finally {
|
||||||
|
ignoreRecompute = false
|
||||||
|
|
||||||
|
if (this.value != 0) {
|
||||||
this.value = 0
|
this.value = 0
|
||||||
if (old != this.value) {
|
observer.invoke(0)
|
||||||
observer.invoke(this.value)
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +104,9 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
|
|||||||
nbt ?: return
|
nbt ?: return
|
||||||
val old = this.value
|
val old = this.value
|
||||||
this.value = 0
|
this.value = 0
|
||||||
|
ignoreRecompute = true
|
||||||
|
|
||||||
|
try {
|
||||||
for (value in nbt) {
|
for (value in nbt) {
|
||||||
value as CompoundTag
|
value as CompoundTag
|
||||||
|
|
||||||
@ -97,5 +120,8 @@ class UUIDIntModifiersMap(private val observer: (Int) -> Unit, private val backi
|
|||||||
if (old != this.value) {
|
if (old != this.value) {
|
||||||
observer.invoke(this.value)
|
observer.invoke(this.value)
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
|
ignoreRecompute = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user