mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-10-02 11:10:50 +03:00
Merge branch 'master' of https://github.com/Anuken/Mindustry into array-textures
# Conflicts: # core/src/mindustry/mod/DataImagePacker.java # gradle.properties
This commit is contained in:
@@ -31,6 +31,13 @@
|
|||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
|
<data android:scheme="mindustry"/>
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|||||||
@@ -1454,7 +1454,8 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Adapt interface to display notch
|
setting.macnotch.name = Adapt interface to display notch
|
||||||
setting.macnotch.description = Restart required to apply changes
|
setting.macnotch.description = Restart required to apply changes
|
||||||
steam.friendsonly = Friends Only
|
|
||||||
|
steam.friendsonly = Steam Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
setting.minmagnificationmultiplierpercent.name = Max Camera Distance
|
setting.minmagnificationmultiplierpercent.name = Max Camera Distance
|
||||||
@@ -2311,7 +2312,7 @@ ff.arc = :arc: [accent]Arc[] turrets require power to function. Research and pla
|
|||||||
fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[].
|
fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[].
|
||||||
fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units.
|
fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units.
|
||||||
|
|
||||||
frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Research and reconstruct\na []:dagger:[accent] dagger to a []:mace:[accent] mace.
|
frontier.tutorial1 = The :additive-reconstructor: [accent]Additive Reconstructor[]\nupgrades tier 1 units to tier 2\nusing :silicon: silicon and :graphite: graphite.\n\n[accent]Reconstruct a []:dagger:[accent] dagger\nto a []:mace:[accent] mace.
|
||||||
frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed.
|
frontier.tutorial2 = Enemy waves send [accent]infinitely[] until all enemy cores are [unlaunched]destroyed.
|
||||||
frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[].
|
frontier.tutorial3 = [accent]Attack the enemy base fast to prevent waves from getting too high[].
|
||||||
|
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Паказаць Анімацыю Надвор'я
|
|||||||
setting.hidedisplays.name = Схаваць Лагічныя экраны
|
setting.hidedisplays.name = Схаваць Лагічныя экраны
|
||||||
setting.macnotch.name = Адаптуйце інтэрфейс для адлюстравання выемкі
|
setting.macnotch.name = Адаптуйце інтэрфейс для адлюстравання выемкі
|
||||||
setting.macnotch.description = Каб змены ўжыліся патрабуецца перазапуск
|
setting.macnotch.description = Каб змены ўжыліся патрабуецца перазапуск
|
||||||
|
|
||||||
steam.friendsonly = Толькі сябры
|
steam.friendsonly = Толькі сябры
|
||||||
steam.friendsonly.tooltip = Толькі сябры з Steam моргуць зайсці у вашу гульню.\nУбярыце птушачку адсюль і гульня стане публічнай - Кожны зможа зайсці.
|
steam.friendsonly.tooltip = Толькі сябры з Steam моргуць зайсці у вашу гульню.\nУбярыце птушачку адсюль і гульня стане публічнай - Кожны зможа зайсці.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Мін. дыстанцыя камеры
|
setting.maxmagnificationmultiplierpercent.name = Мін. дыстанцыя камеры
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Показвай графики за климата
|
|||||||
setting.hidedisplays.name = Скрий логическите екрани
|
setting.hidedisplays.name = Скрий логическите екрани
|
||||||
setting.macnotch.name = Адаптирайте интерфейса за показване на прорез
|
setting.macnotch.name = Адаптирайте интерфейса за показване на прорез
|
||||||
setting.macnotch.description = За прилагане на промените е необходимо рестартиране
|
setting.macnotch.description = За прилагане на промените е необходимо рестартиране
|
||||||
|
|
||||||
steam.friendsonly = Само приятели
|
steam.friendsonly = Само приятели
|
||||||
steam.friendsonly.tooltip = Дали вашите приятели от Steam ще могат да се включат в играта ви.\nИзключването на тази опция ще направи играта Ви публична и всеки ще може да се присъедини.
|
steam.friendsonly.tooltip = Дали вашите приятели от Steam ще могат да се включат в играта ви.\nИзключването на тази опция ще направи играта Ви публична и всеки ще може да се присъедини.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Mostra l’estat meteorològic
|
|||||||
setting.hidedisplays.name = Amaga els monitors lògics
|
setting.hidedisplays.name = Amaga els monitors lògics
|
||||||
setting.macnotch.name = Adapta la interfície per a mostrar el notch
|
setting.macnotch.name = Adapta la interfície per a mostrar el notch
|
||||||
setting.macnotch.description = Cal reiniciar perquè s’apliquin els canvis
|
setting.macnotch.description = Cal reiniciar perquè s’apliquin els canvis
|
||||||
|
|
||||||
steam.friendsonly = Només amics
|
steam.friendsonly = Només amics
|
||||||
steam.friendsonly.tooltip = Indica si només els amics de Steam podran unir-se a la vostra partida.\nSi no es selecciona aquesta opció, la vostra partida serà pública i s’hi podrà unir qualsevol jugador.
|
steam.friendsonly.tooltip = Indica si només els amics de Steam podran unir-se a la vostra partida.\nSi no es selecciona aquesta opció, la vostra partida serà pública i s’hi podrà unir qualsevol jugador.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Distància mín. de la càmera
|
setting.maxmagnificationmultiplierpercent.name = Distància mín. de la càmera
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Zobrazit Grafiku Počasí
|
|||||||
setting.hidedisplays.name = Skrýt displeje logiky
|
setting.hidedisplays.name = Skrýt displeje logiky
|
||||||
setting.macnotch.name = Přizpůsobte rozhraní zobrazení zářezu
|
setting.macnotch.name = Přizpůsobte rozhraní zobrazení zářezu
|
||||||
setting.macnotch.description = Pro aplikování změn je potřeba restart
|
setting.macnotch.description = Pro aplikování změn je potřeba restart
|
||||||
|
|
||||||
steam.friendsonly = Pouze pro přátele
|
steam.friendsonly = Pouze pro přátele
|
||||||
steam.friendsonly.tooltip = Určuje, zda bude hra přístupná jen tvým přátelům na Steamu, nebo všem. Odškrtnutí udělá hru veřejnou - připojit se bude moci každý.
|
steam.friendsonly.tooltip = Určuje, zda bude hra přístupná jen tvým přátelům na Steamu, nebo všem. Odškrtnutí udělá hru veřejnou - připojit se bude moci každý.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Minimální vzdálenost kamery
|
setting.maxmagnificationmultiplierpercent.name = Minimální vzdálenost kamery
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Tilpas grænsefladen til at vise hak
|
setting.macnotch.name = Tilpas grænsefladen til at vise hak
|
||||||
setting.macnotch.description = Genstart påkrævet for at anvende ændringer
|
setting.macnotch.description = Genstart påkrævet for at anvende ændringer
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Wetter anzeigen
|
|||||||
setting.hidedisplays.name = Logik-Bildschirme verdecken
|
setting.hidedisplays.name = Logik-Bildschirme verdecken
|
||||||
setting.macnotch.name = Benutzeroberfläche an Aussparung anpassen
|
setting.macnotch.name = Benutzeroberfläche an Aussparung anpassen
|
||||||
setting.macnotch.description = Neustart erforderlich
|
setting.macnotch.description = Neustart erforderlich
|
||||||
|
|
||||||
steam.friendsonly = Nur Freunde
|
steam.friendsonly = Nur Freunde
|
||||||
steam.friendsonly.tooltip = Ob nur Steam-Freunde deinem Spiel beitreten können.\nDiese Einstellung zu deaktivieren macht dein Spiel öffentlich - jeder kann beitreten.
|
steam.friendsonly.tooltip = Ob nur Steam-Freunde deinem Spiel beitreten können.\nDiese Einstellung zu deaktivieren macht dein Spiel öffentlich - jeder kann beitreten.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Kameradistanz
|
setting.maxmagnificationmultiplierpercent.name = Min Kameradistanz
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Efectos visuales climáticos
|
|||||||
setting.hidedisplays.name = Ocultar pantallas lógicas
|
setting.hidedisplays.name = Ocultar pantallas lógicas
|
||||||
setting.macnotch.name = Adaptar la interfaz para mostrar la muesca
|
setting.macnotch.name = Adaptar la interfaz para mostrar la muesca
|
||||||
setting.macnotch.description = Es necesario reiniciar para aplicar los cambios
|
setting.macnotch.description = Es necesario reiniciar para aplicar los cambios
|
||||||
|
|
||||||
steam.friendsonly = Solo amigos
|
steam.friendsonly = Solo amigos
|
||||||
steam.friendsonly.tooltip = Si solo los amigos de Steam podrán unirse a tu partida.\nDesmarcar esta opción hará tu partida pública - cualquiera podrá unirse.
|
steam.friendsonly.tooltip = Si solo los amigos de Steam podrán unirse a tu partida.\nDesmarcar esta opción hará tu partida pública - cualquiera podrá unirse.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Distancia de cámara mínima
|
setting.maxmagnificationmultiplierpercent.name = Distancia de cámara mínima
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Kohandage liidest sälku kuvamiseks
|
setting.macnotch.name = Kohandage liidest sälku kuvamiseks
|
||||||
setting.macnotch.description = Muudatuste rakendamiseks on vaja taaskäivitada
|
setting.macnotch.description = Muudatuste rakendamiseks on vaja taaskäivitada
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Erakutsi eguraldi grafikoak
|
|||||||
setting.hidedisplays.name = Ezkutatu pantaila logikoak
|
setting.hidedisplays.name = Ezkutatu pantaila logikoak
|
||||||
setting.macnotch.name = Egokitu interfazea bistaratzeko
|
setting.macnotch.name = Egokitu interfazea bistaratzeko
|
||||||
setting.macnotch.description = Berrabiarazi behar da aldaketak aplikatzeko
|
setting.macnotch.description = Berrabiarazi behar da aldaketak aplikatzeko
|
||||||
|
|
||||||
steam.friendsonly = Lagunak bakarrik
|
steam.friendsonly = Lagunak bakarrik
|
||||||
steam.friendsonly.tooltip = Bai, Steam lagunak bakarrik sartu ahal izango dira zure jokoan.\nKutxa hau desblokeatzeak zure jokoa publiko egingo du. Edonork bat egin dezake.
|
steam.friendsonly.tooltip = Bai, Steam lagunak bakarrik sartu ahal izango dira zure jokoan.\nKutxa hau desblokeatzeak zure jokoa publiko egingo du. Edonork bat egin dezake.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Kameraren distantzia minimoa
|
setting.maxmagnificationmultiplierpercent.name = Kameraren distantzia minimoa
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Näytä säägrafiikat
|
|||||||
setting.hidedisplays.name = Piilota logiikkanäytöt
|
setting.hidedisplays.name = Piilota logiikkanäytöt
|
||||||
setting.macnotch.name = Mukauta käyttöliittymä näyttämään lovi
|
setting.macnotch.name = Mukauta käyttöliittymä näyttämään lovi
|
||||||
setting.macnotch.description = Muutosten toteuttaminen vaatii uudelleenkäynnistyksen
|
setting.macnotch.description = Muutosten toteuttaminen vaatii uudelleenkäynnistyksen
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Iangkop ang interface upang ipakita ang bingaw
|
setting.macnotch.name = Iangkop ang interface upang ipakita ang bingaw
|
||||||
setting.macnotch.description = Kinakailangan ang pag-restart upang mailapat ang mga pagbabago
|
setting.macnotch.description = Kinakailangan ang pag-restart upang mailapat ang mga pagbabago
|
||||||
|
|
||||||
steam.friendsonly = Mga Kaibigan lang
|
steam.friendsonly = Mga Kaibigan lang
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Montrer les Effets météo
|
|||||||
setting.hidedisplays.name = Cacher les Écrans
|
setting.hidedisplays.name = Cacher les Écrans
|
||||||
setting.macnotch.name = Adapter l'interface pour afficher l'encoche
|
setting.macnotch.name = Adapter l'interface pour afficher l'encoche
|
||||||
setting.macnotch.description = Redémarrage du jeu nécessaire pour appliquer les changements
|
setting.macnotch.description = Redémarrage du jeu nécessaire pour appliquer les changements
|
||||||
|
|
||||||
steam.friendsonly = Amis seulement
|
steam.friendsonly = Amis seulement
|
||||||
steam.friendsonly.tooltip = Indique si seuls les amis Steam peuvent rejoindre votre partie.\nSi vous décochez cette case, votre partie deviendra publique et tout le monde pourra la rejoindre.
|
steam.friendsonly.tooltip = Indique si seuls les amis Steam peuvent rejoindre votre partie.\nSi vous décochez cette case, votre partie deviendra publique et tout le monde pourra la rejoindre.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Distance min de la caméra
|
setting.maxmagnificationmultiplierpercent.name = Distance min de la caméra
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Időjárás-grafika megjelenítése
|
|||||||
setting.hidedisplays.name = Logikai kijelzők elrejtése
|
setting.hidedisplays.name = Logikai kijelzők elrejtése
|
||||||
setting.macnotch.name = A felület igazítása a kijelző bevágásához
|
setting.macnotch.name = A felület igazítása a kijelző bevágásához
|
||||||
setting.macnotch.description = A változtatások érvénybe lépéséhez újraindítás szükséges
|
setting.macnotch.description = A változtatások érvénybe lépéséhez újraindítás szükséges
|
||||||
|
|
||||||
steam.friendsonly = Csak barátok
|
steam.friendsonly = Csak barátok
|
||||||
steam.friendsonly.tooltip = Meghatározza, hogy csak a Steam-barátok kapcsolódhassanak-e a játékodhoz.\nHa kikapcsolod, a játékod nyilvános lesz és bárki kapcsolódhat hozzá.
|
steam.friendsonly.tooltip = Meghatározza, hogy csak a Steam-barátok kapcsolódhassanak-e a játékodhoz.\nHa kikapcsolod, a játékod nyilvános lesz és bárki kapcsolódhat hozzá.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Legkisebb kameratávolság
|
setting.maxmagnificationmultiplierpercent.name = Legkisebb kameratávolság
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Tampilkan Cuaca
|
|||||||
setting.hidedisplays.name = Sembunyikan Tampilan Logika
|
setting.hidedisplays.name = Sembunyikan Tampilan Logika
|
||||||
setting.macnotch.name = Sesuaikan tampilan dengan batas layar
|
setting.macnotch.name = Sesuaikan tampilan dengan batas layar
|
||||||
setting.macnotch.description = Mulai ulang diperlukan untuk menerapkan perubahan
|
setting.macnotch.description = Mulai ulang diperlukan untuk menerapkan perubahan
|
||||||
|
|
||||||
steam.friendsonly = Hanya Teman
|
steam.friendsonly = Hanya Teman
|
||||||
steam.friendsonly.tooltip = Mengatur bisa atau tidaknya teman Steam bergabung ke permainanmu.\nMenghapus centang pada kotak ini akan membuat permainan Anda menjadi publik - siapa saja dapat bergabung.
|
steam.friendsonly.tooltip = Mengatur bisa atau tidaknya teman Steam bergabung ke permainanmu.\nMenghapus centang pada kotak ini akan membuat permainan Anda menjadi publik - siapa saja dapat bergabung.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Jarak Kamera Minimum
|
setting.maxmagnificationmultiplierpercent.name = Jarak Kamera Minimum
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Mostra grafica del meteo
|
|||||||
setting.hidedisplays.name = Nascondi display logici
|
setting.hidedisplays.name = Nascondi display logici
|
||||||
setting.macnotch.name = Adatta l'interfaccia per visualizzare la tacca
|
setting.macnotch.name = Adatta l'interfaccia per visualizzare la tacca
|
||||||
setting.macnotch.description = Riavvio necessario per applicare le modifiche
|
setting.macnotch.description = Riavvio necessario per applicare le modifiche
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -331,10 +331,10 @@ cantconnect = ゲームに参加できませんでした。 ([accent]{0}[])
|
|||||||
connecting = [accent]接続中...
|
connecting = [accent]接続中...
|
||||||
reconnecting = [accent]再接続中...
|
reconnecting = [accent]再接続中...
|
||||||
|
|
||||||
connecting.establish = [accent]Establishing connection...
|
connecting.establish = [accent]接続を確立中...
|
||||||
receiving.world = [accent]Receiving world data ({0})...
|
receiving.world = [accent]ワールドデータを受信中 ({0})...
|
||||||
receiving.assets = [accent]Receiving assets ({0})...
|
receiving.assets = [accent]アセットを受信中 ({0})...
|
||||||
receiving.assets.fail = Error occurred while receiving assets.
|
receiving.assets.fail = アセットの受信中にエラーが発生しました。
|
||||||
|
|
||||||
server.port = ポート:
|
server.port = ポート:
|
||||||
server.invalidport = 無効なポート番号です!
|
server.invalidport = 無効なポート番号です!
|
||||||
@@ -352,10 +352,10 @@ save.export = エクスポート
|
|||||||
save.import.invalid = [accent]無効なセーブデータです!
|
save.import.invalid = [accent]無効なセーブデータです!
|
||||||
save.import.fail = [crimson]セーブデータのインポートに失敗しました: [accent]{0}
|
save.import.fail = [crimson]セーブデータのインポートに失敗しました: [accent]{0}
|
||||||
save.export.fail = [crimson]セーブデータのエクスポートに失敗しました: [accent]{0}
|
save.export.fail = [crimson]セーブデータのエクスポートに失敗しました: [accent]{0}
|
||||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
save.export.needsload = [scarlet]⚠ このセーブには埋め込みアセットがあります。[]\nこのセーブに読み込んでからエクスポートしてください。
|
||||||
save.assets.missing = Missing Assets
|
save.assets.missing = 欠落アセット
|
||||||
save.assets.missing.list = Asset List...
|
save.assets.missing.list = アセット一覧...
|
||||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
save.assets.missing.info = [scarlet]⚠ このセーブには欠落しているアセットがあります![]\n\n[lightgray]これは、セーブファイルが正しくエクスポートされていないことが原因の可能性があります。\n[lightgray]セーブを共有する際は、必ずゲーム内UIからエクスポートしてください。セーブファイルを直接コピーしないでください。\n[lightgray]ファイルの転送が必要な場合は、[accent]assetCache[] フォルダも必ずコピーしてください。
|
||||||
save.import = インポート
|
save.import = インポート
|
||||||
save.newslot = セーブ名:
|
save.newslot = セーブ名:
|
||||||
save.rename = 名前を変更
|
save.rename = 名前を変更
|
||||||
@@ -402,7 +402,7 @@ stance.shoot = 指示:発砲
|
|||||||
stance.holdfire = 指示:発砲控え
|
stance.holdfire = 指示:発砲控え
|
||||||
stance.pursuetarget = 指示:追撃
|
stance.pursuetarget = 指示:追撃
|
||||||
stance.patrol = 指示:偵察経路
|
stance.patrol = 指示:偵察経路
|
||||||
stance.holdposition = 指示:位置を保持
|
stance.holdposition = 指示:位置を保持
|
||||||
stance.ram = 指示: 突撃\n[lightgray]直線、経路捜索無し
|
stance.ram = 指示: 突撃\n[lightgray]直線、経路捜索無し
|
||||||
stance.boost = ブースト
|
stance.boost = ブースト
|
||||||
stance.mineauto = 自採掘掘
|
stance.mineauto = 自採掘掘
|
||||||
@@ -542,47 +542,47 @@ patch.fields = {0} フィールド
|
|||||||
|
|
||||||
bundle.lines = {0} lines
|
bundle.lines = {0} lines
|
||||||
|
|
||||||
images = Images
|
images = 画像
|
||||||
asset.guide = Usage Guide
|
asset.guide = 使用ガイド
|
||||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
asset.bundle.exists = パスが'{0}'のバンドルはすでに存在します。
|
||||||
asset.importzip = Import Asset Zip
|
asset.importzip = ZIPアセットをインポート
|
||||||
asset.exportzip = Export Asset Zip
|
asset.exportzip = ZIPアセットをエクスポート
|
||||||
asset.image.importzip = Import Zip
|
asset.image.importzip = ZIPをインポート
|
||||||
asset.image.exportzip = Export Zip
|
asset.image.exportzip = ZIPをエクスポート
|
||||||
asset.clearall = Clear All
|
asset.clearall = すべてを消去
|
||||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
asset.clearall.confirm = このマップから[red]すべて[]のアセットを消去してもよろしいですか?\nこれには画像、音声、コンテンツなどが含まれます。
|
||||||
asset.imports = Import Results
|
asset.imports = インポート結果
|
||||||
asset.imported = [accent]{0} assets imported.
|
asset.imported = [accent]{0} 個のアセットをインポートしました。
|
||||||
asset.import.none = No valid asset files found in zip archive.
|
asset.import.none = ZIPアーカイブ内に有効なアセットファイルが見つかりませんでした。
|
||||||
asset.content.errors = Content Errors
|
asset.content.errors = コンテンツエラー
|
||||||
asset.content.add = Add Content
|
asset.content.add = コンテンツを追加
|
||||||
asset.content.type = Type:
|
asset.content.type = Type:
|
||||||
asset.content.exists = [red]Content with that name already exists!
|
asset.content.exists = [red]その名前のコンテンツはすでに存在します!
|
||||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
asset.content.badname = [red]無効な名前です!ほとんどの符号は許可されていません。
|
||||||
asset.content.import.file = Import File
|
asset.content.import.file = ファイルをインポート
|
||||||
asset.content.import.clipboard = Import From Clipboard
|
asset.content.import.clipboard = クリップボードからインポート
|
||||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
asset.exists = そのタイプのアセットで、同じパス/名前のものが既に存在します:\n[lightgray]{0}
|
||||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
asset.broken = アセットファイルが見つかりませんでした。\nデータの不適切なインポート、または正しくエクスポートされていない保存ファイルが原因である可能性があります。
|
||||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
asset.audio.invalid = 音声ファイルを読み込めませんでした。\n有効な OGG または MP3 ファイルであることを確認してください。
|
||||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
asset.delete.confirm = このアセットを削除してもよろしいですか?
|
||||||
asset.images = Data Patch Images
|
asset.images = データパッチ画像:
|
||||||
asset.image.imports = Import Results
|
asset.image.imports = インポート結果
|
||||||
asset.image.imported = [accent]{0} images imported.
|
asset.image.imported = [accent]{0} 枚の画像をインポートしました。
|
||||||
asset.image.none = No valid PNG files found in zip archive.
|
asset.image.none = ZIP アーカイブ内に有効な PNG ファイルが見つかりませんでした。
|
||||||
asset.image.error = [red]The following errors were encountered:[]
|
asset.image.error = [red]以下のエラーが発生しました:[]
|
||||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
asset.image.clearall.confirm = すべての画像を消去してもよろしいですか?
|
||||||
asset.image.info = Image Info
|
asset.image.info = 画像情報
|
||||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
asset.image.toolarge = 画像 ([lightgray]{0}x{1}[]) が大きすぎます。最大サイズは {2}x{3}です。
|
||||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
asset.image.exists = 同じパス/名前の画像が既に存在します:\n[lightgray]{0}
|
||||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
asset.image.delete.confirm = この画像を削除してもよろしいですか?
|
||||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
asset.image.name = [accent]ファイル名: [lightgray]{0}
|
||||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
asset.image.region.name = [accent]リージョン名: [lightgray]{0}
|
||||||
asset.image.path = [accent]Path: [lightgray]{0}
|
asset.image.path = [accent]パス: [lightgray]{0}
|
||||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
asset.image.env = [accent]環境アトラスの使用: [lightgray]{0}
|
||||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
asset.image.size = [accent]サイズ: [lightgray]{0}x{1}
|
||||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
asset.image.filesize = [accent]ファイルサイズ: [lightgray]{0}
|
||||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
asset.image.packfailed = [red]⚠ スプライトのパックに失敗しました![]
|
||||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
asset.image.packfailed.env = おそらく環境アトラスの空き容量不足が原因です。\n環境スプライトは合計512x512の制限があります。
|
||||||
|
|
||||||
workshop = ワークショップ
|
workshop = ワークショップ
|
||||||
waves.title = ウェーブ
|
waves.title = ウェーブ
|
||||||
@@ -1141,7 +1141,7 @@ stat.targetsground = 対地攻撃
|
|||||||
stat.crushdamage = クラッシュダメージ
|
stat.crushdamage = クラッシュダメージ
|
||||||
stat.legsplashdamage = 踏みつぶしダメージ
|
stat.legsplashdamage = 踏みつぶしダメージ
|
||||||
stat.itemsmoved = 輸送速度
|
stat.itemsmoved = 輸送速度
|
||||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
stat.itemsmoved.info = スループットは線形とは限らず、FPS/TPSに依存することが多い。
|
||||||
stat.launchtime = 発射の待機時間
|
stat.launchtime = 発射の待機時間
|
||||||
stat.shootrange = 範囲
|
stat.shootrange = 範囲
|
||||||
stat.size = 大きさ
|
stat.size = 大きさ
|
||||||
@@ -1164,8 +1164,8 @@ stat.weapons = 武器
|
|||||||
stat.bullet = 弾丸
|
stat.bullet = 弾丸
|
||||||
stat.moduletier = モジュールレベル
|
stat.moduletier = モジュールレベル
|
||||||
stat.unittype = ユニット種
|
stat.unittype = ユニット種
|
||||||
stat.receiverate = Receiving Rate
|
stat.receiverate = 受信速度
|
||||||
stat.receiverate.info = Affected by overdrive. Throughput can be increased by placing additional unloaders.
|
stat.receiverate.info = オーバードライブの影響を受ける。スループットは追加の搬出機を設置することで増加できる。
|
||||||
stat.speedincrease = 速度向上
|
stat.speedincrease = 速度向上
|
||||||
stat.range = 範囲
|
stat.range = 範囲
|
||||||
stat.drilltier = ドリル
|
stat.drilltier = ドリル
|
||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = 天気のグラフィックを表示
|
|||||||
setting.hidedisplays.name = 描画されているロジックディスプレイを非表示
|
setting.hidedisplays.name = 描画されているロジックディスプレイを非表示
|
||||||
setting.macnotch.name = インターフェイスをノッチ表示に適応させる
|
setting.macnotch.name = インターフェイスをノッチ表示に適応させる
|
||||||
setting.macnotch.description = 再起動が必要です。
|
setting.macnotch.description = 再起動が必要です。
|
||||||
|
|
||||||
steam.friendsonly = フレンドのみ
|
steam.friendsonly = フレンドのみ
|
||||||
steam.friendsonly.tooltip = Steamのフレンドのみがゲームに参加できるようにします。\nこの設定を無効にするとゲームは公開され、誰でも参加できます。
|
steam.friendsonly.tooltip = Steamのフレンドのみがゲームに参加できるようにします。\nこの設定を無効にするとゲームは公開され、誰でも参加できます。
|
||||||
setting.maxmagnificationmultiplierpercent.name = 最低描写距離
|
setting.maxmagnificationmultiplierpercent.name = 最低描写距離
|
||||||
@@ -2185,9 +2186,9 @@ block.disperse.name = ディスパーズ
|
|||||||
block.afflict.name = アフリクト
|
block.afflict.name = アフリクト
|
||||||
block.lustre.name = ラストル
|
block.lustre.name = ラストル
|
||||||
block.scathe.name = スケース
|
block.scathe.name = スケース
|
||||||
block.scathe.carbide.info = Travels significantly faster.\nModerate damage at any range.
|
block.scathe.carbide.info = かなり高速で移動する。\nどの距離でも中程度のダメージ。
|
||||||
block.scathe.surge-alloy.info = Splits into micro missiles.\nHeavy damage at close distance.
|
block.scathe.surge-alloy.info = 微小ミサイルに分裂する。\n近距離で高ダメージ。
|
||||||
block.scathe.phase-fabric.info = Equipped with a force field.\nLow damage, largest radius.
|
block.scathe.phase-fabric.info = フォースフィールドを搭載している。\nダメージは低いが、最大の範囲を持つ。
|
||||||
block.tank-refabricator.name = 戦車再加工工場
|
block.tank-refabricator.name = 戦車再加工工場
|
||||||
block.mech-refabricator.name = メカ再加工工場
|
block.mech-refabricator.name = メカ再加工工場
|
||||||
block.ship-refabricator.name = 戦艦再加工工場
|
block.ship-refabricator.name = 戦艦再加工工場
|
||||||
@@ -2766,7 +2767,7 @@ lst.setprop = ユニットまたは建物のプロパティを設定します。
|
|||||||
lst.effect = パーティクルエフェクトを作成します。
|
lst.effect = パーティクルエフェクトを作成します。
|
||||||
lst.sync = ネットワーク経由で変数を同期します。\n最大で1秒間に10回まで呼び出されます。
|
lst.sync = ネットワーク経由で変数を同期します。\n最大で1秒間に10回まで呼び出されます。
|
||||||
lst.playsound = サウンドを再生します。\n音量とパンはグローバル値として設定するか、位置に基づいて計算できます。
|
lst.playsound = サウンドを再生します。\n音量とパンはグローバル値として設定するか、位置に基づいて計算できます。
|
||||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
lst.playmusic = 名前で音楽トラックを再生する。例: [accent]"game1"[]。\n[accent]interrupt[] が true の場合、再生中の音楽は停止される。\nnull の音楽を再生し、interrupt を true にすると現在のトラックを停止できる。\ndata patch の音楽を再生する場合は、[accent]dp-[] を接頭辞として付ける必要がある。
|
||||||
lst.makemarker = ワールドに新しいロジックマーカーを作成します。\nこのマーカーを識別するためのIDを指定する必要があります。\nマーカーは現在、1ワールドにつき最大20,000個までです。
|
lst.makemarker = ワールドに新しいロジックマーカーを作成します。\nこのマーカーを識別するためのIDを指定する必要があります。\nマーカーは現在、1ワールドにつき最大20,000個までです。
|
||||||
lst.setmarker = マーカーのプロパティを設定します。\n使用するIDは"Make Marker"命令で指定したものと同じである必要があります。
|
lst.setmarker = マーカーのプロパティを設定します。\n使用するIDは"Make Marker"命令で指定したものと同じである必要があります。
|
||||||
lst.localeprint = マップのロケールプロパティの値をテキストバッファに追加します。\nマップエディタでロケールバンドルを設定するには、[accent]Map Info > Locale Bundles[] を確認してください。\nクライアントがモバイルの場合、末尾が ".mobile" のプロパティを優先して出力します。
|
lst.localeprint = マップのロケールプロパティの値をテキストバッファに追加します。\nマップエディタでロケールバンドルを設定するには、[accent]Map Info > Locale Bundles[] を確認してください。\nクライアントがモバイルの場合、末尾が ".mobile" のプロパティを優先して出力します。
|
||||||
@@ -2775,8 +2776,8 @@ lst.query = 指定した範囲内のユニット/建物を検索します。結
|
|||||||
lglobal.false = 0
|
lglobal.false = 0
|
||||||
lglobal.true = 1
|
lglobal.true = 1
|
||||||
lglobal.null = null
|
lglobal.null = null
|
||||||
lglobal.@pi = 円周率(π:3.141...)という数学定数
|
lglobal.@pi = 円周率(π:3.141...)という数学定数
|
||||||
lglobal.@e = ネイピア数(e:2.718...)という数学定数
|
lglobal.@e = ネイピア数(e:2.718...)という数学定数
|
||||||
lglobal.@degToRad = 度をラジアンに変換するための乗算係数
|
lglobal.@degToRad = 度をラジアンに変換するための乗算係数
|
||||||
lglobal.@radToDeg = ラジアンを度に変換するための乗算係数
|
lglobal.@radToDeg = ラジアンを度に変換するための乗算係数
|
||||||
|
|
||||||
@@ -2809,13 +2810,13 @@ lglobal.@liquidCount = ゲーム内液体種類数(lookup命令で使用)
|
|||||||
lglobal.@server = サーバーまたはシングルプレイで実行中なら true、それ以外は false
|
lglobal.@server = サーバーまたはシングルプレイで実行中なら true、それ以外は false
|
||||||
lglobal.@client = クライアント接続中なら true
|
lglobal.@client = クライアント接続中なら true
|
||||||
|
|
||||||
lglobal.@clientLocale = クライアントの言語設定(例:en_US)
|
lglobal.@clientLocale = クライアントの言語設定(例: en_US)
|
||||||
lglobal.@clientUnit = クライアントが操作しているユニット
|
lglobal.@clientUnit = クライアントが操作しているユニット
|
||||||
lglobal.@clientName = クライアントのプレイヤー名
|
lglobal.@clientName = クライアントのプレイヤー名
|
||||||
lglobal.@clientTeam = クライアントのチームID
|
lglobal.@clientTeam = クライアントのチームID
|
||||||
lglobal.@clientMobile = クライアントがモバイルなら true、それ以外は false
|
lglobal.@clientMobile = クライアントがモバイルなら true、それ以外は false
|
||||||
|
|
||||||
lenum.type = ユニットや建物の種類を取得します。\n例:任意のルーターに対して、 [accent]@router[] を返します。\n文字列ではありません。
|
lenum.type = ユニットや建物の種類を取得します。\n例: 任意のルーターに対して、 [accent]@router[] を返します。\n文字列ではありません。
|
||||||
lenum.shoot = 指定した座標に向かって撃ちます。
|
lenum.shoot = 指定した座標に向かって撃ちます。
|
||||||
lenum.shootp = 任意のユニットや建物を撃ちます。
|
lenum.shootp = 任意のユニットや建物を撃ちます。
|
||||||
lenum.config = 建物の設定を取得します。\n例:ソーターに設定されているアイテムなど
|
lenum.config = 建物の設定を取得します。\n例:ソーターに設定されているアイテムなど
|
||||||
@@ -2828,7 +2829,7 @@ laccess.controller = ユニットを制御しているものを取得します
|
|||||||
laccess.dead = ユニットや建物が機能しているかどうか、またはもう有効でないかどうか。
|
laccess.dead = ユニットや建物が機能しているかどうか、またはもう有効でないかどうか。
|
||||||
laccess.controlled = ユニットや建物がどのように制御されているのかを取得します。\nプロセッサ制御の場合、 [accent]@ctrlProcessor[] を返します。\nプレイヤー制御の場合、 [accent]@ctrlPlayer[] を返します。\n隊列を組んでいる場合、 [accent]@ctrlFormation[] を返します。\nそれ以外は 0 を返します。
|
laccess.controlled = ユニットや建物がどのように制御されているのかを取得します。\nプロセッサ制御の場合、 [accent]@ctrlProcessor[] を返します。\nプレイヤー制御の場合、 [accent]@ctrlPlayer[] を返します。\n隊列を組んでいる場合、 [accent]@ctrlFormation[] を返します。\nそれ以外は 0 を返します。
|
||||||
laccess.progress = アクションの進行状況を0〜1で取得します。\n生産、リロード、または建設の進捗状況を返します。
|
laccess.progress = アクションの進行状況を0〜1で取得します。\n生産、リロード、または建設の進捗状況を返します。
|
||||||
laccess.speed = ユニットの最高速度を返します。(単位:タイル/秒)
|
laccess.speed = ユニットの最高速度を返します。(単位: タイル/秒)
|
||||||
laccess.size = ユニット/建物の大きさ、または紐の長さ。
|
laccess.size = ユニット/建物の大きさ、または紐の長さ。
|
||||||
laccess.id = ユニット/ブロック/アイテム/液体のID。\nこれは検索操作の逆です。
|
laccess.id = ユニット/ブロック/アイテム/液体のID。\nこれは検索操作の逆です。
|
||||||
laccess.displaywidth = 表示ブロックの幅(ピクセル単位)
|
laccess.displaywidth = 表示ブロックの幅(ピクセル単位)
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = 날씨 그래픽 표시
|
|||||||
setting.hidedisplays.name = 로직 디스플레이 숨김
|
setting.hidedisplays.name = 로직 디스플레이 숨김
|
||||||
setting.macnotch.name = 노치를 표시하도록 인터페이스 조정
|
setting.macnotch.name = 노치를 표시하도록 인터페이스 조정
|
||||||
setting.macnotch.description = 적용하려면 재시작이 필요합니다.
|
setting.macnotch.description = 적용하려면 재시작이 필요합니다.
|
||||||
|
|
||||||
steam.friendsonly = 친구 전용
|
steam.friendsonly = 친구 전용
|
||||||
steam.friendsonly.tooltip = 스팀 친구만 게임에 접속할 수 있을지 정합니다.\n체크를 해제하면 누구나 접속할 수 있습니다.
|
steam.friendsonly.tooltip = 스팀 친구만 게임에 접속할 수 있을지 정합니다.\n체크를 해제하면 누구나 접속할 수 있습니다.
|
||||||
setting.maxmagnificationmultiplierpercent.name = 최소 카메라 거리
|
setting.maxmagnificationmultiplierpercent.name = 최소 카메라 거리
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Pritaikykite sąsają, kad būtų rodoma įpjova
|
setting.macnotch.name = Pritaikykite sąsają, kad būtų rodoma įpjova
|
||||||
setting.macnotch.description = Norint pritaikyti pakeitimus, reikia paleisti iš naujo
|
setting.macnotch.description = Norint pritaikyti pakeitimus, reikia paleisti iš naujo
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Toon Weer Graphics
|
|||||||
setting.hidedisplays.name = Verberg Logische Displays
|
setting.hidedisplays.name = Verberg Logische Displays
|
||||||
setting.macnotch.name = Pas de interface aan om de inkeping weer te geven
|
setting.macnotch.name = Pas de interface aan om de inkeping weer te geven
|
||||||
setting.macnotch.description = Herstart vereist om veranderingen door te voeren
|
setting.macnotch.description = Herstart vereist om veranderingen door te voeren
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Adapt interface to display notch
|
setting.macnotch.name = Adapt interface to display notch
|
||||||
setting.macnotch.description = Restart required to apply changes
|
setting.macnotch.description = Restart required to apply changes
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Pokaż pogodę
|
|||||||
setting.hidedisplays.name = Ukryj wyświetlacze logiczne
|
setting.hidedisplays.name = Ukryj wyświetlacze logiczne
|
||||||
setting.macnotch.name = Dostosuj interfejs do wyświetlania wycięcia ekranu
|
setting.macnotch.name = Dostosuj interfejs do wyświetlania wycięcia ekranu
|
||||||
setting.macnotch.description = Aby zastosować zmiany, wymagane jest ponowne uruchomienie
|
setting.macnotch.description = Aby zastosować zmiany, wymagane jest ponowne uruchomienie
|
||||||
|
|
||||||
steam.friendsonly = Tylko Znajomi
|
steam.friendsonly = Tylko Znajomi
|
||||||
steam.friendsonly.tooltip = Czy tylko Znajomi ze Steam będą mogli dołączyć do twojej gry?\nOdznaczenie tego okienka ustawi twoją grę na publiczną - każdy może dołączyć.
|
steam.friendsonly.tooltip = Czy tylko Znajomi ze Steam będą mogli dołączyć do twojej gry?\nOdznaczenie tego okienka ustawi twoją grę na publiczną - każdy może dołączyć.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min. odległość kamery
|
setting.maxmagnificationmultiplierpercent.name = Min. odległość kamery
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Mostrar Gráficos do Clima
|
|||||||
setting.hidedisplays.name = Ocultar Displays de Lógicos
|
setting.hidedisplays.name = Ocultar Displays de Lógicos
|
||||||
setting.macnotch.name = Adaptar a interface para exibir o entalhe
|
setting.macnotch.name = Adaptar a interface para exibir o entalhe
|
||||||
setting.macnotch.description = Reinicialização necessária para aplicar as alterações
|
setting.macnotch.description = Reinicialização necessária para aplicar as alterações
|
||||||
|
|
||||||
steam.friendsonly = Amigos apenas
|
steam.friendsonly = Amigos apenas
|
||||||
steam.friendsonly.tooltip = Se apenas amigos do Steam poderão entrar no seu jogo.\nDesmarcar esta caixa tornará seu jogo público - qualquer pessoa pode entrar.
|
steam.friendsonly.tooltip = Se apenas amigos do Steam poderão entrar no seu jogo.\nDesmarcar esta caixa tornará seu jogo público - qualquer pessoa pode entrar.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Distância Mínima da Câmera
|
setting.maxmagnificationmultiplierpercent.name = Distância Mínima da Câmera
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Mostrar Gráficos do Clima
|
|||||||
setting.hidedisplays.name = Ocultar Ecrãs Lógicos
|
setting.hidedisplays.name = Ocultar Ecrãs Lógicos
|
||||||
setting.macnotch.name = Adaptar a interface para exibir o entalhe
|
setting.macnotch.name = Adaptar a interface para exibir o entalhe
|
||||||
setting.macnotch.description = É necessário reiniciar para aplicar as alterações
|
setting.macnotch.description = É necessário reiniciar para aplicar as alterações
|
||||||
|
|
||||||
steam.friendsonly = Amigos Apenas
|
steam.friendsonly = Amigos Apenas
|
||||||
steam.friendsonly.tooltip = Define se apenas amigos da Steam podem juntar-se ao teu jogo.\nDesativar esta opção fará o teu jogo público - qualquer um pode-se juntar ao teu mapa.
|
steam.friendsonly.tooltip = Define se apenas amigos da Steam podem juntar-se ao teu jogo.\nDesativar esta opção fará o teu jogo público - qualquer um pode-se juntar ao teu mapa.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Vezi Vremea
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Adaptați interfața pentru a afișa notch-ul
|
setting.macnotch.name = Adaptați interfața pentru a afișa notch-ul
|
||||||
setting.macnotch.description = Repornire necesară pt a aplica schimbările.
|
setting.macnotch.description = Repornire necesară pt a aplica schimbările.
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Отображать погоду
|
|||||||
setting.hidedisplays.name = Скрыть логические дисплеи
|
setting.hidedisplays.name = Скрыть логические дисплеи
|
||||||
setting.macnotch.name = Адаптировать интерфейс к вырезу на экране
|
setting.macnotch.name = Адаптировать интерфейс к вырезу на экране
|
||||||
setting.macnotch.description = Для вступления изменений в силу требуется перезагрузка игры
|
setting.macnotch.description = Для вступления изменений в силу требуется перезагрузка игры
|
||||||
|
|
||||||
steam.friendsonly = Только друзья
|
steam.friendsonly = Только друзья
|
||||||
steam.friendsonly.tooltip = Только ли друзья из Steam могут присоединяться к вашей игре.\nУбрав эту галочку, вы сделаете вашу игру публичной - присоединиться сможет любой желающий.
|
steam.friendsonly.tooltip = Только ли друзья из Steam могут присоединяться к вашей игре.\nУбрав эту галочку, вы сделаете вашу игру публичной - присоединиться сможет любой желающий.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Минимальная дистанция камеры
|
setting.maxmagnificationmultiplierpercent.name = Минимальная дистанция камеры
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Prikazuj Grafiku Vremena
|
|||||||
setting.hidedisplays.name = Sakrij Logičke Displeje
|
setting.hidedisplays.name = Sakrij Logičke Displeje
|
||||||
setting.macnotch.name = Prilagodi interfejs da prikaže zarez
|
setting.macnotch.name = Prilagodi interfejs da prikaže zarez
|
||||||
setting.macnotch.description = Restartovanje je zahtevano da bi se učitale promene
|
setting.macnotch.description = Restartovanje je zahtevano da bi se učitale promene
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Anpassa gränssnittet för att visa skåra
|
setting.macnotch.name = Anpassa gränssnittet för att visa skåra
|
||||||
setting.macnotch.description = Omstart krävs för att tillämpa ändringar
|
setting.macnotch.description = Omstart krävs för att tillämpa ändringar
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = แสดงกราฟิกสภาพอาก
|
|||||||
setting.hidedisplays.name = ซ่อนหน้าจอลอจิก
|
setting.hidedisplays.name = ซ่อนหน้าจอลอจิก
|
||||||
setting.macnotch.name = ปรับอินเตอร์เฟซให้เข้ากับติ่งหน้าจอ
|
setting.macnotch.name = ปรับอินเตอร์เฟซให้เข้ากับติ่งหน้าจอ
|
||||||
setting.macnotch.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง
|
setting.macnotch.description = อาจจะต้องรีสตาร์ทเพื่อใช้งานการเปลี่ยนแปลง
|
||||||
|
|
||||||
steam.friendsonly = เพื่อนเท่านั้น
|
steam.friendsonly = เพื่อนเท่านั้น
|
||||||
steam.friendsonly.tooltip = ว่าจะให้แค่เพื่อนเท่านั้นหรือไม่ที่จะสามารถเข้าร่วมเกมของคุณได้\nหากคุณติ๊กช่องนี้ออกนั้นจะทำให้เกมของคุณเปิดเป็นสาธารณะ - ใครๆก็จะสามารถเข้าร่วมเกมของคุณได้
|
steam.friendsonly.tooltip = ว่าจะให้แค่เพื่อนเท่านั้นหรือไม่ที่จะสามารถเข้าร่วมเกมของคุณได้\nหากคุณติ๊กช่องนี้ออกนั้นจะทำให้เกมของคุณเปิดเป็นสาธารณะ - ใครๆก็จะสามารถเข้าร่วมเกมของคุณได้
|
||||||
setting.maxmagnificationmultiplierpercent.name = ระยะห่างกล้องต่ำสุด
|
setting.maxmagnificationmultiplierpercent.name = ระยะห่างกล้องต่ำสุด
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Show Weather Graphics
|
|||||||
setting.hidedisplays.name = Hide Logic Displays
|
setting.hidedisplays.name = Hide Logic Displays
|
||||||
setting.macnotch.name = Kesgitlemek üçin interfeýsi uýgunlaşdyryň
|
setting.macnotch.name = Kesgitlemek üçin interfeýsi uýgunlaşdyryň
|
||||||
setting.macnotch.description = Üýtgeşmeleri ulanmak üçin täzeden başlaň
|
setting.macnotch.description = Üýtgeşmeleri ulanmak üçin täzeden başlaň
|
||||||
|
|
||||||
steam.friendsonly = Friends Only
|
steam.friendsonly = Friends Only
|
||||||
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
steam.friendsonly.tooltip = Whether only Steam friends will be able to join your game.\nUnchecking this box will make your game public - anyone can join.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Hava Durumu Grafiklerini Göster
|
|||||||
setting.hidedisplays.name = İşlemci İpuçlarını Gizle
|
setting.hidedisplays.name = İşlemci İpuçlarını Gizle
|
||||||
setting.macnotch.name = Arayüzü çentik gösterecek şekilde uyarlayın
|
setting.macnotch.name = Arayüzü çentik gösterecek şekilde uyarlayın
|
||||||
setting.macnotch.description = Değişikleri uygulamak için yeniden başlatma gerekli
|
setting.macnotch.description = Değişikleri uygulamak için yeniden başlatma gerekli
|
||||||
|
|
||||||
steam.friendsonly = Arkadaşlara özel
|
steam.friendsonly = Arkadaşlara özel
|
||||||
steam.friendsonly.tooltip = Sadece Steam arkadaşlarının katılıp katılabilemeyeceğini belirler.\nBu kutudan tiki kaldırmak oyununuzu herkese açık yapacaktır.
|
steam.friendsonly.tooltip = Sadece Steam arkadaşlarının katılıp katılabilemeyeceğini belirler.\nBu kutudan tiki kaldırmak oyununuzu herkese açık yapacaktır.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Показувати погоду
|
|||||||
setting.hidedisplays.name = Приховувати логічні дисплеї
|
setting.hidedisplays.name = Приховувати логічні дисплеї
|
||||||
setting.macnotch.name = Адаптувати інтерфейс для показу виїмки
|
setting.macnotch.name = Адаптувати інтерфейс для показу виїмки
|
||||||
setting.macnotch.description = Потрібен перезапуск для застосування змін
|
setting.macnotch.description = Потрібен перезапуск для застосування змін
|
||||||
|
|
||||||
steam.friendsonly = Лише друзі
|
steam.friendsonly = Лише друзі
|
||||||
steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри. Якщо зняти цей прапорець, ваша гра стане загальнодоступною – будь-хто зможе приєднатися.
|
steam.friendsonly.tooltip = Чи лише друзі Steam зможуть приєднатися до вашої гри. Якщо зняти цей прапорець, ваша гра стане загальнодоступною – будь-хто зможе приєднатися.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Мінімальна відстань камери
|
setting.maxmagnificationmultiplierpercent.name = Мінімальна відстань камери
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = Hiện đồ họa thời tiết
|
|||||||
setting.hidedisplays.name = Ẩn hiển thị logic
|
setting.hidedisplays.name = Ẩn hiển thị logic
|
||||||
setting.macnotch.name = Giao diện phù hợp với hiển thị tai thỏ
|
setting.macnotch.name = Giao diện phù hợp với hiển thị tai thỏ
|
||||||
setting.macnotch.description = Cần khởi động lại để áp dụng các thay đổi
|
setting.macnotch.description = Cần khởi động lại để áp dụng các thay đổi
|
||||||
|
|
||||||
steam.friendsonly = Chỉ bạn bè
|
steam.friendsonly = Chỉ bạn bè
|
||||||
steam.friendsonly.tooltip = Liệu chỉ bạn bè trên Steam mới có thể tham gia trò chơi của bạn hay không.\nBỏ chọn ô này sẽ làm trò chơi của bạn công khai - mọi người có thể tham gia.
|
steam.friendsonly.tooltip = Liệu chỉ bạn bè trên Steam mới có thể tham gia trò chơi của bạn hay không.\nBỏ chọn ô này sẽ làm trò chơi của bạn công khai - mọi người có thể tham gia.
|
||||||
setting.maxmagnificationmultiplierpercent.name = Tầm xa tối thiểu của máy quay
|
setting.maxmagnificationmultiplierpercent.name = Tầm xa tối thiểu của máy quay
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = 显示天气效果
|
|||||||
setting.hidedisplays.name = 不显示逻辑绘图
|
setting.hidedisplays.name = 不显示逻辑绘图
|
||||||
setting.macnotch.name = 适应刘海显示
|
setting.macnotch.name = 适应刘海显示
|
||||||
setting.macnotch.description = 需要重启才能应用更改
|
setting.macnotch.description = 需要重启才能应用更改
|
||||||
|
|
||||||
steam.friendsonly = 仅限好友
|
steam.friendsonly = 仅限好友
|
||||||
steam.friendsonly.tooltip = 是否只有 Steam 好友才能加入你的游戏。\n取消选中该选项将使你的游戏公开 - 任何人都可以加入。
|
steam.friendsonly.tooltip = 是否只有 Steam 好友才能加入你的游戏。\n取消选中该选项将使你的游戏公开 - 任何人都可以加入。
|
||||||
setting.maxmagnificationmultiplierpercent.name = 最小视距
|
setting.maxmagnificationmultiplierpercent.name = 最小视距
|
||||||
|
|||||||
@@ -1449,6 +1449,7 @@ setting.showweather.name = 顯示天氣動畫
|
|||||||
setting.hidedisplays.name = 隱藏邏輯顯示
|
setting.hidedisplays.name = 隱藏邏輯顯示
|
||||||
setting.macnotch.name = 使界面適應顯示槽口
|
setting.macnotch.name = 使界面適應顯示槽口
|
||||||
setting.macnotch.description = 需要重新啟動遊戲以更改大小
|
setting.macnotch.description = 需要重新啟動遊戲以更改大小
|
||||||
|
|
||||||
steam.friendsonly = 僅限好友
|
steam.friendsonly = 僅限好友
|
||||||
steam.friendsonly.tooltip = 是否只有 Steam 好友可以加入您的遊戲。\n取消勾選後,遊戲為公開的,任何人都可以加入。
|
steam.friendsonly.tooltip = 是否只有 Steam 好友可以加入您的遊戲。\n取消勾選後,遊戲為公開的,任何人都可以加入。
|
||||||
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
setting.maxmagnificationmultiplierpercent.name = Min Camera Distance
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -11,6 +11,7 @@ import mindustry.ai.types.*;
|
|||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.core.*;
|
import mindustry.core.*;
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
|
import mindustry.entities.comp.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.game.Teams.*;
|
import mindustry.game.Teams.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
@@ -160,7 +161,7 @@ public class RtsAI{
|
|||||||
ay /= units.size;
|
ay /= units.size;
|
||||||
|
|
||||||
if(debug){
|
if(debug){
|
||||||
Vars.ui.showLabel("Squad: " + units.size, -1, 2f, ax, ay);
|
Vars.ui.showLabel("Squad: " + units.size, -1, 2f, ax, ay, WorldLabel.flagBackground | WorldLabel.flagAutoscale);
|
||||||
}
|
}
|
||||||
|
|
||||||
Building defend = null;
|
Building defend = null;
|
||||||
@@ -192,7 +193,7 @@ public class RtsAI{
|
|||||||
defend = best;
|
defend = best;
|
||||||
|
|
||||||
if(debug){
|
if(debug){
|
||||||
Vars.ui.showLabel("Defend, dst = " + (int)(best.dst(ax, ay)), -1, 8f, best.x, best.y);
|
Vars.ui.showLabel("Defend, dst = " + (int)(best.dst(ax, ay)), -1, 8f, best.x, best.y, WorldLabel.flagBackground | WorldLabel.flagAutoscale);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(best instanceof CoreBuild){
|
if(best instanceof CoreBuild){
|
||||||
|
|||||||
@@ -1503,7 +1503,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
smallHeatRedirector = new HeatConductor("small-heat-redirector"){{
|
smallHeatRedirector = new HeatConductor("small-heat-redirector"){{
|
||||||
requirements(Category.crafting, with(Items.surgeAlloy, 8, Items.graphite, 8));
|
requirements(Category.crafting, with(Items.surgeAlloy, 3, Items.graphite, 8));
|
||||||
|
|
||||||
researchCostMultiplier = 2f;
|
researchCostMultiplier = 2f;
|
||||||
researchCostMultipliers.put(Items.graphite, 7f);
|
researchCostMultipliers.put(Items.graphite, 7f);
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ public class Planets{
|
|||||||
r.waveTeam = Team.crux;
|
r.waveTeam = Team.crux;
|
||||||
r.placeRangeCheck = false;
|
r.placeRangeCheck = false;
|
||||||
r.hideSpawns = true;
|
r.hideSpawns = true;
|
||||||
|
r.derelictRepair = true;
|
||||||
r.coreDestroyClear = true;
|
r.coreDestroyClear = true;
|
||||||
};
|
};
|
||||||
showRtsAIRule = true;
|
showRtsAIRule = true;
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ public class SerpuloTechTree{
|
|||||||
|
|
||||||
node(itemBridge, () -> {
|
node(itemBridge, () -> {
|
||||||
node(titaniumConveyor, Seq.with(new SectorComplete(crateredBattleground)), () -> {
|
node(titaniumConveyor, Seq.with(new SectorComplete(crateredBattleground)), () -> {
|
||||||
node(phaseConveyor, () -> {
|
node(massDriver, Seq.with(new SectorComplete(tarFields)), () -> {
|
||||||
node(massDriver, Seq.with(new SectorComplete(tarFields)), () -> {
|
node(phaseConveyor, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -53,8 +53,8 @@ public class SerpuloTechTree{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(armoredConveyor, () -> {
|
node(plastaniumConveyor, () -> {
|
||||||
node(plastaniumConveyor, () -> {
|
node(armoredConveyor, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
|
|
||||||
@Remote(called = Loc.client, variants = Variant.one)
|
@Remote(called = Loc.client, variants = Variant.one)
|
||||||
public static void connect(String ip, int port){
|
public static void connect(String ip, int port){
|
||||||
if(!steam && ip.startsWith("steam:")) return;
|
if(!steam && (ip.startsWith("steam:") || ip.startsWith("steamserver:"))) return;
|
||||||
netClient.disconnectQuietly();
|
netClient.disconnectQuietly();
|
||||||
logic.reset();
|
logic.reset();
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
/** Maps popups to ids so that they can be removed or updated by id. */
|
/** Maps popups to ids so that they can be removed or updated by id. */
|
||||||
private final ObjectMap<String, Table> popups = new ObjectMap<>();
|
private final ObjectMap<String, Table> popups = new ObjectMap<>();
|
||||||
/** Maps labels to ids so that they can be removed or updated by id. */
|
/** Maps labels to ids so that they can be removed or updated by id. */
|
||||||
private final IntMap<Table> labels = new IntMap<>();
|
private final IntMap<WorldLabel> labels = new IntMap<>();
|
||||||
|
|
||||||
public UI(){
|
public UI(){
|
||||||
Fonts.loadFonts();
|
Fonts.loadFonts();
|
||||||
@@ -437,34 +437,20 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Shows a label in the world. This label is behind everything. Does not fade. */
|
/** Shows a label in the world. This label is behind everything. Does not fade. */
|
||||||
public void showLabel(@Nullable String info, int id, float duration, float worldx, float worldy){
|
public void showLabel(@Nullable String info, int id, float duration, float worldx, float worldy, int flags){
|
||||||
if(info == null){ // null info allows deletion of old labels provided they have ids
|
if(info == null){ // null info allows deletion of old labels provided they have ids
|
||||||
var table = labels.remove(id);
|
var label = labels.remove(id);
|
||||||
if(table != null) table.remove();
|
if(label != null) label.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var table = new Table(Styles.black3).margin(4);
|
|
||||||
if(id != -1){
|
|
||||||
Table old = labels.put(id, table);
|
|
||||||
if(old != null) old.remove();
|
|
||||||
}
|
|
||||||
table.touchable = Touchable.disabled;
|
|
||||||
table.update(() -> {
|
|
||||||
if(state.isMenu()){
|
|
||||||
table.remove();
|
|
||||||
if(id != -1) labels.remove(id);
|
|
||||||
}
|
|
||||||
Vec2 v = Core.camera.project(worldx, worldy);
|
|
||||||
table.setPosition(v.x, v.y, Align.center);
|
|
||||||
});
|
|
||||||
table.actions(Actions.delay(duration), Actions.remove(), Actions.run(() -> { if(id != -1) labels.remove(id); }));
|
|
||||||
table.add(info).style(Styles.outlineLabel);
|
|
||||||
table.pack();
|
|
||||||
table.act(0f);
|
|
||||||
//make sure it's at the back
|
|
||||||
Core.scene.root.addChildAt(0, table);
|
|
||||||
|
|
||||||
table.getChildren().first().act(0f);
|
var label = labels.get(id, WorldLabel::create); // todo: pool?
|
||||||
|
label.x = worldx;
|
||||||
|
label.y = worldy;
|
||||||
|
label.text = info;
|
||||||
|
label.flags = (byte)flags; // flag | flag2 at call site turns it into an int so the flags param here has to be int or casting has to be done at every call site
|
||||||
|
label.duration = duration;
|
||||||
|
label.add();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showInfo(String info){
|
public void showInfo(String info){
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class MapImagesView implements AssetView{
|
|||||||
|
|
||||||
if(width > DataPatcher.maxImageSize || height > DataPatcher.maxImageSize){
|
if(width > DataPatcher.maxImageSize || height > DataPatcher.maxImageSize){
|
||||||
ui.showErrorMessage(Core.bundle.format("asset.image.toolarge", width, height, DataPatcher.maxImageSize, DataPatcher.maxImageSize));
|
ui.showErrorMessage(Core.bundle.format("asset.image.toolarge", width, height, DataPatcher.maxImageSize, DataPatcher.maxImageSize));
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String name = result.nameWithoutExtension();
|
String name = result.nameWithoutExtension();
|
||||||
@@ -53,7 +53,7 @@ public class MapImagesView implements AssetView{
|
|||||||
var other = images.find(p -> p.path.equalsIgnoreCase(path) || p.name.equalsIgnoreCase(name));
|
var other = images.find(p -> p.path.equalsIgnoreCase(path) || p.name.equalsIgnoreCase(name));
|
||||||
if(other != null){
|
if(other != null){
|
||||||
ui.showErrorMessage(Core.bundle.format("asset.image.exists", other.name + " (" + other.path + ")"));
|
ui.showErrorMessage(Core.bundle.format("asset.image.exists", other.name + " (" + other.path + ")"));
|
||||||
return;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] hash = assetCache.add(bytes);
|
byte[] hash = assetCache.add(bytes);
|
||||||
|
|||||||
@@ -1283,8 +1283,15 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void payloadDraw(){
|
public void payloadDraw(){
|
||||||
if(block.isAir()) return;
|
float z = Draw.z();
|
||||||
draw();
|
if(block.drawCached){
|
||||||
|
Draw.z(block.buildingCacheLayer.layer);
|
||||||
|
drawCached();
|
||||||
|
}
|
||||||
|
if(block.drawDynamic){
|
||||||
|
Draw.z(z);
|
||||||
|
draw();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawTeamTop(){
|
public void drawTeamTop(){
|
||||||
@@ -1793,6 +1800,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
|
|
||||||
if(power != null && updatePower){
|
if(power != null && updatePower){
|
||||||
var oldGraph = power.graph;
|
var oldGraph = power.graph;
|
||||||
|
for(var other : proximity){
|
||||||
|
if(other != null && other.team != team && other.power != null && other.power.graph == oldGraph){
|
||||||
|
new PowerGraph().reflow(other);
|
||||||
|
}
|
||||||
|
}
|
||||||
for(int i = 0; i < power.links.size; i++){
|
for(int i = 0; i < power.links.size; i++){
|
||||||
var other = world.build(power.links.items[i]);
|
var other = world.build(power.links.items[i]);
|
||||||
|
|
||||||
|
|||||||
@@ -32,12 +32,22 @@ public abstract class WorldLabelComp implements Posc, Drawc, Syncc{
|
|||||||
public byte flags = flagBackground | flagOutline;
|
public byte flags = flagBackground | flagOutline;
|
||||||
/** If not null, this label gets set to the parent position with x, y used as offsets. */
|
/** If not null, this label gets set to the parent position with x, y used as offsets. */
|
||||||
public @Nullable Posc parent;
|
public @Nullable Posc parent;
|
||||||
|
/** Duration in seconds. Ignored if zero or negative. */
|
||||||
|
public transient float duration;
|
||||||
|
|
||||||
@Replace
|
@Replace
|
||||||
public float clipSize(){
|
public float clipSize(){
|
||||||
return text.length() * 10f * fontSize;
|
return text.length() * 10f * fontSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(){
|
||||||
|
if(duration > 0){
|
||||||
|
duration -= Time.delta / 60f;
|
||||||
|
if(duration <= 0) hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
float x = this.x, y = this.y;
|
float x = this.x, y = this.y;
|
||||||
|
|||||||
@@ -1424,7 +1424,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
overlappingPlayer= player;
|
overlappingPlayer= player;
|
||||||
}
|
}
|
||||||
|
|
||||||
plan.animScale = Mathf.lerpDelta(plan.animScale, 1f, 0.2f * Time.delta);
|
plan.animScale = Mathf.lerpDelta(plan.animScale, 1f, 0.2f);
|
||||||
plan.block.drawOtherPlayerPlan(plan, player.planEachable, overlappingPlan == plan ? 0.7f : 0.25f);
|
plan.block.drawOtherPlayerPlan(plan, player.planEachable, overlappingPlan == plan ? 0.7f : 0.25f);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -630,12 +630,7 @@ public class TypeIO{
|
|||||||
int x = read.us();
|
int x = read.us();
|
||||||
int y = read.us();
|
int y = read.us();
|
||||||
Block block = Vars.content.block(read.us());
|
Block block = Vars.content.block(read.us());
|
||||||
if(block == null){
|
if(block == null) throw new ArcRuntimeException("Invalid block ID in block plans! Client is likely using an incorrectly configured mod.");
|
||||||
// Skip unrecognised block IDs (e.g. from a modded client)
|
|
||||||
read.b(); // consume rotation byte
|
|
||||||
readClientPlanConfig(read); // consume config
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int rotation = (block.rotate ? read.b() : 0);
|
int rotation = (block.rotate ? read.b() : 0);
|
||||||
Object config = readClientPlanConfig(read);
|
Object config = readClientPlanConfig(read);
|
||||||
BuildPlan plan = new BuildPlan(x, y, rotation, block, config);
|
BuildPlan plan = new BuildPlan(x, y, rotation, block, config);
|
||||||
|
|||||||
@@ -1558,7 +1558,7 @@ public class LExecutor{
|
|||||||
public void run(LExecutor exec){
|
public void run(LExecutor exec){
|
||||||
if(net.client()) return;
|
if(net.client()) return;
|
||||||
|
|
||||||
Tile tile = world.tile(x.numi(), y.numi());
|
Tile tile = world.tile(Mathf.round(x.numf()), Mathf.round(y.numf()));
|
||||||
if(tile != null && block.obj() instanceof Block b){
|
if(tile != null && block.obj() instanceof Block b){
|
||||||
switch(layer){
|
switch(layer){
|
||||||
case ore -> {
|
case ore -> {
|
||||||
|
|||||||
@@ -1574,7 +1574,7 @@ public class LStatements{
|
|||||||
}).size(80f, 40f).pad(4f).color(table.color);
|
}).size(80f, 40f).pad(4f).color(table.color);
|
||||||
|
|
||||||
if(statusNames == null){
|
if(statusNames == null){
|
||||||
statusNames = content.statusEffects().select(s -> !s.isHidden()).map(s -> s.name).toArray(String.class);
|
statusNames = content.statusEffects().map(s -> s.name).toArray(String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
table.button(b -> {
|
table.button(b -> {
|
||||||
|
|||||||
@@ -63,7 +63,8 @@ public class SteamAdmin{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isBanned(String id){
|
public static boolean isBanned(String id){
|
||||||
if(!id.startsWith("steam:")) return false;
|
//bans are ignored with private lobbies
|
||||||
|
if(!id.startsWith("steam:") || !Core.settings.getBool("steampublichost2")) return false;
|
||||||
return data.bans.contains(id.substring("steam:".length()));
|
return data.bans.contains(id.substring("steam:".length()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -141,9 +141,19 @@ public class Menus{
|
|||||||
infoPopup(message, duration, align, top, left, bottom, right);
|
infoPopup(message, duration, align, top, left, bottom, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both, unreliable = true)
|
||||||
|
public static void label(@Nullable String message, int id, float duration, float worldx, float worldy, int flags){
|
||||||
|
ui.showLabel(message, id, duration, worldx, worldy, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both)
|
||||||
|
public static void labelReliable(@Nullable String message, int id, float duration, float worldx, float worldy, int flags){
|
||||||
|
label(message, id, duration, worldx, worldy, flags);
|
||||||
|
}
|
||||||
|
|
||||||
@Remote(variants = Variant.both, unreliable = true)
|
@Remote(variants = Variant.both, unreliable = true)
|
||||||
public static void label(@Nullable String message, int id, float duration, float worldx, float worldy){
|
public static void label(@Nullable String message, int id, float duration, float worldx, float worldy){
|
||||||
ui.showLabel(message, id, duration, worldx, worldy);
|
label(message, id, duration, worldx, worldy, WorldLabel.flagBackground | WorldLabel.flagAutoscale | WorldLabel.flagOutline);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Remote(variants = Variant.both)
|
@Remote(variants = Variant.both)
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class HostDialog extends BaseDialog{
|
|||||||
|
|
||||||
cont.add().width(65f);
|
cont.add().width(65f);
|
||||||
|
|
||||||
cont.check("@steam.friendsonly", !Core.settings.getBool("steampublichost"), val -> Core.settings.put("steampublichost", !val)).colspan(2).left()
|
cont.check("@steam.friendsonly", !Core.settings.getBool("steampublichost2"), val -> Core.settings.put("steampublichost2", !val)).colspan(2).left()
|
||||||
.with(c -> ui.addDescTooltip(c, "@steam.friendsonly.tooltip")).padBottom(15f).row();
|
.with(c -> ui.addDescTooltip(c, "@steam.friendsonly.tooltip")).padBottom(15f).row();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,9 +98,9 @@ public class HostDialog extends BaseDialog{
|
|||||||
player.admin = true;
|
player.admin = true;
|
||||||
Events.fire(new HostEvent());
|
Events.fire(new HostEvent());
|
||||||
|
|
||||||
if(steam && Core.settings.getBool("steampublichost")){
|
if(steam && Core.settings.getBool("steampublichost2")){
|
||||||
if(Version.modifier.contains("beta") || Version.modifier.contains("alpha")){
|
if(Version.modifier.contains("beta") || Version.modifier.contains("alpha")){
|
||||||
Core.settings.put("steampublichost", false);
|
Core.settings.put("steampublichost2", false);
|
||||||
platform.updateLobby();
|
platform.updateLobby();
|
||||||
Core.settings.getBoolOnce("betapublic", () -> ui.showInfo("@public.beta"));
|
Core.settings.getBoolOnce("betapublic", () -> ui.showInfo("@public.beta"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,14 @@ public class PausedDialog extends BaseDialog{
|
|||||||
});
|
});
|
||||||
|
|
||||||
if(!mobile){
|
if(!mobile){
|
||||||
|
if(steam){
|
||||||
|
cont.check("@steam.friendsonly", !Core.settings.getBool("steampublichost2"), val -> {
|
||||||
|
Core.settings.put("steampublichost2", !val);
|
||||||
|
platform.updateLobby();
|
||||||
|
}).colspan(2).left().with(c -> ui.addDescTooltip(c, "@steam.friendsonly.tooltip")).width(440f)
|
||||||
|
.visible(() -> net.server()).center().colspan(2).fillX().padBottom(10f).row();
|
||||||
|
}
|
||||||
|
|
||||||
float dw = 220f;
|
float dw = 220f;
|
||||||
cont.defaults().width(dw).height(55).pad(5f);
|
cont.defaults().width(dw).height(55).pad(5f);
|
||||||
|
|
||||||
|
|||||||
@@ -419,12 +419,6 @@ public class SettingsMenuDialog extends BaseDialog{
|
|||||||
platform.updateLobby();
|
platform.updateLobby();
|
||||||
return i + "";
|
return i + "";
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!Version.modifier.contains("beta")){
|
|
||||||
game.checkPref("steampublichost", false, i -> {
|
|
||||||
platform.updateLobby();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
game.checkPref("console", false);
|
game.checkPref("console", false);
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public class HudFragment{
|
|||||||
|
|
||||||
private Seq<Block> blocksOut = new Seq<>();
|
private Seq<Block> blocksOut = new Seq<>();
|
||||||
private Table hudLabel;
|
private Table hudLabel;
|
||||||
|
private float coreAttackTime;
|
||||||
|
|
||||||
private static ObjectSet<String> favoriteBlocks = new ObjectSet<>();
|
private static ObjectSet<String> favoriteBlocks = new ObjectSet<>();
|
||||||
private static String lastFavorited = null;
|
private static String lastFavorited = null;
|
||||||
@@ -592,9 +593,11 @@ public class HudFragment{
|
|||||||
c.top().collapser(coreItems, () -> Core.settings.getBool("coreitems") && !mobile && shown).fillX().row();
|
c.top().collapser(coreItems, () -> Core.settings.getBool("coreitems") && !mobile && shown).fillX().row();
|
||||||
|
|
||||||
float notifDuration = 240f;
|
float notifDuration = 240f;
|
||||||
float[] coreAttackTime = {0};
|
|
||||||
|
|
||||||
Events.run(Trigger.teamCoreDamage, () -> coreAttackTime[0] = notifDuration);
|
Events.run(Trigger.teamCoreDamage, () -> coreAttackTime = notifDuration);
|
||||||
|
Events.on(ResetEvent.class, e -> {
|
||||||
|
coreAttackTime = 0f;
|
||||||
|
});
|
||||||
|
|
||||||
//'core is under attack' table
|
//'core is under attack' table
|
||||||
c.collapser(top -> top.background(Styles.black6).add("@coreattack").pad(8)
|
c.collapser(top -> top.background(Styles.black6).add("@coreattack").pad(8)
|
||||||
@@ -608,13 +611,13 @@ public class HudFragment{
|
|||||||
})
|
})
|
||||||
.update(label -> label.color.set(Color.orange).lerp(Color.scarlet, Mathf.absin(Time.time, 2f, 1f))), true,
|
.update(label -> label.color.set(Color.orange).lerp(Color.scarlet, Mathf.absin(Time.time, 2f, 1f))), true,
|
||||||
() -> {
|
() -> {
|
||||||
if(!shown || state.isPaused()) return false;
|
|
||||||
if(state.isMenu() || !player.team().data().hasCore()){
|
if(state.isMenu() || !player.team().data().hasCore()){
|
||||||
coreAttackTime[0] = 0f;
|
coreAttackTime = 0f;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if(!shown || state.isPaused()) return false;
|
||||||
|
|
||||||
return (coreAttackTime[0] -= Time.delta) > 0;
|
return (coreAttackTime -= Time.delta) > 0;
|
||||||
})
|
})
|
||||||
.touchable(Touchable.disabled)
|
.touchable(Touchable.disabled)
|
||||||
.fillX().row();
|
.fillX().row();
|
||||||
|
|||||||
@@ -190,8 +190,6 @@ public class PlayerListFragment{
|
|||||||
var teamSelect = new BaseDialog(Core.bundle.get("player.team") + ": " + user.name);
|
var teamSelect = new BaseDialog(Core.bundle.get("player.team") + ": " + user.name);
|
||||||
teamSelect.setFillParent(false);
|
teamSelect.setFillParent(false);
|
||||||
|
|
||||||
var group = new ButtonGroup<>();
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
for(Team team : Team.baseTeams){
|
for(Team team : Team.baseTeams){
|
||||||
@@ -203,7 +201,7 @@ public class PlayerListFragment{
|
|||||||
Call.adminRequest(user, AdminAction.switchTeam, team);
|
Call.adminRequest(user, AdminAction.switchTeam, team);
|
||||||
teamSelect.hide();
|
teamSelect.hide();
|
||||||
});
|
});
|
||||||
teamSelect.cont.add(b).size(50f).checked(a -> user.team() == team).group(group);
|
teamSelect.cont.add(b).size(50f).checked(a -> user.team() == team);
|
||||||
|
|
||||||
if(i++ % 3 == 2) teamSelect.cont.row();
|
if(i++ % 3 == 2) teamSelect.cont.row();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ public class BaseShield extends Block{
|
|||||||
hasPower = true;
|
hasPower = true;
|
||||||
update = solid = true;
|
update = solid = true;
|
||||||
rebuildable = false;
|
rebuildable = false;
|
||||||
|
canPickup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -523,11 +523,6 @@ public class LogicBlock extends Block{
|
|||||||
l.trySet(executor, null); //always clear old variable, it may get a new name
|
l.trySet(executor, null); //always clear old variable, it may get a new name
|
||||||
|
|
||||||
if(valid){
|
if(valid){
|
||||||
//this prevents conflicts
|
|
||||||
l.name = "";
|
|
||||||
//finds a new matching name after toggling
|
|
||||||
l.name = findLinkName(cur.block);
|
|
||||||
|
|
||||||
//remove redundant links
|
//remove redundant links
|
||||||
links.removeAll(o -> {
|
links.removeAll(o -> {
|
||||||
boolean remove = world.build(o.x, o.y) == cur && o != l;
|
boolean remove = world.build(o.x, o.y) == cur && o != l;
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class TileableLogicDisplay extends LogicDisplay{
|
|||||||
super(name);
|
super(name);
|
||||||
|
|
||||||
displaySize = 32;
|
displaySize = 32;
|
||||||
|
allowRectanglePlacement = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void linkDisplays(TileableLogicDisplayBuild start){
|
public static void linkDisplays(TileableLogicDisplayBuild start){
|
||||||
|
|||||||
@@ -166,8 +166,9 @@ public class UnitAssembler extends PayloadBlock{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterPatch(){
|
public void afterPatch(){
|
||||||
initCapacities();
|
|
||||||
super.afterPatch();
|
super.afterPatch();
|
||||||
|
|
||||||
|
initCapacities();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initCapacities(){
|
public void initCapacities(){
|
||||||
@@ -705,6 +706,13 @@ public class UnitAssembler extends PayloadBlock{
|
|||||||
return super.sense(sensor);
|
return super.sense(sensor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean acceptUnitPayload(Unit unit){
|
||||||
|
var plan = plan();
|
||||||
|
return plan.requirements.contains(b -> b.item == unit.type() &&
|
||||||
|
blocks.get(unit.type()) < Mathf.round(b.amount * state.rules.unitCost(team)));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PayloadSeq getPayloads(){
|
public PayloadSeq getPayloads(){
|
||||||
return blocks;
|
return blocks;
|
||||||
|
|||||||
@@ -656,7 +656,7 @@ public class StatValues{
|
|||||||
if(blockName != null && t instanceof UnlockableContent){
|
if(blockName != null && t instanceof UnlockableContent){
|
||||||
UnlockableContent content = (UnlockableContent) t;
|
UnlockableContent content = (UnlockableContent) t;
|
||||||
String key = "block." + blockName + "." + content.name + ".info";
|
String key = "block." + blockName + "." + content.name + ".info";
|
||||||
if(Core.bundle.has(key)){
|
if(Core.bundle.has(key) && !Vars.headless){
|
||||||
bt.table(desc -> {
|
bt.table(desc -> {
|
||||||
desc.image(Icon.info.getRegion()).size(20).color(Color.lightGray).scaling(Scaling.fit).padRight(8).padLeft(12);
|
desc.image(Icon.info.getRegion()).size(20).color(Color.lightGray).scaling(Scaling.fit).padRight(8).padLeft(12);
|
||||||
desc.add("[lightgray]" + Core.bundle.get(key));
|
desc.add("[lightgray]" + Core.bundle.get(key));
|
||||||
@@ -872,7 +872,7 @@ public class StatValues{
|
|||||||
private static Cell<?> note(Table table, String text){
|
private static Cell<?> note(Table table, String text){
|
||||||
table.row();
|
table.row();
|
||||||
return table.table(t -> {
|
return table.table(t -> {
|
||||||
t.image(Icon.arrowNoteSmall.getRegion()).size(15).color(Pal.stat).scaling(Scaling.fit).padRight(6).padLeft(12);
|
if(!Vars.headless) t.image(Icon.arrowNoteSmall.getRegion()).size(15).color(Pal.stat).scaling(Scaling.fit).padRight(6).padLeft(12);
|
||||||
t.add(text);
|
t.add(text);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,6 +133,38 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
}catch(NumberFormatException e){
|
}catch(NumberFormatException e){
|
||||||
throw new IOException("Invalid Steam ID: " + lobbyname);
|
throw new IOException("Invalid Steam ID: " + lobbyname);
|
||||||
}
|
}
|
||||||
|
}else if (ip.startsWith("steamserver:")){
|
||||||
|
String server = ip.substring("steamserver:".length());
|
||||||
|
try{
|
||||||
|
SteamID serverID = SteamID.createFromNativeHandle(Long.parseLong(server));
|
||||||
|
if(!serverID.isValid()) throw new IOException("Invalid Steam ID structure: " + server);
|
||||||
|
|
||||||
|
Core.app.post(() -> {
|
||||||
|
currentLobby = null;
|
||||||
|
currentServer = serverID;
|
||||||
|
|
||||||
|
// Run success
|
||||||
|
if(success != null) success.run();
|
||||||
|
|
||||||
|
// Connect
|
||||||
|
Connect con = new Connect();
|
||||||
|
con.addressTCP = "steam:" + currentServer.getAccountID();
|
||||||
|
|
||||||
|
net.setClientConnected();
|
||||||
|
net.handleClientReceived(con);
|
||||||
|
Core.app.post(() -> { // TODO: This gets hidden and I can't figure out how to not do so.
|
||||||
|
ui.loadfrag.show("@connecting");
|
||||||
|
ui.loadfrag.setButton(() -> {
|
||||||
|
ui.loadfrag.hide();
|
||||||
|
netClient.disconnectQuietly();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Log.info("Initiated direct Steam P2P connection to server: @", currentServer.getAccountID());
|
||||||
|
});
|
||||||
|
}catch(NumberFormatException e){
|
||||||
|
throw new IOException("Failed to parse server Steam ID: " + server);
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
provider.connectClient(ip, port, success);
|
provider.connectClient(ip, port, success);
|
||||||
}
|
}
|
||||||
@@ -165,13 +197,11 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
@Override
|
@Override
|
||||||
public void disconnectClient(){
|
public void disconnectClient(){
|
||||||
if(isSteamClient()){
|
if(isSteamClient()){
|
||||||
if(currentLobby != null){
|
if(currentLobby != null) smat.leaveLobby(currentLobby);
|
||||||
smat.leaveLobby(currentLobby);
|
snet.closeP2PSessionWithUser(currentServer);
|
||||||
snet.closeP2PSessionWithUser(currentServer);
|
currentServer = null;
|
||||||
currentServer = null;
|
currentLobby = null;
|
||||||
currentLobby = null;
|
net.handleClientReceived(new Disconnect());
|
||||||
net.handleClientReceived(new Disconnect());
|
|
||||||
}
|
|
||||||
}else{
|
}else{
|
||||||
provider.disconnectClient();
|
provider.disconnectClient();
|
||||||
}
|
}
|
||||||
@@ -196,14 +226,14 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
@Override
|
@Override
|
||||||
public void hostServer(int port) throws IOException{
|
public void hostServer(int port) throws IOException{
|
||||||
provider.hostServer(port);
|
provider.hostServer(port);
|
||||||
smat.createLobby(Core.settings.getBool("steampublichost") ? LobbyType.Public : LobbyType.FriendsOnly, Core.settings.getInt("playerlimit"));
|
smat.createLobby(Core.settings.getBool("steampublichost2") ? LobbyType.Public : LobbyType.FriendsOnly, Core.settings.getInt("playerlimit"));
|
||||||
|
|
||||||
Core.app.post(() -> Core.app.post(() -> Core.app.post(() -> Log.info("Server: @\nClient: @\nActive: @", net.server(), net.client(), net.active()))));
|
Core.app.post(() -> Core.app.post(() -> Core.app.post(() -> Log.info("Server: @\nClient: @\nActive: @", net.server(), net.client(), net.active()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateLobby(){
|
public void updateLobby(){
|
||||||
if(currentLobby != null && net.server()){
|
if(currentLobby != null && net.server()){
|
||||||
smat.setLobbyType(currentLobby, Core.settings.getBool("steampublichost") ? LobbyType.Public : LobbyType.FriendsOnly);
|
smat.setLobbyType(currentLobby, Core.settings.getBool("steampublichost2") ? LobbyType.Public : LobbyType.FriendsOnly);
|
||||||
smat.setLobbyMemberLimit(currentLobby, Core.settings.getInt("playerlimit"));
|
smat.setLobbyMemberLimit(currentLobby, Core.settings.getInt("playerlimit"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -411,6 +441,13 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
}else if(steamIDRemote.equals(currentServer)){
|
}else if(steamIDRemote.equals(currentServer)){
|
||||||
Log.info("Disconnected! @: @", steamIDRemote.getAccountID(), sessionError);
|
Log.info("Disconnected! @: @", steamIDRemote.getAccountID(), sessionError);
|
||||||
net.handleClientReceived(new Disconnect());
|
net.handleClientReceived(new Disconnect());
|
||||||
|
|
||||||
|
Core.app.post(() -> {
|
||||||
|
ui.loadfrag.hide();
|
||||||
|
ui.showErrorMessage(Core.bundle.format("cantconnect", sessionError.name()));
|
||||||
|
net.handleClientReceived(new Disconnect());
|
||||||
|
currentServer = null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@
|
|||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>MinimumOSVersion</key>
|
<key>MinimumOSVersion</key>
|
||||||
<string>12.0.0</string>
|
<string>13.0.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>${app.name}</string>
|
<string>${app.name}</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
|
|||||||
Reference in New Issue
Block a user