mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-03-11 18:39:16 +07:00
Merge branch 'master' of https://github.com/Anuken/Mindustry into v104
This commit is contained in:
commit
c60f817f2c
@ -8,7 +8,7 @@ You may want to add your server to this list. The steps for getting this done ar
|
||||
1. **Ensure your server is properly moderated.** For the most part, this applies to survival servers, but PvP servers can be affected as well.
|
||||
You'll need to either hire some moderators, or make use of (currently non-existent) anti-grief and anti-curse plugins.
|
||||
*Consider enabling a rate limit:* `config messageRateLimit 2` will make it so that players can only send messages every 2 seconds, for example.
|
||||
2. **Set an approppriate MOTD, name and description.** This is set with `config <name/desc/motd> <value>`. "Approppriate" means that:
|
||||
2. **Set an appropriate MOTD, name and description.** This is set with `config <name/desc/motd> <value>`. "Appropriate" means that:
|
||||
- Your name or description must reflect the type of server you're hosting.
|
||||
Since new players may be exposed to the server list early on, put in a phrase like "Co-op survival" or "PvP" so players know what they're getting into. Yes, this is also displayed in the server mode info text, but having extra info in the name doesn't hurt.
|
||||
- Make sure players know where to refer to for server support. It should be fairly clear that the server owner is not me, but you.
|
||||
|
@ -122,11 +122,11 @@ public class AssetsProcess extends BaseProcessor{
|
||||
|
||||
dispose.addStatement("arc.Core.assets.unload(" + filename + ")");
|
||||
dispose.addStatement(name + " = null");
|
||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||
});
|
||||
|
||||
if(classname.equals("Sounds")){
|
||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||
type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), "none", Modifier.STATIC, Modifier.PUBLIC).initializer("new arc.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build());
|
||||
}
|
||||
|
||||
type.addMethod(loadBegin.build());
|
||||
|
@ -21,7 +21,7 @@ public class SerializeProcess extends BaseProcessor{
|
||||
/** Target class name. */
|
||||
private static final String className = "Serialization";
|
||||
/** Name of the base package to put all the generated classes. */
|
||||
private static final String data = "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";
|
||||
private static final String data = "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";
|
||||
|
||||
@Override
|
||||
public void process(RoundEnvironment env) throws Exception{
|
||||
|
@ -39,7 +39,6 @@ be.check = Check for updates
|
||||
schematic = Schematic
|
||||
schematic.add = Save Schematic...
|
||||
schematics = Schematics
|
||||
schematic.replace = A schematic by that name already exists. Replace it?
|
||||
schematic.import = Import Schematic...
|
||||
schematic.exportfile = Export File
|
||||
schematic.importfile = Import File
|
||||
@ -65,7 +64,7 @@ stat.rank = Final Rank: [accent]{0}
|
||||
launcheditems = [accent]Launched Items
|
||||
launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue.
|
||||
map.delete = Are you sure you want to delete the map "[accent]{0}[]"?
|
||||
level.highscore = High Score: [accent]{0}
|
||||
level.highscore = High Score: [accent]{0}1
|
||||
level.select = Level Select
|
||||
level.mode = Gamemode:
|
||||
showagain = Don't show again next session
|
||||
@ -664,7 +663,7 @@ setting.borderlesswindow.name = Borderless Window[lightgray] (may require restar
|
||||
setting.fps.name = Show FPS & Ping
|
||||
setting.blockselectkeys.name = Show Block Select Keys
|
||||
setting.vsync.name = VSync
|
||||
setting.pixelate.name = Pixelate[lightgray] (disables animations)
|
||||
setting.pixelate.name = Pixelate
|
||||
setting.minimap.name = Show Minimap
|
||||
setting.position.name = Show Player Position
|
||||
setting.musicvol.name = Music Volume
|
||||
|
@ -59,6 +59,7 @@ stat.built = Estructuras Construidas:[accent] {0}
|
||||
stat.destroyed = Estructuras Destruidas:[accent] {0}
|
||||
stat.deconstructed = Estructuras Desconstruidas:[accent] {0}
|
||||
stat.delivered = Recursos Lanzados:
|
||||
stat.playtime= Tiempo jugado:[accent] {0}
|
||||
stat.rank = Rango final: [accent]{0}
|
||||
|
||||
launcheditems = [accent]Recursos Lanzados
|
||||
@ -104,6 +105,7 @@ mods.none = [LIGHT_GRAY]No se encontraron Mods!
|
||||
mods.guide = Guia de Modding
|
||||
mods.report = Reportar Error
|
||||
mods.openfolder = Abrir carpeta de mods
|
||||
mod. display = [greay] mod: [orange] {0}
|
||||
mod.enabled = [lightgray]Activado
|
||||
mod.disabled = [scarlet]Desactivado
|
||||
mod.disable = Desactivar
|
||||
@ -170,6 +172,11 @@ hosts.discovering.any = Descubrir juegos
|
||||
server.refreshing = Actualizando servidor...
|
||||
hosts.none = [lightgray]¡No se han encontrado partidas LAN!
|
||||
host.invalid = [scarlet]No se ha podido conectar al anfitrión.
|
||||
|
||||
servers.local = Servidores Locales
|
||||
servers. remote = Servidores Remotos
|
||||
servers.global = Global Servers
|
||||
|
||||
trace = Rastrear Jugador
|
||||
trace.playername = Nombre de jugador: [accent]{0}
|
||||
trace.ip = IP: [accent]{0}
|
||||
@ -251,6 +258,7 @@ copylink = Copiar Enlace
|
||||
back = Atrás
|
||||
data.export = Exportar Datos
|
||||
data.import = Importar Datos
|
||||
data.openfolder = Abrir Carpeta de Datos
|
||||
data.exported = Datos exportados.
|
||||
data.invalid = Esta data del juego no es valida.
|
||||
data.import.confirm = Importando los datos externos borrará[scarlet] todo[] tu progreso.\n[accent]Esto no se puede rehacer![]\n\nUna vez que los datos hayan sido importados, el juego saldrá automaticamente.
|
||||
@ -261,7 +269,7 @@ quit.confirm.tutorial = ¿Estás seguro de que sabes qué estas haciendo?\nSe pu
|
||||
loading = [accent]Cargando...
|
||||
reloading = [accent]Recargando mods...
|
||||
saving = [accent]Guardando...
|
||||
cancelbuilding = [accent][[{0}][] para impiar el plan
|
||||
cancelbuilding = [accent][[{0}][] para limpiar el plan
|
||||
selectschematic = [accent][[{0}][] para seleccionar+copiar
|
||||
pausebuilding = [accent][[{0}][] para pausar la construcción
|
||||
resumebuilding = [scarlet][[{0}][] para resumir la construcción
|
||||
@ -531,6 +539,8 @@ error.crashtitle = Un error ha ocurrido.
|
||||
blocks.input = Entrada
|
||||
blocks.output = Salida
|
||||
blocks.booster = Potenciador
|
||||
block.tiles = Casillas Requeridas
|
||||
block.affinities = Afinidades
|
||||
block.unknown = [LIGHT_GRAY]???
|
||||
blocks.powercapacity = Capacidad de Energía
|
||||
blocks.powershot = Energía/Disparo
|
||||
@ -665,9 +675,11 @@ setting.mutesound.name = Silenciar Sonido
|
||||
setting.crashreport.name = Enviar informes de fallos anónimos
|
||||
setting.savecreate.name = Crear puntos de guardado automáticamente
|
||||
setting.publichost.name = Visibilidad del juego público
|
||||
setting.playerlimit.name = Limite de Jugadores
|
||||
setting.chatopacity.name = Opacidad del Chat
|
||||
setting.lasersopacity.name = Opacidad de los rayos láser
|
||||
setting.playerchat.name = Mostrar el chat in-game
|
||||
setting.bridgeopacity.name = Opacidad de Puentes
|
||||
setting.playerchat.name = Mostrar el chat de burbuja
|
||||
public.confirm = ¿Quieres hacer público tu juego?\n[lightgray]Esto se puede cambiar más tarde en Configuración->Juego->Visibilidad pública del juego.
|
||||
public.beta = Recuerda que en las versiones beta del juego no puedes crear partidas públicas.
|
||||
uiscale.reset = La escala de la interfaz ha sido modificada con éxito.\nPulsa "OK" para conservar esta escala.\n[scarlet]Deshaciendo los cambios y saliendo al menu en [accent] {0}[]segundos...
|
||||
@ -885,7 +897,7 @@ block.snow.name = Nieve
|
||||
block.craters.name = Cráteres
|
||||
block.sand-water.name = Agua con Arena
|
||||
block.darksand-water.name = Agua con Arena Oscura
|
||||
block.char.name = Charbonizado
|
||||
block.char.name = Carbonizado
|
||||
block.holostone.name = Piedra hologramatica
|
||||
block.ice-snow.name = Hielo Nieve
|
||||
block.rocks.name = Rocas
|
||||
@ -926,7 +938,7 @@ block.door.name = Puerta
|
||||
block.door-large.name = Puerta Grande
|
||||
block.duo.name = Dúo
|
||||
block.scorch.name = Quemador
|
||||
block.scatter.name = Scatter
|
||||
block.scatter.name = Dispersor
|
||||
block.hail.name = Granizo
|
||||
block.lancer.name = Lancero
|
||||
block.conveyor.name = Cinta Transportadora
|
||||
@ -942,6 +954,7 @@ block.message.name = Mensaje
|
||||
block.illuminator.name = Iluminador
|
||||
block.illuminator.description = Una fuente de luz pequeña, compacta y configurable. Requiere poder para funcionar.
|
||||
block.overflow-gate.name = Compuerta de Desborde
|
||||
block.underflow-gate.name = Compuerta de Subdesbordamiento
|
||||
block.silicon-smelter.name = Horno para Silicona
|
||||
block.phase-weaver.name = Tejedor de Fase
|
||||
block.pulverizer.name = Pulverizador
|
||||
@ -983,8 +996,8 @@ block.power-void.name = Vacío de energía
|
||||
block.power-source.name = Energía Infinita
|
||||
block.unloader.name = Descargador
|
||||
block.vault.name = Bóveda
|
||||
block.wave.name = Horda
|
||||
block.swarmer.name = Enjambredor
|
||||
block.wave.name = Ola
|
||||
block.swarmer.name = Enjambre
|
||||
block.salvo.name = Salva
|
||||
block.ripple.name = Onda
|
||||
block.phase-conveyor.name = Cinta Transportadora de Fase
|
||||
@ -1057,7 +1070,7 @@ unit.revenant.name = Revenante
|
||||
unit.eruptor.name = Erupcionador
|
||||
unit.chaos-array.name = Matriz del caos
|
||||
unit.eradicator.name = Erradicador
|
||||
unit.lich.name = Lich
|
||||
unit.lich.name = Exánime
|
||||
unit.reaper.name = Segador
|
||||
tutorial.next = [lightgray]<Toca para continuar>
|
||||
tutorial.intro = Has entrado en el[scarlet]Tutorial de Mindustry.[]\nComienza[accent]minando cobre[]. Toca en una veta de cobre cercana al núcleo para hacer esto.\n\n[accent]{0}/{1} cobre
|
||||
@ -1172,6 +1185,7 @@ block.inverted-sorter.description = Procesa elementos como un clasificador está
|
||||
block.router.description = Acepta objetos de una dirección y deja objetos equitativamente en hasta 3 direcciones diferentes. Útil para dividir los materiales de una fuente de recursos a múltiples objetivos.
|
||||
block.distributor.description = Un enrutador avanzado que distribuye objetos equitativamente en hasta otras 7 direcciones.
|
||||
block.overflow-gate.description = Un enrutador que solo saca por la izquierda y la derecha si la cinta del frente está llena.
|
||||
block.underflow-gate.description = El opuesto de la compuerda de desborde. Solo dispensa hacia el frente si los lados están bloqueados.
|
||||
block.mass-driver.description = El mejor bloque de transorte. Recoge varios objetos y los dispara a otro conductor de masa en un largo rango.
|
||||
block.mechanical-pump.description = Una bomba barata con extracción lenta, pero sin uso de energía.
|
||||
block.rotary-pump.description = Una bomba avanzada. Bombea más líquido, pero requiere energía.
|
||||
@ -1199,13 +1213,13 @@ block.solar-panel.description = Proporciona una pequeña cantidad de energía pr
|
||||
block.solar-panel-large.description = Genera un mucho mejor suministro de energía que un panel solar estándar, pero también es mucho más caro de construir.
|
||||
block.thorium-reactor.description = Genera grandes cantidades de energía del torio altamente radioactivo. Necesita enfriamiento constante. Explotará violentamente si no se le aporta suficiente enfriamiento.
|
||||
block.impact-reactor.description = Un generador avanzado, capaz de crear cantidades masivas de energía a máxima eficiencia. Requiere una cantidad significante de energía para impulsar el comienzo del proceso.
|
||||
block.mechanical-drill.description = Un taladro barato. Cuando es colocado en casillas apropiadas, extrae objetos lentamente de forma indefinida.
|
||||
block.pneumatic-drill.description = Un taladro mejorado que es más rápido y puede obtener minerales más duros usando la presión.
|
||||
block.mechanical-drill.description = Un taladro barato. Cuando es colocado en casillas apropiadas, extrae objetos lentamente de forma indefinida. Solo es capaz de minar recursos básicos.
|
||||
block.pneumatic-drill.description = Un taladro mejorado, es capaz de minar titanio más rápido que un taladro mécanico.
|
||||
block.laser-drill.description = Permite obtener minerales incluso más rápido con la tecnología láser, pero requiere energía. Además, se puede obtener torio radioactivo con este taladro.
|
||||
block.blast-drill.description = El mejor taladro. Requiere grandes cantidades de energía.
|
||||
block.water-extractor.description = Extrae agua de la tierra. Úsalo cuando no haya lagos cercanos.
|
||||
block.cultivator.description = Cultiva la tierra para obtener biomateria.
|
||||
block.oil-extractor.description = Usa grandes cantidades de energía para extraer aceite de la arena. Úsalo cuando no hay fuentes directas de aceite cerca.
|
||||
block.cultivator.description = Cultiva concentraciones de esporas en la atmosfera a vainas.
|
||||
block.oil-extractor.description = Usa grandes cantidades de energía, arena y agua para obtener petróleo. Úsalo cuando no hay fuentes directas de petróleo cerca.
|
||||
block.core-shard.description = La primera iteración de la cápsula del núcleo. Una vez destruido, todo el contacto con la región es perdido. No permitas que esto ocurra.
|
||||
block.core-foundation.description = La segunda versión del núcleo. Mejor blindado. Almacena más recursos.
|
||||
block.core-nucleus.description = La tercera y última iteración de la cápsula del núcleo. Muy bien blindado. Almacena cantidades masivas dde recursos.
|
||||
@ -1214,30 +1228,30 @@ block.container.description = Almacena una pequeña cantidad de objetos. Úsalo
|
||||
block.unloader.description = Descarga objetos de un contenedor, almacén o el núcleo a un transportador o directamente a un bloque adyacente. El tipo de objeto descargado puede ser cambiado tocando el descagador.
|
||||
block.launch-pad.description = Lanza paquetes de recursos sin necesitar lanzar con el núcleo.
|
||||
block.launch-pad-large.description = Una versión mejorada del pad de lanzamiento. Almacena más recursos y los lanza más frecuentemente.
|
||||
block.duo.description = Una torre pequeña y barata.
|
||||
block.scatter.description = Una torreta antiaérea de tamaño medio. Dispara fuego aéreo de plomo o chatarra a las unidades enemigas.
|
||||
block.duo.description = Una torre pequeña y barata. Útil contra enemigos terrestres.
|
||||
block.scatter.description = Una torreta escencial antiaérea de tamaño medio. Dispara fuego anti-aéreo de plomo o chatarra a las unidades enemigas.
|
||||
block.scorch.description = Quema a cualquier enemigo terrestre cercano a él. Altamente efectivo a corto alcance.
|
||||
block.hail.description = Una torre de artillería pequeña.
|
||||
block.wave.description = Una torre de tamaño mediano que dispara burbujas de líquido.
|
||||
block.lancer.description = Una torre de tamaño mediano que dispara rayos cargados eléctricamente.
|
||||
block.arc.description = Una torre pequeña que disapra electricidad en un arco aleatorio al enemigo.
|
||||
block.swarmer.description = Una torre de tamaño mediano que dispara misiles en grupo.
|
||||
block.salvo.description = Una torre de tramaño mediano que dispara balas en salvos.
|
||||
block.fuse.description = Una torre grande que dispara rayos poderosos de corto alcance.
|
||||
block.ripple.description = Una torre de artillería grande que dispara varios disparos simultáneamente.
|
||||
block.cyclone.description = Una torre de disparo rápido grande.
|
||||
block.spectre.description = Una torre grande que dispara dos balas poderosas de una vez.
|
||||
block.meltdown.description = Una torre grande que dispara rayos poderosos de largo alcance.
|
||||
block.hail.description = Una torre de artillería pequeña de largo alcance.
|
||||
block.wave.description = Una torre de tamaño mediano. Dispara chorros de líquido a enemigos. Automaticamente apaga fuegos cuando recibe agua.
|
||||
block.lancer.description = Una torre láser anti-terrestre de tamaño mediano. Dispara y carga poderosos rayos de energía.
|
||||
block.arc.description = Una pequeña torre eléctrica de rango corto. Dispara arcos de electricidad a los enemigos.
|
||||
block.swarmer.description = Una torre de tamaño mediano que dispara misiles. Ataca a aire y tierra. Dispara misiles teledirigidos.
|
||||
block.salvo.description = Una versión más grande y avanzada dela torre dúo. Dispara salvas rápidas al enemigo
|
||||
block.fuse.description = Una torre grande de energía de corto alcance. Dispara tres rayos perforantes a enemigos cercanos.
|
||||
block.ripple.description = Una extramadamente poderosa torre. Dispara conjuntos de balas a los enemigos en grandes distancias.
|
||||
block.cyclone.description = Una torre grande anti-aérea y anti-terrestre. Dispara conjuntos explosivos de Flak a enemigos cercanos.
|
||||
block.spectre.description = Un cañon masivo de dos barriles. Dispara balas perforantes a objetivos de aire y tierra.
|
||||
block.meltdown.description = Un cañon láser masivo. Carga y dispara un rayo láser constante a enemigos cercanos. Requiere enfriamiento para operar.
|
||||
block.command-center.description = Emite comandos de movimiento a las unidades aliadas en el mapa.\nHace que las unidades patrullen, ataquen un núcleo enemigo o se retiren al núcleo / fábrica. When no enemy core is present, units will default to patrolling under the attack command.
|
||||
block.draug-factory.description = Producedrones mineros primitivos.
|
||||
block.spirit-factory.description = Produce drones ligeros que obtienen minerales y reparan bloques.
|
||||
block.phantom-factory.description = Produce drones avanzados que son significativamente más eficientes que un dron espíritu.
|
||||
block.draug-factory.description = Produce drones mineros primitivos.
|
||||
block.spirit-factory.description = Produce drones ligeros que reparan bloques.
|
||||
block.phantom-factory.description = Produce drones avanzados de construcción.
|
||||
block.wraith-factory.description = Produce unidades aéreas rápidas e interceptoras.
|
||||
block.ghoul-factory.description = Produce unidades bombarderas pesadas.
|
||||
block.revenant-factory.description = Produce unidades terrestres láser pesadas.
|
||||
block.revenant-factory.description = Produce unidades aéreas lanzamisiles pesadas.
|
||||
block.dagger-factory.description = Produce unidades terrestres básicas.
|
||||
block.crawler-factory.description = Produces fast self-destructing swarm units.
|
||||
block.titan-factory.description = Produce unidades terrestres avanzadas.
|
||||
block.crawler-factory.description = Produce unidades rápidas terrestres explosivas.
|
||||
block.titan-factory.description = Produce unidades terrestres avanzadas con armadura.
|
||||
block.fortress-factory.description = Produce unidades terrestres de artillería pesada.
|
||||
block.repair-point.description = Repara la unidad dañada más cercana a su alrededor.
|
||||
block.dart-mech-pad.description = Proporciona transformación en un mecanoide de ataque básico.\nÚsalo tocándolo mientras estés en él.
|
||||
|
@ -59,6 +59,7 @@ stat.built = Construções construídas:[accent] {0}
|
||||
stat.destroyed = Construções destruídas:[accent] {0}
|
||||
stat.deconstructed = Construções desconstruídas:[accent] {0}
|
||||
stat.delivered = Recursos lançados:
|
||||
stat.playtime = Tempo jogado:[accent] {0}
|
||||
stat.rank = Rank Final: [accent]{0}
|
||||
|
||||
launcheditems = [accent]Itens lançados
|
||||
@ -103,7 +104,8 @@ mods = Mods
|
||||
mods.none = [LIGHT_GRAY]Mods não encontrados!
|
||||
mods.guide = Guia de mods
|
||||
mods.report = Reportar Bug
|
||||
mods.openfolder = Open Mod Folder
|
||||
mods.openfolder = Abrir pasta de Mods
|
||||
mod.display = [gray]Mod:[orange] {0}
|
||||
mod.enabled = [lightgray]Ativado
|
||||
mod.disabled = [scarlet]Desativado
|
||||
mod.disable = Desativar
|
||||
@ -167,9 +169,14 @@ hosting = [accent]Abrindo servidor...
|
||||
hosts.refresh = Atualizar
|
||||
hosts.discovering = Descobrindo jogos em lan
|
||||
hosts.discovering.any = Descobrindo jogos
|
||||
server.refreshing = Atualizando servidor
|
||||
server.refreshing = A atualizar servidor
|
||||
hosts.none = [lightgray]Nenhum jogo lan encontrado!
|
||||
host.invalid = [scarlet]Não foi possivel Hospedar.
|
||||
|
||||
servers.local = Servidores Locais
|
||||
servers.remote = Servidores Remotos
|
||||
servers.global = Servidores Globais
|
||||
|
||||
trace = Traçar jogador
|
||||
trace.playername = Nome do jogador: [accent]{0}
|
||||
trace.ip = IP: [accent]{0}
|
||||
@ -251,6 +258,7 @@ copylink = Copiar ligação
|
||||
back = Voltar
|
||||
data.export = Exportar dados
|
||||
data.import = Importar dados
|
||||
data.openfolder = Abrir pasta de dados
|
||||
data.exported = Dados exportados.
|
||||
data.invalid = Estes dados de jogo não são válidos.
|
||||
data.import.confirm = Importar dados externos irá deletar[scarlet] todos[] os seus dados atuais.\n[accent]Isso não pode ser desfeito![]\n\nQuando sua data é importada, seu jogo ira sair imediatamente.
|
||||
@ -530,6 +538,8 @@ error.title = [crimson]Ocorreu um Erro.
|
||||
error.crashtitle = Ocorreu um Erro
|
||||
blocks.input = Entrada
|
||||
blocks.output = Saida
|
||||
blocks.tiles = Telhas Requeridas
|
||||
blocks.affinities = Afinidades
|
||||
blocks.booster = Booster
|
||||
block.unknown = [LIGHT_GRAY]???
|
||||
blocks.powercapacity = Capacidade de Energia
|
||||
@ -641,14 +651,14 @@ setting.difficulty.insane = Insano
|
||||
setting.difficulty.name = Dificuldade
|
||||
setting.screenshake.name = Balanço do Ecrã
|
||||
setting.effects.name = Efeitos
|
||||
setting.destroyedblocks.name = Display Destroyed Blocks
|
||||
setting.conveyorpathfinding.name = Conveyor Placement Pathfinding
|
||||
setting.coreselect.name = Allow Schematic Cores
|
||||
setting.destroyedblocks.name = Mostrar Blocos Destruidos
|
||||
setting.conveyorpathfinding.name = Localização do caminho do transportador
|
||||
setting.coreselect.name = Permitir cores esquemáticas
|
||||
setting.sensitivity.name = Sensibilidade do Controle
|
||||
setting.saveinterval.name = Intervalo de autogravamento
|
||||
setting.seconds = {0} Segundos
|
||||
setting.blockselecttimeout.name = Block Select Timeout
|
||||
setting.milliseconds = {0} milliseconds
|
||||
setting.blockselecttimeout.name = Tempo limite de seleção do bloco
|
||||
setting.milliseconds = {0} milissegundos
|
||||
setting.fullscreen.name = Ecrã inteiro
|
||||
setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar)
|
||||
setting.fps.name = Mostrar FPS
|
||||
@ -665,8 +675,10 @@ setting.mutesound.name = Desligar Som
|
||||
setting.crashreport.name = Enviar denuncias de crash anonimas
|
||||
setting.savecreate.name = Criar gravamentos automaticamente
|
||||
setting.publichost.name = Visibilidade do jogo público
|
||||
setting.playerlimit.name = Limite de Jogadores
|
||||
setting.chatopacity.name = Opacidade do chat
|
||||
setting.lasersopacity.name = Opacidade do Power Laser
|
||||
setting.bridgeopacity.name = Opacidade da Ponte
|
||||
setting.playerchat.name = Mostrar chat em jogo
|
||||
public.confirm = Queres que o teu jogo fique publico?\n[accent]Qualquer jogador vai conseguir juntar-se ao teu jogo.\n[lightgray]Isto pode ser alterado mais tarde in Settings->Game->Public Game Visibility.
|
||||
public.beta = Observe que as versões beta do jogo não podem criar lobbies públicos.
|
||||
@ -942,6 +954,7 @@ block.message.name = Mensagem
|
||||
block.illuminator.name = Illuminator
|
||||
block.illuminator.description = A small, compact, configurable light source. Requires power to function.
|
||||
block.overflow-gate.name = Portão Sobrecarregado
|
||||
block.underflow-gate.name = Portão Desobrecarregado
|
||||
block.silicon-smelter.name = Fundidora de silicio
|
||||
block.phase-weaver.name = Palheta de fase
|
||||
block.pulverizer.name = Pulverizador
|
||||
@ -1130,7 +1143,7 @@ block.phase-weaver.description = Produz tecido de fase usando tório radioativo
|
||||
block.alloy-smelter.description = Combina titânio, chumbo, silicio e cobre para produzir liga de surto.
|
||||
block.cryofluidmixer.description = Mistura água e pó fino de titânio para produzir criofluido. Essencial para o uso do reator a tório.
|
||||
block.blast-mixer.description = Quebra e mistura aglomerados de esporos com piratita para produzir composto de explosão.
|
||||
block.pyratite-mixer.description = Mistura carvão, cobre e areia em piratita altamente inflamável
|
||||
block.pyratite-mixer.description = Mistura carvão, chumbo e areia em piratita altamente inflamável
|
||||
block.melter.description = Derrete sucata em escória para processamento posterior ou uso em torretas.
|
||||
block.separator.description = Separa escória em seus minerais componentes, oferece o resultado refriado.
|
||||
block.spore-press.description = Comprime cápsulas de esporos em petróleo.
|
||||
@ -1172,6 +1185,7 @@ block.inverted-sorter.description = Processes items like a standard sorter, but
|
||||
block.router.description = Aceita itens de uma direção e os divide em 3 direções igualmente. Util para espalhar materiais da fonte para multiplos alvos.
|
||||
block.distributor.description = Um roteador avancada que espalhas os itens em 7 outras direções igualmente.
|
||||
block.overflow-gate.description = Uma combinação de roteador e divisor Que apenas manda para a esquerda e Direita se a frente estiver bloqueada.
|
||||
block.underflow-gate.description = O oposto de um portão de transbordamento. Saídas para a frente se os caminhos esquerdo e direito estiverem bloqueados.
|
||||
block.mass-driver.description = Bloco de transporte de itens supremo. Coleta itens severos e atira eles em outro mass driver de uma longa distancia.
|
||||
block.mechanical-pump.description = Uma bomba barata com baixa saída de líquidos, mas sem consumo de energia.
|
||||
block.rotary-pump.description = Uma bomba avançada. Bombeia mais líquido, mas requer energia.
|
||||
@ -1246,4 +1260,4 @@ block.tau-mech-pad.description = Deixe sua atual embarcação e mude para o meca
|
||||
block.omega-mech-pad.description = Deixe sua atual embarcação e mude para o volumoso e bem armadurado meca feito para ataques da primeira linha.\nUse o pad clicando duas vezes em cima enquando fica em cima dele.
|
||||
block.javelin-ship-pad.description = Deixe sua atual embarcação e mude para um interceptador forte e rapido com armas de raio.\nUse o pad clicando duas vezes em cima enquando fica em cima dele.
|
||||
block.trident-ship-pad.description = Deixe sua atual embarcação e mude para um bombardeiro resionavelmente bem armadurado.\nUse o pad clicando duas vezes em cima enquando fica em cima dele.
|
||||
block.glaive-ship-pad.description = Deixe sua atual embarcação e mude para grande, bem armadurada nave de combate.\nUse o pad clicando duas vezes em cima enquando fica em cima dele.
|
||||
block.glaive-ship-pad.description = Deixe sua atual embarcação e mude para grande, bem armadurada nave de combate.\nUse o pad clicando duas vezes em cima enquando fica em cima dele.
|
@ -29,17 +29,17 @@ load.system = Sistem
|
||||
load.mod = Modlar
|
||||
load.scripts = Scripts
|
||||
|
||||
be.update = A new Bleeding Edge build is available:
|
||||
be.update.confirm = Download it and restart now?
|
||||
be.updating = Updating...
|
||||
be.ignore = Ignore
|
||||
be.noupdates = No updates found.
|
||||
be.check = Check for updates
|
||||
be.update = Yeni bir erken erişim sürümü var:
|
||||
be.update.confirm = Yüklenip yeniden başlatılsın mı?
|
||||
be.updating = Yeni sürüm yükleniyor...
|
||||
be.ignore = Hayır
|
||||
be.noupdates = Yeni güncelleme bulunamadı.
|
||||
be.check = Güncellemeleri kontrol et
|
||||
|
||||
schematic = Şema
|
||||
schematic.add = Şemayı Kaydet...
|
||||
schematics = Şemalar
|
||||
schematic.replace = A schematic by that name already exists. Replace it?
|
||||
schematic.replace = Aynı isimde bir şema zaten var. Üzerine yazılsın mı?
|
||||
schematic.import = Şema İçeri Aktar...
|
||||
schematic.exportfile = Dışa Aktar
|
||||
schematic.importfile = İçe Aktar
|
||||
@ -49,8 +49,8 @@ schematic.copy.import = Panodan İçeri Aktar
|
||||
schematic.shareworkshop = Workshop'ta Kaydet
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür
|
||||
schematic.saved = Şema Kaydedildi.
|
||||
schematic.delete.confirm = Bu şema tamamen yokedilecek.
|
||||
schematic.rename = Şemayı yeniden Adlandır
|
||||
schematic.delete.confirm = Bu şema tamamen yok edilecek.
|
||||
schematic.rename = Şemayı yeniden adlandır
|
||||
schematic.info = {0}x{1}, {2} blok
|
||||
|
||||
stat.wave = Yenilen Dalgalar:[accent] {0}
|
||||
@ -70,7 +70,7 @@ level.mode = Oyun Modu:
|
||||
showagain = Bir daha gösterme
|
||||
coreattack = < Merkez saldırı altında! >
|
||||
nearpoint = [[ [scarlet]İNİŞ PİSTİNDEN AYRIL[] ]\nimha tehlikesi
|
||||
database = Ana Veritabanı
|
||||
database = Çekirdek Veritabanı
|
||||
savegame = Oyunu Kaydet
|
||||
loadgame = Oyunu Yükle
|
||||
joingame = Oyuna Katıl
|
||||
@ -95,7 +95,7 @@ uploadingcontent = İçerik Yükleniyor
|
||||
uploadingpreviewfile = Önizleme Dosyası Yükleniyor
|
||||
committingchanges = Değişiklikler Uygulanıyor
|
||||
done = Bitti
|
||||
feature.unsupported = Your device does not support this feature.
|
||||
feature.unsupported = Cihazınızda bu özellik desteklenmemektedir.
|
||||
|
||||
mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin.
|
||||
mods.alpha = [accent](Alpha)
|
||||
@ -103,29 +103,29 @@ mods = Modlar
|
||||
mods.none = [LIGHT_GRAY]Hiç mod bulunamadı!
|
||||
mods.guide = Mod Rehberi
|
||||
mods.report = Hata bildir
|
||||
mods.openfolder = Open Mod Folder
|
||||
mods.openfolder = Mod klasörünü aç
|
||||
mod.enabled = [lightgray]Etkin
|
||||
mod.disabled = [scarlet]Devre Dışı
|
||||
mod.disable = Devre Dışı Bırak
|
||||
mod.delete.error = Unable to delete mod. File may be in use.
|
||||
mod.requiresversion = [scarlet]Requires min game version: [accent]{0}
|
||||
mod.missingdependencies = [scarlet]Missing dependencies: {0}
|
||||
mod.erroredcontent = [scarlet]Content Errors
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
|
||||
mod.delete.error = Mod silinemiyor. Dosya kullanımda olabilir.
|
||||
mod.requiresversion = [scarlet]Gereken en düşük oun versiyonu: [accent]{0}
|
||||
mod.missingdependencies = [scarlet]Bu modun çalışması için gereken modlar: {0}
|
||||
mod.erroredcontent = [scarlet]İçerik hatası.
|
||||
mod.errors = İçerik yüklenirken bir hata oluştu.
|
||||
mod.noerrorplay = [scarlet]Hatalı modlarınız var.[] Oynamadan önce bu modları devre dışı bırakın veya dosyadaki hataları düzeltin.
|
||||
mod.nowdisabled = [scarlet]'{0}' modunun çalışması için gerekli olan modlardan bazıları bulunamadı:[accent] {1}\n[lightgray]Önce bu modların indirilmesi gerekmektedir.\nBu mod otomatik olarak devre dışı bırakılacaktır.
|
||||
mod.enable = Etkinleştir
|
||||
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
|
||||
mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli
|
||||
mod.import = Mod İçeri Aktar
|
||||
mod.import.github = GitHub Modu İçeri Aktar
|
||||
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
|
||||
mod.item.remove = Bu eşya[accent] '{0}'[] modunun bir parçası. Kaldırmak için modu silebilirsiniz.
|
||||
mod.remove.confirm = Bu mod silinecek.
|
||||
mod.author = [LIGHT_GRAY]Yayıncı:[] {0}
|
||||
mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0}
|
||||
mod.preview.missing = Bu modu atölyede yayınlamadan önce bir resim önizlemesi eklemelisiniz.\nMod dosyasına [accent]preview.png[] adlı bir resim yerleştirin ve tekrar deneyin.
|
||||
mod.folder.missing = Atölyede sadece klasör halindeki modlar yayınlanabilir.Bir modu klasöre çevirmek için, sadece mod dosyalarını bir klasöre çıkarın ve eski sıkıştırılmış dosyayı silin, sonra da oyunu tekrar başlatın ya da modlarınızı tekrar yükleyin.
|
||||
mod.scripts.unsupported = Your device does not support mod scripts. Some mods will not function correctly.
|
||||
mod.scripts.unsupported = Cihazınız bazı betik dosyalarını desteklemiyor. Bazı modlar düzgün çalışmayabilir.
|
||||
|
||||
about.button = Hakkında
|
||||
name = İsim:
|
||||
@ -155,7 +155,7 @@ server.kicked.nameEmpty = Seçtiğin isim geçersiz.
|
||||
server.kicked.idInUse = Zaten bu sunucudasın! İki hesapla bir sunucuya bağlanamazsın.
|
||||
server.kicked.customClient = Bu sunucu özel sürümleri kabul etmiyor. Resmi bir sürüm indir.
|
||||
server.kicked.gameover = Oyun bitti!
|
||||
server.kicked.serverRestarting = The server is restarting.
|
||||
server.kicked.serverRestarting = Sunucu yeniden başlatılıyor.
|
||||
server.versions = Kullandığın surum:[accent] {0}[]\nSunucunun sürümü:[accent] {1}[]
|
||||
host.info = [accent]host[], [scarlet]6567[] portunda bir sunucuya ev sahipliği yapıyor. \nAynı [lightgray]wifi veya yerel ağdaki[] herkes sunucu listelerinde senin sunucunu görebiliyor olmalı.\n\nEğer diğerlerinin herhangi bir yerden IP ile bağlanabilmesini istiyorsan [accent]port yönlendirmesi[] gerekli.\n\n[lightgray]Not: Eğer birisi senin yerel ağ oyununa katılmakta sorun yaşıyorsa güvenlik duvarı ayarlarında Mindustry'ye yerel ağ bağlantısı izni verdiğinden emin olun. Halka açık ağların zaman zaman sunucu aramaya engel olduğunu unutmayın.
|
||||
join.info = Burada, bağlanmak istediğin sunucunun [accent]IP[] adresini girebilir veya [accent]yerel ağ[] sunucularını görebilirsin..\nHem yerel ağ hem de geniş alan ağı çoklu oyuncu için destekleniyor.\n\n[lightgray]Not: Otomatik bir global sunucu listesi yok; eğer birisine IP adresi kullanarak bağlanmak istiyorsan IP adresini istemelisin.
|
||||
@ -289,12 +289,12 @@ map.publish.confirm = Bu haritayı yayınlamak istediğinize emin misiniz?\n[lig
|
||||
workshop.menu = Select what you would like to do with this item.
|
||||
workshop.info = Nesne Açıklaması
|
||||
changelog = Değişim Listesi (isteğe bağlı):
|
||||
eula = Steam EULA
|
||||
missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked.
|
||||
eula = Steam Kullanıvı Sözleşmesi
|
||||
missing = Bu eşya silinmiş veya taşınmış.\n[lightgray]Workshop listesinden kaldırıldı.
|
||||
publishing = [accent]Yayınlanıyor...
|
||||
publish.confirm = Bunu yayınlamak istediğinize emin misiniz?\n[lightgray]önce Atölye EULA'sına uyduğunuza emin olun, yoksa yapıtlarınız gözükmeyecektir!
|
||||
publish.confirm = Bunu yayınlamak istediğinize emin misiniz?\n[lightgray]önce Atölye Sözleşmesine uyduğunuza emin olun, yoksa yapıtlarınız gözükmeyecektir!
|
||||
publish.error = Nesneyi yayınlarken hata oluştu: {0}
|
||||
steam.error = Failed to initialize Steam services.\nError: {0}
|
||||
steam.error = Steam hatası.\nHata kodu: {0}
|
||||
|
||||
editor.brush = Fırça
|
||||
editor.openin = Düzenleyici'de Aç
|
||||
@ -530,7 +530,7 @@ error.title = [crimson]Bir hata oldu
|
||||
error.crashtitle = Bir hata oldu
|
||||
blocks.input = Giriş
|
||||
blocks.output = Çıkış
|
||||
blocks.booster = Booster
|
||||
blocks.booster = Güçlendirici
|
||||
block.unknown = [lightgray]???
|
||||
blocks.powercapacity = Enerji Kapasitesi
|
||||
blocks.powershot = Enerji/Atış
|
||||
@ -652,7 +652,7 @@ setting.milliseconds = {0} milliseconds
|
||||
setting.fullscreen.name = Tam Ekran
|
||||
setting.borderlesswindow.name = Kenarsız Pencere[lightgray] (yeniden açmak gerekebilir)
|
||||
setting.fps.name = FPS Göster
|
||||
setting.blockselectkeys.name = Show Block Select Keys
|
||||
setting.blockselectkeys.name = Blok seçim tüşlarını göster
|
||||
setting.vsync.name = VSync
|
||||
setting.pixelate.name = Pixelleştir[lightgray] (animasyonları kapatır)
|
||||
setting.minimap.name = Haritayı Göster
|
||||
@ -681,7 +681,7 @@ category.multiplayer.name = Çok Oyunculu
|
||||
command.attack = Saldır
|
||||
command.rally = Toplan
|
||||
command.retreat = Geri Çekil
|
||||
placement.blockselectkeys = \n[lightgray]Key: [{0},
|
||||
placement.blockselectkeys = \n[lightgray]Tuş: [{0},
|
||||
keybind.clear_building.name = Binayı Temizle
|
||||
keybind.press = Bir tuşa basın...
|
||||
keybind.press.axis = Bir tuşa ya da yöne basın...
|
||||
@ -695,22 +695,22 @@ keybind.schematic_select.name = Bölge Seç
|
||||
keybind.schematic_menu.name = Şema Menüsü
|
||||
keybind.schematic_flip_x.name = Şemayı X ekseninde Döndür
|
||||
keybind.schematic_flip_y.name = Şemayı Y Ekseninde Döndür
|
||||
keybind.category_prev.name = Previous Category
|
||||
keybind.category_next.name = Next Category
|
||||
keybind.block_select_left.name = Block Select Left
|
||||
keybind.block_select_right.name = Block Select Right
|
||||
keybind.block_select_up.name = Block Select Up
|
||||
keybind.block_select_down.name = Block Select Down
|
||||
keybind.block_select_01.name = Category/Block Select 1
|
||||
keybind.block_select_02.name = Category/Block Select 2
|
||||
keybind.block_select_03.name = Category/Block Select 3
|
||||
keybind.block_select_04.name = Category/Block Select 4
|
||||
keybind.block_select_05.name = Category/Block Select 5
|
||||
keybind.block_select_06.name = Category/Block Select 6
|
||||
keybind.block_select_07.name = Category/Block Select 7
|
||||
keybind.block_select_08.name = Category/Block Select 8
|
||||
keybind.block_select_09.name = Category/Block Select 9
|
||||
keybind.block_select_10.name = Category/Block Select 10
|
||||
keybind.category_prev.name = Önceki Kategori
|
||||
keybind.category_next.name = Sonraki Kategori
|
||||
keybind.block_select_left.name = Sol Blok Seçimi
|
||||
keybind.block_select_right.name = Sağ Blok Seçimi
|
||||
keybind.block_select_up.name = Yukarı Blok Seçimi
|
||||
keybind.block_select_down.name = Aşağı Blok Seçimi
|
||||
keybind.block_select_01.name = Kategori 1
|
||||
keybind.block_select_02.name = Kategori 2
|
||||
keybind.block_select_03.name = Kategori 3
|
||||
keybind.block_select_04.name = Kategori 4
|
||||
keybind.block_select_05.name = Kategori 5
|
||||
keybind.block_select_06.name = Kategori 6
|
||||
keybind.block_select_07.name = Kategori 7
|
||||
keybind.block_select_08.name = Kategori 8
|
||||
keybind.block_select_09.name = Kategori 9
|
||||
keybind.block_select_10.name = Kategori 10
|
||||
keybind.fullscreen.name = Tam Ekran
|
||||
keybind.select.name = Seç/Ateş Et
|
||||
keybind.diagonal_placement.name = Çapraz Yerleştirme
|
||||
@ -718,7 +718,7 @@ keybind.pick.name = Blok Seç
|
||||
keybind.break_block.name = Blok Kır
|
||||
keybind.deselect.name = Seçimleri Kaldır
|
||||
keybind.shoot.name = Ateş Et
|
||||
keybind.zoom.name = Zum
|
||||
keybind.zoom.name = Yakınlaştırma/Uzaklaştırma
|
||||
keybind.menu.name = Menü
|
||||
keybind.pause.name = Durdur
|
||||
keybind.pause_building.name = İnşaatı Duraklat/İnşaata Devam Et
|
||||
@ -732,8 +732,8 @@ keybind.toggle_menus.name = Menüleri Aç/Kapa
|
||||
keybind.chat_history_prev.name = Sohbet geçmişi önceki
|
||||
keybind.chat_history_next.name = Sohbet geçmişi sonraki
|
||||
keybind.chat_scroll.name = Sohbet Kaydırma
|
||||
keybind.drop_unit.name = Drop Unit
|
||||
keybind.zoom_minimap.name = Mini Haritada Zum
|
||||
keybind.drop_unit.name = Birlik Düşürme
|
||||
keybind.zoom_minimap.name = Mini Haritada Yakınlaştırma/Uzaklaştırma
|
||||
mode.help.title = Modların açıklamaları
|
||||
mode.survival.name = Hayatta Kalma
|
||||
mode.survival.description = Normal oyun oyun modu. Kaynak sınırlı ve dalgalar otomatik olarak gönderilir.\n[gray]Oynamak için haritada düşman doğma noktaları olması gerekir.
|
||||
@ -747,7 +747,7 @@ mode.attack.description = Düşman üssünü yok et. Dalga yok.\n[gray]Oynamak i
|
||||
mode.custom = Özel Kurallar
|
||||
|
||||
rules.infiniteresources = Sınırsız Kaynaklar
|
||||
rules.reactorexplosions = Reactor Explosions
|
||||
rules.reactorexplosions = Reaktör Patlamaları
|
||||
rules.wavetimer = Dalga Zamanlayıcısı
|
||||
rules.waves = Dalgalar
|
||||
rules.attack = Saldırı Modu
|
||||
@ -755,7 +755,7 @@ rules.enemyCheat = Sonsuz AI (Kırmızı Takım) Kaynakları
|
||||
rules.unitdrops = Unit Drops
|
||||
rules.unitbuildspeedmultiplier = Birim Üretim Hızı Çarpanı
|
||||
rules.unithealthmultiplier = Birim Canı Çarpanı
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockhealthmultiplier = Blok Canı Çarpanı
|
||||
rules.playerhealthmultiplier = Oyuncu Canı Çarpanı
|
||||
rules.playerdamagemultiplier = Oyuncu Hasarı Çarpanı
|
||||
rules.unitdamagemultiplier = Birim Hasarı Çapanı
|
||||
@ -773,10 +773,10 @@ rules.title.respawns = Tekrar Canlanmalar
|
||||
rules.title.resourcesbuilding = Kaynaklar & İnşa
|
||||
rules.title.player = Oyuncular
|
||||
rules.title.enemy = Düşmanlar
|
||||
rules.title.unit = Unitler
|
||||
rules.title.experimental = Experimental
|
||||
rules.lighting = Lighting
|
||||
rules.ambientlight = Ambient Light
|
||||
rules.title.unit = Birlikler
|
||||
rules.title.experimental = Deneysel
|
||||
rules.lighting = Işıklandırma
|
||||
rules.ambientlight = Ortam Işığı
|
||||
|
||||
content.item.name = Eşyalar
|
||||
content.liquid.name = Sıvılar
|
||||
@ -824,7 +824,7 @@ mech.trident-ship.name = Trident
|
||||
mech.trident-ship.weapon = Bomba Bölmesi
|
||||
mech.glaive-ship.name = Glaive
|
||||
mech.glaive-ship.weapon = Alevli Makineli Tüfek
|
||||
item.corestorable = [lightgray]Storable in Core: {0}
|
||||
item.corestorable = [lightgray]Çekirdekte depolanabilir mi?: {0}
|
||||
item.explosiveness = [lightgray]Patlama: {0}%
|
||||
item.flammability = [lightgray]Yanıcılık: {0}%
|
||||
item.radioactivity = [lightgray]Radyoaktivite: {0}%
|
||||
|
@ -105,6 +105,7 @@ mods.none = [LIGHT_GRAY]没有找到模组!
|
||||
mods.guide = 模组教程
|
||||
mods.report = 报告 Bug
|
||||
mods.openfolder = 打开模组文件夹
|
||||
mod.display = [gray]模组:[orange] {0}
|
||||
mod.enabled = [lightgray]已启用
|
||||
mod.disabled = [scarlet]已禁用
|
||||
mod.disable = 禁用
|
||||
@ -171,6 +172,11 @@ hosts.discovering.any = 正在搜索服务器
|
||||
server.refreshing = 正在刷新服务器
|
||||
hosts.none = [lightgray]未发现局域网游戏!
|
||||
host.invalid = [scarlet]无法连接服务器。
|
||||
|
||||
servers.local = 本地服务器
|
||||
servers.remote = 远程服务器
|
||||
servers.global = 全球服务器
|
||||
|
||||
trace = 跟踪玩家
|
||||
trace.playername = 玩家名称:[accent]{0}
|
||||
trace.ip = IP 地址:[accent]{0}
|
||||
@ -252,6 +258,7 @@ copylink = 复制链接
|
||||
back = 返回
|
||||
data.export = 导出数据
|
||||
data.import = 导入数据
|
||||
data.openfolder = 打开数据文件夹
|
||||
data.exported = 数据已导出。
|
||||
data.invalid = 非有效游戏数据。
|
||||
data.import.confirm = 导入外部游戏数据将覆盖本地[scarlet]全部[]的游戏数据。\n[accent]此操作无法撤销![]\n\n数据导入后将自动退出游戏。
|
||||
@ -532,6 +539,8 @@ error.crashtitle = 发生了一个错误
|
||||
blocks.input = 输入
|
||||
blocks.output = 输出
|
||||
blocks.booster = 增强物品/液体
|
||||
blocks.tiles = 所需地型
|
||||
blocks.affinities = 相关
|
||||
block.unknown = [lightgray]???
|
||||
blocks.powercapacity = 能量容量
|
||||
blocks.powershot = 能量/发射
|
||||
@ -666,6 +675,7 @@ setting.mutesound.name = 无音效
|
||||
setting.crashreport.name = 发送匿名的崩溃报告
|
||||
setting.savecreate.name = 自动创建存档
|
||||
setting.publichost.name = 游戏公开可见
|
||||
setting.playerlimit.name = 玩家限制
|
||||
setting.chatopacity.name = 聊天界面不透明度
|
||||
setting.lasersopacity.name = 能量激光不透明度
|
||||
setting.bridgeopacity.name = 桥梁不透明度
|
||||
|
@ -85,3 +85,4 @@ Draco
|
||||
Quezler
|
||||
Alicila
|
||||
Daniel Dusek
|
||||
DeltaNedas
|
||||
|
Binary file not shown.
Binary file not shown.
@ -33,6 +33,8 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
||||
|
||||
@Override
|
||||
public void setup(){
|
||||
Events.fire(new ClientCreateEvent());
|
||||
|
||||
Vars.loadLogger();
|
||||
Vars.loadFileLogger();
|
||||
Vars.platform = this;
|
||||
|
@ -102,6 +102,7 @@ public class NetClient implements ApplicationListener{
|
||||
state.set(State.menu);
|
||||
logic.reset();
|
||||
platform.updateRPC();
|
||||
player.name = Core.settings.getString("name");
|
||||
|
||||
if(quiet) return;
|
||||
|
||||
|
@ -270,7 +270,7 @@ public class Renderer implements ApplicationListener{
|
||||
drawAllTeams(true);
|
||||
|
||||
Draw.flush();
|
||||
if(bloom != null && !pixelator.enabled()){
|
||||
if(bloom != null){
|
||||
bloom.capture();
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ public class Renderer implements ApplicationListener{
|
||||
effectGroup.draw();
|
||||
|
||||
Draw.flush();
|
||||
if(bloom != null && !pixelator.enabled()){
|
||||
if(bloom != null){
|
||||
bloom.render();
|
||||
}
|
||||
|
||||
@ -417,11 +417,6 @@ public class Renderer implements ApplicationListener{
|
||||
return;
|
||||
}
|
||||
|
||||
boolean hadShields = Core.settings.getBool("animatedshields");
|
||||
boolean hadWater = Core.settings.getBool("animatedwater");
|
||||
Core.settings.put("animatedwater", false);
|
||||
Core.settings.put("animatedshields", false);
|
||||
|
||||
FrameBuffer buffer = new FrameBuffer(w, h);
|
||||
|
||||
float vpW = camera.width, vpH = camera.height, px = camera.position.x, py = camera.position.y;
|
||||
@ -453,9 +448,6 @@ public class Renderer implements ApplicationListener{
|
||||
ui.showInfoFade(Core.bundle.format("screenshot", file.toString()));
|
||||
|
||||
buffer.dispose();
|
||||
|
||||
Core.settings.put("animatedwater", hadWater);
|
||||
Core.settings.put("animatedshields", hadShields);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,14 +1,15 @@
|
||||
package mindustry.entities.traits;
|
||||
|
||||
import arc.*;
|
||||
import arc.struct.Queue;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.struct.Queue;
|
||||
import arc.util.ArcAnnotate.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.entities.type.TileEntity;
|
||||
import mindustry.entities.type.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.gen.*;
|
||||
@ -21,7 +22,7 @@ import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
import static mindustry.entities.traits.BuilderTrait.BuildDataStatic.*;
|
||||
import static mindustry.entities.traits.BuilderTrait.BuildDataStatic.tmptr;
|
||||
|
||||
/** Interface for units that build things.*/
|
||||
public interface BuilderTrait extends Entity, TeamTrait{
|
||||
@ -74,6 +75,9 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
||||
buildQueue().removeFirst();
|
||||
return;
|
||||
}
|
||||
}else if(tile.getTeam() != getTeam()){
|
||||
buildQueue().removeFirst();
|
||||
return;
|
||||
}
|
||||
|
||||
if(tile.entity instanceof BuildEntity && !current.initialized){
|
||||
|
@ -92,6 +92,10 @@ public class EventType{
|
||||
}
|
||||
}
|
||||
|
||||
public static class ClientCreateEvent{
|
||||
|
||||
}
|
||||
|
||||
/** Called when the client game is first loaded. */
|
||||
public static class ClientLoadEvent{
|
||||
|
||||
|
@ -98,6 +98,7 @@ public class Teams{
|
||||
|
||||
/** Do not modify. */
|
||||
public Array<TeamData> getActive(){
|
||||
active.removeAll(t -> !t.active());
|
||||
return active;
|
||||
}
|
||||
|
||||
@ -167,6 +168,14 @@ public class Teams{
|
||||
public CoreEntity core(){
|
||||
return cores.first();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return "TeamData{" +
|
||||
"cores=" + cores +
|
||||
", team=" + team +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
/** Represents a block made by this team that was destroyed somewhere on the map.
|
||||
|
@ -168,7 +168,6 @@ public class BlockRenderer implements Disposable{
|
||||
shadowEvents.clear();
|
||||
|
||||
Draw.proj(camera.projection());
|
||||
renderer.pixelator.rebind();
|
||||
}
|
||||
|
||||
float ww = world.width() * tilesize, wh = world.height() * tilesize;
|
||||
|
@ -28,10 +28,6 @@ public class Pixelator implements Disposable{
|
||||
camera.width = (int)camera.width;
|
||||
camera.height = (int)camera.height;
|
||||
|
||||
boolean hadShields = Core.settings.getBool("animatedshields");
|
||||
boolean hadWater = Core.settings.getBool("animatedwater");
|
||||
Core.settings.put("animatedwater", false);
|
||||
Core.settings.put("animatedshields", false);
|
||||
graphics.clear(0f, 0f, 0f, 1f);
|
||||
|
||||
float px = Core.camera.position.x, py = Core.camera.position.y;
|
||||
@ -58,17 +54,9 @@ public class Pixelator implements Disposable{
|
||||
playerGroup.draw(p -> !p.isDead(), Player::drawName);
|
||||
|
||||
Core.camera.position.set(px, py);
|
||||
Core.settings.put("animatedwater", hadWater);
|
||||
Core.settings.put("animatedshields", hadShields);
|
||||
renderer.setScale(pre);
|
||||
}
|
||||
|
||||
public void rebind(){
|
||||
if(enabled()){
|
||||
buffer.begin();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean enabled(){
|
||||
return Core.settings.getBool("pixelate");
|
||||
}
|
||||
|
@ -255,19 +255,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
if(lastSchematic == null) return;
|
||||
|
||||
ui.showTextInput("$schematic.add", "$name", "", text -> {
|
||||
Schematic replacement = schematics.all().find(s -> s.name().equals(text));
|
||||
if(replacement != null){
|
||||
ui.showConfirm("$confirm", "$schematic.replace", () -> {
|
||||
schematics.overwrite(replacement, lastSchematic);
|
||||
ui.showInfoFade("$schematic.saved");
|
||||
ui.schematics.showInfo(replacement);
|
||||
});
|
||||
}else{
|
||||
lastSchematic.tags.put("name", text);
|
||||
schematics.add(lastSchematic);
|
||||
ui.showInfoFade("$schematic.saved");
|
||||
ui.schematics.showInfo(lastSchematic);
|
||||
}
|
||||
lastSchematic.tags.put("name", text);
|
||||
schematics.add(lastSchematic);
|
||||
ui.showInfoFade("$schematic.saved");
|
||||
ui.schematics.showInfo(lastSchematic);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@ package mindustry.mod;
|
||||
import arc.*;
|
||||
import arc.assets.*;
|
||||
import arc.audio.*;
|
||||
import arc.audio.mock.*;
|
||||
import arc.mock.*;
|
||||
import arc.struct.Array;
|
||||
import arc.struct.*;
|
||||
import arc.files.*;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package mindustry.mod;
|
||||
|
||||
import arc.audio.*;
|
||||
import arc.audio.mock.*;
|
||||
import arc.math.geom.*;
|
||||
import arc.mock.*;
|
||||
import arc.util.ArcAnnotate.*;
|
||||
|
||||
public class ModLoadingSound implements Sound{
|
||||
|
@ -242,6 +242,9 @@ public class JoinDialog extends FloatingDialog{
|
||||
}
|
||||
|
||||
void setup(){
|
||||
local.clear();
|
||||
remote.clear();
|
||||
global.clear();
|
||||
float w = targetWidth();
|
||||
|
||||
hosts.clear();
|
||||
@ -255,7 +258,6 @@ public class JoinDialog extends FloatingDialog{
|
||||
pane.setScrollingDisabled(true, false);
|
||||
|
||||
setupRemote();
|
||||
refreshRemote();
|
||||
|
||||
cont.clear();
|
||||
cont.table(t -> {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package mindustry.ui.dialogs;
|
||||
|
||||
import arc.*;
|
||||
import arc.struct.*;
|
||||
import arc.files.*;
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.Texture.*;
|
||||
import arc.graphics.g2d.*;
|
||||
@ -10,6 +10,7 @@ import arc.scene.ui.*;
|
||||
import arc.scene.ui.ImageButton.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.core.GameState.*;
|
||||
import mindustry.game.*;
|
||||
@ -214,14 +215,27 @@ public class SchematicsDialog extends FloatingDialog{
|
||||
Core.app.setClipboardText(schematics.writeBase64(s));
|
||||
}).marginLeft(12f);
|
||||
t.row();
|
||||
t.addImageTextButton("$schematic.exportfile", Icon.export, style, () -> platform.showFileChooser(false, schematicExtension, file -> {
|
||||
dialog.hide();
|
||||
try{
|
||||
Schematics.write(s, file);
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
t.addImageTextButton("$schematic.exportfile", Icon.export, style, () -> {
|
||||
if(!ios){
|
||||
platform.showFileChooser(false, schematicExtension, file -> {
|
||||
dialog.hide();
|
||||
try{
|
||||
Schematics.write(s, file);
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
dialog.hide();
|
||||
try{
|
||||
Fi file = Core.files.local(s.name() + "." + schematicExtension);
|
||||
Schematics.write(s, file);
|
||||
platform.shareFile(file);
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
}
|
||||
}
|
||||
})).marginLeft(12f);
|
||||
}).marginLeft(12f);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -330,7 +330,12 @@ public class SettingsMenuDialog extends SettingsDialog{
|
||||
if(Shaders.shield != null){
|
||||
graphics.checkPref("animatedshields", !mobile);
|
||||
}
|
||||
graphics.checkPref("bloom", !mobile, val -> renderer.toggleBloom(val));
|
||||
if(!ios){
|
||||
graphics.checkPref("bloom", !mobile, val -> renderer.toggleBloom(val));
|
||||
}else{
|
||||
Core.settings.put("bloom", false);
|
||||
}
|
||||
|
||||
graphics.checkPref("pixelate", false, val -> {
|
||||
if(val){
|
||||
Events.fire(Trigger.enablePixelation);
|
||||
|
@ -51,6 +51,7 @@ public class ItemSelection{
|
||||
scrollPos = pane.getScrollY();
|
||||
});
|
||||
|
||||
table.add(pane).maxHeight(40 * 5);
|
||||
pane.setOverscroll(false, false);
|
||||
table.add(pane).maxHeight(Scl.scl(40 * 5));
|
||||
}
|
||||
}
|
||||
|
@ -264,6 +264,7 @@ public class Conveyor extends Block implements Autotiler{
|
||||
@Override
|
||||
public void handleStack(Item item, int amount, Tile tile, Unit source){
|
||||
ConveyorEntity e = tile.ent();
|
||||
amount = Math.min(amount, itemCapacity - e.len);
|
||||
|
||||
for(int i = amount - 1; i >= 0; i--){
|
||||
e.add(0);
|
||||
|
@ -9,6 +9,8 @@ import mindustry.world.meta.BlockGroup;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import static mindustry.Vars.world;
|
||||
|
||||
public class OverflowGate extends Block{
|
||||
public float speed = 1f;
|
||||
public boolean invert = false;
|
||||
@ -125,19 +127,24 @@ public class OverflowGate extends Block{
|
||||
|
||||
@Override
|
||||
public byte version(){
|
||||
return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(DataOutput stream) throws IOException{
|
||||
super.write(stream);
|
||||
stream.writeInt(lastInput == null ? Pos.invalid : lastInput.pos());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(DataInput stream, byte revision) throws IOException{
|
||||
super.read(stream, revision);
|
||||
|
||||
if(revision == 1){
|
||||
new DirectionalItemBuffer(25, 50f).read(stream);
|
||||
}else if(revision == 3){
|
||||
lastInput = world.tile(stream.readInt());
|
||||
lastItem = items.first();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ import mindustry.world.meta.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import static mindustry.Vars.content;
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class Sorter extends Block{
|
||||
private static Item lastItem;
|
||||
@ -46,6 +46,9 @@ public class Sorter extends Block{
|
||||
@Override
|
||||
public void configured(Tile tile, Player player, int value){
|
||||
tile.<SorterEntity>ent().sortItem = content.item(value);
|
||||
if(!headless){
|
||||
renderer.minimap.update(tile);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -107,6 +107,7 @@ public class Separator extends Block{
|
||||
entity.cons.trigger();
|
||||
|
||||
if(item != null && entity.items.get(item) < itemCapacity){
|
||||
useContent(tile, item);
|
||||
offloadNear(tile, item);
|
||||
}
|
||||
}
|
||||
|
@ -111,6 +111,7 @@ public class SolidPump extends Pump{
|
||||
tile.entity.liquids.add(result, maxPump);
|
||||
entity.lastPump = maxPump;
|
||||
entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.02f);
|
||||
if(tile.entity.timer.get(timerContentCheck, 10)) useContent(tile, result);
|
||||
if(Mathf.chance(entity.delta() * updateEffectChance))
|
||||
Effects.effect(updateEffect, entity.x + Mathf.range(size * 2f), entity.y + Mathf.range(size * 2f));
|
||||
}else{
|
||||
|
@ -1,10 +1,9 @@
|
||||
package mindustry.world.modules;
|
||||
|
||||
import mindustry.type.Item;
|
||||
import mindustry.type.ItemStack;
|
||||
import mindustry.type.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.*;
|
||||
|
||||
import static mindustry.Vars.content;
|
||||
|
||||
@ -69,15 +68,24 @@ public class ItemModule extends BlockModule{
|
||||
return total;
|
||||
}
|
||||
|
||||
public Item first(){
|
||||
for(int i = 0; i < items.length; i++){
|
||||
if(items[i] > 0){
|
||||
return content.item(i);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Item take(){
|
||||
for(int i = 0; i < items.length; i++){
|
||||
int index = (i + takeRotation);
|
||||
if(index >= items.length) index -= items.length; //conditional instead of mod
|
||||
if(index >= items.length) index -= items.length;
|
||||
if(items[index] > 0){
|
||||
items[index] --;
|
||||
total --;
|
||||
takeRotation = index + 1;
|
||||
return content.item(index % items.length);
|
||||
return content.item(index);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
6
fastlane/metadata/android/en-US/changelogs/104.2.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/104.2.txt
Normal file
@ -0,0 +1,6 @@
|
||||
- Optimized and cleaned up conveyors
|
||||
- Made unloaders take items from blocks in equal amounts
|
||||
- Added server categories (Partially contributed by @Quezler)
|
||||
- Added require() function for scripts (Contributed by @DeltaNedas)
|
||||
- Added color gradient for battery status (Contributed by @Arkanic (eventually))
|
||||
- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them
|
6
fastlane/metadata/android/en-US/changelogs/104.3.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/104.3.txt
Normal file
@ -0,0 +1,6 @@
|
||||
- Optimized and cleaned up conveyors
|
||||
- Made unloaders take items from blocks in equal amounts
|
||||
- Added server categories (Partially contributed by @Quezler)
|
||||
- Added require() function for scripts (Contributed by @DeltaNedas)
|
||||
- Added color gradient for battery status (Contributed by @Arkanic (eventually))
|
||||
- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them
|
6
fastlane/metadata/android/en-US/changelogs/29612.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/29612.txt
Normal file
@ -0,0 +1,6 @@
|
||||
- Optimized and cleaned up conveyors
|
||||
- Made unloaders take items from blocks in equal amounts
|
||||
- Added server categories (Partially contributed by @Quezler)
|
||||
- Added require() function for scripts (Contributed by @DeltaNedas)
|
||||
- Added color gradient for battery status (Contributed by @Arkanic (eventually))
|
||||
- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them
|
6
fastlane/metadata/android/en-US/changelogs/29616.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/29616.txt
Normal file
@ -0,0 +1,6 @@
|
||||
- Optimized and cleaned up conveyors
|
||||
- Made unloaders take items from blocks in equal amounts
|
||||
- Added server categories (Partially contributed by @Quezler)
|
||||
- Added require() function for scripts (Contributed by @DeltaNedas)
|
||||
- Added color gradient for battery status (Contributed by @Arkanic (eventually))
|
||||
- Changed script loading: For mods with more than one script file, the main file must be named "main.js" and must require() other files to run them
|
@ -1,3 +1,3 @@
|
||||
org.gradle.daemon=true
|
||||
org.gradle.jvmargs=-Xms256m -Xmx1024m
|
||||
archash=a3edc4804b57ac9f8c59216cc470f05133f8c804
|
||||
archash=589c7e171a8b558f50b99d374e05942a5909ba4d
|
||||
|
@ -1,12 +1,13 @@
|
||||
package mindustry.ios;
|
||||
|
||||
import arc.*;
|
||||
import com.badlogic.gdx.backends.iosrobovm.*;
|
||||
import arc.Input.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import com.badlogic.gdx.backends.iosrobovm.*;
|
||||
import mindustry.*;
|
||||
import mindustry.game.EventType.*;
|
||||
import mindustry.game.Saves.*;
|
||||
@ -40,13 +41,32 @@ public class IOSLauncher extends IOSApplication.Delegate{
|
||||
|
||||
@Override
|
||||
public void showFileChooser(boolean open, String extension, Cons<Fi> cons){
|
||||
UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray<NSString>)null);
|
||||
if(!open){ //when exporting, just share it.
|
||||
//ask for export name
|
||||
Core.input.getTextInput(new TextInput(){{
|
||||
title = Core.bundle.get("filename");
|
||||
accepted = name -> {
|
||||
try{
|
||||
//write result
|
||||
Fi result = tmpDirectory.child(name + "." + extension);
|
||||
cons.get(result);
|
||||
|
||||
//import the document
|
||||
shareFile(result);
|
||||
}catch(Throwable t){
|
||||
ui.showException(t);
|
||||
}
|
||||
};
|
||||
}});
|
||||
return;
|
||||
}
|
||||
|
||||
UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray<NSString>)null);
|
||||
|
||||
NSArray<UIBarButtonItem> arr = new NSArray<>(new UIBarButtonItem(Core.bundle.get("cancel"), UIBarButtonItemStyle.Plain,
|
||||
uiBarButtonItem -> cont.dismissViewController(true, () -> {})));
|
||||
|
||||
cont.setAllowsDocumentCreation(!open);
|
||||
cont.setAllowsDocumentCreation(false);
|
||||
cont.setAdditionalLeadingNavigationBarButtonItems(arr);
|
||||
|
||||
class ChooserDelegate extends NSObject implements UIDocumentBrowserViewControllerDelegate{
|
||||
@ -97,7 +117,6 @@ public class IOSLauncher extends IOSApplication.Delegate{
|
||||
|
||||
@Override
|
||||
public void failedToImportDocument(UIDocumentBrowserViewController controller, NSURL documentURL, NSError error){
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -2,6 +2,12 @@
|
||||
{
|
||||
"address": "mindustry.us.to"
|
||||
},
|
||||
{
|
||||
"address": "mindustry.indielm.com:1101"
|
||||
},
|
||||
{
|
||||
"address": "mindustry.indielm.com"
|
||||
},
|
||||
{
|
||||
"address": "mindustry.ecansol.com:6597"
|
||||
},
|
||||
|
@ -214,6 +214,16 @@ public class ApplicationTests{
|
||||
assertTrue(state.teams.playerCores().size > 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
void conveyorCrash(){
|
||||
world.loadMap(testMap);
|
||||
state.set(State.playing);
|
||||
|
||||
world.tile(0, 0).setBlock(Blocks.conveyor);
|
||||
world.tile(0, 0).rotation(0);
|
||||
Blocks.conveyor.acceptStack(Items.copper, 1000, world.tile(0, 0), null);
|
||||
}
|
||||
|
||||
@Test
|
||||
void conveyorBench(){
|
||||
int[] items = {0};
|
||||
|
Loading…
Reference in New Issue
Block a user