Merge branch 'master' of https://github.com/Anuken/Mindustry into maps_phase_2

This commit is contained in:
Epowerj
2022-08-05 17:06:47 -04:00
14 changed files with 214 additions and 168 deletions

View File

@@ -911,7 +911,7 @@ bar.capacity = Capacitat: {0}
bar.unitcap = {0} {1}/{2} bar.unitcap = {0} {1}/{2}
bar.liquid = Líquid bar.liquid = Líquid
bar.heat = Calor bar.heat = Calor
bar.instability = Instability bar.instability = Inestabilitat
bar.heatamount = Calor: {0} bar.heatamount = Calor: {0}
bar.heatpercent = Calor: {0} ({1} %) bar.heatpercent = Calor: {0} ({1} %)
bar.power = Potència bar.power = Potència
@@ -1317,7 +1317,7 @@ block.shrubs.name = Arbustos
block.spore-moss.name = Molsa d'espores block.spore-moss.name = Molsa d'espores
block.shale-wall.name = Mur esquistós block.shale-wall.name = Mur esquistós
block.scrap-wall.name = Mur de ferralla block.scrap-wall.name = Mur de ferralla
block.scrap-wall-large.name = Mur de ferralla gran block.scrap-wall-large.name = Mur de ferralla gros
block.scrap-wall-huge.name = Mur de ferralla enorme block.scrap-wall-huge.name = Mur de ferralla enorme
block.scrap-wall-gigantic.name = Mur de ferralla gegantí block.scrap-wall-gigantic.name = Mur de ferralla gegantí
block.thruster.name = Propulsor block.thruster.name = Propulsor
@@ -1377,15 +1377,15 @@ block.basalt.name = Basalt
block.hotrock.name = Roca calenta block.hotrock.name = Roca calenta
block.magmarock.name = Roca magmàtica block.magmarock.name = Roca magmàtica
block.copper-wall.name = Mur de coure block.copper-wall.name = Mur de coure
block.copper-wall-large.name = Mur de coure gran block.copper-wall-large.name = Mur de coure gros
block.titanium-wall.name = Mur de titani block.titanium-wall.name = Mur de titani
block.titanium-wall-large.name = Mur de titani gran block.titanium-wall-large.name = Mur de titani gros
block.plastanium-wall.name = Mur de plastani block.plastanium-wall.name = Mur de plastani
block.plastanium-wall-large.name = Mur de plastani gran block.plastanium-wall-large.name = Mur de plastani gros
block.phase-wall.name = Mur de fase block.phase-wall.name = Mur de fase
block.phase-wall-large.name = Mur de fase gran block.phase-wall-large.name = Mur de fase gros
block.thorium-wall.name = Mur de tori block.thorium-wall.name = Mur de tori
block.thorium-wall-large.name = Mur de tori gran block.thorium-wall-large.name = Mur de tori gros
block.door.name = Porta block.door.name = Porta
block.door-large.name = Porta gran block.door-large.name = Porta gran
block.duo.name = Duo block.duo.name = Duo
@@ -1416,11 +1416,11 @@ block.spore-press.name = Premsa d'espores
block.separator.name = Separadora block.separator.name = Separadora
block.coal-centrifuge.name = Centrífuga de carbó block.coal-centrifuge.name = Centrífuga de carbó
block.power-node.name = Node d'energia block.power-node.name = Node d'energia
block.power-node-large.name = Node d'energia gran block.power-node-large.name = Node d'energia gros
block.surge-tower.name = Torre electrificada block.surge-tower.name = Torre electrificada
block.diode.name = Díode de bateria block.diode.name = Díode de bateria
block.battery.name = Bateria block.battery.name = Bateria
block.battery-large.name = Bateria gran block.battery-large.name = Bateria grossa
block.combustion-generator.name = Generador a combustió block.combustion-generator.name = Generador a combustió
block.steam-generator.name = Generador a vapor block.steam-generator.name = Generador a vapor
block.differential-generator.name = Generador diferencial block.differential-generator.name = Generador diferencial
@@ -1439,7 +1439,7 @@ block.liquid-void.name = Eliminador de líquids
block.power-void.name = Eliminador d'energia block.power-void.name = Eliminador d'energia
block.power-source.name = Font d'energia block.power-source.name = Font d'energia
block.unloader.name = Descarregador block.unloader.name = Descarregador
block.vault.name = Contenidor gran block.vault.name = Contenidor gros
block.wave.name = Wave block.wave.name = Wave
block.tsunami.name = Tsunami block.tsunami.name = Tsunami
block.swarmer.name = Swarmer block.swarmer.name = Swarmer
@@ -1473,7 +1473,7 @@ block.surge-smelter.name = Forn d'aliatge electrificable
block.mender.name = Reparadora block.mender.name = Reparadora
block.mend-projector.name = Projector de reparacions block.mend-projector.name = Projector de reparacions
block.surge-wall.name = Mur d'aliatge electrificable block.surge-wall.name = Mur d'aliatge electrificable
block.surge-wall-large.name = Mur d'aliatge electrificable gran block.surge-wall-large.name = Mur d'aliatge electrificable gros
block.cyclone.name = Cicló block.cyclone.name = Cicló
block.fuse.name = Fuse block.fuse.name = Fuse
block.shock-mine.name = Mina de xoc block.shock-mine.name = Mina de xoc
@@ -1508,7 +1508,7 @@ block.overdrive-dome.name = Cúpula d'acceleració
block.interplanetary-accelerator.name = Accelerador interplanetari block.interplanetary-accelerator.name = Accelerador interplanetari
block.constructor.name = Constructor de blocs block.constructor.name = Constructor de blocs
block.constructor.description = Fabrica estructures de mida fins a 2×2 caselles. block.constructor.description = Fabrica estructures de mida fins a 2×2 caselles.
block.large-constructor.name = Constructor de blocs grans block.large-constructor.name = Constructor de blocs grossos
block.large-constructor.description = Fabrica estructures de mida fins a 4×4 caselles. block.large-constructor.description = Fabrica estructures de mida fins a 4×4 caselles.
block.deconstructor.name = Desconstructor de blocs block.deconstructor.name = Desconstructor de blocs
block.deconstructor.description = Desmunta estructures i unitats. Retorna el 100 % del cost de construcció. block.deconstructor.description = Desmunta estructures i unitats. Retorna el 100 % del cost de construcció.
@@ -1589,21 +1589,21 @@ block.cyanogen-synthesizer.name = Sintetitzador de cianogen
block.phase-synthesizer.name = Sintetitzador de fase block.phase-synthesizer.name = Sintetitzador de fase
block.heat-reactor.name = Reactor tèrmic block.heat-reactor.name = Reactor tèrmic
block.beryllium-wall.name = Mur de beril·li block.beryllium-wall.name = Mur de beril·li
block.beryllium-wall-large.name = Mur de beril·li gran block.beryllium-wall-large.name = Mur de beril·li gros
block.tungsten-wall.name = Mur de tungstè block.tungsten-wall.name = Mur de tungstè
block.tungsten-wall-large.name = Mur de tungstè gran block.tungsten-wall-large.name = Mur de tungstè gros
block.blast-door.name = Porta de compost explosiu block.blast-door.name = Porta de compost explosiu
block.carbide-wall.name = Mur de carbur block.carbide-wall.name = Mur de carbur
block.carbide-wall-large.name = Mur de carbur gran block.carbide-wall-large.name = Mur de carbur gros
block.reinforced-surge-wall.name = Mur d'aliatge electrificable reforçat block.reinforced-surge-wall.name = Mur d'aliatge electrificable reforçat
block.reinforced-surge-wall-large.name = Mur d'aliatge electrificable reforçat gran block.reinforced-surge-wall-large.name = Mur d'aliatge electrificable reforçat gros
block.shielded-wall.name = Mur blindat block.shielded-wall.name = Mur blindat
block.radar.name = Radar block.radar.name = Radar
block.build-tower.name = Torre de construcció block.build-tower.name = Torre de construcció
block.regen-projector.name = Projector de regeneració block.regen-projector.name = Projector de regeneració
block.shockwave-tower.name = Torre d'ona sísmica block.shockwave-tower.name = Torre d'ona sísmica
block.shield-projector.name = Projector d'escuts block.shield-projector.name = Projector d'escuts
block.large-shield-projector.name = Projector d'escuts gran block.large-shield-projector.name = Projector d'escuts gros
block.armored-duct.name = Conducte blindat block.armored-duct.name = Conducte blindat
block.overflow-duct.name = Desbordament de conducte block.overflow-duct.name = Desbordament de conducte
block.underflow-duct.name = Subdesbordament de conducte block.underflow-duct.name = Subdesbordament de conducte
@@ -1628,14 +1628,14 @@ block.pyrolysis-generator.name = Generador pirolític
block.vent-condenser.name = Respirador de condensació block.vent-condenser.name = Respirador de condensació
block.cliff-crusher.name = Picadora d'espadats block.cliff-crusher.name = Picadora d'espadats
block.plasma-bore.name = Perforadora de plasma block.plasma-bore.name = Perforadora de plasma
block.large-plasma-bore.name = Perforadora de plasma gran block.large-plasma-bore.name = Perforadora de plasma grossa
block.impact-drill.name = Perforadora d'impacte block.impact-drill.name = Perforadora d'impacte
block.eruption-drill.name = Perforadora per erupció block.eruption-drill.name = Perforadora per erupció
block.core-bastion.name = Nucli: Bastió block.core-bastion.name = Nucli: Bastió
block.core-citadel.name = Nucli: Ciutadella block.core-citadel.name = Nucli: Ciutadella
block.core-acropolis.name = Nucli: Acròpolis block.core-acropolis.name = Nucli: Acròpolis
block.reinforced-container.name = Contenidor reforçat block.reinforced-container.name = Contenidor reforçat
block.reinforced-vault.name = Contenidor reforçat gran block.reinforced-vault.name = Contenidor reforçat gros
block.breach.name = Breach block.breach.name = Breach
block.sublimate.name = Sublimate block.sublimate.name = Sublimate
block.titan.name = Titan block.titan.name = Titan
@@ -1667,8 +1667,8 @@ block.diffuse.name = Diffuse
block.basic-assembler-module.name = Mòdul de muntatge bàsic block.basic-assembler-module.name = Mòdul de muntatge bàsic
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Maligne block.malign.name = Maligne
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Reactor de fluxe
block.neoplasia-reactor.name = Neoplasia Reactor block.neoplasia-reactor.name = Reactor de neoplàsia
block.switch.name = Interruptor block.switch.name = Interruptor
block.micro-processor.name = Microprocessador block.micro-processor.name = Microprocessador
@@ -1797,7 +1797,7 @@ block.phase-wall-large.description = Protegeix les estructures dels projectils e
block.surge-wall.description = Protegeix les estructures dels projectils enemics, alliberant descàrregues elèctriques periòdicament quan algun enemic el toca. block.surge-wall.description = Protegeix les estructures dels projectils enemics, alliberant descàrregues elèctriques periòdicament quan algun enemic el toca.
block.surge-wall-large.description = Protegeix les estructures dels projectils enemics, alliberant descàrregues elèctriques periòdicament quan algun enemic el toca. block.surge-wall-large.description = Protegeix les estructures dels projectils enemics, alliberant descàrregues elèctriques periòdicament quan algun enemic el toca.
block.door.description = Un mur que es pot obrir i tancar. block.door.description = Un mur que es pot obrir i tancar.
block.door-large.description = Un mur gran que es pot obrir i tancar. block.door-large.description = Un mur gros que es pot obrir i tancar.
block.mender.description = Repara blocs propers periòdicament.\nTambé pot usar silici per potenciar el seu abast i eficiència. block.mender.description = Repara blocs propers periòdicament.\nTambé pot usar silici per potenciar el seu abast i eficiència.
block.mend-projector.description = Repara blocs propers.\nTambé pot usar teixit de fase per potenciar el seu abast i eficiència. block.mend-projector.description = Repara blocs propers.\nTambé pot usar teixit de fase per potenciar el seu abast i eficiència.
block.overdrive-projector.description = Augmenta la velocitat de les estructures properes.\nTambé es pot usar teixit de fase per millorar-ne l'abast i eficiència. block.overdrive-projector.description = Augmenta la velocitat de les estructures properes.\nTambé es pot usar teixit de fase per millorar-ne l'abast i eficiència.
@@ -1825,7 +1825,7 @@ block.pulse-conduit.description = Serveix per transportar líquids. Els transpor
block.plated-conduit.description = Serveix per transportar líquids. No accepta entrades des dels costats. No té fugues. block.plated-conduit.description = Serveix per transportar líquids. No accepta entrades des dels costats. No té fugues.
block.liquid-router.description = Accepta líquid des d'una direcció i surt repartit equitativament en les altres 3 direccions. També pot emmagatzemar una determinada quantitat de líquid. block.liquid-router.description = Accepta líquid des d'una direcció i surt repartit equitativament en les altres 3 direccions. També pot emmagatzemar una determinada quantitat de líquid.
block.liquid-container.description = Emmagatzema una quantitat considerable de líquid. Surt per tots els cantons, com els encaminadors de líquids. block.liquid-container.description = Emmagatzema una quantitat considerable de líquid. Surt per tots els cantons, com els encaminadors de líquids.
block.liquid-tank.description = Emmagatzema una quantitat gran de líquid. Surt per tots els cantons, com els encaminadors de líquids. block.liquid-tank.description = Emmagatzema una gran quantitat de líquid. Surt per tots els cantons, com els encaminadors de líquids.
block.liquid-junction.description = Actua com dues canonades per separat, una en la direcció de l'eix X i l'altra amb la direcció de l'eix Y. block.liquid-junction.description = Actua com dues canonades per separat, una en la direcció de l'eix X i l'altra amb la direcció de l'eix Y.
block.bridge-conduit.description = Transporta líquids per sota del terra o de les estructures. block.bridge-conduit.description = Transporta líquids per sota del terra o de les estructures.
block.phase-conduit.description = Transporta líquids per sota del terra o de les estructures, amb més abast que les canonades subterrànies normals, però necessita energia. block.phase-conduit.description = Transporta líquids per sota del terra o de les estructures, amb més abast que les canonades subterrànies normals, però necessita energia.
@@ -1873,11 +1873,11 @@ block.arc.description = Solta descàrregues d'energia a objectius terrestres.
block.swarmer.description = Dispara míssils guiats als enemics. block.swarmer.description = Dispara míssils guiats als enemics.
block.salvo.description = Dispara salves ràpides de bales als enemics. block.salvo.description = Dispara salves ràpides de bales als enemics.
block.fuse.description = Dispara tres rajos perforants de curt abast als enemics propers. block.fuse.description = Dispara tres rajos perforants de curt abast als enemics propers.
block.ripple.description = Dispara munició de dispersió a enemics terrestres a grans distàncies. block.ripple.description = Dispara munició de dispersió a enemics terrestres a distàncies grans.
block.cyclone.description = Dispara material explosiu antiaeri a enemics propers. block.cyclone.description = Dispara material explosiu antiaeri a enemics propers.
block.spectre.description = Dispara bales grans a objectius terrestres i aeris. block.spectre.description = Dispara bales grosses a objectius terrestres i aeris.
block.meltdown.description = Carrega i dispara un raig làser persistent a enemics propers. Requereix refrigerant per funcionar. block.meltdown.description = Carrega i dispara un raig làser persistent a enemics propers. Requereix refrigerant per funcionar.
block.foreshadow.description = Dispara una sola bala gran d'un sol objectiu. Prioritza els enemics de major salut màxima. block.foreshadow.description = Dispara una sola bala grossa d'un sol objectiu. Prioritza els enemics de major salut màxima.
block.repair-point.description = Repara contínuament la unitat danyada més propera del seu voltant. block.repair-point.description = Repara contínuament la unitat danyada més propera del seu voltant.
block.segment.description = Danya i destrueix projectils que s'apropin. No pot blocar els làsers. block.segment.description = Danya i destrueix projectils que s'apropin. No pot blocar els làsers.
block.parallax.description = Dispara un raig tractor que estira els objectius aeris, danyant-los en el procés. block.parallax.description = Dispara un raig tractor que estira els objectius aeris, danyant-los en el procés.
@@ -1920,7 +1920,7 @@ unit.crawler.description = Es dirigeix de pressa cap als enemics i s'autodestrue
unit.atrax.description = Dispara boles d'escòria que debiliten als objectius terrestres. Pot circular per la majoria dels terrenys. unit.atrax.description = Dispara boles d'escòria que debiliten als objectius terrestres. Pot circular per la majoria dels terrenys.
unit.spiroct.description = Dispara raigs làser debilitants als enemics i es regenera durant el procés. Pot circular per la majoria dels terrenys. unit.spiroct.description = Dispara raigs làser debilitants als enemics i es regenera durant el procés. Pot circular per la majoria dels terrenys.
unit.arkyid.description = Dispara raigs làser debilitants molt potents als enemics i es regenera durant el procés. Pot circular per la majoria dels terrenys. unit.arkyid.description = Dispara raigs làser debilitants molt potents als enemics i es regenera durant el procés. Pot circular per la majoria dels terrenys.
unit.toxopid.description = Dispara grups de projectils electrificats grans i làsers perforadors als enemics. Pot circular per la majoria dels terrenys. unit.toxopid.description = Dispara grups de projectils electrificats grossos i làsers perforadors als enemics. Pot circular per la majoria dels terrenys.
unit.flare.description = Dispara munició estàndard als objectius terrestres propers. unit.flare.description = Dispara munició estàndard als objectius terrestres propers.
unit.horizon.description = Dispara grups de bombes als objectius terrestres. unit.horizon.description = Dispara grups de bombes als objectius terrestres.
unit.zenith.description = Dispara salves de míssils als enemics propers. unit.zenith.description = Dispara salves de míssils als enemics propers.
@@ -1929,7 +1929,7 @@ unit.eclipse.description = Dispara dos làsers perforadors i una pluja de munici
unit.mono.description = Extreu automàticament coure i plom, deixant els recursos aconseguits al nucli. unit.mono.description = Extreu automàticament coure i plom, deixant els recursos aconseguits al nucli.
unit.poly.description = Reconstrueix automàticament les estructures destruïdes i assisteix altres unitats per construir. unit.poly.description = Reconstrueix automàticament les estructures destruïdes i assisteix altres unitats per construir.
unit.mega.description = Repara automàticament les estructures danyades. Pot transportar blocs i unitats terrestres petites. unit.mega.description = Repara automàticament les estructures danyades. Pot transportar blocs i unitats terrestres petites.
unit.quad.description = Deixa caure bombes grans damunt d'objectius terrestres, danya als enemics i repara estructures aliades. Pot transportar unitats terrestres de mida mitjana. unit.quad.description = Deixa caure bombes grosses damunt d'objectius terrestres, danya als enemics i repara estructures aliades. Pot transportar unitats terrestres de mida mitjana.
unit.oct.description = Protegeix els aliats propers amb el seu escut regenerable. Pot transportar la majoria d'unitats terrestres. unit.oct.description = Protegeix els aliats propers amb el seu escut regenerable. Pot transportar la majoria d'unitats terrestres.
unit.risso.description = Dispara una pluja de míssils i bales a tots els enemics propers. unit.risso.description = Dispara una pluja de míssils i bales a tots els enemics propers.
unit.minke.description = Dispara projectils i bales estàndard als objectius terrestres. unit.minke.description = Dispara projectils i bales estàndard als objectius terrestres.
@@ -2072,7 +2072,7 @@ lenum.spawn = Punt d'aparició d'enemics.\nPot ser un nucli o una posició.
lenum.building = Bloc d'una categoria específica. lenum.building = Bloc d'una categoria específica.
lenum.core = Qualsevol nucli. lenum.core = Qualsevol nucli.
lenum.storage = Edifici d'emmagatzematge, com ara el [accent]contenidor gran[]. lenum.storage = Edifici d'emmagatzematge, com ara el [accent]contenidor gros[].
lenum.generator = Edificis que generin energia elèctrica. lenum.generator = Edificis que generin energia elèctrica.
lenum.factory = Edificis que transformen recursos. lenum.factory = Edificis que transformen recursos.
lenum.repair = Punts de reparació. lenum.repair = Punts de reparació.

View File

@@ -44,12 +44,12 @@ mods.browser = Browser Mod
mods.browser.selected = Mod yang Dipilih mods.browser.selected = Mod yang Dipilih
mods.browser.add = Pasang mod mods.browser.add = Pasang mod
mods.browser.reinstall = Pasang kembali mods.browser.reinstall = Pasang kembali
mods.browser.view-releases = View Releases mods.browser.view-releases = Lihat Rilis
mods.browser.noreleases = [scarlet]No Releases Found\n[accent]Couldn't find any releases for this mod. Check if the mod's repository has any releases published. mods.browser.noreleases = [scarlet]Tidak Ada Rilis Ditemukan\n[accent]Tidak dapat menemukan rilis untuk mod ini. Periksa apakah repositori mod memiliki rilis publik.
mods.browser.latest = <Latest> mods.browser.latest = <Terbaru>
mods.browser.releases = Releases mods.browser.releases = Rilis
mods.github.open = Repo mods.github.open = Repo
mods.github.open-release = Release Page mods.github.open-release = Laman Rilis
mods.browser.sortdate = Urut berdasarkan waktu mods.browser.sortdate = Urut berdasarkan waktu
mods.browser.sortstars = Urut berdasarkan bintang mods.browser.sortstars = Urut berdasarkan bintang
@@ -74,11 +74,11 @@ schematic.disabled = [scarlet]Bagan dilarang[]\nAnda tidak diperbolehkan untuk m
schematic.tags = Tanda: schematic.tags = Tanda:
schematic.edittags = Ubah Tanda schematic.edittags = Ubah Tanda
schematic.addtag = Tambah Tanda schematic.addtag = Tambah Tanda
schematic.texttag = Tanda Tulisan schematic.texttag = Teks Tanda
schematic.icontag = Tanda Ikon schematic.icontag = Ikon Tanda
schematic.renametag = Ubah Nama Tanda schematic.renametag = Ubah Nama Tanda
schematic.tagdelconfirm = Hapus tanda ini sepenuhnya? schematic.tagdelconfirm = Hapus tanda ini sepenuhnya?
schematic.tagexists = Tanda ini sudah ada. schematic.tagexists = Tanda tersebut sudah ada.
stats = Statistik stats = Statistik
stats.wave = Gelombang Terkalahkan stats.wave = Gelombang Terkalahkan
@@ -105,7 +105,7 @@ customgame = Permainan Modifikasi
newgame = Permainan Baru newgame = Permainan Baru
none = <kosong> none = <kosong>
none.found = [lightgray]<tidak ditemukan> none.found = [lightgray]<tidak ditemukan>
none.inmap = [lightgray]<tidak ada di dalam peta> none.inmap = [lightgray]<tidak ada di peta>
minimap = Peta Kecil minimap = Peta Kecil
position = Posisi position = Posisi
close = Tutup close = Tutup
@@ -130,7 +130,7 @@ mods.initfailed = [red]⚠[] Proses Mindustry sebelumnya gagal untuk dimulai. Ke
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
mods.report = Lapor Kesalahan mods.report = Lapor Bug
mods.openfolder = Buka Folder Mod mods.openfolder = Buka Folder Mod
mods.viewcontent = Buka Konten mods.viewcontent = Buka Konten
mods.reload = Muat Ulang mods.reload = Muat Ulang
@@ -140,14 +140,14 @@ mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Aktif mod.enabled = [lightgray]Aktif
mod.disabled = [scarlet]Nonaktif mod.disabled = [scarlet]Nonaktif
mod.multiplayer.compatible = [gray]Bisa Digunakan dalam Multiplayer mod.multiplayer.compatible = [gray]Bisa Digunakan dalam Multiplayer
mod.disable = Aktif mod.disable = Nonaktifkan
mod.content = Konten: mod.content = Konten:
mod.delete.error = Tidak dapat menghapus mod. File mungkin sedang digunakan. mod.delete.error = Tidak dapat menghapus mod. File mungkin sedang digunakan.
mod.requiresversion = [scarlet]Versi permainan minimal yang dibutuhkan: [accent]{0} mod.requiresversion = [scarlet]Versi permainan minimal yang dibutuhkan: [accent]{0}
mod.outdatedv7 = [scarlet]Tidak kompatibel dengan V7 (tidak ada minGameVersion: 136) mod.outdatedv7 = [scarlet]Tidak kompatibel dengan V6 (tidak ada 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 = Terjadi kesalahan saat memuat konten.
mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain. mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain.
mod.nowdisabled = [scarlet]Mod '{0}' tidak memiliki ketergantungan:[accent] {1}\n[lightgray]Mod ini harus 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
@@ -155,7 +155,7 @@ mod.requiresrestart = Game akan keluar untuk mengaktifkan perubahan mod.
mod.reloadrequired = [scarlet]Muat Ulang Diperlukan mod.reloadrequired = [scarlet]Muat Ulang Diperlukan
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 dari 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}'[]. 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.
@@ -187,8 +187,8 @@ researched = [lightgray]{0} telah diteliti.
research.progress = {0}% diteliti research.progress = {0}% diteliti
players = {0} pemain aktif players = {0} pemain aktif
players.single = {0} pemain aktif players.single = {0} pemain aktif
players.search = Cari players.search = cari
players.notfound = [gray]Tidak ada pemain ditemukan players.notfound = [gray]tidak ada pemain ditemukan
server.closing = [accent]Menutup server... server.closing = [accent]Menutup server...
server.kicked.kick = Anda telah dikeluarkan dari server! server.kicked.kick = Anda telah dikeluarkan dari server!
server.kicked.whitelist = Anda tidak ada di dalam whitelist. server.kicked.whitelist = Anda tidak ada di dalam whitelist.
@@ -223,7 +223,7 @@ host.invalid = [scarlet]Tidak bisa menyambung dengan pemilik.
servers.local = Server Lokal servers.local = Server Lokal
servers.local.steam = Permainan Publik & Server Lokal servers.local.steam = Permainan Publik & Server Lokal
servers.remote = Server Jarak Jauh (Simpanan) servers.remote = Server Jarak Jauh
servers.global = Server Komunitas servers.global = Server Komunitas
servers.disclaimer = Server komunitas [accent]tidak[] dimiliki atau diatur oleh pengembang.\n\nServer dapat berisi konten buatan pemain lain yang mungkin tidak sesuai untuk semua umur. servers.disclaimer = Server komunitas [accent]tidak[] dimiliki atau diatur oleh pengembang.\n\nServer dapat berisi konten buatan pemain lain yang mungkin tidak sesuai untuk semua umur.
@@ -239,11 +239,11 @@ trace.mobile = Client Mobile: [accent]{0}
trace.modclient = Client Modifikasi: [accent]{0} trace.modclient = Client Modifikasi: [accent]{0}
trace.times.joined = Total Bergabung: [accent]{0} trace.times.joined = Total Bergabung: [accent]{0}
trace.times.kicked = Total Dikeluarkan: [accent]{0} trace.times.kicked = Total Dikeluarkan: [accent]{0}
invalidid = ID klien tidak valid! Kirimkan laporan bug. invalidid = ID client tidak valid! Kirimkan laporan bug.
server.bans = Pemain Dilarang Masuk server.bans = Pemain Dilarang Masuk
server.bans.none = Tidak ada pemain yang tidak diberi izin masuk! server.bans.none = Tidak ada pemain yang tidak diberi izin masuk!
server.admins = Admin server.admins = Admin
server.admins.none = Tidak ada admin! server.admins.none = Tidak ada admin ditemukan!
server.add = Tambah Server server.add = Tambah Server
server.delete = Anda yakin ingin menghapus server ini? server.delete = Anda yakin ingin menghapus server ini?
server.edit = Sunting Server server.edit = Sunting Server
@@ -269,7 +269,7 @@ connecting = [accent]Menghubungkan...
reconnecting = [accent]Menghubungkan kembali... reconnecting = [accent]Menghubungkan kembali...
connecting.data = [accent]Memuat data dunia... connecting.data = [accent]Memuat data dunia...
server.port = Port: server.port = Port:
server.addressinuse = Alamat sudah ada! server.addressinuse = Alamat sudah dipakai!
server.invalidport = Nomor port tidak sah! server.invalidport = Nomor port tidak sah!
server.error = [crimson]Terjadi kesalahan saat menghosting server: [accent]{0} server.error = [crimson]Terjadi kesalahan saat menghosting server: [accent]{0}
save.new = Simpanan Baru save.new = Simpanan Baru
@@ -311,11 +311,11 @@ open = Buka
customize = Sunting Peraturan customize = Sunting Peraturan
cancel = Batal cancel = Batal
command = Perintah command = Perintah
command.mine = Mine command.mine = Tambang
command.repair = Repair command.repair = Perbaiki
command.rebuild = Rebuild command.rebuild = Bangun Kembali
command.assist = Assist Player command.assist = Bantu Pemain
command.move = Move command.move = Maju
openlink = Buka Tautan openlink = Buka Tautan
copylink = Salin Tautan copylink = Salin Tautan
back = Kembali back = Kembali
@@ -460,9 +460,9 @@ editor.errorheader = File peta ini bisa jadi tidak sah atau rusak.
editor.errorname = Peta tidak ada nama. Apakah Anda mencoba untuk memuat file simpanan? editor.errorname = Peta tidak ada nama. Apakah Anda mencoba untuk memuat file simpanan?
editor.update = Perbaruan editor.update = Perbaruan
editor.randomize = Acak editor.randomize = Acak
editor.moveup = Move Up editor.moveup = Pindah Ke Atas
editor.movedown = Move Down editor.movedown = Pindah Ke Bawah
editor.copy = Copy editor.copy = Salin
editor.apply = Terapkan editor.apply = Terapkan
editor.generate = Generasi editor.generate = Generasi
editor.sectorgenerate = Generasi Sektor editor.sectorgenerate = Generasi Sektor
@@ -590,25 +590,28 @@ research.multiplayer = Hanya host yang dapat meneliti barang.
map.multiplayer = Hanya host yang dapat melihat sektor. map.multiplayer = Hanya host yang dapat melihat sektor.
uncover = Buka uncover = Buka
configure = Konfigurasi Muatan configure = Konfigurasi Muatan
objective.research.name = Research
objective.produce.name = Obtain objective.research.name = Riset
objective.item.name = Obtain Item objective.produce.name = Peroleh
objective.coreitem.name = Core Item objective.item.name = Peroleh Barang
objective.buildcount.name = Build Count objective.coreitem.name = Barang Inti
objective.unitcount.name = Unit Count objective.buildcount.name = Jumlah Bangunan
objective.destroyunits.name = Destroy Units objective.unitcount.name = Jumlah Unit
objective.timer.name = Timer objective.destroyunits.name = Hancurkan Unit
objective.destroyblock.name = Destroy Block objective.timer.name = Waktu
objective.destroyblocks.name = Destroy Blocks objective.destroyblock.name = Hancurkan Blok
objective.destroycore.name = Destroy Core objective.destroyblocks.name = Hancurkan Blok
objective.commandmode.name = Command Mode objective.destroycore.name = Hancurkan Inti
objective.flag.name = Flag objective.commandmode.name = Mode Perintah
marker.shapetext.name = Shape Text objective.flag.name = Bendera
marker.minimap.name = Minimap
marker.shape.name = Shape marker.shapetext.name = Teks Berbentuk
marker.text.name = Text marker.minimap.name = Peta Kecil
marker.background = Background marker.shape.name = Bentuk
marker.outline = Outline marker.text.name = Teks
marker.background = Latar
marker.outline = Garis Luar
objective.research = [accent]Riset:\n[]{0}[lightgray]{1} objective.research = [accent]Riset:\n[]{0}[lightgray]{1}
objective.produce = [accent]Memperoleh:\n[]{0}[lightgray]{1} objective.produce = [accent]Memperoleh:\n[]{0}[lightgray]{1}
@@ -623,6 +626,7 @@ objective.enemiesapproaching = [accent]Musuh akan datang pada [lightgray]{0}[]
objective.destroycore = [accent]Hancurkan Inti Musuh objective.destroycore = [accent]Hancurkan Inti Musuh
objective.command = [accent]Perintahkan Unit objective.command = [accent]Perintahkan Unit
objective.nuclearlaunch = [accent]⚠ Terdeteksi peluncuran nuklir: [lightgray]{0} objective.nuclearlaunch = [accent]⚠ Terdeteksi peluncuran nuklir: [lightgray]{0}
announce.nuclearstrike = [red]⚠ SERANGAN NUKLIR ⚠ announce.nuclearstrike = [red]⚠ SERANGAN NUKLIR ⚠
loadout = Muatan loadout = Muatan
@@ -635,7 +639,7 @@ addall = Tambah Semua
launch.from = Meluncurkan Dari: [accent]{0} launch.from = Meluncurkan Dari: [accent]{0}
launch.capacity = Kapasitas Barang yang Diluncurkan: [accent]{0} launch.capacity = Kapasitas Barang yang Diluncurkan: [accent]{0}
launch.destination = Destinasi: {0} launch.destination = Destinasi: {0}
configure.invalid = Jumlah harus berupa angka diantara 0 dan {0}. configure.invalid = Jumlah harus berupa angka di antara 0 dan {0}.
add = Tambahkan... add = Tambahkan...
guardian = Penjaga guardian = Penjaga
@@ -689,7 +693,7 @@ sector.lost = Sektor [accent]{0}[white] telah dihancurkan!
sector.captured = Sektor [accent]{0}[white]ditaklukkan! sector.captured = Sektor [accent]{0}[white]ditaklukkan!
sector.changeicon = Ubah Ikon sector.changeicon = Ubah Ikon
sector.noswitch.title = Tidak Dapat beralih Sektor sector.noswitch.title = Tidak Dapat beralih Sektor
sector.noswitch = Andak tidak boleh berpindah sektor jika sektor yang ada sedang serang.\nSektor: [accent]{0}[] di [accent]{1}[] sector.noswitch = Andak tidak boleh berpindah sektor jika salah satu sektor terkena serangan.\nSektor: [accent]{0}[] di [accent]{1}[]
sector.view = Lihat Sektor sector.view = Lihat Sektor
threat.low = Rendah threat.low = Rendah
@@ -742,25 +746,26 @@ sector.planetaryTerminal.description = Target terakhir.\n\nBasis pantai ini memi
sector.onset.name = Pemulaan sector.onset.name = Pemulaan
sector.aegis.name = Aegis sector.aegis.name = Aegis
sector.lake.name = Name sector.lake.name = Danau
sector.intersect.name = Intersect sector.intersect.name = Perempatan
sector.atlas.name = Atlas sector.atlas.name = Atlas
sector.split.name = Split sector.split.name = Split
sector.basin.name = Basin sector.basin.name = Basin
sector.onset.description = Sektor tutorial. Tujuan ini belum dibuat. Tunggu informasi selanjutnya.
sector.aegis.description = The enemy is protected by shields. An experimental shield breaker module has been detected in this sector.\nLocate this structure. Supply it with tungsten ammunition and destroy the enemy base.
sector.lake.description = This sector's slag lake greatly limits viable units. A hover unit is the only option.\nResearch the [accent]ship fabricator[] and produce an [accent]elude[] unit as soon as possible.
sector.intersect.description = Scans suggest that this sector will be attacked from multiple sides soon after landing.\nSet up defenses quickly and expand as soon as possible.\n[accent]Mech[] units will be required for the area's rough terrain.
sector.atlas.description = This sector contains varied terrain and will require a variety of units to attack effectively.\nUpgraded units may also be necessary to get past some of the tougher enemy bases detected here.\nResearch the [accent]Electrolyzer[] and the [accent]Tank Refabricator[].
sector.split.description = The minimal enemy presence in this sector makes it perfect for testing new transport tech.
sector.basin.description = {Temporary}\n\nThe last sector for now. Consider this a challenge level - more sectors will be added in a later release.
status.burning.name = Membakar sector.onset.description = Sektor latihan. Tujuan ini belum dibuat. Tunggu informasi selanjutnya.
sector.aegis.description = Musuh dilindungi oleh perisai. Modul pemutus pelindung eksperimental telah terdeteksi di sektor ini.\nTemukan struktur ini. Pasok dengan amunisi tungsten dan hancurkan markas musuh.
sector.lake.description = Danau terak di sektor ini sangat membatasi pilihan unit yang kita gunakan. Pilihan satu-satunya dengan menggunakan unit amphibi.\nRiset [accent]fabrikator kapal[] dan buat unit [accent]elude[] secepat mungkin.
sector.intersect.description = Pemindai mensugesti bahwa sektor ini akan diserang dari berbagai arah setelah kita mendarat.\nSegera siapkan pertahanan dan perluas wilayah secepat mungkin.\nUnit [accent]meka[] akan diperlukan untuk dataran yang sulit dilalui.
sector.atlas.description = Sektor ini memiliki dataran yang unik dan akan memerlukan beraneka ragam unit untuk menyerang secara efektif.\nUnit tingkat lanjut dapat diperlukan untuk melewati beberapa markas musuh yang kuat di sekitar sini.\nRiset [accent]Elektroliser[] dan [accent]Refabrikator Tank[].
sector.split.description = Keberadaan musuh yang minim di sektor ini sangat bagus untuk menguji coba teknologi transportasi baru.
sector.basin.description = {Temporary}\n\nSektor terakhir untuk saat ini. Anggap ini sebagai level tantangan!
status.burning.name = Terbakar
status.freezing.name = Membeku status.freezing.name = Membeku
status.wet.name = Basah status.wet.name = Basah
status.muddy.name = Berlumpur status.muddy.name = Berlumpur
status.melting.name = Meleleh status.melting.name = Meleleh
status.sapped.name = Melemahkan status.sapped.name = Terlemahkan
status.electrified.name = Dialiri Listrik status.electrified.name = Dialiri Listrik
status.spore-slowed.name = Spora Melambat status.spore-slowed.name = Spora Melambat
status.tarred.name = Berminyak status.tarred.name = Berminyak
@@ -773,7 +778,7 @@ status.boss.name = Penjaga
settings.language = Bahasa settings.language = Bahasa
settings.data = Data Game settings.data = Data Game
settings.reset = Atur ulang pilihan ke awal settings.reset = Atur Ulang ke Bawaan
settings.rebind = Ganti tombol settings.rebind = Ganti tombol
settings.resetKey = Atur ulang settings.resetKey = Atur ulang
settings.controls = Kontrol settings.controls = Kontrol
@@ -800,14 +805,14 @@ error.title = [scarlet]Sebuah kesalahan telah terjadi
error.crashtitle = Sebuah kesalahan telah terjadi error.crashtitle = Sebuah kesalahan telah terjadi
unit.nobuild = [scarlet]Unit tidak dapat membangun unit.nobuild = [scarlet]Unit tidak dapat membangun
lastaccessed = [lightgray]Terakhir Diakses: {0} lastaccessed = [lightgray]Terakhir Diakses: {0}
lastcommanded = [lightgray]Last Commanded: {0} lastcommanded = [lightgray]Terakhir Diperintah: {0}
block.unknown = [lightgray]??? block.unknown = [lightgray]???
stat.showinmap = <muat peta untuk lihat> stat.showinmap = <muat peta untuk lihat>
stat.description = Kegunaan stat.description = Kegunaan
stat.input = Masukan stat.input = Masukan
stat.output = Pengeluaran stat.output = Pengeluaran
stat.maxefficiency = Efisiensi Maks stat.maxefficiency = Batas Efisiensi
stat.booster = Pendorong stat.booster = Pendorong
stat.tiles = Petak yang Diperlukan stat.tiles = Petak yang Diperlukan
stat.affinities = Kecocokan stat.affinities = Kecocokan
@@ -826,7 +831,7 @@ stat.liquidcapacity = Kapasitas Zat Cair
stat.powerrange = Jarak Tenaga stat.powerrange = Jarak Tenaga
stat.linkrange = Jarak Tautan stat.linkrange = Jarak Tautan
stat.instructions = Instruksi stat.instructions = Instruksi
stat.powerconnections = Koneksi Maksimal stat.powerconnections = Batas Sambungan
stat.poweruse = Penggunaan Tenaga stat.poweruse = Penggunaan Tenaga
stat.powerdamage = Tenaga/Pukulan stat.powerdamage = Tenaga/Pukulan
stat.itemcapacity = Kapasitas Bahan stat.itemcapacity = Kapasitas Bahan
@@ -837,10 +842,10 @@ stat.repairtime = Waktu Memperbaiki Blok Penuh
stat.repairspeed = Kecepatan Memperbaiki stat.repairspeed = Kecepatan Memperbaiki
stat.weapons = Senjata stat.weapons = Senjata
stat.bullet = Peluru stat.bullet = Peluru
stat.moduletier = Module Tier stat.moduletier = Tingkatan Modul
stat.speedincrease = Tambahan Kecepatan stat.speedincrease = Tambahan Kecepatan
stat.range = Jarak stat.range = Jarak
stat.drilltier = Sumber Daya yang Bisa di Bor stat.drilltier = Sumber Daya yang Ditambang
stat.drillspeed = Basis Kecepatan Bor stat.drillspeed = Basis Kecepatan Bor
stat.boosteffect = Efek Pendorong stat.boosteffect = Efek Pendorong
stat.maxunits = Batas Unit Aktif stat.maxunits = Batas Unit Aktif
@@ -855,16 +860,16 @@ stat.reload = Kecepatan Tembakan
stat.ammo = Amunisi stat.ammo = Amunisi
stat.shieldhealth = Darah Perisai stat.shieldhealth = Darah Perisai
stat.cooldowntime = Waktu Pendinginan stat.cooldowntime = Waktu Pendinginan
stat.explosiveness = Ledakan stat.explosiveness = Daya Ledak
stat.basedeflectchance = Peluang Defleksi Dasar stat.basedeflectchance = Peluang Defleksi Dasar
stat.lightningchance = Peluang Menghasilkan Petir stat.lightningchance = Peluang Menghasilkan Petir
stat.lightningdamage = Kerusakan Petir stat.lightningdamage = Kerusakan Petir
stat.flammability = Pembakar stat.flammability = Daya Bakar
stat.radioactivity = Radiasi stat.radioactivity = Daya Radioaktif
stat.charge = Setruman stat.charge = Setruman
stat.heatcapacity = Kapasitas Panas stat.heatcapacity = Kapasitas Panas
stat.viscosity = Kelekatan stat.viscosity = Kelekatan
stat.temperature = Temperatur stat.temperature = Suhu
stat.speed = Kecepatan stat.speed = Kecepatan
stat.buildspeed = Kecepatan Membangun stat.buildspeed = Kecepatan Membangun
stat.minespeed = Kecepatan Menambang stat.minespeed = Kecepatan Menambang
@@ -911,7 +916,7 @@ bar.capacity = Kapasitas: {0}
bar.unitcap = {0} {1}/{2} bar.unitcap = {0} {1}/{2}
bar.liquid = Zat Cair bar.liquid = Zat Cair
bar.heat = Panas bar.heat = Panas
bar.instability = Instability bar.instability = Instabilitas
bar.heatamount = Panas: {0} bar.heatamount = Panas: {0}
bar.heatpercent = Panas: {0} ({1}%) bar.heatpercent = Panas: {0} ({1}%)
bar.power = Tenaga bar.power = Tenaga
@@ -949,7 +954,7 @@ unit.liquidsecond = unit zat cair/detik
unit.itemssecond = bahan/detik unit.itemssecond = bahan/detik
unit.liquidunits = unit zat cair unit.liquidunits = unit zat cair
unit.powerunits = unit tenaga unit.powerunits = unit tenaga
unit.heatunits = heat units unit.heatunits = unit panas
unit.degrees = derajat unit.degrees = derajat
unit.seconds = detik unit.seconds = detik
unit.minutes = menit unit.minutes = menit
@@ -1018,7 +1023,7 @@ setting.borderlesswindow.name = Jendela tak Berbatas
setting.borderlesswindow.name.windows = Layar Penuh tak Berbatas setting.borderlesswindow.name.windows = Layar Penuh tak Berbatas
setting.borderlesswindow.description = Mulai ulang mungkin diperlukan untuk menerapkan perubahan. setting.borderlesswindow.description = Mulai ulang mungkin diperlukan untuk menerapkan perubahan.
setting.fps.name = Tunjukkan FPS & Ping setting.fps.name = Tunjukkan FPS & Ping
setting.console.name = Enable Console setting.console.name = Hidupkan Konsol
setting.smoothcamera.name = Kamera Halus setting.smoothcamera.name = Kamera Halus
setting.vsync.name = VSync setting.vsync.name = VSync
setting.pixelate.name = Mode Pixel setting.pixelate.name = Mode Pixel
@@ -1140,8 +1145,8 @@ rules.wavetimer = Pengaturan Waktu Gelombang
rules.waves = Gelombang rules.waves = Gelombang
rules.attack = Mode Penyerangan rules.attack = Mode Penyerangan
rules.rtsai = A.I. RTS rules.rtsai = A.I. RTS
rules.rtsminsquadsize = Ukuran Squad Minimum rules.rtsminsquadsize = Ukuran Regu Minimum
rules.rtsmaxsquadsize = Max Squad Size rules.rtsmaxsquadsize = Ukuran Regu Maksimum
rules.rtsminattackweight = Berat Serangan Minimum rules.rtsminattackweight = Berat Serangan Minimum
rules.cleanupdeadteams = Bersihkan Bangunan Tim yang Kalah (PvP) rules.cleanupdeadteams = Bersihkan Bangunan Tim yang Kalah (PvP)
rules.corecapture = Tangkap Inti Saat Kehancuran rules.corecapture = Tangkap Inti Saat Kehancuran
@@ -1195,7 +1200,7 @@ content.status.name = Status Efek
content.sector.name = Sektor content.sector.name = Sektor
content.team.name = Fraksi content.team.name = Fraksi
wallore = (Wall) wallore = (Dinding)
item.copper.name = Tembaga item.copper.name = Tembaga
item.lead.name = Timah item.lead.name = Timah
@@ -1292,7 +1297,7 @@ unit.anthicus.name = Anthicus
unit.elude.name = Elude unit.elude.name = Elude
unit.obviate.name = Obviate unit.obviate.name = Obviate
block.parallax.name = Parallax block.parallax.name = Paralaks
block.cliff.name = Bukit block.cliff.name = Bukit
block.sand-boulder.name = Batu Pasir Besar block.sand-boulder.name = Batu Pasir Besar
block.basalt-boulder.name = Batu Basal Besar block.basalt-boulder.name = Batu Basal Besar
@@ -1390,8 +1395,8 @@ block.door.name = Pintu
block.door-large.name = Pintu Besar block.door-large.name = Pintu Besar
block.duo.name = Duo block.duo.name = Duo
block.scorch.name = Penyembur Api block.scorch.name = Penyembur Api
block.scatter.name = Scatter block.scatter.name = Penghambur
block.hail.name = Meriam block.hail.name = Penghujan
block.lancer.name = Lancer block.lancer.name = Lancer
block.conveyor.name = Pengantar block.conveyor.name = Pengantar
block.titanium-conveyor.name = Pengantar Berbahan Titanium block.titanium-conveyor.name = Pengantar Berbahan Titanium
@@ -1474,19 +1479,19 @@ block.mender.name = Mender
block.mend-projector.name = Mender Projektor block.mend-projector.name = Mender Projektor
block.surge-wall.name = Dinding Listrik block.surge-wall.name = Dinding Listrik
block.surge-wall-large.name = Dinding Listrik Besar block.surge-wall-large.name = Dinding Listrik Besar
block.cyclone.name = Cyclone block.cyclone.name = Topan
block.fuse.name = Fuse block.fuse.name = Murang
block.shock-mine.name = Ranjau Listrik block.shock-mine.name = Ranjau Listrik
block.overdrive-projector.name = Projektor Pemercepat block.overdrive-projector.name = Projektor Pemercepat
block.force-projector.name = Projektor Pelindung block.force-projector.name = Projektor Pelindung
block.arc.name = Busur Petir block.arc.name = Busur Petir
block.rtg-generator.name = Generator Radiasi block.rtg-generator.name = Generator Radiasi
block.spectre.name = Meriam Raksasa block.spectre.name = Momok
block.meltdown.name = Meltdown block.meltdown.name = Pelumer
block.foreshadow.name = Foreshadow block.foreshadow.name = Foreshadow
block.container.name = Kontainer block.container.name = Kontainer
block.launch-pad.name = Alas Peluncur block.launch-pad.name = Alas Peluncur
block.segment.name = Segment block.segment.name = Segmen
block.ground-factory.name = Pabrik Unit Darat block.ground-factory.name = Pabrik Unit Darat
block.air-factory.name = Pabrik Unit Udara block.air-factory.name = Pabrik Unit Udara
block.naval-factory.name = Pabrik Unit Laut block.naval-factory.name = Pabrik Unit Laut
@@ -1516,10 +1521,10 @@ block.payload-loader.name = Pemuat Blok
block.payload-loader.description = Memuat cairan dan item ke dalam blok. block.payload-loader.description = Memuat cairan dan item ke dalam blok.
block.payload-unloader.name = Pembongkar Blok block.payload-unloader.name = Pembongkar Blok
block.payload-unloader.description = Membongkar cairan dan item dari blok. block.payload-unloader.description = Membongkar cairan dan item dari blok.
block.heat-source.name = Heat Source block.heat-source.name = Sumber Panas
block.heat-source.description = A 1x1 block that gives virtualy infinite heat. block.heat-source.description = Blok ukuran 1x1 yang memberikan panas tak terhingga.
#TODO: temporary names! #Erekir
block.empty.name = Kosong block.empty.name = Kosong
block.rhyolite-crater.name = Kawah Riolit block.rhyolite-crater.name = Kawah Riolit
block.rough-rhyolite.name = Riolit Kasar block.rough-rhyolite.name = Riolit Kasar
@@ -1542,8 +1547,8 @@ block.carbon-vent.name = Ventilasi Karbon
block.arkyic-vent.name = Ventilasi Arkisit block.arkyic-vent.name = Ventilasi Arkisit
block.yellow-stone-vent.name = Ventilasi Batu Kuning block.yellow-stone-vent.name = Ventilasi Batu Kuning
block.red-stone-vent.name = Ventilasi Batu Merah block.red-stone-vent.name = Ventilasi Batu Merah
block.redmat.name = Redmat block.redmat.name = Matras Merah
block.bluemat.name = Bluemat block.bluemat.name = Matras Biru
block.core-zone.name = Zona Inti block.core-zone.name = Zona Inti
block.regolith-wall.name = Dinding Regolit block.regolith-wall.name = Dinding Regolit
block.yellow-stone-wall.name = Dinding Batu Kuning block.yellow-stone-wall.name = Dinding Batu Kuning
@@ -1556,7 +1561,7 @@ block.crystalline-stone-wall.name = Dinding Batu Kristal
block.red-ice-wall.name = Dinding Es Merah block.red-ice-wall.name = Dinding Es Merah
block.red-stone-wall.name = Dinding Batu Merah block.red-stone-wall.name = Dinding Batu Merah
block.red-diamond-wall.name = Dinding Berlian Merah block.red-diamond-wall.name = Dinding Berlian Merah
block.redweed.name = Redweed block.redweed.name = Rumput Merah
block.pur-bush.name = Semak Pur block.pur-bush.name = Semak Pur
block.yellowcoral.name = Terumbu Kuning block.yellowcoral.name = Terumbu Kuning
block.carbon-boulder.name = Batu Besar Karbon block.carbon-boulder.name = Batu Besar Karbon
@@ -1578,7 +1583,7 @@ block.electrolyzer.name = Elektroliser
block.atmospheric-concentrator.name = Konsentrator Atmosfer block.atmospheric-concentrator.name = Konsentrator Atmosfer
block.oxidation-chamber.name = Ruangan Oksidasi block.oxidation-chamber.name = Ruangan Oksidasi
block.electric-heater.name = Penghangat Listrik block.electric-heater.name = Penghangat Listrik
block.slag-heater.name = Slag Heater block.slag-heater.name = Penghangat Terak
block.phase-heater.name = Penghangat Phase block.phase-heater.name = Penghangat Phase
block.heat-redirector.name = Pengatur Panas block.heat-redirector.name = Pengatur Panas
block.slag-incinerator.name = Insinerator Terak block.slag-incinerator.name = Insinerator Terak
@@ -1595,8 +1600,8 @@ block.tungsten-wall-large.name = Dinding Tungsten Besar
block.blast-door.name = Pintu Blast block.blast-door.name = Pintu Blast
block.carbide-wall.name = Dinding Karbit block.carbide-wall.name = Dinding Karbit
block.carbide-wall-large.name = Dinding Karbit Raksasa block.carbide-wall-large.name = Dinding Karbit Raksasa
block.reinforced-surge-wall.name = Reinforced Surge Wall block.reinforced-surge-wall.name = Dinding Surge yang Diperkuat
block.reinforced-surge-wall-large.name = Large Reinforced Surge Wall block.reinforced-surge-wall-large.name = Dinding Surge Besar yang Diperkuat
block.shielded-wall.name = Shielded Wall block.shielded-wall.name = Shielded Wall
block.radar.name = Radar block.radar.name = Radar
block.build-tower.name = Menara Pembangunan block.build-tower.name = Menara Pembangunan
@@ -1606,7 +1611,7 @@ block.shield-projector.name = Proyektor Pelindung
block.large-shield-projector.name = Proyektor Pelindung Besar block.large-shield-projector.name = Proyektor Pelindung Besar
block.armored-duct.name = Pipa Lapis Baja block.armored-duct.name = Pipa Lapis Baja
block.overflow-duct.name = Pipa Luapan block.overflow-duct.name = Pipa Luapan
block.underflow-duct.name = Underflow Duct block.underflow-duct.name = Pipa Arus Bawah
block.duct-unloader.name = Pipa Pembongkar Muatan block.duct-unloader.name = Pipa Pembongkar Muatan
block.surge-conveyor.name = Konveyor Surge block.surge-conveyor.name = Konveyor Surge
block.surge-router.name = Pengarah Surge block.surge-router.name = Pengarah Surge
@@ -1663,12 +1668,12 @@ block.mech-fabricator.name = Fabrikator Mech
block.ship-fabricator.name = Fabrikator Kapal block.ship-fabricator.name = Fabrikator Kapal
block.prime-refabricator.name = Refabrikator Perdana block.prime-refabricator.name = Refabrikator Perdana
block.unit-repair-tower.name = Menara Perbaikan Unit block.unit-repair-tower.name = Menara Perbaikan Unit
block.diffuse.name = Membaur block.diffuse.name = Pembaur
block.basic-assembler-module.name = Modul Perakitan Dasar block.basic-assembler-module.name = Modul Perakitan Dasar
block.smite.name = Smite block.smite.name = Smite
block.malign.name = Malign block.malign.name = Malign
block.flux-reactor.name = Flux Reactor block.flux-reactor.name = Reaktor Flux
block.neoplasia-reactor.name = Neoplasia Reactor block.neoplasia-reactor.name = Reaktor Neoplasia
block.switch.name = Saklar block.switch.name = Saklar
block.micro-processor.name = Prosesor Mikro block.micro-processor.name = Prosesor Mikro
@@ -1726,8 +1731,8 @@ hint.presetLaunch = [accent]Zona pendaratan[] yang berwarna abu-abu, seperti [ac
hint.presetDifficulty = Sektor ini memiliki [scarlet]ancaman bahaya musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang. hint.presetDifficulty = Sektor ini memiliki [scarlet]ancaman bahaya musuh yang tinggi[].\nMeluncurkan ke sektor tersebut [accent]tidak disarankan[] tanpa teknologi yang sesuai dan persiapan yang matang.
hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang setipe akan [accent]dihancurkan[]. hint.coreIncinerate = Setelah inti penuh dengan suatu barang, barang yang setipe akan [accent]dihancurkan[].
hint.coopCampaign = Ketika bermain [accent]kampanye multiplayer[], barang yang diproduksi di map ini akan diberikan ke [accent]sektor kamu juga[].\n\nSetiap penelitian baru yang dilakukan oleh host juga akan diberikan kepadamu. hint.coopCampaign = Ketika bermain [accent]kampanye multiplayer[], barang yang diproduksi di map ini akan diberikan ke [accent]sektor kamu juga[].\n\nSetiap penelitian baru yang dilakukan oleh host juga akan diberikan kepadamu.
hint.factoryControl = To set a unit factory's [accent]output destination[], click a factory block while in command mode, then right-click a location.\nUnits produced by it will automatically move there. hint.factoryControl = Untuk menentukan [accent]tempat keluar[] unit pabrik, klik blok pabrik ketika dalam mode perintah, lalu klik kanan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
hint.factoryControl.mobile = To set a unit factory's [accent]output destination[], tap a factory block while in command mode, then tap a location.\nUnits produced by it will automatically move there. hint.factoryControl.mobile = Untuk menentukan [accent]tempat keluar[] unit pabrik, tekan blok pabrik ketika dalam mode perintah, lalu tekan lokasi yang diinginkan.\nUnit yang diproduksi akan langsung bergerak ke tempat yang ditentukan.
item.copper.description = Digunakan pada semua tipe konstruksi dan amunisi. item.copper.description = Digunakan pada semua tipe konstruksi dan amunisi.
item.copper.details = Tembaga. Logam yang sangat melimpah di Serpulo. Lemah secara struktural kecuali jika diperkuat. item.copper.details = Tembaga. Logam yang sangat melimpah di Serpulo. Lemah secara struktural kecuali jika diperkuat.
@@ -1756,7 +1761,7 @@ liquid.slag.description = Dapat dipadatkan menjadi logam tertentu, atau disempro
liquid.oil.description = Digunakan di produksi material lanjutan dan sebagai amunisi yang mudah terbakar. liquid.oil.description = Digunakan di produksi material lanjutan dan sebagai amunisi yang mudah terbakar.
liquid.cryofluid.description = Digunakan sebagai pendingin di reaktor, menara, dan pabrik. liquid.cryofluid.description = Digunakan sebagai pendingin di reaktor, menara, dan pabrik.
block.derelict = [lightgray]\ue815 Derelict block.derelict = \uf77e [lightgray]Derelik
block.armored-conveyor.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping. block.armored-conveyor.description = Memindahkan barang ke depan. Tidak dapat menerima masukan dari samping.
block.illuminator.description = Memancarkan cahaya. block.illuminator.description = Memancarkan cahaya.
block.message.description = Menyimpan pesan untuk komunikasi antar sekutu. block.message.description = Menyimpan pesan untuk komunikasi antar sekutu.
@@ -1993,21 +1998,22 @@ laccess.controller = Pengendali unit. Jika dikendalikan prosesor, mengembalikan
laccess.dead = Menentukan apakah unit/bangunan itu hancur atau tidak ada lagi. laccess.dead = Menentukan apakah unit/bangunan itu hancur atau tidak ada lagi.
laccess.controlled = Mengembalikan:\n[accent]@ctrlProcessor[] bila pengendali unit adalah prosesor\n[accent]@ctrlPlayer[] bila pengendali unit/bangunan adalah pemain\n[accent]@ctrlFormation[] bila unit dalam formasi\nSebaliknya, 0. laccess.controlled = Mengembalikan:\n[accent]@ctrlProcessor[] bila pengendali unit adalah prosesor\n[accent]@ctrlPlayer[] bila pengendali unit/bangunan adalah pemain\n[accent]@ctrlFormation[] bila unit dalam formasi\nSebaliknya, 0.
laccess.progress = Memeriksa hasil kemajuan, 0 sampai 1.\nMengembalikan hasil laju produksi, pengisian ulang menara atau pembangunan. laccess.progress = Memeriksa hasil kemajuan, 0 sampai 1.\nMengembalikan hasil laju produksi, pengisian ulang menara atau pembangunan.
laccess.speed = Top speed of a unit, in tiles/sec. laccess.speed = Kecepatan tertinggi dari suatu unit, dalam petak/detik.
lcategory.unknown = Unknown lcategory.unknown = Unknown
lcategory.unknown.description = Uncategorized instructions. lcategory.unknown.description = Instruksi tanpa kategori.
lcategory.io = Input & Output lcategory.io = Input & Output
lcategory.io.description = Modify contents of memory blocks and processor buffers. lcategory.io.description = Ubah isi dari blok memori dan buffer prosesor.
lcategory.block = Block Control lcategory.block = Kontrol Blok
lcategory.block.description = Interact with blocks. lcategory.block.description = Interaksi dengan blok.
lcategory.operation = Operations lcategory.operation = Operasi
lcategory.operation.description = Logical operations. lcategory.operation.description = Operasi logikal.
lcategory.control = Flow Control lcategory.control = Kontrol Aliran
lcategory.control.description = Manage execution order. lcategory.control.description = Mengatur eksekusi perintah.
lcategory.unit = Unit Control lcategory.unit = Kontrol Unit
lcategory.unit.description = Give units commands. lcategory.unit.description = Memberikan perintah kepada unit.
lcategory.world = World lcategory.world = Dunia
lcategory.world.description = Control how the world behaves. lcategory.world.description = Kendalikan bagaimana dunia berjalan.
graphicstype.clear = Mengisi tampilan dangan warna. graphicstype.clear = Mengisi tampilan dangan warna.
graphicstype.color = Menentukan warna untuk operasi mengambar selanjutnya. graphicstype.color = Menentukan warna untuk operasi mengambar selanjutnya.
@@ -2126,5 +2132,7 @@ lenum.build = Membangun sebuah sttruktur.
lenum.getblock = Mengambil bangunan dan tipenya pada koordinat tertentu.\nUnit harus ada dalam jangkauan tersebut.\nBentuk padat yang bukan merupakan bangunan akan memiliki tipe [accent]@solid[]. lenum.getblock = Mengambil bangunan dan tipenya pada koordinat tertentu.\nUnit harus ada dalam jangkauan tersebut.\nBentuk padat yang bukan merupakan bangunan akan memiliki tipe [accent]@solid[].
lenum.within = Memeriksa apakah unit di dekat suatu posisi. lenum.within = Memeriksa apakah unit di dekat suatu posisi.
lenum.boost = Mulai/berhenti mempercepat. lenum.boost = Mulai/berhenti mempercepat.
#Don't translate these yet!
onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack. onset.commandmode = Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.
onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack. onset.commandmode.mobile = Press the [accent]command button[] to enter [accent]command mode[].\nHold down a finger, then [accent]drag[] to select units.\n[accent]Tap[] to order selected units to move or attack.

View File

@@ -2755,7 +2755,6 @@ public class Blocks{
//TODO awful name //TODO awful name
largePlasmaBore = new BeamDrill("large-plasma-bore"){{ largePlasmaBore = new BeamDrill("large-plasma-bore"){{
//TODO requirements
requirements(Category.production, with(Items.silicon, 100, Items.oxide, 25, Items.beryllium, 100, Items.tungsten, 70)); requirements(Category.production, with(Items.silicon, 100, Items.oxide, 25, Items.beryllium, 100, Items.tungsten, 70));
consumePower(0.8f); consumePower(0.8f);
drillTime = 110f; drillTime = 110f;
@@ -2770,7 +2769,6 @@ public class Blocks{
consumeLiquid(Liquids.nitrogen, 3f / 60f).boost(); consumeLiquid(Liquids.nitrogen, 3f / 60f).boost();
}}; }};
//TODO should be crusher or something
impactDrill = new BurstDrill("impact-drill"){{ impactDrill = new BurstDrill("impact-drill"){{
requirements(Category.production, with(Items.silicon, 70, Items.beryllium, 90, Items.graphite, 60)); requirements(Category.production, with(Items.silicon, 70, Items.beryllium, 90, Items.graphite, 60));
drillTime = 60f * 12f; drillTime = 60f * 12f;
@@ -2784,13 +2782,14 @@ public class Blocks{
blockedItem = Items.thorium; blockedItem = Items.thorium;
researchCostMultiplier = 0.5f; researchCostMultiplier = 0.5f;
drillMultipliers.put(Items.beryllium, 2.5f);
fogRadius = 4; fogRadius = 4;
consumePower(160f / 60f); consumePower(160f / 60f);
consumeLiquid(Liquids.water, 0.2f); consumeLiquid(Liquids.water, 0.2f);
}}; }};
//TODO bad name
eruptionDrill = new BurstDrill("eruption-drill"){{ eruptionDrill = new BurstDrill("eruption-drill"){{
requirements(Category.production, with(Items.silicon, 200, Items.oxide, 20, Items.tungsten, 200, Items.thorium, 120)); requirements(Category.production, with(Items.silicon, 200, Items.oxide, 20, Items.tungsten, 200, Items.thorium, 120));
drillTime = 60f * 6f; drillTime = 60f * 6f;
@@ -2812,6 +2811,8 @@ public class Blocks{
glowColor.a = 0.6f; glowColor.a = 0.6f;
fogRadius = 5; fogRadius = 5;
drillMultipliers.put(Items.beryllium, 2.5f);
//TODO different requirements //TODO different requirements
consumePower(6f); consumePower(6f);
consumeLiquids(LiquidStack.with(Liquids.hydrogen, 4f / 60f)); consumeLiquids(LiquidStack.with(Liquids.hydrogen, 4f / 60f));

View File

@@ -98,8 +98,9 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
//find the next build plan //find the next build plan
if(plans.size > 1){ if(plans.size > 1){
int total = 0; int total = 0;
int size = plans.size;
BuildPlan plan; BuildPlan plan;
while((!within((plan = buildPlan()).tile(), finalPlaceDst) || shouldSkip(plan, core)) && total < plans.size){ while((!within((plan = buildPlan()).tile(), finalPlaceDst) || shouldSkip(plan, core)) && total < size){
plans.removeFirst(); plans.removeFirst();
plans.addLast(plan); plans.addLast(plan);
total++; total++;

View File

@@ -152,6 +152,13 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
return self(); return self();
} }
@Override
public void add(){
if(power != null){
power.graph.checkAdd();
}
}
@Override @Override
@Replace @Replace
public int tileX(){ public int tileX(){

View File

@@ -38,7 +38,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
//update power graph first, resolve everything //update power graph first, resolve everything
for(Payload pay : payloads){ for(Payload pay : payloads){
if(pay instanceof BuildPayload pb && pb.build.power != null){ if(pay instanceof BuildPayload pb && pb.build.power != null){
if(payloadPower == null) payloadPower = new PowerGraph(); if(payloadPower == null) payloadPower = new PowerGraph(false);
//pb.build.team = team; //pb.build.team = team;
pb.build.power.graph = null; pb.build.power.graph = null;

View File

@@ -96,7 +96,7 @@ public class Duct extends Block implements Autotiler{
@Override @Override
public void handlePlacementLine(Seq<BuildPlan> plans){ public void handlePlacementLine(Seq<BuildPlan> plans){
Placement.calculateBridges(plans, (DuctBridge)Blocks.ductBridge, false, b -> b instanceof Duct); Placement.calculateBridges(plans, (DuctBridge)Blocks.ductBridge, false, b -> b instanceof Duct || b instanceof StackConveyor || b instanceof Conveyor);
} }
public class DuctBuild extends Building{ public class DuctBuild extends Building{

View File

@@ -101,7 +101,7 @@ public class BuildPayload implements Payload{
Draw.z(prevZ - 0.0001f); Draw.z(prevZ - 0.0001f);
drawShadow(1f); drawShadow(1f);
Draw.z(prevZ); Draw.z(prevZ);
Draw.zTransform(z -> z >= Layer.flyingUnitLow ? z : 0.0011f + Mathf.clamp(z, prevZ - 0.001f, prevZ + 0.9f)); Draw.zTransform(z -> z >= Layer.flyingUnitLow + 1f ? z : 0.0011f + Math.min(Mathf.clamp(z, prevZ - 0.001f, prevZ + 0.9f), Layer.flyingUnitLow - 1f));
build.tile = emptyTile; build.tile = emptyTile;
build.payloadDraw(); build.payloadDraw();
Draw.zTransform(); Draw.zTransform();

View File

@@ -18,7 +18,7 @@ public class PowerGraph{
public final Seq<Building> batteries = new Seq<>(false, 16, Building.class); public final Seq<Building> batteries = new Seq<>(false, 16, Building.class);
public final Seq<Building> all = new Seq<>(false, 16, Building.class); public final Seq<Building> all = new Seq<>(false, 16, Building.class);
private final PowerGraphUpdater entity; private final @Nullable PowerGraphUpdater entity;
private final WindowedMean powerBalance = new WindowedMean(60); private final WindowedMean powerBalance = new WindowedMean(60);
private float lastPowerProduced, lastPowerNeeded, lastPowerStored; private float lastPowerProduced, lastPowerNeeded, lastPowerStored;
private float lastScaledPowerIn, lastScaledPowerOut, lastCapacity; private float lastScaledPowerIn, lastScaledPowerOut, lastCapacity;
@@ -34,6 +34,11 @@ public class PowerGraph{
graphID = lastGraphID++; graphID = lastGraphID++;
} }
public PowerGraph(boolean noEntity){
entity = null;
graphID = lastGraphID++;
}
public int getID(){ public int getID(){
return graphID; return graphID;
} }
@@ -251,11 +256,12 @@ public class PowerGraph{
public void addGraph(PowerGraph graph){ public void addGraph(PowerGraph graph){
if(graph == this) return; if(graph == this) return;
//other entity should be removed as the graph was merged //other entity should be removed as the graph was merged
graph.entity.remove(); if(graph.entity != null) graph.entity.remove();
for(Building tile : graph.all){ for(Building tile : graph.all){
add(tile); add(tile);
} }
checkAdd();
} }
public void add(Building build){ public void add(Building build){
@@ -264,14 +270,12 @@ public class PowerGraph{
if(build.power.graph != this || !build.power.init){ if(build.power.graph != this || !build.power.init){
//any old graph that is added here MUST be invalid, remove it //any old graph that is added here MUST be invalid, remove it
if(build.power.graph != null && build.power.graph != this){ if(build.power.graph != null && build.power.graph != this){
build.power.graph.entity.remove(); if(build.power.graph.entity != null) build.power.graph.entity.remove();
} }
build.power.graph = this; build.power.graph = this;
build.power.init = true; build.power.init = true;
all.add(build); all.add(build);
//there's something to update, add the entity
entity.add();
if(build.block.outputsPower && build.block.consumesPower && !build.block.consPower.buffered){ if(build.block.outputsPower && build.block.consumesPower && !build.block.consPower.buffered){
producers.add(build); producers.add(build);
@@ -286,13 +290,17 @@ public class PowerGraph{
} }
} }
public void checkAdd(){
if(entity != null) entity.add();
}
public void clear(){ public void clear(){
all.clear(); all.clear();
producers.clear(); producers.clear();
consumers.clear(); consumers.clear();
batteries.clear(); batteries.clear();
//nothing left //nothing left
entity.remove(); if(entity != null) entity.remove();
} }
public void reflow(Building tile){ public void reflow(Building tile){
@@ -302,6 +310,7 @@ public class PowerGraph{
while(queue.size > 0){ while(queue.size > 0){
Building child = queue.removeFirst(); Building child = queue.removeFirst();
add(child); add(child);
checkAdd();
for(Building next : child.getPowerConnections(outArray2)){ for(Building next : child.getPowerConnections(outArray2)){
if(closedSet.add(next.pos())){ if(closedSet.add(next.pos())){
queue.addLast(next); queue.addLast(next);
@@ -329,6 +338,7 @@ public class PowerGraph{
//create graph for this branch //create graph for this branch
PowerGraph graph = new PowerGraph(); PowerGraph graph = new PowerGraph();
graph.checkAdd();
graph.add(other); graph.add(other);
//add to queue for BFS //add to queue for BFS
queue.clear(); queue.clear();
@@ -353,7 +363,7 @@ public class PowerGraph{
} }
//implied empty graph here //implied empty graph here
entity.remove(); if(entity != null) entity.remove();
} }
@Deprecated @Deprecated

View File

@@ -14,6 +14,7 @@ import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.ui.*; import mindustry.ui.*;
import mindustry.world.blocks.heat.*; import mindustry.world.blocks.heat.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*; import static mindustry.Vars.*;
@@ -61,6 +62,13 @@ public class VariableReactor extends PowerGenerator{
() -> entity.heat / maxHeat)); () -> entity.heat / maxHeat));
} }
@Override
public void setStats(){
super.setStats();
stats.add(Stat.input, maxHeat, StatUnit.heatUnits);
}
//TODO: draw warmup fraction on block? //TODO: draw warmup fraction on block?
public class VariableReactorBuild extends GeneratorBuild implements HeatConsumer{ public class VariableReactorBuild extends GeneratorBuild implements HeatConsumer{
public float[] sideHeat = new float[4]; public float[] sideHeat = new float[4];
@@ -70,7 +78,7 @@ public class VariableReactor extends PowerGenerator{
public void updateTile(){ public void updateTile(){
heat = calculateHeat(sideHeat); heat = calculateHeat(sideHeat);
productionEfficiency = Mathf.clamp(heat / maxHeat); productionEfficiency = Mathf.clamp(heat / maxHeat) * efficiency;
warmup = Mathf.lerpDelta(warmup, productionEfficiency > 0 ? 1f : 0f, warmupSpeed); warmup = Mathf.lerpDelta(warmup, productionEfficiency > 0 ? 1f : 0f, warmupSpeed);
if(instability >= 1f){ if(instability >= 1f){

View File

@@ -3,11 +3,13 @@ package mindustry.world.blocks.production;
import arc.graphics.*; import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.math.*; import arc.math.*;
import arc.struct.*;
import arc.util.*; import arc.util.*;
import mindustry.annotations.Annotations.*; import mindustry.annotations.Annotations.*;
import mindustry.content.*; import mindustry.content.*;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.type.*;
public class BurstDrill extends Drill{ public class BurstDrill extends Drill{
public float shake = 2f; public float shake = 2f;
@@ -24,6 +26,9 @@ public class BurstDrill extends Drill{
public Color arrowColor = Color.valueOf("feb380"), baseArrowColor = Color.valueOf("6e7080"); public Color arrowColor = Color.valueOf("feb380"), baseArrowColor = Color.valueOf("6e7080");
public Color glowColor = arrowColor.cpy(); public Color glowColor = arrowColor.cpy();
/** Multipliers of drill speed for each item. Defaults to 1. */
public ObjectFloatMap<Item> drillMultipliers = new ObjectFloatMap<>();
public BurstDrill(String name){ public BurstDrill(String name){
super(name); super(name);
@@ -40,6 +45,11 @@ public class BurstDrill extends Drill{
return new TextureRegion[]{region, topRegion}; return new TextureRegion[]{region, topRegion};
} }
@Override
public float getDrillTime(Item item){
return drillTime / drillMultipliers.get(item, 1f);
}
public class BurstDrillBuild extends DrillBuild{ public class BurstDrillBuild extends DrillBuild{
//used so the lights don't fade out immediately //used so the lights don't fade out immediately
public float smoothProgress = 0f; public float smoothProgress = 0f;
@@ -57,6 +67,8 @@ public class BurstDrill extends Drill{
dump(items.has(dominantItem) ? dominantItem : null); dump(items.has(dominantItem) ? dominantItem : null);
} }
float drillTime = getDrillTime(dominantItem);
smoothProgress = Mathf.lerpDelta(smoothProgress, progress / (drillTime - 20f), 0.1f); smoothProgress = Mathf.lerpDelta(smoothProgress, progress / (drillTime - 20f), 0.1f);
if(items.total() <= itemCapacity - dominantItems && dominantItems > 0 && efficiency > 0){ if(items.total() <= itemCapacity - dominantItems && dominantItems > 0 && efficiency > 0){

View File

@@ -135,7 +135,7 @@ public class Drill extends Block{
countOre(tile); countOre(tile);
if(returnItem != null){ if(returnItem != null){
float width = drawPlaceText(Core.bundle.formatFloat("bar.drillspeed", 60f / (drillTime + hardnessDrillMultiplier * returnItem.hardness) * returnCount, 2), x, y, valid); float width = drawPlaceText(Core.bundle.formatFloat("bar.drillspeed", 60f / getDrillTime(returnItem) * returnCount, 2), x, y, valid);
float dx = x * tilesize + offset - width/2f - 4f, dy = y * tilesize + offset + size * tilesize / 2f + 5, s = iconSmall / 4f; float dx = x * tilesize + offset - width/2f - 4f, dy = y * tilesize + offset + size * tilesize / 2f + 5, s = iconSmall / 4f;
Draw.mixcol(Color.darkGray, 1f); Draw.mixcol(Color.darkGray, 1f);
Draw.rect(returnItem.fullIcon, dx, dy - 1, s, s); Draw.rect(returnItem.fullIcon, dx, dy - 1, s, s);
@@ -156,6 +156,10 @@ public class Drill extends Block{
} }
} }
public float getDrillTime(Item item){
return drillTime + hardnessDrillMultiplier * item.hardness;
}
@Override @Override
public void setStats(){ public void setStats(){
super.setStats(); super.setStats();
@@ -274,10 +278,12 @@ public class Drill extends Block{
timeDrilled += warmup * delta(); timeDrilled += warmup * delta();
float delay = getDrillTime(dominantItem);
if(items.total() < itemCapacity && dominantItems > 0 && efficiency > 0){ if(items.total() < itemCapacity && dominantItems > 0 && efficiency > 0){
float speed = Mathf.lerp(1f, liquidBoostIntensity, optionalEfficiency) * efficiency; float speed = Mathf.lerp(1f, liquidBoostIntensity, optionalEfficiency) * efficiency;
lastDrillSpeed = (speed * dominantItems * warmup) / (drillTime + hardnessDrillMultiplier * dominantItem.hardness); lastDrillSpeed = (speed * dominantItems * warmup) / delay;
warmup = Mathf.approachDelta(warmup, speed, warmupSpeed); warmup = Mathf.approachDelta(warmup, speed, warmupSpeed);
progress += delta() * dominantItems * speed * warmup; progress += delta() * dominantItems * speed * warmup;
@@ -289,8 +295,6 @@ public class Drill extends Block{
return; return;
} }
float delay = drillTime + hardnessDrillMultiplier * dominantItem.hardness;
if(dominantItems > 0 && progress >= delay && items.total() < itemCapacity){ if(dominantItems > 0 && progress >= delay && items.total() < itemCapacity){
offload(dominantItem); offload(dominantItem);
@@ -302,7 +306,7 @@ public class Drill extends Block{
@Override @Override
public double sense(LAccess sensor){ public double sense(LAccess sensor){
if(sensor == LAccess.progress && dominantItem != null) return Mathf.clamp(progress / (drillTime + hardnessDrillMultiplier * dominantItem.hardness)); if(sensor == LAccess.progress && dominantItem != null) return Mathf.clamp(progress / getDrillTime(dominantItem));
return super.sense(sensor); return super.sense(sensor);
} }

View File

@@ -7,8 +7,6 @@ import mindustry.world.meta.*;
/** An abstract class that defines a type of resource that a block can consume. */ /** An abstract class that defines a type of resource that a block can consume. */
public abstract class Consume{ public abstract class Consume{
//TODO maybe remove these and make it an interface if possible?
/** If true, this consumer will not influence consumer validity. */ /** If true, this consumer will not influence consumer validity. */
public boolean optional; public boolean optional;
/** If true, this consumer will be displayed as a boost input. */ /** If true, this consumer will be displayed as a boost input. */
@@ -61,7 +59,4 @@ public abstract class Consume{
} }
public void display(Stats stats){} public void display(Stats stats){}
//TODO this should use efficiency instead - remove or deprecate
//public abstract boolean valid(Building build);
} }

View File

@@ -98,7 +98,7 @@
}, },
{ {
"name": "OMNIDUSTRY", "name": "OMNIDUSTRY",
"address": ["109.94.209.233:6569","109.94.209.233:6570","109.94.209.233:6571"] "address": ["109.94.209.233:6569","109.94.209.233:6570","109.94.209.233:6571","109.94.209.233:6572"]
}, },
{ {
"name": "The Devil", "name": "The Devil",