How i missed this i have no idea

This commit is contained in:
DBotThePony 2024-09-18 17:47:54 +07:00
parent 16f5f4c9c9
commit 6291cecb7e
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -22,7 +22,7 @@ abstract class AbstractHistoryGraph<V : Any>(
/**
* Limit on how many graph values to store
*/
val width: Int = 100,
val width: Int,
) : Iterable<V>, INBTSerializable<CompoundTag>, ISynchable {
constructor(ticks: Int) : this(1, ticks)
@ -36,8 +36,27 @@ abstract class AbstractHistoryGraph<V : Any>(
protected abstract fun calculateAverage(input: List<V>): V
protected abstract fun sum(a: V, b: V): V
protected abstract fun sum(input: List<V>): V
protected abstract fun identity(): V
fun calculateAverage(width: Int = this.width): V {
require(width >= 0) { "Invalid time frame: $width" }
if (width == 0 || this.values.isEmpty())
return identity()
return calculateAverage(this.values.subList(0, width.coerceAtMost(this.values.size)))
}
fun calculateSum(width: Int = this.width): V {
require(width >= 0) { "Invalid time frame: $width" }
if (width == 0 || this.values.isEmpty())
return identity()
return sum(this.values.subList(0, width.coerceAtMost(this.values.size)))
}
abstract val codec: Codec<V>
abstract val streamCodec: MatteryStreamCodec<RegistryFriendlyByteBuf, V>
@ -48,7 +67,7 @@ abstract class AbstractHistoryGraph<V : Any>(
remotes.add(this)
}
private var shouldFullyNetwork = false
private var shouldFullyNetwork = true
private val networkValues = ArrayList<V>()
override fun write(stream: RegistryFriendlyByteBuf) {