You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
Kotlin
37 lines
1.1 KiB
Kotlin
package net.trivernis.chunkmaster.lib.generation
|
|
|
|
import org.bukkit.scheduler.BukkitTask
|
|
|
|
class RunningTaskEntry(
|
|
override val id: Int,
|
|
val task: BukkitTask,
|
|
override val generationTask: GenerationTask
|
|
) : TaskEntry {
|
|
|
|
private var lastProgress: Pair<Long, Int>? = null
|
|
|
|
/**
|
|
* Returns the generation Speed
|
|
*/
|
|
val generationSpeed: Double?
|
|
get() {
|
|
var generationSpeed: Double? = null
|
|
if (lastProgress != null) {
|
|
val chunkDiff = generationTask.count - lastProgress!!.second
|
|
val timeDiff = (System.currentTimeMillis() - lastProgress!!.first).toDouble()/1000
|
|
generationSpeed = chunkDiff.toDouble()/timeDiff
|
|
}
|
|
lastProgress = Pair(System.currentTimeMillis(), generationTask.count)
|
|
return generationSpeed
|
|
}
|
|
|
|
init {
|
|
lastProgress = Pair(System.currentTimeMillis(), generationTask.count)
|
|
}
|
|
|
|
|
|
override fun cancel() {
|
|
task.cancel()
|
|
generationTask.cancel()
|
|
}
|
|
} |