1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-06-13 13:04:03 +00:00

Merge remote-tracking branch 'tobspr/master'

This commit is contained in:
Sense101 2020-12-22 17:43:35 +00:00
commit 808ece56a4
49 changed files with 1046 additions and 848 deletions

View File

@ -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",

View File

@ -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

View File

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -15,6 +15,11 @@
"vetur.format.defaultFormatter.ts": "vscode-typescript",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"files.trimTrailingWhitespace": true
"files.trimTrailingWhitespace": true,
"workbench.colorCustomizations": {
"activityBar.background": "#163328",
"titleBar.activeBackground": "#1F4738",
"titleBar.activeForeground": "#F7FBFA"
}
}
}

View File

@ -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/unpin_shape.png") center center / 80% no-repeat;
}
}
&.goal,
&.blueprint {
.amountLabel::after {

View File

@ -61,6 +61,12 @@
/* @load-async */
background: uiResource("icons/waypoint.png") left 50% / #{D(8px)} no-repeat;
}
&.layer--wires {
/* @load-async */
background-image: uiResource("icons/waypoint_wires.png");
}
opacity: 0.7;
@include S(margin-bottom, 1px);
font-weight: bold;

View File

@ -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);

View File

@ -1,7 +1,33 @@
export const CHANGELOG = [
{
version: "1.2.1",
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",
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",
"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)",
"Fix UI using multiple different save icons",
"Updated translations (Thanks to all contributors!)",
],
},
{
version: "1.2.1",
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)",

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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),

View File

@ -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) {

View File

@ -108,24 +108,25 @@ export class HUDBlueprintPlacer extends BaseHUDPart {
this.abortPlacement();
return STOP_PROPAGATION;
}
}
} else if (button === enumMouseButton.left) {
const blueprint = this.currentBlueprint.get();
if (!blueprint) {
return;
}
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);
}
return STOP_PROPAGATION;
}
}

View File

@ -14,6 +14,7 @@ import { MetaMinerBuilding, enumMinerVariants } from "../../buildings/miner";
import { enumHubGoalRewards } from "../../tutorial_goals";
import { getBuildingDataFromCode, getCodeFromBuildingData } from "../../building_codes";
import { MetaHubBuilding } from "../../buildings/hub";
import { safeModulo } from "../../../core/utils";
/**
* Contains all logic for the building placer - this doesn't include the rendering
@ -467,7 +468,12 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
index = 0;
console.warn("Invalid variant selected:", this.currentVariant.get());
}
const newIndex = (index + 1) % availableVariants.length;
const direction = this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier)
.pressed
? -1
: 1;
const newIndex = safeModulo(index + direction, availableVariants.length);
const newVariant = availableVariants[newIndex];
this.setVariant(newVariant);
}

View File

@ -0,0 +1,34 @@
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) {
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) {
const constantComp = contents.components.ConstantSignal;
if (constantComp) {
if (button === enumMouseButton.left) {
this.root.systemMgr.systems.constantSignal.editConstantSignal(contents, {
deleteOnCancel: false,
});
return STOP_PROPAGATION;
}
}
}
}
}

View File

@ -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 {

View File

@ -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,6 +17,7 @@ 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 { ShapeDefinition } from "../../shape_definition";
@ -26,7 +28,8 @@ import { enumNotificationType } from "./notifications";
/** @typedef {{
* label: string | null,
* center: { x: number, y: number },
* zoomLevel: number
* zoomLevel: number,
* layer: Layer,
* }} Waypoint */
/**
@ -88,7 +91,12 @@ export class HUDWaypoints extends BaseHUDPart {
*/
initialize() {
// Cache the sprite for the waypoints
this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png");
this.waypointSprites = {
regular: Loader.getSprite("sprites/misc/waypoint.png"),
wires: Loader.getSprite("sprites/misc/waypoint_wires.png"),
};
this.directionIndicatorSprite = Loader.getSprite("sprites/misc/hub_direction_indicator.png");
/** @type {Array<Waypoint>}
@ -98,6 +106,7 @@ export class HUDWaypoints extends BaseHUDPart {
label: null,
center: { x: 0, y: 0 },
zoomLevel: 3,
layer: gMetaBuildingRegistry.findByClass(MetaHubBuilding).getLayer(),
},
];
@ -187,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);
@ -228,6 +240,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 +339,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();
@ -537,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;
}
}
@ -616,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
);
}

View File

@ -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,

View File

@ -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);
});
}
}
/**

View File

@ -328,6 +328,64 @@ 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) {
/*
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
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 +395,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;

View File

@ -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();
}

View File

@ -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.<number, typeof BaseSavegameInterface>} */
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");

View File

@ -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";
}
}
}

View File

@ -0,0 +1,5 @@
{
"type": "object",
"required": [],
"additionalProperties": true
}

View File

@ -59,7 +59,7 @@ export class MainMenuState extends GameState {
<div class="logo">
<img src="${cachebust("res/logo.png")}" alt="shapez.io Logo">
<span class="updateLabel">Wires update!</span>
<span class="updateLabel">v${G_BUILD_VERSION}</span>
</div>
<div class="mainWrapper ${showDemoBadges ? "demo" : "noDemo"}">

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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 <b>T</b> drücken, um auf andere Varianten des Gebäudes zu
- Du kannst <b>T</b> 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 <b>STRG</b> ermöglicht dir, mehrere Gebäude zu platzieren.
- Du kanst <b>ALT</b> gedrückt halten, um die Richtung der Fließbänder
- Du kannst <b>ALT</b> 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.

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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:
- <b>12 nouveaux niveaux</b> avec 26 niveaux en tout
- <b>12 nouveaux niveaux</b> avec 26 niveaux en tout !
- <b>18 nouveaux bâtiments</b> pour automatiser entièrement votre usine!
- <b>20 niveaux damélioration</b> pour samuser pendant des heures!
- <b>Les câbles</b> 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 — <strong>Ne détruisez pas vos anciennes
usines!</strong> Longlet des améliorations se trouve dans le coin
supérieur droit de lécran.
desc: <strong>Ne détruisez pas vos anciennes usines!</strong> Toutes les
formes que vous produisez peuvent être utilisées pour débloquer des
améliorations. Longlet 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 (<count> 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 formes
itemsPerSecond: <x> formess
oneItemPerSecond: 1 objets
itemsPerSecond: <x> objetss
itemsPerSecondDouble: (×2)
tiles: <x> 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 <level> complet!
gameSaved: Votre partie a bien été sauvegardée.
freeplayLevelComplete: Niveau <level> 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</strong> et connectez-les au centre.<br><br>
PS : Gardez <strong>MAJ</strong> enfoncé en plaçant un convoyeur pour
activer le planificateur."
21_1_place_quad_painter: Placez un <strong>quadruple peintre</strong> et
21_1_place_quad_painter: Placez une <strong>station de peinture quadruple</strong> et
connectez des <strong>cercles</strong> et des couleurs
<strong>blanche</strong> et <strong>rouge</strong>!
21_2_switch_to_wires: Basculez sur le calque de câblage en appuyant sur
<strong>E</strong>.<br><br> Puis <strong>connectez les quatre
entrées</strong> du peintre avec des câbles!
entrées</strong> de la station de peinture quadruple avec des câbles!
21_3_place_button: Génial! Maintenant, placez un
<strong>interrupteur</strong> et connectez-le avec des câbles!
21_4_press_button: "Appuyez sur le bouton pour quil émette un
<strong>signal vrai</strong> et active le peintre.<br><br> PS : Vous
<strong>signal vrai</strong> et active la station de peinture quadruple.<br><br> PS : Vous
nêtes pas obligé de connecter toutes les entrées! Essayez den 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 dune forme avec une couleur différente.
name: Station de peinture (quadruple)
description: Peint chaque quadrant dune forme avec une couleur différente.
Seules les entrées recevant un <strong>signal vrai</strong> 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 lentrée nest 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 <strong>pivoteur</strong> a été débloqué! Il pivote les formes de 90
degrés vers la droite.
reward_painter:
title: Peintre
desc: "Le <strong>peintre</strong> 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!<br><br>PS : Si vous
êtes daltonien, il y a un <strong>mode daltonien</strong>
paramétrable dans les préférences!"
title: Peinture
desc: "La <strong>station de peinture</strong> 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!
<br><br>PS : Si vous êtes daltonien, il y a un <strong>mode
daltonien</strong> paramétrable dans les préférences!"
reward_mixer:
title: Mélangeur de couleurs
desc: Le <strong>mélangeur</strong> a été débloqué. Combinez deux couleurs en
utilisant <strong>la synthèse additive des couleurs</strong> avec ce
bâtiment!
reward_stacker:
title: Combineur
desc: Vous pouvez maintenant combiner deux formes avec le
<strong>combineur</strong>! Les deux entrées sont combinées et si
title: Assembleur
desc: Vous pouvez maintenant assemblées deux formes avec le
<strong>combineur</strong>! Les deux entrées sont assemblées,si
elles peuvent être mises lune à côté de lautre, elles sont
<strong>fusionnées</strong>. Sinon, la forme de droite est
<strong>fusionnées</strong>, sinon, la forme de droite est
<strong>placée au-dessus</strong> de la forme de gauche.
reward_balancer:
title: Répartiteur
@ -676,35 +676,35 @@ storyRewards:
permet de découper les formes en <strong>quatre parties</strong>
plutôt que seulement deux!
reward_painter_double:
title: Double peintre
desc: Vous avez débloqué une variante du <strong>peintre</strong> — Elle
fonctionne comme le peintre de base, mais elle permet de traiter
<strong>deux formes à la fois</strong> en ne consommant quune
title: Station de peinture double
desc: Vous avez débloqué une variante de la <strong>station de peinture</strong>
— Elle fonctionne comme la station de peinture de base, mais elle permet de
traiter <strong>deux formes à la fois</strong> en ne consommant quune
couleur au lieu de deux!
reward_storage:
title: Tampon de stockage
title: Stockage
desc: Vous avez débloqué le bâtiment de <strong>stockage</strong>. Il permet de
stocker des objets jusquà une certaine limite!<br><br> Il priorise
la sortie gauche, vous pouvez donc aussi lutiliser comme
<strong>drain de débordement</strong>!
reward_blueprints:
title: Patrons
title: Plans
desc: Vous pouvez maintenant <strong>copier et coller</strong> 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.<br><br> Coller nest <strong>pas gratuit</strong>, vous
devez produire <strong>des formes de patrons</strong> pour vous le
devez produire <strong>des formes de plans</strong> 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 <strong>retourneur</strong>! 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 <strong>calque de câblage</strong> : Cest un
calque au-dessus du calque normal, qui introduit beaucoup de
nouvelles mécaniques de jeu!<br><br> Pour commencer, je vous
débloque le <strong>quadruple peintre</strong>. Connectez les
débloque la <strong>station de peinture quadruple</strong>. Connectez les
entrées à peindre sur le calque de câblage.<br><br> Pour voir le
calque de câblage, appuyez sur <strong>E</strong>.<br><br>PS : Activez
les <strong>indices</strong> 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 <strong>constante</strong> sur le calque
de câblage! Vous pouvez par exemple la connecter à des
<strong>filtres à objets</strong>.<br><br> La constante peut émettre
@ -735,7 +735,7 @@ storyRewards:
desc: "Vous avez débloqué les <strong>portes logiques</strong>! Vous nêtes pas
obligé de trouver ça génial, mais en fait cest super cool!<br><br>
Avec ces portes, vous pouvez maintenant faire les opérations
booléennes ET, OU, OU-EXCLUSIF et INVERSEUR!<br><br> Et la cerise
booléennes ET, OU, OU-EXCLUSIF et NON!<br><br> Et la cerise
sur le gâteau : je vous donne aussi le
<strong>transistor</strong>!"
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
<b>T</b>
- Avoir les bons ratios de construction maximisera lefficacité.
- 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 <b>CTRL</b> permet de placer plusieurs bâtiments.
- Vous pouvez maintenir <b>ALT</b> 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, lespace nest quune 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 <b>CTRL</b>+clic pour sélectionner une zone.

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -317,7 +317,7 @@ ingame:
questo lento processo!<br><br> PS: Usa i numeri <strong>da 0 a 9 </strong>
per selezionare gli edifici più in fretta!"
3_1_rectangles: "Ora estraiamo qualche rettangolo! <strong>Costruisci 4
estrattori</strong> and connect them to the HUB.<br><br> PS:
estrattori</strong> e connettili alla HUB.<br><br> PS:
Tieni premuto <strong>SHIFT</strong> mentre trascini un nastro per attivare il
pianificatore di nastri!"
21_1_place_quad_painter: Posiziona il <strong>verniciatore quadruplo</strong> 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 <strong>verniciatore</strong> è stato sbloccato! Estrai dalle vene
desc: "Il <strong>verniciatore</strong> è stato sbloccato! Estrai dai giacimenti
colorate (esattamente come fai con le forme) e combina il colore con
una forma nella veniciatrice per colorarla!<br><br>PS: Se sei
daltonico, c'è la <strong>modalità daltonici </strong> nelle
@ -684,7 +684,7 @@ storyRewards:
per <strong>sbloccare i miglioramenti</strong>!"
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 è <strong>impilato sopra</strong> il sinistro!
reward_balancer:
title: Bilanciatore
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can
be used to build bigger factories by <strong>splitting and merging
items</strong> onto multiple belts!
desc: Il <strong>bilanciatore</strong> multifunzione è stato sbloccato - Può essere
usato per costruire fabbriche più grandi <strong>unendo e dividendo gli
oggetti</strong> su diversi nastri!
reward_merger:
title: Aggregatore compatto
desc: Hai sbloccato un <strong>aggregatore</strong>, 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 <a href="<discordlink>" target="_blank">server di Discord</a>!<br><br>
La colonna sonora è stata composta da<a href="https://soundcloud.com/pettersumelius" target="_blank">Peppsen</a> - È un grande.<br><br>
La colonna sonora è stata composta da<a href="https://soundcloud.com/pettersumelius" target="_blank">
Peppsen</a> - È un grande.<br><br>
Per finire, grazie di cuore al mio migliore amico <a href="https://github.com/niklas-dahl" target="_blank">Niklas</a> -
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 <b>SHIFT</b> 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.

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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: <x> seconden geleden
oneMinuteAgo: een minuut geleden
oneMinuteAgo: één minuut geleden
xMinutesAgo: <x> minuten geleden
oneHourAgo: een uur geleden
oneHourAgo: één uur geleden
xHoursAgo: <x> uren geleden
oneDayAgo: een dag geleden
oneDayAgo: één dag geleden
xDaysAgo: <x> dagen geleden
secondsShort: <seconds>s
minutesAndSecondsShort: <minutes>m <seconds>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)
@ -91,19 +91,19 @@ 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 <x>
savegameLevelUnknown: Onbekend Level
savegameLevelUnknown: Level onbekend
continue: Ga verder
newGame: Nieuw Spel
madeBy: Gemaakt door <author-link>
subreddit: Reddit
savegameUnnamed: Unnamed
savegameUnnamed: Naamloos
dialogs:
buttons:
ok: OK
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
@ -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 (<count> om precies te zijn)!
desc: Je bent veel gebouwen aan het verwijderen (<count> 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
<strong>kijkt naar de sneltoetsen</strong>!<br><br> <code
@ -186,7 +186,7 @@ dialogs:
een ongelimiteerde hoeveelheid markeringen!
massCutConfirm:
title: Bevestig knippen
desc: Je bent veel gebouwen aan het knippen (<count> om precies te zijn)! Weet
desc: Je bent veel vormen aan het knippen (<count> 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: <max_throughput>"
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<currentMult> → x<newMult>
miner:
name: Ontginner
name: Mijner
description: Snelheid x<currentMult> → x<newMult>
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:
<strong>verdeler</strong> vrijgespeeld - Dit gebouw maakt van 2
lopende banden 1!
reward_belt_reader:
title: Lopende band lezer
title: Lopende band sensor
desc: Je hebt de <strong>lopende band lezer</strong> vrijgespeeld! Dit gebouw
geeft de doorvoer op een lopende band weer.<br><br>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 <strong>constante signaal</strong> vrijgespeeld op de kabel
dimensie! Dit gebouw is handig in samenwerking met <strong>item
filters</strong>.<br><br> Het constante signaal kan een
@ -724,7 +724,7 @@ storyRewards:
uitvoeren.<br><br> Als bonus krijg je ook nog een
<strong>transistor</strong> 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
<strong>het process van vormen te stimuleren</strong>!<br><br> 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: <amount> %
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.

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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
@ -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
@ -315,19 +313,19 @@ ingame:
esteiras para concluir o objetivo mais rapidamente.<br><br>Dica,
segure <strong>SHIFT</strong> para colocar vários extratores e
use <strong>R</strong> para girá-los.
2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two
halves!<br><br> PS: The cutter always cuts from <strong>top to
bottom</strong> regardless of its orientation."
2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a
<strong>trash</strong> to get rid of the currently (!) not
needed waste.
2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed
up this slow process!<br><br> PS: Use the <strong>0-9
hotkeys</strong> to access buildings faster!"
3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4
extractors</strong> and connect them to the hub.<br><br> PS:
Hold <strong>SHIFT</strong> while dragging a belt to activate
the belt planner!"
2_1_place_cutter: "Agora coloque um <strong>Cortador</strong> para cortar os círculos em duas
metades!<br><br> PS: O cortador sempre corta de <strong>cima para
baixo</strong> independentemente de sua orientação."
2_2_place_trash: O cortador pode <strong>emtupir e parar</strong>!<br><br> Use um
<strong>lixo</strong> para se livrar do que atualmente (!) não for
necessário.
2_3_more_cutters: "Bom trabalho! Agora coloque <strong>mais 2 cortadores</strong> para acelerar
este processo lento!<br><br> PS: Use as <strong> hotkeys 0-9
</strong> para acessar as construções mais rápido!"
3_1_rectangles: "Vamos extrair alguns retângulos! <strong>Construa 4
extratores</strong> e conecte-os ao hub.<br><br> PS:
Segure <strong>SHIFT</strong> enquanto arrasta a esteira para ativar o
planejador de esteiras!"
21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some
<strong>circles</strong>, <strong>white</strong> and
<strong>red</strong> color!
@ -442,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:
@ -543,7 +541,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:
@ -588,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:
@ -636,10 +634,10 @@ storyRewards:
variantes</strong>!
reward_miner_chainable:
title: Extrator em Cadeia
desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>forward its resources</strong> to other extractors so you
can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
desc: "Você desbloqueou o <strong>extrator em cadeia</strong>! Ele
<strong>encaminha os recursos</strong> para outros extratores para que você
possa extrair recursos de forma mais eficiente!<br><br> 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 <strong>túnel</strong> - ele tem um
@ -656,10 +654,10 @@ storyRewards:
pintor regular, mas processa <strong>duas formas ao mesmo
tempo</strong>, consumindo apenas uma cor em vez de duas!
reward_storage:
title: Acúmulo de excesso
desc: You have unlocked the <strong>storage</strong> building - It allows you to
store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
title: Armazém
desc: Você desbloqueou o <strong>armazém</strong> - Permite que você
armazene itens até uma certa capacidade!<br><br> Ele prioriza a saída
da esquerda, para que você também possa usá-lo como um <strong>portão de excesso</strong>!
reward_freeplay:
title: Modo Livre
desc: Você conseguiu! Você desbloqueou o <strong>modo livre</strong>! Isso
@ -703,7 +701,7 @@ storyRewards:
você meça a passagem de itens em uma esteira.<br><br>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 <strong>rotacionador</strong> de 180 graus! -
Ele permite que você rotacione uma forma em 180 graus (Surpresa! :D)
reward_display:
@ -919,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: <amount> %
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:

View File

@ -312,7 +312,7 @@ ingame:
em duas metades!<br><br> PS: O cortador corta sempre <strong>de cima para
baixo</strong> independentemente da sua orientação"
2_2_place_trash: O cortador pode <strong>encravar e parar</strong>!<br><br> Usa
um <strong>lixo</strong> para de livrares do atual (!) não
um <strong>lixo</strong> para te livrares do atual (!) não
é necessário desperdício.
2_3_more_cutters: "Bom trabalho! Agora coloca<strong>mais 2 cortadores</strong> para acelerades
este progresso lento!<br><br> PS: Usa os <strong>atalhos

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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: Вы уверены, что хотите удалить это сохранение?<br><br> '<savegameName>' на
уровне <savegameLevel><br><br> Это не может быть отменено!
уровне <savegameLevel><br><br> Оно будет удалено безвозвратно!
savegameDeletionError:
title: Ошибка удаления
text: Не удалось удалить сохранение игры.
@ -510,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").
@ -564,7 +565,7 @@ buildings:
unstacker:
name: Виртуальный Разъединитель
description: Виртуально извлекает самый верхний слой фигуры направо, а все
остальное направо.
остальное налево.
stacker:
name: Виртуальный Объединитель
description: Виртуально помещает правый предмет поверх левого.
@ -682,7 +683,7 @@ storyRewards:
reward_balancer:
title: Балансер
desc:
Многофункциональный <strong>банансер</strong> разблокирован - Он используется для <strong>разделения и обьединения
Многофункциональный <strong>балансер</strong> разблокирован - Он используется для <strong>разделения и обьединения
потора предметов</strong> на несколько конвейеров!
reward_merger:
title: Компактный Соединитель
@ -692,8 +693,8 @@ storyRewards:
reward_belt_reader:
title: Измеритель
desc: Разблокирован <strong>измеритель</strong>! Он позволяет измерять
пропускную способность конвейера.<br><br>А как полезен он будет,
когда вы разблокируете провода!
пропускную способность конвейера.<br><br>Вы узнаете, как он полезен,
когда разблокируете провода!
reward_rotater_180:
title: Вращатель (180 градусов)
desc: Разблокирован <strong>вращатель</strong> на 180 градусов! - Он позволяет
@ -1036,7 +1037,7 @@ tips:
- Чтобы получить белый цвет, смешайте все три цвета.
- Удерживание <b>SHIFT</b> активирует планировщик конвейеров, что упрощает простройку длинных конвейеров.
- Вкладывайте время в строительство повторяемых механизмов - оно того стоит!
- Смешайте все три цвета для получения булого.
- Смешайте все три цвета для получения белого.
- Буффер хранилища с большим приоритетом выдаёт на левый выход.
- Эффективность - ключ к успеху!
- Удерживание <b>CTRL</b> даёт возможность размещения нескольких построек.
@ -1059,8 +1060,7 @@ tips:
- С модулями теряется восприятие пространства; забота смертных.
- Создайте отдельную фабрику чертежей. Они очень важны для модулей.
- Взгляните внимательнее на смешиватель и вы найдете ответы на свои вопросы.
- With modules, space is merely a perception; a concern for mortal men.
- Строительство вблизи ХАБ-а может помешать будущим проектам.
- Строительство вблизи ХАБ-а может помешать будущим фабрикам.
- Иконка булавки на каждой фигуре закрепляет ее на экране.
- Используйте <b>CTRL</b> + ЛКМ для выбора области.
- В вашем распоряжении бесконечная карта! Не загромождайте вашу фабрику,
@ -1072,7 +1072,7 @@ tips:
- В этой игре множество полезных комбинаций клавиш. Загляните в настройки,
чтобы ознакомиться с ними.
- В этой игре множество настроек, не забудьте с ними ознакомиться.
- Маркер ХАБ-а имеет небольшой компас, указывающий его направление.
- Маркер ХАБ-а имеет небольшой компас, указывающий его местоположение.
- Нажмите F4, чтобы показать FPS и Частоту Обновления.
- Нажмите F4 дважды, чтобы показать координаты курсора и камеры.
- Вы можете нажать на закрепленную фигуру слева, чтобы открепить ее.

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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 <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
desc: You just unlocked the 180 degrees <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degrees (Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the

View File

@ -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:
- <b>12 Nya nivåer</b> av totalt 26 nivåer!
- <b>18 Nya byggnader</b> 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: <hours>t <minutes>m
xMinutes: <x> 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 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å <x>
savegameLevelUnknown: Okänd Nivå
@ -96,7 +95,7 @@ mainMenu:
newGame: Nytt spel
madeBy: Skapad av <author-link>
subreddit: Reddit
savegameUnnamed: Unnamed
savegameUnnamed: Namnlöst
dialogs:
buttons:
ok: OK
@ -176,8 +175,8 @@ dialogs:
rullband.<br>"
createMarker:
title: Ny Markör
desc: Ge det ett meningsfullt namn, du kan också inkludera en <strong>kort
nyckel</strong> av en form (Som du kan generera <link>här</link>)
desc: Ge det ett meningsfullt namn, du kan också inkludera ett
<strong>kortkommando</strong> av en form (som du kan generera <link>här</link>)
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 <strong>kort nyckel</strong> av en form
descShortKey: ... eller skriv in <strong>kortkommando</strong> av en form
(Som du kan generera <link>här</link>)
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 översmningsgrind.
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

View File

@ -2,11 +2,11 @@ steamPage:
shortText: shapez.io 是一款在无边际的地图上建造工厂、自动化生产与组合愈加复杂的图形的游戏。
discordLinkShort: 官方 Discord 服务器
intro: |-
Shapez.io 是一个休闲游戏,在其中,将建造工厂以生产各种各样的几何图形。
随着等级提升,您需要生产的图形将会越来越复杂,您需要在无尽的地图中不断的扩建您的工厂。
如果这些还不够的话,您的生产目标是指数性增长的 - 您需要持续的增大工厂的规模!
虽然您刚开始只需要生产图形,但您之后还可以给这些图形上色 - 您需要开采并混合颜料!
您可以在 Steam 游戏商城购买此游戏的完整版, 但您可以先游玩试玩版并体验游戏!
Shapez.io 是一个休闲游戏,在其中,将建造工厂以生产各种各样的几何图形。
随着等级提升,你需要生产的图形将会越来越复杂,你需要在无尽的地图中不断的扩建你的工厂。
如果这些还不够的话,你的生产目标是指数性增长的 - 你需要持续的增大工厂的规模!
虽然你刚开始只需要生产图形,但你之后还可以给这些图形上色 - 你需要开采并混合颜料!
你可以在 Steam 游戏商城购买此游戏的完整版, 但你可以先游玩试玩版并体验游戏!
title_advantages: 完整版内容
advantages:
- <b>12 个全新关卡</b> 总共 26 个不同关卡
@ -59,7 +59,7 @@ global:
xDaysAgo: <x>天前
secondsShort: <seconds>秒
minutesAndSecondsShort: <minutes>分 <seconds>秒
hoursAndMinutesShort: <hours>时 <minutes>
hoursAndMinutesShort: <hours>时 <minutes>
xMinutes: <x>分钟
keys:
tab: TAB
@ -110,9 +110,8 @@ dialogs:
text: 未能导入你的存档:
confirmSavegameDelete:
title: 确认删除
text: Are you sure you want to delete the following game?<br><br>
'<savegameName>' at level <savegameLevel><br><br> This can not be
undone!
text: 你确定要删除这个游戏吗?<br><br>
'<savegameName>' 等级 <savegameLevel><br><br> 该操作无法回退!
savegameDeletionError:
title: 删除错误
text: 未能删除你的存档
@ -148,14 +147,14 @@ dialogs:
desc: 你还没有解锁蓝图功能!完成更多的关卡来解锁蓝图。
keybindingsIntroduction:
title: 实用按键
desc: "这个游戏有很多能帮助搭建工厂的使用按键。 以下是其中的一些,记得在<strong>按键设置</strong>中查看其他的!<br><br>
desc:
"这个游戏有很多有用的快捷键。 以下是其中的一些,记得在<strong>按键设置</strong>中查看其他的!<br><br>
<code class='keybinding'>CTRL</code> + 拖动:选择区域以复制或删除。<br> <code
class='keybinding'>SHIFT</code>: 按住以放置多个。<br> <code
class='keybinding'>ALT</code>: 反向放置传送带。<br>"
createMarker:
title: 创建地图标记
desc: Give it a meaningful name, you can also include a <strong>short
key</strong> of a shape (Which you can generate <link>here</link>)
desc: 填写一个有意义的名称, 你也可以使用形状的 <strong>短代码</strong> (你可以 <link>点击这里</link> 生成短代码)
titleEdit: 编辑地图标记
markerDemoLimit:
desc: 在试玩版中你只能创建两个地图标记。请获取独立版以创建更多标记。
@ -169,21 +168,18 @@ dialogs:
title: 确认剪切
desc: 你没有足够的图形来粘贴这个区域!你确定要剪切吗?
editSignal:
title: Set Signal
descItems: "Choose a pre-defined item:"
descShortKey: ... or enter the <strong>short key</strong> of a shape (Which you
can generate <link>here</link>)
title: 设置信号
descItems: "选择一个预定义的信号:"
descShortKey: ... 或者输入图形的 <strong>短代码</strong> (你可以 <link>点击这里</link> 生成短代码)
renameSavegame:
title: 重命名存档
desc: 可以在此重命名存档。
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: 按 <key> 键以选择建筑变体.
cycleBuildingVariants: 按 <key> 键以选择建筑变体
hotkeyLabel: "快捷键: <key>"
infoTexts:
speed: 效率
@ -224,7 +220,7 @@ ingame:
notifications:
newUpgrade: 有新更新啦!
gameSaved: 游戏已保存。
freeplayLevelComplete: Level <level> has been completed!
freeplayLevelComplete: 等级 <level> 完成了!
shop:
title: 建筑升级
buttonUnlock: 升级
@ -261,39 +257,26 @@ ingame:
waypoints: 地图标记
hub: 基地
description: 左键跳转到地图标记,右键删除地图标记。<br><br>按 <keybinding>
在当前地点创建地图标记,或者在选定位置上<strong>右键</strong>创建地图标记.
在当前地点创建地图标记,或者在选定位置上<strong>右键</strong>创建地图标记
creationSuccessNotification: 成功创建地图标记。
interactiveTutorial:
title: 教程
hints:
1_1_extractor: 在<strong>圆形矿脉</strong>上放一个<strong>开采机</strong>来获取圆形!
1_2_conveyor: 用<strong>传送带</strong>将你的开采机连接到基地上!<br><br>提示:用你的鼠标<strong>按下并拖动</strong>传送带!
1_3_expand: 这<strong>不是</strong>一个挂机游戏!建造更多的开采机和传送带来更快地完成目标。<br><br> 提示:按住
<strong>SHIFT</strong> 键来放置多个开采机,用 <strong>R</strong> 键旋转它们。
2_1_place_cutter: "Now place a <strong>Cutter</strong> to cut the circles in two
halves!<br><br> PS: The cutter always cuts from <strong>top to
bottom</strong> regardless of its orientation."
2_2_place_trash: The cutter can <strong>clog and stall</strong>!<br><br> Use a
<strong>trash</strong> to get rid of the currently (!) not
needed waste.
2_3_more_cutters: "Good job! Now place <strong>2 more cutters</strong> to speed
up this slow process!<br><br> PS: Use the <strong>0-9
hotkeys</strong> to access buildings faster!"
3_1_rectangles: "Now let's extract some rectangles! <strong>Build 4
extractors</strong> and connect them to the hub.<br><br> PS:
Hold <strong>SHIFT</strong> while dragging a belt to activate
the belt planner!"
21_1_place_quad_painter: Place the <strong>quad painter</strong> and get some
<strong>circles</strong>, <strong>white</strong> and
<strong>red</strong> color!
21_2_switch_to_wires: Switch to the wires layer by pressing
<strong>E</strong>!<br><br> Then <strong>connect all four
inputs</strong> of the painter with cables!
21_3_place_button: Awesome! Now place a <strong>Switch</strong> and connect it
with wires!
21_4_press_button: "Press the switch to make it <strong>emit a truthy
signal</strong> and thus activate the painter.<br><br> PS: You
don't have to connect all inputs! Try wiring only two."
1_1_extractor: 在<strong>圆形矿脉</strong>上放一个<strong>开采器</strong>来获取圆形!
1_2_conveyor: 用<strong>传送带</strong>将你的开采器连接到基地上!<br><br>提示:用你的鼠标<strong>按下并拖动</strong>传送带!
1_3_expand:
这<strong>不是</strong>一个挂机游戏!建造更多的开采器和传送带来更快地完成目标。<br><br> 提示:按住
<strong>SHIFT</strong> 键来放置多个开采器,用 <strong>R</strong> 键旋转它们。
2_1_place_cutter: "现在放置一个<strong>切割器</strong>,把圆切成两半!<br><br>注意:无论方向如何,切割机总是<strong>从上到下</strong>切割。"
2_2_place_trash: 切割机可能会<strong>堵塞</strong>。<br><br>使用垃圾桶清除当前 (!) 不需要的废物。
2_3_more_cutters: "干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>0-9快捷键</strong>可以快速选择建筑!"
3_1_rectangles:
"现在让我们开采一些矩形!<strong>建4个人开采器</strong>并将它们连接到基地。<br><br>
提示:按住<strong>SHIFT</strong>拖到传送带会激活传送带规划!"
21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且输入<strong>圆形</strong><strong>白色</strong>和<strong>红色</strong>
21_2_switch_to_wires: 按 <strong>E</strong> 键选择电线层!<br><br> 然后用导线连接上色器的<strong>四个输入口</strong>
21_3_place_button: 很好!现在放置一个<strong>开关</strong>并连接导线!
21_4_press_button: "按下开关去<strong>产生正信号</strong>来激活上色器。<br><br>注:你不用连上所有的输入口!试着只接两个。"
colors:
red: 红色
green: 绿色
@ -309,8 +292,8 @@ ingame:
empty:
copyKey: 复制短代码
connectedMiners:
one_miner: 1 个开采
n_miners: <amount> 个开采
one_miner: 1 个开采
n_miners: <amount> 个开采
limited_items: 限制在 <max_throughput>
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 <strong>truthy signal</strong> on the wires layer
will be painted!
name: 上色器(四口)
description: 能够为图形的四个象限单独上色。只有电线层上带有<strong>正信号</strong>的插槽才可以上色!
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: 如果输入<strong>都是</strong>正信号,则发出<strong>开1</strong>信号。正信号图形颜色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: 如果输入<strong>不是</strong>正信号,则发出<strong>开1</strong>信号。正信号图形颜色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: 如果输入<strong>只有一个</strong>正信号,则发出<strong>开1</strong>信号。正信号图形颜色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: 如果输入<strong>有一个</strong>是正信号,则发出<strong>开1</strong>信号。正信号图形颜色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 <strong>cutter</strong>, which cuts shapes in half
from top to bottom <strong>regardless of its
orientation</strong>!<br><br>Be sure to get rid of the waste, or
otherwise <strong>it will clog and stall</strong> - For this purpose
I have given you the <strong>trash</strong>, which destroys
everything you put into it!
desc: 你刚解锁了<strong>切割机</strong>,它会从上到下切开图形而<strong>不管它的方向</strong>
<br><br>一定要用扔掉不用的东西,不然它会<strong>阻塞</strong>传送带,
为此我给了你<strong>垃圾桶</strong>,它会摧毁所有放进去的东西!
reward_rotater:
title: 顺时针旋转
desc: 恭喜!你解锁了<strong>旋转机</strong>。它会顺时针旋转输入的图形90度。
reward_painter:
title: 上色
desc: 恭喜!你解锁了<strong>上色</strong>。开采一些颜色 (就像你开采图形一样)
将其在上色机中与图形结合来将图形上色!<br><br>PS:如果你患有色盲,可以在设置中启用<strong>色盲模式</strong>
desc: 恭喜!你解锁了<strong>上色</strong>。开采一些颜色 (就像你开采图形一样)
将其在上色器中与图形结合来将图形上色!<br><br>注意:如果你患有色盲,可以在设置中启用<strong>色盲模式</strong>
reward_mixer:
title: 混合颜色
desc: 恭喜!你解锁了<strong>混色</strong>。这个建筑使用<strong>加法混色</strong>将两种颜色混合起来。
desc: 恭喜!你解锁了<strong>混色</strong>。这个建筑使用<strong>加法混色</strong>将两种颜色混合起来。
reward_stacker:
title: 堆叠
desc: 恭喜!你解锁了<strong>堆叠机</strong>。堆叠机会尝试把两个输入的图形<strong>拼贴</strong>在一起。如果有重叠的部分,右边的输入会被<strong>堆叠</strong>在左边的输入上方!
reward_splitter:
title: 分离与合并
desc: You have unlocked a <strong>splitter</strong> variant of the
<strong>balancer</strong> - It accepts one input and splits them
into two!
desc: 你已经解锁了<strong>平衡器</strong>的变体<strong>分配器</strong>,它会把输入的东西分配在两边输出!
reward_tunnel:
title: 隧道
desc: 恭喜!你解锁了<strong>隧道</strong>。你现在可以从其他传送带或建筑底下运送物品了!
@ -576,11 +535,10 @@ storyRewards:
title: 逆时针旋转
desc: 恭喜!你解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。这个变体可以逆时针旋转图形。选择旋转机然后按"T"键来选取这个变体。
reward_miner_chainable:
title: 链式开采机
desc: "You have unlocked the <strong>chained extractor</strong>! It can
<strong>forward its resources</strong> to other extractors so you
can more efficiently extract resources!<br><br> PS: The old
extractor has been replaced in your toolbar now!"
title: 链式开采器
desc:
"你已经解锁了<strong>链式开采器</strong>!它能<strong>转发它的资源</strong>给其他的开采器,这样你就会更有效率的开采资源了!<br><br>
注意:新的开采器替换了工具栏里旧的开采器!"
reward_underground_belt_tier_2:
title: 二级隧道
desc: 恭喜!你解锁了<strong>二级隧道</strong>。这是隧道的一个变体。二级隧道有<strong>更长的传输距离</strong>。你还可以混用不同的隧道变体!
@ -588,22 +546,17 @@ storyRewards:
title: 四向切割机
desc: 恭喜!你解锁了<strong>切割机</strong>的<strong>四向</strong>变体。它可以将输入的图形切成四块而不只是左右两块!
reward_painter_double:
title: 双倍上色
desc: 恭喜!你解锁了<strong>上色</strong>的<strong>双倍</strong>变体。它可以同时为两个图形上色,每次只消耗一份颜色!
title: 双倍上色
desc: 恭喜!你解锁了<strong>上色</strong>的<strong>双倍</strong>变体。它可以同时为两个图形上色,每次只消耗一份颜色!
reward_storage:
title: 仓库
desc: You have unlocked the <strong>storage</strong> building - It allows you to
store items up to a given capacity!<br><br> It priorities the left
output, so you can also use it as an <strong>overflow gate</strong>!
title: 存储器
desc: 你已经解锁了<strong>存储器</strong>,它能存满指定容量的物品!<br><br>
它<strong>先从左边</strong>输出,这样你就可以用它做一个<strong>溢流门</strong>了!
reward_freeplay:
title: 自由模式
desc: You did it! You unlocked the <strong>free-play mode</strong>! This means
that shapes are now <strong>randomly</strong> generated!<br><br>
Since the hub will require a <strong>throughput</strong> from now
on, I highly recommend to build a machine which automatically
delivers the requested shape!<br><br> 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: 成功了!你解锁了<strong>自由模式</strong>!这意味着现在将<strong>随机</strong>生成图形!
从现在起,基地将需要<strong>生产率</strong>,我强烈建议你去制造一台能够自动交付所需图形的机器!<br><br>
基地会在电线层输出需要的图形,你需要去分析图形并在此基础上自动配置你的工厂。
reward_blueprints:
title: 蓝图
desc: 你现在可以<strong>复制粘贴</strong>你的工厂的一部分了!按住 CTRL
@ -611,83 +564,67 @@ storyRewards:
no_reward:
title: 下一关
desc: 这一关没有奖励,但是下一关有!<br><br>
PS:你生产过的<strong>所有</strong>图形都会被用来<strong>升级建筑</strong>。
注意:你生产过的<strong>所有</strong>图形都会被用来<strong>升级建筑</strong>。
no_reward_freeplay:
title: 下一关
desc: 恭喜你!另外,我们已经计划在独立版中加入更多内容!
reward_balancer:
title: Balancer
desc: The multifunctional <strong>balancer</strong> has been unlocked - It can
be used to build bigger factories by <strong>splitting and merging
items</strong> onto multiple belts!
title: 平衡器
desc: 解锁了多功能的<strong>平衡器</strong>,它能够<strong>分割和合并</strong>多个传送带的资源,可以用来建造更大的工厂!
reward_merger:
title: Compact Merger
desc: You have unlocked a <strong>merger</strong> variant of the
<strong>balancer</strong> - It accepts two inputs and merges them
into one belt!
title: 小型合并器
desc: 你已经解锁了<strong>平衡器</strong>的变体<strong>合并器</strong>,它能合并两个输入到一个传送带上!
reward_belt_reader:
title: Belt reader
desc: You have now unlocked the <strong>belt reader</strong>! It allows you to
measure the throughput of a belt.<br><br>And wait until you unlock
wires - then it gets really useful!
title: 传送带阅读器
desc: 你已经解锁了<strong>传送带阅读器</strong>!它能够测量传送带上的生产率。<br><br>
等你解锁了电线层后,它会更有用!
reward_rotater_180:
title: Rotater (180 degrees)
desc: You just unlocked the 180 degress <strong>rotater</strong>! - It allows
you to rotate a shape by 180 degress (Surprise! :D)
title: 180度旋转器
desc: 你刚刚解锁了180度<strong>旋转器</strong>它能帮你把一个图形旋转180度(Surprise! :D)
reward_display:
title: Display
desc: "You have unlocked the <strong>Display</strong> - Connect a signal on the
wires layer to visualize it!<br><br> PS: Did you notice the belt
reader and storage output their last read item? Try showing it on a
display!"
title: 显示器
desc: "你已经解锁了<strong>显示器</strong>,显示一个在电线层上输入的信号!<br><br>
注意:你注意到传输带阅读器和存储器输出他们最后一次输入的物品的信号了吗?试着在显示屏上展示一下!"
reward_constant_signal:
title: Constant Signal
desc: You unlocked the <strong>constant signal</strong> building on the wires
layer! This is useful to connect it to <strong>item filters</strong>
for example.<br><br> The constant signal can emit a
<strong>shape</strong>, <strong>color</strong> or
<strong>boolean</strong> (1 / 0).
title: 固定信号
desc:
你解锁了电线层上的<strong>固定信号</strong>建筑,比如它连接<strong>过滤器</strong>时非常有用。<br><br>
它能发出图形、颜色、开关量1 / 0的固定信号。
reward_logic_gates:
title: Logic Gates
desc: You unlocked <strong>logic gates</strong>! You don't have to be excited
about this, but it's actually super cool!<br><br> With those gates
you can now compute AND, OR, XOR and NOT operations.<br><br> As a
bonus on top I also just gave you a <strong>transistor</strong>!
title: 逻辑门
desc: 你解锁了<strong>逻辑门</strong>!它们是个好东西!<br><br>
你可以用它们来进行'与,或,非,异或'操作。<br><br>作为奖励,我还给你解锁了<strong>晶体管</strong>
reward_virtual_processing:
title: Virtual Processing
desc: I just gave a whole bunch of new buildings which allow you to
<strong>simulate the processing of shapes</strong>!<br><br> 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:<br><br> -
Build an <strong>automated machine</strong> to create any possible
shape requested by the HUB (I recommend to try it!).<br><br> - Build
something cool with wires.<br><br> - Continue to play
regulary.<br><br> Whatever you choose, remember to have fun!
title: 模拟处理器
desc: 我刚刚给了一大堆新建筑,让你可以<strong>模拟形状的处理过程</strong><br><br>
你现在可以在电线层上模拟切割机,旋转机,堆叠机和其他机器!<br><br>
有了这些,你可以选择下面三个方向来继续游戏:<br><br>
-建立一个<strong>自动化</strong>生产基地需要图形的机器(我建议试试!)。<br><br>
-用电线层上做些酷炫的东西。<br><br>
-继续正常比赛。<br><br>
无论你选择什么,记住要玩得开心!
reward_wires_painter_and_levers:
title: Wires & Quad Painter
desc: "You just unlocked the <strong>Wires Layer</strong>: It is a separate
layer on top of the regular layer and introduces a lot of new
mechanics!<br><br> For the beginning I unlocked you the <strong>Quad
Painter</strong> - Connect the slots you would like to paint with on
the wires layer!<br><br> To switch to the wires layer, press
<strong>E</strong>. <br><br> PS: <strong>Enable hints</strong> in
the settings to activate the wires tutorial!"
title: 电控四口上色器
desc: "你刚刚解锁了<strong>电线层</strong>:它是正常层之上的一个层,它带来了许多新的机制!<br><br>
首先我解锁了你的<strong>四口上色器</strong>,按<strong>E</strong>键切换到电线层,然后连接你想要染色的槽,用开关来控制开启。<br><br>
注意:在设置中打开电线层教程!"
reward_filter:
title: Item Filter
desc: You unlocked the <strong>Item Filter</strong>! 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.<br><br> You can also pass in a
boolean signal (1 / 0) to entirely activate or disable it.
title: 物品过滤器
desc:
你解锁了物品<strong>过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br>
你也可以输入正负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: <amount> %
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 <b>R</b>.
- Holding <b>CTRL</b> 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 <b>T</b> 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 <b>T</b>
- 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 <b>SHIFT</b> 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 <b>CTRL</b> allows to place multiple buildings.
- You can hold <b>ALT</b> 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 <b>CTRL</b> + 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.
- 基地接受所有输入的图形!
- 确保都是模块化的工厂,不然后面会很麻烦的!
- 不要建设的太靠近基地,不然后面会非常混乱的!
- 如果堆叠不起作用,那就换种方案。
- 你可以通过 <b>R</b> 键切换传送带规化方向。
- 按住 <b>CTRL</b> 键拖动传送带将不会自动改变它的方向。
- 只要所有建筑等级一致,效率也将一致。
- 串行执行比并行执行更有效。
- 在后面的游戏中你会解锁更多建筑的变种!
- 你可以使用<b>T</b>键切换不同的变种。
- 对称是关键!
- 你可以使用隧道构建不同层次的通道。
- 试着建造紧凑型工厂,它会给你带来好处的!
- 你可以按<b>T</b>来切换上色器的镜像变体。
- 正确的建筑比例将使效率最大化。
- 在传送带和开采器等级一致时5个开采器就可以占满一条传送带的运量。
- 别忘了隧道!
- 你不必为了充分发挥效率而平均分配物品。
- 按住<b>SHIFT</b>键将激活传送带规划,能让你更容易的放置长线的传送带。
- 切割机总是垂直切割,而不管图形方向如何。
- 混合三原色能够获得白色。
- 存储缓冲区优先处理第一个输出。
- 你值得花时间来构建可重复的设计!
- 按住<b>CTRL</b>键能够放置多个建筑。
- 你可以按住<b>ALT</b>来反向你将放置传送带的方向。
- 效率是关键!
- 离基地越远图形越复杂。
- 机器的速度是有限的,把它们分开可以获得最高的效率。
- 使用平衡器最大化你的效率。
- 组织很重要。尽量不要过多地穿过传送带。
- 提前规划,省的后面混乱!
- 不要删除旧的工厂,你会需要他们生产的东西升级建筑来提高效率。
- 在寻求帮助之前试着自己完成20级!
- 不要把事情复杂化,试着保持简单,你会成功的。
- 你可能需要在游戏的后期重复使用工厂。把你的工厂规划成可重复使用的。
- 有时,你可以在地图上找到你需要的图形,而不用堆叠机去合成它。
- 风车图形不会自动产生
- 在切割前,给你的图形上色可以获得最高的效率。
- 模块化,可以使你提高效率。
- 记得做一个单独的蓝图工厂。
- 仔细看看调色器,你就会调色了。
- <b>CTRL+点击</b>能够选择一块区域。
- 建得离基地太近会妨碍以后的工作。
- 升级列表中每个形状旁边的固定图标可以将其固定到屏幕上。
- 地图无限大,你可以随意布置。
- 尝试下Factorio这是我最喜欢的游戏。
- 四输入切割机从右上角进行顺时针切割!
- 在主菜单你可以下载你保存的游戏进度文件!
- 这个游戏有很多有用的快捷键!一定要到快捷键页面看看。
- 这个游戏有很多设置,一定要检查一下!
- 总览时基地的标记边上有个指向它所在方向的指针!
- 想清理传送带,就剪切那块区域并在相同位置放置他们。
- 按F4显示FPS。
- 按两次F4显示你鼠标所在的块。
- 你可以点击固定在屏幕左侧的图形来解除固定。

View File

@ -10,7 +10,7 @@ steamPage:
玩家可以在 Steam 購買本游戲的單機版,如果還在猶豫,也可以到 shapez.io 先免費試玩再決定!
title_advantages: 單機版優點
advantages:
- <b>12個新關卡</b> 總共有26關
- <b>12個新關卡</b>總共有26關
- <b>18個新建築</b> 幫助玩家自動化整個工廠!
- <b>20個升級</b> 讓遊玩時間更久!
- <b>電路更新</b> 帶給玩家新次元體驗!
@ -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: <x>級
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: 你嘗試使用了 <feature> 功能。該功能在試玩版中不可用。請考慮購買單機版以獲得更好的體驗。
oneSavegameLimit:
title: 存檔數量限制
desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者取單機版!
desc: 試玩版中只能保存一份存檔。請刪除舊存檔或者單機版!
updateSummary:
title: 更新了!
desc: "以下為自上次遊戲以來更新的內容:"
desc: "以下為自上次遊戲以來更新的內容"
upgradesIntroduction:
title: 解鎖建築升級
desc: 你生產過的所有圖形可以被用來升級建築。<strong>不要銷毀你之前建造的工廠!</strong> 升級選單在幕右上角。
desc: 你生產過的所有圖形可以被用來升級建築。<strong>不要銷毀你之前建造的工廠!</strong> 升級選單在幕右上角。
massDeleteConfirm:
title: 確認刪除
desc: 你將要刪除很多建築,準確來說有<count>幢!你確定要這麼做嗎?
@ -147,17 +147,19 @@ dialogs:
desc: 你還沒有解鎖藍圖功能!完成更多的關卡來解鎖藍圖。
keybindingsIntroduction:
title: 實用按鍵
desc: "這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在<strong>按鍵設置</strong>中查看其他的! <br><br>
<code class='keybinding'>CTRL</code> + 拖動:選擇區域以復製或刪除。 <br> <code
desc:
"這個遊戲有很多能幫助搭建工廠的使用按鍵。 以下是其中的一些,記得在<strong>按鍵設定</strong>中查看其他的! <br><br>
<code class='keybinding'>CTRL</code> + 拖曳:選擇區域以複製或刪除。 <br> <code
class='keybinding'>SHIFT</code>: 按住以放置多個。 <br> <code
class='keybinding'>ALT</code>: 反向放置送帶。 <br>"
class='keybinding'>ALT</code>: 反向放置送帶。 <br>"
createMarker:
title: 創建標記
desc: 給地圖標記起一個的名字。 你可以在名字中加入一個<strong>短代碼</strong>以加入圖形。 (你可以在 <link>here</link>
生成短代碼。)
title: 建立標記
desc:
給地圖標記取一個名字。你可以在名字中加入一個<strong>簡短代碼</strong>以加入圖形。(你可以在<link>這裡</link>
建立簡短代碼。)
titleEdit: 修改標記
markerDemoLimit:
desc: 在試玩版中你只能建兩個地圖標記。請取單機版以建更多標記。
desc: 在試玩版中你只能兩個地圖標記。請取單機版以建更多標記。
massCutConfirm:
title: 確認剪下
desc: 你將要剪下很多建築,準確來說有<count>幢!你確定要這麼做嗎?
@ -170,16 +172,16 @@ dialogs:
editSignal:
title: 訊號設定
descItems: "選擇一個預先設定的物件"
descShortKey: ... 或輸入圖形的<strong>短代碼</strong> (可以由 <link>here</link> 生成)
descShortKey: …或輸入圖形的<strong>簡短代碼</strong>(可以在<link>這裡</link>建立)
renameSavegame:
title: 重新命名存檔
desc: 你可以在這裡重新命名存檔
tutorialVideoAvailable:
title: 有教
desc: 這個等級有教學影片!你想觀看嗎?
title: 有教
desc: 這個等級有教學影片!你想觀看嗎?
tutorialVideoAvailableForeignLanguage:
title: 有教
desc: 這個等級目前只有英文版教學影片,你想觀看嗎?
title: 有教
desc: 這個等級目前只有英文版教學影片,你想觀看嗎
ingame:
keybindingsOverlay:
moveMap: 移動
@ -191,19 +193,19 @@ ingame:
disableAutoOrientation: 關閉自動定向
toggleHud: 開關基地
placeBuilding: 放置建築
createMarker: 建地圖標記
createMarker: 地圖標記
delete: 銷毀
pasteLastBlueprint: 貼上一個藍圖
lockBeltDirection: 啟用送帶規劃
lockBeltDirection: 啟用送帶規劃
plannerSwitchSide: 規劃器換邊
cutSelection: 剪下選取
copySelection: 複製選取
clearSelection: 清空選取
pipette: 吸附
pipette: 滴管
switchLayers: 切換層
buildingPlacement:
cycleBuildingVariants: 按<key>鍵以選擇建築變體.
hotkeyLabel: "快捷鍵: <key>"
cycleBuildingVariants: 按<key>鍵以選擇建築變體
hotkeyLabel: "快捷鍵<key>"
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: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。 <br><br>按 <keybinding>
當前區域建立地圖標記或按 <strong>right-click</strong> 為選取區域建立地圖標記。
creationSuccessNotification: 成功建地圖標記。
description: 在標記上按左鍵以快速移動到標記區域,在標記上按右鍵以刪除該標記。<br><br>按 <keybinding>
目前區域建立地圖標記或按<strong>右鍵</strong>為選取區域建立地圖標記。
creationSuccessNotification: 成功地圖標記。
interactiveTutorial:
title:
title:
hints:
1_1_extractor: 在<strong>圓形礦脈</strong>上放一個<strong>開採機</strong>來獲取圓形!
1_2_conveyor: 用<strong>送帶</strong>將你的開採機連接到基地上!
<br><br>提示:用你的游標<strong>按下並拖動</strong>傳送帶!
1_3_expand: 這<strong>不是</strong>一個放置型遊戲!建造更多的開採機和送帶來更快地完成目標。 <br><br>
1_1_extractor: 在<strong>圓形礦脈</strong>上放一個<strong>開採機</strong>來採集圓形!
1_2_conveyor: 用<strong>送帶</strong>將你的開採機連接到基地上!
<br><br>提示:用你的游標<strong>按下並拖曳</strong>輸送帶!
1_3_expand: 這<strong>不是</strong>一個放置型遊戲!建造更多的開採機和送帶來更快地完成目標。 <br><br>
提示:按住<strong>SHIFT</strong>鍵來放置多個開採機,用<strong>R</strong>鍵旋轉它們。
2_1_place_cutter: "現在放置一個<strong>切割機</strong>並利用它把圓圈切成兩半!<br><br>
2_1_place_cutter: "現在放置一個<strong>切割機</strong>並利用它把圓圈切成兩半<br><br>
PS: 不論切割機的方向,它都會把圖形<strong>垂直地</strong>切成兩半。"
2_2_place_trash: 切割機可能會<strong>堵塞並停止運作</strong>!<br><br>
2_2_place_trash: 切割機可能會<strong>堵塞並停止運作</strong><br><br>
用<strong>垃圾桶</strong>把「目前」不需要的部分處理掉。
2_3_more_cutters: "做得好! 現在,再放<strong>2個切割機</strong>來加速這個緩慢的生產線!<br><br>
PS: 使用<strong>0-9快捷鍵</strong>可以更快選取建築 !"
2_3_more_cutters: "做得好 現在,再放<strong>2個切割機</strong>來加速這個緩慢的生產線!<br><br>
PS: 使用<strong>0-9快捷鍵</strong>可以更快選取建築 "
3_1_rectangles: "現在來開採一些方形吧!<strong>蓋4座開採機</strong>,把形狀收集到基地。<br><br> PS:
選擇輸送帶,按住<strong>SHIFT</strong>並拖曳滑鼠可以計畫輸送帶位置!"
21_1_place_quad_painter: 放置一個<strong>切割機(四分)</strong>並取得一些
@ -334,7 +336,7 @@ ingame:
desc: 遊戲使我利用閒暇時間做的!
shopUpgrades:
belt:
name: 送帶、平衡機、隧道
name: 送帶、平衡機、隧道
description: 效率 <currentMult>倍 → <newMult>倍
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: <strong>順時針旋轉機</strong>已解鎖。它會順時針旋轉輸入的圖形90度。
reward_painter:
title: 上色
desc: <strong>上色機</strong>已解鎖。開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。<br><br>備註:如果你是色盲,設中有<strong>色盲模式</strong>可以選。
desc: <strong>上色機</strong>已解鎖。開採一些顏色,用上色機把顏色和圖形混合,就可以為圖形著色。<br><br>備註:如果你是色盲,設中有<strong>色盲模式</strong>可以選。
reward_mixer:
title: 混色
desc: <strong>混色器</strong>已解鎖-在此建築物中使用<strong>附加混合</strong>結合兩種顏色!
@ -534,14 +536,14 @@ storyRewards:
reward_splitter:
title: 分流
desc: <strong>分流機</strong><strong>平衡機</strong>的變體)已解鎖。
- 它將單個送帶分流成兩個。
- 它將單個送帶分流成兩個。
reward_tunnel:
title: 隧道
desc: <strong>隧道</strong>已解鎖。你現在可以從其他送帶或建築底下運送物品了!
desc: <strong>隧道</strong>已解鎖。你現在可以從其他送帶或建築底下運送物品了!
reward_rotater_ccw:
title: 逆時針旋轉
desc: <strong>逆時針旋轉機</strong>已解鎖。它會逆時針旋轉輸入的圖形90度。
逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並<strong>按「T」來切換變體</strong>就能建。
逆時針旋轉機是順時針旋轉機的變體。選擇「順時針旋轉機」並<strong>按「T」來切換變體</strong>就能
reward_miner_chainable:
title: 鏈式開採
desc: "<strong>鏈式開採機</strong>變體已解鎖。它是開採機的一個變體。
@ -581,11 +583,11 @@ storyRewards:
desc: 恭喜你!另外,我們已經計劃在單機版中加入更多內容!
reward_balancer:
title: 平衡物流
desc: <strong>平衡機</strong>已解鎖。在大型工廠中,平衡機負責<strong>合流或分流</strong>多個送帶上的物品。
desc: <strong>平衡機</strong>已解鎖。在大型工廠中,平衡機負責<strong>合流或分流</strong>多個送帶上的物品。
reward_merger:
title: 合流
desc: <strong>合流機</strong><strong>平衡機</strong>的變體)已解鎖。
- 它會將兩個送帶整合成一個。
- 它會將兩個送帶整合成一個。
reward_belt_reader:
title: 讀取輸送帶
desc: <strong>輸送帶讀取機</strong>已解鎖。
@ -612,10 +614,11 @@ storyRewards:
desc: <strong>邏輯閘</strong>已解鎖。
你可以覺得無所謂,但其實邏輯閘其實超酷的!<br><br>
有了這些邏輯閘,你可以運算 AND, OR, XOR 與 NOT。<br><br>
錦上添花,我再送你<strong>電晶體</strong>!
錦上添花,我再送你<strong>電晶體</strong>
reward_virtual_processing:
title: 虛擬操作
desc: <strong>虛擬操作</strong>!<br><br>已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。
desc:
<strong>虛擬操作</strong><br><br>已解鎖。很多新建築有虛擬版,你可以模擬切割機、旋轉機、推疊機還有更多電路層上的建築。
繼續遊玩的你現在有三個選項:<br><br>
- 蓋一個自動生成任何基地要求圖形的<strong>自動機</strong>(推薦!)。<br><br>
- 利用電路層蓋一些很酷建築<br><br>
@ -628,7 +631,7 @@ storyRewards:
首先,我為你解鎖<strong>四角上色機</strong>。
想要上色的角落記得在電路層通電!<br><br>
按<strong>E</strong>切換至電路層。<br><br>
PS: 設定裡<strong>開啟提示</strong>來啟動教"
PS: 設定裡<strong>開啟提示</strong>來啟動教"
reward_filter:
title: 物件分類器
desc: <strong>物件分類器</strong>已解鎖。
@ -638,7 +641,7 @@ storyRewards:
title: 試玩結束
desc: 你已破關試玩版!
settings:
title:
title:
categories:
general: 一般
userInterface: 使用者介面UI
@ -648,11 +651,11 @@ settings:
dev: 開發版本
staging: 預覽版本
prod: 正式版本
buildDate: 於<at-date>
buildDate: 於<at-date>
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: <amount> %
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:
- 基地接受任何輸入,不只是當前要求的圖形!
- 盡量讓工廠模組化,會有回報的!
- 建築不要距離基地太近,否則容易混亂!
- 基地接受任何輸入,不只是當下要求的圖形!
- 盡量讓工廠模組化,會有回報的
- 建築不要距離基地太近,否則容易混亂
- 如果堆疊不如預期,嘗試將輸入端互換。
- 輸送帶的方向可以按 <b>R</b> 更換。
- 按住 <b>CTRL</b> 來防止輸送帶自動轉向。
- 同等級的生產比例會是一樣的。
- 串聯比並聯更有效率。
- 遊戲後期可以解鎖更多建築變體!
- 遊戲後期可以解鎖更多建築變體
- 玩家可以按 <b>T</b> 來選擇不同變體。
- 對稱是關鍵!
- 對稱是關鍵
- 不同等級的隧道可以相互交織。
- 盡量讓工廠保持緊密,會有回報的!
- 盡量讓工廠保持緊密,會有回報的
- 上色機有對稱的變體。按 <b>T</b> 來選擇不同變體。
- 正確的建築比例可以將效率最大化。
- 最高級時,五個開採機可填滿一個輸送帶。
- 別忘記使用隧道!
- 別忘記使用隧道
- 最高效率不一定來自均勻切割。
- 按住 <b>SHIFT</b> 輕鬆規劃長距離輸送帶。
- 不論擺放方向,切割機永遠做垂直切割。
- 白 = 紅 + 綠 + 藍。
- 倉庫優先從左側輸出。
- 花點時間研究可以重複利用的設計,會有回報的!
- 花點時間研究可以重複利用的設計,會有回報的
- 按住 <b>SHIFT</b> 可以一次放置多個建築。
- 按住 <b>ALT</b> 以反轉輸送帶的放置方向。
- 效率是關鍵!
- 效率是關鍵
- 離基地越遠得圖形叢越複雜。
- 機器的運作速度有上限,多放幾個增加生產效率。
- 用平衡機讓效率最大化。
- 規劃很重要,盡量別讓輸送帶錯綜複雜。
- 預先規劃,不然會混亂不堪!
- 預先規劃,不然會混亂不堪
- 不要刪除舊的工廠,解鎖更新能會需要它們。
- 先試著靠自己破第20關再去尋求幫助。
- 先試著靠自己破第 20 關再去尋求幫助。
- 不要讓東西複雜化,保持簡單則行的遠。
- 遊戲中有時需要重複利用工廠,設計時記得考量重複利用性。
- 有些圖形地圖上就找的到,不必自行堆疊。
- 地圖永遠部會自然生成完整的風車圖形。
- 先上色再切割會比較有效率。
- 有了模組,空間淪為假議題、凡夫俗子的憂思。
- 建一個藍圖工廠,這對模組化很有幫助。
- 一個藍圖工廠,這對模組化很有幫助。
- 靠近一點看混色機,你會找到解答。
- 按 <b>CTRL</b> + 點選想選取的區域。
- 離基地太近的建築可能在未來會礙事。
- 更新目錄的每個圖形旁都有圖釘,點選即可把圖形釘在螢幕上(目標圖形旁)
- 混合所有基本色就會得到白色!
- 地圖是無限延展的,別執著,擴張吧!
- Factorio 是我最喜歡的遊戲,非常推薦!
- 更新目錄的每個圖形旁都有圖釘,點選即可把圖形訂選在螢幕上(目標圖形旁)
- 混合所有基本色就會得到白色
- 地圖是無限延展的;別執著於一處,盡情地擴張吧!
- Factorio 是我最喜歡的遊戲,非常推薦
- 四分切割機從右上角順時鐘地輸出圖形的四個區塊。
- 你可以從主畫面下載存檔。
- 去設定頁看看,有很多有用的按鍵組合!
- 去設定頁看看,有很多有用的按鍵組合
- 有很多東西都可以設定,有空的話去設定頁看看。
- 看不見基地時,基地的標示左側有個小指南針會提醒你它的方位。
- 清除輸送帶有個方法:複製它再原地貼上。
- 按 F4 來顯示螢幕的幀數(FPS)與刷新率(Tick Rate)
- 清除輸送帶有個方法複製它再原地貼上。
- 按 F4 來顯示螢幕的幀數FPS與刷新率Tick Rate
- 按 F4 兩次來顯示相機和游標的絕對位置。
- 在已標記的圖形上按左鍵去除標記。

View File

@ -1 +1 @@
1.2.1
1.2.2