diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 8ba5a6a27c..8efc8fb63b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -312,6 +312,7 @@ cancelbuilding = [accent][[{0}][] to clear plan selectschematic = [accent][[{0}][] to select+copy pausebuilding = [accent][[{0}][] to pause building resumebuilding = [scarlet][[{0}][] to resume building +enablebuilding = [scarlet][[{0}][] to enable building showui = UI hidden.\nPress [accent][[{0}][] to show UI. wave = [accent]Wave {0} wave.cap = [accent]Wave {0}/{1} diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 571a1b6e53..69d9555103 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -41,10 +41,13 @@ be.ignore = Ignorieren be.noupdates = Keine Aktualisierungen gefunden. be.check = Auf Aktualisierungen prüfen -mod.featured.dialog.title = Mod Browser (unfertig) +mod.featured.dialog.title = Mod Browser mods.browser.selected = Ausgewählter Mod mods.browser.add = Installieren -mods.github.open = Ansehen +mods.browser.reinstall = Neu Installieren +mods.github.open = Github +mods.browser.sortdate = Nach neusten sortieren +mods.browser.sortstars = Nach Sternen sortieren schematic = Entwurf schematic.add = Entwurf speichern... @@ -116,8 +119,10 @@ mods.none = [lightgray]Keine Mods gefunden! mods.guide = Modding-Anleitung mods.report = Problem melden mods.openfolder = Mod-Verzeichnis öffnen +mods.viewcontent = Inhalt ansehen mods.reload = Neu laden mods.reloadexit = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden. +mod.installed = [[Installiert] mod.display = [gray]Mod:[orange] {0} mod.enabled = [lightgray]Aktiviert mod.disabled = [scarlet]Deaktiviert @@ -287,6 +292,7 @@ cancel = Abbruch openlink = Link öffnen copylink = Link kopieren back = Zurück +max = Max crash.export = Crash-Logs exportieren crash.none = Keine Crash-Logs gefunden. crash.exported = Crash-Logs wurden erfolgreich exportiert. @@ -361,7 +367,6 @@ editor.center = Zur Mitte workshop = Workshop waves.title = Wellen waves.remove = Entfernen -waves.never = waves.every = alle waves.waves = Welle(n) waves.perspawn = pro Spawn @@ -390,7 +395,7 @@ editor.removeunit = Bereich entfernen editor.teams = Teams editor.errorload = Fehler beim Laden der Datei:\n[accent]{0} editor.errorsave = Fehler beim Speichern der Datei:\n[accent]{0} -editor.errorimage = Das ist ein Bild, keine Karte. Wechsle nicht den Dateityp und erwarte, dass es funktioniert.\n\nWenn du eine 'v3.5/build 40'-Karte importieren möchtest, benutze den 'Importiere Terrainbild'-Knopf im Editor. +editor.errorimage = Das ist ein Bild, keine Karte. editor.errorlegacy = Diese Karte ist zu alt und benutzt ein veraltetes Kartenformat, das nicht mehr unterstützt wird. editor.errornot = Dies ist keine Kartendatei. editor.errorheader = Diese Karte ist entweder nicht gültig oder beschädigt. @@ -693,6 +698,7 @@ stat.lightningchance = Blitzwahr­schein­lich­keit stat.lightningdamage = Blitzschaden stat.flammability = Brennbarkeit stat.radioactivity = Radioaktivität +stat.charge = Ladung stat.heatcapacity = Hitzekapazität stat.viscosity = Viskosität stat.temperature = Temperatur @@ -720,6 +726,7 @@ bar.corereq = Kern-Basis erforderlich bar.drillspeed = Bohrgeschwindigkeit: {0}/s bar.pumpspeed = Pumpengeschwindigkeit: {0}/s bar.efficiency = Effizienz: {0}% +bar.boost = Beschleunigung: {0}% bar.powerbalance = Strom: {0}/s bar.powerstored = Gespeichert: {0}/{1} bar.poweramount = Strom: {0} @@ -935,6 +942,7 @@ mode.custom = Angepasste Regeln rules.infiniteresources = Unbegrenzte Ressourcen rules.reactorexplosions = Reaktor-Explosionen +rules.coreincinerates = Kern verbrennt überflüssige Materialien rules.schematic = Entwürfe erlaubt rules.wavetimer = Wellen-Timer rules.waves = Wellen @@ -1381,8 +1389,8 @@ block.inverted-sorter.description = Wie ein normaler Sortierer, aber gibt das au block.router.description = Verteilt Materialien auf bis zu drei Richtungen. block.router.details = Ein nötiges Übel. Es ist nicht empfehlenswert, ihn neben Fabriken zu setzen, da er sich dort verstopfen kann. block.distributor.description = Verteilt Materialien auf bis zu sieben Richtungen. -block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. Kann nicht neben anderen Überlauf- oder Unterlauftoren verwendet werden. -block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. Kann nicht neben anderen Überlauf- oder Unterlauftoren verwendet werden. +block.overflow-gate.description = Gibt Materialien nur zu den Seiten heraus, wenn der fordere Ausgang blockiert ist. +block.underflow-gate.description = Das Gegenteil eines Überlauftors. Gibt Materialien nur nach vorne heraus, wenn die Seiten blockiert sind. block.mass-driver.description = Ein Transportblock mit sehr hoher Reichweite. Sammelt mehrere Materialien und schießt sie zu einem verbundenen Massenbeschleuniger. block.mechanical-pump.description = Eine Pumpe, die keinen Strom benötigt. block.rotary-pump.description = Eine Pumpe, die Strom verbraucht. diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 592869b4d1..2f36e87ffe 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -42,7 +42,7 @@ public class DesktopInput extends InputHandler{ /** Selected build request for movement. */ public @Nullable BuildPlan sreq; /** Whether player is currently deleting removal requests. */ - public boolean deleting = false, shouldShoot = false, panning = false; + public boolean deleting = false, wasBuilding = true, shouldShoot = false, panning = false; /** Mouse pan speed. */ public float panScale = 0.005f, panSpeed = 4.5f, panBoostSpeed = 11f; @@ -62,18 +62,19 @@ public class DesktopInput extends InputHandler{ group.fill(t -> { t.bottom(); t.visible(() -> { - t.color.a = Mathf.lerpDelta(t.color.a, player.unit().isBuilding() ? 1f : 0f, 0.15f); + t.color.a = Mathf.lerpDelta(t.color.a, !isBuilding && !Core.settings.getBool("buildautopause") || player.unit().isBuilding() ? 1f : 0f, 0.15f); return ui.hudfrag.shown && Core.settings.getBool("hints") && selectRequests.isEmpty() && t.color.a > 0.01f; }); t.touchable(() -> t.color.a < 0.1f ? Touchable.disabled : Touchable.childrenOnly); t.table(Styles.black6, b -> { b.defaults().left(); - b.label(() -> Core.bundle.format(!isBuilding ? "resumebuilding" : "pausebuilding", Core.keybinds.get(Binding.pause_building).key.toString())).style(Styles.outlineLabel); - b.row(); - b.label(() -> Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString())).style(Styles.outlineLabel); - b.row(); - b.label(() -> Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString())).style(Styles.outlineLabel); + b.label(() -> ((!isBuilding || !wasBuilding) && !Core.settings.getBool("buildautopause") && !player.unit().isBuilding() ? + Core.bundle.format("enablebuilding", Core.keybinds.get(Binding.pause_building).key.toString()) : + Core.bundle.format(isBuilding ? "pausebuilding" : "resumebuilding", Core.keybinds.get(Binding.pause_building).key.toString()) + + "\n" + Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString()) + + "\n" + Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString()) + )).style(Styles.outlineLabel); }).margin(10f); }); @@ -454,6 +455,7 @@ public class DesktopInput extends InputHandler{ buildWasAutoPaused = false; if(isBuilding){ + wasBuilding = player.unit().isBuilding(); player.shooting = false; } } @@ -561,6 +563,7 @@ public class DesktopInput extends InputHandler{ } mode = none; + wasBuilding = true; } if(Core.input.keyTap(Binding.toggle_block_status)){