From 51d630037dd3d3f369eeff6505633097f60c2da2 Mon Sep 17 00:00:00 2001 From: koka Date: Tue, 1 Sep 2026 17:04:01 +0200 Subject: [PATCH] fix(redstoner): make terminal search focus clickable --- CHANGELOG.md | 3 +- build.gradle | 41 +++++++++++++++---- gradle.properties | 2 +- .../client/gui/StorageTerminalScreen.java | 16 ++++++-- 4 files changed, 47 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51f89f8..f87dd43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,9 @@ Ce journal suit les **versions du modpack**. Lorsqu'un seul module change, sa ve ## Non publié -Modules modifiés : **Sanctuary `0.0.0-alpha.131`** et **Another World `0.0.0-alpha.57`**. +Modules modifiés : **Sanctuary `0.0.0-alpha.131`**, **Another World `0.0.0-alpha.57`** et **Red-Stoner `0.0.0-alpha.14`**. +- rend le champ de recherche du terminal inactif à l’ouverture puis focalisable au clic, libère le focus au clic extérieur et laisse toujours la touche d’inventaire fermer le terminal ; - ajoute la dimension persistante `sanctuary:backroom`, accessible en s’accroupissant devant un lit et quittée uniquement par un lit, avec arrivées variées dans une zone architecturale de 2 000 blocs ; - transfère atomiquement vers la Mailbox tout l’équipement d’entrée, y compris les rangées étendues, l’œuf compagnon et la cape, avec reprise idempotente après interruption ; - conserve les objets perdus au dépop, dans le vide et lors des morts en Backroom dans un registre borné et non duplicable ; diff --git a/build.gradle b/build.gradle index 9545b8a..b609198 100644 --- a/build.gradle +++ b/build.gradle @@ -3692,7 +3692,7 @@ tasks.register("verifyMirrorLavenderDrawerRelease") { def drawerRecipe = file("redstoner/src/main/resources/data/redstoner/recipe/drawer.json") if (rootProject.pack_version != "26.2.0-alpha.226" || rootProject.anotherworld_version != "0.0.0-alpha.57" - || rootProject.redstoner_version != "0.0.0-alpha.13" + || rootProject.redstoner_version != "0.0.0-alpha.14" || release.pack_version != rootProject.pack_version || index.versionId != rootProject.pack_version || migration.source?.pack_version != "26.2.0-alpha.191" || migration.source?.modules != [anotherworld: "0.0.0-alpha.48", redstoner: "0.0.0-alpha.9"] @@ -4310,7 +4310,7 @@ project(":redstoner") { "src/main/resources/data/redstoner/recipe/controller.json")) def terminalRecipe = new JsonSlurper().parse(file( "src/main/resources/data/redstoner/recipe/storage_terminal.json")) - if (project.version.toString() != "0.0.0-alpha.13" + if (project.version.toString() != "0.0.0-alpha.14" || manifest.custom?.sanctuary26?.data_version != 3 || manifest.custom?.sanctuary26?.network_protocol != 7 || terminalMigration.source?.pack_version != "26.2.0-alpha.217" @@ -4351,7 +4351,7 @@ project(":redstoner") { P: "anotherworld:silver_plate", G: "minecraft:tinted_glass", C: "redstoner:controller", T: "anotherworld:titanium_ingot"] || terminalRecipe.result != [id: "redstoner:storage_terminal", count: 1]) { - throw new GradleException("Red-Stoner alpha.13 Storage Terminal contract is incomplete") + throw new GradleException("Red-Stoner alpha.14 Storage Terminal contract is incomplete") } if (file("src/main/resources/data/redstoner/recipe/personal_computer.json").exists() || file("src/main/resources/data/redstoner/recipe/drawer.json").exists() @@ -6659,7 +6659,7 @@ tasks.register("verifyAlpha218Release") { "file = \"mods/${id}-${version}.jar\"" } if (rootProject.pack_version != "26.2.0-alpha.226" - || rootProject.redstoner_version != "0.0.0-alpha.13" + || rootProject.redstoner_version != "0.0.0-alpha.14" || currentModules.findAll { id, version -> id != "redstoner" && id != "sanctuary" && id != "onlyfun" && id != "iliketomoveit" }.any { @@ -6848,7 +6848,7 @@ tasks.register("verifyAlpha220Release") { def networking = file( "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/network/RedStonerNetworking.java").text if (rootProject.pack_version != "26.2.0-alpha.226" - || rootProject.redstoner_version != "0.0.0-alpha.13" + || rootProject.redstoner_version != "0.0.0-alpha.14" || migration.source?.pack_version != "26.2.0-alpha.219" || migration.source?.modules != [redstoner: "0.0.0-alpha.11"] || migration.target?.pack_version != "26.2.0-alpha.220" @@ -7077,7 +7077,7 @@ tasks.register("verifyAlpha222Release") { it.path == "mods/jei-26.2-fabric-30.29.0.198.jar" } if (rootProject.pack_version != "26.2.0-alpha.226" - || rootProject.redstoner_version != "0.0.0-alpha.13" + || rootProject.redstoner_version != "0.0.0-alpha.14" || rootProject.sanctuary_version != "0.0.0-alpha.131" || migration.source?.pack_version != "26.2.0-alpha.221" || migration.source?.modules != [ @@ -7132,7 +7132,6 @@ tasks.register("verifyAlpha222Release") { || !search.contains("Normalizer.Form.NFD") || !search.contains("BuiltInRegistries.ITEM.getKey") || !screen.contains("new EditBox") - || !screen.contains("setInitialFocus(searchBox)") || !screen.contains("searchBox.setResponder(this::searchChanged)") || !smoke.contains("verifySearch()") || !smoke.contains("verifyStableLayout()") @@ -7171,6 +7170,27 @@ tasks.register("verifyAlpha222Release") { } } +tasks.register("verifyStorageTerminalSearchFocus") { + group = "verification" + description = "Checks clickable storage-terminal search focus and vanilla inventory-key closing." + inputs.file(file( + "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java")) + doLast { + def screen = file( + "redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java").text + if (screen.contains("setInitialFocus(searchBox)") + || !screen.contains("searchBox.isMouseOver(event.x(), event.y())") + || !screen.contains("minecraft.options.keyInventory.matches(event)") + || screen.count("clearSearchFocus();") != 2 + || !screen.contains("searchBox.setFocused(false)") + || !screen.contains("setFocused(null)") + || !screen.contains("return super.mouseClicked(event, doubleClick)") + || !screen.contains("return super.keyPressed(event)")) { + throw new GradleException("The storage-terminal search focus regression contract is incomplete") + } + } +} + tasks.register("verifyAlpha223Release") { group = "verification" description = "Checks the Sanctuary 26.2.0-alpha.223 inventory-sort and quest-tracker display release." @@ -7484,7 +7504,8 @@ tasks.register("verifyAlpha225Release") { [(id): project(":${id}").version.toString()] } def releasedModules = workspaceModules + [ - anotherworld: "0.0.0-alpha.56", sanctuary: "0.0.0-alpha.130"] + redstoner: "0.0.0-alpha.13", anotherworld: "0.0.0-alpha.56", + sanctuary: "0.0.0-alpha.130"] def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } @@ -7645,7 +7666,8 @@ tasks.register("verifyAlpha226Release") { [(id): project(":${id}").version.toString()] } def releasedModules = workspaceModules + [ - anotherworld: "0.0.0-alpha.56", sanctuary: "0.0.0-alpha.130"] + redstoner: "0.0.0-alpha.13", anotherworld: "0.0.0-alpha.56", + sanctuary: "0.0.0-alpha.130"] def requiredJars = releasedModules.collect { id, version -> "file = \"mods/${id}-${version}.jar\"" } @@ -7716,6 +7738,7 @@ tasks.named("verifyWorkspace") { dependsOn tasks.named("verifyAlpha220Release") dependsOn tasks.named("verifyAlpha221Release") dependsOn tasks.named("verifyAlpha222Release") + dependsOn tasks.named("verifyStorageTerminalSearchFocus") dependsOn tasks.named("verifyAlpha223Release") dependsOn tasks.named("verifyAlpha224Release") dependsOn tasks.named("verifyAlpha225Release") diff --git a/gradle.properties b/gradle.properties index 0049830..85a2bc4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,7 +14,7 @@ mod_version=0.0.0-alpha.0 module_lifecycle=standby ambiance_version=0.0.0-alpha.22 ambiance_lifecycle=active -redstoner_version=0.0.0-alpha.13 +redstoner_version=0.0.0-alpha.14 redstoner_lifecycle=active anotherworld_version=0.0.0-alpha.57 anotherworld_lifecycle=active diff --git a/redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java b/redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java index ccf9f8c..b4b5adb 100644 --- a/redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java +++ b/redstoner/src/main/java/fr/koka99cab/sanctuary26/redstoner/client/gui/StorageTerminalScreen.java @@ -46,7 +46,6 @@ public final class StorageTerminalScreen extends AbstractContainerScreen