Skip to content

Commit 42c1c0e

Browse files
committed
Task duration
1 parent f70179f commit 42c1c0e

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

common/src/main/kotlin/com/lambda/task/Task.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import com.lambda.threading.runSafe
2828
import com.lambda.util.Communication.logError
2929
import com.lambda.util.Nameable
3030
import com.lambda.util.StringUtils.capitalize
31+
import kotlin.time.DurationUnit
32+
import kotlin.time.toDuration
3133

3234
typealias TaskGenerator<R> = SafeContext.(R) -> Task<*>
3335
typealias TaskGeneratorOrNull<R> = SafeContext.(R) -> Task<*>?
@@ -306,11 +308,16 @@ abstract class Task<Result> : Nameable, Muteable {
306308
return this
307309
}
308310

311+
val duration: String get() =
312+
(age * 50).toDuration(DurationUnit.MILLISECONDS).toComponents { days, hours, minutes, seconds, nanoseconds ->
313+
"${"%03d".format(days)}:${"%02d".format(hours)}:${"%02d".format(minutes)}:${"%02d".format(seconds)}.${"${nanoseconds / 1_000_000}".take(2)}"
314+
}
315+
309316
override fun toString() =
310317
buildString { appendTaskTree(this@Task) }
311318

312319
private fun StringBuilder.appendTaskTree(task: Task<*>, level: Int = 0) {
313-
appendLine("${" ".repeat(level * 4)}${task.name}" + if (task !is RootTask) " [${task.state.display}]" else "")
320+
appendLine("${" ".repeat(level * 4)}${task.name}" + if (task !is RootTask) " ${task.duration} [${task.state.display}]" else "")
314321
if (!TaskFlowModule.showAllEntries && (task.state == State.COMPLETED || task.state == State.CANCELLED)) return
315322
task.subTasks.forEach {
316323
if (!TaskFlowModule.showAllEntries && task is RootTask && (it.state == State.COMPLETED || it.state == State.CANCELLED)) return@forEach

common/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class BuildTask @Ta5kBuilder constructor(
6060
private val interact: InteractionConfig = TaskFlowModule.interact,
6161
private val inventory: InventoryConfig = TaskFlowModule.inventory,
6262
) : Task<Unit>() {
63-
override val name: String get() = "Building $blueprint with ${(placements / (age / 20.0 + 0.001)).string} p/s ${(breaks / (age / 20.0 + 0.001)).string} p/s"
63+
override val name: String get() = "Building $blueprint with ${(breaks / (age / 20.0 + 0.001)).string} b/s ${(placements / (age / 20.0 + 0.001)).string} p/s"
6464

6565
private val pendingPlacements = ConcurrentLinkedQueue<PlaceContext>()
6666
private val pendingBreaks = ConcurrentLinkedQueue<BreakContext>()

0 commit comments

Comments
 (0)