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

Merge branch 'contributors-in-game' of https://github.com/Bagel03/bagel-shapez.io into contributors-in-game

This commit is contained in:
Edward Badel 2021-06-27 01:18:38 -04:00
commit 090f38e533
18 changed files with 102 additions and 92 deletions

View File

@ -6,6 +6,8 @@ export const CHANGELOG = [
"Puzzle DLC: Goal acceptors now reset after getting no items for a while (This should prevent being able to 'cheat' puzzles) (by Sense101)",
"Puzzle DLC: Added button to clear all buildings / reset the puzzle (by Sense101)",
"Puzzle DLC: Allow copy-paste in puzzle mode (by Sense101)",
"Fixed level achievements being given on the wrong level (by DJ1TJOO)",
"Fixed blueprint not properly clearing on right click",
"Updated translations",
],
},

View File

@ -18,6 +18,7 @@ export const THIRDPARTY_URLS = {
shapeViewer: "https://viewer.shapez.io",
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",
stanaloneCampaignLink: "https://get.shapez.io",
puzzleDlcStorePage: "https://store.steampowered.com/app/1625400/shapezio__Puzzle_DLC",
levelTutorialVideos: {
@ -72,7 +73,7 @@ export const globalConfig = {
readerAnalyzeIntervalSeconds: 10,
goalAcceptorItemsRequired: 10,
goalAcceptorItemsRequired: 12,
goalAcceptorsPerProducer: 5,
puzzleModeSpeed: 3,
puzzleMinBoundsSize: 2,

View File

@ -56,4 +56,12 @@ export class GoalAcceptorComponent extends Component {
(globalConfig.puzzleModeSpeed * globalConfig.beltSpeedItemsPerSecond)
);
}
/**
* Copy the current state to another component
* @param {GoalAcceptorComponent} otherComponent
*/
copyAdditionalStateTo(otherComponent) {
otherComponent.item = this.item;
}
}

View File

@ -6,6 +6,7 @@ import { MetaBuilding } from "../meta_building";
import { GameRoot } from "../root";
import { ShapeDefinition } from "../shape_definition";
import { HUDBetaOverlay } from "./parts/beta_overlay";
import { HUDBlueprintPlacer } from "./parts/blueprint_placer";
import { HUDBuildingsToolbar } from "./parts/buildings_toolbar";
import { HUDBuildingPlacer } from "./parts/building_placer";
import { HUDColorBlindHelper } from "./parts/color_blind_helper";
@ -44,6 +45,8 @@ export class GameHUD {
this.parts = {
buildingsToolbar: new HUDBuildingsToolbar(this.root),
blueprintPlacer: new HUDBlueprintPlacer(this.root),
buildingPlacer: new HUDBuildingPlacer(this.root),
// Must always exist

View File

@ -125,7 +125,7 @@ export class HUDModalDialogs extends BaseHUDPart {
dialog.buttonSignals.getStandalone.add(() => {
this.app.analytics.trackUiClick("demo_dialog_click");
window.open(THIRDPARTY_URLS.standaloneStorePage + "?ref=ddc");
window.open(THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_demo_dialog");
});
return dialog.buttonSignals;

View File

@ -1,5 +1,3 @@
/* typehints:start */
/* typehints:end */
import { globalConfig } from "../../../core/config";
import { gMetaBuildingRegistry } from "../../../core/global_registries";
import { createLogger } from "../../../core/logging";
@ -50,7 +48,7 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart {
</div>
<div class="buildingsButton">
<button class="styledButton clearBuildings">${T.ingame.puzzleEditorSettings.clearBuildings}</button>
<button class="styledButton resetPuzzle">${T.ingame.puzzleEditorSettings.resetPuzzle}</button>
</div>
</div>`
@ -62,7 +60,7 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart {
bind(".zoneHeight .plus", () => this.modifyZone(0, 1));
bind("button.trim", this.trim);
bind("button.clearItems", this.clearItems);
bind("button.clearBuildings", this.clearBuildings);
bind("button.resetPuzzle", this.resetPuzzle);
}
}
@ -70,9 +68,14 @@ export class HUDPuzzleEditorSettings extends BaseHUDPart {
this.root.logic.clearAllBeltsAndItems();
}
clearBuildings() {
resetPuzzle() {
for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) {
const staticComp = entity.components.StaticMapEntity;
const goalComp = entity.components.GoalAcceptor;
if (goalComp) {
goalComp.clear();
}
if (
[MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding]

View File

@ -1,10 +1,6 @@
import { gMetaBuildingRegistry } from "../../../core/global_registries";
import { createLogger } from "../../../core/logging";
import { makeDiv } from "../../../core/utils";
import { T } from "../../../translations";
import { MetaBlockBuilding } from "../../buildings/block";
import { MetaConstantProducerBuilding } from "../../buildings/constant_producer";
import { MetaGoalAcceptorBuilding } from "../../buildings/goal_acceptor";
import { StaticMapEntityComponent } from "../../components/static_map_entity";
import { BaseHUDPart } from "../base_hud_part";
@ -23,13 +19,13 @@ export class HUDPuzzlePlaySettings extends BaseHUDPart {
["section"],
`
<button class="styledButton clearItems">${T.ingame.puzzleEditorSettings.clearItems}</button>
<button class="styledButton clearBuildings">${T.ingame.puzzleEditorSettings.resetPuzzle}</button>
<button class="styledButton resetPuzzle">${T.ingame.puzzleEditorSettings.resetPuzzle}</button>
`
);
bind("button.clearItems", this.clearItems);
bind("button.clearBuildings", this.clearBuildings);
bind("button.resetPuzzle", this.resetPuzzle);
}
}
@ -37,20 +33,19 @@ export class HUDPuzzlePlaySettings extends BaseHUDPart {
this.root.logic.clearAllBeltsAndItems();
}
clearBuildings() {
resetPuzzle() {
for (const entity of this.root.entityMgr.getAllWithComponent(StaticMapEntityComponent)) {
const staticComp = entity.components.StaticMapEntity;
const goalComp = entity.components.GoalAcceptor;
if (
[MetaGoalAcceptorBuilding, MetaConstantProducerBuilding, MetaBlockBuilding]
.map(metaClass => gMetaBuildingRegistry.findByClass(metaClass).id)
.includes(staticComp.getMetaBuilding().id)
) {
continue;
if (goalComp) {
goalComp.clear();
}
this.root.map.removeStaticEntity(entity);
this.root.entityMgr.destroyEntity(entity);
if (staticComp.getMetaBuilding().getIsRemovable(this.root)) {
this.root.map.removeStaticEntity(entity);
this.root.entityMgr.destroyEntity(entity);
}
}
this.root.entityMgr.processDestroyList();
}

View File

@ -42,7 +42,7 @@ export class HUDStandaloneAdvantages extends BaseHUDPart {
this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => {
this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam");
this.root.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=savs&prc=" + A_B_TESTING_LINK_TYPE
THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_std_advg"
);
this.close();
});

View File

@ -27,7 +27,9 @@ export class HUDWatermark extends BaseHUDPart {
);
this.trackClicks(this.linkElement, () => {
this.root.app.analytics.trackUiClick("watermark_click_2_direct");
this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=wtmd");
this.root.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_watermark"
);
});
}

View File

@ -7,7 +7,6 @@ import { types } from "../../savegame/serialization";
import { enumGameModeTypes, GameMode } from "../game_mode";
import { HUDPuzzleBackToMenu } from "../hud/parts/puzzle_back_to_menu";
import { HUDPuzzleDLCLogo } from "../hud/parts/puzzle_dlc_logo";
import { HUDBlueprintPlacer } from "../hud/parts/blueprint_placer";
import { HUDMassSelector } from "../hud/parts/mass_selector";
export class PuzzleGameMode extends GameMode {
@ -32,7 +31,6 @@ export class PuzzleGameMode extends GameMode {
this.additionalHudParts = {
puzzleBackToMenu: HUDPuzzleBackToMenu,
puzzleDlcLogo: HUDPuzzleDLCLogo,
blueprintPlacer: HUDBlueprintPlacer,
massSelector: HUDMassSelector,
};

View File

@ -10,7 +10,6 @@ import { enumGameModeIds, enumGameModeTypes, GameMode } from "../game_mode";
import { ShapeDefinition } from "../shape_definition";
import { enumHubGoalRewards } from "../tutorial_goals";
import { HUDWiresToolbar } from "../hud/parts/wires_toolbar";
import { HUDBlueprintPlacer } from "../hud/parts/blueprint_placer";
import { HUDUnlockNotification } from "../hud/parts/unlock_notification";
import { HUDMassSelector } from "../hud/parts/mass_selector";
import { HUDShop } from "../hud/parts/shop";
@ -546,7 +545,6 @@ export class RegularGameMode extends GameMode {
this.additionalHudParts = {
wiresToolbar: HUDWiresToolbar,
blueprintPlacer: HUDBlueprintPlacer,
unlockNotification: HUDUnlockNotification,
massSelector: HUDMassSelector,
shop: HUDShop,

View File

@ -67,8 +67,9 @@ export class GoalAcceptorSystem extends GameSystemWithFilter {
const staticComp = contents[i].components.StaticMapEntity;
const item = goalComp.item;
const requiredItemsForSuccess = globalConfig.goalAcceptorItemsRequired;
const percentage = clamp(goalComp.currentDeliveredItems / requiredItemsForSuccess, 0, 1);
const requiredItems = globalConfig.goalAcceptorItemsRequired;
const fillPercentage = clamp(goalComp.currentDeliveredItems / requiredItems, 0, 1);
const center = staticComp.getTileSpaceBounds().getCenter().toWorldSpace();
if (item) {
@ -81,7 +82,7 @@ export class GoalAcceptorSystem extends GameSystemWithFilter {
);
}
const isValid = item && goalComp.currentDeliveredItems >= requiredItemsForSuccess;
const isValid = item && goalComp.currentDeliveredItems >= requiredItems;
parameters.context.translate(center.x, center.y);
parameters.context.rotate((staticComp.rotation / 180) * Math.PI);
@ -93,7 +94,7 @@ export class GoalAcceptorSystem extends GameSystemWithFilter {
// progress arc
goalComp.displayPercentage = lerp(goalComp.displayPercentage, percentage, 0.2);
goalComp.displayPercentage = lerp(goalComp.displayPercentage, fillPercentage, 0.2);
const startAngle = Math.PI * 0.595;
const maxAngle = Math.PI * 1.82;

View File

@ -427,7 +427,7 @@ export class AchievementCollection {
createLevelOptions(level) {
return {
init: ({ key }) => this.unlock(key, this.root.hubGoals.level),
isValid: currentLevel => currentLevel >= level,
isValid: currentLevel => currentLevel > level,
signal: "storyGoalCompleted",
};
}

View File

@ -398,9 +398,7 @@ export class MainMenuState extends GameState {
}
onPuzzleWishlistButtonClicked() {
this.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.puzzleDlcStorePage + "?ref=mmsl2&prc=" + A_B_TESTING_LINK_TYPE
);
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.puzzleDlcStorePage + "?utm_medium=mmsl2");
}
onBackButtonClicked() {
@ -410,9 +408,7 @@ export class MainMenuState extends GameState {
onSteamLinkClicked() {
this.app.analytics.trackUiClick("main_menu_steam_link_" + A_B_TESTING_LINK_TYPE);
this.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2&prc=" + A_B_TESTING_LINK_TYPE
);
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_mainmenu");
return false;
}
@ -641,7 +637,9 @@ export class MainMenuState extends GameState {
);
getStandalone.add(() => {
this.app.analytics.trackUiClick("visit_steampage_from_slot_limit");
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?reF=ssll");
this.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_slotlimit"
);
});
}

View File

@ -22,7 +22,7 @@ export class MobileWarningState extends GameState {
<a href="${
THIRDPARTY_URLS.standaloneStorePage + "?ref=mobile"
THIRDPARTY_URLS.stanaloneCampaignLink + "/shapez_mobile"
}" class="standaloneLink" target="_blank">Get the shapez.io standalone!</a>
`;
}

View File

@ -75,7 +75,7 @@ mainMenu:
puzzleDlcText: Du hast Spaß daran, deine Fabriken zu optimieren und effizienter
zu machen? Hol dir das Puzzle DLC auf Steam für noch mehr Spaß!
puzzleDlcWishlist: Jetzt zur Wunschliste hinzufügen!
puzzleDlcViewNow: View Dlc
puzzleDlcViewNow: Dlc anzeigen
dialogs:
buttons:
ok: OK
@ -229,11 +229,11 @@ dialogs:
Puzzle" finden.
puzzleCreateOffline:
title: Offline Modus
desc: Da du offline bist, bist du nicht in der Lage dei Puzzle zu speichern
desc: Da du offline bist, kannst du dein Puzzle nicht speichern
und/oder zu veröffentlichen. Möchtest du trotzdem fortfahren?
puzzlePlayRegularRecommendation:
title: Empfehlung
desc: ch empfehle <strong>stark</strong>, das normale Spiel bis Level 12 zu
desc: Ich empfehle <strong>stark</strong>, das normale Spiel bis Level 12 zu
spielen, bevor du dich an das Puzzle DLC wagst, sonst stößt du
möglicherweise auf noch nicht eingeführte Mechaniken. Möchtest du
trotzdem fortfahren?
@ -281,7 +281,7 @@ ingame:
clearSelection: Auswahl aufheben
pipette: Pipette
switchLayers: Ebenen wechseln
clearBelts: Clear belts
clearBelts: Fließbänder räumen
colors:
red: Rot
green: Grün
@ -438,8 +438,8 @@ ingame:
clearItems: Items löschen
share: Teilen
report: Melden
clearBuildings: Clear Buildings
resetPuzzle: Reset Puzzle
clearBuildings: Gebäude löschen
resetPuzzle: Puzzle zurücksetzen
puzzleEditorControls:
title: Puzzle Editor
instructions:
@ -700,7 +700,7 @@ buildings:
description: Liefere ein Shape an, um dieses als Ziel festzulegen.
block:
default:
name: Sperre
name: Sperrblock
description: Ermöglicht das Blockieren einer Kachel.
storyRewards:
reward_cutter_and_trash:
@ -1044,9 +1044,9 @@ settings:
Mauszeiger am Bildschirmrand platzierst. Die Geschwindigkeit
stimmt dabei mit den Tasten überein.
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: In Richtung Cursor zoomen
description: Wenn aktiviert, erfolgt der Zoom in Richtung deiner Mausposition,
statt in die Mitte des Bildschirms.
mapResourcesScale:
title: Größe der Ressourcen auf der Karte
description: Legt die Größe der Ressourcen auf der Karte (beim Herauszoomen)
@ -1128,10 +1128,10 @@ keybindings:
rotateToDown: "Rotieren: Nach unten zeigend"
rotateToRight: "Rotieren: Nach rechts zeigend"
rotateToLeft: "Rotieren: Nach links zeigend"
constant_producer: Constant Producer
goal_acceptor: Goal Acceptor
block: Block
massSelectClear: Clear belts
constant_producer: Item-Produzent
goal_acceptor: Ziel Akzeptor
block: Sperrblock
massSelectClear: Fließbänder räumen
about:
title: Über dieses Spiel
body: Dieses Spiel ist quelloffen (Open Source) und wurde von <a
@ -1280,8 +1280,8 @@ puzzleMenu:
easy: Einfach
medium: Mittel
hard: Schwer
dlcHint: Purchased the DLC already? Make sure it is activated by right clicking
shapez.io in your library, selecting Properties > DLCs.
dlcHint: DLC schon gekauft? Stelle sicher, dass es aktiviert ist, indem du in der Steam-Bibliothek
shapez.io rechtsklickst und es unter Eigenschaften > Zusatzinhalte (DLC) aktivierst.
backendErrors:
ratelimit: Du führst Aktionen zu schnell aus. Bitte warte kurz.
invalid-api-key: Kommunikation mit dem Back-End fehlgeschlagen, veruche das

View File

@ -79,7 +79,7 @@ mainMenu:
puzzleDlcText: Houd je van het comprimeren en optimaliseren van fabrieken?
Verkrijg de puzzel DLC nu op Steam voor nog meer plezier!
puzzleDlcWishlist: Voeg nu toe aan je verlanglijst!
puzzleDlcViewNow: View Dlc
puzzleDlcViewNow: Bekijk DLC
dialogs:
buttons:
ok: OK
@ -445,8 +445,8 @@ ingame:
clearItems: Items leeg maken
share: Delen
report: Rapporteren
clearBuildings: Clear Buildings
resetPuzzle: Reset Puzzle
clearBuildings: Verwijder Gebouwen
resetPuzzle: Reset Puzzel
puzzleEditorControls:
title: Puzzel Maker
instructions:
@ -1238,7 +1238,7 @@ puzzleMenu:
hard: Moeilijk
completed: Voltooid
medium: Medium
official: Officieell
official: Officieel
trending: Trending vandaag
trending-weekly: Trending wekelijks
categories: Categorieën

View File

@ -21,7 +21,7 @@ steamPage:
hatlarımı daha verimli yapmamı engelleyemeyecek kadar güzel bir fabrika
oyunu.
global:
loading: Yüklenİyor
loading: Yükleniyor
error: Hata
thousandsDivider: ","
decimalSeparator: .
@ -57,11 +57,11 @@ demoBanners:
intro: Bütün özellikleri açmak için tam sürümü satın alın!
mainMenu:
play: Oyna
changelog: Değİşİklİk Günlüğü
changelog: Değişiklik Günlüğü
importSavegame: Kayıt Yükle
openSourceHint: Bu oyun açık kaynak kodlu!
discordLink: Resmİ Discord Sunucusu
helpTranslate: Çevİrİye yardım et!
discordLink: Resmi Discord Sunucusu
helpTranslate: Çeviriye yardım et!
browserWarning: Üzgünüz, bu oyunun tarayıcınızda yavaş çalıştığı biliniyor! Tam
sürümü satın alın veya iyi performans için Chrome tarayıcısını kullanın.
savegameLevel: Seviye <x>
@ -93,7 +93,7 @@ dialogs:
showKeybindings: Tuş Kısayollarını Göster
retry: Yeniden Dene
continue: Devam Et
playOffline: Play Offline
playOffline: Çevrimdışı Oyna
importSavegameError:
title: Kayıt yükleme hatası
text: "Oyun kaydı yükleme başarısız:"
@ -104,7 +104,7 @@ dialogs:
title: Oyun bozuk
text: "Oyun yükleme başarısız:"
confirmSavegameDelete:
title: Sİlme İşlemİnİ onayla
title: Silme İşlemini onayla
text: Bu kaydı silmek istediğinize emin misiniz?<br><br> '<savegameName>'
seviyesi <savegameLevel><br><br> Bu işlem geri alınamaz!
savegameDeletionError:
@ -262,7 +262,7 @@ ingame:
keybindingsOverlay:
moveMap: Hareket Et
selectBuildings: Alan seç
stopPlacement: Yerleştİrmeyİ durdur
stopPlacement: Yerleştirmeyi durdur
rotateBuilding: Yapıyı döndür
placeMultiple: Çoklu yerleştir
reverseOrientation: Yönünü ters çevir
@ -276,7 +276,7 @@ ingame:
plannerSwitchSide: Planlayıcıyı ters çevir
cutSelection: Kes
copySelection: Kopyala
clearSelection: Seçimi temİzle
clearSelection: Seçimi temizle
pipette: Pipet
switchLayers: Katman değiştir
clearBelts: Bantları temizle
@ -333,7 +333,7 @@ ingame:
blueprintPlacer:
cost: Bedel
waypoints:
waypoints: Yer imler
waypoints: Yer imleri
hub: MERKEZ
description: Sol-tık ile Yer imlerine git, sağ-tık ile yer imini
sil.<br><br>Mevcut konumdan yer imi oluşturmak için <keybinding>'a
@ -500,7 +500,7 @@ buildings:
name: Üretici
description: Bir şekli veya rengi üretmek için üzerine yerleştir.
chainable:
name: Üretici (Zİncİrleme)
name: Üretici (Zincirleme)
description: Bir şekli veya rengi üretmek için üzerine yerleştir. Zincirleme
bağlanabilir.
underground_belt:
@ -584,10 +584,10 @@ buildings:
name: Birleştirici (tekil)
description: İki taşıma bandını bir çıktı verecek şekilde birleştirir.
splitter:
name: Ayırıcı (tekİl)
name: Ayırıcı (tekil)
description: Bir taşıma bandını iki çıktı verecek şekilde ayırır.
splitter-inverse:
name: Ayırıcı (tekİl)
name: Ayırıcı (tekil)
description: Bir taşıma bandını iki çıktı verecek şekilde ayırır.
storage:
default:
@ -720,7 +720,7 @@ storyRewards:
<strong>birleştirilir</strong>, yoksa sol girişteki şeklin
<strong>üzerine kaynaştırılır</strong>!
reward_splitter:
title: Ayırıcı/Bİrleştİrİcİ
title: Ayırıcı/Birleştirici
desc: <strong>Ayırıcıyı</strong> açtın! <strong>dengeleyicin</strong> başka bir
türü - Tek giriş alıp ikiye ayırır
reward_tunnel:
@ -728,7 +728,7 @@ storyRewards:
desc: <strong>Tünel</strong> açıldı - Artık eşyaları taşıma bantları ve yapılar
altından geçirebilirsiniz!
reward_rotater_ccw:
title: Saat yönünün tersİnde Döndürme
title: Saat yönünün tersinde Döndürme
desc: <strong>Döndürücünün</strong> farklı bir türünü açtın - Şekiller artık
saat yönünün tersinde döndürülebilir! İnşa etmek için döndürücüyü
seç ve <strong>türler arası geçiş yapmak için 'T' tuşuna
@ -745,7 +745,7 @@ storyRewards:
<strong>daha yüksek</strong> ve tünel türlerini artık içiçe
kullanabilirsin!
reward_cutter_quad:
title: Çeyreğİnİ Kesme
title: Çeyreğini Kesme
desc: <strong>Kesicinin</strong> yeni bir türünü açtın - Bu tür şekilleri iki
parça yerine <strong>dört parçaya</strong> ayırabilir!
reward_painter_double:
@ -840,13 +840,11 @@ storyRewards:
et.<br><br> Ne seçersen seç eğlenmeyi unutma!
reward_wires_painter_and_levers:
title: Kablolar ve Dörtlü Boyayıcı
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!"
desc: "Az önce the <strong>Tel Katmanının</strong> kilidini açtın :
Normal katmanın üzerinde ayrı bir katman ve yeni mekanikler sunmakta!<br><br>
Başlangıç için sana <strong>Quad
Painter'ı</strong> açtım - Tel tabakasındaki bağlamak istediğin yuvaları bağla !<br><br> Tel katmanına geçmek için
<strong>E</strong> tuşuna bas. <br><br> NOT:Kablolar öğreticisini aktive etmek için <strong>ipuçlarını etkinleştir</strong> !"
reward_filter:
title: Eşya Filtresi
desc: <strong>Eşya filtresini</strong> açtın! Kablo katmanından gelen sinyalle
@ -946,7 +944,7 @@ settings:
twenty_minutes: 20 Dakika
disabled: Devredışı
compactBuildingInfo:
title: Derlİ Toplu Yapı Bİlgİlerİ
title: Derli Toplu Yapı Bilgileri
description: Yapıların bilgi kutularını sadece oranlarını göstecek şekilde
kısaltır. Aksi takdirde yapının açıklaması ve resmi gösterilir.
disableCutDeleteWarnings:
@ -976,24 +974,24 @@ settings:
title: Ses Ayarı
description: Ses efektlerinin seviyesini ayarlar
musicVolume:
title: Müzİk Ayarı
title: Müzik Ayarı
description: Müzik seviyesini ayarlar
lowQualityMapResources:
title: Düşük Kalİte Harİta Kaynakları
title: Düşük Kalite Harİta Kaynakları
description: Oyun performansını artırmak için haritada görünen kaynakların çizim
kalitesini sadeleştirir. Hatta daha net bir görüntü sağlar, bu
yüzden bir dene!
disableTileGrid:
title: Harİta Çİzgİlerİnİ Gİzle
title: Harita Çizgilerini Gizle
description: Harita çizgilerini gizlemek oyun performansına yardımcı olabilir.
Aynı zamanda oyunun daha net görünmesini sağlar!
clearCursorOnDeleteWhilePlacing:
title: Sağ Tık İnşa İptalİ
title: Sağ Tık İnşa İptali
description: Varsayılan olarak açık. Özellik açıksa, inşa modundayken sağ yık
yapıldığında inşa modundan çıkar. Eğer özellik kapalıysa, inşa
modundan çıkmadan var olan yapıları sağ tık ile silebilirsiniz.
lowQualityTextures:
title: Düşük Kalİte Görüntü (Çİrkİn)
title: Düşük Kalite Görüntü (Çirkin)
description: Performans için düşük kalite görüntü kullanır. Bu oyunun daha
çirkin görünmesine sebep olur!
displayChunkBorders:
@ -1001,11 +999,11 @@ settings:
description: Oyun 16'ya 16 alanlardan oluşur. Bu seçenek aktif olduğunda alan
sınırları görüntülenir.
pickMinerOnPatch:
title: Kaynak Üzerinde Üretİcİ Seç
title: Kaynak Üzerinde Üretici Seç
description: Varsayılan olarak açık. Eğer pipet bir kaynağın üzerinde
kullanılırsa, üreteç yapısı inşa için seçilir.
simplifiedBelts:
title: Sadeleştİrİlmİş Bantlar (Çİrkİn)
title: Sadeleştirilmiş Bantlar (Çirkin)
description: Taşıma bandı üzerindeki eşyalar fare imleci üzerinde değilse
görüntülenmez. Eğer gerçekten performansa ihtiyacınız yoksa bu
ayarla oynamanız tavsiye edilmez.
@ -1117,7 +1115,7 @@ about:
Son olarak, en iyi arkadaşım <a href="https://github.com/niklas-dahl" target="_blank">Niklas'a</a> büyük teşekkürler. Factorio oyunlarımız olmasaydı bu oyun hiç var olmamış olacaktı.
changelog:
title: Değİşİklİk Günlüğü
title: Değişiklik Günlüğü
demo:
features:
restoringGames: Oyun kayıtlarını yükleme
@ -1218,6 +1216,7 @@ puzzleMenu:
easy: Kolay
hard: Zor
completed: Tamamlanan
medium: Orta
official: Resmİ
trending: Bugün öne çıkan
@ -1243,6 +1242,7 @@ puzzleMenu:
easy: Kolay
medium: Orta
hard: Zor
dlcHint: Purchased the DLC already? Make sure it is activated by right clicking
shapez.io in your library, selecting Properties > DLCs.
backendErrors:
@ -1268,6 +1268,7 @@ backendErrors:
bad-payload: İstek geçersiz veri içeriyor.
bad-building-placement: Yapbozunuzda uygun yerleştirilmeyen yapılar mevcut.
timeout: İstek zaman aşımına uğradı.
too-many-likes-already: Yapbozun zaten çok beğenisi var. Yine de silmek
istiyorsanız support@shapez.io ile iletişime geçiniz!
no-permission: Bu işlemi yapmak için izniniz yok.