diff --git a/electron_wegame/index.js b/electron_wegame/index.js index 57d1f43e..23c277c4 100644 --- a/electron_wegame/index.js +++ b/electron_wegame/index.js @@ -43,7 +43,7 @@ function createWindow() { useContentSize: true, minWidth: 800, minHeight: 600, - title: "shapez.io Standalone", + title: "图形工厂", transparent: false, icon: path.join(__dirname, "favicon" + faviconExtension), // fullscreen: true, diff --git a/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js b/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js index f0187d0d..472a3491 100644 --- a/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js +++ b/src/js/game/hud/parts/HUDPuzzleNextPuzzle.js @@ -1,6 +1,10 @@ +/* typehints:start */ +import { PuzzlePlayGameMode } from "../../modes/puzzle_play"; +/* typehints:end */ + import { makeDiv } from "../../../core/utils"; import { T } from "../../../translations"; -import { PuzzlePlayGameMode } from "../../modes/puzzle_play"; + import { BaseHUDPart } from "../base_hud_part"; export class HUDPuzzleNextPuzzle extends BaseHUDPart { diff --git a/src/js/game/hud/parts/pinned_shapes.js b/src/js/game/hud/parts/pinned_shapes.js index a53ecbe5..c5bb9a82 100644 --- a/src/js/game/hud/parts/pinned_shapes.js +++ b/src/js/game/hud/parts/pinned_shapes.js @@ -232,15 +232,20 @@ export class HUDPinnedShapes extends BaseHUDPart { } // Show small info icon - const infoButton = document.createElement("button"); - infoButton.classList.add("infoButton"); - element.appendChild(infoButton); - const infoDetector = new ClickDetector(infoButton, { - consumeEvents: true, - preventDefault: true, - targetOnly: true, - }); - infoDetector.click.add(() => this.root.hud.signals.viewShapeDetailsRequested.dispatch(definition)); + let infoDetector; + if (!G_WEGAME_VERSION) { + const infoButton = document.createElement("button"); + infoButton.classList.add("infoButton"); + element.appendChild(infoButton); + infoDetector = new ClickDetector(infoButton, { + consumeEvents: true, + preventDefault: true, + targetOnly: true, + }); + infoDetector.click.add(() => + this.root.hud.signals.viewShapeDetailsRequested.dispatch(definition) + ); + } const amountLabel = makeDiv(element, null, ["amountLabel"], ""); diff --git a/src/js/game/hud/parts/shop.js b/src/js/game/hud/parts/shop.js index 96521898..4b353bd3 100644 --- a/src/js/game/hud/parts/shop.js +++ b/src/js/game/hud/parts/shop.js @@ -77,7 +77,9 @@ export class HUDShop extends BaseHUDPart { const requiredHandle = handle.requireIndexToElement[i]; requiredHandle.container.remove(); requiredHandle.pinDetector.cleanup(); - requiredHandle.infoDetector.cleanup(); + if (requiredHandle.infoDetector) { + requiredHandle.infoDetector.cleanup(); + } } // Cleanup @@ -119,9 +121,19 @@ export class HUDShop extends BaseHUDPart { pinButton.classList.add("pin"); container.appendChild(pinButton); - const viewInfoButton = document.createElement("button"); - viewInfoButton.classList.add("showInfo"); - container.appendChild(viewInfoButton); + let infoDetector; + if (!G_WEGAME_VERSION) { + const viewInfoButton = document.createElement("button"); + viewInfoButton.classList.add("showInfo"); + container.appendChild(viewInfoButton); + infoDetector = new ClickDetector(viewInfoButton, { + consumeEvents: true, + preventDefault: true, + }); + infoDetector.click.add(() => + this.root.hud.signals.viewShapeDetailsRequested.dispatch(shapeDef) + ); + } const currentGoalShape = this.root.hubGoals.currentGoal.definition.getHash(); if (shape === currentGoalShape) { @@ -146,14 +158,6 @@ export class HUDShop extends BaseHUDPart { } }); - const infoDetector = new ClickDetector(viewInfoButton, { - consumeEvents: true, - preventDefault: true, - }); - infoDetector.click.add(() => - this.root.hud.signals.viewShapeDetailsRequested.dispatch(shapeDef) - ); - handle.requireIndexToElement.push({ container, progressLabel, @@ -211,7 +215,9 @@ export class HUDShop extends BaseHUDPart { const requiredHandle = handle.requireIndexToElement[i]; requiredHandle.container.remove(); requiredHandle.pinDetector.cleanup(); - requiredHandle.infoDetector.cleanup(); + if (requiredHandle.infoDetector) { + requiredHandle.infoDetector.cleanup(); + } } handle.requireIndexToElement = []; } diff --git a/src/js/states/settings.js b/src/js/states/settings.js index 23a0b16a..352e0153 100644 --- a/src/js/states/settings.js +++ b/src/js/states/settings.js @@ -40,7 +40,7 @@ export class SettingsState extends TextualGameState { ` }
-
${T.global.loading} ...
+ ${G_WEGAME_VERSION ? "" : `
${T.global.loading} ...
`}
@@ -91,6 +91,9 @@ export class SettingsState extends TextualGameState { renderBuildText() { const labelVersion = this.htmlElement.querySelector(".buildVersion"); + if (!labelVersion) { + return; + } const lastBuildMs = new Date().getTime() - G_BUILD_TIME; const lastBuildText = formatSecondsToTimeAgo(lastBuildMs / 1000.0); diff --git a/translations/base-de.yaml b/translations/base-de.yaml index afaae040..04b15137 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -91,9 +91,9 @@ puzzleMenu: submittingPuzzle: Puzzle wird veröffentlicht noPuzzles: Hier gibt es bisher noch keine Puzzles. dlcHint: > - DLC schon gekauft? Stelle sicher, dass es aktiviert ist, indem du in - der Steam-Bibliothek shapez.io rechtsklickst und es unter Eigenschaften - > Zusatzinhalte (DLC) aktivierst. + DLC schon gekauft? Stelle sicher, dass es aktiviert ist, indem du in der + Steam-Bibliothek shapez.io rechtsklickst und es unter Eigenschaften > + Zusatzinhalte (DLC) aktivierst. categories: levels: Levels new: Neu diff --git a/translations/base-it.yaml b/translations/base-it.yaml index c8c10974..ecb8dafc 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -1051,8 +1051,9 @@ settings: si fa lo zoom indietro). shapeTooltipAlwaysOn: title: Shape Tooltip - Show Always - description: Determina se mostrare sempre la forma in uscita da un edificio quando si passa sopra di esso col cursore, - invece di dover premere 'ALT'. + description: Determina se mostrare sempre la forma in uscita da un edificio + quando si passa sopra di esso col cursore, invece di dover + premere 'ALT'. rangeSliderPercentage: % tickrateHz: Hz keybindings: @@ -1280,8 +1281,8 @@ puzzleMenu: medium: Medio hard: Difficile unknown: Non classificato - dlcHint: Hai già acquistato il DLC? Assicurati che sia attivo facendo clic destro - su shapez.io nella tua libreria e selezionando Proprietà > DLC. + dlcHint: Hai già acquistato il DLC? Assicurati che sia attivo facendo clic + destro su shapez.io nella tua libreria e selezionando Proprietà > DLC. search: action: Cerca placeholder: Inserisci il nome di un puzzle o di un autore diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index 9521a112..f793972a 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -1024,8 +1024,8 @@ settings: ayarlar. shapeTooltipAlwaysOn: title: Şekil İpucu - Her Zaman Göster - description: Şekil ipuçlarını 'ALT' tuşuna basarak göstermek yerine - her zaman gösterir. + description: Şekil ipuçlarını 'ALT' tuşuna basarak göstermek yerine her zaman + gösterir. tickrateHz: Hz keybindings: title: Tuş Atamaları diff --git a/translations/base-zh-CN-ISBN.yaml b/translations/base-zh-CN-ISBN.yaml index 20ab8a61..4416c789 100644 --- a/translations/base-zh-CN-ISBN.yaml +++ b/translations/base-zh-CN-ISBN.yaml @@ -137,13 +137,15 @@ dialogs: desc: 您还没有解锁蓝图功能!通过第12关的挑战后可解锁蓝图。 keybindingsIntroduction: title: 实用快捷键 - desc: "这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在按键设置中查看其他按键设定!

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

CTRL键 + 拖动:选择区域以复制或删除。
SHIFT键: 按住以放置多个同一种设施。
ALT键: 反向放置传送带。
" createMarker: title: 创建地图标记 - desc: 填写一个有意义的名称, 还可以同时包含一个形状的 短代码 (您可以 点击这里 + desc: + 填写一个有意义的名称, 还可以同时包含一个形状的 短代码 (您可以 点击这里 生成短代码) titleEdit: 编辑地图标记 markerDemoLimit: @@ -319,15 +321,18 @@ ingame: hints: 1_1_extractor: 在圆形上放置一个开采器来获取圆形!

提示:按下鼠标左键选中开采器 1_2_conveyor: 用传送带将您的开采器连接到中心基地上!

提示:选中传送带按下鼠标左键可拖动布置传送带! - 1_3_expand: 您可以放置更多的开采器传送带来更有效率地完成关卡目标。

+ 1_3_expand: + 您可以放置更多的开采器传送带来更有效率地完成关卡目标。

提示:按住 SHIFT 键可放置多个开采器,注意用R 键可旋转开采器的出口方向,确保开采的图形可以顺利传送。 2_1_place_cutter: 现在放置一个切割器,这个设施可把圆形切成两半!

注意:无论如何放置,切割机总是从上到下切割。 - 2_2_place_trash: 使用切割机后产生的废弃图形会导致堵塞

注意使用垃圾桶清除当前 + 2_2_place_trash: + 使用切割机后产生的废弃图形会导致堵塞

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

提示:用快捷键0-9可以快速选择各项设施! - 3_1_rectangles: 现在让我们开采一些矩形!找到矩形地带放置4个开采器并将它们用传送带连接到中心基地。

+ 3_1_rectangles: + 现在让我们开采一些矩形!找到矩形地带放置4个开采器并将它们用传送带连接到中心基地。

提示:选中传送带后按住SHIFT键可快速准确地规划传送带路线! 21_1_place_quad_painter: 放置四口上色器并且获取一些圆形白色红色! 21_2_switch_to_wires: 按 E 键选择电线层

@@ -502,7 +507,7 @@ buildings: hub: deliver: 交付 toUnlock: 解锁 - levelShortcut: LVL + levelShortcut: 关卡 endOfDemo: 试玩版结束 wire: default: @@ -629,7 +634,8 @@ storyRewards: desc: 恭喜!您解锁了旋转机。它会顺时针将输入的图形旋转90度。 reward_painter: title: 上色 - desc: 恭喜!您解锁了上色器。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色! + desc: + 恭喜!您解锁了上色器。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色!
注意:如果您不幸患有色盲,可以在设置中启用色盲模式 reward_mixer: title: 混合颜色 @@ -646,11 +652,13 @@ storyRewards: desc: 恭喜!您解锁了隧道。它可放置在传送带设施下方以运送物品。 reward_rotater_ccw: title: 逆时针旋转 - desc: 恭喜!您解锁了旋转机逆时针变体。它可以逆时针旋转图形。 + desc: + 恭喜!您解锁了旋转机逆时针变体。它可以逆时针旋转图形
选择旋转机然后按"T"键来选取这个变体。 reward_miner_chainable: title: 链式开采器 - desc: 您已经解锁了链式开采器!它能转发资源给其他的开采器,这样您就能更有效率的开采各类资源了!

+ desc: + 您已经解锁了链式开采器!它能转发资源给其他的开采器,这样您就能更有效率的开采各类资源了!

注意:新的开采器已替换了工具栏里旧的开采器! reward_underground_belt_tier_2: title: 二级隧道 @@ -667,12 +675,14 @@ storyRewards:
优先从左边输出,这样您就可以用它做一个溢流门了! reward_freeplay: title: 自由模式 - desc: 成功了!您解锁了自由模式!挑战升级!这意味着现在将随机生成图形! + desc: + 成功了!您解锁了自由模式!挑战升级!这意味着现在将随机生成图形! 从现在起,中心基地最为需要的是产量,我强烈建议您去制造一台能够自动交付所需图形的机器!

基地会在电线层输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。 reward_blueprints: title: 蓝图 - desc: 您现在可以复制粘贴您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。 + desc: + 您现在可以复制粘贴您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。

粘贴并不是免费的,您需要制造蓝图图形来负担。蓝图图形是您刚刚交付的图形。 no_reward: title: 下一关 @@ -700,7 +710,8 @@ storyRewards:
注意:您注意到传送读取器存储器输出的他们最后读取的物品了吗?试着在显示屏上展示一下!" reward_constant_signal: title: 恒定信号 - desc: 恭喜!您解锁了生成于电线层之上的恒定信号,把它连接到过滤器时非常有用。 + desc: + 恭喜!您解锁了生成于电线层之上的恒定信号,把它连接到过滤器时非常有用。
比如,它能发出图形、颜色、开关值(1 / 0)的固定信号。 reward_logic_gates: title: 逻辑门 @@ -719,7 +730,8 @@ storyRewards: 提示:可在设置中打开电线层教程!" reward_filter: title: 物品过滤器 - desc: 恭喜!您解锁了物品过滤器!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。

+ desc: + 恭喜!您解锁了物品过滤器!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。

您也可以输入开关值(1 / 0)信号来激活或者禁用它。 reward_demo_end: title: 试玩结束 diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 78b15faa..81e5c8a7 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -135,15 +135,13 @@ dialogs: desc: 你還沒有解鎖藍圖功能!完成更多的關卡來解鎖藍圖。 keybindingsIntroduction: title: 實用按鍵 - desc: - "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在按鍵設定中查看其他的!

+ desc: "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在按鍵設定中查看其他的!

CTRL + 拖曳:選擇區域以複製或刪除。
SHIFT: 按住以放置多個。
ALT: 反向放置輸送帶。
" createMarker: title: 建立標記 - desc: - 給地圖標記取一個名字。你可以在名字中加入一個簡短代碼以加入圖形。(你可以在這裡 + desc: 給地圖標記取一個名字。你可以在名字中加入一個簡短代碼以加入圖形。(你可以在這裡 建立簡短代碼。) titleEdit: 修改標記 markerDemoLimit: @@ -320,18 +318,15 @@ ingame: 1_1_extractor: 在圓形礦脈上放一個開採機來採集圓形! 1_2_conveyor: 用輸送帶將你的開採機連接到基地上!

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

+ 1_3_expand: 這不是一個放置型遊戲!建造更多的開採機和輸送帶來更快地完成目標。

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

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

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

PS: + 2_3_more_cutters: "做得好! 現在,再放2個切割機來加速這個緩慢的生產線!

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

PS: + 3_1_rectangles: "現在來開採一些方形吧!蓋4座開採機,把形狀收集到基地。

PS: 選擇輸送帶,按住SHIFT並拖曳滑鼠可以計畫輸送帶位置!" 21_1_place_quad_painter: 放置一個上色機(四向)並取得一些 圓形白色紅色! @@ -448,32 +443,32 @@ shopUpgrades: buildings: belt: default: - name: &belt 輸送帶 + name: 輸送帶 description: 運送物品,按住並拖曳來放置多個。 miner: default: - name: &miner 開採機 - description: &miner_desc 在圖形礦脈或者顏色礦脈上放置開採機來開採。 + name: 開採機 + description: 在圖形礦脈或者顏色礦脈上放置開採機來開採。 chainable: name: 鏈式開採機 - description: *miner_desc + description: 在圖形礦脈或者顏色礦脈上放置開採機來開採。 underground_belt: default: - name: &underground_belt 隧道 + name: 隧道 description: 可以從其他輸送帶或建築底下方運送物品。 tier2: name: 二級隧道 description: 可以從其他輸送帶或建築底下方運送物品。 cutter: default: - name: &cutter 切割機 + name: 切割機 description: 將圖形從上到下切開並輸出。 如果你只需要其中一半,記得把另一半銷毀掉,否則切割機會停止運作! quad: name: 四分切割機 description: 將輸入的圖形切成四塊。 如果你只需要其中一塊,記得把其他的銷毀掉,否則切割機會停止運作! rotater: default: - name: &rotator 旋轉機 + name: 旋轉機 description: 將圖形順時針旋轉90度。 ccw: name: 旋轉機(逆時針) @@ -483,28 +478,29 @@ buildings: description: 將圖形旋轉180度。 stacker: default: - name: &stacker 圖形拼貼機 + name: 圖形拼貼機 description: 將輸入的圖形拼貼在一起。如果不能在同一圖層直接拼貼,右邊的圖形會被堆疊在左邊的圖形上面. mixer: default: - name: &mixer 混色機 - description: 將兩個顏料加在一起。 + name: 混色機 + description: Mixes two colors using additive blending. painter: default: - name: &painter 上色機 - description: &painter_desc 將整個圖形塗上輸入的顏料。 + name: 上色機 + description: 將整個圖形塗上輸入的顏料。 double: name: 雙倍上色機 description: 同時為兩個輸入的圖形上色,每次上色只消耗一份顏料。 quad: name: 四分上色機 - description: 分別為圖形的四個部分上色。 只有從 有「真」訊號輸入 的顏料輸入端輸入的顏料會用來為相對的四分位上色。 + description: 分別為圖形的四個部分上色。 只有從 有「真」訊號輸入 + 的顏料輸入端輸入的顏料會用來為相對的四分位上色。 mirrored: - name: *painter - description: *painter_desc + name: 上色機 + description: 將整個圖形塗上輸入的顏料。 trash: default: - name: &trash 垃圾桶 + name: 垃圾桶 description: 從所有從四個方向輸入的物品銷毀。 hub: deliver: 交付 @@ -513,14 +509,14 @@ buildings: endOfDemo: 試玩結束 wire: default: - name: &wire 電線 - description: &wire_desc 傳輸訊號,訊號可以是圖形,顏料或布林值(0或1)。 不同顏色的電線無法互相連接。 + name: 電線 + description: 傳輸訊號,訊號可以是圖形,顏料或布林值(0或1)。 不同顏色的電線無法互相連接。 second: - name: *wire - description: *wire_desc + name: 電線 + description: 傳輸訊號,訊號可以是圖形,顏料或布林值(0或1)。 不同顏色的電線無法互相連接。 balancer: default: - name: &balancer 平衡機 + name: 平衡機 description: 多功能 —— 將單一輸入平均分配到所有輸出;及將多個輸入集合到一個輸出。 merger: name: 合流機(右) @@ -536,19 +532,19 @@ buildings: description: 將底部的輸送帶輸入分流成兩個輸出(頂部和左側)。 storage: default: - name: &storage 倉庫 + name: 倉庫 description: 儲存多餘的物品,有一定儲存上限。優先從左側輸出,右側輸出可以被用來作為溢流門。 wire_tunnel: default: - name: &wire_tunnel 電線交叉 + name: 電線交叉 description: 電線彼此交叉但不互相連接。 constant_signal: default: - name: &constant_signal 固定訊號 + name: 固定訊號 description: 輸出固定訊號,可以是形狀、顏料或布林值(1或0)。 lever: default: - name: &lever 信號切換器 + name: 信號切換器 description: 切換「1(真值)」或「0(假值)」輸出,舉例來說,它可以操控物件分類器。 logic_gate: default: @@ -565,48 +561,49 @@ buildings: description: 當其中一個輸入為「真」訊號時,輸出「1(真值)」。(「真」訊號代表:形狀訊號、顏色訊號或布林值為1) transistor: default: - name: &transistor 電晶體 - description: - &transistor_desc 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 + name: 電晶體 + description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 (「真」訊號代表:形狀訊號、顏色訊號或布林值為1) mirrored: - name: *transistor - description: *transistor_desc + name: 電晶體 + description: 如果基極(側面)的輸入訊號為「真」,則把射極(底部)輸入的真假值複製到集極(頂部)的輸出。 + (「真」訊號代表:形狀訊號、顏色訊號或布林值為1) filter: default: - name: &filter 物件分類器 - description: 它會依據電路層收到的訊號,從分類器底部輸入的物件如符合輸入信號的會輸出到頂部,不符合的會從右方(交叉標記)排出。 它也可以被布林值訊號控制。 + name: 物件分類器 + description: 它會依據電路層收到的訊號,從分類器底部輸入的物件如符合輸入信號的會輸出到頂部,不符合的會從右方(交叉標記)排出。 + 它也可以被布林值訊號控制。 display: default: - name: &display 顯示器 + name: 顯示器 description: 連接一個訊號到顯示器上顯示,訊號可以是形狀、顏料或布林值。 reader: default: - name: &reader 輸送帶讀取機 + name: 輸送帶讀取機 description: 它會讀取輸送帶的平均流量,(電路層解鎖後)在電路層輸出最後讀取的物件。 analyzer: default: - name: &analyzer 圖形分析機 + name: 圖形分析機 description: 分析輸入的圖形訊號中最底層右上角的圖形並輸出其形狀和顏色。 comparator: default: - name: &comparator 比較機 + name: 比較機 description: 當兩個輸入訊號完全相等時,輸出布林值「1(真值)」。它可以比較形狀、物件或布林值。 virtual_processor: default: - name: &virtual_processor 虛擬切割機 + name: 虛擬切割機 description: 虛擬地將圖形訊號從上到下切開。 rotater: - name: &rotater 虛擬旋轉機 + name: 虛擬旋轉機 description: 虛擬地將圖形訊號順時針旋轉。 unstacker: - name: &unstacker 虛擬提取機 + name: 虛擬提取機 description: 虛擬地提取圖形訊號最上層的圖形到右方輸出,剩下的圖形由左方輸出。 stacker: - name: &stacker 虛擬堆疊機 + name: 虛擬堆疊機 description: 虛擬地將輸入的圖形拼貼在一起。如果不能被直接拼貼,右邊的圖形會被疊在左邊的圖形上面。 painter: - name: &painter 虛擬上色機 + name: 虛擬上色機 description: 虛擬地將整個圖形塗上輸入的顏色。 item_producer: default: @@ -614,130 +611,102 @@ buildings: description: 沙盒模式專有,將電路層的輸入轉化成實體層的輸出。 constant_producer: default: - name: &constant_producer 恆定生產機 + name: 恆定生產機 description: 持續輸出圖形或顏料。 goal_acceptor: default: - name: &goal_acceptor 目標接收機 + name: 目標接收機 description: 交付接收機所示圖形以完成目標。 block: default: - name: &block 障礙物 + name: 障礙物 description: 用來禁止在障礙物處放置物件。 storyRewards: reward_cutter_and_trash: title: 切割圖形 - desc: >- - 切割機已解鎖!不論切割機的方向,它都會把圖形垂直地切成兩半。

+ desc: 切割機已解鎖!不論切割機的方向,它都會把圖形垂直地切成兩半。

記得把不需要的部分處理掉,否則切割機會因為堵塞而停止運作。 為此我給你準備了垃圾桶,它會把所有放進去的物品銷毀掉。 reward_rotater: title: 順時針旋轉 - desc: >- - 順時針旋轉機已解鎖! - 它會順時針旋轉輸入的圖形90度。 + desc: 順時針旋轉機已解鎖! 它會順時針旋轉輸入的圖形90度。 reward_painter: title: 上色 - desc: >- - 上色機已解鎖! + desc: 上色機已解鎖! 開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。

備註:如果你是色盲,設定中有色盲模式可以選。 reward_mixer: title: 混色 - desc: >- - 混色器已解鎖! - 在此建築物中使用附加混合結合兩種顏色! + desc: 混色器已解鎖! 在此建築物中使用附加混合結合兩種顏色! reward_stacker: title: 拼貼 - desc: >- - 圖形拼貼機已解鎖! + desc: 圖形拼貼機已解鎖! 如果沒有重疊的部分,圖形拼貼機會嘗試把兩個輸入的圖形拼貼在一起。如果有重疊的部分,右邊的輸入會被到左邊的輸入上方! reward_splitter: title: 分流 - desc: >- + desc: |- 分流機平衡機的變體)已解鎖! - 它將單個輸送帶分流成兩個。 reward_tunnel: title: 隧道 - desc: >- - 隧道已解鎖! - 你現在可以在其他輸送帶或建築底下運送物品了! + desc: 隧道已解鎖! 你現在可以在其他輸送帶或建築底下運送物品了! reward_rotater_ccw: title: 逆時針旋轉 - desc: >- - 逆時針旋轉機已解鎖! - 它會逆時針旋轉輸入的圖形90度。 + desc: 逆時針旋轉機已解鎖! 它會逆時針旋轉輸入的圖形90度。 逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並按「T」來切換變體就能使用。 reward_miner_chainable: title: 鏈式開採 - desc: >- - 鏈式開採機已解鎖! - 它是開採機的一個變體。 + desc: 鏈式開採機已解鎖! 它是開採機的一個變體。 它可以將開採出來的資源傳遞給其他的開採機,使得資源提取更加高效!

備註:工具列中舊的開採機已被取代。 reward_underground_belt_tier_2: title: 二級隧道 - desc: >- - 二級隧道已解鎖! - 這個隧道變體有更長的傳輸距離。你還可以混用不同的隧道變體! + desc: 二級隧道已解鎖! 這個隧道變體有更長的傳輸距離。你還可以混用不同的隧道變體! reward_cutter_quad: title: 四分切割 - desc: >- - 您已解鎖了切割機的變體:四分切割機。 + desc: 您已解鎖了切割機的變體:四分切割機。 它允許您將直接切割出形狀的四個邊角,而不是分成兩半! reward_painter_double: title: 雙倍上色 - desc: >- - 您已經解鎖了上色機的變體:雙倍上色機。 + desc: 您已經解鎖了上色機的變體:雙倍上色機。 它的運作方式跟上色機類似,但一次能處理兩個形狀,而且只消耗一種顏色而不是兩種顏色! reward_storage: title: 倉庫 - desc: >- - 倉庫 已解鎖: - 它可以儲存多餘的物品,但有一定儲存上限。

+ desc: 倉庫 已解鎖: 它可以儲存多餘的物品,但有一定儲存上限。

物品優先從左側輸出,它也可以被用來作為溢流門。 reward_freeplay: title: 自由模式 - desc: >- - 你做到了!你解鎖了自由模式!現在圖形將會是隨機生成的!

+ desc: 你做到了!你解鎖了自由模式!現在圖形將會是隨機生成的!

從現在開始,基地會有交付速率下限的要求,因此我強烈建議你建造全自動化的生產線。

基地會在電路層輸出它需要的形狀,你只需要分析這些訊號,然後依照需求自動調整你的工廠。 reward_blueprints: title: 藍圖 - desc: >- - 你現在可以複製貼上你的工廠某些區域。 選擇一個區域(按住 CTRL 並拖曳滑鼠),再按「C」來複製。

+ desc: 你現在可以複製貼上你的工廠某些區域。 選擇一個區域(按住 CTRL + 並拖曳滑鼠),再按「C」來複製。

貼上藍圖不是免費的,你必須製造(剛才生成的)藍圖形狀來給付。 no_reward: title: 下一關 - desc: >- - 這一關沒有獎勵,但是下一關會有!

+ desc: 這一關沒有獎勵,但是下一關會有!

備註:你生產過的所有圖形都會被用來升級建築。 no_reward_freeplay: title: 下一關 - desc: >- - 恭喜你!另外,我們已經計劃在單機版中加入更多內容! + desc: 恭喜你!另外,我們已經計劃在單機版中加入更多內容! reward_balancer: title: 平衡物流 - desc: >- - 平衡機已解鎖! - 在大型工廠中,平衡機負責合流或分流多個輸送帶上的物品。 + desc: 平衡機已解鎖! 在大型工廠中,平衡機負責合流或分流多個輸送帶上的物品。 reward_merger: title: 合流 - desc: >- + desc: |- 合流機平衡機的變體)已解鎖! - 它會將兩個輸送帶整合成一個。 reward_belt_reader: title: 讀取輸送帶 - desc: >- - 輸送帶讀取機已解鎖! 它會讀取輸送帶的流量。

- 當你解鎖電路層時,它會變得超有用! + desc: 輸送帶讀取機已解鎖! 它會讀取輸送帶的流量。

當你解鎖電路層時,它會變得超有用! reward_rotater_180: title: 180度旋轉 - desc: >- - 180度旋轉機已解鎖! - 它可以180度旋轉物件(驚喜!:D) + desc: 180度旋轉機已解鎖! - 它可以180度旋轉物件(驚喜!:D) reward_display: title: 顯示器 - desc: >- - 顯示器 已解鎖! - 在電路層上連接一個訊號到顯示器上顯示!

+ desc: 顯示器 已解鎖! - 在電路層上連接一個訊號到顯示器上顯示!

備註:你有注意到輸送帶讀取機跟倉庫都會輸出它們最後讀取的物件嗎? 試試看在顯示器上顯示它吧!" reward_constant_signal: title: 固定信號 @@ -747,25 +716,21 @@ storyRewards: 布林值(1或0)。 reward_logic_gates: title: 邏輯閘 - desc: >- - 邏輯閘已解鎖!你可能覺得無所謂,但其實邏輯閘其實超酷的!

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

- 錦上添花,我再送你電晶體! + desc: 邏輯閘已解鎖!你可能覺得無所謂,但其實邏輯閘其實超酷的!

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

錦上添花,我再送你電晶體! reward_virtual_processing: title: 虛擬操作 - desc: >- - 虛擬操作已解鎖! - 我已為您帶來很多原有建築的虛擬版,有切割機、旋轉機、拼貼機還有更多電路層上的虛擬建築。 - 有了虛擬操作的你現在有三個繼續玩下去的方向:

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

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

- - 繼續用原本的方式破關。

- 不論你的選擇是什麼,祝你玩得開心! + 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, rotator, 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 + normally.

Whatever you choose, remember to have fun! reward_wires_painter_and_levers: title: 電路層 & 四角上色機 - desc: >- - 電路層已解鎖! - 它是一個獨立於實體層之外的存在,將帶給你更多玩法!

+ desc: 電路層已解鎖! 它是一個獨立於實體層之外的存在,將帶給你更多玩法!

首先,我為你解鎖四角上色機。記得先在電路層為想要上色的角落通電!

E切換至電路層。

備註:設定裡開啟提示來啟動教學!" @@ -943,15 +908,15 @@ keybindings: menuOpenStats: 統計選單 toggleHud: 開關基地 toggleFPSInfo: 開關幀數與除錯信息 - belt: *belt - underground_belt: *underground_belt - miner: *miner - cutter: *cutter - rotater: *rotater - stacker: *stacker - mixer: *mixer - painter: *painter - trash: *trash + belt: 輸送帶 + underground_belt: 隧道 + miner: 開採機 + cutter: 切割機 + rotater: 虛擬旋轉機 + stacker: 虛擬堆疊機 + mixer: 混色機 + painter: 虛擬上色機 + trash: 垃圾桶 rotateWhilePlacing: 順時針旋轉 rotateInverseModifier: "修飾鍵: 改為逆時針旋轉" cycleBuildingVariants: 選擇建築變體 @@ -972,29 +937,29 @@ keybindings: pipette: 滴管 menuClose: 關閉選單 switchLayers: 切換實體層/電路層 - wire: *wire - balancer: *balancer - storage: *storage - constant_signal: *constant_signal + wire: 電線 + balancer: 平衡機 + storage: 倉庫 + constant_signal: 固定訊號 logic_gate: 邏輯閘 - lever: *lever - filter: *filter - wire_tunnel: *wire_tunnel - display: *display - reader: *reader + lever: 信號切換器 + filter: 物件分類器 + wire_tunnel: 電線交叉 + display: 顯示器 + reader: 輸送帶讀取機 virtual_processor: 虛擬處理 - transistor: *transistor - analyzer: *analyzer - comparator: *comparator + transistor: 電晶體 + analyzer: 圖形分析機 + comparator: 比較機 item_producer: 物品生產機(沙盒模式) copyWireValue: 電路:複製數值於游標底下 rotateToUp: "轉動: 向上" rotateToDown: "轉動: 向下" rotateToRight: "轉動: 向右" rotateToLeft: "轉動: 向左" - constant_producer: *constant_producer - goal_acceptor: *goal_acceptor - block: *block + constant_producer: 恆定生產機 + goal_acceptor: 目標接收機 + block: 障礙物 massSelectClear: 清空輸送帶 showShapeTooltip: 顯示建築物輸出提示 about: