Compare commits
136 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41b22ba6a6 | ||
|
|
b1fed0346c | ||
|
|
4462bcca43 | ||
|
|
99a3967918 | ||
|
|
7faa0f119e | ||
|
|
47b8e8d9fa | ||
|
|
b2fc824277 | ||
|
|
c3ab407040 | ||
|
|
2bfc23c216 | ||
|
|
12e1f328e8 | ||
|
|
fdc942cc6c | ||
|
|
3d507ae473 | ||
|
|
580fcd1fbc | ||
|
|
8ec2e40610 | ||
|
|
5271edf9eb | ||
|
|
7ca1663d89 | ||
|
|
9e53f3d86b | ||
|
|
2fd3c25beb | ||
|
|
2759aa2793 | ||
|
|
6ac865be9f | ||
|
|
f4281d260b | ||
|
|
6ea4570ae8 | ||
|
|
ca016df40d | ||
|
|
96d99f68b2 | ||
|
|
4ff697e19b | ||
|
|
6c59018d9f | ||
|
|
bdd6a0e08c | ||
|
|
9f3a1cac1b | ||
|
|
813408d6ee | ||
|
|
3509b56a51 | ||
|
|
09e0e441c5 | ||
|
|
155b7638f9 | ||
|
|
785bd44dbe | ||
|
|
0ee8c07904 | ||
|
|
cdbad21daa | ||
|
|
a0fc8accff | ||
|
|
a2e2b867b0 | ||
|
|
35ec122e2f | ||
|
|
69737594cc | ||
|
|
738e75253d | ||
|
|
e20505508e | ||
|
|
96b26cafd4 | ||
|
|
761b357e46 | ||
|
|
6a053f2f45 | ||
|
|
c877c3416e | ||
|
|
126baa93d7 | ||
|
|
7dce2ee9ec | ||
|
|
16b9d68773 | ||
|
|
4ee2ce3ba5 | ||
|
|
d7e55e83da | ||
|
|
335cd0c8a1 | ||
|
|
c01ad67614 | ||
|
|
34d8ce59cb | ||
|
|
5c4f3171f7 | ||
|
|
ae924e6e2b | ||
|
|
ca6723e696 | ||
|
|
dc02678a6d | ||
|
|
e5d16a73c5 | ||
|
|
85d3680094 | ||
|
|
b3a91f50c1 | ||
|
|
29311806a9 | ||
|
|
0b9483cffc | ||
|
|
fa06d2c20b | ||
|
|
d81efe4f71 | ||
|
|
ed598e203c | ||
|
|
5596354454 | ||
|
|
716702623d | ||
|
|
e2658ba497 | ||
|
|
30070ce759 | ||
|
|
c26671fd4b | ||
|
|
df994a2ebd | ||
|
|
287dc35640 | ||
|
|
a3ccdce0eb | ||
|
|
4a05c9547a | ||
|
|
3311e40906 | ||
|
|
b8842a34ae | ||
|
|
cc221d669a | ||
|
|
6a75d84f48 | ||
|
|
9622d6b401 | ||
|
|
44c28e2af0 | ||
|
|
f754f386c9 | ||
|
|
795edb2494 | ||
|
|
f5701ba3c4 | ||
|
|
772f3ceb5f | ||
|
|
4b6a48a30f | ||
|
|
43e857e810 | ||
|
|
cd88400154 | ||
|
|
1d14fa78bf | ||
|
|
02db63aa91 | ||
|
|
4eab4ab569 | ||
|
|
12a8797019 | ||
|
|
030d66fb73 | ||
|
|
9825d2f746 | ||
|
|
f8af593177 | ||
|
|
16d7a368c6 | ||
|
|
3701ac131e | ||
|
|
ec00f59b82 | ||
|
|
2da4408dd1 | ||
|
|
692718d4ea | ||
|
|
84d87e7e9f | ||
|
|
0036efba0c | ||
|
|
34c4aa07de | ||
|
|
2dfa238ff3 | ||
|
|
a093ba5511 | ||
|
|
24420c4371 | ||
|
|
24d3054bac | ||
|
|
7880135824 | ||
|
|
4b6541ae4e | ||
|
|
339d87ad78 | ||
|
|
052b47fbe4 | ||
|
|
b5c1972040 | ||
|
|
6c26edbd84 | ||
|
|
192588d373 | ||
|
|
a3100980dc | ||
|
|
f4c7637071 | ||
|
|
3a91460e24 | ||
|
|
b70c08c2ec | ||
|
|
8e89b24e5b | ||
|
|
76af0228c1 | ||
|
|
a3385df88b | ||
|
|
5c3ecaabb5 | ||
|
|
adb03c465b | ||
|
|
5ea4688e88 | ||
|
|
8cb830ba41 | ||
|
|
3819e327e9 | ||
|
|
51fe07daef | ||
|
|
dc0904a6c7 | ||
|
|
feba9d677e | ||
|
|
582f05fa33 | ||
|
|
061357e1df | ||
|
|
c055407249 | ||
|
|
e1685ef46c | ||
|
|
22564de3c8 | ||
|
|
ce065f0324 | ||
|
|
4eca2b4b0b | ||
|
|
04b1ba31a9 |
6
.github/workflows/pr.yml
vendored
6
.github/workflows/pr.yml
vendored
@@ -8,10 +8,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up JDK 16
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 16
|
java-version: 17
|
||||||
|
- name: Setup Gradle
|
||||||
|
uses: gradle/gradle-build-action@v2
|
||||||
- name: Run unit tests and build JAR
|
- name: Run unit tests and build JAR
|
||||||
run: ./gradlew test desktop:dist
|
run: ./gradlew test desktop:dist
|
||||||
- name: Upload desktop JAR for testing
|
- name: Upload desktop JAR for testing
|
||||||
|
|||||||
2
.github/workflows/push.yml
vendored
2
.github/workflows/push.yml
vendored
@@ -21,6 +21,8 @@ jobs:
|
|||||||
uses: actions/setup-java@v1
|
uses: actions/setup-java@v1
|
||||||
with:
|
with:
|
||||||
java-version: 17
|
java-version: 17
|
||||||
|
- name: Setup Gradle
|
||||||
|
uses: gradle/gradle-build-action@v2
|
||||||
- name: Update bundles
|
- name: Update bundles
|
||||||
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
if: ${{ github.repository == 'Anuken/Mindustry' }}
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Do not submit something without at least running the game to see if it compiles.
|
|||||||
If you are submitting a new block, make sure it has a name and description, and that it works correctly in-game. If you are changing existing block mechanics, test them out first.
|
If you are submitting a new block, make sure it has a name and description, and that it works correctly in-game. If you are changing existing block mechanics, test them out first.
|
||||||
|
|
||||||
### Do not make large changes before discussing them first.
|
### Do not make large changes before discussing them first.
|
||||||
If you are interested in adding a large mechanic/feature or changing large amounts of code, first contact me (Anuken) via [Discord](https://discord.gg/mindustry) (preferred method) or via e-mail (*anukendev@gmail.com*).
|
If you are interested in adding a large mechanic/feature or changing large amounts of code, first contact me (Anuken) via [Discord](https://discord.gg/mindustry) - either via PM or by posting in the `#pulls` channel.
|
||||||
For most changes, this should not be necessary. I just want to know if you're doing something big so I can offer advice and/or make sure you're not wasting your time on it.
|
For most changes, this should not be necessary. I just want to know if you're doing something big so I can offer advice and/or make sure you're not wasting your time on it.
|
||||||
|
|
||||||
### Do not make formatting PRs.
|
### Do not make formatting PRs.
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1468,9 +1468,9 @@ block.incinerator.description = Vaporizes any item or liquid it receives.
|
|||||||
block.power-void.description = Voids all power inputted. Sandbox only.
|
block.power-void.description = Voids all power inputted. Sandbox only.
|
||||||
block.power-source.description = Infinitely outputs power. Sandbox only.
|
block.power-source.description = Infinitely outputs power. Sandbox only.
|
||||||
block.item-source.description = Infinitely outputs items. Sandbox only.
|
block.item-source.description = Infinitely outputs items. Sandbox only.
|
||||||
block.item-void.description = Destroys any items. Sandbox only.
|
block.item-void.description = Destroys inputted items. Sandbox only.
|
||||||
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
||||||
block.liquid-void.description = Removes any liquids. Sandbox only.
|
block.liquid-void.description = Destroys inputted liquids. Sandbox only.
|
||||||
block.payload-source.description = Infinitely outputs payloads. Sandbox only.
|
block.payload-source.description = Infinitely outputs payloads. Sandbox only.
|
||||||
block.payload-void.description = Destroys any payloads. Sandbox only.
|
block.payload-void.description = Destroys any payloads. Sandbox only.
|
||||||
block.copper-wall.description = Protects structures from enemy projectiles.
|
block.copper-wall.description = Protects structures from enemy projectiles.
|
||||||
|
|||||||
@@ -1497,7 +1497,7 @@ block.router.details = Nezbytné zlo. Použití hned u produkčních vstupů se
|
|||||||
block.distributor.description = Rozděluje vstupní položky rovnoměrně do sedmi výstupů.
|
block.distributor.description = Rozděluje vstupní položky rovnoměrně do sedmi výstupů.
|
||||||
block.overflow-gate.description = Pokud je směr vpřed ucpán, posílá vstupní položky do stran. Nelze použít vedle jiné brány.
|
block.overflow-gate.description = Pokud je směr vpřed ucpán, posílá vstupní položky do stran. Nelze použít vedle jiné brány.
|
||||||
block.underflow-gate.description = Pokud je směr do stran ucpán, posílá vstupní položky vpřed. Nelze použít vedle jiné brány.
|
block.underflow-gate.description = Pokud je směr do stran ucpán, posílá vstupní položky vpřed. Nelze použít vedle jiné brány.
|
||||||
block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Sesere dávku položek a vystřelí ji k dalšímu hromadnému přenašeči.
|
block.mass-driver.description = Konstrukce pro přepravu položek na velkou vzdálenost. Shromáždí dávku položek a vystřelí ji k dalšímu hromadnému přenašeči.
|
||||||
block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii.
|
block.mechanical-pump.description = Pumpuje kapalinu a předává ji dál. Nevyžaduje energii.
|
||||||
block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii.
|
block.rotary-pump.description = Pumpuje kapalinu a předává ji dál. Vyžaduje energii.
|
||||||
block.thermal-pump.description = Pumpuje kapalinu a předává ji dál.
|
block.thermal-pump.description = Pumpuje kapalinu a předává ji dál.
|
||||||
|
|||||||
@@ -596,7 +596,7 @@ sectors.stored = Gelagert:
|
|||||||
sectors.resume = Weiterspielen
|
sectors.resume = Weiterspielen
|
||||||
sectors.launch = Start
|
sectors.launch = Start
|
||||||
sectors.select = Auswählen
|
sectors.select = Auswählen
|
||||||
sectors.nonelaunch = [lightgray]none (sun)
|
sectors.nonelaunch = [lightgray]keiner (Sonne)
|
||||||
sectors.rename = Sektor umbenennen
|
sectors.rename = Sektor umbenennen
|
||||||
sectors.enemybase = [scarlet]Gegnerische Basis
|
sectors.enemybase = [scarlet]Gegnerische Basis
|
||||||
sectors.vulnerable = [scarlet]Angriffsgefährdet
|
sectors.vulnerable = [scarlet]Angriffsgefährdet
|
||||||
@@ -746,7 +746,7 @@ stat.drillspeed = Bohrgeschwindigkeit
|
|||||||
stat.boosteffect = Verstärkungseffekt
|
stat.boosteffect = Verstärkungseffekt
|
||||||
stat.maxunits = Max. aktive Einheiten
|
stat.maxunits = Max. aktive Einheiten
|
||||||
stat.health = Lebenspunkte
|
stat.health = Lebenspunkte
|
||||||
stat.armor = Armor
|
stat.armor = Rüstung
|
||||||
stat.buildtime = Baudauer
|
stat.buildtime = Baudauer
|
||||||
stat.maxconsecutive = Max. Konsekutive
|
stat.maxconsecutive = Max. Konsekutive
|
||||||
stat.buildcost = Baukosten
|
stat.buildcost = Baukosten
|
||||||
@@ -821,7 +821,7 @@ bullet.damage = [stat]{0}[lightgray] Schaden
|
|||||||
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
bullet.splashdamage = [stat]{0}[lightgray] Flächenschaden ~[stat] {1}[lightgray] Kacheln
|
||||||
bullet.incendiary = [stat]entzündend
|
bullet.incendiary = [stat]entzündend
|
||||||
bullet.homing = [stat]zielsuchend
|
bullet.homing = [stat]zielsuchend
|
||||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
bullet.frags = [stat]{0}[lightgray]x Splittergeschosse:
|
||||||
bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden
|
bullet.lightning = [stat]{0}[lightgray]x Blitz ~ [stat]{1}[lightgray] Schaden
|
||||||
bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden
|
bullet.buildingdamage = [stat]{0}%[lightgray]Blockschaden
|
||||||
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
bullet.knockback = [stat]{0}[lightgray] zurückstoßend
|
||||||
@@ -860,7 +860,7 @@ category.items = Materialien
|
|||||||
category.crafting = Erzeugung
|
category.crafting = Erzeugung
|
||||||
category.function = Funktion
|
category.function = Funktion
|
||||||
category.optional = Optionale Zusätze
|
category.optional = Optionale Zusätze
|
||||||
setting.skipcoreanimation.name = Skip Core Launch/Land Animation
|
setting.skipcoreanimation.name = Kern Start- und Lande-Animation überspringen
|
||||||
setting.landscape.name = Landschaft sperren
|
setting.landscape.name = Landschaft sperren
|
||||||
setting.shadows.name = Schatten
|
setting.shadows.name = Schatten
|
||||||
setting.blockreplace.name = Automatische Blockvorschläge
|
setting.blockreplace.name = Automatische Blockvorschläge
|
||||||
@@ -1231,8 +1231,8 @@ block.door-large.name = Großes Tor
|
|||||||
block.duo.name = Doppelgeschütz
|
block.duo.name = Doppelgeschütz
|
||||||
block.scorch.name = Scatter
|
block.scorch.name = Scatter
|
||||||
block.scatter.name = Luftgeschütz
|
block.scatter.name = Luftgeschütz
|
||||||
block.hail.name = Hail
|
block.hail.name = Hagel
|
||||||
block.lancer.name = Lancer
|
block.lancer.name = Lancier
|
||||||
block.conveyor.name = Förderband
|
block.conveyor.name = Förderband
|
||||||
block.titanium-conveyor.name = Titan-Förderband
|
block.titanium-conveyor.name = Titan-Förderband
|
||||||
block.plastanium-conveyor.name = Plastanium-Förderband
|
block.plastanium-conveyor.name = Plastanium-Förderband
|
||||||
|
|||||||
@@ -1223,7 +1223,7 @@ block.titanium-wall.name = Muro de Titanio
|
|||||||
block.titanium-wall-large.name = Muro de Titanio grande
|
block.titanium-wall-large.name = Muro de Titanio grande
|
||||||
block.plastanium-wall.name = Muro de Plastanio
|
block.plastanium-wall.name = Muro de Plastanio
|
||||||
block.plastanium-wall-large.name = Muro de Plastanio grande
|
block.plastanium-wall-large.name = Muro de Plastanio grande
|
||||||
block.phase-wall.name = Muro de Fase grande
|
block.phase-wall.name = Muro de Fase
|
||||||
block.phase-wall-large.name = Muro de Fase grande
|
block.phase-wall-large.name = Muro de Fase grande
|
||||||
block.thorium-wall.name = Muro de Torio
|
block.thorium-wall.name = Muro de Torio
|
||||||
block.thorium-wall-large.name = Muro de Torio grande
|
block.thorium-wall-large.name = Muro de Torio grande
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ screenshot.invalid = Masiyadong malaki ang mapa; maaaring kulang ang memory para
|
|||||||
gameover = Tapos Na Ang Laro
|
gameover = Tapos Na Ang Laro
|
||||||
gameover.disconnect = Disconnect
|
gameover.disconnect = Disconnect
|
||||||
gameover.pvp = Ang[accent] {0}[] team ay nanalo!
|
gameover.pvp = Ang[accent] {0}[] team ay nanalo!
|
||||||
gameover.waiting = [accent]Waiting for next map...
|
gameover.waiting = [accent]Hintayin ang bagong map...
|
||||||
highscore = [accent]Panibagong mataas na Iskor!
|
highscore = [accent]Panibagong mataas na Iskor!
|
||||||
copied = Kinopya.
|
copied = Kinopya.
|
||||||
indev.notready = This part of the game isn't ready yet
|
indev.notready = Ang bahaging ito ng laro ay hindi pa handa
|
||||||
indev.campaign = [accent]Congratulations! You've reached the end of the campaign![]\n\nThis is as far as the content goes right now. Interplanetary travel will be added in future updates.
|
indev.campaign = [accent]Congratulations! Natapos Mo Na Ang Campaign![]\n\nHanggang dito na lang ang nilalaman ngayon. Interplanetary travel ay idadagdag sa hinaharap na mga updates.
|
||||||
|
|
||||||
load.sound = Mga Tunog
|
load.sound = Mga Tunog
|
||||||
load.map = Mga Mapa
|
load.map = Mga Mapa
|
||||||
@@ -65,19 +65,19 @@ schematic.saved = Na-i-adya na ang schematic.
|
|||||||
schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala.
|
schematic.delete.confirm = Ang schematic na'to ay tuluyang mawawala.
|
||||||
schematic.rename = Palitan Ang Pangalan ng Schematic
|
schematic.rename = Palitan Ang Pangalan ng Schematic
|
||||||
schematic.info = {0}x{1}, {2} blocks
|
schematic.info = {0}x{1}, {2} blocks
|
||||||
schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
|
schematic.disabled = [scarlet]Schematics disabled[]\nBawal Ka Gumamit Nang Schematics Sa Itong [accent]map[] or [accent]server.
|
||||||
schematic.tags = Tags:
|
schematic.tags = Tags:
|
||||||
schematic.edittags = Edit Tags
|
schematic.edittags = Edit Tags
|
||||||
schematic.addtag = Add Tag
|
schematic.addtag = Mag Add Nang Tag
|
||||||
schematic.texttag = Text Tag
|
schematic.texttag = Text Tag
|
||||||
schematic.icontag = Icon Tag
|
schematic.icontag = Icon Tag
|
||||||
schematic.renametag = Rename Tag
|
schematic.renametag = Rename Tag
|
||||||
schematic.tagdelconfirm = Delete this tag completely?
|
schematic.tagdelconfirm = I-delete itong tag?
|
||||||
schematic.tagexists = That tag already exists.
|
schematic.tagexists = Meron na itong tag na ganito.
|
||||||
stats = Stats
|
stats = Stats
|
||||||
|
|
||||||
stat.wave = Wave na Nalagpasan:[accent] {0}
|
stat.wave = Wave na Nalagpasan:[accent] {0}
|
||||||
stat.unitsCreated = Units Created:[accent] {0}
|
stat.unitsCreated = Nagawang Units:[accent] {0}
|
||||||
stat.enemiesDestroyed = Tinalong Kalaban:[accent] {0}
|
stat.enemiesDestroyed = Tinalong Kalaban:[accent] {0}
|
||||||
stat.built = Gusaling Itinayo:[accent] {0}
|
stat.built = Gusaling Itinayo:[accent] {0}
|
||||||
stat.destroyed = Gusaling Nawasak:[accent] {0}
|
stat.destroyed = Gusaling Nawasak:[accent] {0}
|
||||||
@@ -90,17 +90,17 @@ level.highscore = Pinakamataas na Iskor: [accent]{0}
|
|||||||
level.select = Mamili ng Lebel
|
level.select = Mamili ng Lebel
|
||||||
level.mode = Paraan ng Paglalaro:
|
level.mode = Paraan ng Paglalaro:
|
||||||
coreattack = < Ang core ay inaatake! >
|
coreattack = < Ang core ay inaatake! >
|
||||||
nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nmalapit ka nang mamatay
|
nearpoint = [[ [scarlet]UMALIS KAAGAD SA DROP POINT[] ]\nikaw ay mamamatay
|
||||||
database = Database ng Core
|
database = Database ng Core
|
||||||
database.button = Database
|
database.button = Database
|
||||||
savegame = I-adya ang Laro
|
savegame = I-save ang Laro
|
||||||
loadgame = Load Game
|
loadgame = I-Load Game
|
||||||
joingame = Sumali sa Laro
|
joingame = Sumali nang Laro
|
||||||
customgame = Kustom na Laro
|
customgame = Kustom na Laro
|
||||||
newgame = Bagong Laro
|
newgame = Bagong Laro
|
||||||
none = <wala>
|
none = <wala>
|
||||||
none.found = [lightgray]<none found>
|
none.found = [lightgray]<walang nahanap>
|
||||||
none.inmap = [lightgray]<none in map>
|
none.inmap = [lightgray]<wala sa map>
|
||||||
minimap = Minimap
|
minimap = Minimap
|
||||||
position = Posisyon
|
position = Posisyon
|
||||||
close = Isara
|
close = Isara
|
||||||
@@ -120,7 +120,7 @@ uploadingpreviewfile = Ini-a-upload ang Preview File
|
|||||||
committingchanges = Gumagawa ng mga Pagbabago
|
committingchanges = Gumagawa ng mga Pagbabago
|
||||||
done = Tapos Na
|
done = Tapos Na
|
||||||
feature.unsupported = Hindi suportado ng 'yong device ang feature na'to.
|
feature.unsupported = Hindi suportado ng 'yong device ang feature na'to.
|
||||||
mods.initfailed = [red]⚠[] The previous Mindustry instance failed to initialize. This was likely caused by misbehaving mods.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
|
mods.initfailed = [red]⚠[] Nabigong masimulan ang nakaraang instance ng Mindustry. Malamang na sanhi ito ng maling pagkilos ng mga mod.\n\nTo prevent a crash loop, [red]all mods have been disabled.[]
|
||||||
mods = Mga Mod
|
mods = Mga Mod
|
||||||
mods.none = [lightgray]Walang mga mod na nahanap!
|
mods.none = [lightgray]Walang mga mod na nahanap!
|
||||||
mods.guide = Gabay para sa Paggawa ng Mod
|
mods.guide = Gabay para sa Paggawa ng Mod
|
||||||
@@ -160,14 +160,14 @@ mod.folder.missing = Tanging mga mod lang nasa loob ng folder ay maaaring ma-ila
|
|||||||
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.
|
||||||
|
|
||||||
about.button = About
|
about.button = About
|
||||||
name = Name:
|
name = Pangalan:
|
||||||
noname = Pick a[accent] player name[] first.
|
noname = Pumili ng[accent] Pangalan[] muna.
|
||||||
planetmap = Planet Map
|
planetmap = Planet Map
|
||||||
launchcore = Launch Core
|
launchcore = I-Launch Ang Core
|
||||||
filename = File Name:
|
filename = File Name:
|
||||||
unlocked = New content unlocked!
|
unlocked = Bagong content naka-unlock!
|
||||||
available = New research available!
|
available = Bagong research available!
|
||||||
unlock.incampaign = < Unlock in campaign for details >
|
unlock.incampaign = < I-unlock sa campaign para sa detalye >
|
||||||
completed = [accent]Completed
|
completed = [accent]Completed
|
||||||
techtree = Tech Tree
|
techtree = Tech Tree
|
||||||
research.legacy = [accent]5.0[] research data found.\nDo you want to [accent]load this data[], or [accent]discard it[] and restart research in the new campaign (recommended)?
|
research.legacy = [accent]5.0[] research data found.\nDo you want to [accent]load this data[], or [accent]discard it[] and restart research in the new campaign (recommended)?
|
||||||
@@ -180,29 +180,29 @@ research.progress = {0}% complete
|
|||||||
players = {0} players
|
players = {0} players
|
||||||
players.single = {0} player
|
players.single = {0} player
|
||||||
players.search = search
|
players.search = search
|
||||||
players.notfound = [gray]no players found
|
players.notfound = [gray]walang nahanap na players
|
||||||
server.closing = [accent]Closing server...
|
server.closing = [accent]Sinasarado ang server...
|
||||||
server.kicked.kick = You have been kicked from the server!
|
server.kicked.kick = Sinipa ka sa server!
|
||||||
server.kicked.whitelist = You are not whitelisted here.
|
server.kicked.whitelist = Hindi ka naka whitelist.
|
||||||
server.kicked.serverClose = Server closed .
|
server.kicked.serverClose = Server closed .
|
||||||
server.kicked.vote = You have been vote-kicked. Goodbye.
|
server.kicked.vote = Na-vote-kick ka. Paalam.
|
||||||
server.kicked.clientOutdated = Outdated client! Update your game!
|
server.kicked.clientOutdated = Outdated client! I-Update yung laro mo!
|
||||||
server.kicked.serverOutdated = Outdated server! Ask the host to update!
|
server.kicked.serverOutdated = Outdated server! Hilingin sa host na mag-update!
|
||||||
server.kicked.banned = You are banned on this server.
|
server.kicked.banned = Ikaw ay pinagbawalan sa server na ito.
|
||||||
server.kicked.typeMismatch = This server is not compatible with your build type.
|
server.kicked.typeMismatch = Ang server na ito ay hindi tugma sa iyong uri ng build.
|
||||||
server.kicked.playerLimit = This server is full. Wait for an empty slot.
|
server.kicked.playerLimit = Puno na ang server na ito. maghintay ng libreng slot.
|
||||||
server.kicked.recentKick = You have been kicked recently.\nWait before connecting again.
|
server.kicked.recentKick = na-kick ka recently.\nMaghintay bago kumonekta muli.
|
||||||
server.kicked.nameInUse = There is someone with that name\nalready on this server.
|
server.kicked.nameInUse = May ganyang pangalan\nsa server na ito.
|
||||||
server.kicked.nameEmpty = Your chosen name is invalid.
|
server.kicked.nameEmpty = Invalid ang pangalan mo.
|
||||||
server.kicked.idInUse = You are already on this server! Connecting with two accounts is not permitted.
|
server.kicked.idInUse = Nandito kana sa server, bawal mag-join gamit nang dalawan accounts.
|
||||||
server.kicked.customClient = This server does not support custom builds. Download an official version.
|
server.kicked.customClient = Hindi sinusuportahan ng server na ito ang mga custom na build. Mag-download ng opisyal na bersyon.
|
||||||
server.kicked.gameover = Game over!
|
server.kicked.gameover = Game over!
|
||||||
server.kicked.serverRestarting = The server is restarting.
|
server.kicked.serverRestarting = Nag rerestart ang server.
|
||||||
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
|
server.versions = Your version:[accent] {0}[]\nServer version:[accent] {1}[]
|
||||||
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
|
host.info = The [accent]host[] button hosts a server on port [scarlet]6567[]. \nAnybody on the same [lightgray]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[lightgray]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings. Note that public networks sometimes do not allow server discovery.
|
||||||
join.info = Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] or [accent]global[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]If you want to connect to someone by IP, you would need to ask the host for their IP, which can be found by googling "my ip" from their device.
|
join.info = Dito, maaari mong ipasok ang isang [accent]server IP[] para ikonekta, o pag diskubre ng [accent]local network[] or [accent]global[] servers pwedeng konektahin.\nBoth LAN and WAN multiplayer is supported.\n\n[lightgray]If you want to connect to someone by IP, you would need to ask the host for their IP, which can be found by googling "my ip" from their device.
|
||||||
hostserver = Host Multiplayer Game
|
hostserver = Host Multiplayer Game
|
||||||
invitefriends = Invite Friends
|
invitefriends = Mag-imbita ng mga kaibigan
|
||||||
hostserver.mobile = Host\nGame
|
hostserver.mobile = Host\nGame
|
||||||
host = Host
|
host = Host
|
||||||
hosting = [accent]Opening server...
|
hosting = [accent]Opening server...
|
||||||
@@ -210,44 +210,44 @@ hosts.refresh = Refresh
|
|||||||
hosts.discovering = Discovering LAN games
|
hosts.discovering = Discovering LAN games
|
||||||
hosts.discovering.any = Discovering games
|
hosts.discovering.any = Discovering games
|
||||||
server.refreshing = Refreshing server
|
server.refreshing = Refreshing server
|
||||||
hosts.none = [lightgray]No local games found!
|
hosts.none = [lightgray]walang nahanap na local games!
|
||||||
host.invalid = [scarlet]Can't connect to host.
|
host.invalid = [scarlet]Can't connect to host.
|
||||||
|
|
||||||
servers.local = Local Servers
|
servers.local = Local Servers
|
||||||
servers.local.steam = Open Games & Local Servers
|
servers.local.steam = Open Games & Local Servers
|
||||||
servers.remote = Remote Servers
|
servers.remote = Remote Servers
|
||||||
servers.global = Community Servers
|
servers.global = Community Servers
|
||||||
servers.disclaimer = Community servers are [accent]not[] owned or controlled by the developer.\n\nServers may contain user-generated content that is not appropriate for all ages.
|
servers.disclaimer = Ang mga server ng komunidad ay [accent]hindi pagmamay-ari o kinokontrol[] ng developer.\n\nServers may contain user-generated content that is not appropriate for all ages.
|
||||||
servers.showhidden = Show Hidden Servers
|
servers.showhidden = Show Hidden Servers
|
||||||
server.shown = Shown
|
server.shown = Shown
|
||||||
server.hidden = Hidden
|
server.hidden = Hidden
|
||||||
|
|
||||||
trace = Trace Player
|
trace = Trace Player
|
||||||
trace.playername = Player name: [accent]{0}
|
trace.playername = Pangalan ng Player: [accent]{0}
|
||||||
trace.ip = IP: [accent]{0}
|
trace.ip = IP: [accent]{0}
|
||||||
trace.id = Unique ID: [accent]{0}
|
trace.id = Unique ID: [accent]{0}
|
||||||
trace.mobile = Mobile Client: [accent]{0}
|
trace.mobile = Mobile Client: [accent]{0}
|
||||||
trace.modclient = Custom Client: [accent]{0}
|
trace.modclient = Custom Client: [accent]{0}
|
||||||
trace.times.joined = Times Joined: [accent]{0}
|
trace.times.joined = Times Joined: [accent]{0}
|
||||||
trace.times.kicked = Times Kicked: [accent]{0}
|
trace.times.kicked = Times Kicked: [accent]{0}
|
||||||
invalidid = Invalid client ID! Submit a bug report.
|
invalidid = Di-wastong client ID! Magsumite ng ulat ng bug.
|
||||||
server.bans = Bans
|
server.bans = Bans
|
||||||
server.bans.none = No banned players found!
|
server.bans.none = walang nahanap na banned players!
|
||||||
server.admins = Admins
|
server.admins = Admins
|
||||||
server.admins.none = No admins found!
|
server.admins.none = walang nahnap na admin!
|
||||||
server.add = Add Server
|
server.add = Add Server
|
||||||
server.delete = Are you sure you want to delete this server?
|
server.delete = Sigurado ka bang gusto mong tanggalin ang server na ito?
|
||||||
server.edit = Edit Server
|
server.edit = Edit Server
|
||||||
server.outdated = [scarlet]Outdated Server![]
|
server.outdated = [scarlet]Outdated Server![]
|
||||||
server.outdated.client = [scarlet]Outdated Client![]
|
server.outdated.client = [scarlet]Outdated Client![]
|
||||||
server.version = [gray]v{0} {1}
|
server.version = [gray]v{0} {1}
|
||||||
server.custombuild = [accent]Custom Build
|
server.custombuild = [accent]Custom Build
|
||||||
confirmban = Are you sure you want to ban "{0}[white]"?
|
confirmban = Sigurado ka bang gusto mong i-ban si "{0}[white]"?
|
||||||
confirmkick = Are you sure you want to kick "{0}[white]"?
|
confirmkick = Sigurado ka bang gusto mong i-kick si "{0}[white]"?
|
||||||
confirmvotekick = Are you sure you want to vote-kick "{0}[white]"?
|
confirmvotekick = Sigurado ka bang gusto mong i-vote-kick si "{0}[white]"?
|
||||||
confirmunban = Are you sure you want to unban this player?
|
confirmunban = Sigurado kabang i-unban ang player?
|
||||||
confirmadmin = Are you sure you want to make "{0}[white]" an admin?
|
confirmadmin = Sigurado ka bang gusto mong gawin si "{0}[white]" isang admin?
|
||||||
confirmunadmin = Are you sure you want to remove admin status from "{0}[white]"?
|
confirmunadmin = Sigurado kabang i-remove ang admin mula "{0}[white]"?
|
||||||
joingame.title = Join Game
|
joingame.title = Join Game
|
||||||
joingame.ip = Address:
|
joingame.ip = Address:
|
||||||
disconnect = Disconnected.
|
disconnect = Disconnected.
|
||||||
@@ -263,29 +263,29 @@ server.port = Port:
|
|||||||
server.addressinuse = Address already in use!
|
server.addressinuse = Address already in use!
|
||||||
server.invalidport = Invalid port number!
|
server.invalidport = Invalid port number!
|
||||||
server.error = [scarlet]Error hosting server.
|
server.error = [scarlet]Error hosting server.
|
||||||
save.new = New Save
|
save.new = Bagong Save
|
||||||
save.overwrite = Are you sure you want to overwrite\nthis save slot?
|
save.overwrite = Sigurado ka bang gusto mong i-overwrite ang save slot na ito?
|
||||||
overwrite = Overwrite
|
overwrite = Overwrite
|
||||||
save.none = No saves found!
|
save.none = Walang nahanap na save!
|
||||||
savefail = Failed to save game!
|
savefail = Hindi na save ang game!
|
||||||
save.delete.confirm = Are you sure you want to delete this save?
|
save.delete.confirm = Sigurado ka bang gusto mo i delete intong save?
|
||||||
save.delete = Delete
|
save.delete = Delete
|
||||||
save.export = Export Save
|
save.export = Export Save
|
||||||
save.import.invalid = [accent]This save is invalid!
|
save.import.invalid = [accent]Hindi valid ang intong save!
|
||||||
save.import.fail = [scarlet]Failed to import save: [accent]{0}
|
save.import.fail = [scarlet]Failed to import save: [accent]{0}
|
||||||
save.export.fail = [scarlet]Failed to export save: [accent]{0}
|
save.export.fail = [scarlet]Failed to export save: [accent]{0}
|
||||||
save.import = Import Save
|
save.import = Import Save
|
||||||
save.newslot = Save name:
|
save.newslot = Save name:
|
||||||
save.rename = Rename
|
save.rename = Rename
|
||||||
save.rename.text = New name:
|
save.rename.text = New name:
|
||||||
selectslot = Select a save.
|
selectslot = Pumili ng save.
|
||||||
slot = [accent]Slot {0}
|
slot = [accent]Slot {0}
|
||||||
editmessage = Edit Message
|
editmessage = I-edit Message
|
||||||
save.corrupted = Save file corrupted or invalid!
|
save.corrupted = Sira o corrupt ang itong save.
|
||||||
empty = <empty>
|
empty = <empty>
|
||||||
on = On
|
on = On
|
||||||
off = Off
|
off = Off
|
||||||
save.search = Search saved games...
|
save.search = I-Search ang mga saved games...
|
||||||
save.autosave = Autosave: {0}
|
save.autosave = Autosave: {0}
|
||||||
save.map = Map: {0}
|
save.map = Map: {0}
|
||||||
save.wave = Wave {0}
|
save.wave = Wave {0}
|
||||||
@@ -295,86 +295,86 @@ save.playtime = Playtime: {0}
|
|||||||
warning = Warning.
|
warning = Warning.
|
||||||
confirm = Confirm
|
confirm = Confirm
|
||||||
delete = Delete
|
delete = Delete
|
||||||
view.workshop = View In Workshop
|
view.workshop = Tingnan Sa Workshop
|
||||||
workshop.listing = Edit Workshop Listing
|
workshop.listing = I-edit ang Listahan sa Workshop
|
||||||
ok = OK
|
ok = OK
|
||||||
open = Open
|
open = Open
|
||||||
customize = Customize Rules
|
customize = I-customize ang Mga Panuntunan
|
||||||
cancel = Cancel
|
cancel = Cancel
|
||||||
openlink = Open Link
|
openlink = Open Link
|
||||||
copylink = Copy Link
|
copylink = Copy Link
|
||||||
back = Back
|
back = Back
|
||||||
max = Max
|
max = Max
|
||||||
crash.export = Export Crash Logs
|
crash.export = I-Export Crash Logs
|
||||||
crash.none = No crash logs found.
|
crash.none = Walang nahanap na crash logs.
|
||||||
crash.exported = Crash logs exported.
|
crash.exported = Na-export ang mga crash log.
|
||||||
data.export = Export Data
|
data.export = Export Data
|
||||||
data.import = Import Data
|
data.import = Import Data
|
||||||
data.openfolder = Open Data Folder
|
data.openfolder = Buksan ang Data Folder
|
||||||
data.exported = Data exported.
|
data.exported = Data exported.
|
||||||
data.invalid = This isn't valid game data.
|
data.invalid = Hindi ito wastong data.
|
||||||
data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
|
data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
|
||||||
quit.confirm = Are you sure you want to quit?
|
quit.confirm = Sigurado ka bang gusto mong mag quit?
|
||||||
loading = [accent]Loading...
|
loading = [accent]Loading...
|
||||||
downloading = [accent]Downloading...
|
downloading = [accent]Downloading...
|
||||||
saving = [accent]Saving...
|
saving = [accent]Saving...
|
||||||
respawn = [accent][[{0}][] to respawn in core
|
respawn = [accent][[{0}][] upang mag respawn sa core
|
||||||
cancelbuilding = [accent][[{0}][] to clear plan
|
cancelbuilding = [accent][[{0}][] para malinawan ang plano
|
||||||
selectschematic = [accent][[{0}][] to select+copy
|
selectschematic = [accent][[{0}][] to select+copy
|
||||||
pausebuilding = [accent][[{0}][] to pause building
|
pausebuilding = [accent][[{0}][] upang i-pause ang pag-build
|
||||||
resumebuilding = [scarlet][[{0}][] to resume building
|
resumebuilding = [scarlet][[{0}][] upang ipagpatuloy ang pag-build
|
||||||
enablebuilding = [scarlet][[{0}][] to enable building
|
enablebuilding = [scarlet][[{0}][] upang paganahin ang pag-build
|
||||||
showui = UI hidden.\nPress [accent][[{0}][] to show UI.
|
showui = UI hidden.\nPress [accent][[{0}][] to show UI.
|
||||||
wave = [accent]Wave {0}
|
wave = [accent]Wave {0}
|
||||||
wave.cap = [accent]Wave {0}/{1}
|
wave.cap = [accent]Wave {0}/{1}
|
||||||
wave.waiting = [lightgray]Wave in {0}
|
wave.waiting = [lightgray]Wave in {0}
|
||||||
wave.waveInProgress = [lightgray]Wave in progress
|
wave.waveInProgress = [lightgray]Wave in progress
|
||||||
waiting = [lightgray]Waiting...
|
waiting = [lightgray]Naghihintay...
|
||||||
waiting.players = Waiting for players...
|
waiting.players = Naghihintay sa mga manlalaro...
|
||||||
wave.enemies = [lightgray]{0} Enemies Remaining
|
wave.enemies = [lightgray]{0} Mga Natitirang Kaaway
|
||||||
wave.enemycores = [accent]{0}[lightgray] Enemy Cores
|
wave.enemycores = [accent]{0}[lightgray] Enemy Cores
|
||||||
wave.enemycore = [accent]{0}[lightgray] Enemy Core
|
wave.enemycore = [accent]{0}[lightgray] Enemy Core
|
||||||
wave.enemy = [lightgray]{0} Enemy Remaining
|
wave.enemy = [lightgray]{0} Natitirang Kaaway
|
||||||
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
|
||||||
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
|
||||||
loadimage = Load Image
|
loadimage = I-Load Image
|
||||||
saveimage = Save Image
|
saveimage = I-Save Image
|
||||||
unknown = Unknown
|
unknown = Unknown
|
||||||
custom = Custom
|
custom = Custom
|
||||||
builtin = Built-In
|
builtin = Built-In
|
||||||
map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
|
map.delete.confirm = Sigurado ka bang gusto mong tanggalin ang mapang ito? Ang gawaing ito ay hindi pwedeng baguhin!
|
||||||
map.random = [accent]Random Map
|
map.random = [accent]Random Map
|
||||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a[accent] orange[] core to this map in the editor.
|
map.nospawn = Ang mapa na ito ay walang anumang mga core para sa player upang i-spawn in! Add a[accent] orange[] core to this map in the editor.
|
||||||
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[scarlet] non-orange[] cores to this map in the editor.
|
map.nospawn.pvp = Ang mapa na ito ay walang anumang mga core ng kaaway para sa player upang i-spawn! Add[scarlet] non-orange[] cores to this map in the editor.
|
||||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[scarlet] red[] cores to this map in the editor.
|
map.nospawn.attack = Ang mapa na ito ay walang anumang mga core ng kaaway para sa pag-atake ng manlalaro! Add[scarlet] red[] cores to this map in the editor.
|
||||||
map.invalid = Error loading map: corrupted or invalid map file.
|
map.invalid = Error loading map: corrupted o sira na map file.
|
||||||
workshop.update = Update Item
|
workshop.update = Update Item
|
||||||
workshop.error = Error fetching workshop details: {0}
|
workshop.error = Error sa pagkuha ng mga detalye ng workshop: {0}
|
||||||
map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up!
|
map.publish.confirm = Sigurado ka bang gusto mong i-publish ang mapang ito?\n\n[lightgray]Tiyaking sumasang-ayon ka muna sa Workshop EULA, o hindi lalabas ang iyong mga mapa!
|
||||||
workshop.menu = Select what you would like to do with this item.
|
workshop.menu = Select what you would like to do with this item.
|
||||||
workshop.info = Item Info
|
workshop.info = Item Info
|
||||||
changelog = Changelog (optional):
|
changelog = Changelog (optional):
|
||||||
eula = Steam EULA
|
eula = Steam EULA
|
||||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
missing = Na-delete or na-remove and item na to.\n[lightgray]Awtomatikong na-unlink na ang listahan sa workshop.
|
||||||
publishing = [accent]Publishing...
|
publishing = [accent]Publishing...
|
||||||
publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up!
|
publish.confirm = Sigurado ka bang gusto mong i-publish ang mapang ito?\n\n[lightgray]Tiyaking sumasang-ayon ka muna sa Workshop EULA, o hindi lalabas ang iyong mga items!
|
||||||
publish.error = Error publishing item: {0}
|
publish.error = Error publishing item: {0}
|
||||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
steam.error = Failed to initialize Steam services.\nError: {0}
|
||||||
editor.cliffs = Walls To Cliffs
|
editor.cliffs = Walls To Cliffs
|
||||||
|
|
||||||
editor.brush = Brush
|
editor.brush = Brush
|
||||||
editor.openin = Open In Editor
|
editor.openin = I-Open sa Editor
|
||||||
editor.oregen = Ore Generation
|
editor.oregen = Ore Generation
|
||||||
editor.oregen.info = Ore Generation:
|
editor.oregen.info = Ore Generation:
|
||||||
editor.mapinfo = Map Info
|
editor.mapinfo = Map Info
|
||||||
editor.author = Author:
|
editor.author = Author:
|
||||||
editor.description = Description:
|
editor.description = Description:
|
||||||
editor.nodescription = A map must have a description of at least 4 characters before being published.
|
editor.nodescription = Dapat meron paglalarawan ng hindi bababa sa 4 na character bago i-publish.
|
||||||
editor.waves = Waves:
|
editor.waves = Waves:
|
||||||
editor.rules = Rules:
|
editor.rules = Rules:
|
||||||
editor.generation = Generation:
|
editor.generation = Generation:
|
||||||
editor.ingame = Edit In-Game
|
editor.ingame = Edit In-Game
|
||||||
editor.publish.workshop = Publish On Workshop
|
editor.publish.workshop = I-Publish Sa Workshop
|
||||||
editor.newmap = New Map
|
editor.newmap = New Map
|
||||||
editor.center = Center
|
editor.center = Center
|
||||||
editor.search = Search maps...
|
editor.search = Search maps...
|
||||||
@@ -383,7 +383,7 @@ editor.filters.mode = Gamemodes:
|
|||||||
editor.filters.type = Map Type:
|
editor.filters.type = Map Type:
|
||||||
editor.filters.search = Search In:
|
editor.filters.search = Search In:
|
||||||
editor.filters.author = Author
|
editor.filters.author = Author
|
||||||
editor.filters.description = Description
|
editor.filters.description = Deskripsyon
|
||||||
workshop = Workshop
|
workshop = Workshop
|
||||||
waves.title = Waves
|
waves.title = Waves
|
||||||
waves.remove = Remove
|
waves.remove = Remove
|
||||||
@@ -396,18 +396,18 @@ waves.max = max units
|
|||||||
waves.guardian = Guardian
|
waves.guardian = Guardian
|
||||||
waves.preview = Preview
|
waves.preview = Preview
|
||||||
waves.edit = Edit...
|
waves.edit = Edit...
|
||||||
waves.copy = Copy to Clipboard
|
waves.copy = I-Copy to Clipboard
|
||||||
waves.load = Load from Clipboard
|
waves.load = I-Load mula sa Clipboard
|
||||||
waves.invalid = Invalid waves in clipboard.
|
waves.invalid = Invalid waves in clipboard.
|
||||||
waves.copied = Waves copied.
|
waves.copied = Waves copied.
|
||||||
waves.none = No enemies defined.\nNote that empty wave layouts will automatically be replaced with the default layout.
|
waves.none = Walang tinukoy na mga kaaway.\nTandaan na ang mga walang laman na wave layout ay awtomatikong papalitan ng default na layout.
|
||||||
waves.sort = Sort By
|
waves.sort = Sort By
|
||||||
waves.sort.reverse = Reverse Sort
|
waves.sort.reverse = Reverse Sort
|
||||||
waves.sort.begin = Begin
|
waves.sort.begin = Begin
|
||||||
waves.sort.health = Health
|
waves.sort.health = Health
|
||||||
waves.sort.type = Type
|
waves.sort.type = Type
|
||||||
waves.units.hide = Hide All
|
waves.units.hide = Itago lahat
|
||||||
waves.units.show = Show All
|
waves.units.show = Ipakita lahat
|
||||||
|
|
||||||
wavemode.counts = counts
|
wavemode.counts = counts
|
||||||
wavemode.totals = totals
|
wavemode.totals = totals
|
||||||
@@ -421,13 +421,13 @@ editor.name = Name:
|
|||||||
editor.spawn = Spawn Unit
|
editor.spawn = Spawn Unit
|
||||||
editor.removeunit = Remove Unit
|
editor.removeunit = Remove Unit
|
||||||
editor.teams = Teams
|
editor.teams = Teams
|
||||||
editor.errorload = Error loading file.
|
editor.errorload = Error sa paglo-load ng file.
|
||||||
editor.errorsave = Error saving file.
|
editor.errorsave = Error sa pag-save ng file.
|
||||||
editor.errorimage = That's an image, not a map.\n\nIf you want to import a 3.5/build 40 map, use the 'Import Legacy Map' button in the editor.
|
editor.errorimage = Iyon ay isang imahe, hindi isang mapa.\n\nKung gusto mong mag-import ng 3.5/build 40 na mapa, gamitin ang button na 'Import Legacy Map' sa editor.
|
||||||
editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported.
|
editor.errorlegacy = Masyadong luma ang mapang ito, at gumagamit ng legacy na format ng mapa na hindi na sinusuportahan.
|
||||||
editor.errornot = This is not a map file.
|
editor.errornot = Ito ay hindi isang file ng mapa.
|
||||||
editor.errorheader = This map file is either not valid or corrupt.
|
editor.errorheader = Ang file ng mapa na ito ay maaaring hindi wasto o sira.
|
||||||
editor.errorname = Map has no name defined. Are you trying to load a save file?
|
editor.errorname = Walang tinukoy na pangalan ang mapa. Sinusubukan mo bang mag-load ng save file?
|
||||||
editor.update = Update
|
editor.update = Update
|
||||||
editor.randomize = Randomize
|
editor.randomize = Randomize
|
||||||
editor.apply = Apply
|
editor.apply = Apply
|
||||||
@@ -436,37 +436,37 @@ editor.resize = Resize
|
|||||||
editor.loadmap = Load Map
|
editor.loadmap = Load Map
|
||||||
editor.savemap = Save Map
|
editor.savemap = Save Map
|
||||||
editor.saved = Saved!
|
editor.saved = Saved!
|
||||||
editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
|
editor.save.noname = Walang pangalan ang iyong mapa! Itakda ang isa sa menu na 'impormasyon ng mapa'.
|
||||||
editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
|
editor.save.overwrite = Ino-overwrite ng iyong mapa ang isang built-in na mapa! Pumili ng ibang pangalan sa menu na 'impormasyon ng mapa'.
|
||||||
editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
|
editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
|
||||||
editor.import = Import...
|
editor.import = Import...
|
||||||
editor.importmap = Import Map
|
editor.importmap = Import Map
|
||||||
editor.importmap.description = Import an already existing map
|
editor.importmap.description = Mag-import ng umiiral nang mapa
|
||||||
editor.importfile = Import File
|
editor.importfile = Import File
|
||||||
editor.importfile.description = Import an external map file
|
editor.importfile.description = Mag-import ng panlabas na file ng mapa
|
||||||
editor.importimage = Import Image File
|
editor.importimage = Mag-import ng File ng Larawan
|
||||||
editor.importimage.description = Import an external map image file
|
editor.importimage.description = Mag-import ng panlabas na file ng imahe ng mapa
|
||||||
editor.export = Export...
|
editor.export = Export...
|
||||||
editor.exportfile = Export File
|
editor.exportfile = Export File
|
||||||
editor.exportfile.description = Export a map file
|
editor.exportfile.description = Mag-Export nang map file
|
||||||
editor.exportimage = Export Terrain Image
|
editor.exportimage = Export Terrain Image
|
||||||
editor.exportimage.description = Export an image file containing only basic terrain
|
editor.exportimage.description = Mag-export ng image file na naglalaman lamang ng basic terrain
|
||||||
editor.loadimage = Import Terrain
|
editor.loadimage = Import Terrain
|
||||||
editor.saveimage = Export Terrain
|
editor.saveimage = Export Terrain
|
||||||
editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit?
|
editor.unsaved = [scarlet]You have unsaved changes![]\nSigurado ka bang gusto mong mag-exit?
|
||||||
editor.resizemap = Resize Map
|
editor.resizemap = Resize Map
|
||||||
editor.mapname = Map Name:
|
editor.mapname = Map Name:
|
||||||
editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
|
editor.overwrite = [accent]Warning!\nIno-overwrite nito ang isang existing na mapa.
|
||||||
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?\n"[accent]{0}[]"
|
editor.overwrite.confirm = [scarlet]Warning![] Umiiral na ang isang mapa na may ganitong pangalan. Sigurado ka bang gusto mong i-overwrite ito?\n"[accent]{0}[]"
|
||||||
editor.exists = A map with this name already exists.
|
editor.exists = Umiiral na ang isang mapa na may ganitong pangalan.
|
||||||
editor.selectmap = Select a map to load:
|
editor.selectmap = Pumili ng mapa na ilo-load:
|
||||||
|
|
||||||
toolmode.replace = Replace
|
toolmode.replace = Replace
|
||||||
toolmode.replace.description = Draws only on solid blocks.
|
toolmode.replace.description = Gumuhit lamang sa mga solidong blocks.
|
||||||
toolmode.replaceall = Replace All
|
toolmode.replaceall = Replace All
|
||||||
toolmode.replaceall.description = Replace all blocks in map.
|
toolmode.replaceall.description = Palitan ang lahat ng mga blocks sa mapa.
|
||||||
toolmode.orthogonal = Orthogonal
|
toolmode.orthogonal = Orthogonal
|
||||||
toolmode.orthogonal.description = Draws only orthogonal lines.
|
toolmode.orthogonal.description = Gumuhit lamang ng mga orthogonal na linya.
|
||||||
toolmode.square = Square
|
toolmode.square = Square
|
||||||
toolmode.square.description = Square brush.
|
toolmode.square.description = Square brush.
|
||||||
toolmode.eraseores = Erase Ores
|
toolmode.eraseores = Erase Ores
|
||||||
@@ -476,7 +476,7 @@ toolmode.fillteams.description = Fill teams instead of blocks.
|
|||||||
toolmode.drawteams = Draw Teams
|
toolmode.drawteams = Draw Teams
|
||||||
toolmode.drawteams.description = Draw teams instead of blocks.
|
toolmode.drawteams.description = Draw teams instead of blocks.
|
||||||
|
|
||||||
filters.empty = [lightgray]No filters! Add one with the button below.
|
filters.empty = [lightgray]Walang mga filter! Magdagdag ng isa gamit ang button sa ibaba.
|
||||||
filter.distort = Distort
|
filter.distort = Distort
|
||||||
filter.noise = Noise
|
filter.noise = Noise
|
||||||
filter.enemyspawn = Enemy Spawn Select
|
filter.enemyspawn = Enemy Spawn Select
|
||||||
@@ -527,48 +527,48 @@ ping = Ping: {0}ms
|
|||||||
tps = TPS: {0}
|
tps = TPS: {0}
|
||||||
memory = Mem: {0}mb
|
memory = Mem: {0}mb
|
||||||
memory2 = Mem:\n {0}mb +\n {1}mb
|
memory2 = Mem:\n {0}mb +\n {1}mb
|
||||||
language.restart = Please restart your game for the language settings to take effect.
|
language.restart = Mangyaring i-restart ang iyong laro para magkabisa ang mga setting ng wika.
|
||||||
settings = Settings
|
settings = Settings
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Re-Take Tutorial
|
tutorial.retake = Muling Kumuha ng Tutorial
|
||||||
editor = Editor
|
editor = Editor
|
||||||
mapeditor = Map Editor
|
mapeditor = Map Editor
|
||||||
|
|
||||||
abandon = Abandon
|
abandon = Abandon
|
||||||
abandon.text = This zone and all its resources will be lost to the enemy.
|
abandon.text = Ang zone na ito at ang lahat ng mga mapagkukunan nito ay mawawala sa kaaway.
|
||||||
locked = Locked
|
locked = Locked
|
||||||
complete = [lightgray]Complete:
|
complete = [lightgray]Complete:
|
||||||
requirement.wave = Reach Wave {0} in {1}
|
requirement.wave = Reach Wave {0} in {1}
|
||||||
requirement.core = Destroy Enemy Core in {0}
|
requirement.core = Wasakin ang Enemy Core sa {0}
|
||||||
requirement.research = Research {0}
|
requirement.research = Research {0}
|
||||||
requirement.produce = Produce {0}
|
requirement.produce = Produce {0}
|
||||||
requirement.capture = Capture {0}
|
requirement.capture = Capture {0}
|
||||||
launch.text = Launch
|
launch.text = Launch
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Ang host lang ang makakapagsaliksik ng mga item.
|
||||||
map.multiplayer = Only the host can view sectors.
|
map.multiplayer = Ang host lang ang makakatingin sa mga sektor.
|
||||||
uncover = Uncover
|
uncover = Uncover
|
||||||
configure = Configure Loadout
|
configure = I-Configure ang Loadout
|
||||||
loadout = Loadout
|
loadout = Loadout
|
||||||
resources = Resources
|
resources = Resources
|
||||||
bannedblocks = Banned Blocks
|
bannedblocks = Mga Banned Blocks
|
||||||
bannedunits = Banned Units
|
bannedunits = Mga Banned Units
|
||||||
addall = Add All
|
addall = Add All
|
||||||
launch.from = Launching From: [accent]{0}
|
launch.from = Launching From: [accent]{0}
|
||||||
launch.destination = Destination: {0}
|
launch.destination = Destination: {0}
|
||||||
configure.invalid = Amount must be a number between 0 and {0}.
|
configure.invalid = Ang halaga ay dapat na isang numero sa pagitan ng 0 at {0}.
|
||||||
add = Add...
|
add = Add...
|
||||||
guardian = Guardian
|
guardian = Guardian
|
||||||
|
|
||||||
connectfail = [scarlet]Connection error:\n\n[accent]{0}
|
connectfail = [scarlet]Connection error:\n\n[accent]{0}
|
||||||
error.unreachable = Server unreachable.\nIs the address spelled correctly?
|
error.unreachable = Server unreachable.\nTama ba ang spelling ng address?
|
||||||
error.invalidaddress = Invalid address.
|
error.invalidaddress = Invalid address.
|
||||||
error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
|
error.timedout = Timed out!\nTiyaking may naka-set up na port forwarding ang host, at tama ang address!
|
||||||
error.mismatch = Packet error:\npossible client/server version mismatch.\nMake sure you and the host have the latest version of Mindustry!
|
error.mismatch = Packet error:\npossible client/server version mismatch.\nTiyaking mayroon ka at ang host ng pinakabagong bersyon ng Mindustry!
|
||||||
error.alreadyconnected = Already connected.
|
error.alreadyconnected = Nakakonekta na.
|
||||||
error.mapnotfound = Map file not found!
|
error.mapnotfound = Hindi nakita ang file ng mapa!
|
||||||
error.io = Network I/O error.
|
error.io = Network I/O error.
|
||||||
error.any = Unknown network error.
|
error.any = Unknown network error.
|
||||||
error.bloom = Failed to initialize bloom.\nYour device may not support it.
|
error.bloom = Nabigong simulan ang bloom.\nMaaaring hindi ito sinusuportahan ng iyong device.
|
||||||
|
|
||||||
weather.rain.name = Rain
|
weather.rain.name = Rain
|
||||||
weather.snow.name = Snow
|
weather.snow.name = Snow
|
||||||
@@ -633,22 +633,22 @@ sector.planetaryTerminal.name = Planetary Launch Terminal
|
|||||||
sector.coastline.name = Coastline
|
sector.coastline.name = Coastline
|
||||||
sector.navalFortress.name = Naval Fortress
|
sector.navalFortress.name = Naval Fortress
|
||||||
|
|
||||||
sector.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on.
|
sector.groundZero.description = Ang pinakamainam na lokasyon upang magsimulang muli. Mababang banta ng kaaway. Kaunting mapagkukunan.\nMagtipon ng mas maraming tingga at tanso hangga't maaari.\nItuloy.
|
||||||
sector.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders.
|
sector.frozenForest.description = Kahit dito, mas malapit sa mga bundok, ang mga spore ay kumalat. Ang napakalamig na temperatura ay hindi maaaring maglaman ng mga ito magpakailanman.\n\nSimulan ang pakikipagsapalaran sa kapangyarihan. Bumuo ng mga generator ng pagkasunog. Matutong gumamit ng mga mender.
|
||||||
sector.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing.
|
sector.saltFlats.description = Sa labas ng disyerto ay matatagpuan ang Salt Flats. Ilang resource ang makikita sa lokasyong ito.\n\nNagtayo ang kaaway ng resource storage complex dito. Tanggalin ang kanilang core. Walang iwanan na nakatayo.
|
||||||
sector.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills.
|
sector.craters.description = Ang tubig ay naipon sa bunganga na ito, relic ng mga lumang digmaan. Bawiin ang lugar. Mangolekta ng buhangin. Gumawa ng metaglass. Magbomba ng tubig upang palamig ang mga turret at drill.
|
||||||
sector.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology.
|
sector.ruinousShores.description = Nakalipas ang mga basura, ay ang baybayin. Minsan, ang lokasyong ito ay mayroong hanay ng pagtatanggol sa baybayin. Hindi gaanong natitira. Tanging ang pinakapangunahing mga istruktura ng depensa ang nananatiling hindi nasaktan, lahat ng iba pa ay nabawasan sa scrap.\nIpagpatuloy ang pagpapalawak. Tuklasin muli ang teknolohiya.
|
||||||
sector.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units.
|
sector.stainedMountains.description = Sa kabilang bahagi ng lupain ay matatagpuan ang mga bundok, ngunit hindi nababahiran ng mga spores.\nI-extract ang masaganang titanium sa lugar na ito. Alamin kung paano ito gamitin.\n\nMas malaki ang presensya ng kaaway dito. Huwag silang bigyan ng oras na ipadala ang kanilang pinakamalakas na unit.
|
||||||
sector.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost.
|
sector.overgrowth.description = Ang lugar na ito ay tinutubuan, mas malapit sa pinagmumulan ng mga spores.\nNagtatag ang kalaban ng isang outpost dito. Bumuo ng mga yunit ng Titan. Sirain mo. Bawiin ang nawala.
|
||||||
sector.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible.
|
sector.tarFields.description = Ang labas ng isang oil production zone, sa pagitan ng mga bundok at disyerto. Isa sa ilang lugar na may magagamit na reserbang tar.\nBagaman inabandona, ang lugar na ito ay may ilang mapanganib na pwersa ng kaaway sa malapit. Huwag maliitin ang mga ito.\n\n[lightgray]Magsaliksik ng teknolohiya sa pagproseso ng langis kung maaari.
|
||||||
sector.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks.
|
sector.desolateRift.description = Isang mapanganib na sona. Maraming mapagkukunan, ngunit maliit na espasyo. Mataas na panganib ng pagkasira. Umalis sa lalong madaling panahon. Huwag magpalinlang sa mahabang espasyo sa pagitan ng mga pag-atake ng kaaway.
|
||||||
sector.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers.
|
sector.nuclearComplex.description = Isang dating pasilidad para sa paggawa at pagpoproseso ng thorium, naging mga guho.\n[lightgray]Saliksikin ang thorium at ang maraming gamit nito.\n\nAng kaaway ay naroroon sa napakaraming bilang, patuloy na naghahanap ng mga umaatake.
|
||||||
sector.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores.
|
sector.fungalPass.description = Isang transition area sa pagitan ng matataas na bundok at mas mababang, spore-ridden na lupain. Matatagpuan dito ang isang maliit na base ng reconnaissance ng kaaway.\nSirain ito.\nGumamit ng mga unit ng Dagger at Crawler. Ilabas ang dalawang core.
|
||||||
sector.biomassFacility.description = The origin of spores. This is the facility in which they were researched and initially produced.\nResearch the technology contained within. Cultivate spores for the production of fuel and plastics.\n\n[lightgray]Upon this facility's demise, the spores were released. Nothing in the local ecosystem could compete with such an invasive organism.
|
sector.biomassFacility.description = Ang pinagmulan ng mga spores. Ito ang pasilidad kung saan sila sinaliksik at unang ginawa.\nSaliksikin ang teknolohiyang nakapaloob sa loob. Linangin ang mga spores para sa paggawa ng gasolina at mga plastik.\n\n[lightgray]Sa pagkamatay ng pasilidad na ito, inilabas ang mga spores. Wala sa lokal na ecosystem ang maaaring makipagkumpitensya sa gayong invasive na organismo.
|
||||||
sector.windsweptIslands.description = Further past the shoreline is this remote chain of islands. Records show they once had [accent]Plastanium[]-producing structures.\n\nFend off the enemy's naval units. Establish a base on the islands. Research these factories.
|
sector.windsweptIslands.description = Sa kabila ng baybayin ay ang malayong hanay ng mga isla. Ipinapakita ng mga rekord na minsan silang nagkaroon ng [accent]Plastanium[]-producing structures.\n\nTakasan ang mga yunit ng hukbong-dagat ng kalaban. Magtatag ng isang base sa mga isla. Magsaliksik sa mga pabrika na ito.
|
||||||
sector.extractionOutpost.description = A remote outpost, constructed by the enemy for the purpose of launching resources to other sectors.\n\nCross-sector transport technology is essential for further conquest. Destroy the base. Research their Launch Pads.
|
sector.extractionOutpost.description = Isang malayong outpost, na itinayo ng kaaway para sa layunin ng paglulunsad ng mga mapagkukunan sa iba pang mga sektor.\n\nAng cross-sector transport technology ay mahalaga para sa karagdagang pananakop. Wasakin ang base. Magsaliksik sa kanilang mga Launch Pad.
|
||||||
sector.impact0078.description = Here lie remnants of the interstellar transport vessel that first entered this system.\n\nSalvage as much as possible from the wreckage. Research any intact technology.
|
sector.impact0078.description = Dito nakalatag ang mga labi ng interstellar transport vessel na unang pumasok sa sistemang ito.\n\nSalvage hangga't maaari mula sa pagkawasak. Magsaliksik ng anumang buo na teknolohiya.
|
||||||
sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure.
|
sector.planetaryTerminal.description = Ang huling target.\n\nAng coastal base na ito ay naglalaman ng isang istraktura na may kakayahang maglunsad ng mga Core sa mga lokal na planeta. Ito ay napakahusay na binabantayan.\n\nGumawa ng mga yunit ng hukbong-dagat. Tanggalin ang kalaban sa lalong madaling panahon. Magsaliksik sa istraktura ng paglulunsad.
|
||||||
status.burning.name = Burning
|
status.burning.name = Burning
|
||||||
status.freezing.name = Freezing
|
status.freezing.name = Freezing
|
||||||
status.wet.name = Wet
|
status.wet.name = Wet
|
||||||
@@ -674,13 +674,13 @@ settings.controls = Controls
|
|||||||
settings.game = Game
|
settings.game = Game
|
||||||
settings.sound = Sound
|
settings.sound = Sound
|
||||||
settings.graphics = Graphics
|
settings.graphics = Graphics
|
||||||
settings.cleardata = Clear Game Data...
|
settings.cleardata = I-Clear Game Data...
|
||||||
settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
|
settings.clear.confirm = Sigurado ka bang gusto mong i-clear ang data na ito?\nHindi na mababawi ang nagawa!
|
||||||
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
|
settings.clearall.confirm = [scarlet]WARNING![]\nIki-clear nito ang lahat ng data, kabilang ang mga pag-save, mapa, pag-unlock at keybinds.\nKapag pinindot mo ang 'ok', ibubura ng laro ang lahat ng data at awtomatikong lalabas.
|
||||||
settings.clearsaves.confirm = Are you sure you want to clear all your saves?
|
settings.clearsaves.confirm = Sigurado ka bang gusto mong i-clear ang lahat ng iyong saves?
|
||||||
settings.clearsaves = Clear Saves
|
settings.clearsaves = Clear Saves
|
||||||
settings.clearresearch = Clear Research
|
settings.clearresearch = Clear Research
|
||||||
settings.clearresearch.confirm = Are you sure you want to clear all of your campaign research?
|
settings.clearresearch.confirm = Sigurado ka bang gusto mong i-clear ang lahat ng iyong campaign research?
|
||||||
settings.clearcampaignsaves = Clear Campaign Saves
|
settings.clearcampaignsaves = Clear Campaign Saves
|
||||||
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
settings.clearcampaignsaves.confirm = Are you sure you want to clear all of your campaign saves?
|
||||||
paused = [accent]< Paused >
|
paused = [accent]< Paused >
|
||||||
@@ -823,10 +823,10 @@ bullet.reload = [stat]{0}[lightgray]x fire rate
|
|||||||
|
|
||||||
unit.blocks = blocks
|
unit.blocks = blocks
|
||||||
unit.blockssquared = blocks²
|
unit.blockssquared = blocks²
|
||||||
unit.powersecond = power units/second
|
unit.powersecond = mga yunit ng kuryente/segundo
|
||||||
unit.tilessecond = tiles/second
|
unit.tilessecond = tile/segundo
|
||||||
unit.liquidsecond = liquid units/second
|
unit.liquidsecond = mga yunit ng likido/segundo
|
||||||
unit.itemssecond = items/second
|
unit.itemssecond = aytem/segundo
|
||||||
unit.liquidunits = liquid units
|
unit.liquidunits = liquid units
|
||||||
unit.powerunits = power units
|
unit.powerunits = power units
|
||||||
unit.degrees = degrees
|
unit.degrees = degrees
|
||||||
@@ -850,7 +850,7 @@ category.items = Items
|
|||||||
category.crafting = Input/Output
|
category.crafting = Input/Output
|
||||||
category.function = Function
|
category.function = Function
|
||||||
category.optional = Optional Enhancements
|
category.optional = Optional Enhancements
|
||||||
setting.skipcoreanimation.name = Skip Core Launch/Land Animation
|
setting.skipcoreanimation.name = Laktawan ang Core Launch/Land Animation
|
||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.blockreplace.name = Automatic Block Suggestions
|
setting.blockreplace.name = Automatic Block Suggestions
|
||||||
@@ -860,7 +860,7 @@ setting.logichints.name = Logic Hints
|
|||||||
setting.backgroundpause.name = Pause In Background
|
setting.backgroundpause.name = Pause In Background
|
||||||
setting.buildautopause.name = Auto-Pause Building
|
setting.buildautopause.name = Auto-Pause Building
|
||||||
setting.doubletapmine.name = Double-Tap to Mine
|
setting.doubletapmine.name = Double-Tap to Mine
|
||||||
setting.modcrashdisable.name = Disable Mods On Startup Crash
|
setting.modcrashdisable.name = Huwag paganahin ang Mods Sa Startup Crash
|
||||||
setting.animatedwater.name = Animated Fluids
|
setting.animatedwater.name = Animated Fluids
|
||||||
setting.animatedshields.name = Animated Shields
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.playerindicators.name = Player Indicators
|
setting.playerindicators.name = Player Indicators
|
||||||
@@ -872,8 +872,8 @@ setting.fpscap.name = Max FPS
|
|||||||
setting.fpscap.none = None
|
setting.fpscap.none = None
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = UI Scaling[lightgray] (restart required)[]
|
setting.uiscale.name = UI Scaling[lightgray] (restart required)[]
|
||||||
setting.uiscale.description = Restart required to apply changes.
|
setting.uiscale.description = Kinakailangan ang pag-restart upang mailapat ang mga pagbabago.
|
||||||
setting.swapdiagonal.name = Always Diagonal Placement
|
setting.swapdiagonal.name = Palaging Diagonal na Placement
|
||||||
setting.difficulty.training = Training
|
setting.difficulty.training = Training
|
||||||
setting.difficulty.easy = Easy
|
setting.difficulty.easy = Easy
|
||||||
setting.difficulty.normal = Normal
|
setting.difficulty.normal = Normal
|
||||||
@@ -881,10 +881,10 @@ setting.difficulty.hard = Hard
|
|||||||
setting.difficulty.insane = Insane
|
setting.difficulty.insane = Insane
|
||||||
setting.difficulty.name = Difficulty:
|
setting.difficulty.name = Difficulty:
|
||||||
setting.screenshake.name = Screen Shake
|
setting.screenshake.name = Screen Shake
|
||||||
setting.effects.name = Display Effects
|
setting.effects.name = I-Display Effects
|
||||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
setting.destroyedblocks.name = Ipakita ang mga Nawasak na Block
|
||||||
setting.blockstatus.name = Display Block Status
|
setting.blockstatus.name = I-Display Block Status
|
||||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
setting.conveyorpathfinding.name = Pathfinding ng Conveyor Placement
|
||||||
setting.sensitivity.name = Controller Sensitivity
|
setting.sensitivity.name = Controller Sensitivity
|
||||||
setting.saveinterval.name = Save Interval
|
setting.saveinterval.name = Save Interval
|
||||||
setting.seconds = {0} seconds
|
setting.seconds = {0} seconds
|
||||||
@@ -892,7 +892,7 @@ setting.milliseconds = {0} milliseconds
|
|||||||
setting.fullscreen.name = Fullscreen
|
setting.fullscreen.name = Fullscreen
|
||||||
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
|
setting.borderlesswindow.name = Borderless Window[lightgray] (restart may be required)
|
||||||
setting.borderlesswindow.name.windows = Borderless Fullscreen
|
setting.borderlesswindow.name.windows = Borderless Fullscreen
|
||||||
setting.borderlesswindow.description = Restart may be required to apply changes.
|
setting.borderlesswindow.description = Maaaring kailanganin ang pag-restart upang mailapat ang mga pagbabago.
|
||||||
setting.fps.name = Show FPS & Ping
|
setting.fps.name = Show FPS & Ping
|
||||||
setting.smoothcamera.name = Smooth Camera
|
setting.smoothcamera.name = Smooth Camera
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
@@ -901,28 +901,28 @@ setting.minimap.name = Show Minimap
|
|||||||
setting.coreitems.name = Display Core Items (WIP)
|
setting.coreitems.name = Display Core Items (WIP)
|
||||||
setting.position.name = Show Player Position
|
setting.position.name = Show Player Position
|
||||||
setting.musicvol.name = Music Volume
|
setting.musicvol.name = Music Volume
|
||||||
setting.atmosphere.name = Show Planet Atmosphere
|
setting.atmosphere.name = Ipakita Planet Atmosphere
|
||||||
setting.ambientvol.name = Ambient Volume
|
setting.ambientvol.name = Ambient Volume
|
||||||
setting.mutemusic.name = Mute Music
|
setting.mutemusic.name = Mute Music
|
||||||
setting.sfxvol.name = SFX Volume
|
setting.sfxvol.name = SFX Volume
|
||||||
setting.mutesound.name = Mute Sound
|
setting.mutesound.name = Mute Sound
|
||||||
setting.crashreport.name = Send Anonymous Crash Reports
|
setting.crashreport.name = Mag-send ng Anonymous Crash Reports
|
||||||
setting.savecreate.name = Auto-Create Saves
|
setting.savecreate.name = Auto-Create Saves
|
||||||
setting.publichost.name = Public Game Visibility
|
setting.publichost.name = Public Game Visibility
|
||||||
setting.playerlimit.name = Player Limit
|
setting.playerlimit.name = Player Limit
|
||||||
setting.chatopacity.name = Chat Opacity
|
setting.chatopacity.name = Chat Opacity
|
||||||
setting.lasersopacity.name = Power Laser Opacity
|
setting.lasersopacity.name = Power Laser Opacity
|
||||||
setting.bridgeopacity.name = Bridge Opacity
|
setting.bridgeopacity.name = Bridge Opacity
|
||||||
setting.playerchat.name = Display Player Bubble Chat
|
setting.playerchat.name = Ipakita Player Bubble Chat
|
||||||
setting.showweather.name = Show Weather Graphics
|
setting.showweather.name = Show Weather Graphics
|
||||||
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility.
|
||||||
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]?
|
public.confirm.really = If you want to play with friends, use [green]Invite Friend[] instead of a [scarlet]Public server[]!\nAre you sure you want to make your game [scarlet]public[]?
|
||||||
public.beta = Note that beta versions of the game cannot make public lobbies.
|
public.beta = Tandaan na ang mga beta na bersyon ng laro ay hindi maaaring gumawa ng mga pampublikong lobby.
|
||||||
uiscale.reset = UI scale has been changed.\nPress "OK" to confirm this scale.\n[scarlet]Reverting and exiting in[accent] {0}[] seconds...
|
uiscale.reset = Nabago ang sukat ng UI.\nPindutin ang "OK" upang kumpirmahin ang sukat na ito.\n[scarlet]Binabalik at lalabas sa loob ng[accent] {0}[] segundo...
|
||||||
uiscale.cancel = Cancel & Exit
|
uiscale.cancel = I-Cancel & Exit
|
||||||
setting.bloom.name = Bloom
|
setting.bloom.name = Bloom
|
||||||
keybind.title = Rebind Keys
|
keybind.title = Rebind Keys
|
||||||
keybinds.mobile = [scarlet]Most keybinds here are not functional on mobile. Only basic movement is supported.
|
keybinds.mobile = [scarlet]Karamihan sa mga keybinds dito ay hindi gumagana sa mobile. Ang pangunahing paggalaw lamang ang sinusuportahan.
|
||||||
category.general.name = General
|
category.general.name = General
|
||||||
category.view.name = View
|
category.view.name = View
|
||||||
category.multiplayer.name = Multiplayer
|
category.multiplayer.name = Multiplayer
|
||||||
@@ -997,14 +997,14 @@ keybind.drop_unit.name = Drop Unit
|
|||||||
keybind.zoom_minimap.name = Zoom Minimap
|
keybind.zoom_minimap.name = Zoom Minimap
|
||||||
mode.help.title = Description of modes
|
mode.help.title = Description of modes
|
||||||
mode.survival.name = Survival
|
mode.survival.name = Survival
|
||||||
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play.
|
mode.survival.description = Ang normal na mode. Mga limitadong mapagkukunan at awtomatikong papasok na alon.\n[gray]Nangangailangan ng mga spawn ng kaaway sa mapa para maglaro.
|
||||||
mode.sandbox.name = Sandbox
|
mode.sandbox.name = Sandbox
|
||||||
mode.sandbox.description = Infinite resources and no timer for waves.
|
mode.sandbox.description = Maraming resources at walang timer nang waves.
|
||||||
mode.editor.name = Editor
|
mode.editor.name = Editor
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Fight against other players locally.\n[gray]Requires at least 2 differently-colored cores in the map to play.
|
mode.pvp.description = Lumaban sa iba pang mga manlalaro nang lokal.\n[gray]Nangangailangan ng hindi bababa sa 2 magkakaibang kulay na mga core sa mapa upang maglaro.
|
||||||
mode.attack.name = Attack
|
mode.attack.name = Attack
|
||||||
mode.attack.description = Destroy the enemy's base. \n[gray]Requires a red core in the map to play.
|
mode.attack.description = Wasakin ang base ng kalaban. \n[gray]Nangangailangan ng pulang core sa mapa upang maglaro.
|
||||||
mode.custom = Custom Rules
|
mode.custom = Custom Rules
|
||||||
|
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Infinite Resources
|
||||||
@@ -1145,9 +1145,9 @@ block.shrubs.name = Shrubs
|
|||||||
block.spore-moss.name = Spore Moss
|
block.spore-moss.name = Spore Moss
|
||||||
block.shale-wall.name = Shale Wall
|
block.shale-wall.name = Shale Wall
|
||||||
block.scrap-wall.name = Scrap Wall
|
block.scrap-wall.name = Scrap Wall
|
||||||
block.scrap-wall-large.name = Large Scrap Wall
|
block.scrap-wall-large.name = Malaking Scrap Wall
|
||||||
block.scrap-wall-huge.name = Huge Scrap Wall
|
block.scrap-wall-huge.name = Masmalaking Scrap Wall
|
||||||
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
|
block.scrap-wall-gigantic.name = Pinakamalaking Scrap Wall
|
||||||
block.thruster.name = Thruster
|
block.thruster.name = Thruster
|
||||||
block.kiln.name = Kiln
|
block.kiln.name = Kiln
|
||||||
block.graphite-press.name = Graphite Press
|
block.graphite-press.name = Graphite Press
|
||||||
@@ -1205,17 +1205,17 @@ block.basalt.name = Basalt
|
|||||||
block.hotrock.name = Hot Rock
|
block.hotrock.name = Hot Rock
|
||||||
block.magmarock.name = Magma Rock
|
block.magmarock.name = Magma Rock
|
||||||
block.copper-wall.name = Copper Wall
|
block.copper-wall.name = Copper Wall
|
||||||
block.copper-wall-large.name = Large Copper Wall
|
block.copper-wall-large.name = Malaking Copper Wall
|
||||||
block.titanium-wall.name = Titanium Wall
|
block.titanium-wall.name = Titanium Wall
|
||||||
block.titanium-wall-large.name = Large Titanium Wall
|
block.titanium-wall-large.name = Malaking Titanium Wall
|
||||||
block.plastanium-wall.name = Plastanium Wall
|
block.plastanium-wall.name = Plastanium Wall
|
||||||
block.plastanium-wall-large.name = Large Plastanium Wall
|
block.plastanium-wall-large.name = Malaking Plastanium Wall
|
||||||
block.phase-wall.name = Phase Wall
|
block.phase-wall.name = Phase Wall
|
||||||
block.phase-wall-large.name = Large Phase Wall
|
block.phase-wall-large.name = Malaking Phase Wall
|
||||||
block.thorium-wall.name = Thorium Wall
|
block.thorium-wall.name = Thorium Wall
|
||||||
block.thorium-wall-large.name = Large Thorium Wall
|
block.thorium-wall-large.name = Malaking Thorium Wall
|
||||||
block.door.name = Door
|
block.door.name = Door
|
||||||
block.door-large.name = Large Door
|
block.door-large.name = Malaking Door
|
||||||
block.duo.name = Duo
|
block.duo.name = Duo
|
||||||
block.scorch.name = Scorch
|
block.scorch.name = Scorch
|
||||||
block.scatter.name = Scatter
|
block.scatter.name = Scatter
|
||||||
@@ -1244,11 +1244,11 @@ block.spore-press.name = Spore Press
|
|||||||
block.separator.name = Separator
|
block.separator.name = Separator
|
||||||
block.coal-centrifuge.name = Coal Centrifuge
|
block.coal-centrifuge.name = Coal Centrifuge
|
||||||
block.power-node.name = Power Node
|
block.power-node.name = Power Node
|
||||||
block.power-node-large.name = Large Power Node
|
block.power-node-large.name = Malaking Power Node
|
||||||
block.surge-tower.name = Surge Tower
|
block.surge-tower.name = Surge Tower
|
||||||
block.diode.name = Battery Diode
|
block.diode.name = Battery Diode
|
||||||
block.battery.name = Battery
|
block.battery.name = Battery
|
||||||
block.battery-large.name = Large Battery
|
block.battery-large.name = Malaking Battery
|
||||||
block.combustion-generator.name = Combustion Generator
|
block.combustion-generator.name = Combustion Generator
|
||||||
block.steam-generator.name = Steam Generator
|
block.steam-generator.name = Steam Generator
|
||||||
block.differential-generator.name = Differential Generator
|
block.differential-generator.name = Differential Generator
|
||||||
@@ -1301,7 +1301,7 @@ block.alloy-smelter.name = Alloy Smelter
|
|||||||
block.mender.name = Mender
|
block.mender.name = Mender
|
||||||
block.mend-projector.name = Mend Projector
|
block.mend-projector.name = Mend Projector
|
||||||
block.surge-wall.name = Surge Wall
|
block.surge-wall.name = Surge Wall
|
||||||
block.surge-wall-large.name = Large Surge Wall
|
block.surge-wall-large.name = Malaking Surge Wall
|
||||||
block.cyclone.name = Cyclone
|
block.cyclone.name = Cyclone
|
||||||
block.fuse.name = Fuse
|
block.fuse.name = Fuse
|
||||||
block.shock-mine.name = Shock Mine
|
block.shock-mine.name = Shock Mine
|
||||||
@@ -1337,21 +1337,21 @@ block.overdrive-dome.name = Overdrive Dome
|
|||||||
block.interplanetary-accelerator.name = Interplanetary Accelerator
|
block.interplanetary-accelerator.name = Interplanetary Accelerator
|
||||||
block.constructor.name = Constructor
|
block.constructor.name = Constructor
|
||||||
block.constructor.description = Fabricates structures up to 2x2 tiles in size.
|
block.constructor.description = Fabricates structures up to 2x2 tiles in size.
|
||||||
block.large-constructor.name = Large Constructor
|
block.large-constructor.name = Malaking Constructor
|
||||||
block.large-constructor.description = Fabricates structures up to 4x4 tiles in size.
|
block.large-constructor.description = Gumagawa ng mga istruktura hanggang sa 4x4 na tile ang laki.
|
||||||
block.deconstructor.name = Deconstructor
|
block.deconstructor.name = Deconstructor
|
||||||
block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost.
|
block.deconstructor.description = Nagde-deconstruct ng mga istruktura at yunit. Ibinabalik ang 100% ng halaga ng block.
|
||||||
block.payload-loader.name = Payload Loader
|
block.payload-loader.name = Payload Loader
|
||||||
block.payload-loader.description = Load liquids and items into blocks.
|
block.payload-loader.description = Mag-load ng mga likido at mga item sa mga blocks.
|
||||||
block.payload-unloader.name = Payload Unloader
|
block.payload-unloader.name = Payload Unloader
|
||||||
block.payload-unloader.description = Unloads liquids and items from blocks.
|
block.payload-unloader.description = Naglalabas ng mga likido at mga item mula sa mga blocks.
|
||||||
|
|
||||||
block.switch.name = Switch
|
block.switch.name = Switch
|
||||||
block.micro-processor.name = Micro Processor
|
block.micro-processor.name = Micro Processor
|
||||||
block.logic-processor.name = Logic Processor
|
block.logic-processor.name = Logic Processor
|
||||||
block.hyper-processor.name = Hyper Processor
|
block.hyper-processor.name = Hyper Processor
|
||||||
block.logic-display.name = Logic Display
|
block.logic-display.name = Logic Display
|
||||||
block.large-logic-display.name = Large Logic Display
|
block.large-logic-display.name = Malaking Logic Display
|
||||||
block.memory-cell.name = Memory Cell
|
block.memory-cell.name = Memory Cell
|
||||||
block.memory-bank.name = Memory Bank
|
block.memory-bank.name = Memory Bank
|
||||||
|
|
||||||
@@ -1362,38 +1362,38 @@ team.derelict.name = derelict
|
|||||||
team.green.name = green
|
team.green.name = green
|
||||||
team.purple.name = purple
|
team.purple.name = purple
|
||||||
hint.skip = Skip
|
hint.skip = Skip
|
||||||
hint.desktopMove = Use [accent][[WASD][] to move.
|
hint.desktopMove = Gamitin ang [accent][[WASD][] para gumalaw.
|
||||||
hint.zoom = [accent]Scroll[] to zoom in or out.
|
hint.zoom = [accent]Scroll[] para mag-zoom in o out.
|
||||||
hint.mine = Move near the \uf8c4 copper ore and [accent]tap[] it to mine manually.
|
hint.mine = Lumipat malapit sa \uf8c4 copper ore at [accent]tap[] ito upang manu-manong minahan.
|
||||||
hint.desktopShoot = [accent][[Left-click][] to shoot.
|
hint.desktopShoot = [accent][[Left-click][] para mag-shoot.
|
||||||
hint.depositItems = To transfer items, drag from your ship to the core.
|
hint.depositItems = Upang maglipat ng mga item, i-drag mula sa iyong ship patungo sa core.
|
||||||
hint.respawn = To respawn as a ship, press [accent][[V][].
|
hint.respawn = To respawn as a ship, press [accent][[V][].
|
||||||
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
|
hint.respawn.mobile = You have switched control to a unit/structure. To respawn as a ship, [accent]tap the avatar in the top left.[]
|
||||||
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
hint.desktopPause = Press [accent][[Space][] to pause and unpause the game.
|
||||||
hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
|
hint.placeDrill = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and click on a copper patch to place it.
|
||||||
hint.placeDrill.mobile = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
|
hint.placeDrill.mobile = Select the \ue85e [accent]Drill[] tab in the menu at the bottom right, then select a \uf870 [accent]Drill[] and tap on a copper patch to place it.\n\nPress the \ue800 [accent]checkmark[] at the bottom right to confirm.
|
||||||
hint.placeConveyor = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nClick and drag to place multiple conveyors.\n[accent]Scroll[] to rotate.
|
hint.placeConveyor = Ang mga conveyor ay naglilipat ng mga item mula sa mga drill patungo sa iba pang mga bloke. Pumili ng \uf896 [accent]Conveyor[] mula sa tab na \ue814 [accent]Distribution[].\n\nI-click at i-drag upang maglagay ng maraming conveyor.\n[accent]Mag-scroll[] para i-rotate.
|
||||||
hint.placeConveyor.mobile = Conveyors move items from drills into other blocks. Select a \uf896 [accent]Conveyor[] from the \ue814 [accent]Distribution[] tab.\n\nHold down your finger for a second and drag to place multiple conveyors.
|
hint.placeConveyor.mobile = Ang mga conveyor ay naglilipat ng mga item mula sa mga drill patungo sa iba pang mga bloke. Pumili ng \uf896 [accent]Conveyor[] mula sa tab na \ue814 [accent]Distribution[].\n\nI-hold down ang iyong daliri sa isang segundo at i-drag upang maglagay ng maraming conveyor.
|
||||||
hint.placeTurret = Place \uf861 [accent]Turrets[] to defend your base from enemies.\n\nTurrets require ammo - in this case, \uf838copper.\nUse conveyors and drills to supply them.
|
hint.placeTurret = Ilagay ang \uf861 [accent]Turrets[] upang ipagtanggol ang iyong base mula sa mga kaaway.\n\nAng mga turret ay nangangailangan ng ammo - sa kasong ito, \uf838copper.\nGumamit ng mga conveyor at drills para matustusan ang mga ito.
|
||||||
hint.breaking = [accent]Right-click[] and drag to break blocks.
|
hint.breaking = [accent]Right-click[] and drag to break blocks.
|
||||||
hint.breaking.mobile = Activate the \ue817 [accent]hammer[] in the bottom right and tap to break blocks.\n\nHold down your finger for a second and drag to break in a selection.
|
hint.breaking.mobile = I-activate ang \ue817 [accent]hammer[] sa kanang bahagi sa ibaba at i-tap para masira ang mga bloke.\n\nI-hold ang iyong daliri sa isang segundo at i-drag para masira ang isang seleksyon.
|
||||||
hint.blockInfo = View information of a block by selecting it in the [accent]build menu[], then selecting the [accent][[?][] button at the right.
|
hint.blockInfo = Tingnan ang impormasyon ng isang block sa pamamagitan ng pagpili nito sa [accent]build menu[], pagkatapos ay pagpili sa [accent][[?][] na button sa kanan.
|
||||||
hint.derelict = [accent]Derelict[] structures are broken remnants of old bases that no longer function.\n\nThese structures can be [accent]deconstructed[] for resources.
|
hint.derelict = Ang [accent]Derelict[] na mga istraktura ay mga sirang labi ng mga lumang base na hindi na gumagana.\n\nAng mga istrukturang ito ay maaaring [accent]deconstructed[] para sa mga mapagkukunan.
|
||||||
hint.research = Use the \ue875 [accent]Research[] button to research new technology.
|
hint.research = Gamitin ang button na \ue875 [accent]Research[] para magsaliksik ng bagong teknolohiya.
|
||||||
hint.research.mobile = Use the \ue875 [accent]Research[] button in the \ue88c [accent]Menu[] to research new technology.
|
hint.research.mobile = Gamitin ang button na \ue875 [accent]Research[] sa \ue88c [accent]Menu[] para magsaliksik ng bagong teknolohiya.
|
||||||
hint.unitControl = Hold [accent][[L-ctrl][] and [accent]click[] to control friendly units or turrets.
|
hint.unitControl = Pindutin ang [accent][[L-ctrl][] at [accent]click[] upang kontrolin ang mga friendly na unit o turrets.
|
||||||
hint.unitControl.mobile = [accent][[Double-tap][] to control friendly units or turrets.
|
hint.unitControl.mobile = [accent][[Double-tap][] para kontrolin ang mga friendly na unit o turrets.
|
||||||
hint.launch = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the bottom right.
|
hint.launch = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa \ue827 [accent]Map[] sa kanang ibaba.
|
||||||
hint.launch.mobile = Once enough resources are collected, you can [accent]Launch[] by selecting nearby sectors from the \ue827 [accent]Map[] in the \ue88c [accent]Menu[].
|
hint.launch.mobile = Kapag sapat na ang mga mapagkukunan, maaari mong [accent]Ilunsad[] sa pamamagitan ng pagpili sa mga kalapit na sektor mula sa \ue827 [accent]Map[] sa \ue88c [accent]Menu[].
|
||||||
hint.schematicSelect = Hold [accent][[F][] and drag to select blocks to copy and paste.\n\n[accent][[Middle Click][] to copy a single block type.
|
hint.schematicSelect = Pindutin ang [accent][[F][] at i-drag upang pumili ng mga bloke na kokopyahin at ipe-paste.\n\n[accent][[Middle Click][] upang kopyahin ang isang uri ng block.
|
||||||
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
hint.conveyorPathfind = Hold [accent][[L-Ctrl][] while dragging conveyors to automatically generate a path.
|
||||||
hint.conveyorPathfind.mobile = Enable \ue844 [accent]diagonal mode[] and drag conveyors to automatically generate a path.
|
hint.conveyorPathfind.mobile = Pindutin ang [accent][[L-Ctrl][] habang dina-drag ang mga conveyor para awtomatikong bumuo ng landas.
|
||||||
hint.boost = Hold [accent][[L-Shift][] to fly over obstacles with your current unit.\n\nOnly a few ground units have boosters.
|
hint.boost = Pindutin ang [accent][[L-Shift][] para lumipad sa mga obstacle kasama ang iyong kasalukuyang unit.\n\nIlang ground unit lang ang may mga booster
|
||||||
hint.command = Press [accent][[G][] to command nearby units of [accent]similar type[] into formation.\n\nTo command ground units, you must first control another ground unit.
|
hint.command = Pindutin ang [accent][[G][] para mag-utos ng mga kalapit na unit ng [accent]katulad na uri[] sa pagbuo.\n\nUpang mag-utos ng mga ground unit, kailangan mo munang kontrolin ang isa pang ground unit.
|
||||||
hint.command.mobile = [accent][[Double-tap][] your unit to command nearby units into formation.
|
hint.command.mobile = [accent][[Double-tap][] ang iyong unit para mag-utos ng mga kalapit na unit sa pagbuo.
|
||||||
hint.payloadPickup = Press [accent][[[] to pick up small blocks or units.
|
hint.payloadPickup = Pindutin ang [accent][[[] para kunin ang maliliit na block o unit.
|
||||||
hint.payloadPickup.mobile = [accent]Tap and hold[] a small block or unit to pick it up.
|
hint.payloadPickup.mobile = [accent]I-tap nang matagal ang[] isang maliit na block o unit para kunin ito.
|
||||||
hint.payloadDrop = Press [accent]][] to drop a payload.
|
hint.payloadDrop = Pindutin ang [accent]][] para mag-drop ng payload.
|
||||||
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
|
hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there.
|
||||||
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires.
|
||||||
hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
|
hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [accent]Power Nodes[].
|
||||||
@@ -1421,79 +1421,79 @@ item.silicon.description = Ang nakakatulong na semiconductor. Aplikasyon sa sola
|
|||||||
item.plastanium.description = Ito ay magaan, malagkit na materyal ginamit sa advanced aircraft at fragmentation ammunisyon.
|
item.plastanium.description = Ito ay magaan, malagkit na materyal ginamit sa advanced aircraft at fragmentation ammunisyon.
|
||||||
item.phase-fabric.description = Ito ay malapit na mawalan ng timbang na substansya ginamit sa advanced na electronika at self-repairing na technolohiya.
|
item.phase-fabric.description = Ito ay malapit na mawalan ng timbang na substansya ginamit sa advanced na electronika at self-repairing na technolohiya.
|
||||||
item.surge-alloy.description = Ang advanced na pinag halung metal na may kakaibang electrical properties.
|
item.surge-alloy.description = Ang advanced na pinag halung metal na may kakaibang electrical properties.
|
||||||
item.spore-pod.description = A pod of synthetic spores, synthesized from atmospheric concentrations for industrial purposes. Used for conversion into oil, explosives and fuel.
|
item.spore-pod.description = Isang pod ng mga sintetikong spore, na synthesize mula sa mga konsentrasyon sa atmospera para sa mga layuning pang-industriya. Ginagamit para sa conversion sa langis, pampasabog at gasolina.
|
||||||
item.spore-pod.details = Spores. Likely a synthetic life form. Emit gases toxic to other biological life. Extremely invasive. Highly flammable in certain conditions.
|
item.spore-pod.details = Mga spores. Malamang na isang sintetikong anyo ng buhay. Naglalabas ng mga gas na nakakalason sa ibang biyolohikal na buhay. Lubhang invasive. Lubos na nasusunog sa ilang mga kundisyon.
|
||||||
item.blast-compound.description = An unstable compound used in bombs and explosives. Synthesized from spore pods and other volatile substances. Use as fuel is not advised.
|
item.blast-compound.description = Isang hindi matatag na compound na ginagamit sa mga bomba at pampasabog. Na-synthesize mula sa mga spore pod at iba pang pabagu-bagong substance. Gamitin bilang gasolina ay hindi pinapayuhan.
|
||||||
item.pyratite.description = An extremely flammable substance used in incendiary weapons.
|
item.pyratite.description = Isang sobrang nasusunog na substance na ginagamit sa mga armas na nagniningas.
|
||||||
liquid.water.description = The most useful liquid. Commonly used for cooling machines and waste processing.
|
liquid.water.description = Ang pinaka-kapaki-pakinabang na likido. Karaniwang ginagamit para sa mga cooling machine at pagpoproseso ng basura.
|
||||||
liquid.slag.description = Various different types of molten metal mixed together. Can be separated into its constituent minerals, or sprayed at enemy units as a weapon.
|
liquid.slag.description = Iba't ibang uri ng tinunaw na metal na pinaghalo. Maaaring ihiwalay sa mga mineral na bumubuo nito, o i-spray sa mga yunit ng kaaway bilang sandata.
|
||||||
liquid.oil.description = A liquid used in advanced material production. Can be converted into coal as fuel, or sprayed and set on fire as a weapon.
|
liquid.oil.description = Isang likidong ginagamit sa advanced na produksyon ng materyal. Maaaring gawing karbon bilang panggatong, o i-spray at sunugin bilang sandata.
|
||||||
liquid.cryofluid.description = An inert, non-corrosive liquid created from water and titanium. Has extremely high heat capacity. Extensively used as coolant.
|
liquid.cryofluid.description = Isang inert, non-corrosive na likido na nilikha mula sa tubig at titanium. May napakataas na kapasidad ng init. Malawakang ginagamit bilang coolant.
|
||||||
block.derelict = \uf77e [lightgray]Derelict
|
block.derelict = \uf77e [lightgray]Derelict
|
||||||
block.armored-conveyor.description = Moves items at the same speed as titanium conveyors, but possesses more armor. Does not accept inputs from the sides from anything but other conveyor belts.
|
block.armored-conveyor.description = Gumagalaw ng mga item sa parehong bilis ng mga titanium conveyor, ngunit nagtataglay ng mas maraming sandata. Hindi tumatanggap ng mga input mula sa mga gilid mula sa anumang bagay maliban sa iba pang mga conveyor belt.
|
||||||
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
block.illuminator.description = Isang maliit, compact, configurable light source. Nangangailangan ng kapangyarihan upang gumana.
|
||||||
|
|
||||||
block.message.description = Stores a message. Used for communication between allies.
|
block.message.description = Nag-iimbak ng mensahe. Ginagamit para sa komunikasyon sa pagitan ng mga kaalyado.
|
||||||
block.graphite-press.description = Compresses chunks of coal into pure sheets of graphite.
|
block.graphite-press.description = Pinipilit ang mga tipak ng karbon sa purong mga piraso ng grapayt.
|
||||||
block.multi-press.description = An upgraded version of the graphite press. Employs water and power to process coal quickly and efficiently.
|
block.multi-press.description = Isang na-upgrade na bersyon ng graphite press. Gumagamit ng tubig at kapangyarihan upang iproseso ang karbon nang mabilis at mahusay.
|
||||||
block.silicon-smelter.description = Reduces sand with pure coal. Produces silicon.
|
block.silicon-smelter.description = Binabawasan ang buhangin na may purong karbon. Gumagawa ng silikon.
|
||||||
block.kiln.description = Smelts sand and lead into the compound known as metaglass. Requires small amounts of power to run.
|
block.kiln.description = Tinutunaw ang buhangin at humahantong sa compound na kilala bilang metaglass. Nangangailangan ng maliit na halaga ng kapangyarihan upang tumakbo.
|
||||||
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
block.plastanium-compressor.description = Gumagawa ng plastanium mula sa langis at titanium.
|
||||||
block.phase-weaver.description = Synthesizes phase fabric from radioactive thorium and sand. Requires massive amounts of power to function.
|
block.phase-weaver.description = Synthesizes phase fabric mula sa radioactive thorium at buhangin. Nangangailangan ng napakalaking dami ng kapangyarihan upang gumana.
|
||||||
block.alloy-smelter.description = Combines titanium, lead, silicon and copper to produce surge alloy.
|
block.alloy-smelter.description = Pinagsasama ang titanium, lead, silicon at tanso upang makagawa ng surge alloy.
|
||||||
block.cryofluid-mixer.description = Mixes water and fine titanium powder into cryofluid. Essential for thorium reactor usage.
|
block.cryofluid-mixer.description = Hinahalo ang tubig at pinong titanium powder sa cryofluid. Mahalaga para sa paggamit ng thorium reactor.
|
||||||
block.blast-mixer.description = Crushes and mixes clusters of spores with pyratite to produce blast compound.
|
block.blast-mixer.description = Dinudurog at hinahalo ang mga kumpol ng spores na may pyratite upang makagawa ng blast compound.
|
||||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
block.pyratite-mixer.description = Naghahalo ng coal, lead at sand sa sobrang nasusunog na pyratite.
|
||||||
block.melter.description = Melts down scrap into slag for further processing or usage in wave turrets.
|
block.melter.description = Tinutunaw ang scrap sa slag para sa karagdagang pagproseso o paggamit sa mga wave turret.
|
||||||
block.separator.description = Separates slag into its mineral components. Outputs the cooled result.
|
block.separator.description = Pinaghihiwalay ang slag sa mga bahagi ng mineral nito. Inilalabas ang pinalamig na resulta.
|
||||||
block.spore-press.description = Compresses spore pods under extreme pressure to synthesize oil.
|
block.spore-press.description = Kino-compress ang mga spore pod sa ilalim ng matinding pressure para mag-synthesize ng oil.
|
||||||
block.pulverizer.description = Crushes scrap into fine sand.
|
block.pulverizer.description = Dinudurog ang scrap sa pinong sand.
|
||||||
block.coal-centrifuge.description = Solidifes oil into chunks of coal.
|
block.coal-centrifuge.description = Pinapatigas ang oil sa mga coal.
|
||||||
block.incinerator.description = Vaporizes any excess item or liquid it receives.
|
block.incinerator.description = Pinapasingaw ang anumang labis na bagay o likidong natatanggap nito.
|
||||||
block.power-void.description = Voids all power inputted into it. Sandbox only.
|
block.power-void.description = Walang laman ang lahat ng kuryente ipinasok dito. Sandbox lang.
|
||||||
block.power-source.description = Infinitely outputs power. Sandbox only.
|
block.power-source.description = Walang katapusang naglalabas ng kuryente. Sandbox lang.
|
||||||
block.item-source.description = Infinitely outputs items. Sandbox only.
|
block.item-source.description = Walang katapusan na naglalabas ng mga item. Sandbox lang.
|
||||||
block.item-void.description = Destroys any items. Sandbox only.
|
block.item-void.description = Sinisira ang anumang mga item. Sandbox lang.
|
||||||
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
block.liquid-source.description = Walang katapusan na naglalabas ng mga likido. Sandbox lang.
|
||||||
block.liquid-void.description = Removes any liquids. Sandbox only.
|
block.liquid-void.description = Tinatanggal ang anumang likido. Sandbox lang.
|
||||||
block.payload-source.description = Infinitely outputs payloads. Sandbox only.
|
block.payload-source.description = Walang katapusang naglalabas ng mga payload. Sandbox lang.
|
||||||
block.payload-void.description = Destroys any payloads. Sandbox only.
|
block.payload-void.description = Sinisira ang anumang mga payload. Sandbox lang.
|
||||||
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
|
block.copper-wall.description = Isang murang defensive block.\nKapaki-pakinabang para sa pagprotekta sa core at mga turret sa unang ilang alon.
|
||||||
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
|
block.copper-wall-large.description = Isang murang defensive block.\nKapaki-pakinabang para sa pagprotekta sa core at mga turret sa unang ilang alon.\nKumuha ng maraming tile.
|
||||||
block.titanium-wall.description = A moderately strong defensive block.\nProvides moderate protection from enemies.
|
block.titanium-wall.description = Isang katamtamang malakas na defensive block.\nNagbibigay ng katamtamang proteksyon mula sa mga kaaway.
|
||||||
block.titanium-wall-large.description = A moderately strong defensive block.\nProvides moderate protection from enemies.\nSpans multiple tiles.
|
block.titanium-wall-large.description = Isang medyo malakas na defensive block.\nNagbibigay ng katamtamang proteksyon mula sa mga kaaway.\nKumuha ng maraming tile.
|
||||||
block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.
|
block.plastanium-wall.description = Isang espesyal na uri ng pader na sumisipsip ng mga electric arc at hinaharangan ang mga awtomatikong koneksyon ng power node.
|
||||||
block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles.
|
block.plastanium-wall-large.description = Isang espesyal na uri ng pader na sumisipsip ng mga electric arc at hinaharangan ang mga awtomatikong koneksyon ng power node.\n Gumagamit ng maraming tile.
|
||||||
block.thorium-wall.description = A strong defensive block.\nDecent protection from enemies.
|
block.thorium-wall.description = Isang malakas na defensive block.\nDisenteng proteksyon mula sa mga kaaway.
|
||||||
block.thorium-wall-large.description = A strong defensive block.\nDecent protection from enemies.\nSpans multiple tiles.
|
block.thorium-wall-large.description = Isang malakas na defensive block.\nDisenteng proteksyon mula sa mga kaaway.\nGumagamit ng maraming tile.
|
||||||
block.phase-wall.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.
|
block.phase-wall.description = Isang pader na pinahiran ng espesyal na phase-based na reflective compound. Pinapalihis ang karamihan sa mga bala sa pagtama.
|
||||||
block.phase-wall-large.description = A wall coated with special phase-based reflective compound. Deflects most bullets upon impact.\nSpans multiple tiles.
|
block.phase-wall-large.description = Isang pader na pinahiran ng espesyal na phase-based na reflective compound. Pinapalihis ang karamihan sa mga bala kapag natamaan.\nGumagamit ng maraming tile.
|
||||||
block.surge-wall.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.
|
block.surge-wall.description = Isang napakatibay na defensive block.\nNagpapalaki ng singil sa bullet contact, na ilalabas ito nang random.
|
||||||
block.surge-wall-large.description = An extremely durable defensive block.\nBuilds up charge on bullet contact, releasing it randomly.\nSpans multiple tiles.
|
block.surge-wall-large.description = Isang napakatibay na defensive block.\nBumubuo ng singil sa bullet contact, ilalabas ito nang random.\nGumagamit ng maraming tile.
|
||||||
block.door.description = A small door. Can be opened or closed by tapping.
|
block.door.description = Isang maliit na pinto. Maaaring buksan o isara sa pamamagitan ng pag-tap.
|
||||||
block.door-large.description = A large door. Can be opened and closed by tapping.\nSpans multiple tiles.
|
block.door-large.description = Isang malaking pinto. Maaaring buksan at isara sa pamamagitan ng pag-tap.\nSpans maramihang mga tile.
|
||||||
block.mender.description = Periodically repairs blocks in its vicinity. Keeps defenses repaired in-between waves.\nOptionally uses silicon to boost range and efficiency.
|
block.mender.description = Pana-panahong nag-aayos ng mga blocks sa paligid nito. Pinapanatiling maayos ang mga depensa sa pagitan ng mga alon.\nOpsyonal na gumagamit ng silicon upang palakasin ang saklaw at kahusayan.
|
||||||
block.mend-projector.description = An upgraded version of the Mender. Repairs blocks in its vicinity.\nOptionally uses phase fabric to boost range and efficiency.
|
block.mend-projector.description = Isang na-upgrade na bersyon ng Mender. Nag-aayos ng mga bloke sa paligid nito.\nOpsyonal na gumagamit ng phase fabric upang palakasin ang saklaw at kahusayan.
|
||||||
block.overdrive-projector.description = Increases the speed of nearby buildings.\nOptionally uses phase fabric to boost range and efficiency.
|
block.overdrive-projector.description = Pinapataas ang bilis ng mga kalapit na buildings.\nOpsyonal na gumagamit ng phase fabric upang palakasin ang saklaw at kahusayan.
|
||||||
block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage.\nOverheats if too much damage is sustained. Optionally uses coolant to prevent overheating. Phase fabric can be used to increase shield size.
|
block.force-projector.description = Gumagawa ng hexagonal force field sa paligid nito, na nagpoprotekta sa mga gusali at unit sa loob mula sa pagkasira.\nNag-o-overheat kung masyadong maraming pinsala ang natamo. Opsyonal na gumagamit ng coolant upang maiwasan ang sobrang init. Maaaring gamitin ang phase fabric upang madagdagan ang laki ng kalasag.
|
||||||
block.shock-mine.description = Damages enemies stepping on the mine. Nearly invisible to the enemy.
|
block.shock-mine.description = Pinipinsala ang mga kaaway na tumuntong sa minahan. Halos hindi nakikita ng kalaban.
|
||||||
block.conveyor.description = Basic item transport block. Moves items forward and automatically deposits them into blocks. Rotatable.
|
block.conveyor.description = Pangunahing block ng transportasyon ng item. Inililipat ang mga item pasulong at awtomatikong idedeposito ang mga ito sa mga bloke. Naiikot.
|
||||||
block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors.
|
block.titanium-conveyor.description = Advanced na block ng transportasyon ng item. Inilipat ang mga item nang mas mabilis kaysa sa mga karaniwang conveyor.
|
||||||
block.plastanium-conveyor.description = Moves items in batches.\nAccepts items at the back, and unloads them in three directions at the front.
|
block.plastanium-conveyor.description = Naglilipat ng mga item sa mga batch.\nTinatanggap ang mga item sa likod, at ibinababa ang mga ito sa tatlong direksyon sa harap.
|
||||||
block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations.
|
block.junction.description = Nagsisilbing tulay para sa dalawang tumatawid na conveyor belt. Kapaki-pakinabang sa mga sitwasyon na may dalawang magkaibang conveyor na nagdadala ng magkaibang mga materyales sa magkaibang lokasyon.
|
||||||
block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building.
|
block.bridge-conveyor.description = Advanced na block ng transportasyon ng item. Nagbibigay-daan sa pagdadala ng mga item sa hanggang 3 tile ng anumang lupain o gusali.
|
||||||
block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
|
block.phase-conveyor.description = Advanced na block ng transportasyon ng item. Gumagamit ng kuryente para mag-teleport ng mga item sa isang konektadong phase conveyor sa ilang tile.
|
||||||
block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
|
block.sorter.description = Pag-uuri ng mga item. Kung ang isang item ay tumugma sa pagpili, ito ay pinapayagang makapasa. Kung hindi, ang item ay nai-output sa kaliwa at kanan.
|
||||||
block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead.
|
block.inverted-sorter.description = Pinoproseso ang mga item tulad ng isang karaniwang sorter, ngunit sa halip ay naglalabas ng mga napiling item sa mga gilid.
|
||||||
block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[]
|
block.router.description = Tumatanggap ng mga item, pagkatapos ay i-output ang mga ito sa hanggang 3 iba pang direksyon nang pantay. Kapaki-pakinabang para sa paghahati ng mga materyales mula sa isang pinagmulan patungo sa maraming target.\n\n[scarlet]Huwag gumamit sa tabi ng mga production input, dahil mababara ang mga ito ng output.[]
|
||||||
block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output.
|
block.router.details = A necessary evil. Using next to production inputs is not advised, as they will get clogged by output.
|
||||||
block.distributor.description = An advanced router. Splits items to up to 7 other directions equally.
|
block.distributor.description = Isang advanced na router. Hinahati ang mga item sa hanggang 7 iba pang direksyon nang pantay.
|
||||||
block.overflow-gate.description = Only outputs to the left and right if the front path is blocked.
|
block.overflow-gate.description = Mga output lamang sa kaliwa at kanan kung ang harap na landas ay naka-block.
|
||||||
block.underflow-gate.description = The opposite of an overflow gate. Outputs to the front if the left and right paths are blocked.
|
block.underflow-gate.description = Ang kabaligtaran ng isang overflow gate. Mga output sa harap kung ang kaliwa at kanang mga landas ay naharang.
|
||||||
block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate.
|
block.mass-driver.description = Ang pinakahuling block ng transportasyon ng item. Nangongolekta ng ilang mga item at pagkatapos ay kukunan ang mga ito sa isa pang mass driver sa mahabang hanay. Nangangailangan ng kuryente upang gumana.
|
||||||
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
|
block.mechanical-pump.description = Isang murang bomba na may mabagal na output, ngunit walang pagkonsumo ng kuryente.
|
||||||
block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power.
|
block.rotary-pump.description = Isang advanced na bomba. Nagbomba ng mas maraming likido, ngunit nangangailangan ng kapangyarihan.
|
||||||
block.thermal-pump.description = The ultimate pump.
|
block.thermal-pump.description = Ang tunay na bomba.
|
||||||
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
|
block.conduit.description = Basic liquid transport block. Moves liquids forward. Used in conjunction with pumps and other conduits.
|
||||||
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
block.pulse-conduit.description = An advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
||||||
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
|
block.plated-conduit.description = Moves liquids at the same rate as pulse conduits, but possesses more armor. Does not accept fluids from the sides by anything other than conduits.\nLeaks less.
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ sectors.unexplored = [lightgray]Inexploré
|
|||||||
sectors.resources = Ressources :
|
sectors.resources = Ressources :
|
||||||
sectors.production = Production :
|
sectors.production = Production :
|
||||||
sectors.export = Exporter :
|
sectors.export = Exporter :
|
||||||
sectors.import = Import:
|
sectors.import = Importer :
|
||||||
sectors.time = Temps de jeu :
|
sectors.time = Temps de jeu :
|
||||||
sectors.threat = Menace :
|
sectors.threat = Menace :
|
||||||
sectors.wave = Vague :
|
sectors.wave = Vague :
|
||||||
@@ -823,7 +823,7 @@ bullet.damage = [stat]{0}[lightgray] dégâts
|
|||||||
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
|
bullet.splashdamage = [stat]{0}[lightgray] dégâts de zone ~[stat] {1}[lightgray] blocs
|
||||||
bullet.incendiary = [stat]incendiaire
|
bullet.incendiary = [stat]incendiaire
|
||||||
bullet.homing = [stat]autoguidé
|
bullet.homing = [stat]autoguidé
|
||||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
bullet.frags = [stat]{0}[lightgray]x Balle à fragmentation :
|
||||||
bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts
|
bullet.lightning = [stat]{0}[lightgray]x foudre ~ [stat]{1}[lightgray] dégâts
|
||||||
bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments
|
bullet.buildingdamage = [stat]{0}%[lightgray] des dégâts aux bâtiments
|
||||||
bullet.knockback = [stat]{0}[lightgray] recul
|
bullet.knockback = [stat]{0}[lightgray] recul
|
||||||
@@ -1036,7 +1036,7 @@ rules.wavetimer = Compte à rebours des vagues
|
|||||||
rules.waves = Vagues
|
rules.waves = Vagues
|
||||||
rules.attack = Mode « Attaque »
|
rules.attack = Mode « Attaque »
|
||||||
rules.buildai = Constructions de l'IA
|
rules.buildai = Constructions de l'IA
|
||||||
rules.aitier = AI Tier
|
rules.aitier = IA Tier
|
||||||
rules.cleanupdeadteams = Détruire les structures des équipes vaincues (JcJ)
|
rules.cleanupdeadteams = Détruire les structures des équipes vaincues (JcJ)
|
||||||
rules.corecapture = Capture du Noyau lors de sa Destruction
|
rules.corecapture = Capture du Noyau lors de sa Destruction
|
||||||
rules.polygoncoreprotection = Protection du noyau polygonal
|
rules.polygoncoreprotection = Protection du noyau polygonal
|
||||||
@@ -1056,15 +1056,15 @@ rules.deconstructrefundmultiplier = Multiplicateur du remboursement lors de la d
|
|||||||
rules.waitForWaveToEnd = Les Vagues attendent la mort des ennemis
|
rules.waitForWaveToEnd = Les Vagues attendent la mort des ennemis
|
||||||
rules.dropzoneradius = Rayon d'Apparition des ennemis :[lightgray] (tuiles)
|
rules.dropzoneradius = Rayon d'Apparition des ennemis :[lightgray] (tuiles)
|
||||||
rules.unitammo = Les Unités nécessitent des munitions
|
rules.unitammo = Les Unités nécessitent des munitions
|
||||||
rules.enemyteam = Enemy Team
|
rules.enemyteam = Équipe ennemie
|
||||||
rules.playerteam = Player Team
|
rules.playerteam = Équipe du joueur
|
||||||
rules.title.waves = Vagues
|
rules.title.waves = Vagues
|
||||||
rules.title.resourcesbuilding = Resources & Construction
|
rules.title.resourcesbuilding = Resources & Construction
|
||||||
rules.title.enemy = Ennemis
|
rules.title.enemy = Ennemis
|
||||||
rules.title.unit = Unités
|
rules.title.unit = Unités
|
||||||
rules.title.experimental = Expérimental
|
rules.title.experimental = Expérimental
|
||||||
rules.title.environment = Environnement
|
rules.title.environment = Environnement
|
||||||
rules.title.teams = Teams
|
rules.title.teams = Équipes
|
||||||
rules.lighting = Éclairage
|
rules.lighting = Éclairage
|
||||||
rules.enemyLights = Éclairage ennemi
|
rules.enemyLights = Éclairage ennemi
|
||||||
rules.fire = Feu
|
rules.fire = Feu
|
||||||
@@ -1479,9 +1479,9 @@ block.incinerator.description = Incinère ou vaporise n'importe quel objet ou li
|
|||||||
block.power-void.description = Absorbe toute l'énergie qui va à l'intérieur. Bac à sable uniquement.
|
block.power-void.description = Absorbe toute l'énergie qui va à l'intérieur. Bac à sable uniquement.
|
||||||
block.power-source.description = Produit de l'énergie à l'infini. Bac à sable uniquement.
|
block.power-source.description = Produit de l'énergie à l'infini. Bac à sable uniquement.
|
||||||
block.item-source.description = Produit des objets à l'infini. Bac à sable uniquement.
|
block.item-source.description = Produit des objets à l'infini. Bac à sable uniquement.
|
||||||
block.item-void.description = Désintègre n'importe quel objet qui va à l'intérieur. Bac à sable uniquement.
|
block.item-void.description = Détruit les objets introduits. Bac à sable uniquement.
|
||||||
block.liquid-source.description = Source de liquide infinie. Bac à sable uniquement.
|
block.liquid-source.description = Source de liquide infinie. Bac à sable uniquement.
|
||||||
block.liquid-void.description = Détruit n'importe quel liquide. Bac à sable uniquement.
|
block.liquid-void.description = Détruit les liquides introduits. Bac à sable uniquement.
|
||||||
block.payload-source.description = Produit des charges utiles à l'infini. Bac à sable uniquement.
|
block.payload-source.description = Produit des charges utiles à l'infini. Bac à sable uniquement.
|
||||||
block.payload-void.description = Détruit toutes les charges utiles. Bac à sable uniquement.
|
block.payload-void.description = Détruit toutes les charges utiles. Bac à sable uniquement.
|
||||||
block.copper-wall.description = Un bloc défensif à faible coût.\nUtile pour protéger la base et les tourelles lors des premières vagues.
|
block.copper-wall.description = Un bloc défensif à faible coût.\nUtile pour protéger la base et les tourelles lors des premières vagues.
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ committingchanges = Membuat Perubahan
|
|||||||
done = Selesai
|
done = Selesai
|
||||||
feature.unsupported = Perangkat Anda tidak mendukung fitur ini.
|
feature.unsupported = Perangkat Anda tidak mendukung fitur ini.
|
||||||
|
|
||||||
mods.initfailed = [red]⚠[] Proses Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[]\n\nUntuk menonaktifkan fitur ini, matikan di [accent]Pengaturan->Permainan->Matikan Mod Ketika Ada Masalah Saat Memulai Permainan[].
|
mods.initfailed = [red]⚠[] Proses Mindustry sebelumnya gagal untuk dimulai. Kemungkinan besar disebabkan oleh mod yang bermasalah.\n\nUntuk menghindari kesalahan berulang, [red]semua mod telah dinonaktifkan.[]
|
||||||
mods = Mod
|
mods = Mod
|
||||||
mods.none = [lightgray]Tidak ada mod yang ditemukan!
|
mods.none = [lightgray]Tidak ada mod yang ditemukan!
|
||||||
mods.guide = Panduan Memodifikasi
|
mods.guide = Panduan Memodifikasi
|
||||||
@@ -144,16 +144,16 @@ mod.outdated = [scarlet]Tidak cocok dengan V6 (minGameVersion: 105)
|
|||||||
mod.missingdependencies = [scarlet]Ketergantungan hilang: {0}
|
mod.missingdependencies = [scarlet]Ketergantungan hilang: {0}
|
||||||
mod.erroredcontent = [scarlet]Konten Mengalami Kesalahan
|
mod.erroredcontent = [scarlet]Konten Mengalami Kesalahan
|
||||||
mod.errors = Kesalahan terjadi disaat memuat konten.
|
mod.errors = Kesalahan terjadi disaat memuat konten.
|
||||||
mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Antara nonaktifkan modnya 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 ketergantungan:[accent] {1}\n[lightgray]Mod ini butuh untuk diunduh terlebih dahulu.\nMod ini akan dinonaktifkan secara otomatis.
|
mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki ketergantungan:[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 keluar untuk mengaktifkan mod.
|
mod.requiresrestart = Game akan keluar untuk mengaktifkan mod.
|
||||||
mod.reloadrequired = [scarlet]Dibutuhkan untuk memuat ulang
|
mod.reloadrequired = [scarlet]Dibutuhkan untuk memuat ulang
|
||||||
mod.import = Impor Mod
|
mod.import = Impor Mod
|
||||||
mod.import.file = Impor File
|
mod.import.file = Impor File
|
||||||
mod.import.github = Impor Mod GitHub
|
mod.import.github = Impor Mod GitHub
|
||||||
mod.jarwarn = [scarlet]Mod dari JAR sebenarnya tidak aman.[]\nPastikan anda mengimpor mod dari sumber terpercaya!
|
mod.jarwarn = [scarlet]Mod dari JAR sebenarnya tidak aman.[]\nPastikan Anda mengimpor mod dari sumber terpercaya!
|
||||||
mod.item.remove = Item ini merupakan bagian dari mod[accent] '{0}'[] mod. Untuk dihilangkan, hapus mod ini.
|
mod.item.remove = Item ini merupakan bagian dari mod[accent] '{0}'[]. Untuk dihilangkan, hapus mod ini.
|
||||||
mod.remove.confirm = Mod ini akan dihapus.
|
mod.remove.confirm = Mod ini akan dihapus.
|
||||||
mod.author = [lightgray]Pencipta:[] {0}
|
mod.author = [lightgray]Pencipta:[] {0}
|
||||||
mod.missing = Simpanan ini mengandung mod yang telah diperbarui atau sudah lama tidak dipasang. Kemungkinan akan terjadi perubahan. Apakah Anda yakin untuk memuatnya?\n[lightgray]Mods:\n{0}
|
mod.missing = Simpanan ini mengandung mod yang telah diperbarui atau sudah lama tidak dipasang. Kemungkinan akan terjadi perubahan. Apakah Anda yakin untuk memuatnya?\n[lightgray]Mods:\n{0}
|
||||||
@@ -319,7 +319,7 @@ data.invalid = Data permainan ini tidak sah.
|
|||||||
data.import.confirm = Mengimpor data eksternal akan menghapus [scarlet] semua[] data yang tersimpan.\n[accent]Tidak dapat diundur lagi![]\n\nSetelah data diimpor, game akan segera ditutup.
|
data.import.confirm = Mengimpor data eksternal akan menghapus [scarlet] semua[] data yang tersimpan.\n[accent]Tidak dapat diundur lagi![]\n\nSetelah data diimpor, game akan segera ditutup.
|
||||||
quit.confirm = Apakah Anda yakin ingin keluar?
|
quit.confirm = Apakah Anda yakin ingin keluar?
|
||||||
loading = [accent]Memuat...
|
loading = [accent]Memuat...
|
||||||
downloading = [accent]Downloading...
|
downloading = [accent]Mengunduh...
|
||||||
saving = [accent]Menyimpan...
|
saving = [accent]Menyimpan...
|
||||||
respawn = [accent][[{0}][] untuk muncul kembali ke inti
|
respawn = [accent][[{0}][] untuk muncul kembali ke inti
|
||||||
cancelbuilding = [accent][[{0}][] untuk menghapus rencana
|
cancelbuilding = [accent][[{0}][] untuk menghapus rencana
|
||||||
@@ -347,9 +347,9 @@ custom = Modifikasi
|
|||||||
builtin = Terpasang
|
builtin = Terpasang
|
||||||
map.delete.confirm = Anda yakin ingin menghapus peta ini? Aksi ini tidak bisa diubah!
|
map.delete.confirm = Anda yakin ingin menghapus peta ini? Aksi ini tidak bisa diubah!
|
||||||
map.random = [accent]Peta Acak
|
map.random = [accent]Peta Acak
|
||||||
map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [royal] biru[] kedalam peta di penyunting.
|
map.nospawn = Peta ini tidak memiliki inti agar pemain bisa muncul! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting.
|
||||||
map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[scarlet] selain biru[] kedalam peta di penyunting.
|
map.nospawn.pvp = Peta ini tidak memiliki inti agar pemain lawan bisa muncul! Tambahkan inti[scarlet] selain jingga[] ke dalam peta di penyunting.
|
||||||
map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti[scarlet] merah[] kedalam peta di penyunting.
|
map.nospawn.attack = Peta ini tidak memiliki inti musuh agar pemain bisa menyerang! Tambahkan inti [#{0}]{1}[] ke dalam peta di penyunting.
|
||||||
map.invalid = Terjadi kesalahan saat memuat peta: rusak atau file peta tidak valid.
|
map.invalid = Terjadi kesalahan saat memuat peta: rusak atau file peta tidak valid.
|
||||||
workshop.update = Perbarui Item
|
workshop.update = Perbarui Item
|
||||||
workshop.error = Terjadi kesalahan saat mengambil detail workshop: {0}
|
workshop.error = Terjadi kesalahan saat mengambil detail workshop: {0}
|
||||||
@@ -360,7 +360,7 @@ changelog = Catatan Pembaruan (opsional):
|
|||||||
eula = EULA Steam
|
eula = EULA Steam
|
||||||
missing = Item ini telah dihapus atau dipindah.\n[lightgray]Daftar Workshop sekarang telah tidak terhubung secara otomatis.
|
missing = Item ini telah dihapus atau dipindah.\n[lightgray]Daftar Workshop sekarang telah tidak terhubung secara otomatis.
|
||||||
publishing = [accent]Menerbitkan...
|
publishing = [accent]Menerbitkan...
|
||||||
publish.confirm = Apakah Anda yakin untuk menerbitkan item ini?\n\n[lightgray]Pastikan Anda setuju dengan EULA Workshop terlebih dahulu, atau item Anda tidak akan muncul!
|
publish.confirm = Apakah Anda yakin untuk menerbitkan ini?\n\n[lightgray]Pastikan Anda setuju dengan EULA Workshop terlebih dahulu, atau item Anda tidak akan muncul!
|
||||||
publish.error = Terjadi kesalahan saat menerbitkan item: {0}
|
publish.error = Terjadi kesalahan saat menerbitkan item: {0}
|
||||||
steam.error = Gagal untuk menjalankan layanan Steam.\nKesalahan: {0}
|
steam.error = Gagal untuk menjalankan layanan Steam.\nKesalahan: {0}
|
||||||
|
|
||||||
@@ -385,7 +385,7 @@ editor.filters = Filter Peta
|
|||||||
editor.filters.mode = Mode Permainan:
|
editor.filters.mode = Mode Permainan:
|
||||||
editor.filters.type = Tipe Peta:
|
editor.filters.type = Tipe Peta:
|
||||||
editor.filters.search = Cari Dalam:
|
editor.filters.search = Cari Dalam:
|
||||||
editor.filters.author = Pembuat
|
editor.filters.author = Pencipta
|
||||||
editor.filters.description = Deskripsi
|
editor.filters.description = Deskripsi
|
||||||
workshop = Workshop
|
workshop = Workshop
|
||||||
waves.title = Gelombang
|
waves.title = Gelombang
|
||||||
@@ -650,7 +650,7 @@ sector.craters.description = Air banyak terkumpul di kawah ini, sebuah peninggal
|
|||||||
sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi.
|
sector.ruinousShores.description = Keluar dari lembah gunung, terdapat garis pantai. Sebelumnya, area ini adalah garis pertahanan pantai. Sekarang tidak banyak yang tersisa. Hanya pertahanan dasar yang tersisa, yang lain hancur berkeping keping.\nBangun kembali pertahanan di sini. Pelajari lebih banyak teknologi.
|
||||||
sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat disini. Jangan biarkan mereka meluncurkan unit yang lebih kuat.
|
sector.stainedMountains.description = Area ini terletak di dekat pegunungan, namun belum tersentuh oleh spora.\nTambang titanium yang ada di area ini. Pelajari fungsinya.\n\nMusuh jauh lebih kuat disini. Jangan biarkan mereka meluncurkan unit yang lebih kuat.
|
||||||
sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun basis disini. Bangun unit Mace. Hancurkan mereka. Klaim apapun yang tersisa.
|
sector.overgrowth.description = Area ini banyak ditumbuhi spora, karena dekat dengan sumber spora.\nMusuh telah membangun basis disini. Bangun unit Mace. Hancurkan mereka. Klaim apapun yang tersisa.
|
||||||
sector.tarFields.description = Terletak di pinggiran zona produksi minyak, diantara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pertahanan musuh yang sangat kuat disekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak jika bisa.
|
sector.tarFields.description = Terletak di pinggiran zona produksi minyak, diantara gunung dan padang pasir. Salah satu dari beberapa area yang memiliki cadangan minyak yang dapat digunakan.\nMeskipun ditinggalkan, area ini terdapat pertahanan musuh yang sangat kuat disekitarnya. Jangan meremehkan mereka.\n\n[lightgray]Pelajari proses penyulingan minyak bila memungkinkan.
|
||||||
sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat beresiko tinggi untuk dihancurkan. Keluar secepat yang kamu bisa. Jangan terlena karena waktu antara gelombang yang lama.
|
sector.desolateRift.description = Zona yang sangat berbahaya. Banyak sumber daya, tetapi terdapat sedikit ruang. Sangat beresiko tinggi untuk dihancurkan. Keluar secepat yang kamu bisa. Jangan terlena karena waktu antara gelombang yang lama.
|
||||||
sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses thorium, telah hancur.\n[lightgray]Pelajari thorium dan cara penggunaanya.\n\nMusuh disini menyerang dalam jumlah besar, yang siap untuk menghadapi siapapun.
|
sector.nuclearComplex.description = Sebuah fasilitas untuk memproduksi dan memproses thorium, telah hancur.\n[lightgray]Pelajari thorium dan cara penggunaanya.\n\nMusuh disini menyerang dalam jumlah besar, yang siap untuk menghadapi siapapun.
|
||||||
sector.fungalPass.description = Area ini terdapat diantara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun basis kecil disini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka.
|
sector.fungalPass.description = Area ini terdapat diantara pegunungan yang lebih tinggi dengan yang lebih rendah, juga daerah yang dipenuhi spora. Musuh membangun basis kecil disini.\nHancurkan itu.\nGunakan unit Dagger dan Crawler. Hancurkan dua inti mereka.
|
||||||
@@ -674,7 +674,7 @@ status.overclock.name = Melebihi Batas
|
|||||||
status.shocked.name = Mengkejut
|
status.shocked.name = Mengkejut
|
||||||
status.blasted.name = Meledak
|
status.blasted.name = Meledak
|
||||||
status.unmoving.name = Terdiam
|
status.unmoving.name = Terdiam
|
||||||
status.boss.name = Guardian
|
status.boss.name = Penjaga
|
||||||
|
|
||||||
settings.language = Bahasa
|
settings.language = Bahasa
|
||||||
settings.data = Data Game
|
settings.data = Data Game
|
||||||
@@ -822,7 +822,7 @@ bullet.damage = [stat]{0}[lightgray] kekuatan (dmg)
|
|||||||
bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak
|
bullet.splashdamage = [stat]{0}[lightgray] kekuatan percikan~[stat] {1}[lightgray] kotak
|
||||||
bullet.incendiary = [stat]membakar
|
bullet.incendiary = [stat]membakar
|
||||||
bullet.homing = [stat]mengejar
|
bullet.homing = [stat]mengejar
|
||||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
bullet.frags = [stat]{0}[lightgray]x pecahan:
|
||||||
bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan
|
bullet.lightning = [stat]{0}[lightgray]x petir ~ [stat]{1}[lightgray] kerusakan
|
||||||
bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan
|
bullet.buildingdamage = [stat]{0}%[lightgray] kerusakan bangunan
|
||||||
bullet.knockback = [stat]{0}[lightgray] terdorong
|
bullet.knockback = [stat]{0}[lightgray] terdorong
|
||||||
@@ -1077,7 +1077,7 @@ item.lead.name = Timah
|
|||||||
item.coal.name = Batu Bara
|
item.coal.name = Batu Bara
|
||||||
item.graphite.name = Grafit
|
item.graphite.name = Grafit
|
||||||
item.titanium.name = Titanium
|
item.titanium.name = Titanium
|
||||||
item.thorium.name = Thorium
|
item.thorium.name = Torium
|
||||||
item.silicon.name = Silikon
|
item.silicon.name = Silikon
|
||||||
item.plastanium.name = Plastanium
|
item.plastanium.name = Plastanium
|
||||||
item.phase-fabric.name = Kain Phase
|
item.phase-fabric.name = Kain Phase
|
||||||
@@ -1250,7 +1250,7 @@ block.underflow-gate.name = Gerbang Luap Terbalik
|
|||||||
block.silicon-smelter.name = Pelebur Silikon
|
block.silicon-smelter.name = Pelebur Silikon
|
||||||
block.phase-weaver.name = Pengrajut Phase
|
block.phase-weaver.name = Pengrajut Phase
|
||||||
block.pulverizer.name = Penghancur
|
block.pulverizer.name = Penghancur
|
||||||
block.cryofluid-mixer.name = Cryofluid Mixer
|
block.cryofluid-mixer.name = Penyampur Cairan Dingin
|
||||||
block.melter.name = Pencair
|
block.melter.name = Pencair
|
||||||
block.incinerator.name = Penghangus
|
block.incinerator.name = Penghangus
|
||||||
block.spore-press.name = Penekan Spora
|
block.spore-press.name = Penekan Spora
|
||||||
@@ -1468,11 +1468,11 @@ block.incinerator.description = Menghancurkan bahan atau zat cair yang masuk.
|
|||||||
block.power-void.description = Menghilangkan semua tenaga yang masuk kedalamnya. Sandbox eksklusif.
|
block.power-void.description = Menghilangkan semua tenaga yang masuk kedalamnya. Sandbox eksklusif.
|
||||||
block.power-source.description = Menghasilkan tenaga tak terhingga. Sandbox eksklusif.
|
block.power-source.description = Menghasilkan tenaga tak terhingga. Sandbox eksklusif.
|
||||||
block.item-source.description = Mengeluarkan bahan tak terhingga. Sandbox eksklusif.
|
block.item-source.description = Mengeluarkan bahan tak terhingga. Sandbox eksklusif.
|
||||||
block.item-void.description = Menghancurkan bahan apa saja. Sandbox eksklusif.
|
block.item-void.description = Menghancurkan bahan yang masuk. Sandbox eksklusif.
|
||||||
block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif.
|
block.liquid-source.description = Mengeluarkan zat cair tak terhingga. Sandbox eksklusif.
|
||||||
block.liquid-void.description = Menghancurkan zat cair apa saja. Sandbox eksklusif.
|
block.liquid-void.description = Menghancurkan zat cair yang masuk. Sandbox eksklusif.
|
||||||
block.payload-source.description = Infinitely outputs payloads. Sandbox only.
|
block.payload-source.description = Mengeluarkan muatan tak terhingga. Sandbox eksklusif.
|
||||||
block.payload-void.description = Destroys any payloads. Sandbox only.
|
block.payload-void.description = Menghancurkan muatan apapun. Sandbox eksklusif.
|
||||||
block.copper-wall.description = Melindungi bangunan dari tembakan musuh.
|
block.copper-wall.description = Melindungi bangunan dari tembakan musuh.
|
||||||
block.copper-wall-large.description = Melindungi bangunan dari tembakan musuh.
|
block.copper-wall-large.description = Melindungi bangunan dari tembakan musuh.
|
||||||
block.titanium-wall.description = Melindungi bangunan dari tembakan musuh.
|
block.titanium-wall.description = Melindungi bangunan dari tembakan musuh.
|
||||||
@@ -1660,7 +1660,7 @@ logic.nounitbuild = [red]Logika unit membangun tidak diperbolehkan di sini.
|
|||||||
lenum.type = Bentuk dari bangunan/unit.\nMisalnya, untuk blok pengarah masa, akan tampil sebagai [accent]@router[].\nBukan string.
|
lenum.type = Bentuk dari bangunan/unit.\nMisalnya, untuk blok pengarah masa, akan tampil sebagai [accent]@router[].\nBukan string.
|
||||||
lenum.shoot = Menembak pada suatu posisi yang ditentukan.
|
lenum.shoot = Menembak pada suatu posisi yang ditentukan.
|
||||||
lenum.shootp = Menembak pada unit/bangunan dengan prediksi kecepatan.
|
lenum.shootp = Menembak pada unit/bangunan dengan prediksi kecepatan.
|
||||||
lenum.config = Building configuration, e.g. sorter item.
|
lenum.config = Pengaturan bangunan, misalnya menyortir barang.
|
||||||
lenum.enabled = Menentukan aktif tidaknya suatu blok.
|
lenum.enabled = Menentukan aktif tidaknya suatu blok.
|
||||||
|
|
||||||
laccess.color = Warna lampu.
|
laccess.color = Warna lampu.
|
||||||
@@ -1709,7 +1709,7 @@ lenum.asin = Arc sinus, dalam derajat.
|
|||||||
lenum.acos = Arc kosinus, dalam derajat.
|
lenum.acos = Arc kosinus, dalam derajat.
|
||||||
lenum.atan = Arc tangen, dalam derajat.
|
lenum.atan = Arc tangen, dalam derajat.
|
||||||
|
|
||||||
#bukan typo, cari 'daerah hasil fungsi'
|
#bukan typo, lihat 'daerah hasil fungsi'
|
||||||
lenum.rand = Angka Acak dalam jarak [0, value).
|
lenum.rand = Angka Acak dalam jarak [0, value).
|
||||||
lenum.log = Logaritma natural (ln).
|
lenum.log = Logaritma natural (ln).
|
||||||
lenum.log10 = Logaritma basis 10.
|
lenum.log10 = Logaritma basis 10.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ link.google-play.description = Google Play ストアを開く
|
|||||||
link.f-droid.description = F-Droid を開く
|
link.f-droid.description = F-Droid を開く
|
||||||
link.wiki.description = 公式 Mindustry Wiki
|
link.wiki.description = 公式 Mindustry Wiki
|
||||||
link.suggestions.description = 新機能を提案する
|
link.suggestions.description = 新機能を提案する
|
||||||
link.bug.description = Found one? Report it here
|
link.bug.description = バグを見つけましたか?ぜひここから報告して下さい。
|
||||||
linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。
|
linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。
|
||||||
screenshot = スクリーンショットを {0} に保存しました。
|
screenshot = スクリーンショットを {0} に保存しました。
|
||||||
screenshot.invalid = マップが広すぎます。スクリーンショットに必要なメモリが足りない可能性があります。
|
screenshot.invalid = マップが広すぎます。スクリーンショットに必要なメモリが足りない可能性があります。
|
||||||
@@ -457,7 +457,7 @@ editor.exportimage = 地形画像をエクスポート
|
|||||||
editor.exportimage.description = 地形のみのマップ画像をエクスポートする
|
editor.exportimage.description = 地形のみのマップ画像をエクスポートする
|
||||||
editor.loadimage = 地形をインポート
|
editor.loadimage = 地形をインポート
|
||||||
editor.saveimage = 地形をエクスポート
|
editor.saveimage = 地形をエクスポート
|
||||||
editor.unsaved = [scarlet]保存されていない変更があります![]\n終了してもよろしいですか?
|
editor.unsaved = [scarlet]保存されていない変更は失われます![]\n終了してもよろしいですか?
|
||||||
editor.resizemap = マップをリサイズ
|
editor.resizemap = マップをリサイズ
|
||||||
editor.mapname = マップ名:
|
editor.mapname = マップ名:
|
||||||
editor.overwrite = [accent]警告!\nすでに存在するマップを上書きします。
|
editor.overwrite = [accent]警告!\nすでに存在するマップを上書きします。
|
||||||
@@ -533,7 +533,7 @@ ping = Ping: {0}ms
|
|||||||
tps = TPS: {0}
|
tps = TPS: {0}
|
||||||
memory = Mem: {0}mb
|
memory = Mem: {0}mb
|
||||||
memory2 = Mem:\n {0}mb +\n {1}mb
|
memory2 = Mem:\n {0}mb +\n {1}mb
|
||||||
language.restart = ゲームを再起動後、言語設定が有効になります。
|
language.restart = ゲームを再起動すると、言語設定が有効になります。
|
||||||
settings = 設定
|
settings = 設定
|
||||||
tutorial = チュートリアル
|
tutorial = チュートリアル
|
||||||
tutorial.retake = チュートリアル
|
tutorial.retake = チュートリアル
|
||||||
@@ -546,9 +546,9 @@ locked = ロック
|
|||||||
complete = [lightgray]達成済み:
|
complete = [lightgray]達成済み:
|
||||||
requirement.wave = {1} でウェーブ {0} に到達
|
requirement.wave = {1} でウェーブ {0} に到達
|
||||||
requirement.core = {0} の敵のコアを破壊
|
requirement.core = {0} の敵のコアを破壊
|
||||||
requirement.research = 研究 {0}
|
requirement.research = 研究: {0}
|
||||||
requirement.produce = 獲得 {0}
|
requirement.produce = 獲得: {0}
|
||||||
requirement.capture = 制圧 {0}
|
requirement.capture = 制圧: {0}
|
||||||
launch.text = 発射
|
launch.text = 発射
|
||||||
research.multiplayer = 研究できるのはホストのみです。
|
research.multiplayer = 研究できるのはホストのみです。
|
||||||
map.multiplayer = ホストのみがセクターを表示できます。
|
map.multiplayer = ホストのみがセクターを表示できます。
|
||||||
@@ -569,11 +569,11 @@ guardian = ガーディアン
|
|||||||
connectfail = [crimson]サーバーへ接続できませんでした:\n\n[accent]{0}
|
connectfail = [crimson]サーバーへ接続できませんでした:\n\n[accent]{0}
|
||||||
error.unreachable = サーバーに到達できません。\nアドレスは正しいですか?
|
error.unreachable = サーバーに到達できません。\nアドレスは正しいですか?
|
||||||
error.invalidaddress = 無効なアドレスです。
|
error.invalidaddress = 無効なアドレスです。
|
||||||
error.timedout = タイムアウトしました!\nホストがポート開放されているかを確認してください。
|
error.timedout = タイムアウトしました!\nホストがポート開放しているかを確認してください。
|
||||||
error.mismatch = パケットエラー:\n恐らくクライアント/サーバーのバージョンが一致していません。\nゲームとサーバーが最新版のMindustryかどうかを確認してください!
|
error.mismatch = パケットエラー:\n恐らくクライアント/サーバーのバージョンが一致していません。\nゲームとサーバーが最新版のMindustryかどうかを確認してください!
|
||||||
error.alreadyconnected = すでに接続されています。
|
error.alreadyconnected = すでに接続されています。
|
||||||
error.mapnotfound = マップファイルが見つかりません!
|
error.mapnotfound = マップファイルが見つかりません!
|
||||||
error.io = ネットワークエラーです。
|
error.io = I/O ネットワークエラーです。
|
||||||
error.any = 不明なネットワークエラーです。
|
error.any = 不明なネットワークエラーです。
|
||||||
error.bloom = ブルームの初期化に失敗しました。\n恐らくあなたのデバイスではブルームがサポートされていません。
|
error.bloom = ブルームの初期化に失敗しました。\n恐らくあなたのデバイスではブルームがサポートされていません。
|
||||||
|
|
||||||
@@ -593,7 +593,7 @@ sectors.import = Import:
|
|||||||
sectors.time = 時間:
|
sectors.time = 時間:
|
||||||
sectors.threat = 脅威:
|
sectors.threat = 脅威:
|
||||||
sectors.wave = ウェーブ:
|
sectors.wave = ウェーブ:
|
||||||
sectors.stored = 保存済み:
|
sectors.stored = コアの資源:
|
||||||
sectors.resume = 再開
|
sectors.resume = 再開
|
||||||
sectors.launch = 打ち上げ
|
sectors.launch = 打ち上げ
|
||||||
sectors.select = 選択
|
sectors.select = 選択
|
||||||
@@ -624,46 +624,46 @@ planets = 惑星
|
|||||||
planet.serpulo.name = セルプロ
|
planet.serpulo.name = セルプロ
|
||||||
planet.sun.name = 太陽
|
planet.sun.name = 太陽
|
||||||
|
|
||||||
sector.impact0078.name = インパクト 0078
|
sector.impact0078.name = 墜落地点 0078
|
||||||
sector.groundZero.name = グラウンド · ゼロ
|
sector.groundZero.name = 爆心地
|
||||||
sector.craters.name = ザ · クレーター
|
sector.craters.name = クレーター
|
||||||
sector.frozenForest.name = フローズン · フォレスト
|
sector.frozenForest.name = 凍える森
|
||||||
sector.ruinousShores.name = ルーイナス · ショアーズ
|
sector.ruinousShores.name = 荒廃した海岸
|
||||||
sector.stainedMountains.name = ステインド · マウンテン
|
sector.stainedMountains.name = 汚染された山脈
|
||||||
sector.desolateRift.name = ディサレット · リフト
|
sector.desolateRift.name = 荒涼たる峡谷
|
||||||
sector.nuclearComplex.name = ニュークリア · プロダクション · コンプレックス
|
sector.nuclearComplex.name = 原子力生産施設
|
||||||
sector.overgrowth.name = オーバーグロウス
|
sector.overgrowth.name = 繁茂した胞子地帯
|
||||||
sector.tarFields.name = ター · フィールズ
|
sector.tarFields.name = 石油埋蔵地
|
||||||
sector.saltFlats.name = ソルト · フラッツ
|
sector.saltFlats.name = 塩田平野
|
||||||
sector.fungalPass.name = ファングル · パス
|
sector.fungalPass.name = 真菌の道
|
||||||
sector.biomassFacility.name = バイオマス · シンテシス · ファシリティ
|
sector.biomassFacility.name = バイオマス研究施設
|
||||||
sector.windsweptIslands.name = ウインドスイープト · アイランズ
|
sector.windsweptIslands.name = 吹きさらしの列島
|
||||||
sector.extractionOutpost.name = エクストラクション · アウトポスト
|
sector.extractionOutpost.name = 資源搬出前哨基地
|
||||||
sector.planetaryTerminal.name = プラネタリー · ローンチ · ターミナル
|
sector.planetaryTerminal.name = 惑星間発射ターミナル
|
||||||
sector.coastline.name = 海岸線
|
sector.coastline.name = 海岸線
|
||||||
sector.navalFortress.name = 海軍要塞
|
sector.navalFortress.name = 海軍要塞
|
||||||
|
|
||||||
sector.groundZero.description = 奪回を始めるには最適な場所です。敵脅威は低いですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めます。\n始めましょう。
|
sector.groundZero.description = 奪回を始めるには最適な場所です。敵の脅威は小さいですが、資源が乏しいです。\nできるだけ多くの銅と鉛を集めましょう。\n始めましょう。
|
||||||
sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気温もそれらを永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。
|
sector.frozenForest.description = ここでさえ、山に近づくほど胞子が広がっています。\n極寒の気候もでさえ胞子を永遠に封じ込めることはできませんでした。\n\n電気に挑みましょう。\n火力発電機を建設し、修復機の使い方を学びましょう。
|
||||||
sector.saltFlats.description = 砂漠のはずれにあるソルト · フラッツです。\nここには資源がほとんどありません。\n\n敵はここに資源貯蔵施設を建設しました。\n彼らのコアを絶ち、掃滅してください。
|
sector.saltFlats.description = 砂漠のはずれにある平野です。\nここには資源がほとんどありません。\n\n敵はここに資源貯蔵施設を建設しました。\n彼らのコアを破壊し、掃滅してください。
|
||||||
sector.craters.description = 過去の戦争の名残であるクレーターに水が溜まっています。\nエリアを取り戻し、砂を集め、メタガラスを精錬しましょう。\nタレットとドリルを冷却するためには水をポンプで送る必要があります。
|
sector.craters.description = 過去の戦争の名残であるクレーターに水が溜まっています。\nエリアを取り戻し、砂を集め、メタガラスを精錬しましょう。\nタレットとドリルを冷却するためには水をポンプで送る必要があります。
|
||||||
sector.ruinousShores.description = 荒れ地を過ぎると海岸線です。\nここにはかつて沿岸防衛隊が配備されていましたが、ほぼ残存していません。\n最も基本的な防衛施設のみが無傷のまま残っており、それ以外は全て破壊されています。\n外部拡張を続け、テクノロジーを再取得してください。
|
sector.ruinousShores.description = 荒れ地を過ぎると海岸線です。\nここにはかつて沿岸防衛隊が配備されていましたが、ほぼ残存していません。\n最も基本的な防衛施設のみが無傷のまま残っており、それ以外は全て破壊されています。\n外部拡張を続け、研究を再発見していきましょう。
|
||||||
sector.stainedMountains.description = 更に内陸には、胞子に汚染されていない山があります。\nこの地域にはチタンが豊富にあります。抽出して使い方を学びましょう。\n\nここにはより多くの敵が襲来します。強力なユニットを送る時間を与えないでください。
|
sector.stainedMountains.description = 更に内陸には、胞子に汚染されていない山があります。\nこの地域にはチタンが豊富にあります。抽出して使い方を学びましょう。\n\nここにはより多くの敵が襲来します。強力なユニットを送る時間を与えないでください。
|
||||||
sector.overgrowth.description = このエリアは、胞子の発生源に近く生い茂っています。\n敵はここに前哨基地を配備しました。タイタンユニットを生産し、破壊してください。\n失ったものを取り戻すのです。
|
sector.overgrowth.description = このエリアは、胞子の発生源に近く生い茂っています。\n敵はここに前哨基地を配備しました。ユニットの"メイス"を生産し、破壊してください。\n失ったものを取り戻すのです。
|
||||||
sector.tarFields.description = 山と砂漠に挟まれた、石油産出地帯のはずれです。\n使用可能なタール埋蔵量がある数少ないエリアの1つです。\n放棄されたエリアですが、近くに脅威となる敵がいます。\n\n[lightgray]可能であれば石油抽出機を研究しましょう。
|
sector.tarFields.description = 山と砂漠に挟まれた、石油産出地帯のはずれです。\n利用可能な石油が埋蔵する数少ないエリアの1つです。\n放棄されたエリアですが、近くに脅威となる敵がいます。\n\n[lightgray]可能であれば石油に関連する施設を研究しましょう。
|
||||||
sector.desolateRift.description = 非常に危険な地帯です。資源は豊富ですが、領域が十分にありません。破壊されるリスクが高いため、一刻も早く立ち去りましょう。\n敵の攻撃間隔が長いですが、気を抜かないでください。
|
sector.desolateRift.description = 非常に危険な地帯です。資源は豊富ですが、領域が十分にありません。破壊されるリスクが高いため、一刻も早く立ち去りましょう。\n敵の攻撃間隔が長いですが、気を抜かないでください。
|
||||||
sector.nuclearComplex.description = 崩壊したトリウム製造・加工施設です。\n[lightgray]トリウムとその多くの用途を研究してください。\n\n多くの敵がここに存在し、常に攻撃を偵察しています。
|
sector.nuclearComplex.description = 崩壊したトリウム製造・加工施設です。\n[lightgray]トリウムとその多くの用途を研究してください。\n\n多くの敵がここに存在し、常に攻撃を偵察しています。
|
||||||
sector.fungalPass.description = 高山と、胞子の多い低地との間の遷移地域です。\nここには敵の小さな偵察基地があります。\n破壊してください。\nダガーとクローラーユニットを使い、2つの敵コアの排除しましょう、
|
sector.fungalPass.description = 高山と、胞子の多い低地との間の遷移地域です。\nここには敵の小さな偵察基地があります。\n破壊してください。\nダガーとクローラーユニットを使い、2つの敵コアの排除しましょう、
|
||||||
sector.biomassFacility.description = 胞子の発生源です。\nこれらは胞子の研究のために、最初に建設された施設です。\n内部に残された技術を研究しましょう。燃料とプラスタニウムの生産のために胞子を培養します。\n\n[lightgray]この施設が活動停止したために、胞子が放出されました。地域の生態系には、そのような侵略的生物と競合するものはありません。
|
sector.biomassFacility.description = 胞子の発生源です。\nこれらは胞子の研究のために、最初に建設された施設です。\n内部に残された技術を研究しましょう。燃料とプラスタニウムの生産のために胞子を培養します。\n\n[lightgray]この施設が活動停止したために、胞子が放出されました。地域の生態系には、そのような侵略的生物と競合するものはありません。
|
||||||
sector.windsweptIslands.description = 海岸をさらに進むと、辺鄙な列島があります。記録によると、ここにはかつて[accent]プラスタニウム[]を生産するシステムがありました。\n\n敵の海軍ユニットを撃沈してください。島々に基地を建造し、これらの工場を調査しましょう。
|
sector.windsweptIslands.description = 海岸をさらに進むと、辺鄙な列島があります。記録によれば、ここにはかつて[accent]プラスタニウム[]の生産施設がありました。\n\n敵の海軍ユニットを撃沈してください。島々に基地を建造し、これらの工場を調査しましょう。
|
||||||
sector.extractionOutpost.description = 他のセクターへ資源を輸送するために建設された敵の遠隔地の前哨基地です。\n\nさらなる征伐のためには、セクター間を通ずる輸送技術が不可欠です。基地を破壊してください。彼らの発射台を研究しましょう。
|
sector.extractionOutpost.description = 他のセクターへ資源を輸送するために建設された敵の遠隔地の前哨基地です。\n\nさらなる征伐のためには、セクター間を通ずる輸送技術が不可欠です。基地を破壊してください。彼らの発射台を研究しましょう。
|
||||||
sector.impact0078.description = ここには、最初にこの星系に入った星間輸送船の残骸があります。\n\n残骸を可能な限り回収し、解析可能な技術を研究しましょう。
|
sector.impact0078.description = ここには、最初にこの星系に入った星間輸送船の残骸があります。\n\n残骸を可能な限り回収し、解析可能な技術を研究しましょう。
|
||||||
sector.planetaryTerminal.description = 最終目標です。\n\nこの沿岸基地には、コアを他の惑星に打ち上げることが出来る建造物があります。しかし、極めて堅固に守られています。\n\n海軍ユニットを生産し、可及的速やかに敵を排除してください。\nそして、発射建造物を研究しましょう。
|
sector.planetaryTerminal.description = 最終目標です。\n\nこの沿岸基地には、コアを他の惑星に打ち上げることが出来る建造物があります。しかし、極めて堅固に守られています。\n\n海軍ユニットを生産し、可及的速やかに敵を排除してください。\nそして、発射場を研究しましょう。
|
||||||
|
|
||||||
status.burning.name = 燃焼
|
status.burning.name = 燃焼
|
||||||
status.freezing.name = 凍結
|
status.freezing.name = 凍結
|
||||||
status.wet.name = 湿潤
|
status.wet.name = 水濡れ
|
||||||
status.muddy.name = Muddy
|
status.muddy.name = 泥だらけ
|
||||||
status.melting.name = 溶解
|
status.melting.name = 溶解
|
||||||
status.sapped.name = 吸収
|
status.sapped.name = 吸収
|
||||||
status.electrified.name = 帯電
|
status.electrified.name = 帯電
|
||||||
@@ -673,7 +673,7 @@ status.overdrive.name = オーバードライブ
|
|||||||
status.overclock.name = オーバークロック
|
status.overclock.name = オーバークロック
|
||||||
status.shocked.name = 電撃
|
status.shocked.name = 電撃
|
||||||
status.blasted.name = 爆破
|
status.blasted.name = 爆破
|
||||||
status.unmoving.name = 移動阻止
|
status.unmoving.name = 移動停止
|
||||||
status.boss.name = ガーディアン
|
status.boss.name = ガーディアン
|
||||||
|
|
||||||
settings.language = 言語
|
settings.language = 言語
|
||||||
@@ -909,7 +909,7 @@ setting.smoothcamera.name = スムーズなカメラ
|
|||||||
setting.vsync.name = 垂直同期
|
setting.vsync.name = 垂直同期
|
||||||
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
|
setting.pixelate.name = ピクセル化[lightgray] (アニメーションが無効化されます)
|
||||||
setting.minimap.name = ミニマップを表示
|
setting.minimap.name = ミニマップを表示
|
||||||
setting.coreitems.name = コアの資源を表示 (WIP)
|
setting.coreitems.name = コアの資源を表示
|
||||||
setting.position.name = プレイヤーの位置表示
|
setting.position.name = プレイヤーの位置表示
|
||||||
setting.musicvol.name = 音楽 音量
|
setting.musicvol.name = 音楽 音量
|
||||||
setting.atmosphere.name = 惑星の大気を表示
|
setting.atmosphere.name = 惑星の大気を表示
|
||||||
@@ -1295,7 +1295,7 @@ block.solar-panel.name = ソーラーパネル
|
|||||||
block.solar-panel-large.name = 大型ソーラーパネル
|
block.solar-panel-large.name = 大型ソーラーパネル
|
||||||
block.oil-extractor.name = 石油抽出機
|
block.oil-extractor.name = 石油抽出機
|
||||||
block.repair-point.name = 修復ポイント
|
block.repair-point.name = 修復ポイント
|
||||||
block.repair-turret.name = 修復ターレット
|
block.repair-turret.name = 修復タレット
|
||||||
block.pulse-conduit.name = パルスパイプ
|
block.pulse-conduit.name = パルスパイプ
|
||||||
block.plated-conduit.name = メッキパイプ
|
block.plated-conduit.name = メッキパイプ
|
||||||
block.phase-conduit.name = フェーズパイプ
|
block.phase-conduit.name = フェーズパイプ
|
||||||
@@ -1336,7 +1336,7 @@ block.additive-reconstructor.name = 加法式再構成工場
|
|||||||
block.multiplicative-reconstructor.name = 乗法式再構成工場
|
block.multiplicative-reconstructor.name = 乗法式再構成工場
|
||||||
block.exponential-reconstructor.name = 指数式再構成工場
|
block.exponential-reconstructor.name = 指数式再構成工場
|
||||||
block.tetrative-reconstructor.name = 超冪式再構成工場
|
block.tetrative-reconstructor.name = 超冪式再構成工場
|
||||||
block.payload-conveyor.name = マスコンベアー
|
block.payload-conveyor.name = ペイロードコンベアー
|
||||||
block.payload-router.name = ペイロードルーター
|
block.payload-router.name = ペイロードルーター
|
||||||
block.duct.name = ダクト
|
block.duct.name = ダクト
|
||||||
block.duct-router.name = ダクトルーター
|
block.duct-router.name = ダクトルーター
|
||||||
@@ -1388,15 +1388,15 @@ hint.placeDrill = 右下のメニューの\ue85e [accent]ドリル[]タブを選
|
|||||||
hint.placeDrill.mobile = 右下のメニューの\ue85e [accent]ドリル[]タブを選択し、\uf870 [accent]ドリル[]を選択し、銅地域をタップして配置します。\n\n右下の\ue800 [accent]チェックマーク[]をタップして確認します。
|
hint.placeDrill.mobile = 右下のメニューの\ue85e [accent]ドリル[]タブを選択し、\uf870 [accent]ドリル[]を選択し、銅地域をタップして配置します。\n\n右下の\ue800 [accent]チェックマーク[]をタップして確認します。
|
||||||
hint.placeConveyor = コンベアーを使い、アイテムをドリルから他のブロックへ移動します。\ue814 [accent]運搬[]タブから、\uf896 [accent]コンベアー[]を選択します。\n\n複数のコンベアーを配置するには、クリックしてドラッグします。\n[accent]マウスホイール[]により回転します。
|
hint.placeConveyor = コンベアーを使い、アイテムをドリルから他のブロックへ移動します。\ue814 [accent]運搬[]タブから、\uf896 [accent]コンベアー[]を選択します。\n\n複数のコンベアーを配置するには、クリックしてドラッグします。\n[accent]マウスホイール[]により回転します。
|
||||||
hint.placeConveyor.mobile = コンベアーを使い、アイテムをドリルから他のブロックへ移動します。\ue814 [accent]運搬[]タブから、\uf896 [accent]コンベアー[]を選択します。\n\n指を1秒間押したままドラッグすると、複数のコンベアーを配置します。
|
hint.placeConveyor.mobile = コンベアーを使い、アイテムをドリルから他のブロックへ移動します。\ue814 [accent]運搬[]タブから、\uf896 [accent]コンベアー[]を選択します。\n\n指を1秒間押したままドラッグすると、複数のコンベアーを配置します。
|
||||||
hint.placeTurret = \uf861 [accent]ターレット[]を配置して、敵から基地を守ります。\n\nターレットには弾薬が必要です。この場合は\uf838銅です。\nコンベアーとドリルを使用して補給します。
|
hint.placeTurret = \uf861 [accent]タレット[]を配置して、敵から基地を守ります。\n\nタレットには弾薬が必要です。この場合は\uf838銅です。\nコンベアーとドリルを使用して補給します。
|
||||||
hint.breaking = [accent]右クリック[]と右クリックドラッグによりブロックを壊します。
|
hint.breaking = [accent]右クリック[]と右クリックドラッグによりブロックを壊します。
|
||||||
hint.breaking.mobile = 右下にある\ue817 [accent]ハンマー[]をアクティブにして、タップしてブロックを壊します。\n\n指を1秒間押したままドラッグすると、範囲選択が出来ます。
|
hint.breaking.mobile = 右下にある\ue817 [accent]ハンマー[]をアクティブにして、タップしてブロックを壊します。\n\n指を1秒間押したままドラッグすると、範囲選択が出来ます。
|
||||||
hint.blockInfo = [accent]建築メニュー[]でブロックを選択し、右側の[accent][[?][]ボタンを押すと、ブロックの情報が表示されます。
|
hint.blockInfo = [accent]建築メニュー[]でブロックを選択し、右側の[accent][[?][]ボタンを押すと、ブロックの情報が表示されます。
|
||||||
hint.derelict = [accent]放棄[]され、すでに機能を失った古い基地建造物の残骸です。\n\nこれらは[accent]解体[]することにより、資源になります。
|
hint.derelict = [accent]放棄[]され、すでに機能を失った古い基地建造物の残骸です。\n\nこれらは[accent]解体[]することにより、資源になります。
|
||||||
hint.research = \ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
|
hint.research = \ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
|
||||||
hint.research.mobile = \ue88c [accent]メニュー[]の\ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
|
hint.research.mobile = \ue88c [accent]メニュー[]の\ue875 [accent]研究[]ボタンを押して、新しいテクノロジーを研究します。
|
||||||
hint.unitControl = [accent][[左ctrl][]を押しながら[accent]クリック[]するとターレットや味方ユニットを操作できます。
|
hint.unitControl = [accent][[左ctrl][]を押しながら[accent]クリック[]するとタレットや味方ユニットを操作できます。
|
||||||
hint.unitControl.mobile = [accent][ダブルタップ[]すると味方ユニットやターレットを操作できます。
|
hint.unitControl.mobile = [accent][ダブルタップ[]すると味方ユニットやタレットを操作できます。
|
||||||
hint.launch = 十分な資源を確保できたら、右下の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
|
hint.launch = 十分な資源を確保できたら、右下の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
|
||||||
hint.launch.mobile = 十分な資源を確保できたら、\ue88c [accent]メニュー[]の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
|
hint.launch.mobile = 十分な資源を確保できたら、\ue88c [accent]メニュー[]の\ue827 [accent]マップ[]から、近くのセクターを選択して[accent]発射[]できます。
|
||||||
hint.schematicSelect = [accent][[F][]を押しながらドラッグして、コピー&ペーストするブロックを選択します。\n\n[accent][[ミドルクリック][]により、1つのブロックタイプをコピーします。
|
hint.schematicSelect = [accent][[F][]を押しながらドラッグして、コピー&ペーストするブロックを選択します。\n\n[accent][[ミドルクリック][]により、1つのブロックタイプをコピーします。
|
||||||
@@ -1409,7 +1409,7 @@ hint.payloadPickup = [accent][[[]を押して、小さなブロックまたは
|
|||||||
hint.payloadPickup.mobile = [accent]タップ&ホールド[]により、小さなブロックまたはユニットを格納します。
|
hint.payloadPickup.mobile = [accent]タップ&ホールド[]により、小さなブロックまたはユニットを格納します。
|
||||||
hint.payloadDrop = [accent]][]を押すと、積載物を降ろします。
|
hint.payloadDrop = [accent]][]を押すと、積載物を降ろします。
|
||||||
hint.payloadDrop.mobile = 空いている場所を[accent]タップ&ホールド[]して、積載物を降ろします。
|
hint.payloadDrop.mobile = 空いている場所を[accent]タップ&ホールド[]して、積載物を降ろします。
|
||||||
hint.waveFire = [accent]ウェーブ[]ターレットは水を搬入すると、近くの火を自動的に消火します。
|
hint.waveFire = [accent]ウェーブ[]タレットは水を搬入すると、近くの火を自動的に消火します。
|
||||||
hint.generator = \uf879 [accent]火力発電機[]石炭を燃やし、隣接するブロックに電力を供給します。\n\n電力供給範囲は\uf87f [accent]電源ノード[]で拡張できます。
|
hint.generator = \uf879 [accent]火力発電機[]石炭を燃やし、隣接するブロックに電力を供給します。\n\n電力供給範囲は\uf87f [accent]電源ノード[]で拡張できます。
|
||||||
hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または\uf861デュオ/\uf859サルボーの弾薬に\uf835 [accent]黒鉛[]を使用してガーディアンを撃破してください。
|
hint.guardian = [accent]ガーディアン[]ユニットは装甲を搭載しています。[accent]銅[]や[accent]鉛[]などの弱い弾薬は[scarlet]効果がありません[]。\n\n強力なターレット、または\uf861デュオ/\uf859サルボーの弾薬に\uf835 [accent]黒鉛[]を使用してガーディアンを撃破してください。
|
||||||
hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n \uf869 [accent]シャード[]コアの上に、 \uf868 [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。
|
hint.coreUpgrade = コアは [accent]上位のコアを配置することでアップグレードできます[]。\n\n \uf869 [accent]シャード[]コアの上に、 \uf868 [accent]ファンデーション[]コアを置きます。近くに障害物がないことを確認してください。
|
||||||
@@ -1473,26 +1473,26 @@ block.liquid-source.description = 液体を無限に搬出します。サンド
|
|||||||
block.liquid-void.description = 液体を破棄できます。サンドボックスモードのみ使用できます。
|
block.liquid-void.description = 液体を破棄できます。サンドボックスモードのみ使用できます。
|
||||||
block.payload-source.description = ペイロードを無限に搬出します。サンドボックスモードのみ使用できます。
|
block.payload-source.description = ペイロードを無限に搬出します。サンドボックスモードのみ使用できます。
|
||||||
block.payload-void.description = ペイロードを破棄できます。サンドボックスモードのみ使用できます。
|
block.payload-void.description = ペイロードを破棄できます。サンドボックスモードのみ使用できます。
|
||||||
block.copper-wall.description = 安価な防壁ブロックです。\n最初のウェーブでコアやターレットを保護するのに有用です。
|
block.copper-wall.description = 安価な防壁ブロックです。\n最初のウェーブでコアやタレットを保護するのに有用です。
|
||||||
block.copper-wall-large.description = 安価な大型防壁ブロックです。\n最初のウェーブでコアやターレットを保護するのに有用です。
|
block.copper-wall-large.description = 安価な大型防壁ブロックです。\n最初のウェーブでコアやタレットを保護するのに有用です。
|
||||||
block.titanium-wall.description = 適度に強力な防壁ブロックです。\n中程度の攻撃から保護します。
|
block.titanium-wall.description = 適度に強力な防壁ブロックです。\n中程度の攻撃から保護します。
|
||||||
block.titanium-wall-large.description = 適度に強力な大型防壁ブロックです。\n中程度の攻撃から保護します。
|
block.titanium-wall-large.description = 適度に強力な大型防壁ブロックです。\n中程度の攻撃から保護します。
|
||||||
block.plastanium-wall.description = 電気アークを吸収し、電源ノードの自動接続をブロックする特別な壁です。
|
block.plastanium-wall.description = レーザー弾や放電を吸収し、電源ノードの自動接続をブロックする特別な壁です。
|
||||||
block.plastanium-wall-large.description = 電気アークを吸収し、電源ノードの自動接続をブロックする特別で大型な壁です。
|
block.plastanium-wall-large.description = レーザー弾や放電を吸収し、電源ノードの自動接続をブロックする特別で大型な壁です。
|
||||||
block.thorium-wall.description = より強固に強化された防壁ブロックです。
|
block.thorium-wall.description = より強固に強化された防壁ブロックです。
|
||||||
block.thorium-wall-large.description = より強固に強化された大型防壁ブロックです。
|
block.thorium-wall-large.description = より強固に強化された大型防壁ブロックです。
|
||||||
block.phase-wall.description = トリウムの壁ほど強固ではないが、強力な弾でなければ弾き返すことができます。
|
block.phase-wall.description = トリウムの壁ほど強固ではないが、強力な弾でなければ弾き返すことができます。
|
||||||
block.phase-wall-large.description = トリウムの壁ほど強固ではないが、強力な弾でなければ弾き返すことができます。
|
block.phase-wall-large.description = トリウムの壁ほど強固ではないが、強力な弾でなければ弾き返すことができます。
|
||||||
block.surge-wall.description = 最も硬い防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。
|
block.surge-wall.description = 最も硬い防壁ブロックです。\n攻撃されるとたまに放電して敵を攻撃します。
|
||||||
block.surge-wall-large.description = 最も硬い大型防壁ブロックです。\nたまに攻撃されると敵に電撃を与えます。
|
block.surge-wall-large.description = 最も硬い大型防壁ブロックです。\n攻撃されるとたまに放電して敵を攻撃します。
|
||||||
block.door.description = 小さなドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
|
block.door.description = 小さなドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
|
||||||
block.door-large.description = 大型のドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
|
block.door-large.description = 大型のドアブロックです。タップすることで開閉することができます。\nただし、ドアが開いている場合、弾や敵も通過できます。
|
||||||
block.mender.description = 定期的に周囲のブロックを修復します。ウェーブの間も修復し続けます。\nオプションでシリコンを利用して、さらに効率的に修復が出来ます。
|
block.mender.description = 定期的に周囲のブロックを修復します。ウェーブの間も修復し続けます。\nオプションでシリコンを利用して、さらに効率的に修復が出来ます。
|
||||||
block.mend-projector.description = 修復機のアップグレード版です。定期的に周辺のブロックを修復します。\nオプションでフェーズファイバーを利用して、さらに効率的に修復が出来ます。
|
block.mend-projector.description = 修復機のアップグレード版です。定期的に周辺のブロックを修復します。\nオプションでフェーズファイバーを利用して、さらに効率的に修復が出来ます。
|
||||||
block.overdrive-projector.description = ドリルやコンベアーなど、近くの施設の効率を向上させます。
|
block.overdrive-projector.description = ドリルやコンベアーなど、近くの施設の効率を向上させます。
|
||||||
block.force-projector.description = 周囲に六角形の力場を作り出し、内部の建造物やユニットなどを守ります。
|
block.force-projector.description = 周囲に六角形の力場を作り出し、内部の建造物やユニットなどを守ります。
|
||||||
block.shock-mine.description = 踏んだ敵にダメージを与えます。敵に見えることはありません。
|
block.shock-mine.description = 敵が踏んだ時に放電し、踏んだ敵にダメージを与えます。敵に見えることはありません。
|
||||||
block.conveyor.description = 一般的なアイテム輸送ブロックです。アイテムを前方に移動し、自動的にターレットや機械などに搬入します。回転させることができます。
|
block.conveyor.description = 一般的なアイテム輸送ブロックです。アイテムを前方に移動し、自動的にタレットや機械などに搬入します。回転させることができます。
|
||||||
block.titanium-conveyor.description = 改良されたアイテム輸送ブロックです。通常のコンベアーよりも速くアイテムを輸送します。
|
block.titanium-conveyor.description = 改良されたアイテム輸送ブロックです。通常のコンベアーよりも速くアイテムを輸送します。
|
||||||
block.plastanium-conveyor.description = アイテムをまとめて輸送するブロックです。\n末端からアイテムを搬入し、先端3方向にアイテムを搬出します。
|
block.plastanium-conveyor.description = アイテムをまとめて輸送するブロックです。\n末端からアイテムを搬入し、先端3方向にアイテムを搬出します。
|
||||||
block.junction.description = 十字に交差したコンベアーをそれぞれ前方に搬出します。コンベアーで複雑な構造を組み立てるときに便利です。
|
block.junction.description = 十字に交差したコンベアーをそれぞれ前方に搬出します。コンベアーで複雑な構造を組み立てるときに便利です。
|
||||||
@@ -1551,20 +1551,20 @@ block.vault.description = 各種類のアイテムを大量に保管します。
|
|||||||
block.container.description = 各種類のアイテムを少量ずつ保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。 [lightgray]搬出機[]を使って、コンテナーからアイテムを搬出できます。
|
block.container.description = 各種類のアイテムを少量ずつ保管します。隣接するコンテナーやボール卜、コアは一つのストレージユニットとして扱われます。 [lightgray]搬出機[]を使って、コンテナーからアイテムを搬出できます。
|
||||||
block.unloader.description = コンテナやボールト、コアからアイテムをコンベアーか隣接するブロックに搬出します。搬出機をタップして搬出するアイテムを変更することができます。
|
block.unloader.description = コンテナやボールト、コアからアイテムをコンベアーか隣接するブロックに搬出します。搬出機をタップして搬出するアイテムを変更することができます。
|
||||||
block.launch-pad.description = 離脱することなく、アイテムを回収することができます。
|
block.launch-pad.description = 離脱することなく、アイテムを回収することができます。
|
||||||
block.duo.description = 小さく安価なターレットです。
|
block.duo.description = 小さく安価なタレットです。
|
||||||
block.scatter.description = 中規模の対空型ターレットです。敵に鉛やスクラップの塊、メタガラスを分散するように発射します。
|
block.scatter.description = 中規模の対空型タレットです。敵に鉛やスクラップの塊、メタガラスを分散するように発射します。
|
||||||
block.scorch.description = 近くの地上の敵を燃やします。近距離だと非常に効果的です。
|
block.scorch.description = 近くの地上の敵を燃やします。近距離だと非常に効果的です。
|
||||||
block.hail.description = 小型の砲撃型ターレットです。
|
block.hail.description = 小型の砲撃型タレットです。
|
||||||
block.wave.description = バブルの連射攻撃をする中型のターレットです。
|
block.wave.description = バブルの連射攻撃をする中型のタレットです。
|
||||||
block.lancer.description = チャージビームを放つ中型のターレットです。
|
block.lancer.description = チャージビームを放つ中型のタレットです。
|
||||||
block.arc.description = 小型の電撃型ターレットです。敵に向かってランダムな半円状に電撃を放ちます。
|
block.arc.description = 小型の電撃型タレットです。敵に向かってランダムな半円状に電撃を放ちます。
|
||||||
block.swarmer.description = バーストミサイルで攻撃する中型ターレットです。
|
block.swarmer.description = バーストミサイルで攻撃する中型タレットです。
|
||||||
block.salvo.description = 一斉に攻撃を行う中型のターレットです。
|
block.salvo.description = 一斉に攻撃を行う中型のタレットです。
|
||||||
block.fuse.description = 短距離攻撃が得意な大型のターレットです。
|
block.fuse.description = 短距離攻撃が得意な大型のタレットです。
|
||||||
block.ripple.description = 同時に複数ショットを発射する大型ターレットです。
|
block.ripple.description = 同時に複数ショットを発射する大型タレットです。
|
||||||
block.cyclone.description = 大型の連射型ターレットです。
|
block.cyclone.description = 大型の連射型タレットです。
|
||||||
block.spectre.description = 一度に2発の強力な弾を放つ大型のターレットです。
|
block.spectre.description = 一度に2発の強力な弾を放つ大型のタレットです。
|
||||||
block.meltdown.description = 強力な長距離攻撃が可能な大型のターレットです。
|
block.meltdown.description = 強力な長距離攻撃が可能な大型のタレットです。
|
||||||
block.foreshadow.description = 一つのターゲットを狙う高火力、長射程のタレットです。最大体力が高い敵を優先します。
|
block.foreshadow.description = 一つのターゲットを狙う高火力、長射程のタレットです。最大体力が高い敵を優先します。
|
||||||
block.repair-point.description = 近くの負傷したユニットを修復します。
|
block.repair-point.description = 近くの負傷したユニットを修復します。
|
||||||
block.segment.description = 射程内に入ってきた弾丸を破壊します。レーザー弾は破壊できません。
|
block.segment.description = 射程内に入ってきた弾丸を破壊します。レーザー弾は破壊できません。
|
||||||
@@ -1598,7 +1598,7 @@ block.payload-propulsion-tower.description = 長距離ペイロード輸送構
|
|||||||
unit.dagger.description = 近くの敵に標準的な弾丸を発射します。
|
unit.dagger.description = 近くの敵に標準的な弾丸を発射します。
|
||||||
unit.mace.description = 近くの敵に火炎放射を発射します。
|
unit.mace.description = 近くの敵に火炎放射を発射します。
|
||||||
unit.fortress.description = 地上目標に長距離砲を発射します。
|
unit.fortress.description = 地上目標に長距離砲を発射します。
|
||||||
unit.scepter.description = 近くの敵に電撃弾を発射します。
|
unit.scepter.description = 近くの敵にチャージ弾を発射します。
|
||||||
unit.reign.description = 近くの敵に大口径の貫通弾を発射します。
|
unit.reign.description = 近くの敵に大口径の貫通弾を発射します。
|
||||||
unit.nova.description = 敵にダメージを与え、味方の建造物を修復する光線を発射します。\n飛行可能。
|
unit.nova.description = 敵にダメージを与え、味方の建造物を修復する光線を発射します。\n飛行可能。
|
||||||
unit.pulsar.description = 敵にダメージを与え、味方の建造物を修復する電撃攻撃を行います。\n飛行可能。
|
unit.pulsar.description = 敵にダメージを与え、味方の建造物を修復する電撃攻撃を行います。\n飛行可能。
|
||||||
|
|||||||
@@ -216,7 +216,7 @@ hosts.none = [lightgray]Brak serwerów w sieci LAN!
|
|||||||
host.invalid = [scarlet]Nie można połączyć się z hostem.
|
host.invalid = [scarlet]Nie można połączyć się z hostem.
|
||||||
|
|
||||||
servers.local = Serwery Lokalne
|
servers.local = Serwery Lokalne
|
||||||
servers.local.steam = Open Games & Local Servers
|
servers.local.steam = Otwieraj Gry & Lokalne Serwery
|
||||||
servers.remote = Serwery Zdalne
|
servers.remote = Serwery Zdalne
|
||||||
servers.global = Serwery Publiczne
|
servers.global = Serwery Publiczne
|
||||||
|
|
||||||
@@ -380,13 +380,13 @@ editor.ingame = Edytuj w Grze
|
|||||||
editor.publish.workshop = Opublikuj w Warsztacie
|
editor.publish.workshop = Opublikuj w Warsztacie
|
||||||
editor.newmap = Nowa Mapa
|
editor.newmap = Nowa Mapa
|
||||||
editor.center = Wyśrodkuj
|
editor.center = Wyśrodkuj
|
||||||
editor.search = Search maps...
|
editor.search = Przeszukaj mapy...
|
||||||
editor.filters = Filter Maps
|
editor.filters = Przefiltruj Mapy
|
||||||
editor.filters.mode = Gamemodes:
|
editor.filters.mode = Tryby Gry:
|
||||||
editor.filters.type = Map Type:
|
editor.filters.type = Typ Mapy:
|
||||||
editor.filters.search = Search In:
|
editor.filters.search = Szukaj W:
|
||||||
editor.filters.author = Author
|
editor.filters.author = Autor
|
||||||
editor.filters.description = Description
|
editor.filters.description = Opis
|
||||||
workshop = Warsztat
|
workshop = Warsztat
|
||||||
waves.title = Fale
|
waves.title = Fale
|
||||||
waves.remove = Usuń
|
waves.remove = Usuń
|
||||||
@@ -404,13 +404,13 @@ waves.load = Załaduj Ze Schowka
|
|||||||
waves.invalid = Nieprawidłowe fale w schowku.
|
waves.invalid = Nieprawidłowe fale w schowku.
|
||||||
waves.copied = Fale zostały skopiowane.
|
waves.copied = Fale zostały skopiowane.
|
||||||
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
waves.none = Brak zdefiniowanych wrogów.\nPamiętaj, że puste układy fal zostaną automatycznie zastąpione układem domyślnym.
|
||||||
waves.sort = Sort By
|
waves.sort = Sortuj Według
|
||||||
waves.sort.reverse = Reverse Sort
|
waves.sort.reverse = Odwrotne Sortowanie
|
||||||
waves.sort.begin = Begin
|
waves.sort.begin = Rozpocznij
|
||||||
waves.sort.health = Health
|
waves.sort.health = Zdrowie
|
||||||
waves.sort.type = Type
|
waves.sort.type = Typ
|
||||||
waves.units.hide = Hide All
|
waves.units.hide = Schowaj Wszystkie
|
||||||
waves.units.show = Show All
|
waves.units.show = Pokaż Wszystkie
|
||||||
|
|
||||||
#these are intentionally in lower case
|
#these are intentionally in lower case
|
||||||
wavemode.counts = liczba
|
wavemode.counts = liczba
|
||||||
@@ -505,13 +505,13 @@ filter.option.circle-scale = Skala Koła
|
|||||||
filter.option.octaves = Oktawy
|
filter.option.octaves = Oktawy
|
||||||
filter.option.falloff = Spadek
|
filter.option.falloff = Spadek
|
||||||
filter.option.angle = Kąt
|
filter.option.angle = Kąt
|
||||||
filter.option.rotate = Rotate
|
filter.option.rotate = Obróć
|
||||||
filter.option.amount = Ilość
|
filter.option.amount = Ilość
|
||||||
filter.option.block = Blok
|
filter.option.block = Blok
|
||||||
filter.option.floor = Podłoga
|
filter.option.floor = Podłoga
|
||||||
filter.option.flooronto = Podłoga Docelowa
|
filter.option.flooronto = Podłoga Docelowa
|
||||||
filter.option.target = Cel
|
filter.option.target = Cel
|
||||||
filter.option.replacement = Replacement
|
filter.option.replacement = Zastąpienie
|
||||||
filter.option.wall = Ściana
|
filter.option.wall = Ściana
|
||||||
filter.option.ore = Ruda
|
filter.option.ore = Ruda
|
||||||
filter.option.floor2 = Druga Podłoga
|
filter.option.floor2 = Druga Podłoga
|
||||||
@@ -556,7 +556,7 @@ configure = Skonfiguruj Ładunek
|
|||||||
loadout = Ładunek
|
loadout = Ładunek
|
||||||
resources = Zasoby
|
resources = Zasoby
|
||||||
bannedblocks = Zabronione bloki
|
bannedblocks = Zabronione bloki
|
||||||
bannedunits = Banned Units
|
bannedunits = Zabronione jednostki
|
||||||
addall = Dodaj wszystkie
|
addall = Dodaj wszystkie
|
||||||
launch.from = Wystrzelony z: [accent]{0}
|
launch.from = Wystrzelony z: [accent]{0}
|
||||||
launch.destination = Cel: {0}
|
launch.destination = Cel: {0}
|
||||||
@@ -580,7 +580,7 @@ weather.snow.name = Śnieg
|
|||||||
weather.sandstorm.name = Burza piaskowa
|
weather.sandstorm.name = Burza piaskowa
|
||||||
weather.sporestorm.name = Burza zarodników
|
weather.sporestorm.name = Burza zarodników
|
||||||
weather.fog.name = Mgła
|
weather.fog.name = Mgła
|
||||||
sectorlist = Sectors
|
sectorlist = Sektory
|
||||||
sectorlist.attacked = {0} under attack
|
sectorlist.attacked = {0} under attack
|
||||||
|
|
||||||
sectors.unexplored = [lightgray]Niezbadane
|
sectors.unexplored = [lightgray]Niezbadane
|
||||||
@@ -735,7 +735,7 @@ stat.memorycapacity = Pojemość Pamięci
|
|||||||
stat.basepowergeneration = Podstawowa generacja mocy
|
stat.basepowergeneration = Podstawowa generacja mocy
|
||||||
stat.productiontime = Czas produkcji
|
stat.productiontime = Czas produkcji
|
||||||
stat.repairtime = Czas pełnej naprawy bloku
|
stat.repairtime = Czas pełnej naprawy bloku
|
||||||
stat.repairspeed = Repair Speed
|
stat.repairspeed = Prędkość Napraw
|
||||||
stat.weapons = Bronie
|
stat.weapons = Bronie
|
||||||
stat.bullet = Pocisk
|
stat.bullet = Pocisk
|
||||||
stat.speedincrease = Zwiększenie prędkości
|
stat.speedincrease = Zwiększenie prędkości
|
||||||
@@ -859,7 +859,7 @@ category.items = Przedmioty
|
|||||||
category.crafting = Przetwórstwo
|
category.crafting = Przetwórstwo
|
||||||
category.function = Funkcja
|
category.function = Funkcja
|
||||||
category.optional = Dodatkowe ulepszenia
|
category.optional = Dodatkowe ulepszenia
|
||||||
setting.skipcoreanimation.name = Skip Core Launch/Land Animation
|
setting.skipcoreanimation.name = Pomiń Animację Wystrzału/Lądowania
|
||||||
setting.landscape.name = Zablokuj tryb panoramiczny
|
setting.landscape.name = Zablokuj tryb panoramiczny
|
||||||
setting.shadows.name = Cienie
|
setting.shadows.name = Cienie
|
||||||
setting.blockreplace.name = Automatyczne sugestie bloków
|
setting.blockreplace.name = Automatyczne sugestie bloków
|
||||||
@@ -1018,7 +1018,7 @@ mode.custom = Własny Tryb
|
|||||||
|
|
||||||
rules.infiniteresources = Nieskończone Zasoby
|
rules.infiniteresources = Nieskończone Zasoby
|
||||||
rules.reactorexplosions = Eksplozje Reaktorów
|
rules.reactorexplosions = Eksplozje Reaktorów
|
||||||
rules.coreincinerates = Rdzeń Spala Nadmarowe Przedmioty
|
rules.coreincinerates = Rdzeń Spala Nadmiarowe Przedmioty
|
||||||
rules.schematic = Zezwalaj na schematy
|
rules.schematic = Zezwalaj na schematy
|
||||||
rules.wavetimer = Zegar Fal
|
rules.wavetimer = Zegar Fal
|
||||||
rules.waves = Fale
|
rules.waves = Fale
|
||||||
@@ -1044,15 +1044,15 @@ rules.deconstructrefundmultiplier = Mnożnik Zwrotu Dekonstrukcji
|
|||||||
rules.waitForWaveToEnd = Fale Czekają Na Przeciwników
|
rules.waitForWaveToEnd = Fale Czekają Na Przeciwników
|
||||||
rules.dropzoneradius = Zasięg Strefy Zrzutu:[lightgray] (kratki)
|
rules.dropzoneradius = Zasięg Strefy Zrzutu:[lightgray] (kratki)
|
||||||
rules.unitammo = Jednostki Potrzebują Amunicji
|
rules.unitammo = Jednostki Potrzebują Amunicji
|
||||||
rules.enemyteam = Enemy Team
|
rules.enemyteam = Drużyna Wroga
|
||||||
rules.playerteam = Player Team
|
rules.playerteam = Drużyna Gracza
|
||||||
rules.title.waves = Fale
|
rules.title.waves = Fale
|
||||||
rules.title.resourcesbuilding = Zasoby i Budowanie
|
rules.title.resourcesbuilding = Zasoby i Budowanie
|
||||||
rules.title.enemy = Przeciwnicy
|
rules.title.enemy = Przeciwnicy
|
||||||
rules.title.unit = Jednostki
|
rules.title.unit = Jednostki
|
||||||
rules.title.experimental = Eksperymentalne
|
rules.title.experimental = Eksperymentalne
|
||||||
rules.title.environment = Otoczenie
|
rules.title.environment = Otoczenie
|
||||||
rules.title.teams = Teams
|
rules.title.teams = Drużyny
|
||||||
rules.lighting = Oświetlenie
|
rules.lighting = Oświetlenie
|
||||||
rules.enemyLights = Wrogowie Emitują Światło
|
rules.enemyLights = Wrogowie Emitują Światło
|
||||||
rules.fire = Ogień
|
rules.fire = Ogień
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ database.button = Database
|
|||||||
savegame = Gravar Jogo
|
savegame = Gravar Jogo
|
||||||
loadgame = Carregar Jogo
|
loadgame = Carregar Jogo
|
||||||
joingame = Entrar no Jogo
|
joingame = Entrar no Jogo
|
||||||
customgame = Jogo Customi-/nzado
|
customgame = Jogo Customizado
|
||||||
newgame = Novo Jogo
|
newgame = Novo Jogo
|
||||||
none = <nenhum>
|
none = <nenhum>
|
||||||
none.found = [lightgray]<none found>
|
none.found = [lightgray]<none found>
|
||||||
@@ -519,7 +519,7 @@ width = Largura:
|
|||||||
height = Altura:
|
height = Altura:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
play = Jogar
|
play = Jogar
|
||||||
campaign = Campa-/nnha
|
campaign = Campannha
|
||||||
load = Carregar
|
load = Carregar
|
||||||
save = Gravar
|
save = Gravar
|
||||||
fps = FPS: {0}
|
fps = FPS: {0}
|
||||||
@@ -528,7 +528,7 @@ tps = TPS: {0}
|
|||||||
memory = Mem: {0}mb
|
memory = Mem: {0}mb
|
||||||
memory2 = Mem:\n {0}mb +\n {1}mb
|
memory2 = Mem:\n {0}mb +\n {1}mb
|
||||||
language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito.
|
language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito.
|
||||||
settings = Configu-/nrações
|
settings = Configurações
|
||||||
tutorial = Tutorial
|
tutorial = Tutorial
|
||||||
tutorial.retake = Refazer Tutorial
|
tutorial.retake = Refazer Tutorial
|
||||||
editor = Editor
|
editor = Editor
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ gameover.waiting = [accent]Sonraki Harita Bekleniyor...
|
|||||||
highscore = [accent]Yeni rekor!
|
highscore = [accent]Yeni rekor!
|
||||||
copied = Panoya Kopyalandı.
|
copied = Panoya Kopyalandı.
|
||||||
indev.notready = Oyunun bu kısmı henüz hazır değil.
|
indev.notready = Oyunun bu kısmı henüz hazır değil.
|
||||||
indev.campaign = [accent]Congratulations! You've reached the end of the campaign![]\n\nThis is as far as the content goes right now. Interplanetary travel will be added in future updates.
|
indev.campaign = [accent]Tebrikler! Mücadelenin sonuna ulaştın![]\n\nİçerikler bir sonraki sürüme kadar bu kadar.. Gezegenler arası ulaşım gelecek güncellemelerde eklenicek.
|
||||||
|
|
||||||
load.sound = Sesler
|
load.sound = Sesler
|
||||||
load.map = Haritalar
|
load.map = Haritalar
|
||||||
@@ -78,7 +78,7 @@ schematic.tagexists = Böyle bir Etiket zaten var.
|
|||||||
|
|
||||||
stats = İstatistikler
|
stats = İstatistikler
|
||||||
stat.wave = Bozguna Uğratılan Dalgalar:[accent] {0}
|
stat.wave = Bozguna Uğratılan Dalgalar:[accent] {0}
|
||||||
stat.unitsCreated = Units Created:[accent] {0}
|
stat.unitsCreated = Üretilen Birimler:[accent] {0}
|
||||||
stat.enemiesDestroyed = Yok Edilen Düşmanlar:[accent] {0}
|
stat.enemiesDestroyed = Yok Edilen Düşmanlar:[accent] {0}
|
||||||
stat.built = İnşa Edilen Yapılar:[accent] {0}
|
stat.built = İnşa Edilen Yapılar:[accent] {0}
|
||||||
stat.destroyed = Yok Edilen Yapılar:[accent] {0}
|
stat.destroyed = Yok Edilen Yapılar:[accent] {0}
|
||||||
@@ -93,7 +93,7 @@ level.mode = Oyun Modu:
|
|||||||
coreattack = < Merkez saldırı altında! >
|
coreattack = < Merkez saldırı altında! >
|
||||||
nearpoint = [[ [scarlet]İNİŞ PİSTİNDEN AYRIL[] ]\nimha tehlikesi
|
nearpoint = [[ [scarlet]İNİŞ PİSTİNDEN AYRIL[] ]\nimha tehlikesi
|
||||||
database = Çekirdek Veritabanı
|
database = Çekirdek Veritabanı
|
||||||
database.button = Database
|
database.button = Veritabanı
|
||||||
savegame = Oyunu Kaydet
|
savegame = Oyunu Kaydet
|
||||||
loadgame = Oyunu Yükle
|
loadgame = Oyunu Yükle
|
||||||
joingame = Oyuna Katıl
|
joingame = Oyuna Katıl
|
||||||
@@ -319,7 +319,7 @@ data.invalid = Bu oyun verisi geçerli değil.
|
|||||||
data.import.confirm = Dışarıdan içeri veri aktarmak şu anki verilerinizin [scarlet]tamamını[] silecektir.[accent]Bu işlem geri alınamaz![]\n\nVeri içeri aktarıldığında oyundan çıkacaksınız.
|
data.import.confirm = Dışarıdan içeri veri aktarmak şu anki verilerinizin [scarlet]tamamını[] silecektir.[accent]Bu işlem geri alınamaz![]\n\nVeri içeri aktarıldığında oyundan çıkacaksınız.
|
||||||
quit.confirm = Çıkmak istediğinize emin misiniz?
|
quit.confirm = Çıkmak istediğinize emin misiniz?
|
||||||
loading = [accent]Yükleniyor...
|
loading = [accent]Yükleniyor...
|
||||||
downloading = [accent]Downloading...
|
downloading = [accent]İndiriliyor...
|
||||||
saving = [accent]Kayıt ediliyor...
|
saving = [accent]Kayıt ediliyor...
|
||||||
respawn = [accent][[{0}][] Çekirdekte yeniden doğ
|
respawn = [accent][[{0}][] Çekirdekte yeniden doğ
|
||||||
cancelbuilding = [accent][[{0}][] Planı temizle
|
cancelbuilding = [accent][[{0}][] Planı temizle
|
||||||
@@ -551,7 +551,7 @@ requirement.produce = {0} üret
|
|||||||
requirement.capture = {0} sektörünü ele geçir
|
requirement.capture = {0} sektörünü ele geçir
|
||||||
launch.text = Kalkış
|
launch.text = Kalkış
|
||||||
research.multiplayer = Sadece kurucu araştırma yapabilir.
|
research.multiplayer = Sadece kurucu araştırma yapabilir.
|
||||||
map.multiplayer = Only the host can view sectors.
|
map.multiplayer = Sadece sunucu sahibi sektörleri görebilir.
|
||||||
uncover = Aç
|
uncover = Aç
|
||||||
configure = Ekipmanı Yapılandır
|
configure = Ekipmanı Yapılandır
|
||||||
|
|
||||||
@@ -697,7 +697,7 @@ settings.clearcampaignsaves.confirm = Mücadele modundaki oynadığınız tüm s
|
|||||||
paused = [accent]<Durduruldu>
|
paused = [accent]<Durduruldu>
|
||||||
clear = Temizle
|
clear = Temizle
|
||||||
banned = [scarlet]Yasaklı
|
banned = [scarlet]Yasaklı
|
||||||
unsupported.environment = [scarlet]Unsupported Environment
|
unsupported.environment = [scarlet]Desteklenmeyen Ortam
|
||||||
yes = Evet
|
yes = Evet
|
||||||
no = Hayır
|
no = Hayır
|
||||||
info.title = Bilgi
|
info.title = Bilgi
|
||||||
@@ -783,7 +783,7 @@ stat.speedmultiplier = Hız Çarpanı
|
|||||||
stat.reloadmultiplier = Yeniden Yükleme Çarpanı
|
stat.reloadmultiplier = Yeniden Yükleme Çarpanı
|
||||||
stat.buildspeedmultiplier = İnşa Hızı Çarpanı
|
stat.buildspeedmultiplier = İnşa Hızı Çarpanı
|
||||||
stat.reactive = Tepki Verir
|
stat.reactive = Tepki Verir
|
||||||
stat.healing = İyileştirir
|
stat.healing = Tamir Eder
|
||||||
|
|
||||||
ability.forcefield = Güç Kalkanı
|
ability.forcefield = Güç Kalkanı
|
||||||
ability.repairfield = Onarma Alanı
|
ability.repairfield = Onarma Alanı
|
||||||
@@ -793,13 +793,13 @@ ability.shieldregenfield = Kalkan Yenileme Alanı
|
|||||||
ability.movelightning = Hareket Enerjisi
|
ability.movelightning = Hareket Enerjisi
|
||||||
ability.energyfield = Güç Kalkanı: [accent]{0}[] hasar ~ [accent]{1}[] blok / [accent]{2}[] hedef
|
ability.energyfield = Güç Kalkanı: [accent]{0}[] hasar ~ [accent]{1}[] blok / [accent]{2}[] hedef
|
||||||
|
|
||||||
bar.drilltierreq = Daha İyi Matkap Gerekli
|
bar.drilltierreq = Daha Güçlü Matkap Gerekli
|
||||||
bar.noresources = Eksik Kaynaklar
|
bar.noresources = Kaynak Yetersiz
|
||||||
bar.corereq = Çekirdek Tabanı Gerekli
|
bar.corereq = Çekirdek Tabanı Gerekli
|
||||||
bar.drillspeed = Matkap Hızı: {0}/s
|
bar.drillspeed = Matkap Hızı: {0}/s
|
||||||
bar.pumpspeed = Pompa Hızı: {0}/s
|
bar.pumpspeed = Pompa Hızı: {0}/s
|
||||||
bar.efficiency = Verim: {0}%
|
bar.efficiency = Verim: {0}%
|
||||||
bar.boost = Boost: +{0}%
|
bar.boost = Hızlanış: +{0}%
|
||||||
bar.powerbalance = Enerji: {0}/sn
|
bar.powerbalance = Enerji: {0}/sn
|
||||||
bar.powerstored = Depolanan: {0}/{1}
|
bar.powerstored = Depolanan: {0}/{1}
|
||||||
bar.poweramount = Enerji: {0}
|
bar.poweramount = Enerji: {0}
|
||||||
@@ -822,13 +822,13 @@ bullet.damage = [stat]{0} [lightgray]hasar
|
|||||||
bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]kare
|
bullet.splashdamage = [stat]{0} [lightgray]alan hasarı ~[stat] {1} [lightgray]kare
|
||||||
bullet.incendiary = [stat]yakıcı
|
bullet.incendiary = [stat]yakıcı
|
||||||
bullet.homing = [stat]güdümlü
|
bullet.homing = [stat]güdümlü
|
||||||
bullet.frags = [stat]{0}[lightgray]x frag bullets:
|
bullet.frags = [stat]{0}[lightgray]x parçalı mermiler:
|
||||||
bullet.lightning = [stat]{0}[lightgray]x lightning ~ [stat]{1}[lightgray] damage
|
bullet.lightning = [stat]{0}[lightgray]x elektrik ~ [stat]{1}[lightgray] hasarı
|
||||||
bullet.buildingdamage = [stat]{0}%[lightgray] building damage
|
bullet.buildingdamage = [stat]{0}%[lightgray] inşaa hasarı
|
||||||
bullet.knockback = [stat]{0} [lightgray]savurma
|
bullet.knockback = [stat]{0} [lightgray]savurma
|
||||||
bullet.pierce = [stat]{0}[lightgray]x delme
|
bullet.pierce = [stat]{0}[lightgray]x delme
|
||||||
bullet.infinitepierce = [stat]delme
|
bullet.infinitepierce = [stat]delme
|
||||||
bullet.healpercent = [stat]{0}[lightgray]% healing
|
bullet.healpercent = [stat]{0}[lightgray]% ototamir
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı
|
bullet.multiplier = [stat]{0}[lightgray]x mermi çarpanı
|
||||||
bullet.reload = [stat]{0}[lightgray]x atış hızı
|
bullet.reload = [stat]{0}[lightgray]x atış hızı
|
||||||
|
|
||||||
@@ -861,7 +861,7 @@ category.items = Eşyalar
|
|||||||
category.crafting = Üretim
|
category.crafting = Üretim
|
||||||
category.function = Fonksiyon
|
category.function = Fonksiyon
|
||||||
category.optional = İsteğe Bağlı Geliştirmeler
|
category.optional = İsteğe Bağlı Geliştirmeler
|
||||||
setting.skipcoreanimation.name = Skip Core Launch/Land Animation
|
setting.skipcoreanimation.name = Çekirdek Fırlatma/İnme Animasyonunu Atla
|
||||||
setting.landscape.name = Yatayda sabitle
|
setting.landscape.name = Yatayda sabitle
|
||||||
setting.shadows.name = Gölgeler
|
setting.shadows.name = Gölgeler
|
||||||
setting.blockreplace.name = Otomatik Blok önerileri
|
setting.blockreplace.name = Otomatik Blok önerileri
|
||||||
@@ -883,7 +883,7 @@ setting.fpscap.name = Maksimum FPS
|
|||||||
setting.fpscap.none = Limitsiz
|
setting.fpscap.none = Limitsiz
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[]
|
setting.uiscale.name = Arayüz Ölçeği [lightgray](yeniden başlatma gerekebilir)[]
|
||||||
setting.uiscale.description = Restart required to apply changes.
|
setting.uiscale.description = Değişikleri uygulamak için yeniden başlatma gerekli.
|
||||||
setting.swapdiagonal.name = Her Zaman Çapraz Yerleştirme
|
setting.swapdiagonal.name = Her Zaman Çapraz Yerleştirme
|
||||||
setting.difficulty.training = Eğitim
|
setting.difficulty.training = Eğitim
|
||||||
setting.difficulty.easy = Kolay
|
setting.difficulty.easy = Kolay
|
||||||
@@ -891,7 +891,7 @@ setting.difficulty.normal = Normal
|
|||||||
setting.difficulty.hard = Zor
|
setting.difficulty.hard = Zor
|
||||||
setting.difficulty.insane = İmkansız
|
setting.difficulty.insane = İmkansız
|
||||||
setting.difficulty.name = Zorluk:
|
setting.difficulty.name = Zorluk:
|
||||||
setting.screenshake.name = Ekranı Salla
|
setting.screenshake.name = Ekranı Sars
|
||||||
setting.effects.name = Efektleri Görüntüle
|
setting.effects.name = Efektleri Görüntüle
|
||||||
setting.destroyedblocks.name = Kırılmış Blokları Göster
|
setting.destroyedblocks.name = Kırılmış Blokları Göster
|
||||||
setting.blockstatus.name = Blok Durumunu Göster
|
setting.blockstatus.name = Blok Durumunu Göster
|
||||||
@@ -1010,7 +1010,7 @@ mode.help.title = Modların açıklamaları
|
|||||||
mode.survival.name = Hayatta Kalma
|
mode.survival.name = Hayatta Kalma
|
||||||
mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir.
|
mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir.
|
||||||
mode.sandbox.name = Yaratıcı
|
mode.sandbox.name = Yaratıcı
|
||||||
mode.sandbox.description = Sonsuz kaynaklar ve dalgalar için zamanlayıcı yok.
|
mode.sandbox.description = Sonsuz kaynak bulunur ve dalgalar için zamanlayıcı yok.
|
||||||
mode.editor.name = Düzenleyici
|
mode.editor.name = Düzenleyici
|
||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = Yerel olarak başkaları ile savaş.\n[gray]Oynamak için haritada en az iki farklı renkli çekirdek olması gerekir.
|
mode.pvp.description = Yerel olarak başkaları ile savaş.\n[gray]Oynamak için haritada en az iki farklı renkli çekirdek olması gerekir.
|
||||||
@@ -1021,7 +1021,7 @@ mode.custom = Özel Kurallar
|
|||||||
rules.infiniteresources = Sınırsız Kaynaklar
|
rules.infiniteresources = Sınırsız Kaynaklar
|
||||||
rules.reactorexplosions = Reaktör Patlamaları
|
rules.reactorexplosions = Reaktör Patlamaları
|
||||||
rules.coreincinerates = Çekirdek Taşanları Eritir
|
rules.coreincinerates = Çekirdek Taşanları Eritir
|
||||||
rules.schematic = Schematics Allowed
|
rules.schematic = Şema Kullanılabilir
|
||||||
rules.wavetimer = Dalga Zamanlayıcısı
|
rules.wavetimer = Dalga Zamanlayıcısı
|
||||||
rules.waves = Dalgalar
|
rules.waves = Dalgalar
|
||||||
rules.attack = Saldırı Modu
|
rules.attack = Saldırı Modu
|
||||||
@@ -1173,7 +1173,7 @@ block.core-nucleus.name = Merkez: Çekirdek
|
|||||||
block.deep-water.name = Derin Su
|
block.deep-water.name = Derin Su
|
||||||
block.shallow-water.name = Su
|
block.shallow-water.name = Su
|
||||||
block.tainted-water.name = Kirli Su
|
block.tainted-water.name = Kirli Su
|
||||||
block.deep-tainted-water.name = Deep Tainted Water
|
block.deep-tainted-water.name = Derin Kirli Su
|
||||||
block.darksand-tainted-water.name = Kara Kumlu Kirli Su
|
block.darksand-tainted-water.name = Kara Kumlu Kirli Su
|
||||||
block.tar.name = Katran
|
block.tar.name = Katran
|
||||||
block.stone.name = Taş
|
block.stone.name = Taş
|
||||||
@@ -1715,7 +1715,7 @@ lenum.rand = [0 ile Sayı) arasında rastgele bir sayı.
|
|||||||
lenum.log = Logaritma
|
lenum.log = Logaritma
|
||||||
lenum.log10 = Logaritma 10
|
lenum.log10 = Logaritma 10
|
||||||
lenum.noise = 2D Noise
|
lenum.noise = 2D Noise
|
||||||
lenum.abs = Absulute
|
lenum.abs = Mutlak
|
||||||
lenum.sqrt = KareKök
|
lenum.sqrt = KareKök
|
||||||
|
|
||||||
lenum.any = Herhangi bir Birim.
|
lenum.any = Herhangi bir Birim.
|
||||||
|
|||||||
@@ -288,7 +288,7 @@ save.corrupted = 此存檔無效或已損毀!
|
|||||||
empty = 〈空白〉
|
empty = 〈空白〉
|
||||||
on = 開啟
|
on = 開啟
|
||||||
off = 關閉
|
off = 關閉
|
||||||
save.search = Search saved games...
|
save.search = 搜尋儲存的遊戲……
|
||||||
save.autosave = 自動存檔:{0}
|
save.autosave = 自動存檔:{0}
|
||||||
save.map = 地圖:{0}
|
save.map = 地圖:{0}
|
||||||
save.wave = 波次:{0}
|
save.wave = 波次:{0}
|
||||||
@@ -380,13 +380,13 @@ editor.ingame = 在遊戲中編輯
|
|||||||
editor.publish.workshop = 在工作坊上發佈
|
editor.publish.workshop = 在工作坊上發佈
|
||||||
editor.newmap = 新地圖
|
editor.newmap = 新地圖
|
||||||
editor.center = 中心
|
editor.center = 中心
|
||||||
editor.search = 尋找地圖...
|
editor.search = 尋找地圖…
|
||||||
editor.filters = 篩選地圖
|
editor.filters = 篩選地圖
|
||||||
editor.filters.mode = Gamemodes:
|
editor.filters.mode = 遊戲模式:
|
||||||
editor.filters.type = Map Type:
|
editor.filters.type = 地圖種類:
|
||||||
editor.filters.search = Search In:
|
editor.filters.search = 搜尋的資料夾:
|
||||||
editor.filters.author = Author
|
editor.filters.author = 作者
|
||||||
editor.filters.description = Description
|
editor.filters.description = 描述
|
||||||
workshop = 工作坊
|
workshop = 工作坊
|
||||||
waves.title = 波次
|
waves.title = 波次
|
||||||
waves.remove = 移除
|
waves.remove = 移除
|
||||||
@@ -420,7 +420,7 @@ wavemode.health = 生命值
|
|||||||
editor.default = [lightgray](預設)
|
editor.default = [lightgray](預設)
|
||||||
details = 詳細資訊……
|
details = 詳細資訊……
|
||||||
edit = 編輯……
|
edit = 編輯……
|
||||||
variables = Vars
|
variables = 變數
|
||||||
editor.name = 名稱:
|
editor.name = 名稱:
|
||||||
editor.spawn = 重生單位
|
editor.spawn = 重生單位
|
||||||
editor.removeunit = 移除單位
|
editor.removeunit = 移除單位
|
||||||
@@ -1301,7 +1301,7 @@ block.plated-conduit.name = 裝甲管線
|
|||||||
block.phase-conduit.name = 相織管線
|
block.phase-conduit.name = 相織管線
|
||||||
block.liquid-router.name = 液體分配器
|
block.liquid-router.name = 液體分配器
|
||||||
block.liquid-tank.name = 液體儲存槽
|
block.liquid-tank.name = 液體儲存槽
|
||||||
block.liquid-container.name = Liquid Container
|
block.liquid-container.name = 液體容器
|
||||||
block.liquid-junction.name = 液體樞紐
|
block.liquid-junction.name = 液體樞紐
|
||||||
block.bridge-conduit.name = 管線橋
|
block.bridge-conduit.name = 管線橋
|
||||||
block.rotary-pump.name = 迴旋泵
|
block.rotary-pump.name = 迴旋泵
|
||||||
@@ -1348,16 +1348,16 @@ block.disassembler.name = 還原機
|
|||||||
block.silicon-crucible.name = 矽爐
|
block.silicon-crucible.name = 矽爐
|
||||||
block.overdrive-dome.name = 高速拱頂
|
block.overdrive-dome.name = 高速拱頂
|
||||||
block.interplanetary-accelerator.name = 星際加速站
|
block.interplanetary-accelerator.name = 星際加速站
|
||||||
block.constructor.name = Constructor
|
block.constructor.name = 建造器
|
||||||
block.constructor.description = Fabricates structures up to 2x2 tiles in size.
|
block.constructor.description = 建造達 2x2 的方塊。
|
||||||
block.large-constructor.name = Large Constructor
|
block.large-constructor.name = 大型建造器
|
||||||
block.large-constructor.description = Fabricates structures up to 4x4 tiles in size.
|
block.large-constructor.description = 建造達 4x4 的方塊。
|
||||||
block.deconstructor.name = Deconstructor
|
block.deconstructor.name = 拆解器
|
||||||
block.deconstructor.description = Deconstructs structures and units. Returns 100% of build cost.
|
block.deconstructor.description = 拆解方塊和單位,返還所有建造花費。
|
||||||
block.payload-loader.name = Payload Loader
|
block.payload-loader.name = 載物裝入器
|
||||||
block.payload-loader.description = Load liquids and items into blocks.
|
block.payload-loader.description = 將物品或是液體裝入方塊。
|
||||||
block.payload-unloader.name = Payload Unloader
|
block.payload-unloader.name = 載物取出器
|
||||||
block.payload-unloader.description = Unloads liquids and items from blocks.
|
block.payload-unloader.description = 將物品或是液體從方塊取出。
|
||||||
|
|
||||||
block.switch.name = 按鈕
|
block.switch.name = 按鈕
|
||||||
block.micro-processor.name = 微處理器
|
block.micro-processor.name = 微處理器
|
||||||
@@ -1468,7 +1468,7 @@ block.incinerator.description = 銷毀所有接收的物品或液體。
|
|||||||
block.power-void.description = 銷毀所有輸入的能量。僅限沙盒。
|
block.power-void.description = 銷毀所有輸入的能量。僅限沙盒。
|
||||||
block.power-source.description = 無限輸出能量。僅限沙盒。
|
block.power-source.description = 無限輸出能量。僅限沙盒。
|
||||||
block.item-source.description = 無限輸出物品。僅限沙盒。
|
block.item-source.description = 無限輸出物品。僅限沙盒。
|
||||||
block.item-void.description = 不使用能量銷毀任何進入它的物品。僅限沙盒。
|
block.item-void.description = 銷毀所有進入的物品。僅限沙盒。
|
||||||
block.liquid-source.description = 無限輸出液體。僅限沙盒。
|
block.liquid-source.description = 無限輸出液體。僅限沙盒。
|
||||||
block.liquid-void.description = 銷毀所有輸入的液體。僅限沙盒。
|
block.liquid-void.description = 銷毀所有輸入的液體。僅限沙盒。
|
||||||
block.payload-source.description = 無限輸出原料。僅限沙盒。
|
block.payload-source.description = 無限輸出原料。僅限沙盒。
|
||||||
@@ -1513,7 +1513,7 @@ block.conduit.description = 基本液體運輸方塊。將液體往前輸送。
|
|||||||
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
|
block.pulse-conduit.description = 高級的液體運輸方塊。比標準管線更快地輸送並儲存更多液體。
|
||||||
block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。
|
block.plated-conduit.description = 用和脈衝管線相同的速率運送液體,但有更強的裝甲。除了其他管線以外,不會接受來自側面的其他液體\n比較不會漏液。
|
||||||
block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。
|
block.liquid-router.description = 接受來自一個方向的液體並將它們平均輸出到最多3個其他方向。可以儲存一定量的液體。用於將液體從一個來源分成多個目標。
|
||||||
block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router.
|
block.liquid-container.description = 儲存可觀的液體。由四邊輸出,與液體分配器雷同。
|
||||||
block.liquid-tank.description = 儲存大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
|
block.liquid-tank.description = 儲存大量液體。當液體需求非恆定時,使用它來創建緩衝或作為冷卻重要方塊的保障。
|
||||||
block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。
|
block.liquid-junction.description = 作為兩個交叉管線的橋樑。適用於兩條不同管線將不同液體運送到不同位置的情況。
|
||||||
block.bridge-conduit.description = 高級的液體運輸方塊。允許跨過最多3個任何地形或建築物的方塊運輸液體。
|
block.bridge-conduit.description = 高級的液體運輸方塊。允許跨過最多3個任何地形或建築物的方塊運輸液體。
|
||||||
@@ -1778,7 +1778,7 @@ lenum.itemdrop = 放下物品
|
|||||||
lenum.itemtake = 從建築拿取物品
|
lenum.itemtake = 從建築拿取物品
|
||||||
lenum.paydrop = 放下拾取的負載
|
lenum.paydrop = 放下拾取的負載
|
||||||
lenum.paytake = 拾取船身下方的單位/建築
|
lenum.paytake = 拾取船身下方的單位/建築
|
||||||
lenum.payenter = Enter/land on the payload block the unit is on.
|
lenum.payenter = 進入/降落到載重方塊
|
||||||
lenum.flag = 單位編號(可異)
|
lenum.flag = 單位編號(可異)
|
||||||
lenum.mine = 挖指定位置的礦物
|
lenum.mine = 挖指定位置的礦物
|
||||||
lenum.build = 建造一個建築
|
lenum.build = 建造一個建築
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ younggam
|
|||||||
simba-fs
|
simba-fs
|
||||||
RedRadiation
|
RedRadiation
|
||||||
Marko Zajc
|
Marko Zajc
|
||||||
CPX MC
|
PCX-LK (CPX MC)
|
||||||
Phinner
|
Phinner
|
||||||
BTA_Susideur
|
BTA_Susideur
|
||||||
nilq
|
nilq
|
||||||
@@ -131,3 +131,5 @@ Darkness6030
|
|||||||
hortiSquash
|
hortiSquash
|
||||||
King-BR
|
King-BR
|
||||||
citrusMarmelade
|
citrusMarmelade
|
||||||
|
Evolveye
|
||||||
|
Jerzy Paciorkiewicz
|
||||||
|
|||||||
@@ -199,3 +199,5 @@ const ResizeEvent = Packages.mindustry.game.EventType.ResizeEvent
|
|||||||
const LoseEvent = Packages.mindustry.game.EventType.LoseEvent
|
const LoseEvent = Packages.mindustry.game.EventType.LoseEvent
|
||||||
const WinEvent = Packages.mindustry.game.EventType.WinEvent
|
const WinEvent = Packages.mindustry.game.EventType.WinEvent
|
||||||
const Trigger = Packages.mindustry.game.EventType.Trigger
|
const Trigger = Packages.mindustry.game.EventType.Trigger
|
||||||
|
const PlayerConnectionConfirmed = Packages.mindustry.game.EventType.PlayerConnectionConfirmed
|
||||||
|
const AdminRequestEvent = Packages.mindustry.game.EventType.AdminRequestEvent
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class BlockIndexer{
|
|||||||
/** Stores all damaged tile entities by team. */
|
/** Stores all damaged tile entities by team. */
|
||||||
private Seq<Building>[] damagedTiles = new Seq[Team.all.length];
|
private Seq<Building>[] damagedTiles = new Seq[Team.all.length];
|
||||||
/** All ores available on this map. */
|
/** All ores available on this map. */
|
||||||
private ObjectSet<Item> allOres = new ObjectSet<>();
|
private ObjectIntMap<Item> allOres = new ObjectIntMap<>();
|
||||||
/** Stores teams that are present here as tiles. */
|
/** Stores teams that are present here as tiles. */
|
||||||
private Seq<Team> activeTeams = new Seq<>(Team.class);
|
private Seq<Team> activeTeams = new Seq<>(Team.class);
|
||||||
/** Maps teams to a map of flagged tiles by flag. */
|
/** Maps teams to a map of flagged tiles by flag. */
|
||||||
@@ -78,8 +78,6 @@ public class BlockIndexer{
|
|||||||
var drop = tile.drop();
|
var drop = tile.drop();
|
||||||
|
|
||||||
if(drop != null){
|
if(drop != null){
|
||||||
allOres.add(drop);
|
|
||||||
|
|
||||||
int qx = (tile.x / quadrantSize);
|
int qx = (tile.x / quadrantSize);
|
||||||
int qy = (tile.y / quadrantSize);
|
int qy = (tile.y / quadrantSize);
|
||||||
|
|
||||||
@@ -92,6 +90,7 @@ public class BlockIndexer{
|
|||||||
ores[drop.id][qx][qy] = new IntSeq(false, 16);
|
ores[drop.id][qx][qy] = new IntSeq(false, 16);
|
||||||
}
|
}
|
||||||
ores[drop.id][qx][qy].add(tile.pos());
|
ores[drop.id][qx][qy].add(tile.pos());
|
||||||
|
allOres.increment(drop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,8 +104,8 @@ public class BlockIndexer{
|
|||||||
var flags = tile.block().flags;
|
var flags = tile.block().flags;
|
||||||
var data = team.data();
|
var data = team.data();
|
||||||
|
|
||||||
if(flags.size() > 0){
|
if(flags.size > 0){
|
||||||
for(BlockFlag flag : flags){
|
for(BlockFlag flag : flags.array){
|
||||||
getFlagged(team)[flag.ordinal()].remove(tile);
|
getFlagged(team)[flag.ordinal()].remove(tile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -150,9 +149,11 @@ public class BlockIndexer{
|
|||||||
//when the drop can be mined, record the ore position
|
//when the drop can be mined, record the ore position
|
||||||
if(tile.block() == Blocks.air && !seq.contains(pos)){
|
if(tile.block() == Blocks.air && !seq.contains(pos)){
|
||||||
seq.add(pos);
|
seq.add(pos);
|
||||||
|
allOres.increment(drop);
|
||||||
}else{
|
}else{
|
||||||
//otherwise, it likely became blocked, remove it (even if it wasn't there)
|
//otherwise, it likely became blocked, remove it (even if it wasn't there)
|
||||||
seq.removeValue(pos);
|
seq.removeValue(pos);
|
||||||
|
allOres.increment(drop, -1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,7 +178,7 @@ public class BlockIndexer{
|
|||||||
|
|
||||||
/** @return whether this item is present on this map. */
|
/** @return whether this item is present on this map. */
|
||||||
public boolean hasOre(Item item){
|
public boolean hasOre(Item item){
|
||||||
return allOres.contains(item);
|
return allOres.get(item) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns all damaged tiles by team. */
|
/** Returns all damaged tiles by team. */
|
||||||
@@ -400,10 +401,10 @@ public class BlockIndexer{
|
|||||||
//only process entity changes with centered tiles
|
//only process entity changes with centered tiles
|
||||||
if(tile.isCenter() && tile.build != null){
|
if(tile.isCenter() && tile.build != null){
|
||||||
var data = team.data();
|
var data = team.data();
|
||||||
if(tile.block().flags.size() > 0 && tile.isCenter()){
|
if(tile.block().flags.size > 0 && tile.isCenter()){
|
||||||
TileArray[] map = getFlagged(team);
|
TileArray[] map = getFlagged(team);
|
||||||
|
|
||||||
for(BlockFlag flag : tile.block().flags){
|
for(BlockFlag flag : tile.block().flags.array){
|
||||||
|
|
||||||
TileArray arr = map[flag.ordinal()];
|
TileArray arr = map[flag.ordinal()];
|
||||||
|
|
||||||
|
|||||||
@@ -2040,6 +2040,7 @@ public class UnitTypes implements ContentList{
|
|||||||
weaveMag = 4;
|
weaveMag = 4;
|
||||||
weaveScale = 4;
|
weaveScale = 4;
|
||||||
lifetime = 60f;
|
lifetime = 60f;
|
||||||
|
keepVelocity = false;
|
||||||
shootEffect = Fx.shootHeal;
|
shootEffect = Fx.shootHeal;
|
||||||
smokeEffect = Fx.hitLaser;
|
smokeEffect = Fx.hitLaser;
|
||||||
splashDamage = 13f;
|
splashDamage = 13f;
|
||||||
@@ -2231,6 +2232,7 @@ public class UnitTypes implements ContentList{
|
|||||||
backColor = Pal.heal;
|
backColor = Pal.heal;
|
||||||
frontColor = Color.white;
|
frontColor = Color.white;
|
||||||
width = height = 12f;
|
width = height = 12f;
|
||||||
|
shrinkY = 0f;
|
||||||
speed = 5f;
|
speed = 5f;
|
||||||
trailLength = 20;
|
trailLength = 20;
|
||||||
trailWidth = 6f;
|
trailWidth = 6f;
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public class ContentLoader{
|
|||||||
Events.fire(new ContentInitEvent());
|
Events.fire(new ContentInitEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Calls Content#load() on everything. Use only after all modules have been created on the client.*/
|
/** Calls Content#loadIcon() and Content#load() on everything. Use only after all modules have been created on the client. */
|
||||||
public void load(){
|
public void load(){
|
||||||
initialize(Content::loadIcon);
|
initialize(Content::loadIcon);
|
||||||
initialize(Content::load);
|
initialize(Content::load);
|
||||||
@@ -264,6 +264,10 @@ public class ContentLoader{
|
|||||||
return getByID(ContentType.item, id);
|
return getByID(ContentType.item, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Item item(String name){
|
||||||
|
return getByName(ContentType.item, name);
|
||||||
|
}
|
||||||
|
|
||||||
public Seq<Liquid> liquids(){
|
public Seq<Liquid> liquids(){
|
||||||
return getBy(ContentType.liquid);
|
return getBy(ContentType.liquid);
|
||||||
}
|
}
|
||||||
@@ -272,6 +276,10 @@ public class ContentLoader{
|
|||||||
return getByID(ContentType.liquid, id);
|
return getByID(ContentType.liquid, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Liquid liquid(String name){
|
||||||
|
return getByName(ContentType.liquid, name);
|
||||||
|
}
|
||||||
|
|
||||||
public Seq<BulletType> bullets(){
|
public Seq<BulletType> bullets(){
|
||||||
return getBy(ContentType.bullet);
|
return getBy(ContentType.bullet);
|
||||||
}
|
}
|
||||||
@@ -284,10 +292,18 @@ public class ContentLoader{
|
|||||||
return getBy(ContentType.status);
|
return getBy(ContentType.status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StatusEffect statusEffect(String name){
|
||||||
|
return getByName(ContentType.status, name);
|
||||||
|
}
|
||||||
|
|
||||||
public Seq<SectorPreset> sectors(){
|
public Seq<SectorPreset> sectors(){
|
||||||
return getBy(ContentType.sector);
|
return getBy(ContentType.sector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SectorPreset sector(String name){
|
||||||
|
return getByName(ContentType.sector, name);
|
||||||
|
}
|
||||||
|
|
||||||
public Seq<UnitType> units(){
|
public Seq<UnitType> units(){
|
||||||
return getBy(ContentType.unit);
|
return getBy(ContentType.unit);
|
||||||
}
|
}
|
||||||
@@ -296,7 +312,15 @@ public class ContentLoader{
|
|||||||
return getByID(ContentType.unit, id);
|
return getByID(ContentType.unit, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UnitType unit(String name){
|
||||||
|
return getByName(ContentType.unit, name);
|
||||||
|
}
|
||||||
|
|
||||||
public Seq<Planet> planets(){
|
public Seq<Planet> planets(){
|
||||||
return getBy(ContentType.planet);
|
return getBy(ContentType.planet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Planet planet(String name){
|
||||||
|
return getByName(ContentType.planet, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
//log commands before they are handled
|
//log commands before they are handled
|
||||||
if(message.startsWith(netServer.clientCommands.getPrefix())){
|
if(message.startsWith(netServer.clientCommands.getPrefix())){
|
||||||
//log with brackets
|
//log with brackets
|
||||||
Log.info("<&fi@: @&fr>", "&lk" + player.name, "&lw" + message);
|
Log.info("<&fi@: @&fr>", "&lk" + player.plainName(), "&lw" + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
//check if it's a command
|
//check if it's a command
|
||||||
@@ -251,7 +251,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//server console logging
|
//server console logging
|
||||||
Log.info("&fi@: @", "&lc" + player.name, "&lw" + message);
|
Log.info("&fi@: @", "&lc" + player.plainName(), "&lw" + message);
|
||||||
|
|
||||||
//invoke event for all clients but also locally
|
//invoke event for all clients but also locally
|
||||||
//this is required so other clients get the correct name even if they don't know who's sending it yet
|
//this is required so other clients get the correct name even if they don't know who's sending it yet
|
||||||
|
|||||||
@@ -560,7 +560,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
Call.playerDisconnect(player.id());
|
Call.playerDisconnect(player.id());
|
||||||
}
|
}
|
||||||
|
|
||||||
String message = Strings.format("&lb@&fi&lk has disconnected. &fi&lk[&lb@&fi&lk] (@)", player.name, player.uuid(), reason);
|
String message = Strings.format("&lb@&fi&lk has disconnected. [&lb@&fi&lk] (@)", player.plainName(), player.uuid(), reason);
|
||||||
if(Config.showConnectMessages.bool()) info(message);
|
if(Config.showConnectMessages.bool()) info(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -568,6 +568,38 @@ public class NetServer implements ApplicationListener{
|
|||||||
player.con.hasDisconnected = true;
|
player.con.hasDisconnected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//these functions are for debugging only, and will be removed!
|
||||||
|
|
||||||
|
@Remote(targets = Loc.client, variants = Variant.one)
|
||||||
|
public static void requestDebugStatus(Player player){
|
||||||
|
int flags =
|
||||||
|
(player.con.hasDisconnected ? 1 : 0) |
|
||||||
|
(player.con.hasConnected ? 2 : 0) |
|
||||||
|
(player.isAdded() ? 4 : 0) |
|
||||||
|
(player.con.hasBegunConnecting ? 8 : 0);
|
||||||
|
|
||||||
|
Call.debugStatusClient(player.con, flags, player.con.lastReceivedClientSnapshot, player.con.snapshotsSent);
|
||||||
|
Call.debugStatusClientUnreliable(player.con, flags, player.con.lastReceivedClientSnapshot, player.con.snapshotsSent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both, priority = PacketPriority.high)
|
||||||
|
public static void debugStatusClient(int value, int lastClientSnapshot, int snapshotsSent){
|
||||||
|
logClientStatus(true, value, lastClientSnapshot, snapshotsSent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Remote(variants = Variant.both, priority = PacketPriority.high, unreliable = true)
|
||||||
|
public static void debugStatusClientUnreliable(int value, int lastClientSnapshot, int snapshotsSent){
|
||||||
|
logClientStatus(false, value, lastClientSnapshot, snapshotsSent);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void logClientStatus(boolean reliable, int value, int lastClientSnapshot, int snapshotsSent){
|
||||||
|
Log.info("@ Debug status received. disconnected = @, connected = @, added = @, begunConnecting = @ lastClientSnapshot = @, snapshotsSent = @",
|
||||||
|
reliable ? "[RELIABLE]" : "[UNRELIABLE]",
|
||||||
|
(value & 1) != 0, (value & 2) != 0, (value & 4) != 0, (value & 8) != 0,
|
||||||
|
lastClientSnapshot, snapshotsSent
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Remote(targets = Loc.client)
|
@Remote(targets = Loc.client)
|
||||||
public static void serverPacketReliable(Player player, String type, String contents){
|
public static void serverPacketReliable(Player player, String type, String contents){
|
||||||
if(netServer.customPacketHandlers.containsKey(type)){
|
if(netServer.customPacketHandlers.containsKey(type)){
|
||||||
@@ -741,12 +773,12 @@ public class NetServer implements ApplicationListener{
|
|||||||
public static void adminRequest(Player player, Player other, AdminAction action){
|
public static void adminRequest(Player player, Player other, AdminAction action){
|
||||||
if(!player.admin && !player.isLocal()){
|
if(!player.admin && !player.isLocal()){
|
||||||
warn("ACCESS DENIED: Player @ / @ attempted to perform admin action '@' on '@' without proper security access.",
|
warn("ACCESS DENIED: Player @ / @ attempted to perform admin action '@' on '@' without proper security access.",
|
||||||
player.name, player.con == null ? "null" : player.con.address, action.name(), other == null ? null : other.name);
|
player.plainName(), player.con == null ? "null" : player.con.address, action.name(), other == null ? null : other.plainName());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(other == null || ((other.admin && !player.isLocal()) && other != player)){
|
if(other == null || ((other.admin && !player.isLocal()) && other != player)){
|
||||||
warn("@ attempted to perform admin action on nonexistant or admin player.", player.name);
|
warn("@ &fi&lk[&lb@&fi&lk]&fb attempted to perform admin action on nonexistant or admin player.", player.plainName(), player.uuid());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -756,15 +788,15 @@ public class NetServer implements ApplicationListener{
|
|||||||
//no verification is done, so admins can hypothetically spam waves
|
//no verification is done, so admins can hypothetically spam waves
|
||||||
//not a real issue, because server owners may want to do just that
|
//not a real issue, because server owners may want to do just that
|
||||||
logic.skipWave();
|
logic.skipWave();
|
||||||
info("&lc@ has skipped the wave.", player.name);
|
info("&lc@ &fi&lk[&lb@&fi&lk]&fb has skipped the wave.", player.plainName(), player.uuid());
|
||||||
}else if(action == AdminAction.ban){
|
}else if(action == AdminAction.ban){
|
||||||
netServer.admins.banPlayerID(other.con.uuid);
|
netServer.admins.banPlayerID(other.con.uuid);
|
||||||
netServer.admins.banPlayerIP(other.con.address);
|
netServer.admins.banPlayerIP(other.con.address);
|
||||||
other.kick(KickReason.banned);
|
other.kick(KickReason.banned);
|
||||||
info("&lc@ has banned @.", player.name, other.name);
|
info("&lc@ &fi&lk[&lb@&fi&lk]&fb has banned @ &fi&lk[&lb@&fi&lk]&fb.", player.plainName(), player.uuid(), other.plainName(), other.uuid());
|
||||||
}else if(action == AdminAction.kick){
|
}else if(action == AdminAction.kick){
|
||||||
other.kick(KickReason.kick);
|
other.kick(KickReason.kick);
|
||||||
info("&lc@ has kicked @.", player.name, other.name);
|
info("&lc@ &fi&lk[&lb@&fi&lk]&fb has kicked @ &fi&lk[&lb@&fi&lk]&fb.", player.plainName(), player.uuid(), other.plainName(), other.uuid());
|
||||||
}else if(action == AdminAction.trace){
|
}else if(action == AdminAction.trace){
|
||||||
PlayerInfo stats = netServer.admins.getInfo(other.uuid());
|
PlayerInfo stats = netServer.admins.getInfo(other.uuid());
|
||||||
TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.con.modclient, other.con.mobile, stats.timesJoined, stats.timesKicked);
|
TraceInfo info = new TraceInfo(other.con.address, other.uuid(), other.con.modclient, other.con.mobile, stats.timesJoined, stats.timesKicked);
|
||||||
@@ -773,7 +805,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
}else{
|
}else{
|
||||||
NetClient.traceInfo(other, info);
|
NetClient.traceInfo(other, info);
|
||||||
}
|
}
|
||||||
info("&lc@ has requested trace info of @.", player.name, other.name);
|
info("&lc@ &fi&lk[&lb@&fi&lk]&fb has requested trace info of @ &fi&lk[&lb@&fi&lk]&fb.", player.plainName(), player.uuid(), other.plainName(), other.uuid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -791,7 +823,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
|
|
||||||
if(Config.showConnectMessages.bool()){
|
if(Config.showConnectMessages.bool()){
|
||||||
Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
|
Call.sendMessage("[accent]" + player.name + "[accent] has connected.");
|
||||||
String message = Strings.format("&lb@&fi&lk has connected. &fi&lk[&lb@&fi&lk]", player.name, player.uuid());
|
String message = Strings.format("&lb@&fi&lk has connected. &fi&lk[&lb@&fi&lk]", player.plainName(), player.uuid());
|
||||||
info(message);
|
info(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -931,6 +963,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
Call.entitySnapshot(player.con, (short)sent, syncStream.toByteArray());
|
Call.entitySnapshot(player.con, (short)sent, syncStream.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player.con.snapshotsSent++;
|
||||||
}
|
}
|
||||||
|
|
||||||
String fixName(String name){
|
String fixName(String name){
|
||||||
|
|||||||
@@ -79,9 +79,10 @@ public interface Platform{
|
|||||||
}
|
}
|
||||||
|
|
||||||
default Context getScriptContext(){
|
default Context getScriptContext(){
|
||||||
Context c = Context.enter();
|
Context context = Context.getCurrentContext();
|
||||||
c.setOptimizationLevel(9);
|
if(context == null) context = Context.enter();
|
||||||
return c;
|
context.setOptimizationLevel(9);
|
||||||
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Update discord RPC. */
|
/** Update discord RPC. */
|
||||||
|
|||||||
@@ -303,6 +303,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
Table table = new Table();
|
Table table = new Table();
|
||||||
table.touchable = Touchable.disabled;
|
table.touchable = Touchable.disabled;
|
||||||
table.setFillParent(true);
|
table.setFillParent(true);
|
||||||
|
table.marginTop(Core.scene.find("coreinfo").getPrefHeight() / Scl.scl() / 2);
|
||||||
table.actions(Actions.fadeOut(7f, Interp.fade), Actions.remove());
|
table.actions(Actions.fadeOut(7f, Interp.fade), Actions.remove());
|
||||||
table.top().add(info).style(Styles.outlineLabel).padTop(10);
|
table.top().add(info).style(Styles.outlineLabel).padTop(10);
|
||||||
Core.scene.add(table);
|
Core.scene.add(table);
|
||||||
@@ -311,8 +312,9 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
/** Shows a fading label at the top of the screen. */
|
/** Shows a fading label at the top of the screen. */
|
||||||
public void showInfoToast(String info, float duration){
|
public void showInfoToast(String info, float duration){
|
||||||
Table table = new Table();
|
Table table = new Table();
|
||||||
table.setFillParent(true);
|
|
||||||
table.touchable = Touchable.disabled;
|
table.touchable = Touchable.disabled;
|
||||||
|
table.setFillParent(true);
|
||||||
|
table.marginTop(Core.scene.find("coreinfo").getPrefHeight() / Scl.scl() / 2);
|
||||||
table.update(() -> {
|
table.update(() -> {
|
||||||
if(state.isMenu()) table.remove();
|
if(state.isMenu()) table.remove();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public abstract class Content implements Comparable<Content>{
|
|||||||
*/
|
*/
|
||||||
public void load(){}
|
public void load(){}
|
||||||
|
|
||||||
/** Called right after load(). */
|
/** Called right before load(). */
|
||||||
public void loadIcon(){}
|
public void loadIcon(){}
|
||||||
|
|
||||||
/** @return whether an error occurred during mod loading. */
|
/** @return whether an error occurred during mod loading. */
|
||||||
|
|||||||
@@ -181,8 +181,8 @@ public class MapView extends Element implements GestureListener{
|
|||||||
if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && !Core.input.keyDown(KeyCode.controlLeft)){
|
if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && !Core.input.keyDown(KeyCode.controlLeft)){
|
||||||
float ax = Core.input.axis(Binding.move_x);
|
float ax = Core.input.axis(Binding.move_x);
|
||||||
float ay = Core.input.axis(Binding.move_y);
|
float ay = Core.input.axis(Binding.move_y);
|
||||||
offsetx -= ax * 15f / zoom;
|
offsetx -= ax * 15 * Time.delta / zoom;
|
||||||
offsety -= ay * 15f / zoom;
|
offsety -= ay * 15 * Time.delta / zoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Core.input.keyTap(KeyCode.shiftLeft)){
|
if(Core.input.keyTap(KeyCode.shiftLeft)){
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ public class EnergyFieldAbility extends Ability{
|
|||||||
|
|
||||||
for(int i = 0; i < sectors; i++){
|
for(int i = 0; i < sectors; i++){
|
||||||
float rot = unit.rotation + i * 360f/sectors - Time.time * rotateSpeed;
|
float rot = unit.rotation + i * 360f/sectors - Time.time * rotateSpeed;
|
||||||
Lines.swirl(rx, ry, orbRadius + 3f, sectorRad, rot);
|
Lines.arc(rx, ry, orbRadius + 3f, sectorRad, rot);
|
||||||
}
|
}
|
||||||
|
|
||||||
Lines.stroke(Lines.getStroke() * curStroke);
|
Lines.stroke(Lines.getStroke() * curStroke);
|
||||||
@@ -78,7 +78,7 @@ public class EnergyFieldAbility extends Ability{
|
|||||||
if(curStroke > 0){
|
if(curStroke > 0){
|
||||||
for(int i = 0; i < sectors; i++){
|
for(int i = 0; i < sectors; i++){
|
||||||
float rot = unit.rotation + i * 360f/sectors + Time.time * rotateSpeed;
|
float rot = unit.rotation + i * 360f/sectors + Time.time * rotateSpeed;
|
||||||
Lines.swirl(rx, ry, range, sectorRad, rot);
|
Lines.arc(rx, ry, range, sectorRad, rot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import mindustry.gen.*;
|
|||||||
public class MoveLightningAbility extends Ability{
|
public class MoveLightningAbility extends Ability{
|
||||||
/** Lightning damage */
|
/** Lightning damage */
|
||||||
public float damage = 35f;
|
public float damage = 35f;
|
||||||
/** Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed. */
|
/** Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed */
|
||||||
public float chance = 0.15f;
|
public float chance = 0.15f;
|
||||||
/** Length of the lightning. <= 0 to disable */
|
/** Length of the lightning. <= 0 to disable */
|
||||||
public int length = 12;
|
public int length = 12;
|
||||||
@@ -24,8 +24,10 @@ public class MoveLightningAbility extends Ability{
|
|||||||
public Color color = Color.valueOf("a9d8ff");
|
public Color color = Color.valueOf("a9d8ff");
|
||||||
/** Shifts where the lightning spawns along the Y axis */
|
/** Shifts where the lightning spawns along the Y axis */
|
||||||
public float offset = 0f;
|
public float offset = 0f;
|
||||||
/** Offset along the X axis. */
|
/** Offset along the X axis */
|
||||||
public float width = 0f;
|
public float width = 0f;
|
||||||
|
/** Whether the spawn side alternates */
|
||||||
|
public boolean alternate = true;
|
||||||
/** Jittering heat sprite like the shield on v5 Javelin */
|
/** Jittering heat sprite like the shield on v5 Javelin */
|
||||||
public String heatRegion = "error";
|
public String heatRegion = "error";
|
||||||
/** Bullet type that is fired. Can be null */
|
/** Bullet type that is fired. Can be null */
|
||||||
@@ -69,7 +71,7 @@ public class MoveLightningAbility extends Ability{
|
|||||||
float x = unit.x + Angles.trnsx(unit.rotation, offset, width * side), y = unit.y + Angles.trnsy(unit.rotation, offset, width * side);
|
float x = unit.x + Angles.trnsx(unit.rotation, offset, width * side), y = unit.y + Angles.trnsy(unit.rotation, offset, width * side);
|
||||||
|
|
||||||
shootEffect.at(x, y, unit.rotation, color, parentizeEffects ? unit : null);
|
shootEffect.at(x, y, unit.rotation, color, parentizeEffects ? unit : null);
|
||||||
shootSound.at(unit);
|
shootSound.at(x, y);
|
||||||
|
|
||||||
if(length > 0){
|
if(length > 0){
|
||||||
Lightning.create(unit.team, color, damage, x + unit.vel.x, y + unit.vel.y, unit.rotation, length);
|
Lightning.create(unit.team, color, damage, x + unit.vel.x, y + unit.vel.y, unit.rotation, length);
|
||||||
@@ -79,7 +81,7 @@ public class MoveLightningAbility extends Ability{
|
|||||||
bullet.create(unit, unit.team, x, y, unit.rotation + bulletAngle + Mathf.range(bulletSpread));
|
bullet.create(unit, unit.team, x, y, unit.rotation + bulletAngle + Mathf.range(bulletSpread));
|
||||||
}
|
}
|
||||||
|
|
||||||
side *= -1f;
|
if(alternate) side *= -1f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -121,6 +121,9 @@ public class BulletType extends Content implements Cloneable{
|
|||||||
|
|
||||||
//additional effects
|
//additional effects
|
||||||
|
|
||||||
|
/** Whether status and despawnHit should automatically be set. */
|
||||||
|
public boolean setDefaults = true;
|
||||||
|
|
||||||
public float fragCone = 360f;
|
public float fragCone = 360f;
|
||||||
public float fragAngle = 0f;
|
public float fragAngle = 0f;
|
||||||
public int fragBullets = 9;
|
public int fragBullets = 9;
|
||||||
@@ -405,23 +408,26 @@ public class BulletType extends Content implements Cloneable{
|
|||||||
//pierceBuilding is not enabled by default, because a bullet may want to *not* pierce buildings
|
//pierceBuilding is not enabled by default, because a bullet may want to *not* pierce buildings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(setDefaults){
|
||||||
if(lightning > 0){
|
if(lightning > 0){
|
||||||
if(status == StatusEffects.none){
|
if(status == StatusEffects.none){
|
||||||
status = StatusEffects.shocked;
|
status = StatusEffects.shocked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(fragBullet != null || splashDamageRadius > 0 || lightning > 0){
|
||||||
|
despawnHit = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(lightningType == null){
|
if(lightningType == null){
|
||||||
lightningType = !collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning;
|
lightningType = !collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragBullet != null || splashDamageRadius > 0 || lightning > 0){
|
if(lightRadius <= -1){
|
||||||
despawnHit = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(lightRadius == -1){
|
|
||||||
lightRadius = Math.max(18, hitSize * 5f);
|
lightRadius = Math.max(18, hitSize * 5f);
|
||||||
}
|
}
|
||||||
|
|
||||||
drawSize = Math.max(drawSize, trailLength * speed * 2f);
|
drawSize = Math.max(drawSize, trailLength * speed * 2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1249,6 +1249,11 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
return self() != other;
|
return self() != other;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when this block's config menu is closed
|
||||||
|
*/
|
||||||
|
public void onConfigureClosed(){}
|
||||||
|
|
||||||
/** Returns whether this config menu should show when the specified player taps it. */
|
/** Returns whether this config menu should show when the specified player taps it. */
|
||||||
public boolean shouldShowConfigure(Player player){
|
public boolean shouldShowConfigure(Player player){
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -200,6 +200,8 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
|||||||
|
|
||||||
type.draw(self());
|
type.draw(self());
|
||||||
type.drawLight(self());
|
type.drawLight(self());
|
||||||
|
|
||||||
|
Draw.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initVel(float angle, float amount){
|
public void initVel(float angle, float amount){
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.entities.comp;
|
package mindustry.entities.comp;
|
||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
@@ -115,7 +116,7 @@ abstract class FireComp implements Timedc, Posc, Syncc, Drawc{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Draw.alpha(Mathf.clamp(warmup / warmupDuration));
|
Draw.color(Color.white, Mathf.clamp(warmup / warmupDuration));
|
||||||
Draw.z(Layer.effect);
|
Draw.z(Layer.effect);
|
||||||
Draw.rect(regions[Math.min((int)animation, regions.length - 1)], x + Mathf.randomSeedRange((int)y, 2), y + Mathf.randomSeedRange((int)x, 2));
|
Draw.rect(regions[Math.min((int)animation, regions.length - 1)], x + Mathf.randomSeedRange((int)y, 2), y + Mathf.randomSeedRange((int)x, 2));
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
|
|||||||
if(!u.isAdded()) u.team.data().updateCount(u.type, -1);
|
if(!u.isAdded()) u.team.data().updateCount(u.type, -1);
|
||||||
u.add();
|
u.add();
|
||||||
u.unloaded();
|
u.unloaded();
|
||||||
|
Events.fire(new PayloadDropEvent(self(), u));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -168,6 +169,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
|
|||||||
if(on != null && Build.validPlace(tile.block, tile.team, tx, ty, tile.rotation, false)){
|
if(on != null && Build.validPlace(tile.block, tile.team, tx, ty, tile.rotation, false)){
|
||||||
int rot = (int)((rotation + 45f) / 90f) % 4;
|
int rot = (int)((rotation + 45f) / 90f) % 4;
|
||||||
payload.place(on, rot);
|
payload.place(on, rot);
|
||||||
|
Events.fire(new PayloadDropEvent(self(), tile));
|
||||||
|
|
||||||
if(getControllerName() != null){
|
if(getControllerName() != null){
|
||||||
payload.build.lastAccessed = getControllerName();
|
payload.build.lastAccessed = getControllerName();
|
||||||
|
|||||||
@@ -314,6 +314,10 @@ abstract class PlayerComp implements UnitController, Entityc, Syncc, Timerc, Dra
|
|||||||
return "[#" + color.toString().toUpperCase() + "]" + name;
|
return "[#" + color.toString().toUpperCase() + "]" + name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String plainName(){
|
||||||
|
return Strings.stripColors(name);
|
||||||
|
}
|
||||||
|
|
||||||
void sendMessage(String text){
|
void sendMessage(String text){
|
||||||
if(isLocal()){
|
if(isLocal()){
|
||||||
if(ui != null){
|
if(ui != null){
|
||||||
|
|||||||
@@ -242,6 +242,24 @@ public class EventType{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class PayloadDropEvent{
|
||||||
|
public final Unit carrier;
|
||||||
|
public final @Nullable Unit unit;
|
||||||
|
public final @Nullable Building build;
|
||||||
|
|
||||||
|
public PayloadDropEvent(Unit carrier, Unit unit){
|
||||||
|
this.carrier = carrier;
|
||||||
|
this.unit = unit;
|
||||||
|
this.build = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PayloadDropEvent(Unit carrier, Building build){
|
||||||
|
this.carrier = carrier;
|
||||||
|
this.build = build;
|
||||||
|
this.unit = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class UnitControlEvent{
|
public static class UnitControlEvent{
|
||||||
public final Player player;
|
public final Player player;
|
||||||
public final @Nullable Unit unit;
|
public final @Nullable Unit unit;
|
||||||
|
|||||||
@@ -36,11 +36,19 @@ public class Teams{
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public CoreBuild closestEnemyCore(float x, float y, Team team){
|
public CoreBuild closestEnemyCore(float x, float y, Team team){
|
||||||
|
CoreBuild closest = null;
|
||||||
|
float closestDst = Float.MAX_VALUE;
|
||||||
|
|
||||||
for(Team enemy : team.data().coreEnemies){
|
for(Team enemy : team.data().coreEnemies){
|
||||||
CoreBuild tile = Geometry.findClosest(x, y, enemy.cores());
|
for(CoreBuild core : enemy.cores()){
|
||||||
if(tile != null) return tile;
|
float dst = Mathf.dst2(x, y, core.getX(), core.getY());
|
||||||
|
if(closestDst > dst){
|
||||||
|
closest = core;
|
||||||
|
closestDst = dst;
|
||||||
}
|
}
|
||||||
return null;
|
}
|
||||||
|
}
|
||||||
|
return closest;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -344,7 +344,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
public static void tileConfig(@Nullable Player player, Building build, @Nullable Object value){
|
public static void tileConfig(@Nullable Player player, Building build, @Nullable Object value){
|
||||||
if(build == null) return;
|
if(build == null) return;
|
||||||
if(net.server() && (!Units.canInteract(player, build) ||
|
if(net.server() && (!Units.canInteract(player, build) ||
|
||||||
!netServer.admins.allowAction(player, ActionType.configure, build.tile, action -> action.config = value))) throw new ValidateException(player, "Player cannot configure a tile.");
|
!netServer.admins.allowAction(player, ActionType.configure, build.tile, action -> action.config = value))){
|
||||||
|
var packet = new TileConfigCallPacket(); //undo the config on the client
|
||||||
|
packet.player = player;
|
||||||
|
packet.build = build;
|
||||||
|
packet.value = build.config();
|
||||||
|
player.con.send(packet, true);
|
||||||
|
throw new ValidateException(player, "Player cannot configure a tile.");
|
||||||
|
}
|
||||||
build.configured(player == null || player.dead() ? null : player.unit(), value);
|
build.configured(player == null || player.dead() ? null : player.unit(), value);
|
||||||
Core.app.post(() -> Events.fire(new ConfigEvent(build, player, value)));
|
Core.app.post(() -> Events.fire(new ConfigEvent(build, player, value)));
|
||||||
}
|
}
|
||||||
@@ -1269,19 +1276,24 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
int endRotation = -1;
|
int endRotation = -1;
|
||||||
if(diagonal){
|
|
||||||
var start = world.build(startX, startY);
|
var start = world.build(startX, startY);
|
||||||
var end = world.build(endX, endY);
|
var end = world.build(endX, endY);
|
||||||
|
if(diagonal){
|
||||||
if(block != null && start instanceof ChainedBuilding && end instanceof ChainedBuilding
|
if(block != null && start instanceof ChainedBuilding && end instanceof ChainedBuilding
|
||||||
&& block.canReplace(end.block) && block.canReplace(start.block)){
|
&& block.canReplace(end.block) && block.canReplace(start.block)){
|
||||||
points = Placement.upgradeLine(startX, startY, endX, endY);
|
points = Placement.upgradeLine(startX, startY, endX, endY);
|
||||||
endRotation = end.rotation;
|
|
||||||
}else{
|
}else{
|
||||||
points = Placement.pathfindLine(block != null && block.conveyorPlacement, startX, startY, endX, endY);
|
points = Placement.pathfindLine(block != null && block.conveyorPlacement, startX, startY, endX, endY);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
points = Placement.normalizeLine(startX, startY, endX, endY);
|
points = Placement.normalizeLine(startX, startY, endX, endY);
|
||||||
}
|
}
|
||||||
|
if(points.size > 1 && end instanceof ChainedBuilding){
|
||||||
|
Point2 secondToLast = points.get(points.size - 2);
|
||||||
|
if (!(world.build(secondToLast.x, secondToLast.y) instanceof ChainedBuilding)){
|
||||||
|
endRotation = end.rotation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(block != null){
|
if(block != null){
|
||||||
block.changePlacementPath(points, rotation);
|
block.changePlacementPath(points, rotation);
|
||||||
|
|||||||
@@ -231,8 +231,8 @@ public class JsonIO{
|
|||||||
UnitType unit = Vars.content.getByName(ContentType.unit, str);
|
UnitType unit = Vars.content.getByName(ContentType.unit, str);
|
||||||
return
|
return
|
||||||
item != null ? item :
|
item != null ? item :
|
||||||
block != null ? block :
|
|
||||||
liquid != null ? liquid :
|
liquid != null ? liquid :
|
||||||
|
block != null ? block :
|
||||||
unit;
|
unit;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -381,7 +381,11 @@ public class ContentParser{
|
|||||||
|
|
||||||
if(!value.has("sector") || !value.get("sector").isNumber()) throw new RuntimeException("SectorPresets must have a sector number.");
|
if(!value.has("sector") || !value.get("sector").isNumber()) throw new RuntimeException("SectorPresets must have a sector number.");
|
||||||
|
|
||||||
return new SectorPreset(name, locate(ContentType.planet, value.getString("planet", "serpulo")), value.getInt("sector"));
|
SectorPreset out = new SectorPreset(name, locate(ContentType.planet, value.getString("planet", "serpulo")), value.getInt("sector"));
|
||||||
|
value.remove("sector");
|
||||||
|
value.remove("planet");
|
||||||
|
read(() -> readFields(out, value));
|
||||||
|
return out;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -355,10 +355,13 @@ public class Mods implements Loadable{
|
|||||||
|
|
||||||
/** Loads all mods from the folder, but does not call any methods on them.*/
|
/** Loads all mods from the folder, but does not call any methods on them.*/
|
||||||
public void load(){
|
public void load(){
|
||||||
for(Fi file : modDirectory.list()){
|
var files = resolveDependencies(Seq.with(modDirectory.list()).filter(f ->
|
||||||
if(!file.extension().equals("jar") && !file.extension().equals("zip") && !(file.isDirectory() && (file.child("mod.json").exists() || file.child("mod.hjson").exists()))) continue;
|
f.extension().equals("jar") || f.extension().equals("zip") || (f.isDirectory() && (f.child("mod.json").exists() || f.child("mod.hjson").exists()))
|
||||||
|
));
|
||||||
|
|
||||||
|
for(Fi file : files){
|
||||||
Log.debug("[Mods] Loading mod @", file);
|
Log.debug("[Mods] Loading mod @", file);
|
||||||
|
|
||||||
try{
|
try{
|
||||||
LoadedMod mod = loadMod(file);
|
LoadedMod mod = loadMod(file);
|
||||||
mods.add(mod);
|
mods.add(mod);
|
||||||
@@ -373,7 +376,7 @@ public class Mods implements Loadable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//load workshop mods now
|
//load workshop mods now
|
||||||
for(Fi file : platform.getWorkshopContent(LoadedMod.class)){
|
for(Fi file : resolveDependencies(platform.getWorkshopContent(LoadedMod.class))){
|
||||||
try{
|
try{
|
||||||
LoadedMod mod = loadMod(file);
|
LoadedMod mod = loadMod(file);
|
||||||
mods.add(mod);
|
mods.add(mod);
|
||||||
@@ -708,6 +711,86 @@ public class Mods implements Loadable{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Tries to find the config file of a mod/plugin. */
|
||||||
|
@Nullable
|
||||||
|
public ModMeta findMeta(Fi file){
|
||||||
|
Fi metaFile =
|
||||||
|
file.child("mod.json").exists() ? file.child("mod.json") :
|
||||||
|
file.child("mod.hjson").exists() ? file.child("mod.hjson") :
|
||||||
|
file.child("plugin.json").exists() ? file.child("plugin.json") :
|
||||||
|
file.child("plugin.hjson");
|
||||||
|
|
||||||
|
if(!metaFile.exists()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
ModMeta meta = json.fromJson(ModMeta.class, Jval.read(metaFile.readString()).toString(Jformat.plain));
|
||||||
|
meta.cleanup();
|
||||||
|
return meta;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Resolves the loading order of a list mods/plugins using their internal names.
|
||||||
|
* It also skips non-mods files or folders. */
|
||||||
|
public Seq<Fi> resolveDependencies(Seq<Fi> files){
|
||||||
|
ObjectMap<String, Fi> fileMapping = new ObjectMap<>();
|
||||||
|
ObjectMap<String, Seq<String>> dependencies = new ObjectMap<>();
|
||||||
|
|
||||||
|
for(Fi file : files){
|
||||||
|
Fi zip = file.isDirectory() ? file : new ZipFi(file);
|
||||||
|
|
||||||
|
if(zip.list().length == 1 && zip.list()[0].isDirectory()){
|
||||||
|
zip = zip.list()[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
ModMeta meta = null;
|
||||||
|
try{
|
||||||
|
meta = findMeta(zip);
|
||||||
|
}catch(Exception ignored){
|
||||||
|
}
|
||||||
|
|
||||||
|
if(meta == null) continue;
|
||||||
|
dependencies.put(meta.name, meta.dependencies);
|
||||||
|
fileMapping.put(meta.name, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
ObjectSet<String> visited = new ObjectSet<>();
|
||||||
|
OrderedSet<String> ordered = new OrderedSet<>();
|
||||||
|
|
||||||
|
for(String modName : dependencies.keys()){
|
||||||
|
if(!ordered.contains(modName)){
|
||||||
|
// Adds the loaded mods at the beginning of the list
|
||||||
|
ordered.add(modName, 0);
|
||||||
|
resolveDependencies(modName, dependencies, ordered, visited);
|
||||||
|
visited.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Adds the invalid mods
|
||||||
|
for(String missingMod : dependencies.keys()){
|
||||||
|
if(!ordered.contains(missingMod)) ordered.add(missingMod, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Seq<Fi> resolved = ordered.orderedItems().map(fileMapping::get);
|
||||||
|
// Since the resolver explores the dependencies from leaves to the root, reverse the seq
|
||||||
|
resolved.reverse();
|
||||||
|
return resolved;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Recursive search of dependencies */
|
||||||
|
public void resolveDependencies(String modName, ObjectMap<String, Seq<String>> dependencies, OrderedSet<String> ordered, ObjectSet<String> visited){
|
||||||
|
visited.add(modName);
|
||||||
|
|
||||||
|
for(String dependency : dependencies.get(modName)){
|
||||||
|
// Checks if the dependency tree isn't circular and that the dependency is not missing
|
||||||
|
if(!visited.contains(dependency) && dependencies.containsKey(dependency)){
|
||||||
|
// Skips if the dependency was already explored in a separate tree
|
||||||
|
if(ordered.contains(dependency)) continue;
|
||||||
|
ordered.add(dependency);
|
||||||
|
resolveDependencies(dependency, dependencies, ordered, visited);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Loads a mod file+meta, but does not add it to the list.
|
/** Loads a mod file+meta, but does not add it to the list.
|
||||||
* Note that directories can be loaded as mods. */
|
* Note that directories can be loaded as mods. */
|
||||||
private LoadedMod loadMod(Fi sourceFile) throws Exception{
|
private LoadedMod loadMod(Fi sourceFile) throws Exception{
|
||||||
@@ -727,19 +810,13 @@ public class Mods implements Loadable{
|
|||||||
zip = zip.list()[0];
|
zip = zip.list()[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
Fi metaf =
|
ModMeta meta = findMeta(zip);
|
||||||
zip.child("mod.json").exists() ? zip.child("mod.json") :
|
|
||||||
zip.child("mod.hjson").exists() ? zip.child("mod.hjson") :
|
|
||||||
zip.child("plugin.json").exists() ? zip.child("plugin.json") :
|
|
||||||
zip.child("plugin.hjson");
|
|
||||||
|
|
||||||
if(!metaf.exists()){
|
if(meta == null){
|
||||||
Log.warn("Mod @ doesn't have a '[mod/plugin].[h]json' file, skipping.", sourceFile);
|
Log.warn("Mod @ doesn't have a '[mod/plugin].[h]json' file, skipping.", zip);
|
||||||
throw new ModLoadException("Invalid file: No mod.json found.");
|
throw new ModLoadException("Invalid file: No mod.json found.");
|
||||||
}
|
}
|
||||||
|
|
||||||
ModMeta meta = json.fromJson(ModMeta.class, Jval.read(metaf.readString()).toString(Jformat.plain));
|
|
||||||
meta.cleanup();
|
|
||||||
String camelized = meta.name.replace(" ", "");
|
String camelized = meta.name.replace(" ", "");
|
||||||
String mainClass = meta.main == null ? camelized.toLowerCase(Locale.ROOT) + "." + camelized + "Mod" : meta.main;
|
String mainClass = meta.main == null ? camelized.toLowerCase(Locale.ROOT) + "." + camelized + "Mod" : meta.main;
|
||||||
String baseName = meta.name.toLowerCase(Locale.ROOT).replace(" ", "-");
|
String baseName = meta.name.toLowerCase(Locale.ROOT).replace(" ", "-");
|
||||||
|
|||||||
@@ -302,11 +302,13 @@ public class Administration{
|
|||||||
public boolean adminPlayer(String id, String usid){
|
public boolean adminPlayer(String id, String usid){
|
||||||
PlayerInfo info = getCreateInfo(id);
|
PlayerInfo info = getCreateInfo(id);
|
||||||
|
|
||||||
|
var wasAdmin = info.admin;
|
||||||
|
|
||||||
info.adminUsid = usid;
|
info.adminUsid = usid;
|
||||||
info.admin = true;
|
info.admin = true;
|
||||||
save();
|
save();
|
||||||
|
|
||||||
return true;
|
return wasAdmin;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -566,6 +568,10 @@ public class Administration{
|
|||||||
|
|
||||||
public PlayerInfo(){
|
public PlayerInfo(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String plainLastName(){
|
||||||
|
return Strings.stripColors(lastName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handles chat messages from players and changes their contents. */
|
/** Handles chat messages from players and changes their contents. */
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ public abstract class NetConnection{
|
|||||||
public long connectTime = Time.millis();
|
public long connectTime = Time.millis();
|
||||||
/** ID of last received client snapshot. */
|
/** ID of last received client snapshot. */
|
||||||
public int lastReceivedClientSnapshot = -1;
|
public int lastReceivedClientSnapshot = -1;
|
||||||
|
/** Count of snapshots sent from server. */
|
||||||
|
public int snapshotsSent;
|
||||||
/** Timestamp of last received snapshot. */
|
/** Timestamp of last received snapshot. */
|
||||||
public long lastReceivedClientTime;
|
public long lastReceivedClientTime;
|
||||||
/** Build requests that have been recently rejected. This is cleared every snapshot. */
|
/** Build requests that have been recently rejected. This is cleared every snapshot. */
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class Liquid extends UnlockableContent{
|
|||||||
public @Nullable Color barColor;
|
public @Nullable Color barColor;
|
||||||
/** Color used to draw lights. Note that the alpha channel is used to dictate brightness. */
|
/** Color used to draw lights. Note that the alpha channel is used to dictate brightness. */
|
||||||
public Color lightColor = Color.clear.cpy();
|
public Color lightColor = Color.clear.cpy();
|
||||||
/** 0-1, 0 is completely inflammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */
|
/** 0-1, 0 is completely not flammable, anything above that may catch fire when exposed to heat, 0.5+ is very flammable. */
|
||||||
public float flammability;
|
public float flammability;
|
||||||
/** temperature: 0.5 is 'room' temperature, 0 is very cold, 1 is molten hot */
|
/** temperature: 0.5 is 'room' temperature, 0 is very cold, 1 is molten hot */
|
||||||
public float temperature = 0.5f;
|
public float temperature = 0.5f;
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ public class LanguageDialog extends BaseDialog{
|
|||||||
"be", "Беларуская",
|
"be", "Беларуская",
|
||||||
"bg", "Български",
|
"bg", "Български",
|
||||||
"ru", "Русский",
|
"ru", "Русский",
|
||||||
"uk_UA", "Українська (Україна)",
|
"sr", "Српски",
|
||||||
|
"uk_UA", "Українська",
|
||||||
"th", "ไทย",
|
"th", "ไทย",
|
||||||
"zh_CN", "简体中文",
|
"zh_CN", "简体中文",
|
||||||
"zh_TW", "正體中文",
|
"zh_TW", "正體中文",
|
||||||
|
|||||||
@@ -323,7 +323,10 @@ public class ModsDialog extends BaseDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reload(){
|
private void reload(){
|
||||||
ui.showInfoOnHidden("@mods.reloadexit", () -> Core.app.exit());
|
ui.showInfoOnHidden("@mods.reloadexit", () -> {
|
||||||
|
Log.info("Exiting to reload mods.");
|
||||||
|
Core.app.exit();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showMod(LoadedMod mod){
|
private void showMod(LoadedMod mod){
|
||||||
|
|||||||
@@ -589,6 +589,30 @@ public class SettingsMenuDialog extends BaseDialog{
|
|||||||
rebuild();
|
rebuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void textPref(String name, String def){
|
||||||
|
list.add(new TextSetting(name, def, null));
|
||||||
|
settings.defaults(name, def);
|
||||||
|
rebuild();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void textPref(String name, String def, Cons<String> changed){
|
||||||
|
list.add(new TextSetting(name, def, changed));
|
||||||
|
settings.defaults(name, def);
|
||||||
|
rebuild();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void areaTextPref(String name, String def){
|
||||||
|
list.add(new AreaTextSetting(name, def, null));
|
||||||
|
settings.defaults(name, def);
|
||||||
|
rebuild();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void areaTextPref(String name, String def, Cons<String> changed){
|
||||||
|
list.add(new AreaTextSetting(name, def, changed));
|
||||||
|
settings.defaults(name, def);
|
||||||
|
rebuild();
|
||||||
|
}
|
||||||
|
|
||||||
public void rebuild(){
|
public void rebuild(){
|
||||||
clearChildren();
|
clearChildren();
|
||||||
|
|
||||||
@@ -705,5 +729,63 @@ public class SettingsMenuDialog extends BaseDialog{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class TextSetting extends Setting{
|
||||||
|
String def;
|
||||||
|
Cons<String> changed;
|
||||||
|
|
||||||
|
public TextSetting(String name, String def, Cons<String> changed){
|
||||||
|
super(name);
|
||||||
|
this.def = def;
|
||||||
|
this.changed = changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(SettingsTable table){
|
||||||
|
TextField field = new TextField();
|
||||||
|
|
||||||
|
field.update(() -> field.setText(settings.getString(name)));
|
||||||
|
|
||||||
|
field.changed(() -> {
|
||||||
|
settings.put(name, field.getText());
|
||||||
|
if(changed != null){
|
||||||
|
changed.get(field.getText());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Table prefTable = table.table().left().padTop(3f).get();
|
||||||
|
prefTable.add(field);
|
||||||
|
prefTable.label(() -> title);
|
||||||
|
addDesc(prefTable);
|
||||||
|
table.row();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AreaTextSetting extends TextSetting{
|
||||||
|
public AreaTextSetting(String name, String def, Cons<String> changed){
|
||||||
|
super(name, def, changed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(SettingsTable table){
|
||||||
|
TextArea area = new TextArea("");
|
||||||
|
area.setPrefRows(5);
|
||||||
|
|
||||||
|
area.update(() -> {
|
||||||
|
area.setText(settings.getString(name));
|
||||||
|
area.setWidth(table.getWidth());
|
||||||
|
});
|
||||||
|
|
||||||
|
area.changed(() -> {
|
||||||
|
settings.put(name, area.getText());
|
||||||
|
if(changed != null){
|
||||||
|
changed.get(area.getText());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
addDesc(table.label(() -> title).left().padTop(3f).get());
|
||||||
|
table.row().add(area).left();
|
||||||
|
table.row();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ public class BlockConfigFragment extends Fragment{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showConfig(Building tile){
|
public void showConfig(Building tile){
|
||||||
|
if(configTile != null) configTile.onConfigureClosed();
|
||||||
if(tile.configTapped()){
|
if(tile.configTapped()){
|
||||||
configTile = tile;
|
configTile = tile;
|
||||||
|
|
||||||
@@ -82,6 +83,7 @@ public class BlockConfigFragment extends Fragment{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void hideConfig(){
|
public void hideConfig(){
|
||||||
|
if(configTile != null) configTile.onConfigureClosed();
|
||||||
configTile = null;
|
configTile = null;
|
||||||
table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interp.pow3Out), Actions.visible(false));
|
table.actions(Actions.scaleTo(0f, 1f, 0.06f, Interp.pow3Out), Actions.visible(false));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class Block extends UnlockableContent{
|
|||||||
public boolean autoResetEnabled = true;
|
public boolean autoResetEnabled = true;
|
||||||
/** if true, the block stops updating when disabled */
|
/** if true, the block stops updating when disabled */
|
||||||
public boolean noUpdateDisabled = false;
|
public boolean noUpdateDisabled = false;
|
||||||
/** if true, this block updates when a payload of a unit. Currently unused! */
|
/** if true, this block updates when it's a payload in a unit. Currently unused! */
|
||||||
public boolean updateInUnits = true;
|
public boolean updateInUnits = true;
|
||||||
/** Whether to use this block's color in the minimap. Only used for overlays. */
|
/** Whether to use this block's color in the minimap. Only used for overlays. */
|
||||||
public boolean useColor = true;
|
public boolean useColor = true;
|
||||||
@@ -395,7 +395,7 @@ public class Block extends UnlockableContent{
|
|||||||
return hasItems;
|
return hasItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns whether or not this block can be place on the specified */
|
/** @return whether or not this block can be placed on the specified tile. */
|
||||||
public boolean canPlaceOn(Tile tile, Team team, int rotation){
|
public boolean canPlaceOn(Tile tile, Team team, int rotation){
|
||||||
return canPlaceOn(tile, team);
|
return canPlaceOn(tile, team);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ public class Attributes implements JsonSerializable{
|
|||||||
|
|
||||||
public void add(Attributes other){
|
public void add(Attributes other){
|
||||||
check();
|
check();
|
||||||
|
other.check();
|
||||||
for(int i = 0; i < arr.length; i++){
|
for(int i = 0; i < arr.length; i++){
|
||||||
arr[i] += other.arr[i];
|
arr[i] += other.arr[i];
|
||||||
}
|
}
|
||||||
@@ -32,6 +33,7 @@ public class Attributes implements JsonSerializable{
|
|||||||
|
|
||||||
public void add(Attributes other, float scl){
|
public void add(Attributes other, float scl){
|
||||||
check();
|
check();
|
||||||
|
other.check();
|
||||||
for(int i = 0; i < arr.length; i++){
|
for(int i = 0; i < arr.length; i++){
|
||||||
arr[i] += other.arr[i] * scl;
|
arr[i] += other.arr[i] * scl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public class ItemTurret extends Turret{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class ItemEntry extends AmmoEntry{
|
public class ItemEntry extends AmmoEntry{
|
||||||
protected Item item;
|
public Item item;
|
||||||
|
|
||||||
ItemEntry(Item item, int amount){
|
ItemEntry(Item item, int amount){
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class PointDefenseTurret extends ReloadTurret{
|
|||||||
public final int timerTarget = timers++;
|
public final int timerTarget = timers++;
|
||||||
public float retargetTime = 5f;
|
public float retargetTime = 5f;
|
||||||
|
|
||||||
public @Load("block-@size") TextureRegion baseRegion;
|
public @Load(value = "@-base", fallback = "block-@size") TextureRegion baseRegion;
|
||||||
|
|
||||||
public Color color = Color.white;
|
public Color color = Color.white;
|
||||||
public Effect beamEffect = Fx.pointBeam;
|
public Effect beamEffect = Fx.pointBeam;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class TractorBeamTurret extends BaseTurret{
|
|||||||
public Sound shootSound = Sounds.tractorbeam;
|
public Sound shootSound = Sounds.tractorbeam;
|
||||||
public float shootSoundVolume = 0.9f;
|
public float shootSoundVolume = 0.9f;
|
||||||
|
|
||||||
public @Load("block-@size") TextureRegion baseRegion;
|
public @Load(value = "@-base", fallback = "block-@size") TextureRegion baseRegion;
|
||||||
public @Load("@-laser") TextureRegion laser;
|
public @Load("@-laser") TextureRegion laser;
|
||||||
public @Load(value = "@-laser-start", fallback = "@-laser-end") TextureRegion laserStart;
|
public @Load(value = "@-laser-start", fallback = "@-laser-end") TextureRegion laserStart;
|
||||||
public @Load("@-laser-end") TextureRegion laserEnd;
|
public @Load("@-laser-end") TextureRegion laserEnd;
|
||||||
@@ -127,7 +127,7 @@ public class TractorBeamTurret extends BaseTurret{
|
|||||||
}
|
}
|
||||||
|
|
||||||
any = true;
|
any = true;
|
||||||
target.impulseNet(Tmp.v1.set(this).sub(target).limit((force + (1f - target.dst(this) / range) * scaledForce) * edelta() * timeScale));
|
target.impulseNet(Tmp.v1.set(this).sub(target).limit((force + (1f - target.dst(this) / range) * scaledForce) * edelta()));
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
strength = Mathf.lerpDelta(strength, 0, 0.1f);
|
strength = Mathf.lerpDelta(strength, 0, 0.1f);
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ public class Turret extends ReloadTurret{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(hasAmmo()){
|
if(hasAmmo()){
|
||||||
if(Float.isNaN(reload)) rotation = 0;
|
if(Float.isNaN(reload)) reload = 0;
|
||||||
|
|
||||||
if(timer(timerTarget, targetInterval)){
|
if(timer(timerTarget, targetInterval)){
|
||||||
findTarget();
|
findTarget();
|
||||||
@@ -420,7 +420,7 @@ public class Turret extends ReloadTurret{
|
|||||||
Time.run(burstSpacing * i, () -> {
|
Time.run(burstSpacing * i, () -> {
|
||||||
if(dead || !hasAmmo()) return;
|
if(dead || !hasAmmo()) return;
|
||||||
tr.trns(rotation, shootLength, Mathf.range(xRand));
|
tr.trns(rotation, shootLength, Mathf.range(xRand));
|
||||||
bullet(type, rotation + Mathf.range(inaccuracy + type.inaccuracy) + (ii - (int)(shots / 2f)) * spread);
|
bullet(peekAmmo(), rotation + Mathf.range(inaccuracy + peekAmmo().inaccuracy) + (ii - (int)(shots / 2f)) * spread);
|
||||||
effects();
|
effects();
|
||||||
useAmmo();
|
useAmmo();
|
||||||
recoil = recoilAmount;
|
recoil = recoilAmount;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public class LogicDisplay extends Block{
|
|||||||
public int maxSides = 25;
|
public int maxSides = 25;
|
||||||
|
|
||||||
public int displaySize = 64;
|
public int displaySize = 64;
|
||||||
|
public float scaleFactor = 1f;
|
||||||
|
|
||||||
public LogicDisplay(String name){
|
public LogicDisplay(String name){
|
||||||
super(name);
|
super(name);
|
||||||
@@ -102,7 +103,7 @@ public class LogicDisplay extends Block{
|
|||||||
Draw.blend(Blending.disabled);
|
Draw.blend(Blending.disabled);
|
||||||
Draw.draw(Draw.z(), () -> {
|
Draw.draw(Draw.z(), () -> {
|
||||||
if(buffer != null){
|
if(buffer != null){
|
||||||
Draw.rect(Draw.wrap(buffer.getTexture()), x, y, buffer.getWidth() * Draw.scl, -buffer.getHeight() * Draw.scl);
|
Draw.rect(Draw.wrap(buffer.getTexture()), x, y, buffer.getWidth() * scaleFactor * Draw.scl, -buffer.getHeight() * scaleFactor * Draw.scl);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Draw.blend();
|
Draw.blend();
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class LightBlock extends Block{
|
|||||||
@Override
|
@Override
|
||||||
public void control(LAccess type, double p1, double p2, double p3, double p4){
|
public void control(LAccess type, double p1, double p2, double p3, double p4){
|
||||||
if(type == LAccess.color){
|
if(type == LAccess.color){
|
||||||
color = Color.rgba8888((float)p1, (float)p2, (float)p3, 1f);
|
color = Color.rgba8888(Mathf.clamp((float)p1), Mathf.clamp((float)p2), Mathf.clamp((float)p3), 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
super.control(type, p1, p2, p3, p4);
|
super.control(type, p1, p2, p3, p4);
|
||||||
|
|||||||
@@ -84,8 +84,6 @@ public class PowerNode extends PowerBlock{
|
|||||||
});
|
});
|
||||||
|
|
||||||
config(Point2[].class, (tile, value) -> {
|
config(Point2[].class, (tile, value) -> {
|
||||||
tile.power.links.clear();
|
|
||||||
|
|
||||||
IntSeq old = new IntSeq(tile.power.links);
|
IntSeq old = new IntSeq(tile.power.links);
|
||||||
|
|
||||||
//clear old
|
//clear old
|
||||||
@@ -357,7 +355,7 @@ public class PowerNode extends PowerBlock{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void placed(){
|
public void placed(){
|
||||||
if(net.client()) return;
|
if(net.client() || power.links.size > 0) return;
|
||||||
|
|
||||||
getPotentialLinks(tile, team, other -> {
|
getPotentialLinks(tile, team, other -> {
|
||||||
if(!power.links.contains(other.pos())){
|
if(!power.links.contains(other.pos())){
|
||||||
@@ -386,15 +384,15 @@ public class PowerNode extends PowerBlock{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this == other){
|
if(this == other){ //double tapped
|
||||||
if(other.power.links.size == 0){
|
if(other.power.links.size == 0 || Core.input.shift()){ //find links
|
||||||
int[] total = {0};
|
int[] total = {0};
|
||||||
getPotentialLinks(tile, team, link -> {
|
getPotentialLinks(tile, team, link -> {
|
||||||
if(!insulated(this, link) && total[0]++ < maxNodes){
|
if(!insulated(this, link) && total[0]++ < maxNodes){
|
||||||
configure(link.pos());
|
configure(link.pos());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else{
|
}else{ //clear links
|
||||||
while(power.links.size > 0){
|
while(power.links.size > 0){
|
||||||
configure(power.links.get(0));
|
configure(power.links.get(0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ public class Drill extends Block{
|
|||||||
return new TextureRegion[]{region, rotatorRegion, topRegion};
|
return new TextureRegion[]{region, rotatorRegion, topRegion};
|
||||||
}
|
}
|
||||||
|
|
||||||
void countOre(Tile tile){
|
protected void countOre(Tile tile){
|
||||||
returnItem = null;
|
returnItem = null;
|
||||||
returnCount = 0;
|
returnCount = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ public class LiquidConverter extends GenericCrafter{
|
|||||||
|
|
||||||
ConsumeLiquid cl = consumes.get(ConsumeType.liquid);
|
ConsumeLiquid cl = consumes.get(ConsumeType.liquid);
|
||||||
cl.update(false);
|
cl.update(false);
|
||||||
outputLiquid.amount = cl.amount;
|
|
||||||
super.init();
|
super.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ public class CoreBlock extends StorageBlock{
|
|||||||
@Override
|
@Override
|
||||||
public boolean canReplace(Block other){
|
public boolean canReplace(Block other){
|
||||||
//coreblocks can upgrade smaller cores
|
//coreblocks can upgrade smaller cores
|
||||||
return super.canReplace(other) || (other instanceof CoreBlock && size > other.size);
|
return super.canReplace(other) || (other instanceof CoreBlock && size >= other.size && other != this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ public class StorageBlock extends Block{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMaximumAccepted(Item item){
|
public int getMaximumAccepted(Item item){
|
||||||
return itemCapacity;
|
return linkedCore != null ? linkedCore.getMaximumAccepted(item) : itemCapacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ public enum StatUnit{
|
|||||||
degrees,
|
degrees,
|
||||||
seconds,
|
seconds,
|
||||||
minutes,
|
minutes,
|
||||||
perSecond,
|
perSecond(false),
|
||||||
perMinute,
|
perMinute(false),
|
||||||
perShot(false),
|
perShot(false),
|
||||||
timesSpeed(false),
|
timesSpeed(false),
|
||||||
percent(false),
|
percent(false),
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ public class StatValues{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(type.status != StatusEffects.none){
|
if(type.status != StatusEffects.none){
|
||||||
sep(bt, (type.minfo.mod == null ? type.status.emoji() : "") + "[stat]" + type.status.localizedName);
|
sep(bt, (type.status.minfo.mod == null ? type.status.emoji() : "") + "[stat]" + type.status.localizedName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(type.fragBullet != null){
|
if(type.fragBullet != null){
|
||||||
|
|||||||
@@ -105,11 +105,8 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Events.on(WaveEvent.class, e -> {
|
Events.on(WaveEvent.class, e -> updateWave());
|
||||||
if(currentLobby != null && net.server()){
|
Events.run(Trigger.newGame, this::updateWave);
|
||||||
smat.setLobbyData(currentLobby, "wave", state.wave + "");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSteamClient(){
|
public boolean isSteamClient(){
|
||||||
@@ -202,6 +199,14 @@ public class SNet implements SteamNetworkingCallback, SteamMatchmakingCallback,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateWave(){
|
||||||
|
if(currentLobby != null && net.server()){
|
||||||
|
smat.setLobbyData(currentLobby, "mapname", state.map.name());
|
||||||
|
smat.setLobbyData(currentLobby, "wave", state.wave + "");
|
||||||
|
smat.setLobbyData(currentLobby, "gamemode", state.rules.mode().name() + "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void closeServer(){
|
public void closeServer(){
|
||||||
provider.closeServer();
|
provider.closeServer();
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ kapt.include.compile.classpath=false
|
|||||||
kotlin.stdlib.default.dependency=false
|
kotlin.stdlib.default.dependency=false
|
||||||
#needed for android compilation
|
#needed for android compilation
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
|
org.gradle.caching=true
|
||||||
#used for slow jitpack builds; TODO see if this actually works
|
#used for slow jitpack builds; TODO see if this actually works
|
||||||
org.gradle.internal.http.socketTimeout=100000
|
org.gradle.internal.http.socketTimeout=100000
|
||||||
org.gradle.internal.http.connectionTimeout=100000
|
org.gradle.internal.http.connectionTimeout=100000
|
||||||
archash=916c5a77
|
archash=476ab38cea
|
||||||
|
|||||||
@@ -45,6 +45,14 @@ public class ServerControl implements ApplicationListener{
|
|||||||
public final CommandHandler handler = new CommandHandler("");
|
public final CommandHandler handler = new CommandHandler("");
|
||||||
public final Fi logFolder = Core.settings.getDataDirectory().child("logs/");
|
public final Fi logFolder = Core.settings.getDataDirectory().child("logs/");
|
||||||
|
|
||||||
|
public Runnable serverInput = () -> {
|
||||||
|
Scanner scan = new Scanner(System.in);
|
||||||
|
while(scan.hasNext()){
|
||||||
|
String line = scan.nextLine();
|
||||||
|
Core.app.post(() -> handleCommandString(line));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private Fi currentLogFile;
|
private Fi currentLogFile;
|
||||||
private boolean inExtraRound;
|
private boolean inExtraRound;
|
||||||
private Task lastTask;
|
private Task lastTask;
|
||||||
@@ -147,10 +155,6 @@ public class ServerControl implements ApplicationListener{
|
|||||||
|
|
||||||
customMapDirectory.mkdirs();
|
customMapDirectory.mkdirs();
|
||||||
|
|
||||||
Thread thread = new Thread(this::readCommands, "Server Controls");
|
|
||||||
thread.setDaemon(true);
|
|
||||||
thread.start();
|
|
||||||
|
|
||||||
if(Version.build == -1){
|
if(Version.build == -1){
|
||||||
warn("&lyYour server is running a custom build, which means that client checking is disabled.");
|
warn("&lyYour server is running a custom build, which means that client checking is disabled.");
|
||||||
warn("&lyIt is highly advised to specify which version you're using by building with gradle args &lb&fb-Pbuildversion=&lr<build>");
|
warn("&lyIt is highly advised to specify which version you're using by building with gradle args &lb&fb-Pbuildversion=&lr<build>");
|
||||||
@@ -258,7 +262,13 @@ public class ServerControl implements ApplicationListener{
|
|||||||
|
|
||||||
toggleSocket(Config.socketInput.bool());
|
toggleSocket(Config.socketInput.bool());
|
||||||
|
|
||||||
|
Events.on(ServerLoadEvent.class, e -> {
|
||||||
|
Thread thread = new Thread(serverInput, "Server Controls");
|
||||||
|
thread.setDaemon(true);
|
||||||
|
thread.start();
|
||||||
|
|
||||||
info("Server loaded. Type @ for help.", "'help'");
|
info("Server loaded. Type @ for help.", "'help'");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void registerCommands(){
|
protected void registerCommands(){
|
||||||
@@ -397,17 +407,16 @@ public class ServerControl implements ApplicationListener{
|
|||||||
info(" Playing on map &fi@ / Wave @", Strings.capitalize(Strings.stripColors(state.map.name())), state.wave);
|
info(" Playing on map &fi@ / Wave @", Strings.capitalize(Strings.stripColors(state.map.name())), state.wave);
|
||||||
|
|
||||||
if(state.rules.waves){
|
if(state.rules.waves){
|
||||||
info(" @ enemies.", state.enemies);
|
|
||||||
}else{
|
|
||||||
info(" @ seconds until next wave.", (int)(state.wavetime / 60));
|
info(" @ seconds until next wave.", (int)(state.wavetime / 60));
|
||||||
}
|
}
|
||||||
|
info(" @ units / @ enemies", Groups.unit.size(), state.enemies);
|
||||||
|
|
||||||
info(" @ FPS, @ MB used.", Core.graphics.getFramesPerSecond(), Core.app.getJavaHeap() / 1024 / 1024);
|
info(" @ FPS, @ MB used.", Core.graphics.getFramesPerSecond(), Core.app.getJavaHeap() / 1024 / 1024);
|
||||||
|
|
||||||
if(Groups.player.size() > 0){
|
if(Groups.player.size() > 0){
|
||||||
info(" Players: @", Groups.player.size());
|
info(" Players: @", Groups.player.size());
|
||||||
for(Player p : Groups.player){
|
for(Player p : Groups.player){
|
||||||
info(" @ / @", p.name, p.uuid());
|
info(" @ @ / @", p.admin() ? "&r[A]&c" : "&b[P]&c", p.plainName(), p.uuid());
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
info(" No players connected.");
|
info(" No players connected.");
|
||||||
@@ -456,7 +465,6 @@ public class ServerControl implements ApplicationListener{
|
|||||||
info("&fi&lcServer: &fr@", "&lw" + arg[0]);
|
info("&fi&lcServer: &fr@", "&lw" + arg[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
handler.register("pause", "<on/off>", "Pause or unpause the game.", arg -> {
|
handler.register("pause", "<on/off>", "Pause or unpause the game.", arg -> {
|
||||||
boolean pause = arg[0].equals("on");
|
boolean pause = arg[0].equals("on");
|
||||||
state.serverPaused = pause;
|
state.serverPaused = pause;
|
||||||
@@ -576,7 +584,9 @@ public class ServerControl implements ApplicationListener{
|
|||||||
if(arg.length == 1){
|
if(arg.length == 1){
|
||||||
info("'@' is currently @.", c.name(), c.get());
|
info("'@' is currently @.", c.name(), c.get());
|
||||||
}else{
|
}else{
|
||||||
if(c.isBool()){
|
if(arg[1].equals("default")){
|
||||||
|
c.set(c.defaultValue);
|
||||||
|
}else if(c.isBool()){
|
||||||
c.set(arg[1].equals("on") || arg[1].equals("true"));
|
c.set(arg[1].equals("on") || arg[1].equals("true"));
|
||||||
}else if(c.isNum()){
|
}else if(c.isNum()){
|
||||||
try{
|
try{
|
||||||
@@ -636,7 +646,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
info("No whitelisted players found.");
|
info("No whitelisted players found.");
|
||||||
}else{
|
}else{
|
||||||
info("Whitelist:");
|
info("Whitelist:");
|
||||||
whitelist.each(p -> info("- Name: @ / UUID: @", p.lastName, p.id));
|
whitelist.each(p -> info("- Name: @ / UUID: @", p.plainLastName(), p.id));
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(arg.length == 2){
|
if(arg.length == 2){
|
||||||
@@ -647,10 +657,10 @@ public class ServerControl implements ApplicationListener{
|
|||||||
}else{
|
}else{
|
||||||
if(arg[0].equals("add")){
|
if(arg[0].equals("add")){
|
||||||
netServer.admins.whitelist(arg[1]);
|
netServer.admins.whitelist(arg[1]);
|
||||||
info("Player '@' has been whitelisted.", info.lastName);
|
info("Player '@' has been whitelisted.", info.plainLastName());
|
||||||
}else if(arg[0].equals("remove")){
|
}else if(arg[0].equals("remove")){
|
||||||
netServer.admins.unwhitelist(arg[1]);
|
netServer.admins.unwhitelist(arg[1]);
|
||||||
info("Player '@' has been un-whitelisted.", info.lastName);
|
info("Player '@' has been un-whitelisted.", info.plainLastName());
|
||||||
}else{
|
}else{
|
||||||
err("Incorrect usage. Provide add/remove as the second argument.");
|
err("Incorrect usage. Provide add/remove as the second argument.");
|
||||||
}
|
}
|
||||||
@@ -739,7 +749,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
}else{
|
}else{
|
||||||
info("Banned players [ID]:");
|
info("Banned players [ID]:");
|
||||||
for(PlayerInfo info : bans){
|
for(PlayerInfo info : bans){
|
||||||
info(" @ / Last known name: '@'", info.id, info.lastName);
|
info(" @ / Last known name: '@'", info.id, info.plainLastName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -752,7 +762,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
for(String string : ipbans){
|
for(String string : ipbans){
|
||||||
PlayerInfo info = netServer.admins.findByIP(string);
|
PlayerInfo info = netServer.admins.findByIP(string);
|
||||||
if(info != null){
|
if(info != null){
|
||||||
info(" '@' / Last known name: '@' / ID: '@'", string, info.lastName, info.id);
|
info(" '@' / Last known name: '@' / ID: '@'", string, info.plainLastName(), info.id);
|
||||||
}else{
|
}else{
|
||||||
info(" '@' (No known name or info)", string);
|
info(" '@' (No known name or info)", string);
|
||||||
}
|
}
|
||||||
@@ -773,7 +783,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
|
|
||||||
if(info != null){
|
if(info != null){
|
||||||
info.lastKicked = 0;
|
info.lastKicked = 0;
|
||||||
info("Pardoned player: @", info.lastName);
|
info("Pardoned player: @", info.plainLastName());
|
||||||
}else{
|
}else{
|
||||||
err("That ID can't be found.");
|
err("That ID can't be found.");
|
||||||
}
|
}
|
||||||
@@ -793,7 +803,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
boolean add = arg[0].equals("add");
|
boolean add = arg[0].equals("add");
|
||||||
|
|
||||||
PlayerInfo target;
|
PlayerInfo target;
|
||||||
Player playert = Groups.player.find(p -> p.name.equalsIgnoreCase(arg[1]));
|
Player playert = Groups.player.find(p -> p.plainName().equalsIgnoreCase(Strings.stripColors(arg[1])));
|
||||||
if(playert != null){
|
if(playert != null){
|
||||||
target = playert.getInfo();
|
target = playert.getInfo();
|
||||||
}else{
|
}else{
|
||||||
@@ -808,7 +818,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
netServer.admins.unAdminPlayer(target.id);
|
netServer.admins.unAdminPlayer(target.id);
|
||||||
}
|
}
|
||||||
if(playert != null) playert.admin = add;
|
if(playert != null) playert.admin = add;
|
||||||
info("Changed admin status of player: @", target.lastName);
|
info("Changed admin status of player: @", target.plainLastName());
|
||||||
}else{
|
}else{
|
||||||
err("Nobody with that name or ID could be found. If adding an admin by name, make sure they're online; otherwise, use their UUID.");
|
err("Nobody with that name or ID could be found. If adding an admin by name, make sure they're online; otherwise, use their UUID.");
|
||||||
}
|
}
|
||||||
@@ -822,7 +832,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
}else{
|
}else{
|
||||||
info("Admins:");
|
info("Admins:");
|
||||||
for(PlayerInfo info : admins){
|
for(PlayerInfo info : admins){
|
||||||
info(" &lm @ / ID: '@' / IP: '@'", info.lastName, info.id, info.lastIP);
|
info(" &lm @ / ID: '@' / IP: '@'", info.plainLastName(), info.id, info.lastIP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -834,7 +844,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
info("Players: @", Groups.player.size());
|
info("Players: @", Groups.player.size());
|
||||||
for(Player user : Groups.player){
|
for(Player user : Groups.player){
|
||||||
PlayerInfo userInfo = user.getInfo();
|
PlayerInfo userInfo = user.getInfo();
|
||||||
info(" &lm @ / ID: @ / IP: @ / Admin: @", userInfo.lastName, userInfo.id, userInfo.lastIP, userInfo.admin);
|
info(" @&lm @ / ID: @ / IP: @", userInfo.admin ? "&r[A]&c" : "&b[P]&c", userInfo.plainLastName(), userInfo.id, userInfo.lastIP, userInfo.admin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -916,7 +926,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(PlayerInfo info : infos){
|
for(PlayerInfo info : infos){
|
||||||
info("[@] Trace info for player '@' / UUID @", i++, info.lastName, info.id);
|
info("[@] Trace info for player '@' / UUID @ / RAW @", i++, info.plainLastName(), info.id, info.lastName);
|
||||||
info(" all names used: @", info.names);
|
info(" all names used: @", info.names);
|
||||||
info(" IP: @", info.lastIP);
|
info(" IP: @", info.lastIP);
|
||||||
info(" all IPs used: @", info.ips);
|
info(" all IPs used: @", info.ips);
|
||||||
@@ -936,7 +946,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(PlayerInfo info : infos){
|
for(PlayerInfo info : infos){
|
||||||
info("- [@] '@' / @", i++, info.lastName, info.id);
|
info("- [@] '@' / @", i++, info.plainLastName(), info.id);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
info("Nobody with that name could be found.");
|
info("Nobody with that name could be found.");
|
||||||
@@ -961,15 +971,7 @@ public class ServerControl implements ApplicationListener{
|
|||||||
mods.eachClass(p -> p.registerServerCommands(handler));
|
mods.eachClass(p -> p.registerServerCommands(handler));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readCommands(){
|
public void handleCommandString(String line){
|
||||||
Scanner scan = new Scanner(System.in);
|
|
||||||
while(scan.hasNext()){
|
|
||||||
String line = scan.nextLine();
|
|
||||||
Core.app.post(() -> handleCommandString(line));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void handleCommandString(String line){
|
|
||||||
CommandResponse response = handler.handleMessage(line);
|
CommandResponse response = handler.handleMessage(line);
|
||||||
|
|
||||||
if(response.type == ResponseType.unknownCommand){
|
if(response.type == ResponseType.unknownCommand){
|
||||||
|
|||||||
@@ -10,5 +10,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"address": "c-n.ddns.net:6567"
|
"address": "c-n.ddns.net:6567"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"address": "xpdustry.fr:8000"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,11 +1,23 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "Sectorized",
|
||||||
|
"address": ["sectorized.ddns.net"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "{AA}",
|
||||||
|
"address": ["recessive.net"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Yeet Hosting",
|
||||||
|
"address": ["omegam.mindustry.me:5004", "omegav.mindustry.me:25575", "omegav.mindustry.me:25568"]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "RCM",
|
"name": "RCM",
|
||||||
"address": ["185.104.248.61", "easyplay.su"]
|
"address": ["185.104.248.61", "easyplay.su"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "{AA}",
|
"name": "Tendhost",
|
||||||
"address": ["aamindustry.play.ai", "aamindustry.play.ai:6571", "aamindustry.play.ai:6572", "aamindustry.play.ai:6573", "aamindustry.play.ai:6574"]
|
"address": ["tendhost.ddns.net"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Atanner",
|
"name": "Atanner",
|
||||||
@@ -29,15 +41,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "TWS",
|
"name": "TWS",
|
||||||
"address": ["twsmindustry.24x7.hk:6701", "twsmindustry.24x7.hk:6702"]
|
"address": ["twsmindustry.24x7.hk:6701", "twsmindustry.24x7.hk:6702", "twsmindustry.24x7.hk:6969"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mindustry.ddns.net",
|
"name": "mindustry.ddns.net",
|
||||||
"address": ["mindustry.ddns.net", "mindustry.ddns.net:1000", "mindustry.ddns.net:2000", "mindustry.ddns.net:3000", "mindustry.ddns.net:4000"]
|
"address": ["mindustry.ddns.net", "mindustry.ddns.net:1000", "mindustry.ddns.net:2000", "mindustry.ddns.net:3000", "mindustry.ddns.net:4000"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Surrealment",
|
"name": "Surrealment v6",
|
||||||
"address": ["md.surrealment.com"]
|
"address": ["md.surrealment.com:6566"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ALEX",
|
"name": "ALEX",
|
||||||
@@ -53,7 +65,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Omega",
|
"name": "Omega",
|
||||||
"address": ["yeeth.mindustry.me:2004","185.86.230.61:25570"]
|
"address": ["omegav.mindustry.me:6572"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Obvilion Network",
|
"name": "Obvilion Network",
|
||||||
@@ -69,7 +81,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "TSR",
|
"name": "TSR",
|
||||||
"address": ["ult4.falix.gg:26904"]
|
"address": ["us01.optik.host:26194", "uk01.optik.host:26164"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Sakura",
|
"name": "Sakura",
|
||||||
@@ -85,7 +97,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Hungarian",
|
"name": "Hungarian",
|
||||||
"address": ["survival.humindustry.tk", "148.251.175.124:25601"]
|
"address": ["play.hudustry.tk"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Xpdustry",
|
"name": "Xpdustry",
|
||||||
@@ -97,11 +109,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Mindustry Español",
|
"name": "Mindustry Español",
|
||||||
"address": ["panel.mindustry.me:2011", "yeeth.mindustry.me:6573", "panel.mindustry.me:2000", "panel.mindustry.me:2026"]
|
"address": ["xpdustry.fr:9000"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "CreateDustry",
|
"name": "CreateDustry",
|
||||||
"address": ["144.76.120.74:18645"]
|
"address": ["129.151.66.139:26032"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "NukeDustry",
|
"name": "NukeDustry",
|
||||||
@@ -109,7 +121,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "MindustryBR",
|
"name": "MindustryBR",
|
||||||
"address": ["mindustryptbr.ddns.net", "mindustryptbr.myddns.me", "n2.mindustry.me:4002", "n2.mindustry.me:4007"]
|
"address": ["mindustryptbr.ddns.net:25579"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Conservatory",
|
"name": "Conservatory",
|
||||||
@@ -117,10 +129,14 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Shard",
|
"name": "Shard",
|
||||||
"address": ["shard.mcv.kr"]
|
"address": ["59.12.120.171"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "OMNIDUSTRY",
|
"name": "OMNIDUSTRY",
|
||||||
"address": ["109.94.209.233"]
|
"address": ["109.94.209.233"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Fish",
|
||||||
|
"address": ["170.187.144.235"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,29 +3,29 @@
|
|||||||
"name": "mindustry.pl",
|
"name": "mindustry.pl",
|
||||||
"address": ["0.baseduser.eu.org:6000", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6966"]
|
"address": ["0.baseduser.eu.org:6000", "0.baseduser.eu.org:6666", "0.baseduser.eu.org:6966"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "SkaarjDustry",
|
|
||||||
"address": ["skaarjproject.duckdns.org"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "C.A.M.S.",
|
"name": "C.A.M.S.",
|
||||||
"address": ["baseduser.eu.org:6569", "v7.thedimas.pp.ua", "yeeth.mindustry.me:7000", "yeeth.mindustry.me:4000", "yeeth.mindustry.me:2000", "yeeth.mindustry.me:3000"]
|
"address": ["baseduser.eu.org:6569", "v7.thedimas.pp.ua", "yeeth.mindustry.me:7000", "yeeth.mindustry.me:4000", "yeeth.mindustry.me:2000", "yeeth.mindustry.me:3000"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "SMokeOfAnarchy",
|
||||||
|
"address": "SMokeOfAnarchy.ru"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "hexpvp.ml",
|
"name": "hexpvp.ml",
|
||||||
"address": "hexpvp.ml"
|
"address": "hexpvp.ml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Omega",
|
"name": "Omega",
|
||||||
"address": ["yeeth.mindustry.me", "yeeth.mindustry.me:2006", "yeeth.mindustry.me:2003","yeeth.mindustry.me:2002", "yeeth.mindustry.me:2001", "yeeth.mindustry.me:2007", "yeeth.mindustry.me:2005"]
|
"address": ["omegam.mindustry.me:25577", "omegam.mindustry.me", "omegam.mindustry.me:25586", "omegam.mindustry.me:25565"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "MeowLand",
|
"name": "MeowLand",
|
||||||
"address": ["34.134.111.15", "fifr4.quackhost.uk:21013", "34.134.111.15:4000", "34.134.111.15:7000"]
|
"address": ["kgstudios.ddns.net:6565"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "DarkDustry",
|
"name": "DarkDustry",
|
||||||
"address": ["darkdustry.ml", "darkdustry.ml:6000", "darkdustry.ml:7000", "darkdustry.ml:8000", "darkdustry.ml:9000"]
|
"address": ["darkdustry.ml", "darkdustry.ml:5000", "darkdustry.ml:6000", "darkdustry.ml:7000", "darkdustry.ml:8000", "darkdustry.ml:9000"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Chaotic Neutral",
|
"name": "Chaotic Neutral",
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "XCore",
|
"name": "XCore",
|
||||||
"address": ["skaarjproject.duckdns.org:2000"]
|
"address": ["sandbox.xcore.tk:2707", "attack.xcore.tk:8141"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Obvilion Network",
|
"name": "Obvilion Network",
|
||||||
@@ -51,13 +51,9 @@
|
|||||||
"name": "SubZero",
|
"name": "SubZero",
|
||||||
"address": ["minty-server.ddns.net"]
|
"address": ["minty-server.ddns.net"]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Shiza Minigames",
|
|
||||||
"address": ["shizashizashiza.ml"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Phoenix Network",
|
"name": "Phoenix Network",
|
||||||
"address": ["172.104.253.198"]
|
"address": ["172.104.253.198", "172.104.253.198:6464"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Xpdustry",
|
"name": "Xpdustry",
|
||||||
@@ -69,10 +65,30 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "MindustryBR",
|
"name": "MindustryBR",
|
||||||
"address": ["n2.mindustry.me:4003", "n2.mindustry.me:4005", "n2.mindustry.me:4008", "panel.mindustry.me:2005", "n2.mindustry.me:4010"]
|
"address": ["mindustryptbr.myddns.me"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LostDustry",
|
"name": "LostDustry",
|
||||||
"address": ["lostdustry.northeurope.cloudapp.azure.com:6568", "lostdustry.northeurope.cloudapp.azure.com:6569", "lostdustry.northeurope.cloudapp.azure.com:6570"]
|
"address": ["lostdustry.northeurope.cloudapp.azure.com:6568", "lostdustry.northeurope.cloudapp.azure.com:6569", "lostdustry.northeurope.cloudapp.azure.com:6570"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Doge Multiverse",
|
||||||
|
"address": ["v7.servegame.com:25578"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Beyond Anarchy",
|
||||||
|
"address": ["45.156.25.49"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "M-DE",
|
||||||
|
"address": ["mindustry.inc.li:6569", "mindustry.inc.li:6560"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Surrealment v7",
|
||||||
|
"address": ["md.surrealment.com:6567"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TinyLake",
|
||||||
|
"address": ["mdt.wayzer.cf"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -27,6 +27,6 @@ public class GenericModTest{
|
|||||||
static void checkExistence(String modName){
|
static void checkExistence(String modName){
|
||||||
assertNotEquals(Vars.mods, null);
|
assertNotEquals(Vars.mods, null);
|
||||||
assertNotEquals(Vars.mods.list().size, 0, "At least one mod must be loaded.");
|
assertNotEquals(Vars.mods.list().size, 0, "At least one mod must be loaded.");
|
||||||
assertEquals(Vars.mods.list().first().name, modName, modName + " must be loaded.");
|
assertEquals(modName, Vars.mods.list().first().name, modName + " must be loaded.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user