From 7a42cffa6de429f452ee3edca61cf21913c87dab Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 17 Jun 2024 07:40:30 -0400 Subject: [PATCH 01/21] Update LStatements.java --- core/src/mindustry/logic/LStatements.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index b697980980..3ca506e0e0 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1922,7 +1922,7 @@ public class LStatements{ table.add(" on "); fields(table, channel, str -> channel = str); table.add(", reliable "); - fields(table, channel, str -> channel = str); + fields(table, reliable, str -> reliable = str); } @Override From f3ddf659b3ff7e425b670887ee93ea9e8a39641f Mon Sep 17 00:00:00 2001 From: summoner001 Date: Thu, 20 Jun 2024 16:38:43 +0200 Subject: [PATCH 02/21] Fixing mistakes (#9959) * Update bundle_hu.properties Fix mistakes found by the Hungarian mindustry community. Thanks to the community! * Update bundle_hu.properties One mistake what I found. --- core/assets/bundles/bundle_hu.properties | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 93f33fcc20..640dbb9882 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -231,7 +231,7 @@ server.kicked.gameover = Vége a játéknak! server.kicked.serverRestarting = Ez a kiszolgáló újraindul. server.versions = A te játékverziód:[accent] {0}[]\nA kiszolgáló verziója:[accent] {1}[] host.info = A [accent]kiszolgáló indítása[] gomb egy kiszolgálót indít a [scarlet]6567-es[] porton.\nEzen a [lightgray]Wi-Fi-n vagy a helyi hálózaton[] bárki láthatja a kiszolgálót a kiszolgálólistán.\n\nHa azt szeretnéd, hogy bárhonnan, IP-címmel kapcsolódhassanak, akkor [accent]porttovábbítás[] szükséges.\n\n[lightgray]Megjegyzés: ha valakinek problémái vannak a LAN-játékhoz való kapcsolódással, győződj meg arról, hogy a tűzfal beállításaiban engedélyezted-e a Mindustry hozzáférését a helyi hálózathoz. Ne feledd, hogy a nyilvános hálózatok néha nem teszik lehetővé a kiszolgálók felderítését. -join.info = Itt megadhatod egy [accent]kiszolgáló IP-címét[] a kapcsolódáshoz, vagy felfedezhetsz [accent]helyi[] vagy [accent]globális[] kiszolgálókat.\nA LAN és WAN többjátékos mód is támogatott.\n\n[lightgray]Ha valakihez IP-cím alapján szeretnél kapcsolódni, akkor meg kell tudnod az IP-címét, amelyet például a „my ip” webes kereséssel találhat meg. +join.info = Itt megadhatod egy [accent]kiszolgáló IP-címét[] a kapcsolódáshoz, vagy felfedezhetsz [accent]helyi[] vagy [accent]globális[] kiszolgálókat.\nA LAN és WAN többjátékos mód is támogatott.\n\n[lightgray]Ha valakihez IP-cím alapján szeretnél kapcsolódni, akkor meg kell tudnod az IP-címét, amelyet például a „my ip” webes kereséssel találhatsz meg. hostserver = Többjátékos játék invitefriends = Barátok meghívása hostserver.mobile = Többjátékos játék @@ -941,14 +941,14 @@ stat.powershot = Áram/lövés stat.damage = Sebzés stat.targetsair = Repülő célpontok stat.targetsground = Földi célpontok -stat.itemsmoved = Haladási sebesség -stat.launchtime = Kilövések közti idő -stat.shootrange = Hatótáv +stat.itemsmoved = Szállítási sebesség +stat.launchtime = Kilövések közötti idő +stat.shootrange = Hatótávolság stat.size = Méret stat.displaysize = Felbontás stat.liquidcapacity = Folyadékkapacitás -stat.powerrange = Áram hatótávja -stat.linkrange = Kapcsolat hatótávja +stat.powerrange = Hatótávolság +stat.linkrange = Kapcsolat hatótávolsága stat.instructions = Utasítások stat.powerconnections = Max. kapcsolatok stat.poweruse = Áramhasználat @@ -964,7 +964,7 @@ stat.bullet = Lövedék stat.moduletier = Modul szintje stat.unittype = Egység típusa stat.speedincrease = Gyorsítás -stat.range = Hatótáv +stat.range = Hatótávolság stat.drilltier = Kitermelhetőek stat.drillspeed = Alap termelési sebesség stat.boosteffect = Erősítés hatása @@ -1103,7 +1103,7 @@ bullet.healpercent = [stat]{0}%[lightgray] javítás bullet.healamount = [stat]{0}[lightgray] közvetlen javítás bullet.multiplier = [stat]{0}[lightgray] lőszer/nyersanyag bullet.reload = [stat]{0}%[lightgray] tüzelési sebesség -bullet.range = [stat]{0}[lightgray] csempés hatótáv +bullet.range = [stat]{0}[lightgray] csempés hatótávolság unit.blocks = blokk unit.blockssquared = blokk² @@ -2152,7 +2152,7 @@ block.lancer.description = Erős energiasugarakat lő közeli földi célpontokr block.arc.description = Elektromos szikrákat kelt földi célpontok között. block.swarmer.description = Nyomkövető rakétákat lő az ellenségre. block.salvo.description = Gyors sorozatokat lő az ellenségre. -block.fuse.description = Három kis hatótávú, átütő erejű lövedéket lő a közeli ellenségre. +block.fuse.description = Három kis hatótávolságú, átütő erejű lövedéket lő a közeli ellenségre. block.ripple.description = Lövedékek csoportjával tüzel nagy távolságra lévő földi célpontokra. block.cyclone.description = Robbanó lövedékeket lő közeli ellenségekre. block.spectre.description = Nagy lövedékekkel tüzel légi és földi célpontokra. @@ -2281,7 +2281,7 @@ block.canvas.description = Egy egyszerű képet jelenít meg egy előre meghatá unit.dagger.description = Szokásos lövedékeket lő a közeli ellenségekre. unit.mace.description = Lángnyelveket küld a közeli ellenségek felé. -unit.fortress.description = Nagy hatótávú rakétákat lő földi célpontokra. +unit.fortress.description = Nagy hatótávolságú rakétákat lő földi célpontokra. unit.scepter.description = Töltött lövedékek záporát lövi közeli ellenségekre. unit.reign.description = Méretes átütő erejű lövedékeket zúdít minden közeli ellenségre. unit.nova.description = Lézerlövedékeket lő ki, amelyek sebzik az ellenséges célpontokat, és megjavítják a szövetséges épületeket. Repülésre alkalmas. From 3e3a24794ce5196149f34eb70f7f36c367a0c502 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Jun 2024 10:49:14 -0400 Subject: [PATCH 03/21] Fixed #9957 --- core/src/mindustry/input/DesktopInput.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 031f5af2bf..7077a1dfbc 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -114,12 +114,12 @@ public class DesktopInput extends InputHandler{ //draw break selection if(mode == breaking){ - drawBreakSelection(selectX, selectY, cursorX, cursorY, !Core.input.keyDown(Binding.schematic_select) ? maxLength : Vars.maxSchematicSize, false); + drawBreakSelection(selectX, selectY, cursorX, cursorY, !(Core.input.keyDown(Binding.schematic_select) && schemX != -1 && schemY != -1) ? maxLength : Vars.maxSchematicSize, false); } if(!Core.scene.hasKeyboard() && mode != breaking){ - if(Core.input.keyDown(Binding.schematic_select)){ + if(Core.input.keyDown(Binding.schematic_select) && schemX != -1 && schemY != -1){ drawSelection(schemX, schemY, cursorX, cursorY, Vars.maxSchematicSize); }else if(Core.input.keyDown(Binding.rebuild_select)){ drawRebuildSelection(schemX, schemY, cursorX, cursorY); @@ -594,7 +594,7 @@ public class DesktopInput extends InputHandler{ selectPlans.clear(); } - if( !Core.scene.hasKeyboard() && selectX == -1 && selectY == -1 && schemX != -1 && schemY != -1){ + if(!Core.scene.hasKeyboard() && selectX == -1 && selectY == -1 && schemX != -1 && schemY != -1){ if(Core.input.keyRelease(Binding.schematic_select)){ lastSchematic = schematics.create(schemX, schemY, rawCursorX, rawCursorY); useSchematic(lastSchematic); From 93d2f60b568e8abb77553c0c59bf2e690fdae1a6 Mon Sep 17 00:00:00 2001 From: Cubical box <67639725+BlueTheCube@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:50:01 +0800 Subject: [PATCH 04/21] Boss music for non-wave guardians (#9964) * why do I hear guardian music * Update contributors * format * switch up * switch up * why * no traces left behind --- core/assets/contributors | 1 + core/src/mindustry/audio/SoundControl.java | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/assets/contributors b/core/assets/contributors index 676853d30d..a07a13aadc 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -167,3 +167,4 @@ Redstonneur1256 ApsZoldat hexagon-recursion JasonP01 +BlueTheCube diff --git a/core/src/mindustry/audio/SoundControl.java b/core/src/mindustry/audio/SoundControl.java index 980166227a..b003ebec94 100644 --- a/core/src/mindustry/audio/SoundControl.java +++ b/core/src/mindustry/audio/SoundControl.java @@ -213,7 +213,9 @@ public class SoundControl{ /** Plays a random track.*/ public void playRandom(){ - if(isDark()){ + if(state.boss() != null){ + playOnce(bossMusic.random(lastRandomPlayed)); + }else if(isDark()){ playOnce(darkMusic.random(lastRandomPlayed)); }else{ playOnce(ambientMusic.random(lastRandomPlayed)); From 7344abae4997caac215b8bee13993000d3bb4e15 Mon Sep 17 00:00:00 2001 From: RTOmega <62565267+RebornTrack970@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:50:13 +0300 Subject: [PATCH 05/21] TR Bundle Update (#9969) * Update bundle_tr.properties * Update bundle_tr.properties --- core/assets/bundles/bundle_tr.properties | 416 +++++++++++------------ 1 file changed, 208 insertions(+), 208 deletions(-) diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 238f3a0be1..27f034802e 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -2,16 +2,16 @@ credits.text = [royal]Anuken[] tarafından yapıldı - [sky]anukendev@gmail.com[ credits = Jenerik contributors = Çevirmenler ve Katkıda Bulunanlar discord = Mindustry'nin Discord sunucusuna Katıl! -link.discord.description = Resmi Mindustry Discord sunucusu +link.discord.description = Resmî Mindustry Discord sunucusu link.reddit.description = Mindustry subreddit'i link.github.description = Oyun Kaynak Kodu link.changelog.description = Güncelleme değişikliklerinin listesi link.dev-builds.description = Dengesiz Oyun Sürümleri -link.trello.description = Planlanan özellikler için resmi Trello Sayfası +link.trello.description = Planlanan özellikler için resmî Trello Sayfası link.itch.io.description = itch.io sayfası link.google-play.description = Google Play mağaza sayfası link.f-droid.description = F-Droid kataloğu -link.wiki.description = Resmi Mindustry wikisi +link.wiki.description = Resmî Mindustry wikisi link.suggestions.description = Yeni özellikler öner link.bug.description = Hata mı buldun? Hemen şikayet et! linkopen = Bu Server sana bir link gönderdi. Açmak istediğine emin misin?\n\n[sky]{0} @@ -33,7 +33,7 @@ load.content = İçerik load.system = Sistem load.mod = Modlar load.scripts = Betikler - +#the_pawsy tamam be, update atıyom... -RT be.update = Yeni bir erken erişim sürümü var: be.update.confirm = İndirip yeniden başlatılsın mı? be.updating = Yeni sürüm yükleniyor... @@ -57,7 +57,7 @@ mods.browser.sortstars = Yıldıza göre Sırala schematic = Şema schematic.add = Şemayı Kaydet... schematics = Şemalar -schematic.search = Search schematics... +schematic.search = Şema Arat... schematic.replace = Aynı isimde bir şema zaten var. Üzerine yazılsın mı? schematic.exists = Aynı isimde bir şema zaten var. schematic.import = Şemayı İçeri Aktar @@ -70,7 +70,7 @@ schematic.shareworkshop = Atölyede paylaş schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür schematic.saved = Şema Kaydedildi. schematic.delete.confirm = Bu şema tamamen silinecek. -schematic.edit = Edit Schematic +schematic.edit = Şemayı Düzenle schematic.info = {0}x{1}, {2} blok schematic.disabled = [scarlet]Şema devre dışı bırakıldı[]\nBu şemayı [accent]bu haritada[] veya [accent]server'da kullanma iznin yok. schematic.tags = Etiketler: @@ -79,7 +79,7 @@ schematic.addtag = Etiket Ekle schematic.texttag = Yazı Etiketi schematic.icontag = İkon Etiketi schematic.renametag = Etiketi Yeniden Adlandır -schematic.tagged = {0} tagged +schematic.tagged = {0} etiketli schematic.tagdelconfirm = Bu Etiketi Silmek istediğine emin misin? schematic.tagexists = Böyle bir Etiket zaten var. @@ -112,7 +112,7 @@ none.inmap = [lightgray] minimap = Harita position = Konum close = Kapat -website = Web sitesi +website = Websitesi quit = Çık save.quit = Kaydet & Çık maps = Haritalar @@ -151,10 +151,10 @@ mod.incompatiblemod = [red]Sürüm Uyuşmazlığı mod.blacklisted = [red]Desteklenmeyen Sürüm mod.unmetdependencies = [red]Uyuşmayan Modlar. mod.erroredcontent = [scarlet]İçerik hatası. -mod.circulardependencies = [red]Circular Dependencies -mod.incompletedependencies = [red]Incomplete Dependencies +mod.circulardependencies = [red]Döngüsel Bağımlılıklar +mod.incompletedependencies = [red]Eksik Bağımlılıklar mod.requiresversion.details = [accent]{0}[] oyun sürümü gerekiyor.\nSürümün eski. Bu mod, çalışmak için oyunun daha yeni bir sürümünü gerektiriyor (büyük ihtimal alpha/beta). -mod.outdatedv7.details = Bu mod, oyunun en son sürümüyle uyumsuz. Modun yapmıcısının [accent]mod.json[] dosyasına, [accent]minGameVersion: 136[] eklemesi gerekiyor. +mod.outdatedv7.details = Bu mod, oyunun en son sürümüyle uyumsuz. Modun yapmıcısının [accent]mod.json[] dosyasına, [accent]minGameVersion: 146[] eklemesi gerekiyor. mod.blacklisted.details = Bu mod, oyunun bu sürümüyle hata verdiğinden veya başka sorunlar ötürü kara listeye alınmıştır. [#ff]KULLANMAYINIZ! mod.missingdependencies.details = Bu Mod, şu ek modları gerektiriyor: {0} mod.erroredcontent.details = Bu mod yüklenirken hata veriyor, yapımcıdan hataları düzeltmesini isteyin. @@ -172,7 +172,7 @@ mod.import.file = Dosya İçeri Aktar mod.import.github = GitHub Modu İçeri Aktar mod.jarwarn = [scarlet]Java modları doğası gereği güvenli değildir.[]\nBu modu güvenilir bir kaynaktan içeri aktardığına emin ol! mod.item.remove = Bu eşya[accent] '{0}'[] modunun bir parçası. Kaldırmak için modu silebilirsiniz. -mod.remove.confirm = Bu mod silinecek. +mod.remove.confirm = Bu mod silinecek mod.author = [lightgray]Yayıncı:[] {0} mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0} mod.preview.missing = Bu modu atölyede yayınlamadan önce bir resim önizlemesi eklemelisiniz.\nMod dosyasına [accent]preview.png[] adlı bir resim yerleştirin ve tekrar deneyin. @@ -190,9 +190,9 @@ unlocked = Yeni içerik açıldı! available = Yeni Araştırma Mümkün! unlock.incampaign = < Detaylar için Mücadelede Araştır > campaign.select = Başlangıç Mücadelesi Seç -campaign.none = [lightgray]Başlamak için bir gezegen seç.\nBu herhangi bir zamanda değiştirlebilir. -campaign.erekir = Daha yeni ve cilalanmış içerikler. Genellikle stabil ilerleme.\n\nDaha kaliteli haritalar ve deneyim. -campaign.serpulo = Eski içerik; klasik deneyim. Daha serbest.\n\nDaha dengesiz harita ve deneyim. Cilayı unutmuşlar. +campaign.none = [lightgray]Başlamak için bir gezegen seç.\nBu seçim herhangi bir zamanda değiştirlebilir. +campaign.erekir = Daha yeni ve cilalanmış içerikler. Genellikle kararlı ilerleme.\n\nDaha kaliteli haritalar ve deneyim (herhalde). +campaign.serpulo = Eski içerik; klasik deneyim. Daha serbest.\n\nDaha dengesiz harita ve deneyim. Cilayı unutmuşlar işte... completed = [accent]Tamamlandı techtree = Teknoloji Ağacı techtree.select = Teknoloji Ağacı Seç @@ -222,7 +222,7 @@ server.kicked.recentKick = Yakın bir zamanda bir sunucudan atıldın.\nBağlanm server.kicked.nameInUse = Sunucuda zaten o isimde biri var. server.kicked.nameEmpty = Seçtiğin isim geçersiz. server.kicked.idInUse = Zaten bu sunucudasın! İki hesapla bir sunucuya bağlanamazsın. -server.kicked.customClient = Bu sunucu özel sürümleri kabul etmiyor. Resmi bir sürüm indir. +server.kicked.customClient = Bu sunucu özel sürümleri kabul etmiyor. Resmî bir sürüm indir. server.kicked.gameover = Oyun bitti! server.kicked.serverRestarting = Sunucu yeniden başlatılıyor... server.versions = Kullandığın Sürüm:[accent] {0}[]\nSunucunun Sürümü:[accent] {1}[] @@ -303,11 +303,11 @@ server.invalidport = Geçersiz port sayısı! server.error = [crimson]Sunucu kurulamadı: [accent]{0} save.new = Yeni kayıt save.overwrite = Bu kaydın üstüne yazmak istediğine\nemin misin? -save.nocampaign = Individual save files from the campaign cannot be imported. +save.nocampaign = Mücadeleden tek bir kayıt yüklenemez. overwrite = Üstüne yaz save.none = Kayıt bulunamadı! savefail = Oyun kaydedilemedi! -save.delete.confirm = Bu kaydı silmek istediğine emin misin? +save.delete.confirm = Bu kaydı silmek istediğine gerçekten emin misin? save.delete = Sil save.export = Kaydı Dışa Aktar save.import.invalid = [accent]Bu kayıt geçersiz! @@ -341,14 +341,14 @@ open = Aç customize = Kuralları Özelleştir cancel = İptal command = Komuta Modu -command.queue = [lightgray][Queuing] +command.queue = [lightgray][Sıralanıyor] command.mine = Kaz command.repair = Tamir Et command.rebuild = Yeniden İnşaa Et command.assist = Oyuncuya Yardım Et command.move = Hareket Et -command.boost = Boost -command.enterPayload = Enter Payload Block +command.boost = Gazla +command.enterPayload = Kargo Bloğu Seç command.loadUnits = Birim Yükle command.loadBlocks = Blok Yükle command.unloadPayload = Birim Bırak @@ -384,17 +384,17 @@ resumebuilding = [scarlet][[{0}][] İnşaata devam et enablebuilding = [scarlet][[{0}][] İnşa Etmeyi Başlat showui = Arayüz Kapalı.\nAçmak için [accent][[{0}][] bas. commandmode.name = [accent]Komuta Modu -commandmode.nounits = [no units] +commandmode.nounits = [birim yok] wave = [accent]Dalga {0} wave.cap = [accent]Dalga {0}/{1} wave.waiting = [lightgray]{0} saniye içinde dalga başlayacak wave.waveInProgress = [lightgray]Dalga gerçekleşiyor waiting = [lightgray]Bekleniliyor... waiting.players = Oyuncular bekleniliyor... -wave.enemies = [lightgray]{0} Tane Düşman Kaldı +wave.enemies = [lightgray]{0} tane Düşman Kaldı wave.enemycores = [accent]{0}[lightgray] Düşman Merkezler wave.enemycore = [accent]{0}[lightgray] Düşman Merkez -wave.enemy = [lightgray]{0} Tane Düşman Kaldı +wave.enemy = [lightgray]{0} tane Düşman Kaldı wave.guardianwarn = [accent]{0}[] dalga sonra gardiyan yaklaşıyor. wave.guardianwarn.one = [accent]{0}[] dalga sonra gardiyan yaklaşıyor. loadimage = Resim Aç @@ -438,12 +438,12 @@ editor.waves = Dalgalar: editor.rules = Kurallar: editor.generation = Oluşum: editor.objectives = Görevler: -editor.locales = Locale Bundles -editor.worldprocessors = World Processors -editor.worldprocessors.editname = Edit Name -editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below. -editor.worldprocessors.nospace = No free space to place a world processor!\nDid you fill the map with structures? Why would you do this? -editor.worldprocessors.delete.confirm = Are you sure you want to delete this world processor?\n\nIf it is surrounded by walls, it will be replaced by an environmental wall. +editor.locales = Yerel Paketler +editor.worldprocessors = Evrensel İşlemciler +editor.worldprocessors.editname = İsmi Değiştir +editor.worldprocessors.none = [lightgray]Evrensel İşlemci bulunamadı!\nEditörden bu muazzam bloğu ekle veya şu düğmeye bas: \ue813 Ekle +editor.worldprocessors.nospace = Evrensel İşlemci koycak yer yok!\nCidden tüm mapi binalarla mı doldurdun? Oyunun kasmıyor mu? İşsiz misin? Harbi NPC... +editor.worldprocessors.delete.confirm = Bu Evrensel İşlemciyi silmek istediğine emin misin?\n\nEğer etrafında duvar varsa doğal bir duvarla yer değiştiricek. editor.ingame = Oyun içinde düzenle editor.playtest = Test Et editor.publish.workshop = Atölyede Yayınla @@ -475,7 +475,7 @@ waves.max = maks birim waves.guardian = Gardiyan waves.preview = Önizleme waves.edit = Düzenle... -waves.random = Random +waves.random = Rastgele waves.copy = Panodan kopyala waves.load = Panodan yükle waves.invalid = Panoda geçersiz dalga sayısı var. @@ -486,8 +486,8 @@ waves.sort.reverse = Ters Sırala waves.sort.begin = Başla waves.sort.health = Can waves.sort.type = Tür -waves.search = Search waves... -waves.filter = Unit Filter +waves.search = Dalga ara... +waves.filter = Birim Filtresi waves.units.hide = Hepsini Gizle waves.units.show = Hepsini Göster @@ -500,8 +500,8 @@ editor.default = [lightgray] details = Detaylar... edit = Düzenle... variables = Değişkenler -logic.clear.confirm = Are you sure you want to clear all code from this processor? -logic.globals = Built-in Variables +logic.clear.confirm = Bu işlemcideki tüm kodu silmek istediğine emin misin? +logic.globals = Yerleşik Değişkenler editor.name = İsim: editor.spawn = Birim Oluştur editor.removeunit = Birim Kaldır @@ -513,7 +513,7 @@ editor.errorlegacy = Bu harita çok eski ve artık desteklenmeyen bir legacy har editor.errornot = Bu bir harita dosyası değil. editor.errorheader = Bu harita dosyası geçerli değil ya da bozuk. editor.errorname = Haritanın ismi yok!?! Bir kayıt dosyası mı yüklemeye çalışıyorsunuz? -editor.errorlocales = Error reading invalid locale bundles. +editor.errorlocales = Yerel Paketleri okurkan hata oluştu. editor.update = Güncelle editor.randomize = Rastgele Yap editor.moveup = Yukarı Kaydır @@ -525,7 +525,7 @@ editor.sectorgenerate = Sektör Oluştur editor.resize = Yeniden Boyutlandır editor.loadmap = Harita Yükle editor.savemap = Haritayı Kaydet -editor.savechanges = [scarlet]You have unsaved changes!\n\n[]Do you want to save them? +editor.savechanges = [scarlet]Kaydedilmemiş değişiklerin var!\n\n[]Onları kaydetsen mi acaba? editor.saved = Kaydedildi! editor.save.noname = Haritanın bir ismi yok! 'Harita bilgileri' menüsünden bir isim seç. editor.save.overwrite = Haritan bir yerleşik haritayla örtüşüyor! 'Harita bilgileri' menüsünden farklı bir isim seç. @@ -564,14 +564,14 @@ toolmode.eraseores = Maden Sil toolmode.eraseores.description = Sadece madenleri siler.. toolmode.fillteams = Takımları Doldur toolmode.fillteams.description = Bloklar yerine takımları doldurur. -toolmode.fillerase = Fill Erase -toolmode.fillerase.description = Erase blocks of the same type. +toolmode.fillerase = Doldurarak Sil +toolmode.fillerase.description = Anyı tip blokları sil. toolmode.drawteams = Takım Çiz toolmode.drawteams.description = Bloklar yerine takımları çizer.. toolmode.underliquid = Sıvı Altı toolmode.underliquid.description = Sıvıların altına zemin koyma. -filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki düğmelerle bir adet ekleyin. +filters.empty = [lightgray]Hiç filtre yok! Aşağıdaki düğmelerle bir adet ekle. filter.distort = Çarpıt filter.noise = Gürültü @@ -589,7 +589,7 @@ filter.clear = Temizle filter.option.ignore = Yoksay filter.scatter = Saç filter.terrain = Arazi -filter.logic = Logic +filter.logic = Mantık filter.option.scale = Ölçek filter.option.chance = Şans @@ -613,25 +613,25 @@ filter.option.floor2 = İkincil Duvar filter.option.threshold2 = İkincil Eşik filter.option.radius = Yarıçap filter.option.percentile = Yüzdelik -filter.option.code = Code -filter.option.loop = Loop -locales.info = Here, you can add locale bundles for specific languages to your map. In locale bundles, each property has a name and a value. These properties can be used by world processors and objectives using their names. They support text formatting (replacing placeholders with actual values).\n\n[cyan]Example property:\n[]name: [accent]timer[]\nvalue: [accent]Example timer, time left: {0}[]\n\n[cyan]Usage:\n[]Set it as objective's text: [accent]@timer\n\n[]Print it in a world processor:\n[accent]localeprint "timer"\nformat time\n[gray](where time is a separately calculated variable) -locales.deletelocale = Are you sure you want to delete this locale bundle? -locales.applytoall = Apply Changes To All Locales -locales.addtoother = Add To Other Locales -locales.rollback = Rollback to last applied -locales.filter = Property filter -locales.searchname = Search name... -locales.searchvalue = Search value... -locales.searchlocale = Search locale... -locales.byname = By name -locales.byvalue = By value -locales.showcorrect = Show properties that are present in all locales and have unique values everywhere -locales.showmissing = Show properties that are missing in some locales -locales.showsame = Show properties that have same values in different locales -locales.viewproperty = View in all locales -locales.viewing = Viewing property "{0}" -locales.addicon = Add Icon +filter.option.code = Kod +filter.option.loop = Döngü +locales.info = Buraya oyun içi kullanmak için yerel dil paketleri yükleyebilirsin. Yerel dil paketlerinde her değişkenin bir ismi ve değeri var. Bu değişkenler Evrensel İşlemciler ve Görevler tarafından okunabilir. Yazı formatlanabilir.\n\n[cyan]Örnek:\n[]name: [accent]zamanlayıcı[]\ndeğer: [accent]Örnek zamanlayıcı, kalan zaman: {0}[]\n\n[cyan]Kullanım:\n[]Görev yazısı olarak ayarla: [accent]@zamanlayıcı\n\n[]Evrensel İşlemciye yaz:\n[accent]localeprint "zamanlayıcı"\nformat zaman\n[gray](zaman başka hesaplanan bir değişken) +locales.deletelocale = Bu yerel dil paketini silmek istediğine emin misin? +locales.applytoall = Değişiklikleri TÜM yerel paketlere uygula +locales.addtoother = Başka yerel paket ekle +locales.rollback = En sonki değişikliğe geri al +locales.filter = Özellik Filtresi +locales.searchname = İsim arat... +locales.searchvalue = Değer arat... +locales.searchlocale = Yerel Paket arat... +locales.byname = İsme göre +locales.byvalue = Değere göre +locales.showcorrect = Tüm yerel paketlerde bulunan ve her yerde olan değerleri her yerde göster +locales.showmissing = Bazı yerel paketlerde eksik olan değerleri göster +locales.showsame = Başka yerel paketlerde aynı isme sahip değerleri göster +locales.viewproperty = Tüm yerel paketlerde göster +locales.viewing = Görünüm tipi "{0}" +locales.addicon = İkon ekle width = En: height = Boy: @@ -685,11 +685,11 @@ marker.shapetext.name = Şekilli Yazı marker.point.name = Point marker.shape.name = Şekil marker.text.name = Yazı -marker.line.name = Line -marker.quad.name = Quad -marker.texture.name = Texture -marker.background = Arkaplan -marker.outline = Anahat +marker.line.name = Hat +marker.quad.name = Dörtlü +marker.texture.name = Doku +marker.background = Arka Plan +marker.outline = Ana Hat objective.research = [accent]Araştır:\n[]{0}[lightgray]{1} objective.produce = [accent]Üret:\n[]{0}[lightgray]{1} objective.destroyblock = [accent]Yok Et:\n[]{0}[lightgray]{1} @@ -771,8 +771,8 @@ sector.curlost = Sektör Kaybedildi sector.missingresources = [scarlet]Yetersiz Merkez Kaynakları sector.attacked = Sektör [accent]{0}[white] saldırı altında! sector.lost = Sektör [accent]{0}[white] kaybedildi! -sector.capture = Sector [accent]{0}[white]Captured! -sector.capture.current = Sector Captured! +sector.capture = Sektör [accent]{0}[white]Ele geçirildi! +sector.capture.current = Sektör Ele geçirildi! sector.changeicon = İkon Değiştir sector.noswitch.title = Sektör Değiştirilemiyor sector.noswitch = Bir Sektör saldırı altındayken başka bir sektöre geçemezsin.\n\nSektör: [accent]{1}[] deki [accent]{0}[] @@ -829,7 +829,7 @@ sector.coastline.description = Bu bölgede denizel birim teknoloji kalıntılar sector.navalFortress.description = Düşman bu uzak adaya doğal olarak korunan bir üs kurmuş. Bu üssü yok et. Onların gelişmiş savaş gemisi teknolojilerini elde et ve araştır. sector.onset.name = Yeni Başlangıç sector.aegis.name = Siper -sector.lake.name = Göletcik +sector.lake.name = Göletçik sector.intersect.name = Kesişim sector.atlas.name = Atlas sector.split.name = Ayrılım @@ -875,7 +875,7 @@ status.overdrive.name = Yüksek Hızlı status.overclock.name = Hızlandırlımış status.shocked.name = Çarpılmış status.blasted.name = Patlatılmış -status.unmoving.name = Sabit +status.unmoving.name = Sabitlenmiş status.boss.name = Gardiyan settings.language = Dil @@ -887,7 +887,7 @@ settings.controls = Kontroller settings.game = Oyun settings.sound = Ses settings.graphics = Grafikler -settings.cleardata = Tüm Oyun Verisini Sil +settings.cleardata = ⚠ Tüm Oyun Verisini Sil ⚠ settings.clear.confirm = Verileri silmek istediğinizden emin misiniz?\nBu işlemi geri alamazsınız! settings.clearall.confirm = [scarlet]Uyarı![]\nBu işlem kayıtlar, haritalar açılan bloklar ve tuş atamaları dahil bütün verileri silecektir.\n"Tamam" tuşuna bastığınızda bütün verileriniz silinecek ve oyun kapanacaktır. settings.clearsaves.confirm = Tüm kayıtlarınızı silmek istediğinizden emin misiniz? @@ -971,7 +971,7 @@ stat.flammability = Yanıcılık stat.radioactivity = Radyoaktivite stat.charge = Elektrik Yükü stat.heatcapacity = Isı Kapasitesi -stat.viscosity = Viskosite +stat.viscosity = Viskozite stat.temperature = Sıcaklık stat.speed = Hız stat.buildspeed = İnşa Hızı @@ -979,10 +979,10 @@ stat.minespeed = Kazı Hızı stat.minetier = Kazı Seviyesi stat.payloadcapacity = Yük Kapasitesi stat.abilities = Kabiliyetler -stat.canboost = İstekli Uçabilir +stat.canboost = Gazlayabilir stat.flying = Uçuyor stat.ammouse = Mermi Kullanıyor -stat.ammocapacity = Ammo Capacity +stat.ammocapacity = Mermi Kapasitesi stat.damagemultiplier = Hasar Çarpanı stat.healthmultiplier = Can Çarpanı stat.speedmultiplier = Hız Çarpanı @@ -993,46 +993,46 @@ stat.immunities = Bağışıklıklar stat.healing = Tamir Eder ability.forcefield = Güç Kalkanı -ability.forcefield.description = Projects a force shield that absorbs bullets +ability.forcefield.description = Mermilere karşı bir güç kalkanı açar ability.repairfield = Onarma Alanı -ability.repairfield.description = Repairs nearby units +ability.repairfield.description = Etraftaki birimleri tamir eder ability.statusfield = Hızlandırma Alanı -ability.statusfield.description = Applies a status effect to nearby units +ability.statusfield.description = Etraftaki birimlere efekt uygular ability.unitspawn = Birliği Fabrikası -ability.unitspawn.description = Constructs units +ability.unitspawn.description = Birim inşaa eder ability.shieldregenfield = Kalkan Yenileme Alanı -ability.shieldregenfield.description = Regenerates shields of nearby units +ability.shieldregenfield.description = Yakındaki birimlerin kalkanını yeniler ability.movelightning = Hareket Enerjisi -ability.movelightning.description = Releases lightning while moving -ability.armorplate = Armor Plate -ability.armorplate.description = Reduces damage taken while shooting +ability.movelightning.description = Hareket ederken yıldırım yardırır +ability.armorplate = Zırh Plakası +ability.armorplate.description = Ateş ederken alınan hasarı azaltır ability.shieldarc = Ark Kalkanı -ability.shieldarc.description = Projects a force shield in an arc that absorbs bullets +ability.shieldarc.description = Mermileri bloklayan bir arc ışını atar ability.suppressionfield = Tamir Engelleme Alanı -ability.suppressionfield.description = Stops nearby repair buildings +ability.suppressionfield.description = Yakındaki tamircileri durdurur ability.energyfield = Güç Kalkanı -ability.energyfield.description = Zaps nearby enemies -ability.energyfield.healdescription = Zaps nearby enemies and heals allies +ability.energyfield.description = Yakındaki düşmanları şoklar +ability.energyfield.healdescription = Yakındaki düşmanları şoklar, dostları tamir eder ability.regen = Yenilenme -ability.regen.description = Regenerates own health over time -ability.liquidregen = Liquid Absorption -ability.liquidregen.description = Absorbs liquid to heal itself -ability.spawndeath = Death Spawns -ability.spawndeath.description = Releases units on death -ability.liquidexplode = Death Spillage -ability.liquidexplode.description = Spills liquid on death -ability.stat.firingrate = [stat]{0}/sec[lightgray] firing rate -ability.stat.regen = [stat]{0}[lightgray] health/sec -ability.stat.shield = [stat]{0}[lightgray] shield -ability.stat.repairspeed = [stat]{0}/sec[lightgray] repair speed -ability.stat.slurpheal = [stat]{0}[lightgray] health/liquid unit -ability.stat.cooldown = [stat]{0} sec[lightgray] cooldown -ability.stat.maxtargets = [stat]{0}[lightgray] max targets -ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] same type repair amount -ability.stat.damagereduction = [stat]{0}%[lightgray] damage reduction -ability.stat.minspeed = [stat]{0} tiles/sec[lightgray] min speed -ability.stat.duration = [stat]{0} sec[lightgray] duration -ability.stat.buildtime = [stat]{0} sec[lightgray] build time +ability.regen.description = Kendi canını zamanla tamir eder +ability.liquidregen = Sıvı Emme +ability.liquidregen.description = Kendini tamir etmek için sıvı emer +ability.spawndeath = Son Bağırış +ability.spawndeath.description = Öldüğünde birim salar +ability.liquidexplode = Son İsyan +ability.liquidexplode.description = Ölürken sıvı fışkırtır +ability.stat.firingrate = [stat]{0}/sn[lightgray] ateş hızı +ability.stat.regen = [stat]{0}[lightgray] can/sn +ability.stat.shield = [stat]{0}[lightgray] kalkan +ability.stat.repairspeed = [stat]{0}/sn[lightgray] tamir hızı +ability.stat.slurpheal = [stat]{0}[lightgray] can/sıvı miktarı +ability.stat.cooldown = [stat]{0} sn[lightgray] bekleme süresi +ability.stat.maxtargets = [stat]{0}[lightgray] maks hedef +ability.stat.sametypehealmultiplier = [stat]{0}%[lightgray] aynı tamir miktarı +ability.stat.damagereduction = [stat]{0}%[lightgray] hasar indüksiyonu +ability.stat.minspeed = [stat]{0} blok/sn[lightgray] min hız +ability.stat.duration = [stat]{0} sn[lightgray] süre +ability.stat.buildtime = [stat]{0} sn[lightgray] inşa süresi bar.onlycoredeposit = Sadece Merkeze Aktarım Mümkün bar.drilltierreq = Daha Güçlü Matkap Gerekli @@ -1072,9 +1072,9 @@ bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]k bullet.incendiary = [stat]yakıcı bullet.homing = [stat]güdümlü bullet.armorpierce = [stat]zırh delici -bullet.maxdamagefraction = [stat]{0}%[lightgray] damage limit -bullet.suppression = [stat]{0} sec[lightgray] tamir bastırması ~ [stat]{1}[lightgray] karolar -bullet.interval = [stat]{0}/sec[lightgray] ara mermiler: +bullet.maxdamagefraction = [stat]{0}%[lightgray] hasar limiti +bullet.suppression = [stat]{0} sn[lightgray] tamir bastırması ~ [stat]{1}[lightgray] karolar +bullet.interval = [stat]{0}/sn[lightgray] ara mermiler: bullet.frags = [stat]{0}[lightgray]x parçalı mermiler: bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı bullet.buildingdamage = [stat]{0}%[lightgray] inşa hasarı @@ -1108,7 +1108,7 @@ unit.items = eşya unit.thousands = k unit.millions = m unit.billions = b -unit.shots = shots +unit.shots = atış unit.pershot = /vuruş category.purpose = Açıklama category.general = Genel @@ -1129,7 +1129,7 @@ setting.backgroundpause.name = Arka Planda Durdur setting.buildautopause.name = İnşa etmeyi otomatik olarak durdur setting.doubletapmine.name = İki Tıklamayla Kaz setting.commandmodehold.name = Komuta Modu için Basılı Tut -setting.distinctcontrolgroups.name = Limit One Control Group Per Unit +setting.distinctcontrolgroups.name = Birim başına bir kontrol grubuna sınırla setting.modcrashdisable.name = Modları Çökmede Kapa setting.animatedwater.name = Animasyonlu Su setting.animatedshields.name = Animasyonlu Kalkanlar @@ -1139,7 +1139,7 @@ setting.autotarget.name = Otomatik Hedef Alma setting.keyboard.name = Fare+Klavye Kontrolleri setting.touchscreen.name = Dokunmatik Ekran Kontrolleri setting.fpscap.name = Maksimum FPS -setting.fpscap.none = Limitsiz +setting.fpscap.none = Limitsiz ∞ setting.fpscap.text = {0} FPS setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[] setting.uiscale.description = Değişikleri uygulamak için yeniden başlatma gerekli. @@ -1159,7 +1159,7 @@ setting.blockstatus.name = Blok Durumunu Göster setting.conveyorpathfinding.name = Konveyör Yol Bulma setting.sensitivity.name = Kumanda Hassasiyeti setting.saveinterval.name = Kayıt Aralığı -setting.seconds = {0} Saniye +setting.seconds = {0} saniye setting.milliseconds = {0} milisaniye setting.fullscreen.name = Tam Ekran setting.borderlesswindow.name = Kenarsız Pencere @@ -1183,7 +1183,7 @@ setting.sfxvol.name = Oyun Sesi setting.mutesound.name = Sesi Kapat setting.crashreport.name = Anonim Çökme Raporları Gönder setting.savecreate.name = Otomatik Kayıt Oluştur -setting.steampublichost.name = Public Game Visibility +setting.steampublichost.name = Herkese Açık Oyun Görünürlüğü setting.playerlimit.name = Oyuncu Limiti setting.chatopacity.name = Mesajlaşma Opaklığı setting.lasersopacity.name = Enerji Lazeri Opaklığı @@ -1203,7 +1203,7 @@ keybind.title = Tuşları Yeniden Ata keybinds.mobile = [scarlet]Buradaki çoğu tuş ataması mobilde geçerli değildir. Sadece temel hareket desteklenmektedir. category.general.name = Genel category.view.name = Görünüm -category.command.name = Unit Command +category.command.name = Birim Komutu category.multiplayer.name = Çok Oyunculu category.blocks.name = Blok Seçimi placement.blockselectkeys = \n[lightgray]Tuş: [{0}, @@ -1221,24 +1221,24 @@ keybind.mouse_move.name = Fareyi Takip Et keybind.pan.name = Yatay Kaydırma Görünümü keybind.boost.name = Yükselt keybind.command_mode.name = Komuta Modu -keybind.command_queue.name = Unit Command Queue -keybind.create_control_group.name = Create Control Group -keybind.cancel_orders.name = Cancel Orders -keybind.unit_stance_shoot.name = Unit Stance: Shoot -keybind.unit_stance_hold_fire.name = Unit Stance: Hold Fire -keybind.unit_stance_pursue_target.name = Unit Stance: Pursue Target -keybind.unit_stance_patrol.name = Unit Stance: Patrol -keybind.unit_stance_ram.name = Unit Stance: Ram -keybind.unit_command_move.name = Unit Command: Move -keybind.unit_command_repair.name = Unit Command: Repair -keybind.unit_command_rebuild.name = Unit Command: Rebuild -keybind.unit_command_assist.name = Unit Command: Assist -keybind.unit_command_mine.name = Unit Command: Mine -keybind.unit_command_boost.name = Unit Command: Boost -keybind.unit_command_load_units.name = Unit Command: Load Units -keybind.unit_command_load_blocks.name = Unit Command: Load Blocks -keybind.unit_command_unload_payload.name = Unit Command: Unload Payload -keybind.unit_command_enter_payload.name = Unit Command: Enter Payload +keybind.command_queue.name = Birim Komuta Sırası +keybind.create_control_group.name = Komuta Grubu Oluştur +keybind.cancel_orders.name = Emri Hükümsüz Kıl +keybind.unit_stance_shoot.name = Birim Duruşu: Saldır +keybind.unit_stance_hold_fire.name = Birim Duruşu: Hazır Ol +keybind.unit_stance_pursue_target.name = Birim Duruşu: Takip Et +keybind.unit_stance_patrol.name = Birim Duruşu: Devriye Gez +keybind.unit_stance_ram.name = Birim Duruşu: VUR +keybind.unit_command_move.name = Birim Komutu: Git +keybind.unit_command_repair.name = Birim Komutu: Tamir Et +keybind.unit_command_rebuild.name = Birim Komutu: Yeniden İnşaa Et +keybind.unit_command_assist.name = Biirm Komutu: Yardım Et +keybind.unit_command_mine.name = Birim Komutu: Kaz +keybind.unit_command_boost.name = Birim Komutu: Gazla +keybind.unit_command_load_units.name = Birim Komutu: Birim Kargola +keybind.unit_command_load_blocks.name = Birim Komutu: Blok Kargola +keybind.unit_command_unload_payload.name = Birim Komutu: Kargo Boşalt +keybind.unit_command_enter_payload.name = Birim Komutu: Kargoya Gir keybind.rebuild_select.name = Alanı Geri İşaa Et keybind.schematic_select.name = Bölge Seç keybind.schematic_menu.name = Şema Menüsü @@ -1279,7 +1279,7 @@ keybind.minimap.name = Harita keybind.planet_map.name = Gezegen Haritası keybind.research.name = Araştırma keybind.block_info.name = Blok Bilgisi -keybind.chat.name = Konuş +keybind.chat.name = Yazış keybind.player_list.name = Oyuncu Listesi keybind.console.name = Konsol keybind.rotate.name = Döndür @@ -1291,7 +1291,7 @@ keybind.chat_scroll.name = Sohbet Kaydırma keybind.chat_mode.name = Konuşma Modunu Değiştir keybind.drop_unit.name = Birlik Düşürme keybind.zoom_minimap.name = Haritada Yakınlaştırma/Uzaklaştırma -mode.help.title = Modların açıklamaları +mode.help.title = Oyun Modlarının açıklamaları mode.survival.name = Hayatta Kalma mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir. mode.sandbox.name = Yaratıcı @@ -1300,14 +1300,14 @@ mode.editor.name = Düzenleyici mode.pvp.name = PvP mode.pvp.description = Yerel olarak başkaları ile savaş.\n[gray]Oynamak için haritada en az iki farklı renkli merkez olması gerekir. mode.attack.name = Saldırı -mode.attack.description = Düşman üssünü yok et. Dalga yok.\n[gray]Oynamak için haritada düşman merkez olması gerekir. +mode.attack.description = Düşman üssünü yok et. Dalga yok.\n[gray]Oynamak için haritada düşman merkezi olması gerekir. mode.custom = Özel Kurallar rules.invaliddata = Hatalı pano verisi. rules.hidebannedblocks = Yasaklı Blokları Sakla rules.infiniteresources = Sınırsız Kaynaklar rules.onlydepositcore = Sadece Merkeze Aktarmaya İzin Ver -rules.derelictrepair = Allow Derelict Block Repair +rules.derelictrepair = Kalıntıları Tamir Etmeye İzin Ver rules.reactorexplosions = Reaktör Patlamaları rules.coreincinerates = Merkez Taşanları Eritir rules.disableworldprocessors = Evrensel İşlemcileri Devredışı Bırak @@ -1315,7 +1315,7 @@ rules.schematic = Şema Kullanılabilir rules.wavetimer = Dalga Zamanlayıcısı rules.wavesending = Dalga Gönderiliyor rules.waves = Dalgalar -rules.airUseSpawns = Air units use spawn points +rules.airUseSpawns = Hava Birimleri doğuş bölgelerini kullanır rules.attack = Saldırı Modu rules.buildai = Üs inşa edici YZ rules.buildaitier = İnşaatçı YZ sınıfı @@ -1327,7 +1327,7 @@ rules.cleanupdeadteams = Kaybeden Takımın Bloklarını Temizle (PvP) rules.corecapture = Yıkımda Çekirdeği Elegeçir rules.polygoncoreprotection = Çokgenli Merkez Koruması rules.placerangecheck = İnşa Menzilini Doğrula -rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları +rules.enemyCheat = Sınırsız AI (Düşman Takım) Kaynakları rules.blockhealthmultiplier = Blok Can Çarpanı rules.blockdamagemultiplier = Blok Hasar Çarpanı rules.unitbuildspeedmultiplier = Birim Üretim Hız Çarpanı @@ -1370,8 +1370,8 @@ rules.weather = Hava Durumu rules.weather.frequency = Sıklık: rules.weather.always = Her zaman rules.weather.duration = Süreklilik: -rules.placerangecheck.info = Prevents players from placing anything near enemy buildings. When trying to place a turret, the range is increased, so the turret will not be able to reach the enemy. -rules.onlydepositcore.info = Prevents units from depositing items into any buildings except cores. +rules.placerangecheck.info = Oyuncuların düşman üssüne yakın inşa etmesini engeller. Bu, silah kurarken daha da fazla. +rules.onlydepositcore.info = Birimlerin Merkez dışında malzeme aktarmasını engeller. content.item.name = Malzemeler content.liquid.name = Sıvılar @@ -1484,7 +1484,7 @@ block.sand-boulder.name = Kumlu Kaya Parçaları block.basalt-boulder.name = Bazalt Kaya block.grass.name = Çimen block.molten-slag.name = Cüruf -block.pooled-cryofluid.name = Cryosıvı +block.pooled-cryofluid.name = Kriyosıvı block.space.name = Uzay block.salt.name = Tuz block.salt-wall.name = Tuz Duvar @@ -1494,7 +1494,7 @@ block.sand-wall.name = Kum Duvar block.spore-pine.name = Spor Çamı block.spore-wall.name = Spor Duvar block.boulder.name = Kaya Parçaları -block.snow-boulder.name = Karlı Kaya PArçaları +block.snow-boulder.name = Karlı Kaya Parçaları block.snow-pine.name = Karlı Çam block.shale.name = Şist block.shale-boulder.name = Şist Kayası @@ -1508,10 +1508,10 @@ block.scrap-wall-huge.name = Dev Hurda Duvar block.scrap-wall-gigantic.name = Devasa Hurda Duvar block.thruster.name = İtici block.kiln.name = Fırın -block.graphite-press.name = Grafit Presi -block.multi-press.name = Çoklu-Pres +block.graphite-press.name = Grafit Ezici +block.multi-press.name = Çoklu-Ezici block.constructing = {0} [lightgray](İnşa Ediliyor) -block.spawn.name = Düşman Doğma Noktası +block.spawn.name = Düşman Doğum Noktası block.core-shard.name = Merkez: Parçacık block.core-foundation.name = Merkez: Temel block.core-nucleus.name = Merkez: Çekirdek @@ -1591,23 +1591,23 @@ block.inverted-sorter.name = Ters Ayıklayıcı block.message.name = Mesaj Bloğu block.reinforced-message.name = Güçlendirilmiş Mesaj Bloğu block.world-message.name = Evrensel Mesaj Bloğu -block.world-switch.name = World Switch +block.world-switch.name = Evrensel Şalter block.illuminator.name = Aydınlatıcı block.overflow-gate.name = Taşma Geçidi -block.underflow-gate.name = Yana Taşma Geçidi +block.underflow-gate.name = Ters Taşma Geçidi block.silicon-smelter.name = Silikon Fırını block.phase-weaver.name = Faz Örücü block.pulverizer.name = Ufalayıcı -block.cryofluid-mixer.name = Kriyosıvı Mikseri +block.cryofluid-mixer.name = Kriyosıvı Karıştırıcı block.melter.name = Eritici block.incinerator.name = Yakıcı -block.spore-press.name = Spor Presi +block.spore-press.name = Spor Ezici block.separator.name = Ayırıcı block.coal-centrifuge.name = Kömür Santrifüjü block.power-node.name = Enerji Noktası block.power-node-large.name = Büyük Enerji Noktası block.surge-tower.name = Akı Kulesi -block.diode.name = Batarya Diyotu +block.diode.name = Diyot block.battery.name = Batarya block.battery-large.name = Büyük Batarya block.combustion-generator.name = Termik Jeneratör @@ -1669,7 +1669,7 @@ block.shock-mine.name = Şok Mayını block.overdrive-projector.name = Hızlandırma Projektörü block.force-projector.name = Enerji Kalkan Projektörü block.arc.name = Arc -block.rtg-generator.name = RTG Jeneratörü +block.rtg-generator.name = RTG Jeneratör block.spectre.name = Spectre block.meltdown.name = Meltdown block.foreshadow.name = Foreshadow @@ -1695,7 +1695,7 @@ block.disassembler.name = Sökücü block.silicon-crucible.name = Silikon Kazanı block.overdrive-dome.name = Hızlandırma Kubbesi block.interplanetary-accelerator.name = Gezegenler Arası Hızlandırıcı -#Düzgün tutun bu TR translatei uğraştırıyonuz beni. -RTOmega +#Düzgün tutun bu TR translatei uğraştırıyonuz beni. -RTOmega (harbi ya XD) block.constructor.name = İnşaatçı block.constructor.description = 2x2 ve daha küçük blokları inşa edebilir. block.large-constructor.name = Büyük İnşaatçı @@ -1707,7 +1707,7 @@ block.payload-loader.description = Sıvı ve malzemeleri bloklara yükler. block.payload-unloader.name = Kargo Boşaltıcı block.payload-unloader.description = Sıvı ve Malzemeleri bloklardan boşaltır. block.heat-source.name = Sonsuz Isı Kaynağı -block.heat-source.description = Nerdeyese Sonsuz Isı Veren 1x1 bir blok. +block.heat-source.description = Neredeyese Sonsuz Isı Veren 1x1 bir blok. block.empty.name = Boş block.rhyolite-crater.name = Riyolit Krateri block.rough-rhyolite.name = Kaba Riyolit @@ -1730,7 +1730,7 @@ block.carbon-vent.name = Karbon Baca block.arkyic-vent.name = Arkisit Baca block.yellow-stone-vent.name = Sarı Taş Baca block.red-stone-vent.name = Kızıl Taş Baca -block.crystalline-vent.name = Crystalline Vent +block.crystalline-vent.name = Kristal Baca block.redmat.name = KızılMat block.bluemat.name = MaviMat block.core-zone.name = Merkez Alanı @@ -1796,7 +1796,7 @@ block.shield-projector.name = Kalkan Projektörü block.large-shield-projector.name = Büyük Kalkan Projektörü block.armored-duct.name = Zırhlı Tüp block.overflow-duct.name = Taşma Tüpü -block.underflow-duct.name = AltTaşma Tüpü +block.underflow-duct.name = Alt-Taşma Tüpü block.duct-unloader.name = Tüp Boşaltıcı block.surge-conveyor.name = Akı Konveyör block.surge-router.name = Akı Yönlendirici @@ -1870,11 +1870,11 @@ block.memory-bank.name = Bellek Bankası team.malis.name = Malis team.crux.name = Crux team.sharded.name = Sharded -team.derelict.name = Terkedilmiş +team.derelict.name = Kalıntı team.green.name = yeşil #Tüpü bilmem ama yeni çıkan erekir çok iyi değil mi -siyah pulsar team.blue.name = mavi - +#erekir cidden güzelmiş -siyah pulsar hint.skip = Geç hint.desktopMove = [accent][[WASD][] ile hareket et. hint.zoom = [accent]Scroll[] ile Zoom yap. @@ -2000,10 +2000,10 @@ liquid.ozone.description = Oksitlemede, üretimde ve enerji üretiminde kullanı liquid.hydrogen.description = Maden çıkarmada, birim üretiminde ve taşımada kullanılır. Yanıcı. liquid.cyanogen.description = Mermi olarak, gelişmiş bina ve birimlerde kullanılır. Yüksek derecede Yanıcı. liquid.nitrogen.description = Gaz çıkarmada ve üretimde kullanılır. Durağan. -liquid.neoplasm.description = Neoplasmik Reaktörün tehlikeli bir yan ürünü. Su ile taşınır ve su içerek tüm bloklara zarar verir. +liquid.neoplasm.description = Neoplazmik Reaktörün tehlikeli bir yan ürünü. Su ile taşınır ve su içerek tüm bloklara zarar verir. liquid.neoplasm.details = Neoplazma. Kontrolsüz bölünen kanserli hücre topluluğu. Isıya dayanıklı. Su içerek her binaya karşı aşırı tehlikeli.\n\nAnaliz için fazla dengesiz. Kullanımı bilmiyor. Cürüf göletlerinde eritmeniz öneirlir. [#ff]!SERPULOYA GÖTÜRME! -block.derelict = [lightgray]\ue815 Terkedilmiş +block.derelict = [lightgray]\ue815 Kalıntı block.armored-conveyor.description = Materyalleri titanyum konveyörlerle aynı hızda taşır ama daha fazla zırha sahiptir. Diğer konveyörler dışında yan taraflardan materyal kabul etmez. block.illuminator.description = Küçük, kompakt, yapılandırılabilir bir ışık kaynağı. Çalışması için enerji gerekir. block.message.description = Bir mesajı saklar. Müttefikler arasındaki haberleşmede kullanılır. @@ -2132,7 +2132,7 @@ block.segment.description = Gelen mermilere zarar verir ve onları yok eder. Laz block.parallax.description = Çekici bir ışın fırlatarak hava düşmanlarını kendine çeker. Onlara az da olsa zarar verir. block.tsunami.description = Düşmanlara yüksek miktarda sıvı püskürtür. Ateşleri otomatik söndürür. block.silicon-crucible.description = Kum ve Kömürü, Piratitle eriterek Silikon üretir. Sıcak ortamda daha iyi çalışır. -block.disassembler.description = Cürüfü aşırı sıcak ortamda seritir. Toryum elde edebilir. +block.disassembler.description = Cürufü aşırı sıcak ortamda seritir. Toryum elde edebilir. block.overdrive-dome.description = Yakındaki binaları hızlandırır. Çalışmak için silikon ve faz gerektirir. block.payload-conveyor.description = Büyük yükleri hareket ettirir. Birimler gibi. block.payload-router.description = Büyük Yükleri 3 Ayrı yöne aktarır. @@ -2245,7 +2245,7 @@ block.unit-repair-tower.description = Etrafındaki tüm birimleri tamir eder. Oz block.radar.description = Haritayı tarar. Enerji gerektirir. block.shockwave-tower.description = Düşman mermilerinini parçalar. Siyanojen gerektirir. block.canvas.description = Önceden tanımlanmış paletle basit bir fotoğraf sergiler. Düzenlenebilir. -#burdan sonraki ve önceki her şeyi benim translate etmem gerekti!!! -RTOmega +#burdan sonraki ve önceki her şeyi benim translate etmem gerekti!!! -RTOmega XD unit.dagger.description = Düşmanlara basit mermilerle ateş eder. unit.mace.description = Düşmanlara alev püskürtür. unit.fortress.description = Düşmanlara uzun menzilli gülleler fırlatır. @@ -2268,7 +2268,7 @@ unit.antumbra.description = Büyük boyutta mermiler fırlatır. unit.eclipse.description = Büyük mermiler fırlatır ve lazer atar. unit.mono.description = Otomatik bir şekilde Bakır ve Kurşun kazar ve çekirdeğe getirir. unit.poly.description = Otomatik bir şekilde kırılmış binaları geri inşa eder ve oyuncuya inşatta yardımcı olur. -unit.mega.description = Otomayik bir şekilde hasarlı bolkları onarır. Blokları ve Birimleri taşıyabilir. +unit.mega.description = Otomatik bir şekilde hasarlı bolkları onarır. Blokları ve Birimleri taşıyabilir. unit.quad.description = Büyük bombalar atar, hasarlı blokları onarır ve düşmanlara zarar verir. Bolkları ve Birimleri taşıyabilir. unit.oct.description = Yakındaki birimleri korur ve tamir eder. Blokları ve Birimleri taşıyabilir. unit.risso.description = Yakındaki düşmanlara Füze atar. @@ -2346,43 +2346,43 @@ lst.effect = Parçacık efekti oluştur. lst.sync = Ağ boyunca bir değişkeni senkronize et.\nSaniyede en fazla 10 kere yapılabilir. lst.makemarker = Dünyada yeni bir İşlemci İşareti koy.\nBu İşarete bir Kimlik adamalısın.\nDünya başına 20.000 limit bulunmakta. lst.setmarker = Bir İşlemci İşareti için bir arazi seç.\nKimlik, İşaret Koyucudaki ile aynı olmalı. -lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first. +lst.localeprint = Harita yerel paket özellik değerini metin arabelleğine ekleyin.\nHarita düzenleyicide harita yerel ayar paketlerini ayarlamak için şunu işaretleyin: [accent]Harita Bilgisi > Yerel Paketler[].\nİstemci bir mobil cihazsa, önce ".mobile" ile biten bir özelliği yazdırmaya çalışır. lglobal.false = 0 lglobal.true = 1 lglobal.null = null -lglobal.@pi = The mathematical constant pi (3.141...) -lglobal.@e = The mathematical constant e (2.718...) -lglobal.@degToRad = Multiply by this number to convert degrees to radians -lglobal.@radToDeg = Multiply by this number to convert radians to degrees -lglobal.@time = Playtime of current save, in milliseconds -lglobal.@tick = Playtime of current save, in ticks (1 second = 60 ticks) -lglobal.@second = Playtime of current save, in seconds -lglobal.@minute = Playtime of current save, in minutes -lglobal.@waveNumber = Current wave number, if waves are enabled -lglobal.@waveTime = Countdown timer for waves, in seconds -lglobal.@mapw = Map width in tiles -lglobal.@maph = Map height in tiles -lglobal.sectionMap = Map -lglobal.sectionGeneral = General -lglobal.sectionNetwork = Network/Clientside [World Processor Only] -lglobal.sectionProcessor = Processor -lglobal.sectionLookup = Lookup -lglobal.@this = The logic block executing the code -lglobal.@thisx = X coordinate of block executing the code -lglobal.@thisy = Y coordinate of block executing the code -lglobal.@links = Total number of blocks linked to this processors -lglobal.@ipt = Execution speed of the processor in instructions per tick (60 ticks = 1 second) -lglobal.@unitCount = Total number of types of unit content in the game; used with the lookup instruction -lglobal.@blockCount = Total number of types of block content in the game; used with the lookup instruction -lglobal.@itemCount = Total number of types of item content in the game; used with the lookup instruction -lglobal.@liquidCount = Total number of types of liquid content in the game; used with the lookup instruction -lglobal.@server = True if the code is running on a server or in singleplayer, false otherwise -lglobal.@client = True if the code is running on a client connected to a server -lglobal.@clientLocale = Locale of the client running the code. For example: en_US -lglobal.@clientUnit = Unit of client running the code -lglobal.@clientName = Player name of client running the code -lglobal.@clientTeam = Team ID of client running the code -lglobal.@clientMobile = True is the client running the code is on mobile, false otherwise +lglobal.@pi = Matematiksel sabit (π) pi (3.141...) +lglobal.@e = Matematiksel sabit e (2.718...) +lglobal.@degToRad = Bu sayı ile çarparak dereceyi radyana çevir +lglobal.@radToDeg = Bu sayı ile çarparak radyanı dereceye çevir +lglobal.@time = Bu kayıttaki oynama süren, milisaniyesine kadar +lglobal.@tick = Bu kayıttaki oynama süren, tick halinde (1 sn = 60 tick) +lglobal.@second = Bu kayıttaki oynama süren, saniyeler halinde +lglobal.@minute = Bu kayıttaki oynama süren, dakikalar halinde +lglobal.@waveNumber = Şuanki Dalga sayısı +lglobal.@waveTime = Bir sonraki dalga için süre, saniyeyle +lglobal.@mapw = Bloklarla Harita Genişliği +lglobal.@maph = Bloklarla Harita Yüksekliği +lglobal.sectionMap = Harita +lglobal.sectionGeneral = Genel +lglobal.sectionNetwork = Bağlantı/Oyuncu Tarafı [Sadece Evrensel İşlemci] +lglobal.sectionProcessor = İşlemci +lglobal.sectionLookup = Arat +lglobal.@this = Kodu çalıştıran işlemci +lglobal.@thisx = Kodu çalıştıran işlemcinin X kordinatı +lglobal.@thisy = Kodu çalıştıran işlemcinin Y kordinatı +lglobal.@links = Bu işlemciye bağlı toplam blok sayısı +lglobal.@ipt = Tick hızıyla bu işlemcinin işlem hızı (60 tick = 1 sn) +lglobal.@unitCount = Oyundaki toplam birim türü sayısı, Aratla kullan. +lglobal.@blockCount = Oyundaki toplam blok türü sayısı, Aratla kullan. +lglobal.@itemCount = Oyundaki toplam malzeme türü sayısı, Aratla kullan. +lglobal.@liquidCount = Oyundaki toplam sıvı türü sayısı, Aratla kullan. +lglobal.@server = Oyun bir sunucuda veya tek kişilikte ise Doğru, değil ise Yanlış geri dönüt +lglobal.@client = Oyun bir suncuya bağlanmış bir oyuncu tarafından çalıştırılıyorsa Doğru, değil ise Yanlış. +lglobal.@clientLocale = Oyunu çalıştıran oyuncunun yerel dili. Örnek: tr_TR +lglobal.@clientUnit = Oyunu çalıştıran oyuncunun birimi +lglobal.@clientName = Oyunu çalıştıran oyuncunun ismi +lglobal.@clientTeam = Oyunu çalıştıran oyuncunun takım kimliği +lglobal.@clientMobile = Oyuncu mobildeyse Doğru, değil ise Yanlış geri dönüt logic.nounitbuild = [red]Birim İnşası Yasak! @@ -2425,7 +2425,7 @@ graphicstype.poly = İçi Dolu Çokgen Çiz. graphicstype.linepoly = İçi Boş Çokgen Çiz. graphicstype.triangle = İçi Dolu Üçgen Çiz. graphicstype.image = Bir ikon çiz. \nörnek: [accent]@router[] veya [accent]@dagger[]. -graphicstype.print = Draws text from the print buffer.\nClears the print buffer. +graphicstype.print = Yazdırma arabelleğinden metin çizer.\nYazdırma arabelleğini temizler. lenum.always = Her Zaman Doğru lenum.idiv = Tamsayı Bölme @@ -2445,14 +2445,14 @@ lenum.xor = Çapraz Veya lenum.min = İki sayıdan en küçüğü. lenum.max = İki sayıdan en büyüğü. lenum.angle = İki Işının yaptığı Açı. -lenum.anglediff = Absolute distance between two angles in degrees. +lenum.anglediff = İki açı arasındaki derece cinsinden mutlak mesafe. lenum.len = Bir Işının Uzunluğu. lenum.sin = Sinüs lenum.cos = Kosinüs lenum.tan = Tanjant -lenum.asin = Arl Sinüs +lenum.asin = Ark Sinüs lenum.acos = Ark Kosinüs lenum.atan = Ark Tanjant @@ -2516,7 +2516,7 @@ unitlocate.group = Aranan binanın türü. lenum.idle = Hareket etmez ancak kazmaya ve inşa etmeye devam eder. lenum.stop = Dur! -lenum.unbind = Logic Kontrolü tamaman devre dışı bırak.\nNormal AI ı devreye sok. +lenum.unbind = Logic Kontrolü tamaman devre dışı bırak.\nNormal AI'ı devreye sok. lenum.move = Tam konuma git. lenum.approach = Bir Konuma yaklaş. lenum.pathfind = Düşman Doğuş noktasına git. @@ -2531,13 +2531,13 @@ lenum.payenter = Bir birimi, kargo tutabilen bir bloğa indir. lenum.flag = Numara ile işaretle. lenum.mine = Kaz. lenum.build = Bina inşa et. -lenum.getblock = Fetch building, floor and block type at coordinates.\nUnit must be in range of the position, otherwise null is returned. +lenum.getblock = Kordinatta bina, blok veya zemin tipi al.\nBirimler kordinata yakın olmalı yoksa boş geri döner. lenum.within = Bir birim menzil alanında mı? -lenum.boost = Boostlamaya başla/dur -lenum.flushtext = Flush print buffer's content to marker, if applicable.\nIf fetch is set to true, tries to fetch properties from map locale bundle or game's bundle. -lenum.texture = Texture name straight from game's texture atlas (using kebab-case naming style).\nIf printFlush is set to true, consumes text buffer content as text argument. -lenum.texturesize = Size of texture in tiles. Zero value scales marker width to original texture's size. -lenum.autoscale = Whether to scale marker corresponding to player's zoom level. -lenum.posi = Indexed position, used for line and quad markers with index zero being the first position. -lenum.uvi = Texture's position ranging from zero to one, used for quad markers. -lenum.colori = Indexed position, used for line and quad markers with index zero being the first color. +lenum.boost = Gazlamaya başla/dur +lenum.flushtext = Varsa, yazdırma arabelleğinin içeriğini işaretleyiciye boşaltın.\nGetirme doğru olarak ayarlanmışsa, harita yerel dil paketinden veya oyun paketinden bilgileri getirmeye çalışır. +lenum.texture = Doğrudan oyunun doku atlasından alınan doku adı (kebab-tarzı isimlendirme XD).\nprintFlush doğru olarak ayarlanırsa metin arabelleği içeriğini metin bağımsız değişkeni olarak kullanır. +lenum.texturesize = Zemindeki doku boyutu. Sıfır değeri, işaretleyici genişliğini orijinal dokunun boyutuna ölçeklendirir. +lenum.autoscale = İşaretçinin oyuncunun yakınlaştırma düzeyine göre ölçeklenip ölçeklenmeyeceği. +lenum.posi = Sıfır indeksinin ilk konum olduğu çizgi ve dörtlü işaretleyiciler için kullanılan indekslenmiş konum. +lenum.uvi = Dokunun sıfırdan bire kadar değişen konumu, dörtlü işaretçiler için kullanılır. +lenum.colori = Sıfır indeksinin ilk renk olduğu çizgi ve dörtlü işaretleyiciler için kullanılan indekslenmiş konum. From cb225ba8f61ed412cff2443e6dd7aca665b2b6b8 Mon Sep 17 00:00:00 2001 From: 3MIDEV <112279985+NexulaDev@users.noreply.github.com> Date: Thu, 20 Jun 2024 16:20:28 +0100 Subject: [PATCH 06/21] Update servers_v7.json (#9966) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 02da6179d0..1f748f58ff 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -242,7 +242,7 @@ }, { "name": "3MIDustry", - "address": ["play.3midustry.xyz:6001", "play.3midustry.xyz:6002", "play.3midustry.xyz:6003", "play.3midustry.xyz:6004", "play.3midustry.xyz:6005", "play.3midustry.xyz:6006", "play.3midustry.xyz:6007", "play.3midustry.xyz:6008", "play.3midustry.xyz:6009", "play.3midustry.xyz:6010"] + "address": ["play.3midustry.octane.lol:6001", "play.3midustry.octane.lol:6002", "play.3midustry.octane.lol:6003", "play.3midustry.octane.lol:6004", "play.3midustry.octane.lol:6005", "play.3midustry.octane.lol:6006", "play.3midustry.octane.lol:6007", "play.3midustry.octane.lol:6008", "play.3midustry.octane.lol:6009", "play.3midustry.octane.lol:6010"] }, { "name": "abcxyz remaster", From d72b6586f35af3539e10dc9427c9ae0abf872bea Mon Sep 17 00:00:00 2001 From: nowords123 <91344457+nowords123@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:20:37 +0200 Subject: [PATCH 07/21] Update servers_v7.json (#9967) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 1f748f58ff..99717ead3c 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -33,7 +33,7 @@ }, { "name": "DontVin", - "address": ["45.84.59.49:1342","45.137.205.185:1068","45.137.205.185:1190","45.137.205.185:1191","be.phoenix-network.dev:4200","be.phoenix-network.dev:6942","134.255.218.3:1142","45.137.205.185:1192","45.137.205.185:1193","45.137.205.185:1221"] + "address": ["45.84.59.49:1342","45.137.205.185:1068","45.137.205.185:1190","45.137.205.185:1191","134.255.218.3:1142","45.137.205.185:1192","45.137.205.185:1193","45.137.205.185:1221","be.phoenix-network.dev","be.phoenix-network.dev:1111","be.phoenix-network.dev:2222","be.phoenix-network.dev:3333","be.phoenix-network.dev:4444","be.phoenix-network.dev:5555","be.phoenix-network.dev:6666","be.phoenix-network.dev:7777","be.phoenix-network.dev:8888","be.phoenix-network.dev:9999"] }, { "name": "Crux's Citadel", From d897f1b7b04a762ed816b8d707b82910ef65b84e Mon Sep 17 00:00:00 2001 From: StalkerBaran <120944331+StalkerBaran@users.noreply.github.com> Date: Thu, 20 Jun 2024 22:21:04 +0700 Subject: [PATCH 08/21] Update servers_v7.json (#9960) IP change (MeowIsland, fixed) --- servers_v7.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/servers_v7.json b/servers_v7.json index 99717ead3c..c6ca674b66 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -238,7 +238,7 @@ }, { "name": "MeowIsland", - "address": ["nexus.minecraft.rent:25598", "nexus.minecraft.rent:25596", "jupiter.minecraft.rent:25651", "pandora.minecraft.rent:25620"] + "address": ["jupiter.minerent.net:25651", "nexus.minerent.net:25596", "nexus.minerent.net:25598", "pandora.minerent.net:25620"] }, { "name": "3MIDustry", From 0019b78f71a1ca7e2bd2ee3d16bbdb7587e54e46 Mon Sep 17 00:00:00 2001 From: Elixias <61173114+LixieWulf@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:27:22 -0600 Subject: [PATCH 09/21] Custom shield colouring (#9647) Five extra minutes I had the luxury of spending fixing Git because it exploded again Co-authored-by: Anuken --- .../entities/abilities/ForceFieldAbility.java | 4 ++-- .../mindustry/entities/abilities/ShieldArcAbility.java | 6 ++++-- .../entities/abilities/ShieldRegenFieldAbility.java | 4 ++-- core/src/mindustry/entities/comp/ShieldComp.java | 2 +- core/src/mindustry/type/UnitType.java | 10 +++++++++- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/src/mindustry/entities/abilities/ForceFieldAbility.java b/core/src/mindustry/entities/abilities/ForceFieldAbility.java index 545bc9af68..504bf20681 100644 --- a/core/src/mindustry/entities/abilities/ForceFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ForceFieldAbility.java @@ -82,7 +82,7 @@ public class ForceFieldAbility extends Ability{ if(unit.shield <= 0f && !wasBroken){ unit.shield -= cooldown * regen; - Fx.shieldBreak.at(unit.x, unit.y, radius, unit.team.color, this); + Fx.shieldBreak.at(unit.x, unit.y, radius, unit.type.shieldColor(unit), this); } wasBroken = unit.shield <= 0f; @@ -110,7 +110,7 @@ public class ForceFieldAbility extends Ability{ checkRadius(unit); if(unit.shield > 0){ - Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha)); + Draw.color(unit.type.shieldColor(unit), Color.white, Mathf.clamp(alpha)); if(Vars.renderer.animateShields){ Draw.z(Layer.shields + 0.001f * alpha); diff --git a/core/src/mindustry/entities/abilities/ShieldArcAbility.java b/core/src/mindustry/entities/abilities/ShieldArcAbility.java index a7d41cdaf7..820255f602 100644 --- a/core/src/mindustry/entities/abilities/ShieldArcAbility.java +++ b/core/src/mindustry/entities/abilities/ShieldArcAbility.java @@ -31,7 +31,7 @@ public class ShieldArcAbility extends Ability{ if(paramField.data <= b.damage()){ paramField.data -= paramField.cooldown * paramField.regen; - Fx.arcShieldBreak.at(paramPos.x, paramPos.y, 0, paramUnit.team.color, paramUnit); + Fx.arcShieldBreak.at(paramPos.x, paramPos.y, 0, paramField.color == null ? paramUnit.type.shieldColor(paramUnit) : paramField.color, paramUnit); } paramField.data -= b.damage(); @@ -60,6 +60,8 @@ public class ShieldArcAbility extends Ability{ public boolean drawArc = true; /** If not null, will be drawn on top. */ public @Nullable String region; + /** Color override of the shield. Uses unit shield colour by default. */ + public @Nullable Color color; /** If true, sprite position will be influenced by x/y. */ public boolean offsetRegion = false; @@ -109,7 +111,7 @@ public class ShieldArcAbility extends Ability{ if(widthScale > 0.001f){ Draw.z(Layer.shields); - Draw.color(unit.team.color, Color.white, Mathf.clamp(alpha)); + Draw.color(color == null ? unit.type.shieldColor(unit) : color, Color.white, Mathf.clamp(alpha)); var pos = paramPos.set(x, y).rotate(unit.rotation - 90f).add(unit); if(!Vars.renderer.animateShields){ diff --git a/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java b/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java index c34ce359ce..092222ec0d 100644 --- a/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ShieldRegenFieldAbility.java @@ -48,13 +48,13 @@ public class ShieldRegenFieldAbility extends Ability{ if(other.shield < max){ other.shield = Math.min(other.shield + amount, max); other.shieldAlpha = 1f; //TODO may not be necessary - applyEffect.at(unit.x, unit.y, 0f, unit.team.color, parentizeEffects ? other : null); + applyEffect.at(other.x, other.y, 0f, other.type.shieldColor(other), parentizeEffects ? other : null); applied = true; } }); if(applied){ - activeEffect.at(unit.x, unit.y, unit.team.color); + activeEffect.at(unit.x, unit.y, unit.type.shieldColor(unit)); } timer = 0f; diff --git a/core/src/mindustry/entities/comp/ShieldComp.java b/core/src/mindustry/entities/comp/ShieldComp.java index 87519fd742..c290fa6251 100644 --- a/core/src/mindustry/entities/comp/ShieldComp.java +++ b/core/src/mindustry/entities/comp/ShieldComp.java @@ -61,7 +61,7 @@ abstract class ShieldComp implements Healthc, Posc{ } if(hadShields && shield <= 0.0001f){ - Fx.unitShieldBreak.at(x, y, 0, team.color, this); + Fx.unitShieldBreak.at(x, y, 0, type.shieldColor(self()), this); } } } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 89c8b98f2d..36322840e3 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -259,6 +259,8 @@ public class UnitType extends UnlockableContent implements Senseable{ public Color healColor = Pal.heal; /** Color of light that this unit produces when lighting is enabled in the map. */ public Color lightColor = Pal.powerLight; + /** override for unit shield colour. */ + public @Nullable Color shieldColor; /** sound played when this unit explodes (*not* when it is shot down) */ public Sound deathSound = Sounds.bang; /** sound played on loop when this unit is around. */ @@ -1305,6 +1307,12 @@ public class UnitType extends UnlockableContent implements Senseable{ Draw.reset(); } + + //...where do I put this + public Color shieldColor(Unit unit){ + return shieldColor == null ? unit.team.color : shieldColor; + } + public void drawMining(Unit unit){ if(!unit.mining()) return; @@ -1345,7 +1353,7 @@ public class UnitType extends UnlockableContent implements Senseable{ float radius = unit.hitSize() * 1.3f; Fill.light(unit.x, unit.y, Lines.circleVertices(radius), radius, Color.clear, - Tmp.c2.set(unit.team.color).lerp(Color.white, Mathf.clamp(unit.hitTime() / 2f)).a(0.7f * alpha) + Tmp.c2.set(unit.type.shieldColor(unit)).lerp(Color.white, Mathf.clamp(unit.hitTime() / 2f)).a(0.7f * alpha) ); } From 972e1a7704af9848f25120b2c65eb14ff15507b4 Mon Sep 17 00:00:00 2001 From: Tomoko <65737359+Taras4k@users.noreply.github.com> Date: Thu, 20 Jun 2024 15:27:40 +0000 Subject: [PATCH 10/21] Update servers_v7.json (#9972) --- servers_v7.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/servers_v7.json b/servers_v7.json index c6ca674b66..3f5e3c4cf1 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -84,8 +84,8 @@ "address": ["0nera.ru:7777"] }, { - "name": "Untitled Mindustry Servers", - "address": ["45.144.66.250:6567", "45.144.66.250:6601", "45.144.66.250:6611"] + "name": "Voiddustry Servers", + "address": ["45.144.66.250:6567", "185.189.14.201:6567"] }, { "name": "thedimas", From efa5f8a2b5dac0e98df091d7bbc520e45cdecdb9 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Jun 2024 17:06:55 -0400 Subject: [PATCH 11/21] Fixed #9973 --- core/src/mindustry/world/Build.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/world/Build.java b/core/src/mindustry/world/Build.java index c1cfc9b5e7..a47363df2f 100644 --- a/core/src/mindustry/world/Build.java +++ b/core/src/mindustry/world/Build.java @@ -91,7 +91,7 @@ public class Build{ } //repair derelict tile - if(tile.team() == Team.derelict && tile.block == result && tile.build != null && tile.block.allowDerelictRepair && state.rules.derelictRepair){ + if(tile.team() == Team.derelict && team != Team.derelict && tile.block == result && tile.build != null && tile.block.allowDerelictRepair && state.rules.derelictRepair){ float healthf = tile.build.healthf(); var config = tile.build.config(); @@ -231,11 +231,11 @@ public class Build{ (type.size == 2 && world.getDarkness(wx, wy) >= 3) || (state.rules.staticFog && state.rules.fog && !fogControl.isDiscovered(team, wx, wy)) || (check.floor().isDeep() && !type.floating && !type.requiresWater && !type.placeableLiquid) || //deep water - (type == check.block() && check.build != null && rotation == check.build.rotation && type.rotate && !((type == check.block && check.team() == Team.derelict))) || //same block, same rotation + (type == check.block() && check.build != null && rotation == check.build.rotation && type.rotate && !((type == check.block && team != Team.derelict && check.team() == Team.derelict))) || //same block, same rotation !check.interactable(team) || //cannot interact !check.floor().placeableOn || //solid floor (!checkVisible && !check.block().alwaysReplace) || //replacing a block that should be replaced (e.g. payload placement) - !(((type.canReplace(check.block()) || (type == check.block && state.rules.derelictRepair && check.team() == Team.derelict)) || //can replace type OR can replace derelict block of same type + !(((type.canReplace(check.block()) || (type == check.block && team != Team.derelict && state.rules.derelictRepair && check.team() == Team.derelict)) || //can replace type OR can replace derelict block of same type (check.build instanceof ConstructBuild build && build.current == type && check.centerX() == tile.x && check.centerY() == tile.y)) && //same type in construction type.bounds(tile.x, tile.y, Tmp.r1).grow(0.01f).contains(check.block.bounds(check.centerX(), check.centerY(), Tmp.r2))) || //no replacement (type.requiresWater && check.floor().liquidDrop != Liquids.water) //requires water but none found From 87584ebd0be4461d2a5e05692db8afcaad442750 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Jun 2024 17:41:36 -0400 Subject: [PATCH 12/21] Minor power graph optimization --- .../mindustry/entities/comp/BuildingComp.java | 13 ++++++++++- .../world/blocks/power/PowerGraph.java | 23 ++----------------- gradle.properties | 2 +- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index d9d73bd733..9751fbd4c7 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -87,6 +87,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, transient float optionalEfficiency; /** The efficiency this block *would* have if shouldConsume() returned true. */ transient float potentialEfficiency; + /** Whether there are any consumers (aside from power) that have efficiency > 0. */ + transient boolean shouldConsumePower; transient float healSuppressionTime = -1f; transient float lastHealTime = -120f * 10f; @@ -1773,6 +1775,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, if(!block.hasConsumers || cheating()){ potentialEfficiency = enabled && productionValid() ? 1f : 0f; efficiency = optionalEfficiency = shouldConsume() ? potentialEfficiency : 0f; + shouldConsumePower = true; updateEfficiencyMultiplier(); return; } @@ -1780,6 +1783,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //disabled -> nothing works if(!enabled){ potentialEfficiency = efficiency = optionalEfficiency = 0f; + shouldConsumePower = false; return; } @@ -1789,10 +1793,17 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //assume efficiency is 1 for the calculations below efficiency = optionalEfficiency = 1f; + shouldConsumePower = true; //first pass: get the minimum efficiency of any consumer for(var cons : block.nonOptionalConsumers){ - minEfficiency = Math.min(minEfficiency, cons.efficiency(self())); + float result = cons.efficiency(self()); + + if(cons != block.consPower && result <= 0.0000001f){ + shouldConsumePower = false; + } + + minEfficiency = Math.min(minEfficiency, result); } //same for optionals diff --git a/core/src/mindustry/world/blocks/power/PowerGraph.java b/core/src/mindustry/world/blocks/power/PowerGraph.java index 563af12345..dd86bec9c9 100644 --- a/core/src/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/mindustry/world/blocks/power/PowerGraph.java @@ -4,7 +4,6 @@ import arc.math.*; import arc.struct.*; import arc.util.*; import mindustry.gen.*; -import mindustry.world.consumers.*; public class PowerGraph{ private static final Queue queue = new Queue<>(); @@ -109,7 +108,7 @@ public class PowerGraph{ for(int i = 0; i < consumers.size; i++){ var consumer = items[i]; var consumePower = consumer.block.consPower; - if(otherConsumersAreValid(consumer, consumePower)){ + if(consumer.shouldConsumePower){ powerNeeded += consumePower.requestedPower(consumer) * consumer.delta(); } } @@ -201,7 +200,7 @@ public class PowerGraph{ } }else{ //valid consumers get power as usual - if(otherConsumersAreValid(consumer, cons)){ + if(consumer.shouldConsumePower){ consumer.power.status = coverage; }else{ //invalid consumers get an estimate, if they were to activate consumer.power.status = Math.min(1, produced / (needed + cons.usage * consumer.delta())); @@ -381,24 +380,6 @@ public class PowerGraph{ return graphID; } - @Deprecated - private boolean otherConsumersAreValid(Building build, Consume consumePower){ - if(!build.enabled) return false; - - float f = build.efficiency; - //hack so liquids output positive efficiency values - build.efficiency = 1f; - for(Consume cons : build.block.nonOptionalConsumers){ - //TODO fix this properly - if(cons != consumePower && cons.efficiency(build) <= 0.0000001f){ - build.efficiency = f; - return false; - } - } - build.efficiency = f; - return true; - } - @Override public String toString(){ return "PowerGraph{" + diff --git a/gradle.properties b/gradle.properties index d04a646d54..087025418f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=7a6694c636 +archash=7d6e89dffd From 2357e8768b17220b3162fd6eb71e03faa06e14cf Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 13 Jun 2024 10:51:59 -0400 Subject: [PATCH 13/21] Boost unit rebuild/assist commands --- core/src/mindustry/ai/types/BuilderAI.java | 13 ++++++++++++- core/src/mindustry/type/StatusEffect.java | 2 +- core/src/mindustry/type/UnitType.java | 4 ++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/ai/types/BuilderAI.java b/core/src/mindustry/ai/types/BuilderAI.java index a8ea3118cf..ff57627c33 100644 --- a/core/src/mindustry/ai/types/BuilderAI.java +++ b/core/src/mindustry/ai/types/BuilderAI.java @@ -47,6 +47,8 @@ public class BuilderAI extends AIController{ if(target != null && shouldShoot()){ unit.lookAt(target); + }else if(!unit.type.flying){ + unit.lookAt(unit.prefRotation()); } unit.updateBuilding = true; @@ -55,6 +57,8 @@ public class BuilderAI extends AIController{ following = assistFollowing; } + boolean moving = false; + if(following != null){ retreatTimer = 0f; //try to follow and mimic someone @@ -83,6 +87,7 @@ public class BuilderAI extends AIController{ var core = unit.closestCore(); if(core != null && !unit.within(core, retreatDst)){ moveTo(core, retreatDst); + moving = true; } } } @@ -114,7 +119,8 @@ public class BuilderAI extends AIController{ if(valid){ //move toward the plan - moveTo(req.tile(), unit.type.buildRange - 20f); + moveTo(req.tile(), unit.type.buildRange - 20f, 20f); + moving = !unit.within(req.tile(), unit.type.buildRange - 10f); }else{ //discard invalid plan unit.plans.removeFirst(); @@ -124,6 +130,7 @@ public class BuilderAI extends AIController{ if(assistFollowing != null){ moveTo(assistFollowing, assistFollowing.type.hitSize + unit.type.hitSize/2f + 60f); + moving = !unit.within(assistFollowing, assistFollowing.type.hitSize + unit.type.hitSize/2f + 65f); } //follow someone and help them build @@ -186,6 +193,10 @@ public class BuilderAI extends AIController{ } } } + + if(!unit.type.flying){ + unit.updateBoosting(moving || unit.floorOn().isDuct || unit.floorOn().damageTaken > 0f); + } } protected boolean nearEnemy(int x, int y){ diff --git a/core/src/mindustry/type/StatusEffect.java b/core/src/mindustry/type/StatusEffect.java index 2e79ed00e7..79d0177b41 100644 --- a/core/src/mindustry/type/StatusEffect.java +++ b/core/src/mindustry/type/StatusEffect.java @@ -99,7 +99,7 @@ public class StatusEffect extends UnlockableContent{ boolean reacts = false; for(var e : opposites.toSeq().sort()){ - stats.add(Stat.opposites, e.emoji() + "" + e); + stats.add(Stat.opposites, e.emoji() + e); } if(reactive){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 36322840e3..34c3b537df 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -828,6 +828,10 @@ public class UnitType extends UnlockableContent implements Senseable{ if(canBoost){ cmds.add(UnitCommand.boostCommand); + + if(buildSpeed > 0f){ + cmds.add(UnitCommand.rebuildCommand, UnitCommand.assistCommand); + } } //healing, mining and building is only supported for flying units; pathfinding to ambiguously reachable locations is hard. From 2a95b0f8d243ce393005adbc2a8ef39182c2ee1b Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 13 Jun 2024 10:56:23 -0400 Subject: [PATCH 14/21] Nova tree build speed nerfs --- core/src/mindustry/content/UnitTypes.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 015b069c9f..ab6b1942f2 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -322,7 +322,7 @@ public class UnitTypes{ speed = 0.55f; hitSize = 8f; health = 120f; - buildSpeed = 0.8f; + buildSpeed = 0.35f; armor = 1f; abilities.add(new RepairFieldAbility(10f, 60f * 4, 60f)); @@ -354,7 +354,7 @@ public class UnitTypes{ speed = 0.7f; hitSize = 11f; health = 320f; - buildSpeed = 0.9f; + buildSpeed = 0.5f; armor = 4f; riseSpeed = 0.07f; @@ -408,7 +408,7 @@ public class UnitTypes{ mineTier = 3; boostMultiplier = 2f; health = 640f; - buildSpeed = 1.7f; + buildSpeed = 1.1f; canBoost = true; armor = 9f; mechLandShake = 2f; From 400db1b1e888059e04c7288cf2c9ff885cb88db4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 24 Jun 2024 14:11:56 -0400 Subject: [PATCH 15/21] In-game rule edit dialog --- core/assets/bundles/bundle.properties | 2 ++ core/src/mindustry/game/Gamemode.java | 1 + core/src/mindustry/game/Rules.java | 2 ++ .../ui/dialogs/CustomRulesDialog.java | 17 ++++++++++---- .../mindustry/ui/dialogs/MapPlayDialog.java | 2 +- .../mindustry/ui/dialogs/PausedDialog.java | 23 +++++++++++++++++-- 6 files changed, 40 insertions(+), 7 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 0290485044..5b08e098ac 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1335,6 +1335,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/src/mindustry/game/Gamemode.java b/core/src/mindustry/game/Gamemode.java index 86e94966fa..4c2512e9ca 100644 --- a/core/src/mindustry/game/Gamemode.java +++ b/core/src/mindustry/game/Gamemode.java @@ -13,6 +13,7 @@ public enum Gamemode{ }, map -> map.spawns > 0), sandbox(rules -> { rules.infiniteResources = true; + rules.allowEditRules = true; rules.waves = true; rules.waveTimer = false; }), diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index b0f7c7275b..e2850f0124 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -19,6 +19,8 @@ import mindustry.world.blocks.*; * Does not store game state, just configuration. */ public class Rules{ + /** Allows editing the rules in-game. Essentially a cheat mode toggle. */ + public boolean allowEditRules = false; /** Sandbox mode: Enables infinite resources, build range and build speed. */ public boolean infiniteResources; /** Team-specific rules. */ diff --git a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java index 56d22c553d..a277593dd3 100644 --- a/core/src/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/mindustry/ui/dialogs/CustomRulesDialog.java @@ -30,16 +30,24 @@ public class CustomRulesDialog extends BaseDialog{ private Table main; private Prov resetter; private LoadoutDialog loadoutDialog; + + public boolean showRuleEditRule; public Seq categories; public Table current; public Seq categoryNames; - public String currentName; + public String currentName = ""; public String ruleSearch = ""; public Seq additionalSetup; // for modding to easily add new rules public CustomRulesDialog(){ + this(false); + } + + public CustomRulesDialog(boolean showRuleEditRule){ super("@mode.custom"); + this.showRuleEditRule = showRuleEditRule; + loadoutDialog = new LoadoutDialog(); setFillParent(true); @@ -49,8 +57,6 @@ public class CustomRulesDialog extends BaseDialog{ additionalSetup = new Seq<>(); categories = new Seq<>(); categoryNames = new Seq<>(); - currentName = ""; - ruleSearch = ""; buttons.button("@edit", Icon.pencil, () -> { BaseDialog dialog = new BaseDialog("@waves.edit"); @@ -209,7 +215,6 @@ public class CustomRulesDialog extends BaseDialog{ main.left().defaults().fillX().left(); main.row(); - category("waves"); check("@rules.waves", b -> rules.waves = b, () -> rules.waves); check("@rules.wavesending", b -> rules.waveSending = b, () -> rules.waveSending, () -> rules.waves); @@ -352,6 +357,10 @@ public class CustomRulesDialog extends BaseDialog{ category("teams"); + //not sure where else to put this + if(showRuleEditRule){ + check("@rules.allowedit", b -> rules.allowEditRules = b, () -> rules.allowEditRules); + } team("@rules.playerteam", t -> rules.defaultTeam = t, () -> rules.defaultTeam); team("@rules.enemyteam", t -> rules.waveTeam = t, () -> rules.waveTeam); diff --git a/core/src/mindustry/ui/dialogs/MapPlayDialog.java b/core/src/mindustry/ui/dialogs/MapPlayDialog.java index db72034f0b..b2f31971b4 100644 --- a/core/src/mindustry/ui/dialogs/MapPlayDialog.java +++ b/core/src/mindustry/ui/dialogs/MapPlayDialog.java @@ -14,7 +14,7 @@ import static mindustry.Vars.*; public class MapPlayDialog extends BaseDialog{ public @Nullable Runnable playListener; - CustomRulesDialog dialog = new CustomRulesDialog(); + CustomRulesDialog dialog = new CustomRulesDialog(true); Rules rules; Gamemode selectedGamemode = Gamemode.survival; Map lastMap; diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index b854aa1eb9..677b3d53ed 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -1,7 +1,10 @@ package mindustry.ui.dialogs; import arc.*; +import arc.scene.ui.layout.*; +import mindustry.*; import mindustry.editor.*; +import mindustry.game.*; import mindustry.gen.*; import static mindustry.Vars.*; @@ -10,12 +13,28 @@ public class PausedDialog extends BaseDialog{ private MapProcessorsDialog processors = new MapProcessorsDialog(); private SaveDialog save = new SaveDialog(); private LoadDialog load = new LoadDialog(); - private boolean wasClient = false; + private CustomRulesDialog rulesDialog = new CustomRulesDialog(); public PausedDialog(){ super("@menu"); shouldPause = true; + clearChildren(); + add(titleTable).growX().row(); + + stack(cont, new Table(t -> { + t.bottom().left(); + t.button(Icon.book, () -> { + Rules toEdit = Vars.state.rules.copy(); + rulesDialog.show(toEdit, () -> state.rules.copy()); + rulesDialog.hidden(() -> { + //apply rule changes only once it is hidden + Vars.state.rules = toEdit; + Call.setRules(toEdit); + }); + }).size(70f).tooltip("@customize").visible(() -> state.rules.allowEditRules && (net.server() || !net.active())); + })).grow().row(); + shown(this::rebuild); addCloseListener(); @@ -130,7 +149,7 @@ public class PausedDialog extends BaseDialog{ } public void runExitSave(){ - wasClient = net.client(); + boolean wasClient = net.client(); if(net.client()) netClient.disconnectQuietly(); if(state.isEditor() && !wasClient){ From 2ab2b03bf8281b31efc08c771acb78f9d8880afc Mon Sep 17 00:00:00 2001 From: Github Actions Date: Mon, 24 Jun 2024 18:12:54 +0000 Subject: [PATCH 16/21] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 49c165f806..27cd44b075 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1303,6 +1303,8 @@ rules.disableworldprocessors = Адключыць Працэсары Свету rules.schematic = Схемы Дазволены rules.wavetimer = Інтэрвал хваляў rules.wavesending = Адпраўка Хваль +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Хвалі rules.airUseSpawns = Air units use spawn points rules.attack = Рэжым атакі diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 16c6279320..89926a3a4f 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1314,6 +1314,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Позволена Употребата на Схеми rules.wavetimer = Таймер за Вълни rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Вълни rules.airUseSpawns = Air units use spawn points rules.attack = Режим Атака diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 9952d1db67..94d70b12d1 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1317,6 +1317,8 @@ rules.disableworldprocessors = Desactiva els processadors integrats rules.schematic = Permetre l’ús d’esquemes rules.wavetimer = Temporitzador d’onades rules.wavesending = Enviament d’onades +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Onades rules.airUseSpawns = Air units use spawn points rules.attack = Mode d’atac diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index ef1dcf72e9..80f53b1eee 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1316,6 +1316,8 @@ rules.disableworldprocessors = Zakázat Světové Procesory rules.schematic = Šablony povoleny rules.wavetimer = Časovač vln rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Vlny rules.airUseSpawns = Air units use spawn points rules.attack = Režim útoku diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index 739b32c5bf..c5c9c3d96a 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Skabeloner tilladt rules.wavetimer = Bølge-æggeur rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Bølger rules.airUseSpawns = Air units use spawn points rules.attack = Angrebsmode diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 1c430b02ca..3da8778462 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1327,6 +1327,8 @@ rules.disableworldprocessors = Deaktiviere Weltprozessoren rules.schematic = Entwürfe erlaubt rules.wavetimer = Wellen-Timer rules.wavesending = Manuelle Wellen möglich +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Wellen rules.airUseSpawns = Air units use spawn points rules.attack = Angriff-Modus diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 52107a850a..6790db4427 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1323,6 +1323,8 @@ rules.disableworldprocessors = Desactivar procesadores estáticos rules.schematic = Permitir esquemas rules.wavetimer = Temporizador de oleadas rules.wavesending = Envío de oleadas +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Oleadas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index 29064fb2c6..bc6d5d6271 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Kasuta taimerit rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Kasuta lahingulaineid rules.airUseSpawns = Air units use spawn points rules.attack = Mänguviis "Rünnak" diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 9b843f1cb0..2b62fdaf39 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1307,6 +1307,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Boladen denboragailua rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Boladak rules.airUseSpawns = Air units use spawn points rules.attack = Eraso modua diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index 892b999c3c..f9b20acc36 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1304,6 +1304,8 @@ rules.disableworldprocessors = Poista maailmaprosessorit käytöstä rules.schematic = Salli kaaviot rules.wavetimer = Tasojen aikaraja rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Tasot rules.airUseSpawns = Air units use spawn points rules.attack = Hyökkäystila diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index 5d121ba794..b4e19c1ef4 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1304,6 +1304,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 96739a8150..24dab35380 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1331,6 +1331,8 @@ rules.disableworldprocessors = Désactiver les Processeurs Globaux rules.schematic = Schémas autorisés rules.wavetimer = Compte à rebours des vagues rules.wavesending = Déclenchement des Vagues +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Vagues rules.airUseSpawns = Air units use spawn points rules.attack = Mode « Attaque » diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index 640dbb9882..d98723ce02 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1335,6 +1335,8 @@ rules.disableworldprocessors = Világprocesszorok letiltása rules.schematic = Vázlatok engedélyezése rules.wavetimer = Hullámok időzítése rules.wavesending = Hullámok küldése +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Hullámok rules.airUseSpawns = A légi egységek használjanak kezdőpontokat rules.attack = Támadási mód diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 54a78482b3..700ccf020c 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1323,6 +1323,8 @@ rules.disableworldprocessors = Nonaktifkan Prosesor Dunia rules.schematic = Bagan Diperbolehkan rules.wavetimer = Pengaturan Waktu Gelombang rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Gelombang rules.airUseSpawns = Air units use spawn points rules.attack = Mode Penyerangan diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index a01440d11e..cc3596b04e 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1310,6 +1310,8 @@ rules.disableworldprocessors = Disabilita processori rules.schematic = Schematiche Consentite rules.wavetimer = Timer Ondate rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Ondate rules.airUseSpawns = Air units use spawn points rules.attack = Modalità Attacco diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 0a9f72e68c..1f06e7e153 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1316,6 +1316,8 @@ rules.disableworldprocessors = ワールドプロセッサーを無効にする rules.schematic = 設計図を許可 rules.wavetimer = ウェーブの自動進行 rules.wavesending = ウェーブスキップ +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = ウェーブ rules.airUseSpawns = Air units use spawn points rules.attack = アタックモード diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index bb4584974c..af8ee33bf3 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1315,6 +1315,8 @@ rules.disableworldprocessors = 월드 프로세서 비활성화 rules.schematic = 설계도 허용 rules.wavetimer = 시간 제한이 있는 단계 rules.wavesending = 단계 넘김 +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = 단계 rules.airUseSpawns = Air units use spawn points rules.attack = 공격 모드 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 5c5b54f754..3f5466f876 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Bangų Laikmatis rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Bangos rules.airUseSpawns = Air units use spawn points rules.attack = Puolimo Režimas diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 2f87afbe88..d7035c1049 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1317,6 +1317,8 @@ rules.disableworldprocessors = Zet Wereld-Processors Uit. rules.schematic = Ontwerpen Toegestaan rules.wavetimer = Vijandelijke Golven Timer rules.wavesending = Golven Sturen +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Golven rules.airUseSpawns = Air units use spawn points rules.attack = Aanvalmodus diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index a4cee209c7..ccb5189643 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 7e2c3d2e1e..f951e54ae8 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1314,6 +1314,8 @@ rules.disableworldprocessors = Wyłącz Procesor Świata rules.schematic = Zezwalaj na schematy rules.wavetimer = Zegar Fal rules.wavesending = Wysyłanie Fal +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Fale rules.airUseSpawns = Air units use spawn points rules.attack = Tryb Ataku diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 2009ba262a..45bf134bd6 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1324,6 +1324,8 @@ rules.disableworldprocessors = Desativar processadores mundiais rules.schematic = Permitir Esquemas rules.wavetimer = Tempo de horda rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Hordas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index 4dc3d7d0b4..f9dc21bc95 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Tempo de horda rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Hordas rules.airUseSpawns = Air units use spawn points rules.attack = Modo de ataque diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 86c6afc8c9..32fd848be3 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1316,6 +1316,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Se Pot Folosi Scheme rules.wavetimer = Valuri pe Timp rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Valuri rules.airUseSpawns = Air units use spawn points rules.attack = Modul Atac diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index f81b9b0366..51b5b032bd 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1315,6 +1315,8 @@ rules.disableworldprocessors = Отключить мировые процесс rules.schematic = Разрешить схемы rules.wavetimer = Интервал волн rules.wavesending = Отправка волн +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Волны rules.airUseSpawns = Air units use spawn points rules.attack = Режим атаки diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 1074938dc6..25866172cc 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1318,6 +1318,8 @@ rules.disableworldprocessors = Onesposobi Svetovne Procesore rules.schematic = Šeme Su Dozvoljene rules.wavetimer = Talasna Štoperica rules.wavesending = Slanje Talasa +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Talasi rules.airUseSpawns = Air units use spawn points rules.attack = Mod Napada diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 40463f1e96..f675d8f437 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Vågtimer rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Vågor rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 698831f965..26a7aa1fa7 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1317,6 +1317,8 @@ rules.disableworldprocessors = ปิดการทำงานของตั rules.schematic = อนุญาตให้ใช้แผนผัง rules.wavetimer = นับถอยหลังการปล่อยคลื่น rules.wavesending = กดเพื่อปล่อยคลื่น +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = คลื่น rules.airUseSpawns = Air units use spawn points rules.attack = โหมดการโจมตี diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index d71712915c..bb8259dd4f 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1305,6 +1305,8 @@ rules.disableworldprocessors = Disable World Processors rules.schematic = Schematics Allowed rules.wavetimer = Wave Timer rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Waves rules.airUseSpawns = Air units use spawn points rules.attack = Attack Mode diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index 27f034802e..a3677518d5 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1314,6 +1314,8 @@ rules.disableworldprocessors = Evrensel İşlemcileri Devredışı Bırak rules.schematic = Şema Kullanılabilir rules.wavetimer = Dalga Zamanlayıcısı rules.wavesending = Dalga Gönderiliyor +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Dalgalar rules.airUseSpawns = Hava Birimleri doğuş bölgelerini kullanır rules.attack = Saldırı Modu diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index c9728190f7..079a7f9dcd 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1325,6 +1325,8 @@ rules.disableworldprocessors = Вимкнути світові процесор rules.schematic = Використання схем дозволено rules.wavetimer = Таймер для хвиль rules.wavesending = Ручне надсилання хвиль +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Хвилі rules.airUseSpawns = Air units use spawn points rules.attack = Режим атаки diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 3df88fe6ec..3f5fe3a96e 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1335,6 +1335,8 @@ rules.disableworldprocessors = Vô hiệu hoá bộ xử lý thế giới rules.schematic = Cho phép dùng bản thiết kế rules.wavetimer = Đếm ngược đợt rules.wavesending = Gửi đợt +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = Đợt rules.airUseSpawns = Các đơn vị không quân dùng điểm xuất hiện rules.attack = Chế độ tấn công diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index bfbe402609..c992777b21 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1327,6 +1327,8 @@ rules.disableworldprocessors = 禁用世界处理器 rules.schematic = 允许使用蓝图 rules.wavetimer = 波次计时器 rules.wavesending = 波次可跳波 +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = 波次 rules.airUseSpawns = Air units use spawn points rules.attack = 进攻模式 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 8949a4952d..85241920e8 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1322,6 +1322,8 @@ rules.disableworldprocessors = 停用世界處理器 rules.schematic = 允許使用藍圖 rules.wavetimer = 波次時間 rules.wavesending = Wave Sending +rules.allowedit = Allow Editing Rules +rules.allowedit.info = When enabled, the player can edit rules in-game via the button in the bottom left corner of the Pause menu. rules.waves = 波次 rules.airUseSpawns = Air units use spawn points rules.attack = 攻擊模式 From caf0ab581d5f26c05437ded618d506edefba11f4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 30 Jun 2024 10:28:01 -0400 Subject: [PATCH 17/21] Item deposit cooldown rule (default: 0.5 sec) --- core/src/mindustry/entities/comp/PlayerComp.java | 1 + core/src/mindustry/game/Rules.java | 2 ++ core/src/mindustry/graphics/OverlayRenderer.java | 4 +++- core/src/mindustry/input/InputHandler.java | 11 ++++++++++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/entities/comp/PlayerComp.java b/core/src/mindustry/entities/comp/PlayerComp.java index 50ce197306..f970cfe23b 100644 --- a/core/src/mindustry/entities/comp/PlayerComp.java +++ b/core/src/mindustry/entities/comp/PlayerComp.java @@ -47,6 +47,7 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra transient float deathTimer; transient String lastText = ""; transient float textFadeTime; + transient Ratekeeper itemDepositRate = new Ratekeeper(); transient private Unit lastReadUnit = Nulls.unit; transient private int wrongReadUnits; diff --git a/core/src/mindustry/game/Rules.java b/core/src/mindustry/game/Rules.java index e2850f0124..bd405c793e 100644 --- a/core/src/mindustry/game/Rules.java +++ b/core/src/mindustry/game/Rules.java @@ -107,6 +107,8 @@ public class Rules{ public boolean cleanupDeadTeams = true; /** If true, items can only be deposited in the core. */ public boolean onlyDepositCore = false; + /** Cooldown, in seconds, of item depositing for players. */ + public float itemDepositCooldown = 0.5f; /** If true, every enemy block in the radius of the (enemy) core is destroyed upon death. Used for campaign maps. */ public boolean coreDestroyClear = false; /** If true, banned blocks are hidden from the build menu. */ diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java index b9dc661054..8346eb94d6 100644 --- a/core/src/mindustry/graphics/OverlayRenderer.java +++ b/core/src/mindustry/graphics/OverlayRenderer.java @@ -241,7 +241,9 @@ public class OverlayRenderer{ Draw.reset(); Building build = world.buildWorld(v.x, v.y); - if(input.canDropItem() && build != null && build.interactable(player.team()) && build.acceptStack(player.unit().item(), player.unit().stack.amount, player.unit()) > 0 && player.within(build, itemTransferRange)){ + if(input.canDropItem() && build != null && build.interactable(player.team()) && build.acceptStack(player.unit().item(), player.unit().stack.amount, player.unit()) > 0 && player.within(build, itemTransferRange) && + input.itemDepositCooldown <= 0f){ + boolean invalid = (state.rules.onlyDepositCore && !(build instanceof CoreBuild)); Lines.stroke(3f, Pal.gray); diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index b280a958be..a23af33bb1 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -83,6 +83,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public boolean overrideLineRotation; public int rotation; public boolean droppingItem; + public float itemDepositCooldown; public Group uiGroup; public boolean isBuilding = true, buildWasAutoPaused = false, wasShooting = false; public @Nullable UnitType controlledType; @@ -142,6 +143,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Events.on(ResetEvent.class, e -> { logicCutscene = false; + itemDepositCooldown = 0f; Arrays.fill(controlGroups, null); }); } @@ -423,6 +425,9 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(player == null || build == null || !player.within(build, itemTransferRange) || build.items == null || player.dead() || (state.rules.onlyDepositCore && !(build instanceof CoreBuild))) return; if(net.server() && (player.unit().stack.amount <= 0 || !Units.canInteract(player, build) || + //to avoid rejecting deposit packets that happen to overlap due to packet speed differences, the actual cap is double the cooldown with 2 deposits. + (!player.isLocal() && !player.itemDepositRate.allow((long)(state.rules.itemDepositCooldown * 1000 * 2), 2)) || + !netServer.admins.allowAction(player, ActionType.depositItem, build.tile, action -> { action.itemAmount = player.unit().stack.amount; action.item = player.unit().item(); @@ -796,6 +801,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ logicCutsceneZoom = -1f; } + itemDepositCooldown -= Time.delta / 60f; + commandBuildings.removeAll(b -> !b.isValid()); if(!commandMode){ @@ -1859,8 +1866,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ if(build != null && build.acceptStack(stack.item, stack.amount, player.unit()) > 0 && build.interactable(player.team()) && build.block.hasItems && player.unit().stack().amount > 0 && build.interactable(player.team())){ - if(!(state.rules.onlyDepositCore && !(build instanceof CoreBuild))){ + + if(!(state.rules.onlyDepositCore && !(build instanceof CoreBuild)) && itemDepositCooldown <= 0f){ Call.transferInventory(player, build); + itemDepositCooldown = state.rules.itemDepositCooldown; } }else{ Call.dropItem(player.angleTo(x, y)); From 04ec2c06033fca7509866c7eb489e9eee0640ffa Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 5 Jul 2024 21:42:23 -0400 Subject: [PATCH 18/21] Added toggle for always playing music --- core/assets/bundles/bundle.properties | 2 ++ core/src/mindustry/audio/SoundControl.java | 7 +++++-- core/src/mindustry/ui/dialogs/SettingsMenuDialog.java | 1 + gradle.properties | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 5b08e098ac..f58a7d3d7b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1136,6 +1136,8 @@ category.items = Items category.crafting = Input/Output category.function = Function category.optional = Optional Enhancements +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lock Landscape setting.shadows.name = Shadows diff --git a/core/src/mindustry/audio/SoundControl.java b/core/src/mindustry/audio/SoundControl.java index b003ebec94..432a3c05b6 100644 --- a/core/src/mindustry/audio/SoundControl.java +++ b/core/src/mindustry/audio/SoundControl.java @@ -164,8 +164,11 @@ public class SoundControl{ //this just fades out the last track to make way for ingame music silence(); - //play music at intervals - if(Time.timeSinceMillis(lastPlayed) > 1000 * musicInterval / 60f){ + if(Core.settings.getBool("alwaysmusic")){ + if(current == null){ + playRandom(); + } + }else if(Time.timeSinceMillis(lastPlayed) > 1000 * musicInterval / 60f){ //chance to play it per interval if(Mathf.chance(musicChance)){ lastPlayed = Time.millis(); diff --git a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java index 8450dfc699..01f7c05a53 100644 --- a/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -297,6 +297,7 @@ public class SettingsMenuDialog extends BaseDialog{ } void addSettings(){ + sound.checkPref("alwaysmusic", false); sound.sliderPref("musicvol", 100, 0, 100, 1, i -> i + "%"); sound.sliderPref("sfxvol", 100, 0, 100, 1, i -> i + "%"); sound.sliderPref("ambientvol", 100, 0, 100, 1, i -> i + "%"); diff --git a/gradle.properties b/gradle.properties index 087025418f..a72d1e7346 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=7d6e89dffd +archash=b857594d11 From c91f51f8d27c7a25fcb00609a0a105ccdf1d3e29 Mon Sep 17 00:00:00 2001 From: Github Actions Date: Sat, 6 Jul 2024 01:43:24 +0000 Subject: [PATCH 19/21] Automatic bundle update --- core/assets/bundles/bundle_be.properties | 2 ++ core/assets/bundles/bundle_bg.properties | 2 ++ core/assets/bundles/bundle_ca.properties | 2 ++ core/assets/bundles/bundle_cs.properties | 2 ++ core/assets/bundles/bundle_da.properties | 2 ++ core/assets/bundles/bundle_de.properties | 2 ++ core/assets/bundles/bundle_es.properties | 2 ++ core/assets/bundles/bundle_et.properties | 2 ++ core/assets/bundles/bundle_eu.properties | 2 ++ core/assets/bundles/bundle_fi.properties | 2 ++ core/assets/bundles/bundle_fil.properties | 2 ++ core/assets/bundles/bundle_fr.properties | 2 ++ core/assets/bundles/bundle_hu.properties | 2 ++ core/assets/bundles/bundle_id_ID.properties | 2 ++ core/assets/bundles/bundle_it.properties | 2 ++ core/assets/bundles/bundle_ja.properties | 2 ++ core/assets/bundles/bundle_ko.properties | 2 ++ core/assets/bundles/bundle_lt.properties | 2 ++ core/assets/bundles/bundle_nl.properties | 2 ++ core/assets/bundles/bundle_nl_BE.properties | 2 ++ core/assets/bundles/bundle_pl.properties | 2 ++ core/assets/bundles/bundle_pt_BR.properties | 2 ++ core/assets/bundles/bundle_pt_PT.properties | 2 ++ core/assets/bundles/bundle_ro.properties | 2 ++ core/assets/bundles/bundle_ru.properties | 2 ++ core/assets/bundles/bundle_sr.properties | 2 ++ core/assets/bundles/bundle_sv.properties | 2 ++ core/assets/bundles/bundle_th.properties | 2 ++ core/assets/bundles/bundle_tk.properties | 2 ++ core/assets/bundles/bundle_tr.properties | 2 ++ core/assets/bundles/bundle_uk_UA.properties | 2 ++ core/assets/bundles/bundle_vi.properties | 2 ++ core/assets/bundles/bundle_zh_CN.properties | 2 ++ core/assets/bundles/bundle_zh_TW.properties | 2 ++ 34 files changed, 68 insertions(+) diff --git a/core/assets/bundles/bundle_be.properties b/core/assets/bundles/bundle_be.properties index 27cd44b075..35d26ddb08 100644 --- a/core/assets/bundles/bundle_be.properties +++ b/core/assets/bundles/bundle_be.properties @@ -1107,6 +1107,8 @@ category.items = Прадметы category.crafting = Увядзенне/Выснова category.function = Функцыя category.optional = Дадатковыя паляпшэння +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Прапусціць Запуск Ядра/Анімацыю Высадкі setting.landscape.name = Толькі альбомны (гарызантальны) рэжым setting.shadows.name = Цені diff --git a/core/assets/bundles/bundle_bg.properties b/core/assets/bundles/bundle_bg.properties index 89926a3a4f..e80430fa25 100644 --- a/core/assets/bundles/bundle_bg.properties +++ b/core/assets/bundles/bundle_bg.properties @@ -1118,6 +1118,8 @@ category.items = Предмети category.crafting = Вход/Изход category.function = Функционалност category.optional = Допълнителни Подобрения +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Заключване на Пейзажа setting.shadows.name = Сенки diff --git a/core/assets/bundles/bundle_ca.properties b/core/assets/bundles/bundle_ca.properties index 94d70b12d1..fec327393f 100644 --- a/core/assets/bundles/bundle_ca.properties +++ b/core/assets/bundles/bundle_ca.properties @@ -1121,6 +1121,8 @@ category.items = Elements category.crafting = Entrada/Sortida category.function = Funcionament category.optional = Millores opcionals +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Omet l’animació del llançament i aterratge del nucli setting.landscape.name = Bloca el paisatge setting.shadows.name = Ombres diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 80f53b1eee..c7f2bbcc1e 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -1120,6 +1120,8 @@ category.items = Předměty category.crafting = Vstup/Výstup category.function = Funkce category.optional = Volitelné vylepšení +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Přeskočit Animaci Odpalu/Přístání Jádra setting.landscape.name = Uzamknout krajinu setting.shadows.name = Stíny diff --git a/core/assets/bundles/bundle_da.properties b/core/assets/bundles/bundle_da.properties index c5c9c3d96a..6eda50457c 100644 --- a/core/assets/bundles/bundle_da.properties +++ b/core/assets/bundles/bundle_da.properties @@ -1109,6 +1109,8 @@ category.items = Genstande category.crafting = Input/Output category.function = Funktion category.optional = Valgfri Opgraderinger +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lås Landskab setting.shadows.name = Skygger diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 3da8778462..f3c1a3e1d6 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -1131,6 +1131,8 @@ category.items = Materialien category.crafting = Erzeugung category.function = Funktion category.optional = Optionale Zusätze +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Kern Start- und Lande-Animation überspringen setting.landscape.name = Querformat sperren setting.shadows.name = Schatten diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 6790db4427..810d6a676d 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -1127,6 +1127,8 @@ category.items = Objetos category.crafting = Fabricación category.function = Función category.optional = Mejoras Opcionales +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Omitir animación de Lanzamiento/Aterrizaje del núcleo setting.landscape.name = Bloquear en horizontal setting.shadows.name = Sombras diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index bc6d5d6271..6744f93c71 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -1109,6 +1109,8 @@ category.items = Ressursid category.crafting = Sisend/Väljund category.function = Function category.optional = Valikulised täiustused +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lukusta horisontaalpaigutus setting.shadows.name = Varjud diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 2b62fdaf39..c2d3f84cb3 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -1111,6 +1111,8 @@ category.items = Baliabideak category.crafting = Sarrera/Irteera category.function = Function category.optional = Aukerako hobekuntzak +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Blokeatu horizontalean setting.shadows.name = Itzalak diff --git a/core/assets/bundles/bundle_fi.properties b/core/assets/bundles/bundle_fi.properties index f9b20acc36..8705c201f3 100644 --- a/core/assets/bundles/bundle_fi.properties +++ b/core/assets/bundles/bundle_fi.properties @@ -1108,6 +1108,8 @@ category.items = Tavarat category.crafting = Ulos/Sisääntulo category.function = Function category.optional = Mahdolliset parannukset +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Ohita ytimen laukaisun/laskeutumisen animaatio setting.landscape.name = Lukitse tasavaakaan setting.shadows.name = Varjot diff --git a/core/assets/bundles/bundle_fil.properties b/core/assets/bundles/bundle_fil.properties index b4e19c1ef4..eabd808298 100644 --- a/core/assets/bundles/bundle_fil.properties +++ b/core/assets/bundles/bundle_fil.properties @@ -1108,6 +1108,8 @@ category.items = Items category.crafting = Input/Output category.function = Function category.optional = Optional Enhancements +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Laktawan ang Core Launch/Land Animation setting.landscape.name = Lock Landscape setting.shadows.name = Shadows diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 24dab35380..7af3543782 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -1133,6 +1133,8 @@ category.items = Objets category.crafting = Fabrication category.function = Fonction category.optional = Améliorations facultatives +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Ignorer l'animation du lancement du noyau et de l'atterrissage setting.landscape.name = Verrouiller la rotation en mode paysage setting.shadows.name = Ombres diff --git a/core/assets/bundles/bundle_hu.properties b/core/assets/bundles/bundle_hu.properties index d98723ce02..300a066012 100644 --- a/core/assets/bundles/bundle_hu.properties +++ b/core/assets/bundles/bundle_hu.properties @@ -1136,6 +1136,8 @@ category.items = Nyersanyagok category.crafting = Bemenet/kimenet category.function = Funkció category.optional = Lehetséges fejlesztések +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Támaszpont indítási/leszállási animáció kihagyása setting.landscape.name = Fekvő mód zárolása setting.shadows.name = Árnyékok diff --git a/core/assets/bundles/bundle_id_ID.properties b/core/assets/bundles/bundle_id_ID.properties index 700ccf020c..8f1f0bde9b 100644 --- a/core/assets/bundles/bundle_id_ID.properties +++ b/core/assets/bundles/bundle_id_ID.properties @@ -1127,6 +1127,8 @@ category.items = Barang category.crafting = Pemasukan/Pengeluaran category.function = Fungsi category.optional = Peningkatan Opsional +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Lewati Animasi Peluncuran/Pendaratan Inti setting.landscape.name = Kunci Pemandangan setting.shadows.name = Bayangan diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index cc3596b04e..6aa47caa19 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -1114,6 +1114,8 @@ category.items = Oggetti category.crafting = Produzione category.function = Funzione category.optional = Miglioramenti Opzionali +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Salta il lancio del nucleo/Animazione setting.landscape.name = Visuale Orizontale setting.shadows.name = Ombre diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 1f06e7e153..18c8f086ff 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -1120,6 +1120,8 @@ category.items = アイテム category.crafting = 搬入/搬出 category.function = 役割 category.optional = 強化オプション +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = コアの打ち上げ/着陸アニメーションをスキップ setting.landscape.name = 横画面で固定 setting.shadows.name = 影 diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index af8ee33bf3..83d24dfa40 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -1119,6 +1119,8 @@ category.items = 자원 category.crafting = 입력/출력 category.function = 기능 category.optional = 선택적 향상 +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = 코어 발사/착륙 애니메이션 건너뛰기 setting.landscape.name = 가로화면 잠금 setting.shadows.name = 그림자 diff --git a/core/assets/bundles/bundle_lt.properties b/core/assets/bundles/bundle_lt.properties index 3f5466f876..1855ed10e6 100644 --- a/core/assets/bundles/bundle_lt.properties +++ b/core/assets/bundles/bundle_lt.properties @@ -1109,6 +1109,8 @@ category.items = Daiktai category.crafting = Įeiga/Išeiga category.function = Function category.optional = Galimi Pagerinimai +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Užrakinti pasukimą setting.shadows.name = Šešėliai diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index d7035c1049..a9565e7a58 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -1121,6 +1121,8 @@ category.items = Materialen category.crafting = Invoer/Uitvoer category.function = Functie category.optional = Optionele Verbeteringen +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Lancering/Land Animatie setting.landscape.name = Vergrendel Landschap setting.shadows.name = Schaduwen diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index ccb5189643..58cfa95b77 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -1109,6 +1109,8 @@ category.items = Items category.crafting = Input/Output category.function = Function category.optional = Optional Enhancements +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lock Landscape setting.shadows.name = Shadows diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index f951e54ae8..a013f5d4d7 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -1118,6 +1118,8 @@ category.items = Przedmioty category.crafting = Przetwórstwo category.function = Funkcja category.optional = Dodatkowe ulepszenia +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Pomiń Animację Wystrzału/Lądowania setting.landscape.name = Zablokuj tryb panoramiczny setting.shadows.name = Cienie diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 45bf134bd6..aa7a4ee556 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1128,6 +1128,8 @@ category.items = Itens category.crafting = Entrada/Saída category.function = Função category.optional = Melhoras opcionais +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Pular animação de lançamento/pouso do Núcleo setting.landscape.name = Travar panorama setting.shadows.name = Sombras diff --git a/core/assets/bundles/bundle_pt_PT.properties b/core/assets/bundles/bundle_pt_PT.properties index f9dc21bc95..1eccbc6aba 100644 --- a/core/assets/bundles/bundle_pt_PT.properties +++ b/core/assets/bundles/bundle_pt_PT.properties @@ -1109,6 +1109,8 @@ category.items = Itens category.crafting = Construindo category.function = Function category.optional = Melhoras opcionais +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Travar panorama setting.shadows.name = Sombras diff --git a/core/assets/bundles/bundle_ro.properties b/core/assets/bundles/bundle_ro.properties index 32fd848be3..f619f285bb 100644 --- a/core/assets/bundles/bundle_ro.properties +++ b/core/assets/bundles/bundle_ro.properties @@ -1120,6 +1120,8 @@ category.items = Materiale category.crafting = Necesită/Produce category.function = Funcționare category.optional = Îmbunătățiri opționale +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Sari peste Animația de Lansare/Aterizare a Nucleului setting.landscape.name = Blochează Mod Peisaj setting.shadows.name = Umbre diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 51b5b032bd..9760beacc7 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -1120,6 +1120,8 @@ category.items = Предметы category.crafting = Ввод/вывод category.function = Действие category.optional = Дополнительные улучшения +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Пропускать анимацию запуска/приземления ядра setting.landscape.name = Только альбомный (горизонтальный) режим setting.shadows.name = Тени diff --git a/core/assets/bundles/bundle_sr.properties b/core/assets/bundles/bundle_sr.properties index 25866172cc..6bb7bb4f38 100644 --- a/core/assets/bundles/bundle_sr.properties +++ b/core/assets/bundles/bundle_sr.properties @@ -1122,6 +1122,8 @@ category.items = Resursi category.crafting = Ulaz/izlaz category.function = Funkcija category.optional = Dotatna Poboljšanja +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Preskoči animacije sletanja i poletanja Jezgra. setting.landscape.name = Zaključaj Orijentaciju setting.shadows.name = Senke diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index f675d8f437..ae76e627e3 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -1109,6 +1109,8 @@ category.items = Föremål category.crafting = Inmatning/Utmatning category.function = Function category.optional = Optional Enhancements +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lock Landscape setting.shadows.name = Skuggor diff --git a/core/assets/bundles/bundle_th.properties b/core/assets/bundles/bundle_th.properties index 26a7aa1fa7..9b50196aa5 100644 --- a/core/assets/bundles/bundle_th.properties +++ b/core/assets/bundles/bundle_th.properties @@ -1121,6 +1121,8 @@ category.items = ไอเท็ม category.crafting = การผลิต category.function = ฟังค์ชั่น category.optional = ทางเลือกการเพิ่มประสิทธิภาพ +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = ข้ามแอนิเมชั่นการบิน/ลงจอดของแกนกลาง setting.landscape.name = ล็อกภูมิทัศน์แนวนอน setting.shadows.name = เงา diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index bb8259dd4f..c468c30579 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -1109,6 +1109,8 @@ category.items = esyalar category.crafting = uretim category.function = Function category.optional = Optional Enhancements +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Skip Core Launch/Land Animation setting.landscape.name = Lock Landscape setting.shadows.name = Shadows diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index a3677518d5..1c1c95f1f8 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -1118,6 +1118,8 @@ category.items = Eşyalar category.crafting = Üretim category.function = Fonksiyon category.optional = İsteğe Bağlı Geliştirmeler +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Merkez Fırlatma/İnme Animasyonunu Atla setting.landscape.name = Yatayda sabitle setting.shadows.name = Gölgeler diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index 079a7f9dcd..0d13699812 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -1129,6 +1129,8 @@ category.items = Предмети category.crafting = Виробництво category.function = Функціонал category.optional = Додаткові поліпшення +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Пропустити запуск ядра та анімацію приземлення setting.landscape.name = Тільки альбомний (горизонтальний) режим setting.shadows.name = Тіні diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties index 3f5fe3a96e..7c03a68890 100644 --- a/core/assets/bundles/bundle_vi.properties +++ b/core/assets/bundles/bundle_vi.properties @@ -1136,6 +1136,8 @@ category.items = Vật phẩm category.crafting = Đầu vào/ra category.function = Chức năng category.optional = Cải tiến tùy chọn +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = Bỏ qua hiệu ứng phóng/đáp lõi setting.landscape.name = Khóa ngang setting.shadows.name = Đổ bóng diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index c992777b21..f5e11ba156 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -1131,6 +1131,8 @@ category.items = 物品 category.crafting = 输入/输出 category.function = 功能 category.optional = 强化(可选) +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = 跳过核心发射与着陆动画 setting.landscape.name = 锁定横屏 setting.shadows.name = 影子 diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 85241920e8..26f5bf7575 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -1126,6 +1126,8 @@ category.items = 物品 category.crafting = 需求 category.function = 功能 category.optional = 額外的強化效果 +setting.alwaysmusic.name = Always Play Music +setting.alwaysmusic.description = When enabled, music will always play on loop in-game.\nWhen disabled, it only plays at random intervals. setting.skipcoreanimation.name = 跳過核心發射/降落動畫 setting.landscape.name = 鎖定水平畫面 setting.shadows.name = 陰影 From e78bbb5fc29ba4f23a4be02c414fac29880ed6ea Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 5 Jul 2024 22:05:03 -0400 Subject: [PATCH 20/21] testing builds From 62df1e321d7d6d75ac7249965d51e3e114713a19 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 5 Jul 2024 23:35:06 -0400 Subject: [PATCH 21/21] Fixed tests --- tests/src/test/java/power/PowerTests.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/src/test/java/power/PowerTests.java b/tests/src/test/java/power/PowerTests.java index 33b452efcd..a68930655c 100644 --- a/tests/src/test/java/power/PowerTests.java +++ b/tests/src/test/java/power/PowerTests.java @@ -4,6 +4,7 @@ import arc.math.*; import arc.util.*; import mindustry.*; import mindustry.core.*; +import mindustry.gen.*; import mindustry.world.*; import mindustry.world.blocks.power.PowerGenerator.*; import mindustry.world.blocks.power.*; @@ -59,6 +60,8 @@ public class PowerTests extends PowerTestFixture{ powerGraph.add(producerTile.build); powerGraph.add(directConsumerTile.build); + for(Building build : powerGraph.all) build.updateConsumption(); + assertEquals(producedPower * Time.delta, powerGraph.getPowerProduced(), Mathf.FLOAT_ROUNDING_ERROR); assertEquals(requiredPower * Time.delta, powerGraph.getPowerNeeded(), Mathf.FLOAT_ROUNDING_ERROR); @@ -106,7 +109,10 @@ public class PowerTests extends PowerTestFixture{ powerGraph.add(batteryTile.build); + for(Building build : powerGraph.all) build.updateConsumption(); + powerGraph.update(); + assertEquals(expectedBatteryCapacity / maxCapacity, batteryTile.build.power.status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Expected battery status did not match"); if(directConsumerTile != null){ assertEquals(expectedSatisfaction, directConsumerTile.build.power.status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match");