From ce62dcf9eb73ac2a0db28204e15cb0ce2e358d9b Mon Sep 17 00:00:00 2001 From: beanbag44 <107891830+beanbag44@users.noreply.github.com> Date: Wed, 28 Jan 2026 00:59:34 +0000 Subject: [PATCH] use a sequence for handling sim results in the build task --- .../interaction/managers/breaking/BreakRequest.kt | 13 +++++++++++-- .../managers/interacting/InteractRequest.kt | 13 +++++++++++-- src/main/kotlin/com/lambda/task/tasks/BuildTask.kt | 8 ++++++-- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/lambda/interaction/managers/breaking/BreakRequest.kt b/src/main/kotlin/com/lambda/interaction/managers/breaking/BreakRequest.kt index 5e304134e..e2027604d 100644 --- a/src/main/kotlin/com/lambda/interaction/managers/breaking/BreakRequest.kt +++ b/src/main/kotlin/com/lambda/interaction/managers/breaking/BreakRequest.kt @@ -143,7 +143,16 @@ data class BreakRequest private constructor( nowOrNothing: Boolean = false, builder: (BreakRequestBuilder.() -> Unit)? = null ) = asSequence() - .map { if (it is Dependent) it.lastDependency else it } + .breakRequest(pendingInteractions, nowOrNothing, builder) + + @BreakRequestDsl + @JvmName("breakRequest3") + context(automated: Automated) + fun Sequence.breakRequest( + pendingInteractions: MutableCollection, + nowOrNothing: Boolean = false, + builder: (BreakRequestBuilder.() -> Unit)? = null + ) = map { if (it is Dependent) it.lastDependency else it } .filterIsInstance() .sorted() .map { it.context } @@ -152,7 +161,7 @@ data class BreakRequest private constructor( ?.let { automated.breakRequest(it, pendingInteractions, nowOrNothing, builder) } @BreakRequestDsl - @JvmName("breakRequest3") + @JvmName("breakRequest4") fun Automated.breakRequest( contexts: Collection, pendingInteractions: MutableCollection, diff --git a/src/main/kotlin/com/lambda/interaction/managers/interacting/InteractRequest.kt b/src/main/kotlin/com/lambda/interaction/managers/interacting/InteractRequest.kt index ac6fad630..c085d23d1 100644 --- a/src/main/kotlin/com/lambda/interaction/managers/interacting/InteractRequest.kt +++ b/src/main/kotlin/com/lambda/interaction/managers/interacting/InteractRequest.kt @@ -79,7 +79,16 @@ data class InteractRequest private constructor( nowOrNothing: Boolean = false, builder: (PlaceRequestBuilder.() -> Unit)? = null ) = asSequence() - .map { if (it is Dependent) it.lastDependency else it } + .interactRequest(pendingInteractions, nowOrNothing, builder) + + @PlaceRequestDsl + @JvmName("interactRequest2") + context(automated: Automated) + fun Sequence.interactRequest( + pendingInteractions: MutableCollection, + nowOrNothing: Boolean = false, + builder: (PlaceRequestBuilder.() -> Unit)? = null + ) = map { if (it is Dependent) it.lastDependency else it } .filterIsInstance() .sorted() .map { it.context } @@ -88,7 +97,7 @@ data class InteractRequest private constructor( ?.let { automated.interactRequest(it, pendingInteractions, nowOrNothing, builder) } @PlaceRequestDsl - @JvmName("interactRequest2") + @JvmName("interactRequest3") fun Automated.interactRequest( contexts: Collection, pendingInteractions: MutableCollection, diff --git a/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt b/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt index 70ed2ec50..2a1d12ca5 100644 --- a/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt +++ b/src/main/kotlin/com/lambda/task/tasks/BuildTask.kt @@ -119,11 +119,15 @@ class BuildTask private constructor( } private fun AutomatedSafeContext.simulateAndProcess() { - val results = runSafeAutomated { blueprint.structure.simulate() } + val results = + blueprint.structure + .simulate() + .asSequence() DEFAULT.drawables = results .filterIsInstance() .plus(pendingInteractions.toList()) + .toList() val viableResults = results .filter { result -> @@ -141,7 +145,7 @@ class BuildTask private constructor( handleResult(bestResult, viableResults) } - private fun AutomatedSafeContext.handleResult(result: BuildResult, allResults: List) { + private fun AutomatedSafeContext.handleResult(result: BuildResult, allResults: Sequence) { if (result !is Dependent && result !is Contextual && pendingInteractions.isNotEmpty()) return when (result) {