Merge branch 'mod-dependencies' of https://github.com/MEEPofFaith/Mindustry into MEEPofFaith-mod-dependencies

This commit is contained in:
Anuken
2025-02-10 16:31:56 -05:00
38 changed files with 173 additions and 47 deletions

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content. mod.errors = Errors have occurred loading content.
mod.noerrorplay = [red]You have mods with errors.[] Either disable the affected mods or fix the errors before playing. mod.noerrorplay = [red]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [red]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes. mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [red]Restart Required mod.reloadrequired = [red]Restart Required
@@ -184,6 +183,16 @@ mod.preview.missing = Before publishing this mod in the workshop, you must add a
mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods.
mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game. mod.scripts.disable = Your device does not support mods with scripts. You must disable these mods to play the game.
mod.dependencies.error = [scarlet]Mods are missing dependencies
mod.dependencies.soft = (optional)
mod.dependencies.download = Import
mod.dependencies.downloadreq = Import Required
mod.dependencies.downloadall = Import All
mod.dependencies.status = Import Results
mod.dependencies.success = Successfully downloaded:
mod.dependencies.failure = Failed to download:
mod.dependencies.imported = This mod requires dependencies. Download?
about.button = About about.button = About
name = Name: name = Name:
noname = Pick a[accent] player name[] first. noname = Pick a[accent] player name[] first.

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = Гэтая мадыфікацыя не мо
mod.requiresversion = Патрабуецца версія гульні: [red]{0} mod.requiresversion = Патрабуецца версія гульні: [red]{0}
mod.errors = Памылкі былі выкліканыя загружаным змесцівам. mod.errors = Памылкі былі выкліканыя загружаным змесцівам.
mod.noerrorplay = [scarlet]У Вас ёсць мадыфікацыі з памылкамі.[] Выключыце праблемныя мадыфікацыі або выпраўце памылкі перад гульнёй. mod.noerrorplay = [scarlet]У Вас ёсць мадыфікацыі з памылкамі.[] Выключыце праблемныя мадыфікацыі або выпраўце памылкі перад гульнёй.
mod.nowdisabled = [scarlet]Мадыфікацыі '{0}' патрабуюцца бацькоўскія мадыфікацыі:[accent] {1}\n[lightgray]Спачатку трэба загрузіць іх.\nГэтая мадыфікацыя будзе аўтаматычна адключаная.
mod.enable = Укл. mod.enable = Укл.
mod.requiresrestart = Цяпер гульня зачыніцца, каб прымяніць змены ў мадыфікацыях. mod.requiresrestart = Цяпер гульня зачыніцца, каб прымяніць змены ў мадыфікацыях.
mod.reloadrequired = [scarlet]Неабходны перазапуск mod.reloadrequired = [scarlet]Неабходны перазапуск

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = Тази модификация не мож
mod.requiresversion = Нужна е версия на играта: [red]{0} mod.requiresversion = Нужна е версия на играта: [red]{0}
mod.errors = Възникнаха грешки при зареждане на съдържанието. mod.errors = Възникнаха грешки при зареждане на съдържанието.
mod.noerrorplay = [scarlet]Има грешки в някои от модовете, които използвате.[] Трябва да деактивирате тези модове или да поправите грешките преди да играете. mod.noerrorplay = [scarlet]Има грешки в някои от модовете, които използвате.[] Трябва да деактивирате тези модове или да поправите грешките преди да играете.
mod.nowdisabled = [scarlet]Липсват зависимости за мод '{0}':[accent] {1}\n[lightgray]Мод {0} ще бъде деактивиран докато не ги изтеглите.
mod.enable = Активирай mod.enable = Активирай
mod.requiresrestart = Играта ще се затвори за да приложи промените в модовете. mod.requiresrestart = Играта ще се затвори за да приложи промените в модовете.
mod.reloadrequired = [scarlet]Необходимо е рестартиране mod.reloadrequired = [scarlet]Необходимо е рестартиране

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té u
mod.requiresversion = Cal la versió [red]{0}[] del joc. mod.requiresversion = Cal la versió [red]{0}[] del joc.
mod.errors = Shan produït errors quan es carregava el contingut. mod.errors = Shan produït errors quan es carregava el contingut.
mod.noerrorplay = [scarlet]Sexecuten mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar. mod.noerrorplay = [scarlet]Sexecuten mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar.
mod.nowdisabled = [scarlet]Falten dependències del mod «{0}»s:[accent] {1}\n[lightgray]Shan de carregar els mods que fan falta.\nAquest mod es desactivarà automàticament.
mod.enable = Activa mod.enable = Activa
mod.requiresrestart = El programa es tancarà per a aplicar els canvis. mod.requiresrestart = El programa es tancarà per a aplicar els canvis.
mod.reloadrequired = [scarlet]Cal reiniciar mod.reloadrequired = [scarlet]Cal reiniciar

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Vyžaduje verzi hry: [red]{0} mod.requiresversion = Vyžaduje verzi hry: [red]{0}
mod.errors = Při načítání obsahu hry se vyskytly problémy. mod.errors = Při načítání obsahu hry se vyskytly problémy.
mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát. mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát.
mod.nowdisabled = [scarlet]Modifikaci '{0}' chybí tyto závislosti: [accent]{1}\n[lightgray]Tyto modifikace je třeba nejprve stáhnout.\nTato modifikace bude nyní automaticky zakázána.
mod.enable = Povolit mod.enable = Povolit
mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace. mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace.
mod.reloadrequired = [scarlet]Je vyžadováno znovuspuštění hry. mod.reloadrequired = [scarlet]Je vyžadováno znovuspuštění hry.

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Fejl ved afhentning af indhold. mod.errors = Fejl ved afhentning af indhold.
mod.noerrorplay = [scarlet]Du har mods med fejl.[] Deaktiver det eller løs fejl før du starter spillet. mod.noerrorplay = [scarlet]Du har mods med fejl.[] Deaktiver det eller løs fejl før du starter spillet.
mod.nowdisabled = [scarlet]Mod '{0}' mangler afhængigheder:[accent] {1}\n[lightgray]Disse mods skal hentes først.\nDenne mod vil blive deaktiveret automatisk.
mod.enable = Aktiver mod.enable = Aktiver
mod.requiresrestart = Spillet vil nu lukke for at tilføje mod ændringerne mod.requiresrestart = Spillet vil nu lukke for at tilføje mod ændringerne
mod.reloadrequired = [scarlet]Genindlæsning påkrævet mod.reloadrequired = [scarlet]Genindlæsning påkrævet

View File

@@ -167,7 +167,6 @@ mod.requiresversion = Benötigt Spielversion: [red]{0}
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten. mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
mod.noerrorplay = [red]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst. mod.noerrorplay = [red]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst.
mod.nowdisabled = [red]Mod '{0}' fehlen Abhängigkeiten:[accent] {1}\n[lightgray]Diese Mods müssen erst installiert werden.\nDieser Mod wird automatisch deaktiviert.
mod.enable = Aktivieren mod.enable = Aktivieren
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden. mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
mod.reloadrequired = [red]Neuladen benötigt mod.reloadrequired = [red]Neuladen benötigt

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = Este mod no se puede cargar debido a depend
mod.requiresversion = Requiere la versión del juego: [red]{0} mod.requiresversion = Requiere la versión del juego: [red]{0}
mod.errors = Ha ocurrido un fallo al cargar el contenido. mod.errors = Ha ocurrido un fallo al cargar el contenido.
mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Debes deshabilitarlos o arreglar los errores antes de jugar. mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Debes deshabilitarlos o arreglar los errores antes de jugar.
mod.nowdisabled = [scarlet]El mod '{0}' necesita ejecutarse junto a otros mods de los que depende:[accent] {1}\n[lightgray]Es necesario descargar primero estos mods.\nEste mod se desactivará automaticamente.
mod.enable = Activar mod.enable = Activar
mod.requiresrestart = El juego se cerrará para aplicar los cambios del mod. mod.requiresrestart = El juego se cerrará para aplicar los cambios del mod.
mod.reloadrequired = [scarlet]Es necesario reiniciar mod.reloadrequired = [scarlet]Es necesario reiniciar

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content. mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing. mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes. mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required mod.reloadrequired = [scarlet]Reload Required

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Erroreak gertatu dira edukia kargatzean. mod.errors = Erroreak gertatu dira edukia kargatzean.
mod.noerrorplay = [scarlet]Erroreak dituzten mod-ak dituzu.[] Desgaitu kaltetutako mod-ak edo konpondu erroreak jolastu aurretik. mod.noerrorplay = [scarlet]Erroreak dituzten mod-ak dituzu.[] Desgaitu kaltetutako mod-ak edo konpondu erroreak jolastu aurretik.
mod.nowdisabled = [scarlet]'{0}' mod-ak menpekotasunak ditu faltan:[accent] {1}\n[lightgray]Aurretik beste mod hauek deskargatu behar dira.\nMod hau automatikoki desgaituko da.
mod.enable = Gaitu mod.enable = Gaitu
mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko. mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko.
mod.reloadrequired = [scarlet]Birkargatu behar da mod.reloadrequired = [scarlet]Birkargatu behar da

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Virheitä on tapahtunut pelin ladatessa. mod.errors = Virheitä on tapahtunut pelin ladatessa.
mod.noerrorplay = [scarlet]Sinulla on virheellisiä modeja.[] Joko poista ne käytöstä tai korjaa virheet. mod.noerrorplay = [scarlet]Sinulla on virheellisiä modeja.[] Joko poista ne käytöstä tai korjaa virheet.
mod.nowdisabled = [scarlet]Lisäosa '{0}' tarvitsee muita lisäosia toimiakseen:[accent] {1}\n[lightgray]Nämä lisäosat täytyy asentaa ensin.\nTämä lisäosa poistetaan automaattisesti käytöstä.
mod.enable = Käytä mod.enable = Käytä
mod.requiresrestart = Peli suljetaan jotta muutokset voisivat toteutua. mod.requiresrestart = Peli suljetaan jotta muutokset voisivat toteutua.
mod.reloadrequired = [scarlet]Vaatii Uudelleenkäynnistystä mod.reloadrequired = [scarlet]Vaatii Uudelleenkäynnistystä

View File

@@ -163,7 +163,6 @@ mod.requiresversion = Nangangailangan ng bersyon ng laro: [red]{0}
mod.errors = May mga error na naitala habang ni-lo-load ang nilalaman. mod.errors = May mga error na naitala habang ni-lo-load ang nilalaman.
mod.noerrorplay = [scarlet]May mga mod kang may error.[] Maaaring 'wag munang paganahin ang mga apektadong mod o 'di kaya'y ayusin ang mga error bago maglaro. mod.noerrorplay = [scarlet]May mga mod kang may error.[] Maaaring 'wag munang paganahin ang mga apektadong mod o 'di kaya'y ayusin ang mga error bago maglaro.
mod.nowdisabled = [scarlet]Ang mod na '{0}' ay ma kulang na mga dependency:[accent] {1}\n[lightgray]Ang mga ito'y kinakailangang i-download muna.\nAng mod na'to ay kusang 'di papaganahin.
mod.enable = Paganahin mod.enable = Paganahin
mod.requiresrestart = Ang laro'y magsasara upang mai-apply ang mga pagbabago sa mod. mod.requiresrestart = Ang laro'y magsasara upang mai-apply ang mga pagbabago sa mod.
mod.reloadrequired = [scarlet]Kinakalingang I-restart mod.reloadrequired = [scarlet]Kinakalingang I-restart

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Requiert la version: [red]{0}
mod.errors = Des erreurs se sont produites lors du chargement du contenu. mod.errors = Des erreurs se sont produites lors du chargement du contenu.
mod.noerrorplay = [scarlet]Vous avez des mods avec des erreurs.[] Désactivez les mods concernés ou corrigez les erreurs avant de jouer. mod.noerrorplay = [scarlet]Vous avez des mods avec des erreurs.[] Désactivez les mods concernés ou corrigez les erreurs avant de jouer.
mod.nowdisabled = [scarlet]Le mod '{0}' a des dépendances manquantes: [accent]{1}\n[lightgray]Ces mods doivent d'abord être téléchargés.\nCe mod sera automatiquement désactivé.
mod.enable = Activer mod.enable = Activer
mod.requiresrestart = Le jeu va maintenant se fermer pour appliquer les modifications du mod. mod.requiresrestart = Le jeu va maintenant se fermer pour appliquer les modifications du mod.
mod.reloadrequired = [scarlet]Redémarrage requis mod.reloadrequired = [scarlet]Redémarrage requis

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Szükséges játékverzió: [red]{0}[]
mod.errors = Hiba történt a tartalom betöltése közben. mod.errors = Hiba történt a tartalom betöltése közben.
mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt. mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt.
mod.nowdisabled = [red]A(z) „{0}” modnak nincs megfelelő függősége:[accent] {1}\n[lightgray]Ezeket előbb le kell tölteni.\nEz a mod automatikusan ki lesz kapcsolva.
mod.enable = Engedélyezés mod.enable = Engedélyezés
mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor. mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor.
mod.reloadrequired = [red]Újraindítás szükséges mod.reloadrequired = [red]Újraindítás szükséges

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Membutuhkan versi game: [red]{0}
mod.errors = Terjadi kesalahan saat memuat konten. mod.errors = Terjadi kesalahan saat memuat konten.
mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain. mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain.
mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki dependensi:[accent] {1}\n[lightgray]Mod ini harus diunduh terlebih dahulu.\nMod ini akan dinonaktifkan secara otomatis.
mod.enable = Aktifkan mod.enable = Aktifkan
mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod. mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod.
mod.reloadrequired = [scarlet]Mulai Ulang Dibutuhkan mod.reloadrequired = [scarlet]Mulai Ulang Dibutuhkan

View File

@@ -162,7 +162,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Si sono verificati degli errori durante il caricamento del contenuto. mod.errors = Si sono verificati degli errori durante il caricamento del contenuto.
mod.noerrorplay = [scarlet]Sono presenti delle mod con errori.[] Puoi disabilitare le mod affette oppure sistemarle prima di giocare. mod.noerrorplay = [scarlet]Sono presenti delle mod con errori.[] Puoi disabilitare le mod affette oppure sistemarle prima di giocare.
mod.nowdisabled = [scarlet]Alla mod '{0}' mancano delle dipendenze:[accent] {1}\n[lightgray]Queste mod devono essere scaricate prima.\nQuesta mod verrà disabilitata automaticamente.
mod.enable = Abilita mod.enable = Abilita
mod.requiresrestart = Il gioco verrà chiuso per applicare i cambiamenti. mod.requiresrestart = Il gioco verrà chiuso per applicare i cambiamenti.
mod.reloadrequired = [scarlet]Riavvio necessario mod.reloadrequired = [scarlet]Riavvio necessario

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = 依存関係が無効または欠損して
mod.requiresversion = ゲームのバージョンが必要です: [red]{0} mod.requiresversion = ゲームのバージョンが必要です: [red]{0}
mod.errors = コンテンツの読み込み中にエラーが発生しました。 mod.errors = コンテンツの読み込み中にエラーが発生しました。
mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。 mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。
mod.nowdisabled = [scarlet]{0} 依存関係がありません。:[accent] {1}\n[lightgray]これらのModをダウンロードし有効化する必要があります。\nなお、このModは自動的に無効化されます。
mod.enable = 有効化 mod.enable = 有効化
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。 mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。 mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。

View File

@@ -168,7 +168,6 @@ mod.requiresversion = 필요한 게임 버전: [red]{0}
mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함 mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함
mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요. mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요.
mod.nowdisabled = [scarlet]모드 '{0}'에 필요한 종속성이 없습니다:[accent] {1}\n[lightgray]이 모드를 먼저 내려받아야 합니다.\n이 모드는 자동으로 비활성화됩니다.
mod.enable = 활성화 mod.enable = 활성화
mod.requiresrestart = 모드 변경 사항을 적용하기 위해 게임을 종료합니다. mod.requiresrestart = 모드 변경 사항을 적용하기 위해 게임을 종료합니다.
mod.reloadrequired = [scarlet]재시작 필요 mod.reloadrequired = [scarlet]재시작 필요

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = Šios modifikacijos negalima užkrauti dėl
mod.requiresversion = Reikia žaidimo versijos: [red]{0} mod.requiresversion = Reikia žaidimo versijos: [red]{0}
mod.errors = Įvyko klaida kraunant turinį. mod.errors = Įvyko klaida kraunant turinį.
mod.noerrorplay = [scarlet]Turite modifikacijas su klaidomis.[] Išjunkite modifikacijas su klaidomis arba patasykite jas prieš žaidžiant. mod.noerrorplay = [scarlet]Turite modifikacijas su klaidomis.[] Išjunkite modifikacijas su klaidomis arba patasykite jas prieš žaidžiant.
mod.nowdisabled = [scarlet]Modifikacijai '{0}' trūksta priklausomybių:[accent] {1}\n[lightgray] Šios modifikacijos turi būti atsisiųstos.\nŠi modifikacija bus automatiškai išjungta.
mod.enable = Įjungti mod.enable = Įjungti
mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų perkrovimui. mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų perkrovimui.
mod.reloadrequired = [scarlet]Privalomas perkrovimas mod.reloadrequired = [scarlet]Privalomas perkrovimas

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Vereist spelversie: [red]{0}
mod.errors = Er hebben zich fouten voordaan tijdens het laden van de inhoud. mod.errors = Er hebben zich fouten voordaan tijdens het laden van de inhoud.
mod.noerrorplay = [red]Je mods bevatten fouten.[] Zet de mods uit of los de problemen op voordat je verder gaat met spelen. mod.noerrorplay = [red]Je mods bevatten fouten.[] Zet de mods uit of los de problemen op voordat je verder gaat met spelen.
mod.nowdisabled = [red]Mod '{0}' mist een aantal benodigdheden:[accent] {1}\n[lightgray]Deze moet je eerst zelf downloaden.\nDeze mod is nu voor je uitgezet.
mod.enable = Activeer mod.enable = Activeer
mod.requiresrestart = Het spel zal nu afsluiten om de veranderingen aan de mods door te voeren. mod.requiresrestart = Het spel zal nu afsluiten om de veranderingen aan de mods door te voeren.
mod.reloadrequired = [scarlet]Herstart Vereist mod.reloadrequired = [scarlet]Herstart Vereist

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content. mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing. mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]De volgende vereisten ontbreken voor mod '{0}':[accent] {1}\n[lightgray]Deze mods moeten eerst gedownload worden.\nDeze mod wordt automatisch uitgeschakeld.
mod.enable = Schakel in mod.enable = Schakel in
mod.requiresrestart = The game will now close to apply the mod changes. mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Herladen Vereist mod.reloadrequired = [scarlet]Herladen Vereist

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = Moda nie da się załadować z powodu niepo
mod.requiresversion = Wymagana wersja gry: [red]{0} mod.requiresversion = Wymagana wersja gry: [red]{0}
mod.errors = Wystąpił błąd podczas ładowania treści. mod.errors = Wystąpił błąd podczas ładowania treści.
mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry. mod.noerrorplay = [scarlet]Twoje mody zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony.
mod.enable = Włącz mod.enable = Włącz
mod.requiresrestart = Gra zostanie wyłączona aby wprowadzić zmiany w modzie. mod.requiresrestart = Gra zostanie wyłączona aby wprowadzić zmiany w modzie.
mod.reloadrequired = [scarlet]Wymagany restart mod.reloadrequired = [scarlet]Wymagany restart

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Requer a versão do jogo: [red]{0}
mod.errors = Ocorreram erros ao carregar o conteúdo. mod.errors = Ocorreram erros ao carregar o conteúdo.
mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar. mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar.
mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes:[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente.
mod.enable = Ativar mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod. mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
mod.reloadrequired = [scarlet]Recarregamento Necessário mod.reloadrequired = [scarlet]Recarregamento Necessário

View File

@@ -163,7 +163,6 @@ mod.incompletedependencies.details = Este mod não pôde ser carregado devido a
mod.requiresversion = Requer a versão do jogo: [red]{0} mod.requiresversion = Requer a versão do jogo: [red]{0}
mod.errors = Ocorreram erros ao carregar o conteúdo. mod.errors = Ocorreram erros ao carregar o conteúdo.
mod.noerrorplay = [scarlet]Tens mods com erros.[] Desativa os mods afetados ou corrije os erros antes de jogar. mod.noerrorplay = [scarlet]Tens mods com erros.[] Desativa os mods afetados ou corrije os erros antes de jogar.
mod.nowdisabled = [scarlet]Mod '{0}' tem dependências em falta:[accent] {1}\n[lightgray]Estes mods precisam de ser baixados primeiro. Este mod será automaticamente desativado
mod.enable = Ativar mod.enable = Ativar
mod.requiresrestart = O jogo irá fechar para aplicar as alterações do mod. mod.requiresrestart = O jogo irá fechar para aplicar as alterações do mod.
mod.reloadrequired = [scarlet]É necessario recarregar mod.reloadrequired = [scarlet]É necessario recarregar

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Au apărut erori la încărcarea conținutului. mod.errors = Au apărut erori la încărcarea conținutului.
mod.noerrorplay = [scarlet]Modurile tale au erori.[] Dezactivează modurile afectate sau repară erorile înainte să joci. mod.noerrorplay = [scarlet]Modurile tale au erori.[] Dezactivează modurile afectate sau repară erorile înainte să joci.
mod.nowdisabled = [scarlet]Modul '{0}' are dependențe lipsă:[accent] {1}\n[lightgray]Mai întâi trebuie să descarci aceste moduri.\nAcest mod va fi dezactivat automat.
mod.enable = Activează mod.enable = Activează
mod.requiresrestart = Jocul se va închide acum pt a aplica modificările modurilor. mod.requiresrestart = Jocul se va închide acum pt a aplica modificările modurilor.
mod.reloadrequired = [scarlet]E Nevoie de o Repornire mod.reloadrequired = [scarlet]E Nevoie de o Repornire

View File

@@ -165,7 +165,6 @@ mod.incompletedependencies.details = Этот мод не может быть з
mod.requiresversion = Требуется версия игры: [red]{0} mod.requiresversion = Требуется версия игры: [red]{0}
mod.errors = Ошибки были вызваны загружаемым содержимым. mod.errors = Ошибки были вызваны загружаемым содержимым.
mod.noerrorplay = [scarlet]У Вас есть модификации с ошибками.[] Выключите проблемные модификации или исправьте ошибки перед игрой. mod.noerrorplay = [scarlet]У Вас есть модификации с ошибками.[] Выключите проблемные модификации или исправьте ошибки перед игрой.
mod.nowdisabled = [scarlet]Модификации '{0}' требуются родительские модификации:[accent] {1}\n[lightgray]Сначала нужно загрузить их.\nЭта модификация будет автоматически отключена.
mod.enable = Вкл. mod.enable = Вкл.
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях. mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
mod.reloadrequired = [scarlet]Необходим перезапуск mod.reloadrequired = [scarlet]Необходим перезапуск

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Greške su nastale tokom učitavanja sadržaja. mod.errors = Greške su nastale tokom učitavanja sadržaja.
mod.noerrorplay = [scarlet]Imate modove sa greškama.[] Onemogućite te modove, ili ispravite greške. mod.noerrorplay = [scarlet]Imate modove sa greškama.[] Onemogućite te modove, ili ispravite greške.
mod.nowdisabled = [scarlet]Mod '{0}'nema potrebne zavisne modove:[accent] {1}\n[lightgray]Ove modove treba instalirati prvo.\nMod se automatski onemogućava.
mod.enable = Omogući mod.enable = Omogući
mod.requiresrestart = Igra će se zatvoriti da ažurira modove. mod.requiresrestart = Igra će se zatvoriti da ažurira modove.
mod.reloadrequired = [scarlet]Ponovno pokretanje potrebno mod.reloadrequired = [scarlet]Ponovno pokretanje potrebno

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Fel har inträffat under laddning av innehåll. mod.errors = Fel har inträffat under laddning av innehåll.
mod.noerrorplay = [scarlet]Du har moddar med fel.[] Stäng antingen av de drabbade moddarna eller fixa felen innan du spelar. mod.noerrorplay = [scarlet]Du har moddar med fel.[] Stäng antingen av de drabbade moddarna eller fixa felen innan du spelar.
mod.nowdisabled = [scarlet]Mod '{0}' saknar beroenden:[accent] {1}\n[lightgray]Dessa mods måste laddas ned först.\nDetta mod kommer att inaktiveras automatiskt.
mod.enable = Aktivera mod.enable = Aktivera
mod.requiresrestart = Spelet kommer nu att stängas av för att tillämpa mod ändringarna. mod.requiresrestart = Spelet kommer nu att stängas av för att tillämpa mod ändringarna.
mod.reloadrequired = [scarlet]Omstart krävs mod.reloadrequired = [scarlet]Omstart krävs

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = ม็อดนี้ไม่สามา
mod.requiresversion = ต้องการเวอร์ชั่นเกม: [red]{0} mod.requiresversion = ต้องการเวอร์ชั่นเกม: [red]{0}
mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่างโหลดเนื้อหา mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่างโหลดเนื้อหา
mod.noerrorplay = [scarlet]คุณมีม็อดที่มีข้อผิดพลาด[] กรุณาปิดม็อดนั้นๆ หรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น mod.noerrorplay = [scarlet]คุณมีม็อดที่มีข้อผิดพลาด[] กรุณาปิดม็อดนั้นๆ หรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น
mod.nowdisabled = [scarlet]ม็อด '{0}' ขาดม็อดพื่งพา:[accent] {1}\n[lightgray]จำเป็นต้องโหลดม็อดพวกนี้ก่อน\nม็อดนี้จะถูกปิดใช้งานโดยอัตโนมัติ
mod.enable = เปิดใช้งาน mod.enable = เปิดใช้งาน
mod.requiresrestart = เกมจะปิดตัวลงเพื่อติดตั้งม็อด mod.requiresrestart = เกมจะปิดตัวลงเพื่อติดตั้งม็อด
mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด mod.reloadrequired = [scarlet]จำเป็นต้องรีโหลด

View File

@@ -161,7 +161,6 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
mod.requiresversion = Requires game version: [red]{0} mod.requiresversion = Requires game version: [red]{0}
mod.errors = Errors have occurred loading content. mod.errors = Errors have occurred loading content.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing. mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Enable mod.enable = Enable
mod.requiresrestart = The game will now close to apply the mod changes. mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Reload Required mod.reloadrequired = [scarlet]Reload Required

View File

@@ -164,7 +164,6 @@ mod.incompletedependencies.details = Eksik veya yanlış bağlılıklardan dolay
mod.requiresversion = Şu oyun sürümü gerekiyor: [red]{0} mod.requiresversion = Şu oyun sürümü gerekiyor: [red]{0}
mod.errors = İçerik yüklenirken bir hata oluştu. mod.errors = İçerik yüklenirken bir hata oluştu.
mod.noerrorplay = [scarlet]Hatalı modlarınız var.[] Oynamadan önce bu modları devre dışı bırakın veya dosyadaki hataları düzeltin. mod.noerrorplay = [scarlet]Hatalı modlarınız var.[] Oynamadan önce bu modları devre dışı bırakın veya dosyadaki hataları düzeltin.
mod.nowdisabled = [scarlet]'{0}' modunun çalışması için gerekli olan modlardan bazıları bulunamadı:[accent] {1}\n[lightgray]Önce bu modların indirilmesi gerekmektedir.\nBu mod otomatik olarak devre dışı bırakılacaktır.
mod.enable = Etkinleştir mod.enable = Etkinleştir
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak. mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli

View File

@@ -166,7 +166,6 @@ mod.incompletedependencies.details = Цей мод неможливо заван
mod.requiresversion = Необхідна версія гри: [red]{0} mod.requiresversion = Необхідна версія гри: [red]{0}
mod.errors = Виникли помилки під час завантаження змісту. mod.errors = Виникли помилки під час завантаження змісту.
mod.noerrorplay = [red]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх. mod.noerrorplay = [red]Ви маєте модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх.
mod.nowdisabled = [red]Модифікації «{0}» не вистачає залежних модифікацій:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буде автоматично вимкнена.
mod.enable = Увімкнути mod.enable = Увімкнути
mod.requiresrestart = А тепер гра закриється, щоби застосувати зміни модифікацій. mod.requiresrestart = А тепер гра закриється, щоби застосувати зміни модифікацій.
mod.reloadrequired = [red]Потрібно перезавантаження mod.reloadrequired = [red]Потрібно перезавантаження

View File

@@ -168,7 +168,6 @@ mod.requiresversion = Yêu cầu phiên bản trò chơi: [red]{0}
mod.errors = Đã xảy ra lỗi khi tải nội dung. mod.errors = Đã xảy ra lỗi khi tải nội dung.
mod.noerrorplay = [red]Bạn có mod bị lỗi.[] Tắt các mod bị ảnh hưởng hoặc sửa các lỗi trước khi chơi. mod.noerrorplay = [red]Bạn có mod bị lỗi.[] Tắt các mod bị ảnh hưởng hoặc sửa các lỗi trước khi chơi.
mod.nowdisabled = [red]Mod '{0}' thiếu phụ thuộc:[accent] {1}\n[lightgray]Bạn cần tải các mod này xuống trước.\nBản mod này sẽ tự động tắt.
mod.enable = Bật mod.enable = Bật
mod.requiresrestart = Trò chơi sẽ đóng để áp dụng các thay đổi của mod. mod.requiresrestart = Trò chơi sẽ đóng để áp dụng các thay đổi của mod.
mod.reloadrequired = [scarlet]Yêu cầu khởi động lại mod.reloadrequired = [scarlet]Yêu cầu khởi động lại

View File

@@ -167,7 +167,6 @@ mod.requiresversion = 需要游戏版本: [red]{0}
mod.errors = 读取内容时发生错误。 mod.errors = 读取内容时发生错误。
mod.noerrorplay = [scarlet]您的模组发生了错误。 []禁用相关模组或修复错误后才能进入游戏。 mod.noerrorplay = [scarlet]您的模组发生了错误。 []禁用相关模组或修复错误后才能进入游戏。
mod.nowdisabled = [scarlet]“{0}”模组缺少依赖的其他模组:[accent]{1}\n[lightgray]需要先下载上述模组。 \n此模组现在将被自动禁用。
mod.enable = 启用 mod.enable = 启用
mod.requiresrestart = 游戏将退出以应用模组修改。 mod.requiresrestart = 游戏将退出以应用模组修改。
mod.reloadrequired = [scarlet]需要重启 mod.reloadrequired = [scarlet]需要重启

View File

@@ -165,7 +165,6 @@ mod.incompletedependencies.details = 由於無效或缺失的依賴項,此模
mod.requiresversion = 需要遊戲版本:[red]{0} mod.requiresversion = 需要遊戲版本:[red]{0}
mod.errors = 載入內容時發生錯誤 mod.errors = 載入內容時發生錯誤
mod.noerrorplay = [scarlet]您使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。 mod.noerrorplay = [scarlet]您使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。
mod.nowdisabled = [scarlet]「{0}」模組缺少依賴關係:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動停用。
mod.enable = 啟用 mod.enable = 啟用
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。 mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
mod.reloadrequired = [scarlet]需要重新載入 mod.reloadrequired = [scarlet]需要重新載入

View File

@@ -2,7 +2,7 @@ package mindustry.mod;
/** Mod listing as a data class. */ /** Mod listing as a data class. */
public class ModListing{ public class ModListing{
public String repo, name, subtitle, author, lastUpdated, description, minGameVersion; public String repo, name, internalName, subtitle, author, lastUpdated, description, minGameVersion;
public boolean hasScripts, hasJava; public boolean hasScripts, hasJava;
public String[] contentTypes = {}; public String[] contentTypes = {};
public int stars; public int stars;
@@ -12,6 +12,7 @@ public class ModListing{
return "ModListing{" + return "ModListing{" +
"repo='" + repo + '\'' + "repo='" + repo + '\'' +
", name='" + name + '\'' + ", name='" + name + '\'' +
", internalName='" + internalName + '\'' +
", author='" + author + '\'' + ", author='" + author + '\'' +
", lastUpdated='" + lastUpdated + '\'' + ", lastUpdated='" + lastUpdated + '\'' +
", description='" + description + '\'' + ", description='" + description + '\'' +

View File

@@ -50,6 +50,7 @@ public class Mods implements Loadable{
private ModClassLoader mainLoader = new ModClassLoader(getClass().getClassLoader()); private ModClassLoader mainLoader = new ModClassLoader(getClass().getClassLoader());
Seq<LoadedMod> mods = new Seq<>(); Seq<LoadedMod> mods = new Seq<>();
private Seq<LoadedMod> newImports = new Seq<>();
private ObjectMap<Class<?>, ModMeta> metas = new ObjectMap<>(); private ObjectMap<Class<?>, ModMeta> metas = new ObjectMap<>();
private boolean requiresReload; private boolean requiresReload;
@@ -117,6 +118,7 @@ public class Mods implements Loadable{
var loaded = loadMod(dest, true, true); var loaded = loadMod(dest, true, true);
mods.add(loaded); mods.add(loaded);
newImports.add(loaded);
//invalidate ordered mods cache //invalidate ordered mods cache
lastOrderedMods = null; lastOrderedMods = null;
requiresReload = true; requiresReload = true;
@@ -428,6 +430,7 @@ public class Mods implements Loadable{
return; return;
} }
mods.remove(mod); mods.remove(mod);
newImports.remove(mod);
mod.dispose(); mod.dispose();
if(mod.state != ModState.disabled){ if(mod.state != ModState.disabled){
requiresReload = true; requiresReload = true;
@@ -533,13 +536,20 @@ public class Mods implements Loadable{
private void updateDependencies(LoadedMod mod){ private void updateDependencies(LoadedMod mod){
mod.dependencies.clear(); mod.dependencies.clear();
mod.missingDependencies.clear(); mod.missingDependencies.clear();
mod.missingSoftDependencies.clear();
mod.dependencies = mod.meta.dependencies.map(this::locateMod); mod.dependencies = mod.meta.dependencies.map(this::locateMod);
mod.softDependencies = mod.meta.softDependencies.map(this::locateMod);
for(int i = 0; i < mod.dependencies.size; i++){ for(int i = 0; i < mod.dependencies.size; i++){
if(mod.dependencies.get(i) == null){ if(mod.dependencies.get(i) == null){
mod.missingDependencies.add(mod.meta.dependencies.get(i)); mod.missingDependencies.add(mod.meta.dependencies.get(i));
} }
} }
for(int i = 0; i < mod.softDependencies.size; i++){
if(mod.softDependencies.get(i) == null){
mod.missingSoftDependencies.add(mod.meta.softDependencies.get(i));
}
}
} }
/** @return mods ordered in the correct way needed for dependencies. */ /** @return mods ordered in the correct way needed for dependencies. */
@@ -611,14 +621,13 @@ public class Mods implements Loadable{
if(mods.contains(LoadedMod::hasContentErrors)){ if(mods.contains(LoadedMod::hasContentErrors)){
ui.loadfrag.hide(); ui.loadfrag.hide();
new Dialog(""){{ new Dialog(""){{
setFillParent(true); setFillParent(true);
cont.margin(15); cont.margin(15);
cont.add("@error.title"); cont.add("@error.title");
cont.row(); cont.row();
cont.image().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet); cont.image().width(300f).pad(2).colspan(2).height(4f).color(Color.scarlet);
cont.row(); cont.row();
cont.add("@mod.errors").wrap().growX().center().get().setAlignment(Align.center); cont.add("@mod.errors").wrap().growX().center().labelAlign(Align.center);
cont.row(); cont.row();
cont.pane(p -> { cont.pane(p -> {
mods.each(m -> m.enabled() && m.hasContentErrors(), m -> { mods.each(m -> m.enabled() && m.hasContentErrors(), m -> {
@@ -649,6 +658,140 @@ public class Mods implements Loadable{
cont.button("@ok", this::hide).size(300, 50); cont.button("@ok", this::hide).size(300, 50);
}}.show(); }}.show();
} }
//show list of missing dependencies
Seq<LoadedMod> toCheck = mods.select(mod -> mod.shouldBeEnabled() && mod.hasUnmetDependencies());
if(!toCheck.isEmpty()){
ui.loadfrag.hide();
checkDependencies(toCheck, false);
}
}
/** Assume mods in toCheck are missing dependencies. */
private void checkDependencies(Seq<LoadedMod> toCheck, boolean soft){
new Dialog(""){{
setFillParent(true);
cont.margin(15);
int span = soft ? 3 : 2;
cont.add("@mod.dependencies.error").colspan(span);
cont.row();
cont.image().width(300f).colspan(span).pad(2).height(4f).color(Color.scarlet);
cont.row();
cont.pane(p -> {
toCheck.each(mod -> {
p.add(mod.meta.displayName).wrap().growX().left().labelAlign(Align.left);
p.row();
p.table(d -> {
mod.missingDependencies.each(dep -> {
d.add(dep).wrap().growX().left().labelAlign(Align.left);
d.row();
});
if(soft){
mod.missingSoftDependencies.each(dep -> {
d.add(dep + " " + Core.bundle.get("mod.dependencies.soft")).wrap().growX().left().labelAlign(Align.left);
d.row();
});
}
}).growX().padBottom(8f).padLeft(12f);
p.row();
});
}).fillX().colspan(span);
cont.row();
cont.button("@cancel", this::hide).size(150, 50);
cont.button(soft ? "@mod.dependencies.downloadreq" : "@mod.dependencies.download", () -> {
hide();
Seq<String> toImport = new Seq<>();
toCheck.each(mod -> mod.missingDependencies.each(toImport::addUnique));
downloadDependencies(toImport);
}).size(150, 50);
if(soft){
cont.button("@mod.dependencies.downloadall", () -> {
hide();
Seq<String> toImport = new Seq<>();
toCheck.each(mod -> mod.missingDependencies.each(toImport::addUnique));
toCheck.each(mod -> mod.missingSoftDependencies.each(toImport::addUnique));
downloadDependencies(toImport);
}).size(150, 50);
}
}}.show();
}
private void downloadDependencies(Seq<String> toImport){
Seq<String> remaining = toImport.copy();
ui.mods.importDependencies(remaining, () -> {
toImport.removeAll(remaining);
if(toImport.any()) requiresReload = true;
displayDependencyImportStatus(remaining, toImport);
});
}
private void displayDependencyImportStatus(Seq<String> failed, Seq<String> success){
new Dialog(""){{
setFillParent(true);
cont.margin(15);
cont.add("@mod.dependencies.status").center();
cont.row();
cont.image().width(300f).pad(2).height(4f).color(Color.lightGray);
cont.row();
cont.pane(p -> {
if(success.any()){
p.add("@mod.dependencies.success").wrap().fillX().left().labelAlign(Align.left);
p.row();
p.table(t -> {
success.each(d -> {
t.add(d).wrap().growX().left().labelAlign(Align.left);
t.row();
});
}).growX().padBottom(8f).padLeft(12f);
p.row();
}
if(failed.any()){
p.add("@mod.dependencies.failure").wrap().fillX().left().labelAlign(Align.left);
p.row();
p.table(t -> {
failed.each(d -> {
t.add(d).wrap().growX().left().labelAlign(Align.left);
t.row();
});
}).growX().padBottom(8f).padLeft(12f);
}
}).fillX();
cont.row();
if(success.any()){
cont.image().width(300f).pad(2).height(4f).color(Color.lightGray);
cont.row();
cont.add("@mods.reloadexit").center();
cont.row();
hidden(() -> {
Log.info("Exiting to reload mods after dependency auto-import.");
Core.app.exit();
});
}
cont.button("@ok", this::hide).size(300, 50);
closeOnBack();
}}.show();
}
public void reload(){
newImports.each(this::updateDependencies);
newImports.remove(m -> m.missingDependencies.isEmpty() && m.softDependencies.isEmpty());
if(newImports.any()){
checkDependencies(newImports, newImports.contains(m -> m.softDependencies.any()));
}else{
ui.showInfoOnHidden("@mods.reloadexit", () -> {
Log.info("Exiting to reload mods.");
Core.app.exit();
});
}
} }
public boolean hasContentErrors(){ public boolean hasContentErrors(){
@@ -1074,8 +1217,12 @@ public class Mods implements Loadable{
public final ModMeta meta; public final ModMeta meta;
/** This mod's dependencies as already-loaded mods. */ /** This mod's dependencies as already-loaded mods. */
public Seq<LoadedMod> dependencies = new Seq<>(); public Seq<LoadedMod> dependencies = new Seq<>();
/** All missing dependencies of this mod as strings. */ /** This mod's soft dependencies as already-loaded mods. */
public Seq<LoadedMod> softDependencies = new Seq<>();
/** All missing required dependencies of this mod as strings. */
public Seq<String> missingDependencies = new Seq<>(); public Seq<String> missingDependencies = new Seq<>();
/** All missing soft dependencies of this mod as strings. */
public Seq<String> missingSoftDependencies = new Seq<>();
/** Content with initialization code. */ /** Content with initialization code. */
public ObjectSet<Content> erroredContent = new ObjectSet<>(); public ObjectSet<Content> erroredContent = new ObjectSet<>();
/** Current state of this mod. */ /** Current state of this mod. */

View File

@@ -94,7 +94,7 @@ public class ModsDialog extends BaseDialog{
hidden(() -> { hidden(() -> {
if(mods.requiresReload()){ if(mods.requiresReload()){
reload(); mods.reload();
} }
}); });
@@ -378,13 +378,6 @@ public class ModsDialog extends BaseDialog{
return null; return null;
} }
private void reload(){
ui.showInfoOnHidden("@mods.reloadexit", () -> {
Log.info("Exiting to reload mods.");
Core.app.exit();
});
}
private void showMod(LoadedMod mod){ private void showMod(LoadedMod mod){
BaseDialog dialog = new BaseDialog(mod.meta.displayName); BaseDialog dialog = new BaseDialog(mod.meta.displayName);
@@ -696,6 +689,16 @@ public class ModsDialog extends BaseDialog{
} }
} }
public void importDependencies(Seq<String> dependencies, Runnable done){
getModList(listings -> {
listings.each(l -> dependencies.contains(l.internalName), l -> {
dependencies.remove(l.internalName);
githubImportMod(l.repo, l.hasJava);
});
done.run();
});
}
private void githubImportJavaMod(String repo, @Nullable String release){ private void githubImportJavaMod(String repo, @Nullable String release){
//grab latest release //grab latest release
Http.get(ghApi + "/repos/" + repo + "/releases/" + (release == null ? "latest" : release), res -> { Http.get(ghApi + "/repos/" + repo + "/releases/" + (release == null ? "latest" : release), res -> {