From d33a72202a2b9788f93908c6a8acf96f30053622 Mon Sep 17 00:00:00 2001 From: tobspr Date: Sat, 31 Oct 2020 12:41:18 +0100 Subject: [PATCH 01/42] Update changelog and update translation regarding 20 upgrade tiers, closes #907 --- src/js/changelog.js | 5 ++++- translations/base-ar.yaml | 4 ++-- translations/base-cat.yaml | 2 +- translations/base-cz.yaml | 5 +++-- translations/base-da.yaml | 8 ++++---- translations/base-de.yaml | 2 +- translations/base-el.yaml | 4 ++-- translations/base-en.yaml | 4 ++-- translations/base-fi.yaml | 2 +- translations/base-fr.yaml | 2 +- translations/base-hr.yaml | 4 ++-- translations/base-hu.yaml | 2 +- translations/base-ind.yaml | 2 +- translations/base-it.yaml | 2 +- translations/base-lt.yaml | 4 ++-- translations/base-nl.yaml | 2 +- translations/base-no.yaml | 2 +- translations/base-pl.yaml | 5 +++-- translations/base-pt-BR.yaml | 2 +- translations/base-pt-PT.yaml | 2 +- translations/base-ro.yaml | 2 +- translations/base-ru.yaml | 2 +- translations/base-sl.yaml | 4 ++-- translations/base-sr.yaml | 4 ++-- translations/base-sv.yaml | 5 +++-- translations/base-tr.yaml | 11 +++++++---- translations/base-uk.yaml | 8 +++++--- 27 files changed, 56 insertions(+), 45 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 3a93bb96..fcafbe2b 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -7,7 +7,10 @@ export const CHANGELOG = [ "Fix reward notification being too long sometimes (by LeopoldTal)", "Use locale decimal separator on belt reader display (by LeopoldTal)", "Vastly improved performance when saving games (by LeopoldTal)", - "Updated translations", + "Prevent some antivirus programs blocking the opening of external links (by LeopoldTal)", + "Match tutorials to the correct painter variants (by LeopoldTal)", + "Prevent throughput goals containing fractional numbers (by CEbbinghaus)", + "Updated translations and added Hungarian", ], }, { diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 55327fdf..305c9b88 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -16,7 +16,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -359,7 +359,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-cat.yaml b/translations/base-cat.yaml index 85e03e8f..4d4954b3 100644 --- a/translations/base-cat.yaml +++ b/translations/base-cat.yaml @@ -369,7 +369,7 @@ ingame: title: Guarda ∞ partides desc: Tantes com vulguis! upgrades: - title: 20 Nivells de millora + title: ∞ Nivells de millora desc: La versió demo només en té 5! markers: title: ∞ Marcadors diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index add0e440..2f2909f0 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -303,7 +303,8 @@ ingame: 2_1_place_cutter: "Teď umístěte pilu k rozřezání kruhového tvaru na dvě poloviny!

PS: Pila řeže tvary vždy svisle na poloviny bez ohledu na její orientaci." - 2_2_place_trash: Pila se může zaseknout a zastavit vaši produkci!

Použijte + 2_2_place_trash: + Pila se může zaseknout a zastavit vaši produkci!

Použijte koš ke smazání (!) nepotřebných částí tvarů. 2_3_more_cutters: "Dobrá práce! Teď postavte více pil pro zrychlení @@ -360,7 +361,7 @@ ingame: title: ∞ Uložených her desc: Tolik, kolik vaše srdce touží! upgrades: - title: 20 vylepšení + title: ∞ vylepšení desc: Tato demo verze má pouze 5! markers: title: ∞ Značek diff --git a/translations/base-da.yaml b/translations/base-da.yaml index 52af9b54..44293fdd 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -42,10 +42,10 @@ steamPage: source_code: Source code (GitHub) translate: Hjælp med oversættelse text_open_source: >- - Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og - forsøger at gennemgå alle ideer og tager feedback i overvejelse + Hvem som helst kan bidrage, jeg er aktivt involveret i fælleskabet og + forsøger at gennemgå alle ideer og tager feedback i overvejelse hvor muligt. - + Be sure to check out my trello board for the full roadmap! global: loading: Indlæser @@ -363,7 +363,7 @@ ingame: title: ∞ Gemte spil desc: Så mange dit hjerte begær! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-de.yaml b/translations/base-de.yaml index ee3bc70f..26e9dfc2 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -360,7 +360,7 @@ ingame: title: ∞ Speicherstände desc: So viele dein Herz begehrt! upgrades: - title: 20 Upgrade-Stufen + title: ∞ Upgrade-Stufen desc: Diese Demo hat nur 5! markers: title: ∞ Marker diff --git a/translations/base-el.yaml b/translations/base-el.yaml index 08edd918..ec0df592 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -18,7 +18,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -374,7 +374,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 639dca3a..62ed2808 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -42,7 +42,7 @@ steamPage: advantages: - 12 New Levels for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -487,7 +487,7 @@ ingame: desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: diff --git a/translations/base-fi.yaml b/translations/base-fi.yaml index 56b52600..42d73425 100644 --- a/translations/base-fi.yaml +++ b/translations/base-fi.yaml @@ -358,7 +358,7 @@ ingame: title: ∞ Tallennukset desc: Niin paljon kuin sielusi kaipaa! upgrades: - title: 20 päivitystasoa + title: ∞ päivitystasoa desc: Kokeiluversiossa on vain viisi! markers: title: ∞ Merkit diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 65d962a2..6af2f86e 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -367,7 +367,7 @@ ingame: title: Sauvegardes ∞ desc: Autant que votre cœur le désire ! upgrades: - title: 20 niveaux d’amélioration + title: ∞ niveaux d’amélioration desc: Cette version de démonstration n’en a que 5 ! markers: title: Balises ∞ diff --git a/translations/base-hr.yaml b/translations/base-hr.yaml index 70f2bcb3..ae62d58c 100644 --- a/translations/base-hr.yaml +++ b/translations/base-hr.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -360,7 +360,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index 9f1cc854..cfbce76a 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -363,7 +363,7 @@ ingame: title: ∞ Mentés desc: Amennyit csak szeretnél! upgrades: - title: 20 Fejlesztési Szint + title: ∞ Fejlesztési Szint desc: A Demó Verzió csak 5-öt tartalmaz! markers: title: ∞ Jelölő diff --git a/translations/base-ind.yaml b/translations/base-ind.yaml index 2da9b377..8211a34f 100644 --- a/translations/base-ind.yaml +++ b/translations/base-ind.yaml @@ -368,7 +368,7 @@ ingame: title: ∞ Data Simpanan desc: Sebanyak yang kamu mau! upgrades: - title: 20 Tingkatan Upgrade + title: ∞ Tingkatan Upgrade desc: Versi demo ini hanya punya 5! markers: title: ∞ Penanda diff --git a/translations/base-it.yaml b/translations/base-it.yaml index f1ed9ba4..572bbc77 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -367,7 +367,7 @@ ingame: title: ∞ salvataggi desc: Quanti ne desideri! upgrades: - title: 20 gradi di miglioramenti + title: ∞ gradi di miglioramenti desc: Questa demo ne ha solo 5! markers: title: ∞ etichette diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index 910cb9f2..f69bbc03 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -359,7 +359,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index bebba218..09192564 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -368,7 +368,7 @@ ingame: title: ∞ Savegames desc: Zo veel je maar wilt! upgrades: - title: 20 Upgrade Levels + title: ∞ Upgrade Levels desc: Deze demo heeft er enkel 5! markers: title: ∞ Markeringen diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 1e8bf7b0..8ab3a2a7 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -365,7 +365,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index d42c80f2..360f3cad 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -326,7 +326,8 @@ ingame: niezależnie od swojej orientacji." 2_2_place_trash: Przecinak może się zapchać i zablokować!

Użyj śmietnik aby usunąć obecnie (!) nie potrzebne elementy. - 2_3_more_cutters: "Dobra robota! Teraz umieść 2 kolejne przecinaki,aby przyspieszyć + 2_3_more_cutters: + "Dobra robota! Teraz umieść 2 kolejne przecinaki,aby przyspieszyć ten wolny proces!

PS: Użyj klawiszy 0-9, aby szybciej uzyskać dostęp do budynków!" 3_1_rectangles: "Teraz wydobądź kilka kwadratów! Wybuduj @@ -365,7 +366,7 @@ ingame: title: ∞ Zapisów Gry desc: Twórz tyle, ile potrzebujesz! upgrades: - title: 20 Poziomów Ulepszeń + title: ∞ Poziomów Ulepszeń desc: To demo posiada tylko 5! markers: title: ∞ Znaczników diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 8e8ea027..c52816d4 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -361,7 +361,7 @@ ingame: title: Saves ∞ desc: Quantos o seu coração mandar! upgrades: - title: 20 Níveis de Melhorias + title: ∞ Níveis de Melhorias desc: Essa demo tem apenas 5! markers: title: Marcadores ∞ diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index c6c18b98..a0d7901c 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -368,7 +368,7 @@ ingame: title: Savegames ∞ desc: Tantos quanto o teu corção desejar! upgrades: - title: 20 Níveis de melhoria + title: ∞ Níveis de melhoria desc: Nesta versão demo apenas tens 5! markers: title: Marcos ∞ diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 3a6ca947..1dd87f08 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -367,7 +367,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 23b635b7..6c01272e 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -360,7 +360,7 @@ ingame: title: ∞ Сохранений desc: Сколько Вашей душе угодно! upgrades: - title: 20 стадий улучшений! + title: ∞ стадий улучшений! desc: В демоверсии всего 5! markers: title: ∞ Маркеров! diff --git a/translations/base-sl.yaml b/translations/base-sl.yaml index 516aa9de..907aa1f5 100644 --- a/translations/base-sl.yaml +++ b/translations/base-sl.yaml @@ -18,7 +18,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -361,7 +361,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-sr.yaml b/translations/base-sr.yaml index 3a9d72ea..35f2c8ca 100644 --- a/translations/base-sr.yaml +++ b/translations/base-sr.yaml @@ -17,7 +17,7 @@ steamPage: advantages: - 12 New Level for a total of 26 levels - 18 New Buildings for a fully automated factory! - - 20 Upgrade Tiers for many hours of fun! + - Unlimited Upgrade Tiers for many hours of fun! - Wires Update for an entirely new dimension! - Dark Mode! - Unlimited Savegames @@ -361,7 +361,7 @@ ingame: title: ∞ Savegames desc: As many as your heart desires! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ Markers diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 9d4284de..8083c8d1 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -364,7 +364,7 @@ ingame: title: ∞ med sparfiler desc: Så många som du bara vill! upgrades: - title: 20 Upgrade Tiers + title: ∞ Upgrade Tiers desc: This demo version has only 5! markers: title: ∞ med markeringar! @@ -520,7 +520,8 @@ buildings: färger eller booleansk "1") xor: name: XOR Grind - description: Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. + description: + Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. (Positiva menas med former, färger eller booleansk "1") or: name: OR Grind diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index 7cc78d33..389b01e8 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -302,20 +302,23 @@ ingame: yerleştir.

İpucu: Birden fazla üretici yerleştirmek için SHIFT tuşuna basılı tut, ve R tuşuyla taşıma bandının yönünü döndür." - 2_1_place_cutter: "Şimdi daireleri yarıya bölmek için bir Kesici yerleştir!

+ 2_1_place_cutter: + "Şimdi daireleri yarıya bölmek için bir Kesici yerleştir!

Not: Kesici şekilleri yönünden bağımsız olarak her zaman yukarıdan aşağıya keser." 2_2_place_trash: Kesicinin çıkış hatları doluysa durabilir!

Bunun için kullanılmayan çıktılara çöp yerleştirin. - 2_3_more_cutters: "İyi iş çıkardın! Şimdi işleri hızlandırmak için iki kesici daha + 2_3_more_cutters: + "İyi iş çıkardın! Şimdi işleri hızlandırmak için iki kesici daha yerleştir.

Not: 0-9 tuşlarını kullanarak yapılara daha hızlı ulaşabilirsin!" 3_1_rectangles: "Şimdi biraz dikdörtgen üretelim! 4 Üretici yerleştir ve bunları merkeze bağla.

Not: SHIFT tuşuna basılı tutarak bant planlayıcıyı etkinleştir!" - 21_1_place_quad_painter: Dörtlü boyayıcıyı yerleştirin ve daireyi, + 21_1_place_quad_painter: + Dörtlü boyayıcıyı yerleştirin ve daireyi, beyaz ve kırmızı renkleri elde edin! 21_2_switch_to_wires: Kablo katmanına E tuşuna basarak geçiş yapın!

@@ -362,7 +365,7 @@ ingame: title: ∞ Oyun Kayıtları desc: Canın ne kadar isterse! upgrades: - title: 20 Geliştirme Aşaması + title: ∞ Geliştirme Aşaması desc: Bu deneme sürümünde sadece 5 tane var! markers: title: ∞ Yer imleri diff --git a/translations/base-uk.yaml b/translations/base-uk.yaml index 45765dd9..eddd4210 100644 --- a/translations/base-uk.yaml +++ b/translations/base-uk.yaml @@ -520,7 +520,7 @@ ingame: desc: Стільки, скільки вашій душі завгодно! upgrades: - title: 20 рівнів Поліпшень + title: ∞ рівнів Поліпшень desc: Демо-версія має лише 5! markers: @@ -706,7 +706,8 @@ buildings: logic_gate: default: name: Логічне "І" - description: Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, + description: + Видає логічну "1" якщо обидва вводи отримують сигнал "Істинний". (Під "Істинний" мається наувазі фігура, колір чи логічна "1") not: name: Логічне "НЕ" @@ -745,7 +746,8 @@ buildings: reader: default: name: &reader Зчитувач конвеєєра - description: Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента + description: + Дозволяє вимірювати середню пропускну здатність конвеєрної стрічки. Видає сигнал останнього зчитаного елемента на шар дротів (коли розблоковано). analyzer: From 4b088980f3272af1df440dc54980a08a1688f335 Mon Sep 17 00:00:00 2001 From: tobspr Date: Sat, 31 Oct 2020 12:46:25 +0100 Subject: [PATCH 02/42] Set 1.2.1 release date --- src/js/changelog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index fcafbe2b..a5b7e07e 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,7 +1,7 @@ export const CHANGELOG = [ { version: "1.2.1", - date: "unreleased", + date: "31.10.2020", entries: [ "Fixed stacking bug for level 26 which required restarting the game", "Fix reward notification being too long sometimes (by LeopoldTal)", From 82aaf7f037344bdadc0ae3b0cf2d861a093e161f Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 12:47:19 +0100 Subject: [PATCH 03/42] Add ability to edit constant signals, bump version --- src/js/changelog.js | 5 +++ src/js/game/hud/hud.js | 2 + src/js/game/hud/parts/constant_signal_edit.js | 33 ++++++++++++++ src/js/game/systems/constant_signal.js | 44 +++++++++++-------- version | 2 +- 5 files changed, 66 insertions(+), 20 deletions(-) create mode 100644 src/js/game/hud/parts/constant_signal_edit.js diff --git a/src/js/changelog.js b/src/js/changelog.js index a5b7e07e..6cc50993 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,4 +1,9 @@ export const CHANGELOG = [ + { + version: "1.2.2", + date: "07.12.2020", + entries: ["Added the ability to edit constant signals by left clicking them"], + }, { version: "1.2.1", date: "31.10.2020", diff --git a/src/js/game/hud/hud.js b/src/js/game/hud/hud.js index 5f1bd226..d64f96a8 100644 --- a/src/js/game/hud/hud.js +++ b/src/js/game/hud/hud.js @@ -48,6 +48,7 @@ import { HUDBetaOverlay } from "./parts/beta_overlay"; import { HUDStandaloneAdvantages } from "./parts/standalone_advantages"; import { HUDCatMemes } from "./parts/cat_memes"; import { HUDTutorialVideoOffer } from "./parts/tutorial_video_offer"; +import { HUDConstantSignalEdit } from "./parts/constant_signal_edit"; export class GameHUD { /** @@ -86,6 +87,7 @@ export class GameHUD { waypoints: new HUDWaypoints(this.root), wireInfo: new HUDWireInfo(this.root), leverToggle: new HUDLeverToggle(this.root), + constantSignalEdit: new HUDConstantSignalEdit(this.root), // Must always exist pinnedShapes: new HUDPinnedShapes(this.root), diff --git a/src/js/game/hud/parts/constant_signal_edit.js b/src/js/game/hud/parts/constant_signal_edit.js new file mode 100644 index 00000000..b030ac52 --- /dev/null +++ b/src/js/game/hud/parts/constant_signal_edit.js @@ -0,0 +1,33 @@ +import { STOP_PROPAGATION } from "../../../core/signal"; +import { Vector } from "../../../core/vector"; +import { enumMouseButton } from "../../camera"; +import { BaseHUDPart } from "../base_hud_part"; + +export class HUDConstantSignalEdit extends BaseHUDPart { + initialize() { + this.root.camera.downPreHandler.add(this.downPreHandler, this); + } + + /** + * @param {Vector} pos + * @param {enumMouseButton} button + */ + downPreHandler(pos, button) { + const tile = this.root.camera.screenToWorld(pos).toTileSpace(); + const contents = this.root.map.getLayerContentXY(tile.x, tile.y, "wires"); + if (contents) { + const constantComp = contents.components.ConstantSignal; + if (constantComp) { + if (button === enumMouseButton.left) { + this.root.systemMgr.systems.constantSignal.editConstantSignal(contents, { + deleteOnCancel: false, + }); + return STOP_PROPAGATION; + } else if (button === enumMouseButton.right) { + this.root.logic.tryDeleteBuilding(contents); + return STOP_PROPAGATION; + } + } + } + } +} diff --git a/src/js/game/systems/constant_signal.js b/src/js/game/systems/constant_signal.js index aaf31a19..d698c1d5 100644 --- a/src/js/game/systems/constant_signal.js +++ b/src/js/game/systems/constant_signal.js @@ -17,7 +17,9 @@ export class ConstantSignalSystem extends GameSystemWithFilter { constructor(root) { super(root, [ConstantSignalComponent]); - this.root.signals.entityManuallyPlaced.add(this.querySigalValue, this); + this.root.signals.entityManuallyPlaced.add(entity => + this.editConstantSignal(entity, { deleteOnCancel: true }) + ); } update() { @@ -33,8 +35,10 @@ export class ConstantSignalSystem extends GameSystemWithFilter { /** * Asks the entity to enter a valid signal code * @param {Entity} entity + * @param {object} param0 + * @param {boolean=} param0.deleteOnCancel */ - querySigalValue(entity) { + editConstantSignal(entity, { deleteOnCancel = true }) { if (!entity.components.ConstantSignal) { return; } @@ -110,26 +114,28 @@ export class ConstantSignalSystem extends GameSystemWithFilter { dialog.valueChosen.add(closeHandler); // When cancelled, destroy the entity again - dialog.buttonSignals.cancel.add(() => { - if (!this.root || !this.root.entityMgr) { - // Game got stopped - return; - } + if (deleteOnCancel) { + dialog.buttonSignals.cancel.add(() => { + if (!this.root || !this.root.entityMgr) { + // Game got stopped + return; + } - const entityRef = this.root.entityMgr.findByUid(uid, false); - if (!entityRef) { - // outdated - return; - } + const entityRef = this.root.entityMgr.findByUid(uid, false); + if (!entityRef) { + // outdated + return; + } - const constantComp = entityRef.components.ConstantSignal; - if (!constantComp) { - // no longer interesting - return; - } + const constantComp = entityRef.components.ConstantSignal; + if (!constantComp) { + // no longer interesting + return; + } - this.root.logic.tryDeleteBuilding(entityRef); - }); + this.root.logic.tryDeleteBuilding(entityRef); + }); + } } /** diff --git a/version b/version index cb174d58..d2d61a7e 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.2.1 \ No newline at end of file +1.2.2 \ No newline at end of file From 944b3c011cca81e8b66fdc674c105c17526cf2a2 Mon Sep 17 00:00:00 2001 From: Daan Breur Date: Mon, 7 Dec 2020 12:48:30 +0100 Subject: [PATCH 04/42] Added layersupport to waypoints!! (#703) * Added layersupport to waypoints!! It will now save what layer its made on! * Added Migrator for 1006 to 1007 * Corrected Version Number * Updated Comment * Changed HUB Layer to be hardcoded --- src/js/game/hud/parts/waypoints.js | 9 ++++- src/js/savegame/savegame.js | 8 ++++- .../savegame/savegame_interface_registry.js | 2 ++ src/js/savegame/schemas/1007.js | 34 +++++++++++++++++++ src/js/savegame/schemas/1007.json | 5 +++ 5 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 src/js/savegame/schemas/1007.js create mode 100644 src/js/savegame/schemas/1007.json diff --git a/src/js/game/hud/parts/waypoints.js b/src/js/game/hud/parts/waypoints.js index a6f37b93..c0f94271 100644 --- a/src/js/game/hud/parts/waypoints.js +++ b/src/js/game/hud/parts/waypoints.js @@ -1,6 +1,7 @@ import { makeOffscreenBuffer } from "../../../core/buffer_utils"; import { globalConfig, THIRDPARTY_URLS } from "../../../core/config"; import { DrawParameters } from "../../../core/draw_parameters"; +import { gMetaBuildingRegistry } from "../../../core/global_registries"; import { Loader } from "../../../core/loader"; import { DialogWithForm } from "../../../core/modal_dialog_elements"; import { FormElementInput } from "../../../core/modal_dialog_forms"; @@ -16,8 +17,10 @@ import { import { Vector } from "../../../core/vector"; import { T } from "../../../translations"; import { BaseItem } from "../../base_item"; +import { MetaHubBuilding } from "../../buildings/hub"; import { enumMouseButton } from "../../camera"; import { KEYMAPPINGS } from "../../key_action_mapper"; +import { layers } from "../../root"; import { ShapeDefinition } from "../../shape_definition"; import { BaseHUDPart } from "../base_hud_part"; import { DynamicDomAttach } from "../dynamic_dom_attach"; @@ -26,7 +29,8 @@ import { enumNotificationType } from "./notifications"; /** @typedef {{ * label: string | null, * center: { x: number, y: number }, - * zoomLevel: number + * zoomLevel: number, + * layer: Layer, * }} Waypoint */ /** @@ -98,6 +102,7 @@ export class HUDWaypoints extends BaseHUDPart { label: null, center: { x: 0, y: 0 }, zoomLevel: 3, + layer: gMetaBuildingRegistry.findByClass(MetaHubBuilding).getLayer(), }, ]; @@ -228,6 +233,7 @@ export class HUDWaypoints extends BaseHUDPart { * @param {Waypoint} waypoint */ moveToWaypoint(waypoint) { + this.root.currentLayer = waypoint.layer; this.root.camera.setDesiredCenter(new Vector(waypoint.center.x, waypoint.center.y)); this.root.camera.setDesiredZoom(waypoint.zoomLevel); } @@ -326,6 +332,7 @@ export class HUDWaypoints extends BaseHUDPart { label, center: { x: position.x, y: position.y }, zoomLevel: this.root.camera.zoomLevel, + layer: this.root.currentLayer, }); this.sortWaypoints(); diff --git a/src/js/savegame/savegame.js b/src/js/savegame/savegame.js index 0ad630f6..3fea2d5e 100644 --- a/src/js/savegame/savegame.js +++ b/src/js/savegame/savegame.js @@ -11,6 +11,7 @@ import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1004 } from "./schemas/1004"; import { SavegameInterface_V1005 } from "./schemas/1005"; import { SavegameInterface_V1006 } from "./schemas/1006"; +import { SavegameInterface_V1007 } from "./schemas/1007"; const logger = createLogger("savegame"); @@ -51,7 +52,7 @@ export class Savegame extends ReadWriteProxy { * @returns {number} */ static getCurrentVersion() { - return 1006; + return 1007; } /** @@ -120,6 +121,11 @@ export class Savegame extends ReadWriteProxy { data.version = 1006; } + if (data.version === 1006) { + SavegameInterface_V1007.migrate1006to1007(data); + data.version = 1007; + } + return ExplainedResult.good(); } diff --git a/src/js/savegame/savegame_interface_registry.js b/src/js/savegame/savegame_interface_registry.js index 07b5353c..96389c50 100644 --- a/src/js/savegame/savegame_interface_registry.js +++ b/src/js/savegame/savegame_interface_registry.js @@ -7,6 +7,7 @@ import { SavegameInterface_V1003 } from "./schemas/1003"; import { SavegameInterface_V1004 } from "./schemas/1004"; import { SavegameInterface_V1005 } from "./schemas/1005"; import { SavegameInterface_V1006 } from "./schemas/1006"; +import { SavegameInterface_V1007 } from "./schemas/1007"; /** @type {Object.} */ export const savegameInterfaces = { @@ -17,6 +18,7 @@ export const savegameInterfaces = { 1004: SavegameInterface_V1004, 1005: SavegameInterface_V1005, 1006: SavegameInterface_V1006, + 1007: SavegameInterface_V1007, }; const logger = createLogger("savegame_interface_registry"); diff --git a/src/js/savegame/schemas/1007.js b/src/js/savegame/schemas/1007.js new file mode 100644 index 00000000..f6b1d194 --- /dev/null +++ b/src/js/savegame/schemas/1007.js @@ -0,0 +1,34 @@ +import { createLogger } from "../../core/logging.js"; +import { SavegameInterface_V1006 } from "./1006.js"; + +const schema = require("./1007.json"); +const logger = createLogger("savegame_interface/1007"); + +export class SavegameInterface_V1007 extends SavegameInterface_V1006 { + getVersion() { + return 1007; + } + + getSchemaUncached() { + return schema; + } + + /** + * @param {import("../savegame_typedefs.js").SavegameData} data + */ + static migrate1006to1007(data) { + logger.log("Migrating 1006 to 1007"); + const dump = data.dump; + if (!dump) { + return true; + } + + const waypoints = dump.waypoints.waypoints; + + // set waypoint layer to "regular" + for (let i = 0; i < waypoints.length; ++i) { + const waypoint = waypoints[i]; + waypoint.layer = "regular"; + } + } +} diff --git a/src/js/savegame/schemas/1007.json b/src/js/savegame/schemas/1007.json new file mode 100644 index 00000000..6682f615 --- /dev/null +++ b/src/js/savegame/schemas/1007.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "required": [], + "additionalProperties": true +} From f5032a02ce4ebd05c2e57929226de2980f39cbe0 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 12:57:49 +0100 Subject: [PATCH 05/42] Add layersupport for waypoints --- res/ui/icons/waypoint_wires.png | Bin 0 -> 1312 bytes res_raw/sprites/misc/waypoint_wires.png | Bin 0 -> 1312 bytes src/css/ingame_hud/waypoints.scss | 6 ++++++ src/js/changelog.js | 5 ++++- src/js/game/hud/parts/waypoints.js | 19 +++++++++++++------ 5 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 res/ui/icons/waypoint_wires.png create mode 100644 res_raw/sprites/misc/waypoint_wires.png diff --git a/res/ui/icons/waypoint_wires.png b/res/ui/icons/waypoint_wires.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d3fd2833c8d60a235b1d43989a836ba2211745 GIT binary patch literal 1312 zcmV+*1>gFKP)rKiOA4h{QB$;TG=dAG zs8|&jf)quR(o$WBby2L{L~*Br6$OJk3st0GmK8yKC89M&7nP=Hn_5kpKw?uHdR*K| z7^ZXQ_0OI8o&STgxzBUY+w}ADjbt%aJkLA?xpnRQH zmm1~pyrXirib#K&3}qQ$v%|7)N|U%O12hfwESW^46Sz8S{s!_T;W`nyB__=YRhB|KT$wR%9A5#)W73QR z!>anX|LYGEZLuT3-9TFoOW`vybu}W})96wM@cx@mS*-OBum^ZYJ?*Q+(hwNJ{O^NY z1nyGRv7GCj1J>qTroZe|^kT+!Sa;g%$Q#^msjpF)0#>Eeg&mf{MuEB`1FXYLM0qxT z9@v>ympU+L=@|!9buoEIN{*`j0c;kLdw@G~C~^k)SXIxZ%_x}PS(poXtE&FksAkQM z0B3>jK==hFzfm- zwic;KS=2BNP#7ES{pD%`TKQw$TaXK&=KjGhPbM$frCxZfIJPcJFx+LhS*KD zc8CuGs}mc*GeU>gjjCdZF#?;q%adRfB2otifCqs-%)w|6ZVx%ruoAc`VcJiDN0&Bu z6B*$DfQVcRYyoZuo+J8vV~?u70TnWU9}(#V-UsftB$)&HRQ1nFUXW1L)2jLa@S-J2 z8}KSrvb{8rqlmgoVhItNUIM0K}>0Yqd4a7{?mY)cpbxDm5l4ss^zMad4#HJ7C8?bnH= zrY+3XJ%0s`J7|1A@UNx55!LkX1zaAO=2o^Cb^%`kD?*Ye@Cr1~hDI)U3!Z*pA7%r` z#z*R1{#d#u*9B}R{vktOqe@25E+WGj^R5JL1~wA^2I3cBmp@ z!aVblxV3`+aI_t`A;zK)0k6fR$;uRPZ^pcfz+}`{wz0epQ1gl^@?vCy*I13Ps3ly? zY!!FdN?HT_>_iL0xWlroq%we-cLTN!#zr~dsN6`h41p(sw=tWHc`yn*gE_P;oc{p% WOnDQHqQ9&F0000gFKP)rKiOA4h{QB$;TG=dAG zs8|&jf)quR(o$WBby2L{L~*Br6$OJk3st0GmK8yKC89M&7nP=Hn_5kpKw?uHdR*K| z7^ZXQ_0OI8o&STgxzBUY+w}ADjbt%aJkLA?xpnRQH zmm1~pyrXirib#K&3}qQ$v%|7)N|U%O12hfwESW^46Sz8S{s!_T;W`nyB__=YRhB|KT$wR%9A5#)W73QR z!>anX|LYGEZLuT3-9TFoOW`vybu}W})96wM@cx@mS*-OBum^ZYJ?*Q+(hwNJ{O^NY z1nyGRv7GCj1J>qTroZe|^kT+!Sa;g%$Q#^msjpF)0#>Eeg&mf{MuEB`1FXYLM0qxT z9@v>ympU+L=@|!9buoEIN{*`j0c;kLdw@G~C~^k)SXIxZ%_x}PS(poXtE&FksAkQM z0B3>jK==hFzfm- zwic;KS=2BNP#7ES{pD%`TKQw$TaXK&=KjGhPbM$frCxZfIJPcJFx+LhS*KD zc8CuGs}mc*GeU>gjjCdZF#?;q%adRfB2otifCqs-%)w|6ZVx%ruoAc`VcJiDN0&Bu z6B*$DfQVcRYyoZuo+J8vV~?u70TnWU9}(#V-UsftB$)&HRQ1nFUXW1L)2jLa@S-J2 z8}KSrvb{8rqlmgoVhItNUIM0K}>0Yqd4a7{?mY)cpbxDm5l4ss^zMad4#HJ7C8?bnH= zrY+3XJ%0s`J7|1A@UNx55!LkX1zaAO=2o^Cb^%`kD?*Ye@Cr1~hDI)U3!Z*pA7%r` z#z*R1{#d#u*9B}R{vktOqe@25E+WGj^R5JL1~wA^2I3cBmp@ z!aVblxV3`+aI_t`A;zK)0k6fR$;uRPZ^pcfz+}`{wz0epQ1gl^@?vCy*I13Ps3ly? zY!!FdN?HT_>_iL0xWlroq%we-cLTN!#zr~dsN6`h41p(sw=tWHc`yn*gE_P;oc{p% WOnDQHqQ9&F0000} @@ -192,7 +196,10 @@ export class HUDWaypoints extends BaseHUDPart { const waypoint = this.waypoints[i]; const label = this.getWaypointLabel(waypoint); - const element = makeDiv(this.waypointsListElement, null, ["waypoint"]); + const element = makeDiv(this.waypointsListElement, null, [ + "waypoint", + "layer--" + waypoint.layer, + ]); if (ShapeDefinition.isValidShortKey(label)) { const canvas = this.getWaypointCanvas(waypoint); @@ -544,7 +551,7 @@ export class HUDWaypoints extends BaseHUDPart { const iconOpacity = 1 - this.currentCompassOpacity; if (iconOpacity > 0.01) { context.globalAlpha = iconOpacity; - this.waypointSprite.drawCentered(context, dims / 2, dims / 2, dims * 0.7); + this.waypointSprites.regular.drawCentered(context, dims / 2, dims / 2, dims * 0.7); context.globalAlpha = 1; } } @@ -623,11 +630,11 @@ export class HUDWaypoints extends BaseHUDPart { } // Render the small icon on the left - this.waypointSprite.drawCentered( + this.waypointSprites[waypoint.layer].drawCentered( parameters.context, bounds.x + contentPaddingX, bounds.y + bounds.h / 2, - bounds.h * 0.7 + bounds.h * 0.6 ); } From ca1af5a5051428f3228f4aafae5c781adde78e51 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 13:04:58 +0100 Subject: [PATCH 06/42] Allow cycling backwards, closes #790 --- src/js/changelog.js | 1 + src/js/game/hud/parts/base_toolbar.js | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index b13ccf31..76498a7c 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -5,6 +5,7 @@ export const CHANGELOG = [ entries: [ "Added the ability to edit constant signals by left clicking them", "You can now add markers in the wire layer (partially by daanbreur)", + "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by emeraldblock)", ], }, { diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js index a0e2a49f..b3f5abfc 100644 --- a/src/js/game/hud/parts/base_toolbar.js +++ b/src/js/game/hud/parts/base_toolbar.js @@ -1,6 +1,6 @@ import { gMetaBuildingRegistry } from "../../../core/global_registries"; -import { Signal, STOP_PROPAGATION } from "../../../core/signal"; -import { makeDiv } from "../../../core/utils"; +import { STOP_PROPAGATION } from "../../../core/signal"; +import { makeDiv, safeModulo } from "../../../core/utils"; import { KEYMAPPINGS } from "../../key_action_mapper"; import { MetaBuilding } from "../../meta_building"; import { GameRoot } from "../../root"; @@ -161,8 +161,12 @@ export class HUDBaseToolbar extends BaseHUDPart { let newBuildingFound = false; let newIndex = this.lastSelectedIndex; - for (let i = 0; i < this.primaryBuildings.length; ++i, ++newIndex) { - newIndex %= this.primaryBuildings.length; + const direction = this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier).pressed + ? -1 + : 1; + + for (let i = 0; i <= this.primaryBuildings.length; ++i) { + newIndex = safeModulo(newIndex + direction, this.primaryBuildings.length); const metaBuilding = gMetaBuildingRegistry.findByClass(this.primaryBuildings[newIndex]); const handle = this.buildingHandles[metaBuilding.id]; if (!handle.selected && handle.unlocked) { From f620706ed76488a1eafb5f1a04d8d036f2319c0d Mon Sep 17 00:00:00 2001 From: LeopoldTal Date: Mon, 7 Dec 2020 13:06:54 +0100 Subject: [PATCH 07/42] Format all upgrade tiers as Roman numerals (#830) * format all upgrade tiers as Roman numerals * show upgrade tiers 50+ as Arabic numerals --- src/js/core/utils.js | 75 +++++++++++++++++++++++++++++--------------- 1 file changed, 49 insertions(+), 26 deletions(-) diff --git a/src/js/core/utils.js b/src/js/core/utils.js index 50657841..6eed9c34 100644 --- a/src/js/core/utils.js +++ b/src/js/core/utils.js @@ -723,29 +723,8 @@ export function startFileChoose(acceptedType = ".bin") { }); } -const romanLiterals = [ - "0", // NULL - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "XIII", - "XIV", - "XV", - "XVI", - "XVII", - "XVIII", - "XIX", - "XX", -]; +const MAX_ROMAN_NUMBER = 49; +const romanLiteralsCache = ["0"]; /** * @@ -754,8 +733,52 @@ const romanLiterals = [ */ export function getRomanNumber(number) { number = Math.max(0, Math.round(number)); - if (number < romanLiterals.length) { - return romanLiterals[number]; + if (romanLiteralsCache[number]) { + return romanLiteralsCache[number]; } - return String(number); + + if (number > MAX_ROMAN_NUMBER) { + return String(number); + } + + function formatDigit(digit, unit, quintuple, decuple) { + switch (digit) { + case 0: + return ""; + case 1: // I + return unit; + case 2: // II + return unit + unit; + case 3: // III + return unit + unit + unit; + case 4: // IV + return unit + quintuple; + case 9: // IX + return unit + decuple; + default: + // V, VI, VII, VIII + return quintuple + formatDigit(digit - 5, unit, quintuple, decuple); + } + } + + let thousands = Math.floor(number / 1000); + let thousandsPart = ""; + while (thousands > 0) { + thousandsPart += "M"; + thousands -= 1; + } + + const hundreds = Math.floor((number % 1000) / 100); + const hundredsPart = formatDigit(hundreds, "C", "D", "M"); + + const tens = Math.floor((number % 100) / 10); + const tensPart = formatDigit(tens, "X", "L", "C"); + + const units = number % 10; + const unitsPart = formatDigit(units, "I", "V", "X"); + + const formatted = thousandsPart + hundredsPart + tensPart + unitsPart; + + romanLiteralsCache[number] = formatted; + return formatted; } From bcaf24c49f22496e65d0d7661b2f5fd52137db7b Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 13:08:19 +0100 Subject: [PATCH 08/42] Update changelog --- src/js/changelog.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/changelog.js b/src/js/changelog.js index 76498a7c..0354ec27 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -6,6 +6,7 @@ export const CHANGELOG = [ "Added the ability to edit constant signals by left clicking them", "You can now add markers in the wire layer (partially by daanbreur)", "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by emeraldblock)", + "Upgrade numbers now use roman numerals until tier 50 (by LeopoldTal)", ], }, { From 503e643fd45bd242b0396ee7e87ccd3921a34064 Mon Sep 17 00:00:00 2001 From: artemisSystem <39034386+artemisSystem@users.noreply.github.com> Date: Mon, 7 Dec 2020 13:11:41 +0100 Subject: [PATCH 09/42] add separate unpin button to pinned shapes (#839) Co-authored-by: 3ddy <39034386+3ddyy@users.noreply.github.com> --- src/css/ingame_hud/pinned_shapes.scss | 23 ++++++++++++++++++++++- src/js/game/hud/parts/pinned_shapes.js | 7 +++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/css/ingame_hud/pinned_shapes.scss b/src/css/ingame_hud/pinned_shapes.scss index 671f5aa5..6f44522b 100644 --- a/src/css/ingame_hud/pinned_shapes.scss +++ b/src/css/ingame_hud/pinned_shapes.scss @@ -19,7 +19,6 @@ color: #333438; &.removable { - cursor: pointer; pointer-events: all; } @@ -86,6 +85,28 @@ } } + > .unpinButton { + @include S(width, 8px); + @include S(height, 8px); + position: absolute; + opacity: 0.7; + @include S(top, 3px); + @include S(left, -7px); + @include DarkThemeInvert; + @include IncreasedClickArea(2px); + transition: opacity 0.12s ease-in-out; + z-index: 100; + + &:hover { + opacity: 0.8; + } + + & { + /* @load-async */ + background: uiResource("icons/pin.png") center center / 95% no-repeat; + } + } + &.goal, &.blueprint { .amountLabel::after { diff --git a/src/js/game/hud/parts/pinned_shapes.js b/src/js/game/hud/parts/pinned_shapes.js index 542a38b2..bf1f7525 100644 --- a/src/js/game/hud/parts/pinned_shapes.js +++ b/src/js/game/hud/parts/pinned_shapes.js @@ -217,11 +217,14 @@ export class HUDPinnedShapes extends BaseHUDPart { let detector = null; if (canUnpin) { + const unpinButton = document.createElement("button"); + unpinButton.classList.add("unpinButton"); + element.appendChild(unpinButton); element.classList.add("removable"); - detector = new ClickDetector(element, { + detector = new ClickDetector(unpinButton, { consumeEvents: true, preventDefault: true, - targetOnly: false, + targetOnly: true, }); detector.click.add(() => this.unpinShape(key)); } else { From 2bbecb37fc2668410c00399b8fba67e84f995ed6 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Mon, 7 Dec 2020 18:28:18 +0100 Subject: [PATCH 10/42] Update base-nl.yaml (#887) * Update base-nl.yaml global.suffix.thousands :: should be uppercase as is stands for Kilo, which is shortened to K global.infinite :: `oneindig` is the translation for infinite, not sure if keeping it as `inf` was on purpose. global.time.* :: consistency mainMenu.changelog :: - mainMenu.continue :: technically a more correct translation dialogs.buttons.restart :: consistency dialogs.gameLoadFailure.title :: seems better to me I will try to translate some more in the future, but my patience has run out at this moment :P * Update base-nl.yaml * Update base-nl.yaml --- translations/base-nl.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index 09192564..c8933389 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -53,7 +53,7 @@ global: thousandsDivider: . decimalSeparator: "," suffix: - thousands: k + thousands: K millions: M billions: B trillions: T @@ -61,11 +61,11 @@ global: time: oneSecondAgo: een seconde geleden xSecondsAgo: seconden geleden - oneMinuteAgo: een minuut geleden + oneMinuteAgo: één minuut geleden xMinutesAgo: minuten geleden - oneHourAgo: een uur geleden + oneHourAgo: één uur geleden xHoursAgo: uren geleden - oneDayAgo: een dag geleden + oneDayAgo: één dag geleden xDaysAgo: dagen geleden secondsShort: s minutesAndSecondsShort: m s @@ -83,7 +83,7 @@ demoBanners: intro: Koop de standalone om alle functies te ontgrendelen! mainMenu: play: Spelen - changelog: Changelog + changelog: Wijzigingenlijst importSavegame: Importeren openSourceHint: Dit spel is open source! discordLink: Officiële Discord-server (Engelstalig) @@ -103,7 +103,7 @@ dialogs: delete: Verwijder cancel: Annuleer later: Later - restart: Herstarten + restart: Herstart reset: Reset getStandalone: Koop de Standalone deleteGame: Ik weet wat ik doe @@ -117,7 +117,7 @@ dialogs: title: Savegame geïmporteerd text: Je savegame is succesvol geïmporteerd. gameLoadFailure: - title: Het spel is kapot + title: Corrupte savegame text: "Het laden van je savegame is mislukt:" confirmSavegameDelete: title: Bevestig het verwijderen From 3ada0d577449ab3ae68c49573d4260a09f3195df Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 18:30:33 +0100 Subject: [PATCH 11/42] Allow to cycle variants backwards with SHIFT + T, other fixes and misc stuff --- res/ui/icons/unpin_shape.png | Bin 0 -> 731 bytes shapez.code-workspace | 7 ++++++- src/css/ingame_hud/pinned_shapes.scss | 2 +- src/js/changelog.js | 3 +++ src/js/game/hud/parts/building_placer_logic.js | 8 +++++++- 5 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 res/ui/icons/unpin_shape.png diff --git a/res/ui/icons/unpin_shape.png b/res/ui/icons/unpin_shape.png new file mode 100644 index 0000000000000000000000000000000000000000..b1918778bdd805b6267af7e43070f7dd3bbd1cb2 GIT binary patch literal 731 zcmV<10wn#3P)2Ue zs-%D}DU&YmfGC3yN)>)%JH_x7fPZFoXJ+r+BW>kb>~n03-Md~0yZ}A|XTWdZ7BA7jqVP zj<866LikE>vtW_O2r=>#;0oYp#6nLIV&x~m4}eWz6uE=-2r2R-U_(3Z0prLW?|@+q zn?#1h%Z~}pkJuqT!av}BNt;Ac-uW@`Vb&k=7$KXy@Dw4tyzmgAn7ptYp}4$Ajj-MH zi4v$LFDylS?Md)IHX(mFK z)7#D?SQuS*7QuqNs2;(Ryr>qzqP!>`!Lqz47QutO$R5FyyvP>8qr7Mx!Lz(*9N{g~ z@2i_7zgxqmA-lv!xCPz-e2?70y1Yn<@D0MPV||equ@U}4xNg@cc@Y!g65#Wk1zzRF zq6kL-YfQg=*1Noz72yI{)uLCxSK#_#@h{+A Date: Mon, 7 Dec 2020 18:32:35 +0100 Subject: [PATCH 12/42] Fixed french translation (#950) * very small fix * removed colons for steam text (line 14 and 24) * proofread by krop * final fix. If anyone else wants to proofread? * Update base-fr.yaml --- translations/base-fr.yaml | 134 +++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 6af2f86e..a84820c3 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -15,7 +15,7 @@ steamPage: En achetant le jeu sur Steam, vous aurez accès à la version complète, mais vous pouvez aussi jouer à une démo sur shapez.io et vous décider ensuite ! title_advantages: Avantages de la version complète advantages: - - 12 nouveaux niveaux avec 26 niveaux en tout + - 12 nouveaux niveaux avec 26 niveaux en tout ! - 18 nouveaux bâtiments pour automatiser entièrement votre usine ! - 20 niveaux d’amélioration pour s’amuser pendant des heures ! - Les câbles ouvrent une toute nouvelle dimension ! @@ -25,7 +25,7 @@ steamPage: - Me soutenir ! ❤️ title_future: Prévu planned: - - Bibliothèque de patrons + - Bibliothèque de plans - Succès sur Steam - Mode réflexion - Mini-carte @@ -153,10 +153,10 @@ dialogs: desc: "Voici les changements depuis votre dernière session de jeu :" upgradesIntroduction: title: Débloquer les améliorations - desc: Toutes les formes que vous produisez peuvent être utilisées pour débloquer - des améliorations — Ne détruisez pas vos anciennes - usines ! L’onglet des améliorations se trouve dans le coin - supérieur droit de l’écran. + desc: Ne détruisez pas vos anciennes usines ! Toutes les + formes que vous produisez peuvent être utilisées pour débloquer des + améliorations. L’onglet des améliorations se trouve dans le coin supérieur + droit de l’écran. massDeleteConfirm: title: Confirmer la suppression desc: Vous allez supprimer beaucoup de bâtiments ( pour être précis) ! @@ -171,7 +171,7 @@ dialogs: la couper ? blueprintsNotUnlocked: title: Pas encore débloqué - desc: Terminez le niveau 12 pour avoir accès aux patrons ! + desc: Terminez le niveau 12 pour avoir accès aux plans ! keybindingsIntroduction: title: Raccourcis utiles desc: 'Le jeu a de nombreux raccourcis facilitant la construction de grandes @@ -223,7 +223,7 @@ ingame: placeBuilding: Placer un bâtiment createMarker: Créer une balise delete: Supprimer - pasteLastBlueprint: Copier le dernier patron + pasteLastBlueprint: Copier le dernier plan lockBeltDirection: Utiliser le planificateur de convoyeurs plannerSwitchSide: Inverser la direction du planificateur cutSelection: Couper @@ -248,8 +248,8 @@ ingame: speed: Vitesse range: Portée storage: Espace de stockage - oneItemPerSecond: 1 forme ⁄ s - itemsPerSecond:  formes ⁄ s + oneItemPerSecond: 1 objet ⁄ s + itemsPerSecond:  objets ⁄ s itemsPerSecondDouble: (×2) tiles: cases levelCompleteNotification: @@ -259,8 +259,8 @@ ingame: buttonNextLevel: Niveau suivant notifications: newUpgrade: Une nouvelle amélioration est disponible ! - gameSaved: Votre partie a été sauvegardée. - freeplayLevelComplete: Niveau  complet ! + gameSaved: Votre partie a bien été sauvegardée. + freeplayLevelComplete: Niveau  terminé ! shop: title: Améliorations buttonUnlock: Améliorer @@ -270,14 +270,14 @@ ingame: title: Statistiques dataSources: stored: - title: Stocké + title: Stock description: Affiche le nombre de formes stockées dans votre bâtiment central. produced: - title: Produit + title: Production description: Affiche toutes les formes que votre usine produit, y compris les formes intermédiaires. delivered: - title: Livré + title: Arrivage description: Affiche les formes qui ont été livrées dans votre bâtiment central. noShapesProduced: Aucune forme produite pour le moment. shapesDisplayUnits: @@ -333,16 +333,16 @@ ingame: quatre extracteurs
et connectez-les au centre.

PS : Gardez MAJ enfoncé en plaçant un convoyeur pour activer le planificateur." - 21_1_place_quad_painter: Placez un quadruple peintre et + 21_1_place_quad_painter: Placez une station de peinture quadruple et connectez des cercles et des couleurs blanche et rouge ! 21_2_switch_to_wires: Basculez sur le calque de câblage en appuyant sur E.

Puis connectez les quatre - entrées du peintre avec des câbles ! + entrées de la station de peinture quadruple avec des câbles ! 21_3_place_button: Génial ! Maintenant, placez un interrupteur et connectez-le avec des câbles ! 21_4_press_button: "Appuyez sur le bouton pour qu’il émette un - signal vrai et active le peintre.

PS : Vous + signal vrai et active la station de peinture quadruple.

PS : Vous n’êtes pas obligé de connecter toutes les entrées ! Essayez d’en brancher seulement deux." connectedMiners: @@ -398,7 +398,7 @@ buildings: hub: deliver: Livrez toUnlock: pour débloquer - levelShortcut: NV + levelShortcut: Niv endOfDemo: Fin de la démo belt: default: @@ -419,9 +419,9 @@ buildings: description: Permet de faire passer des ressources sous les bâtiments et les convoyeurs. tier2: - name: Tunnel niveau II + name: Tunnel Niv II description: Permet de faire passer des ressources sous les bâtiments et les - convoyeurs. + convoyeurs deux fois plus loin qu'un tunnel simple. balancer: default: name: Répartiteur @@ -462,9 +462,9 @@ buildings: description: Tourne une forme de 180 degrés. stacker: default: - name: Combineur - description: Combine deux formes. Si elles ne peuvent pas être combinées, la - forme de droite est placée sur la forme de gauche. + name: Assembleur + description: Assemble les formes à l'entrée, de préférence sur la même couche. + Sinon, la forme de droite sera placée sur la forme de gauche mixer: default: name: Mélangeur de couleur @@ -472,20 +472,20 @@ buildings: couleurs. painter: default: - name: Peintre - description: Colorie entièrement la forme venant de gauche avec la couleur + name: Station de peinture + description: Peint entièrement la forme venant de gauche avec la couleur entrant en haut. mirrored: - name: Peintre - description: Colorie entièrement la forme venant de gauche avec la couleur + name: Station de peinture + description: Peint entièrement la forme venant de gauche avec la couleur entrant en bas. double: - name: Peintre (double) - description: Colorie les deux formes venant de gauche avec la couleur entrant en - haut. + name: Station de peinture (double) + description: Peint entièrement les deux formes venant de gauche avec la + couleur entrant en haut. quad: - name: Peintre (quadruple) - description: Colorie chaque quadrant d’une forme avec une couleur différente. + name: Station de peinture (quadruple) + description: Peint chaque quadrant d’une forme avec une couleur différente. Seules les entrées recevant un signal vrai sur le calque de câblage seront peintes ! trash: @@ -515,7 +515,7 @@ buildings: description: Permet de croiser deux câbles sans les connecter entre eux. constant_signal: default: - name: Constante + name: Générateur constant description: Émet un signal constant, qui peut être une forme, une couleur ou un booléen (1 / 0). lever: @@ -530,7 +530,7 @@ buildings: description: Émet un “1” booléen si les deux entrées sont vraies (une forme, couleur ou “1”). not: - name: Porte INVERSEUR + name: Porte NON description: Émet un “1” booléen si l’entrée n’est pas vraie (une forme, couleur ou “1”). xor: @@ -574,8 +574,8 @@ buildings: comparator: default: name: Comparateur - description: Émet un “1” booléen si les deux entrées sont exactement les mêmes. - Peut comparer des formes, des couleurs, et des booléens. + description: Émet “1” si les deux entrées sont exactement les mêmes, sinon + émet “0”. Peut comparer des formes, des couleurs, et des booléens. virtual_processor: default: name: Découpeur virtuel @@ -588,10 +588,10 @@ buildings: description: Renvoie la couche supérieure à droite, et les couches restantes à gauche. stacker: - name: Combineur virtuel - description: Combine virtuellement la forme de droite sur celle de gauche. + name: Assembleur virtuel + description: Assemble virtuellement la forme de droite sur celle de gauche. painter: - name: Peintre virtuel + name: Station de peinture virtuelle description: Peint virtuellement la forme du bas avec la couleur de droite. item_producer: default: @@ -611,23 +611,23 @@ storyRewards: desc: Le pivoteur a été débloqué ! Il pivote les formes de 90 degrés vers la droite. reward_painter: - title: Peintre - desc: "Le peintre a été débloqué. Extrayez des pigments de - couleur (comme vous le faites avec les formes) et combinez-les avec - une forme dans un peintre pour les colorier !

PS : Si vous - êtes daltonien, il y a un mode daltonien - paramétrable dans les préférences !" + title: Peinture + desc: "La station de peinture a été débloquée. Extrayez + des pigments de couleur (comme vous le faites avec les formes) et + combinez-les avec une forme dans une station pour les peindre ! +

PS : Si vous êtes daltonien, il y a un mode + daltonien paramétrable dans les préférences !" reward_mixer: title: Mélangeur de couleurs desc: Le mélangeur a été débloqué. Combinez deux couleurs en utilisant la synthèse additive des couleurs avec ce bâtiment ! reward_stacker: - title: Combineur - desc: Vous pouvez maintenant combiner deux formes avec le - combineur ! Les deux entrées sont combinées et si + title: Assembleur + desc: Vous pouvez maintenant assemblées deux formes avec le + combineur ! Les deux entrées sont assemblées,si elles peuvent être mises l’une à côté de l’autre, elles sont - fusionnées. Sinon, la forme de droite est + fusionnées, sinon, la forme de droite est placée au-dessus de la forme de gauche. reward_balancer: title: Répartiteur @@ -676,35 +676,35 @@ storyRewards: permet de découper les formes en quatre parties plutôt que seulement deux ! reward_painter_double: - title: Double peintre - desc: Vous avez débloqué une variante du peintre — Elle - fonctionne comme le peintre de base, mais elle permet de traiter - deux formes à la fois en ne consommant qu’une + title: Station de peinture double + desc: Vous avez débloqué une variante de la station de peinture + — Elle fonctionne comme la station de peinture de base, mais elle permet de + traiter deux formes à la fois en ne consommant qu’une couleur au lieu de deux ! reward_storage: - title: Tampon de stockage + title: Stockage desc: Vous avez débloqué le bâtiment de stockage. Il permet de stocker des objets jusqu’à une certaine limite !

Il priorise la sortie gauche, vous pouvez donc aussi l’utiliser comme drain de débordement ! reward_blueprints: - title: Patrons + title: Plans desc: Vous pouvez maintenant copier et coller des parties de votre usine ! Sélectionnez une zone (Appuyez sur CTRL, et sélectionnez avec votre souris), et appuyez sur “C” pour la copier.

Coller n’est pas gratuit, vous - devez produire des formes de patrons pour vous le + devez produire des formes de plans pour vous le payer (les mêmes que celles que vous venez de livrer). reward_rotater_180: title: Retourneur desc: Vous avez débloqué le retourneur ! Il permet de faire pivoter une forme de 180 degrés (Surprise ! :D) reward_wires_painter_and_levers: - title: Câbles & quadruple peintre + title: Câbles & station de peinture quadruple desc: "Vous avez débloqué le calque de câblage : C’est un calque au-dessus du calque normal, qui introduit beaucoup de nouvelles mécaniques de jeu !

Pour commencer, je vous - débloque le quadruple peintre. Connectez les + débloque la station de peinture quadruple. Connectez les entrées à peindre sur le calque de câblage.

Pour voir le calque de câblage, appuyez sur E.

PS : Activez les indices dans les paramètres pour voir un tutoriel @@ -724,7 +724,7 @@ storyRewards: le stockage émettent le dernier objet vu ? Essayez de le montrer sur un écran !" reward_constant_signal: - title: Constante + title: Générateur constant desc: Vous avez débloqué l’émetteur de constante sur le calque de câblage ! Vous pouvez par exemple la connecter à des filtres à objets.

La constante peut émettre @@ -735,7 +735,7 @@ storyRewards: desc: "Vous avez débloqué les portes logiques ! Vous n’êtes pas obligé de trouver ça génial, mais en fait c’est super cool !

Avec ces portes, vous pouvez maintenant faire les opérations - booléennes ET, OU, OU-EXCLUSIF et INVERSEUR !

Et la cerise + booléennes ET, OU, OU-EXCLUSIF et NON !

Et la cerise sur le gâteau : je vous donne aussi le transistor !" reward_virtual_processing: @@ -986,9 +986,9 @@ keybindings: miner: Extracteur cutter: Découpeur rotater: Pivoteur - stacker: Combineur + stacker: Assembleur mixer: Mélangeur de couleur - painter: Peintre + painter: Station de peinture trash: Poubelle storage: Stockage wire: Câble @@ -1009,7 +1009,7 @@ keybindings: rotateInverseModifier: "Variante : Pivote à gauche" cycleBuildingVariants: Alterner entre les variantes confirmMassDelete: Confirmer la suppression de la sélection - pasteLastBlueprint: Copier le dernier patron + pasteLastBlueprint: Copier le dernier plan cycleBuildings: Alterner entre les bâtiments lockBeltDirection: Utiliser le planificateur de convoyeurs switchDirectionLockSide: "Planificateur : changer de côté" @@ -1063,7 +1063,7 @@ tips: - La symétrie est la clé ! - Vous pouvez entrelacer différents niveaux de tunnels. - Essayez de construire des usines compactes, cela paiera ! - - Le peintre a une variante en miroir que vous pouvez sélectionner avec + - La station de peinture a une variante en miroir que vous pouvez sélectionner avec T - Avoir les bons ratios de construction maximisera l’efficacité. - Au niveau maximum, 5 extracteurs rempliront un seul convoyeur. @@ -1076,7 +1076,7 @@ tips: orientation. - Pour obtenir du blanc, mélangez les trois couleurs. - Le stockage priorise la première sortie. - - Investissez du temps pour créer des patrons reproductibles, ça vaut le + - Investissez du temps pour créer des plans reproductibles, ça vaut le coup ! - Maintenir CTRL permet de placer plusieurs bâtiments. - Vous pouvez maintenir ALT pour inverser la direction des convoyeurs @@ -1101,7 +1101,7 @@ tips: - Colorez vos formes avant de les découper pour une efficacité maximale. - Avec les modules, l’espace n’est qu’une perception ; une préoccupation pour les hommes mortels. - - Créez une usine de patrons à part. Ils sont importants pour les modules. + - Créez une usine de plans à part. Ils sont importants pour les modules. - Regardez de plus près le mélangeur de couleur et vous aurez la réponse à vos questions. - Utilisez CTRL + clic pour sélectionner une zone. From 6ad8fa5fd409ef0d2c8e099f15d26e2f80706562 Mon Sep 17 00:00:00 2001 From: Emil Date: Mon, 7 Dec 2020 18:33:22 +0100 Subject: [PATCH 13/42] Update base-sv.yaml (#958) More translations and grammar fixes --- translations/base-sv.yaml | 135 +++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 69 deletions(-) diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 8083c8d1..2b7c651d 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -1,19 +1,18 @@ steamPage: shortText: shapez.io är ett spel som går ut på att automatisera skapandet av former med ökande komplexitet inom den oändligt stora världen. - discordLinkShort: Officiel Discord + discordLinkShort: Officiell Discord intro: >- - Shapez.io is a relaxed game in which you have to build factories for the - automated production of geometric shapes. + Shapez.io är att avslappnat spel där man ska bygga fabriker för att automatisera produktionen av geometriska former. - As the level increases, the shapes become more and more complex, and you have to spread out on the infinite map. + Formerna blir svårare och mer komplexa vartefter nivån ökar och du blir tvungen att sprida ut dig över den oändliga kartan. - And as if that wasn't enough, you also have to produce exponentially more to satisfy the demands - the only thing that helps is scaling! + Och som om det inte vore nog så som behöver du samtidigt producera exponentiellt mer för att mätta efterfrågan - den enda lösningar är att skala upp produktionen! - While you only process shapes at the beginning, you have to color them later - for this you have to extract and mix colors! + I början skapar man bara former, men senare behöver du även färga dem - för att uppnå detta behöver du samla och blanda färger! - Buying the game on Steam gives you access to the full version, but you can also play a demo on shapez.io first and decide later! - title_advantages: Standalone Advantages + På Steam kan du köpa den fulla versionen av spelet, men du kan även spela demot på shapez.io först och bestämma dig senare! + title_advantages: Fördelar med fullversionen advantages: - 12 Nya nivåer av totalt 26 nivåer! - 18 Nya byggnader för en fullt automatiserad fabrik! @@ -35,7 +34,7 @@ steamPage: title_open_source: Detta spel har öppen källkod! title_links: Länkar links: - discord: Official Discord + discord: Officiell Discord roadmap: Roadmap subreddit: Subreddit source_code: Källkod (GitHub) @@ -48,8 +47,8 @@ steamPage: Se till och kolla mitt trello board för hela roadmappen! global: loading: Laddar - error: Error - thousandsDivider: . + error: Fel + thousandsDivider: " " decimalSeparator: "," suffix: thousands: k @@ -71,14 +70,14 @@ global: hoursAndMinutesShort: t m xMinutes: minuter keys: - tab: TAB + tab: TABB control: CTRL alt: ALT escape: ESC shift: SKIFT space: MELLANSLAG demoBanners: - title: Demo Version + title: Demo-version intro: Skaffa den fristående versionen för att låsa upp alla funktioner! mainMenu: play: Spela @@ -87,8 +86,8 @@ mainMenu: openSourceHint: Detta spelet har öppen kod! discordLink: Officiell Discord Server helpTranslate: Hjälp till att översätta! - browserWarning: Förlåt, men det är känt att spelet spelar långsamt på din - browser! Skaffa den fristående versionen eller ladda ner Chrome för en + browserWarning: Förlåt, men det är känt att spelet spelar långsamt i din + webbläsare! Skaffa den fristående versionen eller ladda ned Chrome för en bättre upplevelse. savegameLevel: Nivå savegameLevelUnknown: Okänd Nivå @@ -96,7 +95,7 @@ mainMenu: newGame: Nytt spel madeBy: Skapad av subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Namnlöst dialogs: buttons: ok: OK @@ -176,8 +175,8 @@ dialogs: rullband.
" createMarker: title: Ny Markör - desc: Ge det ett meningsfullt namn, du kan också inkludera en kort - nyckel av en form (Som du kan generera här) + desc: Ge det ett meningsfullt namn, du kan också inkludera ett + kortkommando av en form (som du kan generera här) titleEdit: Ändra Markör markerDemoLimit: desc: Du kan endast ha två markörer i demoversionen. Skaffa den fristående @@ -198,7 +197,7 @@ dialogs: editSignal: title: Sätt singal descItems: "Välj en förvald sak:" - descShortKey: ... eller skriv in kort nyckel av en form + descShortKey: ... eller skriv in kortkommando av en form (Som du kan generera här) renameSavegame: title: Byt namn på sparfil @@ -364,7 +363,7 @@ ingame: title: ∞ med sparfiler desc: Så många som du bara vill! upgrades: - title: ∞ Upgrade Tiers + title: 1000 uppgraderingsnivåer desc: This demo version has only 5! markers: title: ∞ med markeringar! @@ -480,87 +479,86 @@ buildings: name: Balancer description: Multifunktionell - Distribuerar alla inflöden till alla utflöden. merger: - name: Merger (Kompakt) - description: Sammansätter två rullband till ett. + name: Merger (kompakt) + description: Sammanfogar två rullband till ett. merger-inverse: - name: Merger (Kompakt) - description: Sammansätter två rullband till ett. + name: Merger (kompakt) + description: Sammanfogar två rullband till ett. splitter: - name: Splitter (Kompakt) - description: Delar ett rullband till två. + name: Splitter (kompakt) + description: Delar upp ett rullband till två. splitter-inverse: - name: Splitter (Kompakt) - description: Delar ett rullband till två. + name: Splitter (kompakt) + description: Delar upp ett rullband till två. storage: default: name: Lagring - description: Lagra överflödiga saker, till en viss mängd. Prioriterar den vänstra - utflödet och kan användas som en överströmningsgrind. + description: Lagra överflödiga saker, till en viss mängd. Prioriterar det vänstra + utflödet och kan användas som en översvämningsgrind. wire_tunnel: default: name: Korsande sladdar description: Tillåter två sladdar att korsa varandra utan att koppla samman. constant_signal: default: - name: Konstant Signal - description: Avger en konstant signal, som kan vara en form, färg eller boolean (1 / 0). + name: Konstant signal + description: Avger en konstant signal, som kan vara en form, färg eller boolesk (1 / 0). lever: default: - name: Signalknapp - description: Kan ställas om till att ge en booleansk singal (1 / 0) på sladdlagret, - vilket kan användas för att kontrollera till exempel ett sakfilter. + name: Brytare + description: Kan ställas att ge en boolesk signal (1 / 0) på kabellagret, + vilket till exempel kan användas för att kontrollera ett sakfilter. logic_gate: default: - name: AND Grind - description: Avger en booleansk "1" om båda inflöden är positiva. (positiva menas med former, - färger eller booleansk "1") + name: AND-grind + description: Avger en boolesk "1" om båda inflödena är positiva. (positiva menas med former, + färger eller boolesk "1") not: - name: NOT Grind - description: Avger en booleansk "1" om inflödet inte är positiv. (positiva menas med former, - färger eller booleansk "1") + name: NOT-grind + description: Avger en boolesk "1" om inflödet inte är positivt. (positivt menas med former, + färger eller boolesk "1") xor: - name: XOR Grind - description: - Avger en booleansk "1" om ett av inflöderna är positiv, dock inte om båda är positiva. - (Positiva menas med former, färger eller booleansk "1") + name: XOR-grind + description: Avger en boolesk "1" om bara ett av inflödena är positivt. + (med positivt menas former, färger eller boolesk "1") or: - name: OR Grind - description: Avger en booleansk "1" om ett av inflöderna är positiv. (positiva menas med former, - färger eller booleansk "1") + name: OR-grind + description: Avger en boolesk "1" om minst ett av inflödena är positivt. + (med positivt menas former, färger eller boolesk "1") transistor: default: name: Transistor - description: För fram det undre inflödet om sido inflödet är positivt (en form, - färg eller "1"). + description: Sänder vidare det undre inflödet om sido inflödet är positivt. + (med positivt menas former, färger eller boolesk "1") mirrored: name: Transistor - description: För fram det undre inflödet om sido inflödet är positivt (en form, - färg eller "1"). + description: Sänder vidare det undre inflödet om sido inflödet är positivt. + (med positivt menas former, färger eller boolesk "1") filter: default: name: Filter - description: Koppla en signal för att dirigera alla matchande objekt till toppen och - dem kvarvarande till höger. Kan kontrolleras med booleanska singaler också. + description: Anslut en signal för att dirigera alla matchande objekt till toppen och + resterande åt höger. Kan även styras med booleska signaler. display: default: name: Display - description: Koppla en singal för att visa den på displayen - Det kan vara en form, - färg eller boolean. + description: Anslut en singal för att visa den på displayen - Det kan vara en form, + färg eller boolesk. reader: default: name: Rullbandsläsare - description: Mäter den genomsnittliga rullbands genomströmningen. Läser ut det sist + description: Mäter den genomsnittliga rullbands genomströmningen. Sänder ut den sista lästa saken på sladdlagret (när det är upplåst). analyzer: default: name: Formanalysator description: Analyserar den övre högra kvadranten av formens lägsta lager - och returnerar sin form och färg. + och returnerar dess form och färg. comparator: default: name: Jämför - description: Returnerar booleansk "1" om båda signalerna är exakt lika. Kan jämföra - former, saker och boolean. + description: Returnerar boolesk "1" om båda signalerna är exakt lika. Kan jämföra + former, saker och booleska. virtual_processor: default: name: Virtuell skärare @@ -570,20 +568,19 @@ buildings: description: Roterar virtuellt formen, både medurs och moturs. unstacker: name: Virtuell stapelupplösare - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + description: Lösgör virtuellt det översta lagret och sänder ut åt höger medan resten + sänds åt till vänster. stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: Virtuell staplare + description: Staplar virtuellt den högra formen ovanpå den vänstra. painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: Virtuell målare + description: Målar virtuellt formen underifrån med formen från höger. item_producer: default: name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + description: Endast tillgänglig i sandlådeläge, avger en given signal från kabellagret + till det vanliga lagret. storyRewards: reward_cutter_and_trash: title: Att klippa former From 5cc70c7f51a3405aec015aa8e78a2ce604239d20 Mon Sep 17 00:00:00 2001 From: BananoGamer <72351355+BananoGamer@users.noreply.github.com> Date: Mon, 7 Dec 2020 18:33:46 +0100 Subject: [PATCH 14/42] Update base-it.yaml (#962) some minor fixes, it's ready to be implemented --- translations/base-it.yaml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/translations/base-it.yaml b/translations/base-it.yaml index 572bbc77..e57a4ccd 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -317,7 +317,7 @@ ingame: questo lento processo!

PS: Usa i numeri da 0 a 9 per selezionare gli edifici più in fretta!" 3_1_rectangles: "Ora estraiamo qualche rettangolo! Costruisci 4 - estrattori and connect them to the HUB.

PS: + estrattori e connettili alla HUB.

PS: Tieni premuto SHIFT mentre trascini un nastro per attivare il pianificatore di nastri!" 21_1_place_quad_painter: Posiziona il verniciatore quadruplo e prendi dei @@ -479,7 +479,7 @@ buildings: second: name: Cavo description: Trasmette segnali, che possono essere oggetti, colori o booleani (1 - / 0). Cavi di colore diverso non si connettono. + / 0). I cavi di colore diverso non si connettono. balancer: default: name: Bilanciatore @@ -609,7 +609,7 @@ storyRewards: gradi in senso orario. reward_painter: title: Verniciatura - desc: "Il verniciatore è stato sbloccato! Estrai dalle vene + desc: "Il verniciatore è stato sbloccato! Estrai dai giacimenti colorate (esattamente come fai con le forme) e combina il colore con una forma nella veniciatrice per colorarla!

PS: Se sei daltonico, c'è la modalità daltonici nelle @@ -684,7 +684,7 @@ storyRewards: per sbloccare i miglioramenti!" no_reward_freeplay: title: Prossimo livello - desc: Congratulazioni! Ci sono altri contenuti in prgramma per la versione + desc: Congratulazioni! Ci sono altri contenuti in programma per la versione completa! reward_stacker: title: Impilatrice @@ -694,9 +694,9 @@ storyRewards: destro è impilato sopra il sinistro! reward_balancer: title: Bilanciatore - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + desc: Il bilanciatore multifunzione è stato sbloccato - Può essere + usato per costruire fabbriche più grandi unendo e dividendo gli + oggetti su diversi nastri! reward_merger: title: Aggregatore compatto desc: Hai sbloccato un aggregatore, variante del @@ -903,7 +903,7 @@ settings: edifici. lowQualityTextures: title: Texture in bassa qualità (Brutto) - description: Usa texture a bassa qualità per migliorare le prestazioni. Quesro + description: Usa texture a bassa qualità per migliorare le prestazioni. Questo renderà il gioco molto brutto! displayChunkBorders: title: Mostra confini dei Chunk @@ -912,7 +912,7 @@ settings: pickMinerOnPatch: title: Scegli estrattore sui giacimenti di risorse description: Attivato di default, seleziona l'estrattore se usi il contagocce - quando il cursore è su un giacimento risorse. + quando il cursore è su una vena di risorse. simplifiedBelts: title: Nastri semplificati (Brutto) description: Non renderizza gli oggetti sui nastri a meno che il cursore non sia @@ -1018,7 +1018,8 @@ about: Realizzare questo gioco non sarebbe stato possibile senza la grande community di Discord per i miei giochi - Unisciti al server di Discord!

- La colonna sonora è stata composta daPeppsen - È un grande.

+ La colonna sonora è stata composta da + Peppsen - È un grande.

Per finire, grazie di cuore al mio migliore amico Niklas - Senza le nostre sessioni su factorio questo gioco non sarebbe mai esistito. @@ -1029,7 +1030,7 @@ demo: restoringGames: Recupero salvataggi importingGames: Importazione salvataggi oneGameLimit: Limite di un salvataggio - customizeKeybindings: Scorciatoie personalizabili + customizeKeybindings: Scorciatoie personalizzabili exportingBase: Esportazione dell'intera base come immagine settingNotAvailable: Non disponibile nella demo. tips: @@ -1057,7 +1058,7 @@ tips: - Tenere premuto SHIFT attiva il pianificatore nastri, facilitando il posizionamento dei nastri più lunghi - I taglierini tagliano sempre in verticale, indipendentemente - dall'orientamento. + dal loro orientamento. - Mischia tutti i tre colori per fare il bianco. - Il magazzino prioritizza la prima uscita. - Impiega tempo per costruire design replicabili, ne vale la pena! @@ -1076,7 +1077,7 @@ tips: - Cerca di risolvere il livello 20 da solo prima di chiedere aiuto! - Non complicare le cose, cerca di mantenere la semplicità e farai strada. - Dovrai riusare le tue fabbriche più avanti nel gioco. Pianifica le tue - fabbriche in modo che siano reutilizzabili. + fabbriche in modo che siano riutilizzabili. - A volte, puoi trovare la forma che ti serve nella mappa senza crearla con le impilatrici. - Non troverai mai giacimenti di girandole complete. @@ -1099,7 +1100,7 @@ tips: - Puoi scaricare i salvataggi dal menù principale! - Questo gioco ha molti tasti di scelta rapida! Dai un'occhiata alla pagina delle impostazioni - - Questo gioco ha molte impostazioni, dai un'occhiata! + - Questo gioco ha molte impostazioni, dagli un'occhiata! - L'etichetta dell'hub ha una piccola bussola per indicarne la direzione! - Per svuotare i nastri, taglia e re-incolla l'area nello stesso punto. - Premi F4 per mostrare FPS e Tick al secondo. From 119d7c60ca5bb4ece5c2bbcc27956bcfaef8b022 Mon Sep 17 00:00:00 2001 From: Cervon Wong Date: Tue, 8 Dec 2020 01:33:58 +0800 Subject: [PATCH 15/42] Update base-zh-CN.yaml (#968) Fix hoursAndMinutesShort --- translations/base-zh-CN.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 9be641ea..0c0adc7f 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -59,7 +59,7 @@ global: xDaysAgo: 天前 secondsShort: 秒 minutesAndSecondsShort: 秒 - hoursAndMinutesShort: 秒 + hoursAndMinutesShort: 分 xMinutes: 分钟 keys: tab: TAB From dd1d1ffe786fcee5521e6006f90159762cdaf1e5 Mon Sep 17 00:00:00 2001 From: Cervon Wong Date: Tue, 8 Dec 2020 01:34:20 +0800 Subject: [PATCH 16/42] Update base-zh-CN.yaml (#969) --- translations/base-zh-CN.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 0c0adc7f..6cd179a8 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -2,11 +2,11 @@ steamPage: shortText: shapez.io 是一款在无边际的地图上建造工厂、自动化生产与组合愈加复杂的图形的游戏。 discordLinkShort: 官方 Discord 服务器 intro: |- - Shapez.io 是一个休闲游戏,在其中,您将建造工厂以生产各种各样的几何图形。 - 随着等级提升,您需要生产的图形将会越来越复杂,您需要在无尽的地图中不断的扩建您的工厂。 - 如果这些还不够的话,您的生产目标是指数性增长的 - 您需要持续的增大工厂的规模! - 虽然您刚开始只需要生产图形,但您之后还可以给这些图形上色 - 您需要开采并混合颜料! - 您可以在 Steam 游戏商城购买此游戏的完整版, 但您可以先游玩试玩版并体验游戏! + Shapez.io 是一个休闲游戏,在其中,你将建造工厂以生产各种各样的几何图形。 + 随着等级提升,你需要生产的图形将会越来越复杂,你需要在无尽的地图中不断的扩建你的工厂。 + 如果这些还不够的话,你的生产目标是指数性增长的 - 你需要持续的增大工厂的规模! + 虽然你刚开始只需要生产图形,但你之后还可以给这些图形上色 - 你需要开采并混合颜料! + 你可以在 Steam 游戏商城购买此游戏的完整版, 但你可以先游玩试玩版并体验游戏! title_advantages: 完整版内容 advantages: - 12 个全新关卡 总共 26 个不同关卡 @@ -175,7 +175,7 @@ dialogs: can generate here) renameSavegame: title: 重命名存档 - desc: 您可以在此重命名存档。 + desc: 你可以在此重命名存档。 tutorialVideoAvailable: title: Tutorial Available desc: There is a tutorial video available for this level! Would you like to From c8623ff1a58fa462d665af5f9bc42607e7aa1528 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 18:35:29 +0100 Subject: [PATCH 17/42] Fix typo in german translation, closes #971 --- translations/base-de.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/base-de.yaml b/translations/base-de.yaml index 26e9dfc2..bd3d9ef4 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -1050,7 +1050,7 @@ tips: gleichmäßig kaufst. - Serielle Ausführung ist effizienter als parallele. - Für viele Gebäude wirst du im Spielverlauf neue Varianten freischalten! - - Du kanst T drücken, um auf andere Varianten des Gebäudes zu + - Du kannst T drücken, um auf andere Varianten des Gebäudes zu wechseln. - Symmetrie ist der Schlüssel! - Du kannst verschiedene Arten von Tunneln miteinander verweben. @@ -1069,7 +1069,7 @@ tips: - Das Lager gibt Items immer zuerst am linken Ausgang ab. - Es lohnt sich, Zeit in den Bau von wiederverwendbaren Designs zu stecken! - Das Halten von STRG ermöglicht dir, mehrere Gebäude zu platzieren. - - Du kanst ALT gedrückt halten, um die Richtung der Fließbänder + - Du kannst ALT gedrückt halten, um die Richtung der Fließbänder umzukehren. - Effizienz ist entscheidend! - Abbaubare Formen werden komplexer, je weiter sie vom Hub entfernt sind. From b080236b0b01c30014c3c13d7a64cf06348fa482 Mon Sep 17 00:00:00 2001 From: Erha <895423140@qq.com> Date: Tue, 8 Dec 2020 01:36:15 +0800 Subject: [PATCH 18/42] Update base-zh-CN.yaml (#977) All English translated into Chinese --- translations/base-zh-CN.yaml | 596 +++++++++++++++-------------------- 1 file changed, 258 insertions(+), 338 deletions(-) diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 6cd179a8..41be04d3 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -110,9 +110,8 @@ dialogs: text: 未能导入你的存档: confirmSavegameDelete: title: 确认删除 - text: Are you sure you want to delete the following game?

- '' at level

This can not be - undone! + text: 你确定要删除这个游戏吗?

+ '' 等级

该操作无法回退! savegameDeletionError: title: 删除错误 text: 未能删除你的存档 @@ -148,14 +147,14 @@ dialogs: desc: 你还没有解锁蓝图功能!完成更多的关卡来解锁蓝图。 keybindingsIntroduction: title: 实用按键 - desc: "这个游戏有很多能帮助搭建工厂的使用按键。 以下是其中的一些,记得在按键设置中查看其他的!

+ desc: + "这个游戏有很多有用的快捷键。 以下是其中的一些,记得在按键设置中查看其他的!

CTRL + 拖动:选择区域以复制或删除。
SHIFT: 按住以放置多个。
ALT: 反向放置传送带。
" createMarker: title: 创建地图标记 - desc: Give it a meaningful name, you can also include a short - key of a shape (Which you can generate here) + desc: 填写一个有意义的名称, 你也可以使用形状的 短代码 (你可以 点击这里 生成短代码) titleEdit: 编辑地图标记 markerDemoLimit: desc: 在试玩版中你只能创建两个地图标记。请获取独立版以创建更多标记。 @@ -169,21 +168,18 @@ dialogs: title: 确认剪切 desc: 你没有足够的图形来粘贴这个区域!你确定要剪切吗? editSignal: - title: Set Signal - descItems: "Choose a pre-defined item:" - descShortKey: ... or enter the short key of a shape (Which you - can generate here) + title: 设置信号 + descItems: "选择一个预定义的信号:" + descShortKey: ... 或者输入图形的 短代码 (你可以 点击这里 生成短代码) renameSavegame: title: 重命名存档 desc: 你可以在此重命名存档。 tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: 教程 + desc: 该等级有视频教程! 你想查看这个视频吗? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: 教程 + desc: 该等级有英语版本的视频教程! 你想查看这个视频吗?? ingame: keybindingsOverlay: moveMap: 移动地图 @@ -204,9 +200,9 @@ ingame: copySelection: 复制 clearSelection: 取消选择 pipette: 选取器 - switchLayers: Switch layers + switchLayers: 选择层 buildingPlacement: - cycleBuildingVariants: 按 键以选择建筑变体. + cycleBuildingVariants: 按 键以选择建筑变体。 hotkeyLabel: "快捷键: " infoTexts: speed: 效率 @@ -224,7 +220,7 @@ ingame: notifications: newUpgrade: 有新更新啦! gameSaved: 游戏已保存。 - freeplayLevelComplete: Level has been completed! + freeplayLevelComplete: 等级 完成了! shop: title: 建筑升级 buttonUnlock: 升级 @@ -261,39 +257,26 @@ ingame: waypoints: 地图标记 hub: 基地 description: 左键跳转到地图标记,右键删除地图标记。

- 在当前地点创建地图标记,或者在选定位置上右键创建地图标记. + 在当前地点创建地图标记,或者在选定位置上右键创建地图标记。 creationSuccessNotification: 成功创建地图标记。 interactiveTutorial: title: 教程 hints: - 1_1_extractor: 在圆形矿脉上放一个开采机来获取圆形! - 1_2_conveyor: 用传送带将你的开采机连接到基地上!

提示:用你的鼠标按下并拖动传送带! - 1_3_expand: 这不是一个挂机游戏!建造更多的开采机和传送带来更快地完成目标。

提示:按住 - SHIFT 键来放置多个开采机,用 R 键旋转它们。 - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" - 21_1_place_quad_painter: Place the quad painter and get some - circles, white and - red color! - 21_2_switch_to_wires: Switch to the wires layer by pressing - E!

Then connect all four - inputs of the painter with cables! - 21_3_place_button: Awesome! Now place a Switch and connect it - with wires! - 21_4_press_button: "Press the switch to make it emit a truthy - signal and thus activate the painter.

PS: You - don't have to connect all inputs! Try wiring only two." + 1_1_extractor: 在圆形矿脉上放一个开采器来获取圆形! + 1_2_conveyor: 用传送带将你的开采器连接到基地上!

提示:用你的鼠标按下并拖动传送带! + 1_3_expand: + 这不是一个挂机游戏!建造更多的开采器和传送带来更快地完成目标。

提示:按住 + SHIFT 键来放置多个开采器,用 R 键旋转它们。 + 2_1_place_cutter: "现在放置一个切割器,把圆切成两半!

注意:无论方向如何,切割机总是从上到下切割。" + 2_2_place_trash: 切割机可能会堵塞

使用垃圾桶清除当前 (!) 不需要的废物。 + 2_3_more_cutters: "干的好!现在放置2个以上的切割机来加快当前缓慢的过程!

提示:用0-9快捷键可以快速选择建筑!" + 3_1_rectangles: + "现在让我们开采一些矩形!建4个人开采器并将它们连接到基地。

+ 提示:按住SHIFT拖到传送带会激活传送带规划!" + 21_1_place_quad_painter: 放置四口上色器并且输入圆形白色红色! + 21_2_switch_to_wires: 按 E 键选择电线层!

然后用导线连接上色器的四个输入口! + 21_3_place_button: 很好!现在放置一个开关并连接导线! + 21_4_press_button: "按下开关去产生正信号来激活上色器。

注:你不用连上所有的输入口!试着只接两个。" colors: red: 红色 green: 绿色 @@ -309,8 +292,8 @@ ingame: empty: 空 copyKey: 复制短代码 connectedMiners: - one_miner: 1 个开采机 - n_miners: 个开采机 + one_miner: 1 个开采器 + n_miners: 个开采器 limited_items: 限制在 watermark: title: 试玩版 @@ -364,10 +347,10 @@ buildings: description: 运送物品,按住并拖动来放置多个传送带。 miner: default: - name: 开采机 + name: 开采器 description: 在图形或者颜色上放置来开采他们。 chainable: - name: 链式开采机 + name: 链式开采器 description: 在图形或者颜色上放置来开采他们。可以被链接在一起。 underground_belt: default: @@ -396,25 +379,23 @@ buildings: stacker: default: name: 堆叠机 - description: 将输入的图形拼贴在一起。如果不能被直接拼贴,右边的图形会被堆叠在左边的图形上面. + description: 将输入的图形拼贴在一起。如果不能被直接拼贴,右边的图形会被堆叠在左边的图形上面。 mixer: default: - name: 混色机 + name: 混色器 description: 用加法混色将两个颜色混合起来 painter: default: - name: 上色机 + name: 上色器 description: 将整个图形涂上输入的颜色。 double: - name: 上色机(双倍) + name: 上色器(双倍) description: 同时为两个输入的图形上色,每次上色只消耗一份颜色。 quad: - name: 上色机(四向) - description: Allows you to color each quadrant of the shape individually. Only - slots with a truthy signal on the wires layer - will be painted! + name: 上色器(四口) + description: 能够为图形的四个象限单独上色。只有电线层上带有正信号的插槽才可以上色! mirrored: - name: 上色机 (镜像) + name: 上色器 (镜像) description: 将整个图形涂上输入的颜色。 trash: default: @@ -427,148 +408,126 @@ buildings: endOfDemo: 试玩版结束 wire: default: - name: 能量导线 - description: 用于传输能量。 + name: 导线 + description: 传输信号,信号可以是物品,颜色或者布尔值。 不同颜色的导线不会互相连接 second: name: 导线 description: 传输信号,信号可以是物品,颜色或者布尔值。 不同颜色的导线不会互相连接。 balancer: default: - name: Balancer - description: Multifunctional - Evenly distributes all inputs onto all outputs. + name: 平衡器 + description: 多功能-将所有输入均匀地分配到所有输出上。 merger: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: 合并器 (小型) + description: 将两条传送带合并为一条。 merger-inverse: - name: Merger (compact) - description: Merges two conveyor belts into one. + name: 合并器 (小型) + description: 将两条传送带合并为一条。 splitter: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: 分配器 (小型) + description: 将一条传送带分成为两条。 splitter-inverse: - name: Splitter (compact) - description: Splits one conveyor belt into two. + name: 分配器 (小型) + description: 将一条传送带分成为两条。 storage: default: - name: Storage - description: Stores excess items, up to a given capacity. Prioritizes the left - output and can be used as an overflow gate. + name: 存储器 + description: 储存多余的物品,直到指定的容量。 优先处理左边的输出,可以用作溢出门。 wire_tunnel: default: - name: Wire Crossing - description: Allows to cross two wires without connecting them. + name: 交差导线 + description: 使两根导线交差,而不会连接起来。 constant_signal: default: - name: Constant Signal - description: Emits a constant signal, which can be either a shape, color or - boolean (1 / 0). + name: 固定信号 + description: 发出固定信号,可以是图形、颜色、开关量(1 / 0)。 lever: default: - name: Switch - description: Can be toggled to emit a boolean signal (1 / 0) on the wires layer, - which can then be used to control for example an item filter. + name: 开关 + description: 可以在电线层上发出开关量(1 / 0)信号。比如说它可以用来控制过滤器。 logic_gate: default: - name: AND Gate - description: Emits a boolean "1" if both inputs are truthy. (Truthy means shape, - color or boolean "1") + name: 与门 + description: 如果输入都是正信号,则发出开(1)信号。(正信号:图形,颜色,开(1)信号) not: - name: NOT Gate - description: Emits a boolean "1" if the input is not truthy. (Truthy means - shape, color or boolean "1") + name: 非门 + description: 如果输入不是正信号,则发出开(1)信号。(正信号:图形,颜色,开(1)信号) xor: - name: XOR Gate - description: Emits a boolean "1" if one of the inputs is truthy, but not both. - (Truthy means shape, color or boolean "1") + name: 异或门 + description: 如果输入只有一个正信号,则发出开(1)信号。(正信号:图形,颜色,开(1)信号) or: - name: OR Gate - description: Emits a boolean "1" if one of the inputs is truthy. (Truthy means - shape, color or boolean "1") + name: 或门 + description: 如果输入有一个是正信号,则发出开(1)信号。(正信号:图形,颜色,开(1)信号) transistor: default: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过。(正信号:图形,颜色,开(1)信号) mirrored: - name: Transistor - description: Forwards the bottom input if the side input is truthy (a shape, - color or "1"). + name: 晶体管 + description: 如果侧边输入正信号,输入可以通过。(正信号:图形,颜色,开(1)信号) filter: default: - name: Filter - description: Connect a signal to route all matching items to the top and the - remaining to the right. Can be controlled with boolean signals - too. + name: 过滤器 + description: 在上面输出和信号匹配的内容,在右侧输出不匹配的内容。如果是开关量的话,开(1)信号从上面输出,关(0)信号从右侧输出 + display: default: - name: Display - description: Connect a signal to show it on the display - It can be a shape, - color or boolean. + name: 显示器 + description: 在显示器上显示连接的信号(这些信号可以是:图形、颜色、开关量)。 reader: default: - name: Belt Reader - description: Allows to measure the average belt throughput. Outputs the last - read item on the wires layer (once unlocked). + name: 传送带阅读器 + description: 可以测量传送带平均吞吐量。在电线层输出最后输入物品的信号(可以在‘显示器’上显示,也可用来做过滤) analyzer: default: - name: Shape Analyzer - description: Analyzes the top right quadrant of the lowest layer of the shape - and returns its shape and color. + name: 图形分析器 + description: 分析图形最低层的右上象限并返回其图形和颜色。 comparator: default: - name: Compare - description: Returns boolean "1" if both signals are exactly equal. Can compare - shapes, items and booleans. + name: 比较器 + description: 如果输入的两个信号一样将输出开(1)信号,可以比较图形,颜色,和开关量。 virtual_processor: default: - name: Virtual Cutter - description: Virtually cuts the shape into two halves. + name: 模拟切割机 + description: 将信号中的图形切割成两半并输出信号 rotater: - name: Virtual Rotater - description: Virtually rotates the shape, both clockwise and counter-clockwise. + name: 模拟旋转机 + description: 将信号中的图形旋转后输出信号 unstacker: - name: Virtual Unstacker - description: Virtually extracts the topmost layer to the right output and the - remaining ones to the left. + name: 模拟拆分器 + description: 将信号中图形的最上层图形信号从右侧输出,其余的图形信号从左侧输出。 stacker: - name: Virtual Stacker - description: Virtually stacks the right shape onto the left. + name: 模拟堆叠机 + description: 将右侧的图形叠在左侧的图形上 painter: - name: Virtual Painter - description: Virtually paints the shape from the bottom input with the shape on - the right input. + name: 模拟上色器 + description: 使用右侧输入的颜色给底部输入的图形上色 item_producer: default: - name: Item Producer - description: Available in sandbox mode only, outputs the given signal from the - wires layer on the regular layer. + name: 物品生成器 + description: 仅在沙盒模式下可用,在常规层上输出电线层给定信号的图形。 storyRewards: reward_cutter_and_trash: title: 切割图形 - desc: You just unlocked the cutter, which cuts shapes in half - from top to bottom regardless of its - orientation!

Be sure to get rid of the waste, or - otherwise it will clog and stall - For this purpose - I have given you the trash, which destroys - everything you put into it! + desc: 你刚解锁了切割机,它会从上到下切开图形而不管它的方向! +

一定要用扔掉不用的东西,不然它会阻塞传送带, + 为此我给了你垃圾桶,它会摧毁所有放进去的东西! reward_rotater: title: 顺时针旋转 desc: 恭喜!你解锁了旋转机。它会顺时针旋转输入的图形90度。 reward_painter: title: 上色 - desc: 恭喜!你解锁了上色机。开采一些颜色 (就像你开采图形一样) - 将其在上色机中与图形结合来将图形上色!

PS:如果你患有色盲,可以在设置中启用色盲模式! + desc: 恭喜!你解锁了上色器。开采一些颜色 (就像你开采图形一样) + 将其在上色器中与图形结合来将图形上色!

注意:如果你患有色盲,可以在设置中启用色盲模式! reward_mixer: title: 混合颜色 - desc: 恭喜!你解锁了混色机。这个建筑使用加法混色将两种颜色混合起来。 + desc: 恭喜!你解锁了混色器。这个建筑使用加法混色将两种颜色混合起来。 reward_stacker: title: 堆叠 desc: 恭喜!你解锁了堆叠机。堆叠机会尝试把两个输入的图形拼贴在一起。如果有重叠的部分,右边的输入会被堆叠在左边的输入上方! reward_splitter: title: 分离与合并 - desc: You have unlocked a splitter variant of the - balancer - It accepts one input and splits them - into two! + desc: 你已经解锁了平衡器的变体分配器,它会把输入的东西分配在两边输出! reward_tunnel: title: 隧道 desc: 恭喜!你解锁了隧道。你现在可以从其他传送带或建筑底下运送物品了! @@ -576,11 +535,10 @@ storyRewards: title: 逆时针旋转 desc: 恭喜!你解锁了旋转机逆时针变体。这个变体可以逆时针旋转图形。选择旋转机然后按"T"键来选取这个变体。 reward_miner_chainable: - title: 链式开采机 - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + title: 链式开采器 + desc: + "你已经解锁了链式开采器!它能转发它的资源给其他的开采器,这样你就会更有效率的开采资源了!

+ 注意:新的开采器替换了工具栏里旧的开采器!" reward_underground_belt_tier_2: title: 二级隧道 desc: 恭喜!你解锁了二级隧道。这是隧道的一个变体。二级隧道有更长的传输距离。你还可以混用不同的隧道变体! @@ -588,22 +546,17 @@ storyRewards: title: 四向切割机 desc: 恭喜!你解锁了切割机四向变体。它可以将输入的图形切成四块而不只是左右两块! reward_painter_double: - title: 双倍上色机 - desc: 恭喜!你解锁了上色机双倍变体。它可以同时为两个图形上色,每次只消耗一份颜色! + title: 双倍上色器 + desc: 恭喜!你解锁了上色器双倍变体。它可以同时为两个图形上色,每次只消耗一份颜色! reward_storage: - title: 仓库 - desc: You have unlocked the storage building - It allows you to - store items up to a given capacity!

It priorities the left - output, so you can also use it as an overflow gate! + title: 存储器 + desc: 你已经解锁了存储器,它能存满指定容量的物品!

+ 它先从左边输出,这样你就可以用它做一个溢流门了! reward_freeplay: title: 自由模式 - desc: You did it! You unlocked the free-play mode! This means - that shapes are now randomly generated!

- Since the hub will require a throughput from now - on, I highly recommend to build a machine which automatically - delivers the requested shape!

The HUB outputs the requested - shape on the wires layer, so all you have to do is to analyze it and - automatically configure your factory based on that. + desc: 成功了!你解锁了自由模式!这意味着现在将随机生成图形! + 从现在起,基地将需要生产率,我强烈建议你去制造一台能够自动交付所需图形的机器!

+ 基地会在电线层输出需要的图形,你需要去分析图形并在此基础上自动配置你的工厂。 reward_blueprints: title: 蓝图 desc: 你现在可以复制粘贴你的工厂的一部分了!按住 CTRL @@ -611,83 +564,67 @@ storyRewards: no_reward: title: 下一关 desc: 这一关没有奖励,但是下一关有!

- PS:你生产过的所有图形都会被用来升级建筑。 + 注意:你生产过的所有图形都会被用来升级建筑。 no_reward_freeplay: title: 下一关 desc: 恭喜你!另外,我们已经计划在独立版中加入更多内容! reward_balancer: - title: Balancer - desc: The multifunctional balancer has been unlocked - It can - be used to build bigger factories by splitting and merging - items onto multiple belts! + title: 平衡器 + desc: 解锁了多功能的平衡器,它能够分割和合并多个传送带的资源,可以用来建造更大的工厂! reward_merger: - title: Compact Merger - desc: You have unlocked a merger variant of the - balancer - It accepts two inputs and merges them - into one belt! + title: 小型合并器 + desc: 你已经解锁了平衡器的变体合并器,它能合并两个输入到一个传送带上! reward_belt_reader: - title: Belt reader - desc: You have now unlocked the belt reader! It allows you to - measure the throughput of a belt.

And wait until you unlock - wires - then it gets really useful! + title: 传送带阅读器 + desc: 你已经解锁了传送带阅读器!它能够测量传送带上的生产率。

+ 等你解锁了电线层后,它会更有用! reward_rotater_180: - title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + title: 180度旋转器 + desc: 你刚刚解锁了180度旋转器!它能帮你把一个图形旋转180度(Surprise! :D) reward_display: - title: Display - desc: "You have unlocked the Display - Connect a signal on the - wires layer to visualize it!

PS: Did you notice the belt - reader and storage output their last read item? Try showing it on a - display!" + title: 显示器 + desc: "你已经解锁了显示器,显示一个在电线层上输入的信号!

+ 注意:你注意到传输带阅读器和存储器输出他们最后一次输入的物品的信号了吗?试着在显示屏上展示一下!" reward_constant_signal: - title: Constant Signal - desc: You unlocked the constant signal building on the wires - layer! This is useful to connect it to item filters - for example.

The constant signal can emit a - shape, color or - boolean (1 / 0). + title: 固定信号 + desc: + 你解锁了电线层上的固定信号建筑,比如它连接过滤器时非常有用。

+ 它能发出图形、颜色、开关量(1 / 0)的固定信号。 reward_logic_gates: - title: Logic Gates - desc: You unlocked logic gates! You don't have to be excited - about this, but it's actually super cool!

With those gates - you can now compute AND, OR, XOR and NOT operations.

As a - bonus on top I also just gave you a transistor! + title: 逻辑门 + desc: 你解锁了逻辑门!它们是个好东西!

+ 你可以用它们来进行'与,或,非,异或'操作。

作为奖励,我还给你解锁了晶体管! + reward_virtual_processing: - title: Virtual Processing - desc: I just gave a whole bunch of new buildings which allow you to - simulate the processing of shapes!

You can - now simulate a cutter, rotater, stacker and more on the wires layer! - With this you now have three options to continue the game:

- - Build an automated machine to create any possible - shape requested by the HUB (I recommend to try it!).

- Build - something cool with wires.

- Continue to play - regulary.

Whatever you choose, remember to have fun! + title: 模拟处理器 + desc: 我刚刚给了一大堆新建筑,让你可以模拟形状的处理过程

+ 你现在可以在电线层上模拟切割机,旋转机,堆叠机和其他机器!

+ 有了这些,你可以选择下面三个方向来继续游戏:

+ -建立一个自动化生产基地需要图形的机器(我建议试试!)。

+ -用电线层上做些酷炫的东西。

+ -继续正常比赛。

+ 无论你选择什么,记住要玩得开心! + reward_wires_painter_and_levers: - title: Wires & Quad Painter - desc: "You just unlocked the Wires Layer: It is a separate - layer on top of the regular layer and introduces a lot of new - mechanics!

For the beginning I unlocked you the Quad - Painter - Connect the slots you would like to paint with on - the wires layer!

To switch to the wires layer, press - E.

PS: Enable hints in - the settings to activate the wires tutorial!" + title: 电控四口上色器 + desc: "你刚刚解锁了电线层:它是正常层之上的一个层,它带来了许多新的机制!

+ 首先我解锁了你的四口上色器,按E键切换到电线层,然后连接你想要染色的槽,用开关来控制开启。

+ 注意:在设置中打开电线层教程!" reward_filter: - title: Item Filter - desc: You unlocked the Item Filter! It will route items either - to the top or the right output depending on whether they match the - signal from the wires layer or not.

You can also pass in a - boolean signal (1 / 0) to entirely activate or disable it. + title: 物品过滤器 + desc: + 你解锁了物品过滤器!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。

+ 你也可以输入正负(1 / 0)信号来激活或者禁用它。 reward_demo_end: - title: End of Demo - desc: You have reached the end of the demo version! + title: 试玩结束 + desc: 你已经玩完了试玩版本! settings: title: 设置 categories: general: 通用 userInterface: 用户界面 advanced: 高级 - performance: Performance + performance: 性能 versionBadges: dev: 开发版本 staging: 预览版本 @@ -779,55 +716,43 @@ settings: title: 记忆建筑方向 description: 每一类建筑都会记住各自上一次的旋转方向。如果你经常在不同建筑类型之间切换,这个设置会让游戏更加舒适。 soundVolume: - title: Sound Volume - description: Set the volume for sound effects + title: 音效音量 + description: 设置音效的音量 musicVolume: - title: Music Volume - description: Set the volume for music + title: 音乐音量 + description: 设置音乐的音量 lowQualityMapResources: - title: Low Quality Map Resources - description: Simplifies the rendering of resources on the map when zoomed in to - improve performance. It even looks cleaner, so be sure to try it - out! + title: 简陋的地图资源 + description: 放大时简化地图上资源的渲染以提高性能。它看起来更干净,所以一定要试试! disableTileGrid: - title: Disable Grid - description: Disabling the tile grid can help with the performance. This also - makes the game look cleaner! + title: 禁用网格 + description: 禁用平铺网格有助于提高性能。这也让游戏看起来更干净! clearCursorOnDeleteWhilePlacing: - title: Clear Cursor on Right Click - description: Enabled by default, clears the cursor whenever you right click - while you have a building selected for placement. If disabled, - you can delete buildings by right-clicking while placing a - building. + title: 右键取消 + description: 默认情况下取消当前的所有操作,如果禁用的话,你可以在保持将放置建筑的情况下删除已有的建筑。 lowQualityTextures: - title: Low quality textures (Ugly) - description: Uses low quality textures to save performance. This will make the - game look very ugly! + title: 低质量纹理(丑陋) + description: 使用低质量纹理保存游戏性能。但是游戏看起来很丑! displayChunkBorders: - title: Display Chunk Borders - description: The game is divided into chunks of 16x16 tiles, if this setting is - enabled the borders of each chunk are displayed. + title: 显示大块的边框 + description: 游戏将16x16的小块分成一个大块,如果打开这个设置将会显示每个大块的边框。 pickMinerOnPatch: - title: Pick miner on resource patch - description: Enabled by default, selects the miner if you use the pipette when - hovering a resource patch. + title: 在资源块上选择开采器 + description: 默认开启,当在资源块上使用选取器时会选择开采器。 simplifiedBelts: - title: Simplified Belts (Ugly) - description: Does not render belt items except when hovering the belt to save - performance. I do not recommend to play with this setting if you - do not absolutely need the performance. + title: 简单的传送带(简陋) + description: 为了保存性能,除非鼠标放在传送带上,不然不会渲染传送带上的物品。 + 除非你特别需要性能,否则我不推荐在这种设置下玩游戏。 enableMousePan: - title: Enable Mouse Pan - description: Allows to move the map by moving the cursor to the edges of the - screen. The speed depends on the Movement Speed setting. + title: 鼠标平移 + description: 在鼠标滑到屏幕边缘时可以移动地图。移动速度取决于移动速度设置。 + zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: 鼠标位置缩放 + description: 打开后在鼠标位置进行缩放,否则在屏幕中间进行缩放。 mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: 地图资源图形尺寸 + description: 控制地图总览时图形的尺寸(指缩小视野时)。 rangeSliderPercentage: % keybindings: title: 按键设置 @@ -858,12 +783,12 @@ keybindings: toggleFPSInfo: 开关帧数与调试信息 belt: 传送带 underground_belt: 隧道 - miner: 开采机 + miner: 开采器 cutter: 切割机 rotater: 旋转机 stacker: 堆叠机 - mixer: 混色机 - painter: 上色机 + mixer: 混色器 + painter: 上色器 trash: 垃圾桶 rotateWhilePlacing: 顺时针旋转 rotateInverseModifier: "修饰键: 改为逆时针旋转" @@ -883,24 +808,24 @@ keybindings: lockBeltDirection: 启用传送带规划 switchDirectionLockSide: 规划器:换边 pipette: 选取器 - menuClose: Close Menu - switchLayers: Switch layers - wire: Energy Wire - balancer: Balancer - storage: Storage - constant_signal: Constant Signal - logic_gate: Logic Gate + menuClose: 关闭菜单 + switchLayers: 选择层 + wire: 导线 + balancer: 平衡器 + storage: 存储器 + constant_signal: 固定信号 + logic_gate: 逻辑门 lever: Switch (regular) - filter: Filter - wire_tunnel: Wire Crossing - display: Display - reader: Belt Reader - virtual_processor: Virtual Cutter - transistor: Transistor - analyzer: Shape Analyzer - comparator: Compare - item_producer: Item Producer (Sandbox) - copyWireValue: "Wires: Copy value below cursor" + filter: 过滤器 + wire_tunnel: 交差导线 + display: 显示 + reader: 传送带阅读器 + virtual_processor: 模拟切割机 + transistor: 晶体管 + analyzer: 图形分析器 + comparator: 比较器 + item_producer: 物品生产器 (沙盒) + copyWireValue: "电线:复制指定电线上的值" about: title: 关于游戏 body: >- @@ -925,63 +850,58 @@ demo: exportingBase: 导出工厂截图 settingNotAvailable: 在试玩版中不可用。 tips: - - The hub accepts input of any kind, not just the current shape! - - Make sure your factories are modular - it will pay out! - - Don't build too close to the hub, or it will be a huge chaos! - - If stacking does not work, try switching the inputs. - - You can toggle the belt planner direction by pressing R. - - Holding CTRL allows dragging of belts without auto-orientation. - - Ratios stay the same, as long as all upgrades are on the same Tier. - - Serial execution is more efficient than parallel. - - You will unlock more variants of buildings later in the game! - - You can use T to switch between different variants. - - Symmetry is key! - - You can weave different tiers of tunnels. - - Try to build compact factories - it will pay out! - - The painter has a mirrored variant which you can select with T - - Having the right building ratios will maximize efficiency. - - At maximum level, 5 extractors will fill a single belt. - - Don't forget about tunnels! - - You don't need to divide up items evenly for full efficiency. - - Holding SHIFT will activate the belt planner, letting you place - long lines of belts easily. - - Cutters always cut vertically, regardless of their orientation. - - To get white mix all three colors. - - The storage buffer priorities the first output. - - Invest time to build repeatable designs - it's worth it! - - Holding CTRL allows to place multiple buildings. - - You can hold ALT to invert the direction of placed belts. - - Efficiency is key! - - Shape patches that are further away from the hub are more complex. - - Machines have a limited speed, divide them up for maximum efficiency. - - Use balancers to maximize your efficiency. - - Organization is important. Try not to cross conveyors too much. - - Plan in advance, or it will be a huge chaos! - - Don't remove your old factories! You'll need them to unlock upgrades. - - Try beating level 20 on your own before seeking for help! - - Don't complicate things, try to stay simple and you'll go far. - - You may need to re-use factories later in the game. Plan your factories to - be re-usable. - - Sometimes, you can find a needed shape in the map without creating it with - stackers. - - Full windmills / pinwheels can never spawn naturally. - - Color your shapes before cutting for maximum efficiency. - - With modules, space is merely a perception; a concern for mortal men. - - Make a separate blueprint factory. They're important for modules. - - Have a closer look on the color mixer, and your questions will be answered. - - Use CTRL + Click to select an area. - - Building too close to the hub can get in the way of later projects. - - The pin icon next to each shape in the upgrade list pins it to the screen. - - Mix all primary colors together to make white! - - You have an infinite map, don't cramp your factory, expand! - - Also try Factorio! It's my favorite game. - - The quad cutter cuts clockwise starting from the top right! - - You can download your savegames in the main menu! - - This game has a lot of useful keybindings! Be sure to check out the - settings page. - - This game has a lot of settings, be sure to check them out! - - The marker to your hub has a small compass to indicate its direction! - - To clear belts, cut the area and then paste it at the same location. - - Press F4 to show your FPS and Tick Rate. - - Press F4 twice to show the tile of your mouse and camera. - - You can click a pinned shape on the left side to unpin it. + - 基地接受所有输入的图形! + - 确保都是模块化的工厂,不然后面会很麻烦的! + - 不要建设的太靠近基地,不然后面会非常混乱的! + - 如果堆叠不起作用,那就换种方案。 + - 你可以通过 R 键切换传送带规化方向。 + - 按住 CTRL 键拖动传送带将不会自动改变它的方向。 + - 只要所有建筑等级一致,效率也将一致。 + - 串行执行比并行执行更有效。 + - 在后面的游戏中你会解锁更多建筑的变种! + - 你可以使用T键切换不同的变种。 + - 对称是关键! + - 你可以使用隧道构建不同层次的通道。 + - 试着建造紧凑型工厂,它会给你带来好处的! + - 你可以按T来切换上色器的镜像变体。 + - 正确的建筑比例将使效率最大化。 + - 在传送带和开采器等级一致时,5个开采器就可以占满一条传送带的运量。 + - 别忘了隧道! + - 你不必为了充分发挥效率而平均分配物品。 + - 按住SHIFT键将激活传送带规划,能让你更容易的放置长线的传送带。 + - 切割机总是垂直切割,而不管图形方向如何。 + - 混合三原色能够获得白色。 + - 存储缓冲区优先处理第一个输出。 + - 你值得花时间来构建可重复的设计! + - 按住CTRL键能够放置多个建筑。 + - 你可以按住ALT来反向你将放置传送带的方向。 + - 效率是关键! + - 离基地越远图形越复杂。 + - 机器的速度是有限的,把它们分开可以获得最高的效率。 + - 使用平衡器最大化你的效率。 + - 组织很重要。尽量不要过多地穿过传送带。 + - 提前规划,省的后面混乱! + - 不要删除旧的工厂,你会需要他们生产的东西升级建筑来提高效率。 + - 在寻求帮助之前,试着自己完成20级!! + - 不要把事情复杂化,试着保持简单,你会成功的。 + - 你可能需要在游戏的后期重复使用工厂。把你的工厂规划成可重复使用的。 + - 有时,你可以在地图上找到你需要的图形,而不用堆叠机去合成它。 + - 风车图形不会自动产生 + - 在切割前,给你的图形上色可以获得最高的效率。 + - 模块化,可以使你提高效率。 + - 记得做一个单独的蓝图工厂。 + - 仔细看看调色器,你就会调色了。 + - CTRL+点击能够选择一块区域。 + - 建得离基地太近会妨碍以后的工作。 + - 升级列表中每个形状旁边的固定图标可以将其固定到屏幕上。 + - 地图无限大,你可以随意布置。 + - 尝试下Factorio!这是我最喜欢的游戏。 + - 四输入切割机从右上角进行顺时针切割! + - 在主菜单你可以下载你保存的游戏进度文件! + - 这个游戏有很多有用的快捷键!一定要到快捷键页面看看。 + - 这个游戏有很多设置,一定要检查一下! + - 总览时基地的标记边上有个指向它所在方向的指针! + - 想清理传送带,就剪切那块区域并在相同位置放置他们。 + - 按F4显示FPS。 + - 按两次F4显示你鼠标所在的块。 + - 你可以点击固定在屏幕左侧的图形来解除固定。 From 1230b873aa7814f9580df84b992bb16bc5be0634 Mon Sep 17 00:00:00 2001 From: Ethan Chapman Date: Mon, 7 Dec 2020 12:37:49 -0500 Subject: [PATCH 19/42] Require LMB to place blueprints (#979) --- src/js/game/hud/parts/blueprint_placer.js | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/js/game/hud/parts/blueprint_placer.js b/src/js/game/hud/parts/blueprint_placer.js index e1040c3b..c3625209 100644 --- a/src/js/game/hud/parts/blueprint_placer.js +++ b/src/js/game/hud/parts/blueprint_placer.js @@ -110,22 +110,24 @@ export class HUDBlueprintPlacer extends BaseHUDPart { } } - const blueprint = this.currentBlueprint.get(); - if (!blueprint) { - return; - } + if (button === enumMouseButton.left) { + const blueprint = this.currentBlueprint.get(); + if (!blueprint) { + return; + } - if (!blueprint.canAfford(this.root)) { - this.root.soundProxy.playUiError(); - return; - } + if (!blueprint.canAfford(this.root)) { + this.root.soundProxy.playUiError(); + return; + } - const worldPos = this.root.camera.screenToWorld(pos); - const tile = worldPos.toTileSpace(); - if (blueprint.tryPlace(this.root, tile)) { - const cost = blueprint.getCost(); - this.root.hubGoals.takeShapeByKey(this.root.gameMode.getBlueprintShapeKey(), cost); - this.root.soundProxy.playUi(SOUNDS.placeBuilding); + const worldPos = this.root.camera.screenToWorld(pos); + const tile = worldPos.toTileSpace(); + if (blueprint.tryPlace(this.root, tile)) { + const cost = blueprint.getCost(); + this.root.hubGoals.takeShapeByKey(this.root.gameMode.getBlueprintShapeKey(), cost); + this.root.soundProxy.playUi(SOUNDS.placeBuilding); + } } } From 3b268294df044278d13e4cd4335930f0d4d9539f Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 18:39:12 +0100 Subject: [PATCH 20/42] Minor adjustments --- src/js/changelog.js | 1 + src/js/game/hud/parts/blueprint_placer.js | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index c7b142ba..34c10948 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -9,6 +9,7 @@ export const CHANGELOG = [ "Allow to cycle variants backwards with SHIFT + T", "Upgrade numbers now use roman numerals until tier 50 (by LeopoldTal)", "Add button to unpin shapes from the left side (by artemisSystem)", + "Fix middle mouse button also placing blueprints (by Eiim)", "Updated translations (Thanks to all contributors!)", ], }, diff --git a/src/js/game/hud/parts/blueprint_placer.js b/src/js/game/hud/parts/blueprint_placer.js index c3625209..b70fb82a 100644 --- a/src/js/game/hud/parts/blueprint_placer.js +++ b/src/js/game/hud/parts/blueprint_placer.js @@ -108,9 +108,7 @@ export class HUDBlueprintPlacer extends BaseHUDPart { this.abortPlacement(); return STOP_PROPAGATION; } - } - - if (button === enumMouseButton.left) { + } else if (button === enumMouseButton.left) { const blueprint = this.currentBlueprint.get(); if (!blueprint) { return; From 100ee57d10b0b27b930ca0b1a6b5cb78adcbfad7 Mon Sep 17 00:00:00 2001 From: Hyron <54694742+HyronBit@users.noreply.github.com> Date: Mon, 7 Dec 2020 14:41:41 -0300 Subject: [PATCH 21/42] Update base-pt-BR.yaml (#985) * Update base-pt-BR.yaml Fixed a few typos, and translated reward_storage and reward_miner_chainable * Update base-pt-BR.yaml fixed a space and a missing " --- translations/base-pt-BR.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index c52816d4..45f72353 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -44,7 +44,7 @@ steamPage: Qualquer um pode contribuir, estou ativamente envolvido com a comunidade e tento ler todas as sugestões e receber críticas quando possível. - Cheque minha lousa no trello para a linha do tempo completa! + Cheque meu quadro no trello para a linha do tempo completa! global: loading: Carregando error: Erro @@ -78,7 +78,7 @@ global: space: Espaço demoBanners: title: Versão Demo - intro: Compre a versão completa para desbloquear todas os recursos! + intro: Compre a versão completa para desbloquear todos os recursos! mainMenu: play: Jogar continue: Continuar @@ -543,7 +543,7 @@ buildings: filter: default: name: Filtro - description: Conecte um sinal para rotear todos os itens desejador para o topo e + description: Conecte um sinal para rotear todos os itens desejados para o topo e o restante para a direita. Pode ser controlado por sinais binários também. display: @@ -636,10 +636,10 @@ storyRewards: variantes! reward_miner_chainable: title: Extrator em Cadeia - desc: "You have unlocked the chained extractor! It can - forward its resources to other extractors so you - can more efficiently extract resources!

PS: The old - extractor has been replaced in your toolbar now!" + desc: "Você desbloqueou o extrator em cadeia! Ele + encaminha os recursos para outros extratores para que você + possa extrair recursos de forma mais eficiente!

OBS: O velho + extrator foi substituído na sua barra de ferramentas!" reward_underground_belt_tier_2: title: Túnel Classe II desc: Você desbloqueou uma nova variante do túnel - ele tem um @@ -656,10 +656,10 @@ storyRewards: pintor regular, mas processa duas formas ao mesmo tempo, consumindo apenas uma cor em vez de duas! reward_storage: - title: Acúmulo de excesso - desc: You have unlocked the storage building - It allows you to - store items up to a given capacity!

It priorities the left - output, so you can also use it as an overflow gate! + title: Armazém + desc: Você desbloqueou o armazém - Permite que você + armazene itens até uma certa capacidade!

Ele prioriza a saída + da esquerda, para que você tambpem possa usá-lo como um portão de excesso! reward_freeplay: title: Modo Livre desc: Você conseguiu! Você desbloqueou o modo livre! Isso From d0596be38c5f2bf0b6c9d7736b1094bce6e83d38 Mon Sep 17 00:00:00 2001 From: L404-Venik <67225529+L404-Venik@users.noreply.github.com> Date: Mon, 7 Dec 2020 20:43:06 +0300 Subject: [PATCH 22/42] Update base-ru.yaml (#990) * Update base-ru.yaml * Update base-ru.yaml * Update base-ru.yaml Sorry, even with my English knowledge I'm not really a programmer, so I badly understand error notifications. Give me time, maby I'll try couple times to get into it. Please disregard if there will be some more failed versions. * Update base-ru.yaml * Update base-ru.yaml * Update base-ru.yaml --- translations/base-ru.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 6c01272e..3c3df61e 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -3,12 +3,13 @@ steamPage: создания и объединения все более сложных фигур на бесконечной карте. discordLinkShort: Официальный Discord сервер intro: >- - Shapez.io - это спокойная игра о создании фабрик для автоматизации - создания сложных геометрических фигур. + Любите игры про автоматизацию? Тогда вы по адресу! + shapez.io это спокойная игра, в которой вам предстоит строить фабрики по автоматизированному производству геометрических фигур. По мере управления уровня, фигуры становятся все сложнее, так что придется расширять фабрику засчет бесконечной карты. - Если этого мало, то Вам так же придется экспоненциально производить все больше и больше фигур, чтобы удовлетворить потребности Вашей фабрики. Ключ к успеху - расширение! + Если этого мало, то Вам так же придется экспоненциально увеличивать производство, чтобы удовлетворить потребности Вашей фабрики. Ключ к успеху - масштабирование! + И если в начале вам понадобится обрабатывать только формы, то позже вы начнёте их раскрашивать, добывая и комбенируя красители. Вначале игры Вам понадобится производить только фигуры, однако позже фигуры надо будет окрашивать. Для этого добывайте и смешивайте краски! @@ -32,7 +33,7 @@ steamPage: - Моды - Режим песочницы - ... и многое другое! - title_open_source: Эта игра находится в открытом доступе! + title_open_source: Эта игра с открытым исходным кодом! title_links: Ссылки links: discord: Официальный Discord сервер @@ -85,7 +86,7 @@ mainMenu: changelog: Список изменений importSavegame: Импорт openSourceHint: Это игра с открытым исходным кодом! - discordLink: Офици- альный Дискорд + discordLink: Официальный Дискорд сервер! helpTranslate: Помоги с переводом! browserWarning: Извините, но игра работает медленно в вашем браузере! Приобретите полную версию или загрузите Chrome чтобы ознакомится с игрой @@ -109,7 +110,7 @@ dialogs: deleteGame: Я знаю, что я делаю viewUpdate: Посмотреть Обновление showUpgrades: Показать Улучшения - showKeybindings: Показать Управление + showKeybindings: Показать Управление (Привязку клавиш) importSavegameError: title: Ошибка импортирования text: Не удалось импортировать сохранение игры. @@ -122,7 +123,7 @@ dialogs: confirmSavegameDelete: title: Подтвердите удаление. text: Вы уверены, что хотите удалить это сохранение?

'' на - уровне

Это не может быть отменено! + уровне

Оно будет удалено безвозвратно! savegameDeletionError: title: Ошибка удаления text: Не удалось удалить сохранение игры. From c0027778ef1815653240033dbf90add76258bbe2 Mon Sep 17 00:00:00 2001 From: EmeraldBlock <69981203+EmeraldBlock@users.noreply.github.com> Date: Mon, 7 Dec 2020 11:43:58 -0600 Subject: [PATCH 23/42] Hide wires layer grid with disable grid option (#991) When the Disable Grid option is on, the grid shown on the wires layer also disappears. This is done by replacing the wires tile grid pattern with a pure color that is the average color of the tile image. The color also has the same transparency as the tile image. The use of a pure color loses the grainy look of the image. --- src/js/game/hud/parts/wires_overlay.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/js/game/hud/parts/wires_overlay.js b/src/js/game/hud/parts/wires_overlay.js index 752d9cb3..2fd3092c 100644 --- a/src/js/game/hud/parts/wires_overlay.js +++ b/src/js/game/hud/parts/wires_overlay.js @@ -117,7 +117,8 @@ export class HUDWiresOverlay extends BaseHUDPart { return; } - if (!this.cachedPatternBackground) { + const hasTileGrid = !this.root.app.settings.getAllSettings().disableTileGrid; + if (hasTileGrid && !this.cachedPatternBackground) { this.cachedPatternBackground = parameters.context.createPattern(this.tilePatternCanvas, "repeat"); } @@ -132,7 +133,9 @@ export class HUDWiresOverlay extends BaseHUDPart { parameters.context.globalCompositeOperation = "source-over"; parameters.context.scale(scaleFactor, scaleFactor); - parameters.context.fillStyle = this.cachedPatternBackground; + parameters.context.fillStyle = hasTileGrid + ? this.cachedPatternBackground + : "rgba(78, 137, 125, 0.75)"; parameters.context.fillRect( bounds.x / scaleFactor, bounds.y / scaleFactor, From bb4fe006b677ff35f7745d7acd0167397373f2ac Mon Sep 17 00:00:00 2001 From: catyo <52142711+eastplum@users.noreply.github.com> Date: Tue, 8 Dec 2020 01:45:43 +0800 Subject: [PATCH 24/42] Update base-zh-TW.yaml (#992) Consistency for "pipette" vocab. :) --- translations/base-zh-TW.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 06ebdd9b..48c0c868 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -199,7 +199,7 @@ ingame: cutSelection: 剪下選取 copySelection: 複製選取 clearSelection: 清空選取 - pipette: 吸附 + pipette: 滴管 switchLayers: 切換層 buildingPlacement: cycleBuildingVariants: 按鍵以選擇建築變體. From eecabf1a072e1605fdea9168be3d94e516ac58f2 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 18:45:52 +0100 Subject: [PATCH 25/42] Update changelog --- src/js/changelog.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 34c10948..80ae69f6 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -5,11 +5,12 @@ export const CHANGELOG = [ entries: [ "Added the ability to edit constant signals by left clicking them", "You can now add markers in the wire layer (partially by daanbreur)", - "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by emeraldblock)", + "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by EmeraldBlock)", "Allow to cycle variants backwards with SHIFT + T", "Upgrade numbers now use roman numerals until tier 50 (by LeopoldTal)", "Add button to unpin shapes from the left side (by artemisSystem)", "Fix middle mouse button also placing blueprints (by Eiim)", + "Hide wires grid when using the 'Disable Grid' setting (by EmeraldBlock)", "Updated translations (Thanks to all contributors!)", ], }, From 5e074dd9fef6e9574ae97dfbebea348d725da796 Mon Sep 17 00:00:00 2001 From: Jesper Welagen Date: Mon, 7 Dec 2020 18:46:19 +0100 Subject: [PATCH 26/42] Update base-nl.yaml (#993) I made some small grammar improvements (some were really weird). Also, I used more simple and basic Dutch to make it understandable for people that can't talk fluent dutch. I really wanted to contribute to the game, so I hope this makes it into the game :) --- translations/base-nl.yaml | 63 +++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index c8933389..88b68b97 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -91,12 +91,12 @@ mainMenu: browserWarning: Sorry, maar dit spel draait langzaam in je huidige browser! Koop de standalone versie of download chrome voor de volledige ervaring. savegameLevel: Level - savegameLevelUnknown: Onbekend Level + savegameLevelUnknown: Level onbekend continue: Ga verder newGame: Nieuw Spel madeBy: Gemaakt door subreddit: Reddit - savegameUnnamed: Unnamed + savegameUnnamed: Naamloos dialogs: buttons: ok: OK @@ -160,14 +160,14 @@ dialogs: Het upgrades-tabblad staat in de rechterbovenhoek van het scherm. massDeleteConfirm: title: Bevestig verwijderen - desc: Je bent veel gebouwen aan het verwijderen ( om precies te zijn)! + desc: Je bent veel gebouwen aan het verwijderen ( om precies te zijn!) Weet je zeker dat je dit wil doen? blueprintsNotUnlocked: title: Nog niet ontgrendeld desc: Blauwdrukken zijn nog niet ontgrendeld! Voltooi meer levels om ze te ontgrendelen. keybindingsIntroduction: - title: Nuttige sneltoetsen + title: Handige sneltoetsen desc: "Dit spel heeft veel sneltoetsen die het makkelijker maken om grote fabrieken te bouwen. Hier zijn er een aantal, maar zorg dat je kijkt naar de sneltoetsen!

om precies te zijn)! Weet + desc: Je bent veel vormen aan het knippen ( om precies te zijn)! Weet je zeker dat je dit wil doen? exportScreenshotWarning: title: Exporteer screenshot @@ -221,10 +221,10 @@ ingame: placeMultiple: Plaats meerdere reverseOrientation: Omgekeerde oriëntatie disableAutoOrientation: Schakel auto-oriëntatie uit - toggleHud: Aan-/Uitzetten HUD + toggleHud: HUD aan-/uitzetten placeBuilding: Plaats gebouw createMarker: Plaats markering - delete: Vernietig + delete: Verwijder pasteLastBlueprint: Plak laatst gekopieerde blauwdruk lockBeltDirection: Gebruik lopende band planner plannerSwitchSide: Draai de richting van de planner @@ -265,11 +265,11 @@ ingame: title: In opslag description: Geeft alle vormen weer die opgeslagen zijn in de HUB. produced: - title: Geproduceerd + title: Productie description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. delivered: - title: Geleverd + title: Levering description: Geeft alle vormen weer die in de HUB worden bezorgd. noShapesProduced: Er zijn nog geen vormen geproduceerd. shapesDisplayUnits: @@ -340,7 +340,7 @@ ingame: purple: Paars cyan: Cyaan white: Wit - uncolored: Geen kleur + uncolored: Kleurloos black: Zwart shapeViewer: title: Lagen @@ -352,18 +352,18 @@ ingame: limited_items: "Gelimiteerd tot: " watermark: title: Demo versie - desc: Klik hier om het spel op Steam te bekijken! + desc: Klik hier om het spel op Steam te kopen! get_on_steam: Krijg het op Steam standaloneAdvantages: title: Koop de volledige versie! - no_thanks: Nee, bedankt! + no_thanks: Nee, dankjewel! points: levels: title: 12 Nieuwe Levels desc: Voor een totaal van 26 levels! buildings: title: 18 Nieuwe Gebouwen - desc: Automatiseer je fabrieken! + desc: Automatiseer je fabrieken nog beter en maak ze nog sneller! savegames: title: ∞ Savegames desc: Zo veel je maar wilt! @@ -375,7 +375,7 @@ ingame: desc: Verdwaal nooit meer in je fabriek! wires: title: Kabels - desc: Een volledig nieuwe dimensie! + desc: Een volledig nieuwe wereld! darkmode: title: Dark Mode desc: Minder vervelend voor je ogen! @@ -387,7 +387,7 @@ shopUpgrades: name: Banden, Verdeler & Tunnels description: Snelheid x → x miner: - name: Ontginner + name: Mijner description: Snelheid x → x processors: name: Knippen, draaien & stapelen @@ -402,7 +402,7 @@ buildings: description: Transporteert voorwerpen, klik en sleep om meerdere te plaatsen. miner: default: - name: Ontginner + name: Mijner description: Plaats op een vorm of kleur om deze te onttrekken. chainable: name: Ontginner (Ketting) @@ -471,14 +471,14 @@ buildings: deliver: Lever in toUnlock: om te ontgrendelen levelShortcut: LVL - endOfDemo: End of Demo + endOfDemo: Dit is het einde van de demo, koop het spel op Steam om verder te gaan! wire: default: name: Energiekabel description: Voor transport van energie. second: name: Kabel - description: Vervoerd signalen, zoals items, kleuren of booleans (1 of 0). + description: Vervoert signalen, zoals items, kleuren of booleans (1 of 0). Verschillende kleuren kabels kunnen niet verbonden worden. balancer: default: @@ -555,7 +555,7 @@ buildings: analyzer: default: name: Vorm Analyse - description: Analiseerd de onderste laag rechts boven en geeft de kleur en vorm + description: Analiseert de onderste laag rechts boven en geeft de kleur en vorm door aan de kabel. comparator: default: @@ -695,7 +695,7 @@ storyRewards: verdeler vrijgespeeld - Dit gebouw maakt van 2 lopende banden 1! reward_belt_reader: - title: Lopende band lezer + title: Lopende band sensor desc: Je hebt de lopende band lezer vrijgespeeld! Dit gebouw geeft de doorvoer op een lopende band weer.

Wacht maar tot je kabels vrijspeeld, dan wordt het pas echt interessant! @@ -710,7 +710,7 @@ storyRewards: lezer en opslag hun laatste vorm weergeven? Probeer het te tonen op een scherm!" reward_constant_signal: - title: Constante Signaal + title: Constant Signaal desc: Je hebt het constante signaal vrijgespeeld op de kabel dimensie! Dit gebouw is handig in samenwerking met item filters.

Het constante signaal kan een @@ -724,7 +724,7 @@ storyRewards: uitvoeren.

Als bonus krijg je ook nog een transistor van mij! reward_virtual_processing: - title: VIrtuele verwerking + title: Virtuele verwerking desc: Ik heb juist een hele hoop nieuwe gebouwen toegevoegd die je toetstaan om het process van vormen te stimuleren!

Je kan nu de knipper, draaier, stapelaar en meer op de dradenlaag stimuleren! @@ -755,7 +755,7 @@ settings: title: Opties categories: general: Algemeen - userInterface: Opmaak + userInterface: Gebruikersinterface advanced: Geavanceerd performance: Prestatie versionBadges: @@ -774,7 +774,7 @@ settings: small: Klein regular: Middel large: Groot - huge: Jumbo + huge: Ultragroot scrollWheelSensitivity: title: Zoom-gevoeligheid description: Veranderd hoe gevoelig het zoomen is (muiswiel of trackpad). @@ -805,7 +805,7 @@ settings: dark: Donker light: Licht refreshRate: - title: Simulatie doel + title: Simulatiedoel description: Wanneer je een 144 hz monitor hebt, verander de refresh rate hier zodat het spel naar behoren weer blijft geven. Dit verlaagt mogelijk de FPS als je computer te traag is. @@ -913,18 +913,17 @@ settings: te bewegen. zoomToCursor: title: Zoom naar de Muis - description: "Wanneer geactiveert: de zoom zal gebeuren in de richting van je - muispositie, anders in het midden van het scherm." + description: "Wanneer geactiveerd, zal de zoom naar de muis bewegen. Anders in het midden van het scherm." mapResourcesScale: title: Kaartbronnen schaal - description: Controleert de grote van de vormen op het map overzicht (wanneer je + description: Controleert de grootte van de vormen op het map overzicht (wanneer je uitzoomt). rangeSliderPercentage: % keybindings: title: Sneltoetsen hint: "Tip: Maak gebruik van CTRL, SHIFT en ALT! Hiermee kun je dingen anders en gemakkelijker plaatsen." - resetKeybindings: Reset sneltoetsen + resetKeybindings: Herstel sneltoetsen categoryLabels: general: Applicatie ingame: Spel @@ -978,11 +977,11 @@ keybindings: menuClose: Sluit Menu switchLayers: Lagen omwisselen wire: Energiekabel - balancer: Balancer + balancer: Balanceerder storage: Opslag constant_signal: Constant Signaal logic_gate: Logische poort - lever: Schakelaar (regulier) + lever: Schakelaar (standaard) filter: Filter wire_tunnel: Kabel kruising display: Scherm @@ -1093,5 +1092,5 @@ tips: dezelfde locatie. - Druk op F4 om uw FPS en Tick Rate weer te geven. - Druk twee keer op F4 om de tegel van je muis en camera weer te geven. - - U kunt aan de linkerkant op een vastgezette vorm klikken om deze los te + - Je kan aan de linkerkant op een vastgezette vorm klikken om deze los te maken. From ea064d41b6f480b537d74bc345da5a9ab24b7145 Mon Sep 17 00:00:00 2001 From: Mironov Danil <71277890+mironovmeow@users.noreply.github.com> Date: Tue, 8 Dec 2020 00:46:34 +0700 Subject: [PATCH 27/42] Update base-ru.yaml (#994) Some changes in "reward_belt_reader". --- translations/base-ru.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 3c3df61e..94ee3921 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -693,8 +693,8 @@ storyRewards: reward_belt_reader: title: Измеритель desc: Разблокирован измеритель! Он позволяет измерять - пропускную способность конвейера.

А как полезен он будет, - когда вы разблокируете провода! + пропускную способность конвейера.

Вы узнаете, как он полезен, + когда разблокируете провода! reward_rotater_180: title: Вращатель (180 градусов) desc: Разблокирован вращатель на 180 градусов! - Он позволяет From f92a04f1df30840046f178dd9e5b7af97eec3d19 Mon Sep 17 00:00:00 2001 From: Polarbub <71790726+Polarbub@users.noreply.github.com> Date: Mon, 7 Dec 2020 11:48:22 -0600 Subject: [PATCH 28/42] Fix Dependency errors (#996) --- gulp/package.json | 1 + gulp/yarn.lock | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/gulp/package.json b/gulp/package.json index 49118c32..90dc5501 100644 --- a/gulp/package.json +++ b/gulp/package.json @@ -42,6 +42,7 @@ "markdown-loader": "^5.1.0", "node-sri": "^1.1.1", "phonegap-plugin-mobile-accessibility": "^1.0.5", + "postcss": ">=5.0.0", "promise-polyfill": "^8.1.0", "query-string": "^6.8.1", "rusha": "^0.8.13", diff --git a/gulp/yarn.lock b/gulp/yarn.lock index 61c19815..c172cbab 100644 --- a/gulp/yarn.lock +++ b/gulp/yarn.lock @@ -8577,10 +8577,10 @@ nan@^2.12.1, nan@^2.13.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== -nanoid@^3.1.12: - version "3.1.12" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" - integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== +nanoid@^3.1.16: + version "3.1.16" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.16.tgz#b21f0a7d031196faf75314d7c65d36352beeef64" + integrity sha512-+AK8MN0WHji40lj8AEuwLOvLSbWYApQpre/aFJZD71r43wVRLrOYS4FmJOPQYon1TqB462RzrrxlfA74XRES8w== nanomatch@^1.2.9: version "1.2.13" @@ -10362,6 +10362,16 @@ postcss-zindex@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" +postcss@>=5.0.0: + version "8.1.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.7.tgz#ff6a82691bd861f3354fd9b17b2332f88171233f" + integrity sha512-llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ== + dependencies: + colorette "^1.2.1" + line-column "^1.0.2" + nanoid "^3.1.16" + source-map "^0.6.1" + postcss@^5.0.2: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" @@ -10390,16 +10400,6 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.1.tgz#c3a287dd10e4f6c84cb3791052b96a5d859c9389" - integrity sha512-9DGLSsjooH3kSNjTZUOt2eIj2ZTW0VI2PZ/3My+8TC7KIbH2OKwUlISfDsf63EP4aiRUt3XkEWMWvyJHvJelEg== - dependencies: - colorette "^1.2.1" - line-column "^1.0.2" - nanoid "^3.1.12" - source-map "^0.6.1" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" From 8e2efb07561963b172f96c7b3ec91a19d8a6ba5a Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 19:15:57 +0100 Subject: [PATCH 29/42] Fix belts being too slow sometimes, closes #999 --- src/js/changelog.js | 1 + src/js/game/belt_path.js | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 80ae69f6..3d3ba951 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -3,6 +3,7 @@ export const CHANGELOG = [ version: "1.2.2", date: "07.12.2020", entries: [ + "Fix item readers and some other buildings slowing up belts, especially if they stalled (inspired by Keterr's fix)", "Added the ability to edit constant signals by left clicking them", "You can now add markers in the wire layer (partially by daanbreur)", "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by EmeraldBlock)", diff --git a/src/js/game/belt_path.js b/src/js/game/belt_path.js index eb55d613..dde81549 100644 --- a/src/js/game/belt_path.js +++ b/src/js/game/belt_path.js @@ -1085,6 +1085,9 @@ export class BeltPath extends BasicSerializableObject { // Reduce the spacing nextDistanceAndItem[_nextDistance] -= clampedProgress; + // Advance all items behind by the progress we made + this.spacingToFirstItem += clampedProgress; + // If the last item can be ejected, eject it and reduce the spacing, because otherwise // we lose velocity if (isFirstItemProcessed && nextDistanceAndItem[_nextDistance] < 1e-7) { @@ -1097,6 +1100,24 @@ export class BeltPath extends BasicSerializableObject { if (this.tryHandOverItem(nextDistanceAndItem[_item], excessVelocity)) { this.items.pop(); + const itemBehind = this.items[lastItemProcessed - 1]; + if (itemBehind && this.numCompressedItemsAfterFirstItem > 0) { + // So, with the next tick we will skip this item, but it actually has the potential + // to process farther -> If we don't advance here, we loose a tiny bit of progress + // every tick which causes the belt to be slower than it actually is. + // Also see #999 + const fixupProgress = Math.max( + 0, + Math.min(remainingVelocity, itemBehind[_nextDistance]) + ); + + // See above + itemBehind[_nextDistance] -= fixupProgress; + remainingVelocity -= fixupProgress; + this.spacingToFirstItem += fixupProgress; + } + + // Reduce the number of compressed items since the first item no longer exists this.numCompressedItemsAfterFirstItem = Math.max( 0, this.numCompressedItemsAfterFirstItem - 1 @@ -1110,7 +1131,6 @@ export class BeltPath extends BasicSerializableObject { } isFirstItemProcessed = false; - this.spacingToFirstItem += clampedProgress; if (remainingVelocity < 1e-7) { break; } From 01733c48a3d958817ba90d7606520fe887dcc8ca Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 19:24:39 +0100 Subject: [PATCH 30/42] Prevent items from being rendered on each other when a belt stalls, closes #1000 --- src/js/changelog.js | 1 + src/js/game/systems/item_ejector.js | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/js/changelog.js b/src/js/changelog.js index 3d3ba951..c0ef3e66 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -5,6 +5,7 @@ export const CHANGELOG = [ entries: [ "Fix item readers and some other buildings slowing up belts, especially if they stalled (inspired by Keterr's fix)", "Added the ability to edit constant signals by left clicking them", + "Prevent items from being rendered on each other when a belt stalls (inspired by Keterr)", "You can now add markers in the wire layer (partially by daanbreur)", "Allow to cycle backwards in the toolbar with SHIFT + Tab (idea by EmeraldBlock)", "Allow to cycle variants backwards with SHIFT + T", diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index 56535111..6bbb42ce 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -328,6 +328,21 @@ export class ItemEjectorSystem extends GameSystemWithFilter { continue; } + // Limit the progress to the maximum available space on the next belt (also see #1000) + let progress = slot.progress; + const nextBeltPath = slot.cachedBeltPath; + if (nextBeltPath) { + progress = Math.min( + progress, + nextBeltPath.spacingToFirstItem / globalConfig.itemSpacingOnBelts + ); + } + + // Skip if the item would barely be visible + if (progress < 0.05) { + continue; + } + const realPosition = staticComp.localTileToWorld(slot.pos); if (!chunk.tileSpaceRectangle.containsPoint(realPosition.x, realPosition.y)) { // Not within this chunk @@ -337,8 +352,8 @@ export class ItemEjectorSystem extends GameSystemWithFilter { const realDirection = staticComp.localDirectionToWorld(slot.direction); const realDirectionVector = enumDirectionToVector[realDirection]; - const tileX = realPosition.x + 0.5 + realDirectionVector.x * 0.5 * slot.progress; - const tileY = realPosition.y + 0.5 + realDirectionVector.y * 0.5 * slot.progress; + const tileX = realPosition.x + 0.5 + realDirectionVector.x * 0.5 * progress; + const tileY = realPosition.y + 0.5 + realDirectionVector.y * 0.5 * progress; const worldX = tileX * globalConfig.tileSize; const worldY = tileY * globalConfig.tileSize; From ddf3e56f8de1e6f8c8fe6415514bb0ee1a5df8d8 Mon Sep 17 00:00:00 2001 From: Gumball73 <66757746+Gumball73@users.noreply.github.com> Date: Mon, 7 Dec 2020 18:25:46 +0000 Subject: [PATCH 31/42] Update base-pt-PT.yaml (#1002) Fix some typos. --- translations/base-pt-PT.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index a0d7901c..62d3b333 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -312,7 +312,7 @@ ingame: em duas metades!

PS: O cortador corta sempre de cima para baixo independentemente da sua orientação" 2_2_place_trash: O cortador pode encravar e parar!

Usa - um lixo para de livrares do atual (!) não + um lixo para te livrares do atual (!) não é necessário desperdício. 2_3_more_cutters: "Bom trabalho! Agora colocamais 2 cortadores para acelerades este progresso lento!

PS: Usa os atalhos From 6572d68d7d60a5d46963aac5237811f0f1ef44f7 Mon Sep 17 00:00:00 2001 From: Yami Odymel Date: Tue, 8 Dec 2020 02:26:12 +0800 Subject: [PATCH 32/42] Localized base-zh-TW.yaml (#1003) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The words in the file were based on Chinese localization which doesn't fit the best for Taiwanese locale. This change modified the words below: 傳送帶 → 輸送帶 當前 → 目前 鼠標 → 游標 觸控板 → 軌跡板 屏幕 → 螢幕 導入 → 匯入 刷新率 → 更新率 信息 → 資訊 攝像頭 → 視角 設置 → 設定 性能 → 效能 創建 → 建立 獲取 → 取得 加載 → 載入 教程 → 教學 --- translations/base-zh-TW.yaml | 255 ++++++++++++++++++----------------- 1 file changed, 129 insertions(+), 126 deletions(-) diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 48c0c868..e7ce1d91 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -10,7 +10,7 @@ steamPage: 玩家可以在 Steam 購買本游戲的單機版,如果還在猶豫,也可以到 shapez.io 先免費試玩再決定! title_advantages: 單機版優點 advantages: - - 12個新關卡 (總共有26關) + - 12個新關卡(總共有26關) - 18個新建築 幫助玩家自動化整個工廠! - 20個升級 讓遊玩時間更久! - 電路更新 帶給玩家新次元體驗! @@ -33,13 +33,13 @@ steamPage: discord: 官方 Discord 伺服器 roadmap: Roadmap subreddit: Reddit - source_code: 原始碼(GitHub) + source_code: 原始碼(GitHub) translate: 幫助我們翻譯! text_open_source: |- 任何人都可以幫助我開發遊戲或提供建議,我很活躍於各個社群媒體,也會讀所有的建議與回饋、並嘗試改善。 記得查看我的 trello board 以了解我的完整計畫! global: - loading: 加載中 + loading: 載入中 error: 錯誤 thousandsDivider: " " decimalSeparator: . @@ -68,18 +68,18 @@ global: alt: ALT escape: ESC shift: SHIFT - space: 空格 + space: 空白鍵 demoBanners: title: 試玩版 - intro: 獲取單機版以解鎖所有功能! + intro: 取得單機版以解鎖所有功能! mainMenu: play: 開始遊戲 changelog: 更新日誌 - importSavegame: 導入 + importSavegame: 匯入存檔 openSourceHint: 本遊戲已開源! discordLink: 官方 Discord 伺服器 helpTranslate: 協助我們翻譯! - browserWarning: 很抱歉, 本遊戲在當前瀏覽器上可能運行緩慢! 使用 chrome 或者獲取單機版以得到更好的體驗。 + browserWarning: 很抱歉,本遊戲在目前的瀏覽器上執行效率可能會有所緩慢!使用 Chrome 或者取得單機版以得到更好的體驗。 savegameLevel: 級 savegameLevelUnknown: 未知關卡 continue: 繼續 @@ -95,11 +95,11 @@ dialogs: later: 之後 restart: 重啟 reset: 重置 - getStandalone: 獲得單機版 + getStandalone: 取得單機版 deleteGame: 我知道我在做什麼 viewUpdate: 查看更新 showUpgrades: 顯示建築升級 - showKeybindings: 顯示按鍵設置 + showKeybindings: 顯示按鍵設定 importSavegameError: title: 匯入錯誤 text: 存檔匯入失敗: @@ -117,10 +117,10 @@ dialogs: text: 存檔刪除失敗 restartRequired: title: 需要重啟 - text: 你需要重啟遊戲以套用變更的設置。 + text: 你需要重啟遊戲以套用變更的設定。 editKeybinding: - title: 更改按鍵設置 - desc: 請按下你想要使用的按鍵,或者按下 ESC 鍵來取消設置。 + title: 更改按鍵設定 + desc: 請按下你想要使用的按鍵,或者按下 ESC 鍵來取消設定。 resetKeybindingsConfirmation: title: 重置所有按鍵 desc: 這將會重置所有按鍵,請確認。 @@ -132,13 +132,13 @@ dialogs: desc: 你嘗試使用了 功能。該功能在試玩版中不可用。請考慮購買單機版以獲得更好的體驗。 oneSavegameLimit: title: 存檔數量限制 - desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者獲取單機版! + desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者取得單機版! updateSummary: title: 更新了! - desc: "以下為自上次遊戲以來更新的內容:" + desc: "以下為自上次遊戲以來更新的內容:" upgradesIntroduction: title: 解鎖建築升級 - desc: 你生產過的所有圖形可以被用來升級建築。不要銷毀你之前建造的工廠! 升級選單在屏幕右上角。 + desc: 你生產過的所有圖形可以被用來升級建築。不要銷毀你之前建造的工廠! 升級選單在螢幕右上角。 massDeleteConfirm: title: 確認刪除 desc: 你將要刪除很多建築,準確來說有幢!你確定要這麼做嗎? @@ -147,17 +147,19 @@ dialogs: desc: 你還沒有解鎖藍圖功能!完成更多的關卡來解鎖藍圖。 keybindingsIntroduction: title: 實用按鍵 - desc: "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在按鍵設置中查看其他的!

- CTRL + 拖動:選擇區域以復製或刪除。
按鍵設定
中查看其他的!

+ CTRL + 拖曳:選擇區域以複製或刪除。
SHIFT: 按住以放置多個。
ALT: 反向放置傳送帶。
" + class='keybinding'>ALT
: 反向放置輸送帶。
" createMarker: - title: 創建標記 - desc: 給地圖標記起一個的名字。 你可以在名字中加入一個短代碼以加入圖形。 (你可以在 here - 生成短代碼。) + title: 建立標記 + desc: + 給地圖標記取一個名字。你可以在名字中加入一個簡短代碼以加入圖形。(你可以在這裡 + 建立簡短代碼。) titleEdit: 修改標記 markerDemoLimit: - desc: 在試玩版中你只能創建兩個地圖標記。請獲取單機版以創建更多標記。 + desc: 在試玩版中你只能建立兩個地圖標記。請取得單機版以建立更多標記。 massCutConfirm: title: 確認剪下 desc: 你將要剪下很多建築,準確來說有幢!你確定要這麼做嗎? @@ -170,16 +172,16 @@ dialogs: editSignal: title: 訊號設定 descItems: "選擇一個預先設定的物件" - descShortKey: ... 或輸入圖形的短代碼 (可以由 here 生成) + descShortKey: …或輸入圖形的簡短代碼(可以在這裡建立) renameSavegame: title: 重新命名存檔 desc: 你可以在這裡重新命名存檔 tutorialVideoAvailable: - title: 有教程 - desc: 這個等級有教學影片!你想觀看嗎? + title: 有教學 + desc: 這個等級有教學影片!你想觀看嗎? tutorialVideoAvailableForeignLanguage: - title: 有教程 - desc: 這個等級目前只有英文版教學影片,你想觀看嗎? + title: 有教學 + desc: 這個等級目前只有英文版教學影片,你想觀看嗎? ingame: keybindingsOverlay: moveMap: 移動 @@ -191,10 +193,10 @@ ingame: disableAutoOrientation: 關閉自動定向 toggleHud: 開關基地 placeBuilding: 放置建築 - createMarker: 創建地圖標記 + createMarker: 建立地圖標記 delete: 銷毀 pasteLastBlueprint: 貼上一個藍圖 - lockBeltDirection: 啟用傳送帶規劃 + lockBeltDirection: 啟用輸送帶規劃 plannerSwitchSide: 規劃器換邊 cutSelection: 剪下選取 copySelection: 複製選取 @@ -202,8 +204,8 @@ ingame: pipette: 滴管 switchLayers: 切換層 buildingPlacement: - cycleBuildingVariants: 按鍵以選擇建築變體. - hotkeyLabel: "快捷鍵: " + cycleBuildingVariants: 按鍵以選擇建築變體。 + hotkeyLabel: "快捷鍵:" infoTexts: speed: 效率 range: 範圍 @@ -246,7 +248,7 @@ ingame: settingsMenu: playtime: 遊戲時間 buildingsPlaced: 建築數量 - beltsPlaced: 傳送帶數量 + beltsPlaced: 輸送帶數量 tutorialHints: title: 需要幫助? showHint: 顯示 @@ -256,23 +258,23 @@ ingame: waypoints: waypoints: 地圖標記 hub: 基地 - description: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。

- 為當前區域建立地圖標記或按 right-click 為選取區域建立地圖標記。 - creationSuccessNotification: 成功創建地圖標記。 + description: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。

+ 為目前區域建立地圖標記或按右鍵為選取區域建立地圖標記。 + creationSuccessNotification: 成功建立地圖標記。 interactiveTutorial: - title: 教程 + title: 教學 hints: - 1_1_extractor: 在圓形礦脈上放一個開採機來獲取圓形! - 1_2_conveyor: 用傳送帶將你的開採機連接到基地上! -

提示:用你的游標按下並拖動傳送帶! - 1_3_expand: 這不是一個放置型遊戲!建造更多的開採機和傳送帶來更快地完成目標。

+ 1_1_extractor: 在圓形礦脈上放一個開採機來採集圓形! + 1_2_conveyor: 用輸送帶將你的開採機連接到基地上! +

提示:用你的游標按下並拖曳輸送帶! + 1_3_expand: 這不是一個放置型遊戲!建造更多的開採機和輸送帶來更快地完成目標。

提示:按住SHIFT鍵來放置多個開採機,用R鍵旋轉它們。 - 2_1_place_cutter: "現在放置一個切割機並利用它把圓圈切成兩半!

+ 2_1_place_cutter: "現在放置一個切割機並利用它把圓圈切成兩半!

PS: 不論切割機的方向,它都會把圖形垂直地切成兩半。" - 2_2_place_trash: 切割機可能會堵塞並停止運作!

+ 2_2_place_trash: 切割機可能會堵塞並停止運作

垃圾桶把「目前」不需要的部分處理掉。 - 2_3_more_cutters: "做得好! 現在,再放2個切割機來加速這個緩慢的生產線!

- PS: 使用0-9快捷鍵可以更快選取建築 !" + 2_3_more_cutters: "做得好! 現在,再放2個切割機來加速這個緩慢的生產線!

+ PS: 使用0-9快捷鍵可以更快選取建築 !" 3_1_rectangles: "現在來開採一些方形吧!蓋4座開採機,把形狀收集到基地。

PS: 選擇輸送帶,按住SHIFT並拖曳滑鼠可以計畫輸送帶位置!" 21_1_place_quad_painter: 放置一個切割機(四分)並取得一些 @@ -334,7 +336,7 @@ ingame: desc: 遊戲使我利用閒暇時間做的! shopUpgrades: belt: - name: 傳送帶、平衡機、隧道 + name: 輸送帶、平衡機、隧道 description: 效率 倍 → 倍 miner: name: 開採 @@ -348,8 +350,8 @@ shopUpgrades: buildings: belt: default: - name: 傳送帶 - description: 運送物品,按住並拖動來放置多個。 + name: 輸送帶 + description: 運送物品,按住並拖曳來放置多個。 miner: default: name: 開採機 @@ -360,10 +362,10 @@ buildings: underground_belt: default: name: 隧道 - description: 可以從其他傳送帶或建築底下方運送物品。 + description: 可以從其他輸送帶或建築底下方運送物品。 tier2: name: 貳級隧道 - description: 可以從其他傳送帶或建築底下方運送物品。 + description: 可以從其他輸送帶或建築底下方運送物品。 cutter: default: name: 切割機 @@ -379,7 +381,7 @@ buildings: name: 旋轉機(逆時針) description: 將圖形逆時針旋轉90度。 rotate180: - name: 旋轉機 (180度) + name: 旋轉機(180度) description: 將圖形旋轉180度。 stacker: default: @@ -424,16 +426,16 @@ buildings: description: 多功能——將所有輸入平均分配到所有輸出。 merger: name: 合流機(右) - description: 將兩個傳送帶整合成一個。 + description: 將兩個輸送帶整合成一個。 merger-inverse: name: 合流機(左) - description: 將兩個傳送帶整合成一個。 + description: 將兩個輸送帶整合成一個。 splitter: name: 分流機(右) - description: 將單個傳送帶分流成兩個。 + description: 將單個輸送帶分流成兩個。 splitter-inverse: name: 分流機(左) - description: 將單個傳送帶分流成兩個。 + description: 將單個輸送帶分流成兩個 storage: default: name: 倉庫 @@ -453,25 +455,25 @@ buildings: logic_gate: default: name: AND 邏輯閘 - description: 當輸入均為「真」時,輸出才為1。 (「真」值代表:形狀正確、顏色正確或布林值為1) + description: 當輸入均為「真」時,輸出才為1。(「真」值代表:形狀正確、顏色正確或布林值為1) not: name: NOT 邏輯閘 - description: 當輸入之ㄧ為「假」時,輸出才為1。 (「假」值代表:形狀不正確、顏色不正確或布林值為0) + description: 當輸入之ㄧ為「假」時,輸出才為1。(「假」值代表:形狀不正確、顏色不正確或布林值為0) xor: name: XOR 邏輯閘 - description: 當輸入均為「假」時,輸出才為1。 (「假」值代表:形狀不正確、顏色不正確或布林值為0) + description: 當輸入均為「假」時,輸出才為1。(「假」值代表:形狀不正確、顏色不正確或布林值為0) or: name: OR 邏輯閘 - description: 當輸入之ㄧ為「真」時,輸出才為1。 (「真」值代表:形狀正確、顏色正確或布林值為1) + description: 當輸入之ㄧ為「真」時,輸出才為1。(「真」值代表:形狀正確、顏色正確或布林值為1) transistor: default: name: 電晶體 description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 - (「真」值代表:形狀正確、顏色正確或布林值為1) + (「真」值代表:形狀正確、顏色正確或布林值為1) mirrored: name: 電晶體 description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 - (「真」值代表:形狀正確、顏色正確或布林值為1) + (「真」值代表:形狀正確、顏色正確或布林值為1) filter: default: name: 物件分類器 @@ -483,7 +485,7 @@ buildings: description: 連接一個訊號到顯示器上顯示,訊號可以是形狀、物件或布林值。 reader: default: - name: 傳送帶讀取機 + name: 輸送帶讀取機 description: 它會讀取輸送帶的平均流量,(解鎖後)在電路層輸出最後讀取的物件。 analyzer: default: @@ -524,7 +526,7 @@ storyRewards: desc: 順時針旋轉機已解鎖。它會順時針旋轉輸入的圖形90度。 reward_painter: title: 上色 - desc: 上色機已解鎖。開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。

備註:如果你是色盲,設置中有色盲模式可以選。 + desc: 上色機已解鎖。開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。

備註:如果你是色盲,設定中有色盲模式可以選。 reward_mixer: title: 混色 desc: 混色器已解鎖-在此建築物中使用附加混合結合兩種顏色! @@ -534,14 +536,14 @@ storyRewards: reward_splitter: title: 分流 desc: 分流機平衡機的變體)已解鎖。 - - 它將單個傳送帶分流成兩個。 + - 它將單個輸送帶分流成兩個。 reward_tunnel: title: 隧道 - desc: 隧道已解鎖。你現在可以從其他傳送帶或建築底下運送物品了! + desc: 隧道已解鎖。你現在可以從其他輸送帶或建築底下運送物品了! reward_rotater_ccw: title: 逆時針旋轉 desc: 逆時針旋轉機已解鎖。它會逆時針旋轉輸入的圖形90度。 - 逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並按「T」來切換變體就能創建。 + 逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並按「T」來切換變體就能建立。 reward_miner_chainable: title: 鏈式開採 desc: "鏈式開採機變體已解鎖。它是開採機的一個變體。 @@ -581,11 +583,11 @@ storyRewards: desc: 恭喜你!另外,我們已經計劃在單機版中加入更多內容! reward_balancer: title: 平衡物流 - desc: 平衡機已解鎖。在大型工廠中,平衡機負責合流或分流多個傳送帶上的物品。 + desc: 平衡機已解鎖。在大型工廠中,平衡機負責合流或分流多個輸送帶上的物品。 reward_merger: title: 合流 desc: 合流機平衡機的變體)已解鎖。 - - 它會將兩個傳送帶整合成一個。 + - 它會將兩個輸送帶整合成一個。 reward_belt_reader: title: 讀取輸送帶 desc: 輸送帶讀取機已解鎖。 @@ -612,10 +614,11 @@ storyRewards: desc: 邏輯閘已解鎖。 你可以覺得無所謂,但其實邏輯閘其實超酷的!

有了這些邏輯閘,你可以運算 AND, OR, XOR 與 NOT。

- 錦上添花,我再送你電晶體! + 錦上添花,我再送你電晶體! reward_virtual_processing: title: 虛擬操作 - desc: 虛擬操作!

已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。 + desc: + 虛擬操作

已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。 繼續遊玩的你現在有三個選項:

- 蓋一個自動生成任何基地要求圖形的自動機(推薦!)。

- 利用電路層蓋一些很酷建築

@@ -628,7 +631,7 @@ storyRewards: 首先,我為你解鎖四角上色機。 想要上色的角落記得在電路層通電!

E切換至電路層。

- PS: 設定裡開啟提示來啟動教程!" + PS: 設定裡開啟提示來啟動教學!" reward_filter: title: 物件分類器 desc: 物件分類器已解鎖。 @@ -638,7 +641,7 @@ storyRewards: title: 試玩結束 desc: 你已破關試玩版! settings: - title: 設置 + title: 設定 categories: general: 一般 userInterface: 使用者介面(UI) @@ -648,11 +651,11 @@ settings: dev: 開發版本 staging: 預覽版本 prod: 正式版本 - buildDate: 於創建 + buildDate: 於建立 labels: uiScale: - title: 用戶界面大小 - description: 改變用戶界面大小。用戶界面會隨著設備分辨率縮放,這個設置決定縮放比例。 + title: 顯示介面大小 + description: 改變顯示介面大小。顯示介面會隨著設備解析度縮放,這個設定決定縮放比例。 scales: super_small: 最小 small: 較小 @@ -661,7 +664,7 @@ settings: huge: 最大 scrollWheelSensitivity: title: 縮放靈敏度 - description: 改變縮放靈敏度(鼠標滾輪或者觸控板)。 + description: 改變縮放靈敏度(滑鼠滾輪或者軌跡板)。 sensitivity: super_slow: 最低 slow: 較低 @@ -687,17 +690,17 @@ settings: dark: 深色 light: 淺色 refreshRate: - title: 模擬頻率、刷新頻率 - description: 如果你的顯示器是144hz的,請在這裡更改刷新頻率,這樣遊戲可以正確地根據你的螢幕進行模擬。但是如果你的電腦性能不佳,提高刷新頻率可能降低幀數。 + title: 模擬頻率、更新頻率 + description: 如果你的顯示器是 144Hz 的,請在這裡更改更新頻率,這樣遊戲可以正確地根據你的螢幕進行模擬。但是如果你的電腦效能不佳,提高更新頻率可能降低幀數。 alwaysMultiplace: title: 多重放置 - description: 開啟這個選項之後放下建築將不會取消建築選擇。等同於一直按下SHIFT鍵。 + description: 開啟這個選項之後放下建築將不會取消建築選擇。等同於一直按下 SHIFT 鍵。 offerHints: - title: 提示與教程 - description: 是否顯示提示、教程以及一些其他的幫助理解遊戲的UI元素。 + title: 提示與教學 + description: 是否顯示提示、教學以及一些其他的幫助理解遊戲的介面元素。 movementSpeed: title: 移動速度 - description: 改變攝像頭移動速度 + description: 改變視角移動速度 speeds: super_slow: 最慢 slow: 較慢 @@ -706,35 +709,35 @@ settings: super_fast: 非常快 extremely_fast: 最快 enableTunnelSmartplace: - title: 智能隧道放置 - description: 啟用後,放置隧道時會將多餘的傳送帶移除。 此外,拖動隧道可以快速鋪設隧道,以及移除不必要的隧道。 + title: 智慧隧道放置 + description: 啟用後,放置隧道時會將多餘的輸送帶移除。此外,拖曳隧道可以快速鋪設隧道,以及移除不必要的隧道。 vignette: title: 暈映 - description: 啟用暈映,將屏幕角落裡的顏色變深,更容易閱讀文字。 + description: 啟用暈映,將螢幕角落裡的顏色變深,更容易閱讀文字。 autosaveInterval: title: 自動刷新時間 - description: 控制遊戲自動刷新的頻率。 您也可以禁用它。 + description: 控制遊戲自動刷新的頻率。您也可以停用它。 intervals: - one_minute: 1分鐘 - two_minutes: 2分鐘 - five_minutes: 5分鐘 - ten_minutes: 10分鐘 - twenty_minutes: 20分鐘 + one_minute: 1 分鐘 + two_minutes: 2 分鐘 + five_minutes: 5 分鐘 + ten_minutes: 10 分鐘 + twenty_minutes: 20 分鐘 disabled: 停用 compactBuildingInfo: - title: 省略建築信息 + title: 省略建築資訊 description: |- - 通過顯示建築物的比率來縮短建築物的資訊框。 否則 + 通過顯示建築物的比例來縮短建築物的資訊框。否則 顯示所有說明+圖像。 disableCutDeleteWarnings: title: 停用剪下/刪除的警告 description: 剪下/刪除超過100幢建築物時不顯示警告。 enableColorBlindHelper: title: 色盲模式 - description: 如果您是色盲者,啟用了這設定,就可以玩遊戲了。 + description: 如果您是色盲者,啟用了這設定就可以玩遊戲了。 rotationByBuilding: title: 依建築類型旋轉 - description: 每個建築類型,將會分別記住您最後一次使用的旋轉方向。 如果您常常切換不同類型的建築,這樣可能會更方便。 + description: 每個建築類型,將會分別記住您最後一次使用的旋轉方向。如果您常常切換不同類型的建築,這樣可能會更方便。 soundVolume: title: 音效 description: 音效設定 @@ -752,8 +755,8 @@ settings: description: 預設是開啟的,按下右鍵時,清空游標上顯示的準備要蓋建築。 如果關閉此選項,你可以一邊蓋工廠一邊刪除不要的建築。 lowQualityTextures: - title: 低畫質(醜) - description: 用低畫質節省效能。遊戲畫面會變的很醜! + title: 低畫質(簡陋) + description: 用低畫質節省效能。遊戲畫面會變的很簡陋! displayChunkBorders: title: 顯示分區邊界 description: 遊戲是由許多 16x16 的分區組成,啟用這個選項會顯示分區的邊界。 @@ -762,7 +765,7 @@ settings: description: 預設是開啟的,當滴管移動到資源叢上方時,選擇開採機。 simplifiedBelts: title: 簡化輸送帶(醜) - description: 為節省效能,不 render 輸送帶。 + description: 為節省效能,不渲染輸送帶。 除非有必要節省效能,不然我是不建議使用。 enableMousePan: title: 允許用滑鼠移動畫面 @@ -775,9 +778,9 @@ settings: description: 控制地圖資源標示大小(縮小俯瞰時)。 rangeSliderPercentage: % keybindings: - title: 按鍵設置 - hint: 提示:使用 CTRL、SHIFT、ALT ! 這些建在放置建築時有不同的效果。 - resetKeybindings: 重置按鍵設置 + title: 按鍵設定 + hint: 提示:使用 CTRL、SHIFT、ALT ! 這些建在放置建築時有不同的效果。 + resetKeybindings: 重置按鍵設定 categoryLabels: general: 通用 ingame: 遊戲 @@ -796,12 +799,12 @@ keybindings: centerMap: 回到基地 mapZoomIn: 放大 mapZoomOut: 縮小 - createMarker: 創建地圖標記 + createMarker: 建立地圖標記 menuOpenShop: 升級選單 menuOpenStats: 統計選單 toggleHud: 開關基地 - toggleFPSInfo: 開關幀數與調試信息 - belt: 傳送帶 + toggleFPSInfo: 開關幀數與除錯信息 + belt: 輸送帶 underground_belt: 隧道 miner: 開採機 cutter: 切割機 @@ -820,12 +823,12 @@ keybindings: massSelectCopy: 複製 placementDisableAutoOrientation: 取消自動定向 placeMultiple: 繼續放置 - placeInverse: 反向放置傳送帶 + placeInverse: 反向放置輸送帶 pasteLastBlueprint: 貼上前一張藍圖 massSelectCut: 剪切 exportScreenshot: 匯出截圖 mapMoveFaster: 快速移動 - lockBeltDirection: 啟用傳送帶規劃 + lockBeltDirection: 啟用輸送帶規劃 switchDirectionLockSide: 規劃器:換邊 pipette: 滴管 menuClose: 關閉選單 @@ -844,7 +847,7 @@ keybindings: transistor: 電晶體 analyzer: 形狀分析機 comparator: 比對機 - item_producer: 物品生產機(沙盒模式) + item_producer: 物品生產機(沙盒模式) copyWireValue: "電路:複製數值於游標底下" about: title: 關於遊戲 @@ -866,63 +869,63 @@ demo: restoringGames: 恢復存檔 importingGames: 匯入存檔 oneGameLimit: 最多一個存檔 - customizeKeybindings: 按鍵設置 + customizeKeybindings: 按鍵設定 exportingBase: 匯出工廠截圖 settingNotAvailable: 在試玩版中不可用。 tips: - - 基地接受任何輸入,不只是當前要求的圖形! - - 盡量讓工廠模組化,會有回報的! - - 建築不要距離基地太近,否則容易混亂! + - 基地接受任何輸入,不只是當下要求的圖形! + - 盡量讓工廠模組化,會有回報的! + - 建築不要距離基地太近,否則容易混亂! - 如果堆疊不如預期,嘗試將輸入端互換。 - 輸送帶的方向可以按 R 更換。 - 按住 CTRL 來防止輸送帶自動轉向。 - 同等級的生產比例會是一樣的。 - 串聯比並聯更有效率。 - - 遊戲後期可以解鎖更多建築變體! + - 遊戲後期可以解鎖更多建築變體! - 玩家可以按 T 來選擇不同變體。 - - 對稱是關鍵! + - 對稱是關鍵! - 不同等級的隧道可以相互交織。 - - 盡量讓工廠保持緊密,會有回報的! + - 盡量讓工廠保持緊密,會有回報的! - 上色機有對稱的變體。按 T 來選擇不同變體。 - 正確的建築比例可以將效率最大化。 - 最高級時,五個開採機可填滿一個輸送帶。 - - 別忘記使用隧道! + - 別忘記使用隧道! - 最高效率不一定來自均勻切割。 - 按住 SHIFT 輕鬆規劃長距離輸送帶。 - 不論擺放方向,切割機永遠做垂直切割。 - 白 = 紅 + 綠 + 藍。 - 倉庫優先從左側輸出。 - - 花點時間研究可以重複利用的設計,會有回報的! + - 花點時間研究可以重複利用的設計,會有回報的! - 按住 SHIFT 可以一次放置多個建築。 - 按住 ALT 以反轉輸送帶的放置方向。 - - 效率是關鍵! + - 效率是關鍵! - 離基地越遠得圖形叢越複雜。 - 機器的運作速度有上限,多放幾個增加生產效率。 - 用平衡機讓效率最大化。 - 規劃很重要,盡量別讓輸送帶錯綜複雜。 - - 預先規劃,不然會混亂不堪! + - 預先規劃,不然會混亂不堪! - 不要刪除舊的工廠,解鎖更新能會需要它們。 - - 先試著靠自己破第20關再去尋求幫助。 + - 先試著靠自己破第 20 關再去尋求幫助。 - 不要讓東西複雜化,保持簡單則行的遠。 - 遊戲中有時需要重複利用工廠,設計時記得考量重複利用性。 - 有些圖形地圖上就找的到,不必自行堆疊。 - 地圖永遠部會自然生成完整的風車圖形。 - 先上色再切割會比較有效率。 - 有了模組,空間淪為假議題、凡夫俗子的憂思。 - - 創建一個藍圖工廠,這對模組化很有幫助。 + - 建立一個藍圖工廠,這對模組化很有幫助。 - 靠近一點看混色機,你會找到解答。 - 按 CTRL + 點選想選取的區域。 - 離基地太近的建築可能在未來會礙事。 - - 更新目錄的每個圖形旁都有圖釘,點選即可把圖形釘在螢幕上(目標圖形旁)。 - - 混合所有基本色就會得到白色! - - 地圖是無限延展的,別執著,擴張吧! - - Factorio 是我最喜歡的遊戲,非常推薦! + - 更新目錄的每個圖形旁都有圖釘,點選即可把圖形訂選在螢幕上(目標圖形旁)。 + - 混合所有基本色就會得到白色! + - 地圖是無限延展的;別執著於一處,盡情地擴張吧! + - Factorio 是我最喜歡的遊戲,非常推薦! - 四分切割機從右上角順時鐘地輸出圖形的四個區塊。 - 你可以從主畫面下載存檔。 - - 去設定頁看看,有很多有用的按鍵組合! + - 去設定頁看看,有很多有用的按鍵組合! - 有很多東西都可以設定,有空的話去設定頁看看。 - 看不見基地時,基地的標示左側有個小指南針會提醒你它的方位。 - - 清除輸送帶有個方法:複製它再原地貼上。 - - 按 F4 來顯示螢幕的幀數(FPS)與刷新率(Tick Rate)。 + - 清除輸送帶有個方法:複製它再原地貼上。 + - 按 F4 來顯示螢幕的幀數(FPS)與刷新率(Tick Rate)。 - 按 F4 兩次來顯示相機和游標的絕對位置。 - 在已標記的圖形上按左鍵去除標記。 From 813fb941a7d5dde22615fd5509aaaa94727eaade Mon Sep 17 00:00:00 2001 From: JoaoP22 <43392813+JoaoP22@users.noreply.github.com> Date: Mon, 7 Dec 2020 15:26:25 -0300 Subject: [PATCH 33/42] Update base-pt-br.yaml (#1009) I updated some translations --- translations/base-pt-BR.yaml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 45f72353..7f702a5c 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -199,13 +199,11 @@ dialogs: title: Renomear Save desc: Você pode renomear seu save aqui. tutorialVideoAvailable: - title: Tutorial Available - desc: There is a tutorial video available for this level! Would you like to - watch it? + title: Tutorial disponível + desc: Existe um tutorial em vídeo para esse nível! Gostaria de assistí-lo? tutorialVideoAvailableForeignLanguage: - title: Tutorial Available - desc: There is a tutorial video available for this level, but it is only - available in English. Would you like to watch it? + title: Tutorial disponível + desc: Existe um tutorial em vídeo para esse nível, mas está disponível apenas em Inglês. Gostaria de assistí-lo? ingame: keybindingsOverlay: moveMap: Mover From cf22c7d9845cbff88515802a1493ae5b0e29d566 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 19:30:38 +0100 Subject: [PATCH 34/42] Fix save icon not matching up, closes #1010, closes #905 --- res/ui/icons/notification_saved.png | Bin 1744 -> 1726 bytes src/js/changelog.js | 1 + 2 files changed, 1 insertion(+) diff --git a/res/ui/icons/notification_saved.png b/res/ui/icons/notification_saved.png index de7096a4ab69dd274c25eb106667a03dc5eb8440..067f2c0e6b12230eb9341fc56b67931c51e3f695 100644 GIT binary patch delta 612 zcmcb>yN`E*HaFu&1_s8BjEOTe_%@pLGT9j#=^B`a7+P8xSy-8vX&V??85k%jROA*| z`KFd6rX-dmx+IpQ+A0|t7#ZkdD4xv7T&9v@W|W+mWND$Bl4_KqYhhwyrkj{%1mq?e zBpD?eCz)FqCQqKtEJK{a+srD&DO6?&BTnI5mc8|#?Qe1dJ?`P@;uunK>+LPWu0swY z$3FUO*mP65q9q|&wPNYkZ4v&9Pp;7tS zc(R9qr^>ZkeI;6VZwE~}uyNj=4?h=|=+5=nzx3@c=AB37<773M8j8#=)y-{O_MS&X z(V;M`XBFR;`v2_=uE%=$MJyZS9T^W4v#2uk3yLt_arF?6{i&&(!K@*$Zo9{0>$g2B zU&Jb&S2S*W>S;B>S$8Ybj+~`8k2B65)#)GG_hQ_<8!GzfufnpyAY(n*5HpX)_b<{+L(3ffY>}i5npDPyK`#14Bd1$6v+l z2H`vg<>ifidm=pdPtpAsK5OZ*8FQ-@=W5>M`bP0 Hl+XkKx9r(C delta 630 zcmdnTdx3X?HaFi91_r((j8nDwq&J%NGT9lJ>KdAb7#docT38tvYa19@85k%jROA*| z`KFd6rX-dmx+IpQ+A0|t7#ZkdD4xv7T&7}~lwx6FlA5e*Zf23FYiwp>qMKx7YNTsv zkYt`@YLse_W}Gy6HnR+I3U4#35T{U?C5$+Qb6NJ*S7_$^Wnf^8@^ox{I-}l7F$0!sDd|&gZSTnno>O?P&@TRfOa;@dh1b7I%O+GmVOzyF z;T&HD+d3zPD8~A;$JrhjGp_4r33V!qP#piTN8F1H-aNj^%R{$`~5T z9~?6}z}V!<&=78~w3cZ?jd}>z1HDY6^>Y6u6WC2wvwXPy%e(3t3 diff --git a/src/js/changelog.js b/src/js/changelog.js index c0ef3e66..6fdb3f09 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -13,6 +13,7 @@ export const CHANGELOG = [ "Add button to unpin shapes from the left side (by artemisSystem)", "Fix middle mouse button also placing blueprints (by Eiim)", "Hide wires grid when using the 'Disable Grid' setting (by EmeraldBlock)", + "Fix UI using multiple different save icons", "Updated translations (Thanks to all contributors!)", ], }, From 90eb088e760bdb1e1edd2fabfea74a8d2f69d63e Mon Sep 17 00:00:00 2001 From: Fernando Zanutto Date: Mon, 7 Dec 2020 15:31:27 -0300 Subject: [PATCH 35/42] Update base-pt-BR.yaml (#1013) --- translations/base-pt-BR.yaml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index 7f702a5c..bf215706 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -313,19 +313,19 @@ ingame: esteiras para concluir o objetivo mais rapidamente.

Dica, segure SHIFT para colocar vários extratores e use R para girá-los. - 2_1_place_cutter: "Now place a Cutter to cut the circles in two - halves!

PS: The cutter always cuts from top to - bottom regardless of its orientation." - 2_2_place_trash: The cutter can clog and stall!

Use a - trash to get rid of the currently (!) not - needed waste. - 2_3_more_cutters: "Good job! Now place 2 more cutters to speed - up this slow process!

PS: Use the 0-9 - hotkeys to access buildings faster!" - 3_1_rectangles: "Now let's extract some rectangles! Build 4 - extractors and connect them to the hub.

PS: - Hold SHIFT while dragging a belt to activate - the belt planner!" + 2_1_place_cutter: "Agora coloque um Cortador para cortar os círculos em duas + metades!

PS: O cortador sempre corta de cima para + baixo independentemente de sua orientação." + 2_2_place_trash: O cortador pode emtupir e parar!

Use um + lixo para se livrar do que atualmente (!) não for + necessário. + 2_3_more_cutters: "Bom trabalho! Agora coloque mais 2 cortadores para acelerar + este processo lento!

PS: Use as hotkeys 0-9 + para acessar as construções mais rápido!" + 3_1_rectangles: "Vamos extrair alguns retângulos! Construa 4 + extratores e conecte-os ao hub.

PS: + Segure SHIFT enquanto arrasta a esteira para ativar o + planejador de esteiras!" 21_1_place_quad_painter: Place the quad painter and get some circles, white and red color! @@ -440,7 +440,7 @@ buildings: name: Rotacionador (Anti-horário) description: Gira as formas no sentido anti-horário em 90 graus. rotate180: - name: Rotacionador (180) + name: Rotacionador (180°) description: Gira as formas em 180 graus. stacker: default: @@ -701,7 +701,7 @@ storyRewards: você meça a passagem de itens em uma esteira.

Espere até você desbloquear os fios - ele se torna muito útil! reward_rotater_180: - title: Rotacionador (180 graus) + title: Rotacionador (180°) desc: Você acabou de desbloquear o rotacionador de 180 graus! - Ele permite que você rotacione uma forma em 180 graus (Surpresa! :D) reward_display: From 46e53244d4440c4cd7f514c20e66f0ad8b932c10 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 19:37:55 +0100 Subject: [PATCH 36/42] display version in main menu --- src/css/states/main_menu.scss | 16 +++++++++------- src/js/states/main_menu.js | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/css/states/main_menu.scss b/src/css/states/main_menu.scss index cf0ab718..008bd30d 100644 --- a/src/css/states/main_menu.scss +++ b/src/css/states/main_menu.scss @@ -94,9 +94,11 @@ } .standaloneBanner { - background: rgb(255, 234, 245); - @include S(border-radius, $globalBorderRadius); + background: rgb(255, 75, 84); + @include S(border-radius, $globalBorderRadius + 4); box-sizing: border-box; + border: solid rgba(#fff, 0.15); + @include S(border-width, 4px); @include S(padding, 15px); display: flex; @@ -110,13 +112,14 @@ h3 { @include Heading; font-weight: bold; - @include S(margin-bottom, 5px); + @include S(margin-bottom, 20px); text-transform: uppercase; - color: $colorRedBright; + color: #fff; } p { @include Text; + color: #fff; } ul { @@ -138,7 +141,7 @@ display: block; text-indent: -999em; cursor: pointer; - @include S(margin-top, 20px); + @include S(margin-top, 30px); pointer-events: all; transition: all 0.12s ease-in; transition-property: opacity, transform; @@ -181,9 +184,8 @@ .updateLabel { position: absolute; transform: translateX(50%) rotate(-5deg); - color: $colorRedBright; + color: rgb(231, 78, 58); @include Heading; - text-transform: uppercase; font-weight: bold; @include S(right, 40px); @include S(bottom, 20px); diff --git a/src/js/states/main_menu.js b/src/js/states/main_menu.js index fa177874..dc8d30ce 100644 --- a/src/js/states/main_menu.js +++ b/src/js/states/main_menu.js @@ -59,7 +59,7 @@ export class MainMenuState extends GameState {
From 22735591e9905e77f850528bbf25a96e5653f771 Mon Sep 17 00:00:00 2001 From: tobspr Date: Mon, 7 Dec 2020 20:14:23 +0100 Subject: [PATCH 37/42] Minor hotfixes --- src/js/game/hud/parts/blueprint_placer.js | 1 + src/js/game/hud/parts/constant_signal_edit.js | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/js/game/hud/parts/blueprint_placer.js b/src/js/game/hud/parts/blueprint_placer.js index b70fb82a..54e2e3b7 100644 --- a/src/js/game/hud/parts/blueprint_placer.js +++ b/src/js/game/hud/parts/blueprint_placer.js @@ -126,6 +126,7 @@ export class HUDBlueprintPlacer extends BaseHUDPart { this.root.hubGoals.takeShapeByKey(this.root.gameMode.getBlueprintShapeKey(), cost); this.root.soundProxy.playUi(SOUNDS.placeBuilding); } + return STOP_PROPAGATION; } } diff --git a/src/js/game/hud/parts/constant_signal_edit.js b/src/js/game/hud/parts/constant_signal_edit.js index b030ac52..59115e62 100644 --- a/src/js/game/hud/parts/constant_signal_edit.js +++ b/src/js/game/hud/parts/constant_signal_edit.js @@ -23,9 +23,6 @@ export class HUDConstantSignalEdit extends BaseHUDPart { deleteOnCancel: false, }); return STOP_PROPAGATION; - } else if (button === enumMouseButton.right) { - this.root.logic.tryDeleteBuilding(contents); - return STOP_PROPAGATION; } } } From aa2b64eae58027dfc43a9b0b9626649751d36f18 Mon Sep 17 00:00:00 2001 From: tobspr Date: Wed, 9 Dec 2020 10:41:49 +0100 Subject: [PATCH 38/42] Fix items overlapping sometimes, fix constant signal being editable --- gulp/steampipe/upload.bat | 2 +- src/js/changelog.js | 8 +++ src/js/game/hud/parts/constant_signal_edit.js | 4 ++ src/js/game/systems/item_ejector.js | 51 +++++++++++++++++-- 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/gulp/steampipe/upload.bat b/gulp/steampipe/upload.bat index de461069..86dcf926 100644 --- a/gulp/steampipe/upload.bat +++ b/gulp/steampipe/upload.bat @@ -1,4 +1,4 @@ @echo off -cmd /c gulp standalone.prepareVDF +cmd /c yarn gulp standalone.prepareVDF steamcmd +login %STEAM_UPLOAD_SHAPEZ_ID% %STEAM_UPLOAD_SHAPEZ_USER% +run_app_build %cd%/scripts/app.vdf +quit start https://partner.steamgames.com/apps/builds/1318690 diff --git a/src/js/changelog.js b/src/js/changelog.js index 6fdb3f09..60df26cf 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,4 +1,12 @@ export const CHANGELOG = [ + { + version: "1.2.3", + date: "unreleased", + entries: [ + "Fixed constant signals being editable from the regular layer", + "Fixed items still overlapping sometimes between buildings and belts", + ], + }, { version: "1.2.2", date: "07.12.2020", diff --git a/src/js/game/hud/parts/constant_signal_edit.js b/src/js/game/hud/parts/constant_signal_edit.js index 59115e62..283c7619 100644 --- a/src/js/game/hud/parts/constant_signal_edit.js +++ b/src/js/game/hud/parts/constant_signal_edit.js @@ -13,6 +13,10 @@ export class HUDConstantSignalEdit extends BaseHUDPart { * @param {enumMouseButton} button */ downPreHandler(pos, button) { + if (this.root.currentLayer !== "wires") { + return; + } + const tile = this.root.camera.screenToWorld(pos).toTileSpace(); const contents = this.root.map.getLayerContentXY(tile.x, tile.y, "wires"); if (contents) { diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index 6bbb42ce..a4484795 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -332,10 +332,53 @@ export class ItemEjectorSystem extends GameSystemWithFilter { let progress = slot.progress; const nextBeltPath = slot.cachedBeltPath; if (nextBeltPath) { - progress = Math.min( - progress, - nextBeltPath.spacingToFirstItem / globalConfig.itemSpacingOnBelts - ); + /* + If you imagine the track between the center of the building and the center of the first belt as + a range from 0 to 1: + + Building Belt + | X | X | + | 0...................1 | + + And for example the first item on belt has a distance of 0.4 to the beginning of the belt: + + Building Belt + | X | X | + | 0...................1 | + ^ item + + Then the space towards this first item is always 0.5 (the distance from the center of the building to the beginning of the belt) + PLUS the spacing to the item, so in this case 0.5 + 0.4 = 0.9: + + Building Belt + | X | X | + | 0...................1 | + ^ item @ 0.9 + + Since items must not get clashed, we need to substract some spacing (lets assume it is 0.6, exact value see globalConfig.itemSpacingOnBelts), + So we do 0.9 - globalConfig.itemSpacingOnBelts = 0.3 + + Building Belt + | X | X | + | 0...................1 | + ^ ^ item @ 0.9 + ^ max progress = 0.3 + + Because now our range actually only goes to the end of the building, and not towards the center of the building, we need to multiply + all values by 2: + + Building Belt + | X | X | + | 0.........1.........2 | + ^ ^ item @ 1.8 + ^ max progress = 0.6 + + And that's it! If you summarize the calculations from above into a formula, you get the one below. + */ + + const maxProgress = + (0.5 + nextBeltPath.spacingToFirstItem - globalConfig.itemSpacingOnBelts) * 2; + progress = Math.min(maxProgress, progress); } // Skip if the item would barely be visible From 117afd329188d44707cc62510d3381fd877ea744 Mon Sep 17 00:00:00 2001 From: Mironov Danil <71277890+mironovmeow@users.noreply.github.com> Date: Wed, 9 Dec 2020 16:44:59 +0700 Subject: [PATCH 39/42] Update base-ru.yaml (#1019) Changes in tips: 1 typo, removed 1 English phrase (this phrase was in Russian here) and some other changes. --- translations/base-ru.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 94ee3921..c103ea3f 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -1037,7 +1037,7 @@ tips: - Чтобы получить белый цвет, смешайте все три цвета. - Удерживание SHIFT активирует планировщик конвейеров, что упрощает простройку длинных конвейеров. - Вкладывайте время в строительство повторяемых механизмов - оно того стоит! - - Смешайте все три цвета для получения булого. + - Смешайте все три цвета для получения белого. - Буффер хранилища с большим приоритетом выдаёт на левый выход. - Эффективность - ключ к успеху! - Удерживание CTRL даёт возможность размещения нескольких построек. @@ -1060,8 +1060,7 @@ tips: - С модулями теряется восприятие пространства; забота смертных. - Создайте отдельную фабрику чертежей. Они очень важны для модулей. - Взгляните внимательнее на смешиватель и вы найдете ответы на свои вопросы. - - With modules, space is merely a perception; a concern for mortal men. - - Строительство вблизи ХАБ-а может помешать будущим проектам. + - Строительство вблизи ХАБ-а может помешать будущим фабрикам. - Иконка булавки на каждой фигуре закрепляет ее на экране. - Используйте CTRL + ЛКМ для выбора области. - В вашем распоряжении бесконечная карта! Не загромождайте вашу фабрику, @@ -1073,7 +1072,7 @@ tips: - В этой игре множество полезных комбинаций клавиш. Загляните в настройки, чтобы ознакомиться с ними. - В этой игре множество настроек, не забудьте с ними ознакомиться. - - Маркер ХАБ-а имеет небольшой компас, указывающий его направление. + - Маркер ХАБ-а имеет небольшой компас, указывающий его местоположение. - Нажмите F4, чтобы показать FPS и Частоту Обновления. - Нажмите F4 дважды, чтобы показать координаты курсора и камеры. - Вы можете нажать на закрепленную фигуру слева, чтобы открепить ее. From c9cee9d22bf29d5952feebe8e345a31bad597b9e Mon Sep 17 00:00:00 2001 From: tobspr Date: Wed, 9 Dec 2020 14:03:53 +0100 Subject: [PATCH 40/42] Fix typo --- translations/base-ar.yaml | 4 ++-- translations/base-da.yaml | 4 ++-- translations/base-el.yaml | 4 ++-- translations/base-hr.yaml | 4 ++-- translations/base-lt.yaml | 4 ++-- translations/base-no.yaml | 4 ++-- translations/base-ro.yaml | 4 ++-- translations/base-sl.yaml | 4 ++-- translations/base-sr.yaml | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 305c9b88..50930b18 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -689,8 +689,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-da.yaml b/translations/base-da.yaml index 44293fdd..3d461d0e 100644 --- a/translations/base-da.yaml +++ b/translations/base-da.yaml @@ -693,8 +693,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-el.yaml b/translations/base-el.yaml index ec0df592..a09deaba 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -715,8 +715,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-hr.yaml b/translations/base-hr.yaml index ae62d58c..58975261 100644 --- a/translations/base-hr.yaml +++ b/translations/base-hr.yaml @@ -685,8 +685,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index f69bbc03..f03bd1d0 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -688,8 +688,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 8ab3a2a7..092379e6 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -702,8 +702,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 1dd87f08..82771831 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -704,8 +704,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-sl.yaml b/translations/base-sl.yaml index 907aa1f5..83d0c863 100644 --- a/translations/base-sl.yaml +++ b/translations/base-sl.yaml @@ -691,8 +691,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the diff --git a/translations/base-sr.yaml b/translations/base-sr.yaml index 35f2c8ca..5682a398 100644 --- a/translations/base-sr.yaml +++ b/translations/base-sr.yaml @@ -689,8 +689,8 @@ storyRewards: wires - then it gets really useful! reward_rotater_180: title: Rotater (180 degrees) - desc: You just unlocked the 180 degress rotater! - It allows - you to rotate a shape by 180 degress (Surprise! :D) + desc: You just unlocked the 180 degrees rotater! - It allows + you to rotate a shape by 180 degrees (Surprise! :D) reward_display: title: Display desc: "You have unlocked the Display - Connect a signal on the From b41a0ca1cb29b9b6b6b676638374a01ab06021bc Mon Sep 17 00:00:00 2001 From: Citron Date: Thu, 10 Dec 2020 11:53:45 -0300 Subject: [PATCH 41/42] Minor translation fix (#1022) * Update base-pt-BR.yaml Typo fix * Update base-pt-BR.yaml Minor translations and a typo fix. * Update base-pt-BR.yaml Removed untranslated text --- translations/base-pt-BR.yaml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index bf215706..db4bb0ab 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -586,7 +586,7 @@ buildings: entrada direita. item_producer: default: - name: Fábricante de Itens + name: Fabricante de Itens description: Disponível no modo sandbox apenas, envia o sinal recebido do plano de fios para o plano regular. storyRewards: @@ -657,7 +657,7 @@ storyRewards: title: Armazém desc: Você desbloqueou o armazém - Permite que você armazene itens até uma certa capacidade!

Ele prioriza a saída - da esquerda, para que você tambpem possa usá-lo como um portão de excesso! + da esquerda, para que você também possa usá-lo como um portão de excesso! reward_freeplay: title: Modo Livre desc: Você conseguiu! Você desbloqueou o modo livre! Isso @@ -917,17 +917,15 @@ settings: description: Permite mover o mapa ao mover o cursor para as bordas da tela. A velocidade depende da configuração Velocidade de Movimento. zoomToCursor: - title: Zoom towards Cursor - description: If activated the zoom will happen in the direction of your mouse - position, otherwise in the middle of the screen. + title: Zoom na direção do cursor + description: Se ativado, o zoom irá se deslocar na direção do cursor do seu mouse. Caso contrário, irá para o meio da tela. mapResourcesScale: - title: Map Resources Size - description: Controls the size of the shapes on the map overview (when zooming - out). + title: Tamanho do Mapa de Recursos + description: Controla o tamanho das formas no mapa de panorama (quando afasta o zoom). rangeSliderPercentage: % keybindings: title: Controles - hint: "Tip: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes + hint: "Dica: Certifique-se de usar CTRL, SHIFT e ALT! Eles permitem diferentes opções de construção." resetKeybindings: Resetar Controles categoryLabels: From 9b5811b8743e5d572529df52c79003c302e2b681 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?imreallybadatnames=E2=84=A2=EF=B8=8F?= <68000899+imreallybadatnames@users.noreply.github.com> Date: Mon, 21 Dec 2020 20:49:35 +1100 Subject: [PATCH 42/42] fix "banancer" typo (#1030) * fix "banancer" typo * fix confusion "and output everything else on the right" changed from "right" to "left" like in the original text * translate logic gate names --- translations/base-ru.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index c103ea3f..bb77dfc9 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -511,20 +511,20 @@ buildings: Фильтром, например. logic_gate: default: - name: AND Gate + name: И description: Издает значение "1" если оба входа положительны. (Положительный - значит ресурс, цвет или логическое значение "1") not: - name: NOT Gate + name: НЕ description: Издает значение "1" если вход не положительный. (Положительный - значит ресурс, цвет или логическое значение "1") xor: - name: XOR Gate + name: Исключающее ИЛИ description: Издает значение "1" только один из входов положительный. (Положительный - значит ресурс, цвет или логическое значение "1") or: - name: OR Gate + name: ИЛИ description: Издает значение "1" если хотя бы один вход положительный. (Положительный - значит ресурс, цвет или логическое значение "1"). @@ -565,7 +565,7 @@ buildings: unstacker: name: Виртуальный Разъединитель description: Виртуально извлекает самый верхний слой фигуры направо, а все - остальное направо. + остальное налево. stacker: name: Виртуальный Объединитель description: Виртуально помещает правый предмет поверх левого. @@ -683,7 +683,7 @@ storyRewards: reward_balancer: title: Балансер desc: - Многофункциональный банансер разблокирован - Он используется для разделения и обьединения + Многофункциональный балансер разблокирован - Он используется для разделения и обьединения потора предметов на несколько конвейеров! reward_merger: title: Компактный Соединитель