Merge remote-tracking branch 'origin/4.0' into 4.0

# Conflicts:
#	core/src/io/anuke/mindustry/Vars.java
This commit is contained in:
Anuken
2018-07-13 19:54:20 -04:00
433 changed files with 25227 additions and 23221 deletions
+1
View File
@@ -2,6 +2,7 @@
/core/assets/mindustry-saves/
/core/assets/mindustry-maps/
/core/assets/bundles/output/
/deploy/
/desktop/packr-out/
/desktop/packr-export/
+3 -2
View File
@@ -5,13 +5,14 @@ jdk:
android:
components:
- android-26
- android-27
# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-26
- addon-google_apis-google-27
- build-tools-27.0.3
script:
- ./gradlew desktop:dist
+1 -1
View File
@@ -20,7 +20,7 @@
<activity
android:name="io.anuke.mindustry.AndroidLauncher"
android:label="@string/app_name"
android:screenOrientation="sensor"
android:screenOrientation="user"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
<intent-filter>
@@ -59,7 +59,8 @@ public class AndroidTextFieldDialog{
while(!isBuild){
try{
Thread.sleep(10);
} catch (InterruptedException e) { }
}catch(InterruptedException e){
}
}
return this;
@@ -8,12 +8,9 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;
import org.sufficientlysecure.donations.DonationsFragment;
public class DonationsActivity extends FragmentActivity{
DonationsFragment donationsFragment;
/**
* Google
*/
@@ -22,6 +19,7 @@ public class DonationsActivity extends FragmentActivity {
"mindustry.donation.1", "mindustry.donation.2", "mindustry.donation.5",
"mindustry.donation.10", "mindustry.donation.15",
"mindustry.donation.25", "mindustry.donation.50"};
DonationsFragment donationsFragment;
/**
* Called when the activity is first created.
@@ -50,7 +48,8 @@ public class DonationsActivity extends FragmentActivity {
super.onStart();
Button b = ((Button) findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button));
b.setOnClickListener(new View.OnClickListener(){
@Override public void onClick(View view) {
@Override
public void onClick(View view){
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
b.setEnabled(false);
}
@@ -58,7 +57,6 @@ public class DonationsActivity extends FragmentActivity {
}
/**
* Needed for Google Play In-app Billing. It uses startIntentSenderForResult(). The result is not propagated to
* the Fragment like in startActivityForResult(). Thus we need to propagate manually to our Fragment.
@@ -15,6 +15,13 @@ public class TextFieldDialogListener extends ClickListener{
private int type;
private int max;
//type - 0 is text, 1 is numbers, 2 is decimals
public TextFieldDialogListener(TextField field, int type, int max){
this.field = field;
this.type = type;
this.max = max;
}
public static void add(TextField field, int type, int max){
field.addListener(new TextFieldDialogListener(field, type, max));
field.addListener(new InputListener(){
@@ -29,13 +36,6 @@ public class TextFieldDialogListener extends ClickListener{
add(field, 0, 16);
}
//type - 0 is text, 1 is numbers, 2 is decimals
public TextFieldDialogListener(TextField field, int type, int max){
this.field = field;
this.type = type;
this.max = max;
}
public void clicked(final InputEvent event, float x, float y){
if(Gdx.app.getType() == ApplicationType.Desktop) return;
@@ -11,45 +11,6 @@ import java.lang.annotation.Target;
*/
public class Annotations{
/**Marks a method as invokable remotely across a server/client connection.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface Remote {
/**Specifies the locations from which this method can be invoked.*/
Loc targets() default Loc.server;
/**Specifies which methods are generated. Only affects server-to-client methods.*/
Variant variants() default Variant.all;
/**The local locations where this method is called locally, when invoked.*/
Loc called() default Loc.none;
/**Whether to forward this packet to all other clients upon recieval. Server only.*/
boolean forward() default false;
/**Whether the packet for this method is sent with UDP instead of TCP.
* UDP is faster, but is prone to packet loss and duplication.*/
boolean unreliable() default false;
/**The simple class name where this method is placed.*/
String in() default "Call";
/**Priority of this event.*/
PacketPriority priority() default PacketPriority.normal;
}
/**Specifies that this method will be used to write classes of the type returned by {@link #value()}.<br>
* This method must return void and have two parameters, the first being of type {@link java.nio.ByteBuffer} and the second
* being the type returned by {@link #value()}.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface WriteClass {
Class<?> value();
}
/**Specifies that this method will be used to read classes of the type returned by {@link #value()}. <br>
* This method must return the type returned by {@link #value()},
* and have one parameter, being of type {@link java.nio.ByteBuffer}.*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface ReadClass {
Class<?> value();
}
public enum PacketPriority{
/** Gets put in a queue and processed if not connected. */
normal,
@@ -67,7 +28,7 @@ public class Annotations {
client(false, true),
/** Method can be invoked from anywhere */
both(true, true),
/**Neither server no client.*/
/** Neither server nor client. */
none(false, false);
/** If true, this method can be invoked ON clients FROM servers. */
@@ -96,4 +57,55 @@ public class Annotations {
this.isAll = isAll;
}
}
/** Marks a method as invokable remotely across a server/client connection. */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface Remote{
/** Specifies the locations from which this method can be invoked. */
Loc targets() default Loc.server;
/** Specifies which methods are generated. Only affects server-to-client methods. */
Variant variants() default Variant.all;
/** The local locations where this method is called locally, when invoked. */
Loc called() default Loc.none;
/** Whether to forward this packet to all other clients upon recieval. Client only. */
boolean forward() default false;
/**
* Whether the packet for this method is sent with UDP instead of TCP.
* UDP is faster, but is prone to packet loss and duplication.
*/
boolean unreliable() default false;
/** The simple class name where this method is placed. */
String in() default "Call";
/** Priority of this event. */
PacketPriority priority() default PacketPriority.normal;
}
/**
* Specifies that this method will be used to write classes of the type returned by {@link #value()}.<br>
* This method must return void and have two parameters, the first being of type {@link java.nio.ByteBuffer} and the second
* being the type returned by {@link #value()}.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface WriteClass{
Class<?> value();
}
/**
* Specifies that this method will be used to read classes of the type returned by {@link #value()}. <br>
* This method must return the type returned by {@link #value()},
* and have one parameter, being of type {@link java.nio.ByteBuffer}.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface ReadClass{
Class<?> value();
}
}
@@ -10,12 +10,16 @@ import javax.tools.Diagnostic.Kind;
import java.util.HashMap;
import java.util.Set;
/**This class finds reader and writer methods annotated by the {@link io.anuke.annotations.Annotations.WriteClass}
* and {@link io.anuke.annotations.Annotations.ReadClass} annotations.*/
/**
* This class finds reader and writer methods annotated by the {@link io.anuke.annotations.Annotations.WriteClass}
* and {@link io.anuke.annotations.Annotations.ReadClass} annotations.
*/
public class IOFinder{
/**Finds all class serializers for all types and returns them. Logs errors when necessary.
* Maps fully qualified class names to their serializers.*/
/**
* Finds all class serializers for all types and returns them. Logs errors when necessary.
* Maps fully qualified class names to their serializers.
*/
public HashMap<String, ClassSerializer> findSerializers(RoundEnvironment env){
HashMap<String, ClassSerializer> result = new HashMap<>();
@@ -14,8 +14,10 @@ public class MethodEntry {
public final String targetMethod;
/** Whether this method can be called on a client/server. */
public final Loc where;
/**Whether an additional 'one' and 'all' method variant is generated. At least one of these must be true.
* Only applicable to client (server-invoked) methods.*/
/**
* Whether an additional 'one' and 'all' method variant is generated. At least one of these must be true.
* Only applicable to client (server-invoked) methods.
*/
public final Variant target;
/** Whether this method is called locally as well as remotely. */
public final Loc local;
@@ -23,11 +23,14 @@ public class RemoteReadGenerator {
this.serializers = serializers;
}
/**Generates a class for reading remote invoke packets.
/**
* Generates a class for reading remote invoke packets.
*
* @param entries List of methods to use/
* @param className Simple target class name.
* @param packageName Full target package name.
* @param needsPlayer Whether this read method requires a reference to the player sender.*/
* @param needsPlayer Whether this read method requires a reference to the player sender.
*/
public void generateFor(List<MethodEntry> entries, String className, String packageName, boolean needsPlayer)
throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchMethodException, IOException{
@@ -129,7 +129,7 @@ public class RemoteWriteGenerator {
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
//add statement to create packet from pool
method.addStatement("$1N packet = $2N.obtain($1N.class)", "io.anuke.mindustry.net.Packets.InvokePacket", "com.badlogic.gdx.utils.Pools");
method.addStatement("$1N packet = $2N.obtain($1N.class)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.ucore.util.Pooling");
//assign buffer
method.addStatement("packet.writeBuffer = TEMP_BUFFER");
//assign priority
+2 -2
View File
@@ -9,7 +9,7 @@ buildscript {
dependencies {
classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.0'
classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.6'
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.android.tools.build:gradle:3.1.3'
classpath "com.badlogicgames.gdx:gdx-tools:1.9.8"
}
}
@@ -27,7 +27,7 @@ allprojects {
gdxVersion = '1.9.8'
roboVMVersion = '2.3.0'
aiVersion = '1.8.1'
uCoreVersion = '2241e5402e'
uCoreVersion = 'c502931313'
getVersionString = {
String buildVersion = getBuildVersion()

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 B

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

+11 -28
View File
@@ -55,13 +55,7 @@ text.about.button=About
text.name=Name:
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.rollback=Rollback
text.server.rollback.numberfield=Rollback Amount:
text.blocks.editlogs=Edit Logs
text.block.editlogsnotfound=[red]There are no edit logs for this location.
text.public=Public
text.players={0} players online
text.server.player.host={0} (host)
text.players.single={0} player online
text.server.mismatch=Packet error: possible client/server version mismatch.\nMake sure you and the host have the\nlatest version of Mindustry!
text.server.closing=[accent]Closing server...
@@ -118,7 +112,6 @@ text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.joingame.byip=Join by IP...
text.joingame.title=Join Game
text.joingame.ip=IP:
text.disconnect=Disconnected.
@@ -130,8 +123,7 @@ text.server.port=Port:
text.server.addressinuse=Address already in use!
text.server.invalidport=Invalid port number!
text.server.error=[crimson]Error hosting server: [orange]{0}
text.tutorial.back=< Prev
text.tutorial.next=Next >
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
text.save.new=New Save
text.save.overwrite=Are you sure you want to overwrite\nthis save slot?
text.overwrite=Overwrite
@@ -141,7 +133,7 @@ text.savefail=Failed to save game!
text.save.delete.confirm=Are you sure you want to delete this save?
text.save.delete=Delete
text.save.export=Export Save
text.save.import.invalid=[orange]This save is invalid!\n\nNote that[scarlet]importing saves with custom maps[orange]\nfrom other devices does not work!
text.save.import.invalid=[orange]This save is invalid!
text.save.import.fail=[crimson]Failed to import save: [orange]{0}
text.save.export.fail=[crimson]Failed to export save: [orange]{0}
text.save.import=Import Save
@@ -226,21 +218,13 @@ text.editor.exportimage.description=Export a map image file
text.editor.loadimage=Import Terrain
text.editor.saveimage=Export Terrain
text.editor.unsaved=[scarlet]You have unsaved changes![]\nAre you sure you want to exit?
text.editor.brushsize=Brush size: {0}
text.editor.noplayerspawn=This map has no player spawnpoint!
text.editor.manyplayerspawns=Maps cannot have more than one\nplayer spawnpoint!
text.editor.manyenemyspawns=Cannot have more than\n{0} enemy spawnpoints!
text.editor.resizemap=Resize Map
text.editor.resizebig=[scarlet]Warning!\n[]Maps larger than 256 units may be laggy and unstable.
text.editor.mapname=Map Name:
text.editor.overwrite=[accent]Warning!\nThis overwrites an existing map.
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.editor.selectmap=Select a map to load:
text.width=Width:
text.height=Height:
text.randomize=Randomize
text.apply=Apply
text.update=Update
text.menu=Menu
text.play=Play
text.load=Load
@@ -269,7 +253,6 @@ text.yes=Yes
text.no=No
text.info.title=[accent]Info
text.error.title=[crimson]An error has occured
text.error.crashmessage=[SCARLET]An unexpected error has occured, which would have caused a crash.\n[]Please report the exact circumstances under which this error occured to the developer: \n[ORANGE]anukendev@gmail.com[]
text.error.crashtitle=An error has occured
text.blocks.blockinfo=Block Info
text.blocks.powercapacity=Power Capacity
@@ -297,6 +280,10 @@ text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.explosive=Highly explosive!
text.blocks.health=Health
text.blocks.inaccuracy=Inaccuracy
@@ -332,7 +319,6 @@ setting.difficulty.insane=insane
setting.difficulty.purge=purge
setting.difficulty.name=Difficulty:
setting.screenshake.name=Screen Shake
setting.smoothcam.name=Smooth Camera
setting.indicators.name=Enemy Indicators
setting.effects.name=Display Effects
setting.sensitivity.name=Controller Sensitivity
@@ -343,10 +329,8 @@ setting.multithread.name=Multithreading
setting.fps.name=Show FPS
setting.vsync.name=VSync
setting.lasers.name=Show Power Lasers
setting.previewopacity.name=Placing Preview Opacity
setting.healthbars.name=Show Entity Health bars
setting.minimap.name=Show Minimap
setting.pixelate.name=Pixelate Screen
setting.musicvol.name=Music Volume
setting.mutemusic.name=Mute Music
setting.sfxvol.name=SFX Volume
@@ -454,15 +438,15 @@ block.conveyor.name=Conveyor
block.titanium-conveyor.name=Titanium Conveyor
block.junction.name=Junction
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.splitter.description=Outputs items into three different directions once they are recieved.
block.router.name=Router
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.multiplexer.name=Multiplexer
block.multiplexer.description=A router that can split items into 8 directions.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.name=Sorter
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflowgate.name=Overflow Gate
block.overflowgate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.smelter.name=Smelter
@@ -512,7 +496,6 @@ block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.overflow-gate.name=Overflow Gate
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
+290 -274
View File
@@ -5,7 +5,6 @@ text.highscore = [YELLOW] Neuer Highscore!
text.lasted=Du hast bis zur folgenden Welle überlebt
text.level.highscore=High Score: [accent] {0}
text.level.delete.title=Löschen bestätigen
text.level.delete = Bist du sicher, dass du die Karte \"[orange] {0}\" löschen möchtest?
text.level.select=Level Auswahl
text.level.mode=Spielmodus:
text.savegame=Spiel speichern
@@ -14,11 +13,9 @@ text.joingame = Spiel beitreten
text.quit=Verlassen
text.about.button=Info
text.name=Name:
text.public = Öffentlich
text.players={0} Spieler online
text.players.single={0} Spieler online
text.server.mismatch=Paketfehler: Mögliche Client / Server-Version stimmt nicht überein. Stell sicher, dass du und der Host die neueste Version von Mindustry haben!
.server.closing = [accent] Server wird geschlossen...
text.server.kicked.kick=Du wurdest vom Server gekickt!
text.server.kicked.invalidPassword=Falsches Passwort.
text.server.connected={0} ist beigetreten
@@ -36,7 +33,6 @@ text.server.add = Server hinzufügen
text.server.delete=Bist du dir sicher das du diesen Server löschen möchtest?
text.server.hostname=Host: {0}
text.server.edit=Server bearbeiten
text.joingame.byip = Über IP beitreten ...
text.joingame.title=Spiel beitreten
text.joingame.ip=IP:
text.disconnect=Verbindung unterbrochen.
@@ -46,8 +42,6 @@ text.connectfail = [crimson] Verbindung zum Server konnte nicht hergestellt werd
text.server.port=Port:
text.server.invalidport=Falscher Port!
text.server.error=[crimson] Fehler beim Hosten des Servers: [orange] {0}
text.tutorial.back = < Zurück
text.tutorial.next = Weiter >
text.save.new=Neuer Spielstand
text.save.overwrite=Möchten du diesen Spielstand wirklich überschreiben?
text.overwrite=Überschreiben
@@ -100,21 +94,12 @@ text.editor.savemap = Karte\nspeichern
text.editor.loadimage=Bild\nladen
text.editor.saveimage=Bild\nspeichern
text.editor.unsaved=[crimson] Du hast Änderungen nicht gespeichert [] Möchtest du wirklich aufhören?
text.editor.brushsize = Pinselgrösse: {0}
text.editor.noplayerspawn = Diese Karte hat keinen Spielerspawnpunkt!
text.editor.manyplayerspawns = Maps können nicht mehr als einen Spawnpunkt des Spielers haben!
text.editor.manyenemyspawns = Kann nicht mehr als {0} feindliche Spawnpunkte haben!
text.editor.resizemap=Grösse der Karte ändern
text.editor.resizebig = [crimson] Warnung! [] Karten, die grösser als 256 Einheiten sind, können ruckeln und instabil sein.
text.editor.mapname=Map Name
text.editor.overwrite=[accent] Warnung! Dies überschreibt eine vorhandene Map.
text.editor.failoverwrite = [crimson] Die Standardkarte kann nicht überschrieben werden!
text.editor.selectmap=Wähle eine Map zum Laden:
text.width=Breite:
text.height=Höhe:
text.randomize = Zufällig
text.apply = Anwenden
text.update = Aktualisieren
text.menu=Menü
text.play=Spielen
text.load=Laden
@@ -133,66 +118,24 @@ text.upgrades = Verbesserungen
text.purchased=[LIME] Erstellt!
text.weapons=Waffen
text.paused=Pausiert
text.respawn = Respawn in
text.error.title=[crimson] Ein Fehler ist aufgetreten
text.error.crashmessage = [SCARLET] Es ist ein unerwarteter Fehler aufgetreten, der einen Absturz verursacht hätte. [] Bitte geben Sie die genauen Umstände an, unter denen dieser Fehler passiert ist, für den Entwickler: [ORANGE] anukendev@gmail.com []
text.error.crashtitle=EIn Fehler ist aufgetreten!
text.mode.break = Zerstörungsmodus: {0}
text.mode.place = Platzierungsmodus: {0}
placemode.hold.name = Zeile
placemode.areadelete.name = Gebiet
placemode.touchdelete.name = berühren
placemode.holddelete.name = halten
placemode.none.name = keine
placemode.touch.name = berühren
placemode.cursor.name = Mauszeiger
text.blocks.extrainfo = [accent] Extra Blockinfo:
text.blocks.blockinfo=Blockinfo:
text.blocks.powercapacity=Energiekapazität
text.blocks.powershot=Energie / Schuss
text.blocks.powersecond = Energie / Sekunde
text.blocks.powerdraindamage = Energieabnahme / Schaden
text.blocks.shieldradius = Schildradius
text.blocks.itemspeedsecond = Gegenstands Geschwindigkeit / Sekunde
text.blocks.range = Reichweite
text.blocks.size=Grösse
text.blocks.powerliquid = Energie / Flüssigkeit
text.blocks.maxliquidsecond = Max Flüssigkeit / Sekunde
text.blocks.liquidcapacity=Flüssigkeitskapazität
text.blocks.liquidsecond = Flüssigkeit / Sekunde
text.blocks.damageshot = Schaden / Schuss
text.blocks.ammocapacity = Munitionskapazität
text.blocks.ammo = Munition
text.blocks.ammoitem = Munition / Gegenstand
text.blocks.maxitemssecond=Max Gegenstände / Sekunde
text.blocks.powerrange=Energiereichweite
text.blocks.lasertilerange = Laser Reichweite
text.blocks.capacity = Kapazität
text.blocks.itemcapacity=Gegenstand Kapazität
text.blocks.maxpowergenerationsecond = Max Energieerzeugung / Sekunde
text.blocks.powergenerationsecond = Energieerzeugung / Sekunde
text.blocks.generationsecondsitem = Generation Sekunden / Gegenstand
text.blocks.input = Eingabe
text.blocks.inputliquid=Flüssigkeiten Eingabe
text.blocks.inputitem=Eingabe Gegenstand
text.blocks.output = Ausgabe
text.blocks.secondsitem = Sekunden / Item
text.blocks.maxpowertransfersecond = Max Energieübertragung / Sekunde
text.blocks.explosive=Hochexplosiv!
text.blocks.repairssecond = Reparaturen / Sekunde
text.blocks.health=Lebenspunkte
text.blocks.inaccuracy=Ungenauigkeit
text.blocks.shots=Schüsse
text.blocks.shotssecond = Schüsse / Sekunde
text.blocks.fuel = Treibstoff
text.blocks.fuelduration = Treibstoffdauer
text.blocks.maxoutputsecond = Max Ausgabe / Sekunde
text.blocks.inputcapacity=Eingabekapazität
text.blocks.outputcapacity=Ausgabekapazität
text.blocks.poweritem = Energie / Gegenstand
text.placemode = Platzierungsmodus
text.breakmode = Zerstörungsmodus
text.health = Lebenspunkte
setting.difficulty.easy=Leicht
setting.difficulty.normal=Normal
setting.difficulty.hard=Schwer
@@ -200,7 +143,6 @@ setting.difficulty.insane = Unmöglich
setting.difficulty.purge=Auslöschung
setting.difficulty.name=Schwierigkeit
setting.screenshake.name=Bildschirm wackeln
setting.smoothcam.name = Glatte Kamera
setting.indicators.name=Feind Indikatoren
setting.effects.name=Effekte anzeigen
setting.sensitivity.name=Kontroller Empfindlichkeit
@@ -210,7 +152,6 @@ setting.fps.name = Zeige FPS
setting.vsync.name=VSync
setting.lasers.name=Zeige Energielaser
setting.healthbars.name=Zeige Objekt Lebensbalken
setting.pixelate.name = Pixel Bildschirm
setting.musicvol.name=Musiklautstärke
setting.mutemusic.name=Musik stummschalten
setting.sfxvol.name=Audioeffekte Lautstärke
@@ -228,49 +169,6 @@ map.grassland.name = Grasland
map.tundra.name=Kältesteppe
map.spiral.name=Spirale
map.tutorial.name=Tutorial
tutorial.intro.text = [gelb] Willkommen zum Tutorial [] Um zu beginnen, drücke 'weiter'.
tutorial.moveDesktop.text = Verwende zum Verschieben die Tasten [orange] [[WASD] []. Halte [orange] Shift [] gedrückt, um zu erhöhen. Halte [orange] CTRL/STRG [] gedrückt, während du das [orange] Scrollrad [] zum Vergrössern oder Verkleinern verwendest.
tutorial.shoot.text = Ziele mit der Maus, halte die [orange] linke Maustaste [] gedrückt, um zu schiessen. Versuche es mit dem [gelben] Ziel [].
tutorial.moveAndroid.text = Um die Ansicht zu verschieben, ziehe einen Finger über den Bildschirm. Drücke und ziehe, um zu vergrössern oder zu verkleinern.
tutorial.placeSelect.text = Versuche, ein [gelbes] Förderband [] aus dem Blockmenü unten rechts auszuwählen.
tutorial.placeConveyorDesktop.text = Verwende das [orange] [[scrollwheel] [], um das Förderband nach vorne zu bewegen [orange] vorwärts [], und platziere es dann an der [gelben] markierten Stelle [] mit [orange] [[linke Maustaste] [].
tutorial.placeConveyorAndroid.text = Verwende die [orange] [[rotieren-Taste] [], um das Förderband nach vorne [orange] zu drehen [], ziehe es mit einem Finger in Position und platziere es dann an der [gelben] markierten Stelle [] mit der [Orange] [[Häkchen][].
tutorial.placeConveyorAndroidInfo.text = Alternativ kannst du das Fadenkreuzsymbol unten links drücken, um zum [orange] [[touch mode] [] zu wechseln, und Blöcke durch Tippen auf den Bildschirm platzieren. Im Touch-Modus können Blöcke mit dem Pfeil unten links gedreht werden. Drücke [gelb] neben [], um es auszuprobieren.
tutorial.placeDrill.text = Wähle nun einen [gelben] Steinbohrer [] an der markierten Stelle aus und platziere ihn.
tutorial.blockInfo.text = Wenn du mehr über einen Block erfahren möchtest, tippe oben rechts auf das [orange] Fragezeichen [], um dessen Beschreibung zu lesen.
tutorial.deselectDesktop.text = Du kannst einen Block mit [Orange] [[Rechte Maustaste] [] abwählen.
tutorial.deselectAndroid.text = Du kannst einen Block abwählen, indem du die [orange] X [] -Taste drücken.
tutorial.drillPlaced.text = Der Bohrer erzeugt nun [gelben] Stein, [] gib den Stein nun auf das Förderband aus und bewege ihn dann in den [gelben] Kern [].
tutorial.drillInfo.text = Verschiedene Erze benötigen unterschiedliche Bohrer. Stein erfordert Steinbohrer, Eisen erfordert Eisenbohrer usw.
tutorial.drillPlaced2.text = Wenn du Gegenstände in den Kern verschiebst, steckst du sie in dein [gelbes] Inventar [] oben links. Das Platzieren von Blöcken verwendet Gegenstände aus deinem Inventar.
tutorial.moreDrills.text = Du kannst so viele Bohrer und Förderer miteinander verbinden wie du lust hast.
tutorial.deleteBlock.text = Du kannst Blöcke löschen, indem du mit der [orange] rechte Maustaste [] auf dem Block klickst, den du löschen möchtest. Versuche, dieses Förderband zu löschen.
tutorial.deleteBlockAndroid.text = Du kannst Blöcke löschen, indem du [orange] das Fadenkreuz [] im [orange] Pausenmodusmenü [] links unten auswählst und auf einen Block tippst. Versuche, dieses Fliessband zu löschen.
tutorial.placeTurret.text = Wähle nun einen [gelben] Turm [] an der [gelben] markierten Stelle [] und platziere ihn.
tutorial.placedTurretAmmo.text = Dieser Turm nimmt nun [gelbe] Munition [] vom Förderband an. Du kannst sehen, wie viel Munition es hat, indem du darüber schweben und den [grünen] grünen Balken [] prüfen.
tutorial.turretExplanation.text = Geschütze schiessen automatisch auf den nächsten Feind in Reichweite, solange sie genug Munition haben.
tutorial.waves.text = Jede [yellow] 60 [] Sekunden wird eine Welle von [coral] Feinden [] an einem bestimmten Orten erscheinen und versuchen, den Kern zu zerstören.
tutorial.coreDestruction.text = Dein Ziel ist es, den Kern [yellow] zu verteidigen. Wenn der Kern zerstört wird, verlierst du [coral] das Spiel [].
tutorial.pausingDesktop.text = Wenn du jemals eine Pause machen möchtest, drücke die [orange] Pause-Taste [] oben links oder [orange]space[], um das Spiel anzuhalten. Du kannst auch Blöcke immer noch auswählen und platzieren, während du das Spiel pausiert ist, aber Sie können sich nicht bewegen oder schiessen.
tutorial.pausingAndroid.text = Wenn du jemals eine Pause machen willst, drück einfach die [orange] Pause-Taste [] oben links, um das Spiel anzuhalten. Sie können immer noch Sachen auswählen und Blöcke während der Pause platzieren.
tutorial.purchaseWeapons.text = Du kannst neue [yellow] Waffen [] für deinen Mech kaufen, indem du das Verbesserungs-Menü unten links öffnest.
tutorial.switchWeapons.text = Schalte Waffen, indem du entweder auf das Symbol unten links klickst oder Nummern verwendest [orange] [[1-9] [].
tutorial.spawnWave.text = Hier kommt die erste Welle. Zerstöre sie.
tutorial.pumpDesc.text = In späteren Wellen müsst du möglicherweise [yellow] Pumpen [] verwenden, um Flüssigkeiten für Generatoren oder Extraktoren zu verteilen.
tutorial.pumpPlace.text = Pumpen arbeiten ähnlich wie Bohrer, ausser dass sie anstelle von Gegenständen Flüssigkeiten produzieren. Versuch mal, eine Pumpe auf das [yellow] gekennzeichnete Öl [] zu setzen.
tutorial.conduitUse.text = Stellen Sie nun eine [orange] Leitungsrohr [] von der Pumpe weg.
tutorial.conduitUse2.text = Und noch ein paar mehr ...
tutorial.conduitUse3.text = Und noch ein paar mehr ...
tutorial.generator.text = Stellen Sie nun einen [orange] Verbrennungsgenerator [] Block am Ende des Leitungsrohres auf.
tutorial.generatorExplain.text = Dieser Generator erzeugt nun [yellow] Energie [] aus dem Öl.
tutorial.lasers.text = Die Energie wird mit [yellow] Energielasern [] verteilt. Drehe und platziere einen hier.
tutorial.laserExplain.text = Der Generator wird nun Energie in den Laserblock bewegen. Ein [yellow] undurchsichtiger [] Strahl bedeutet, dass er gerade Leistung überträgt, und ein [yellow] transparenter [] Strahl bedeutet, dass dies nicht der Fall ist.
tutorial.laserMore.text = Du kannst überprüfen, wie viel Energie ein Block hat, indem du darüber schweben und den [yellow] gelben Balken [] oben prüfen.
tutorial.healingTurret.text = Dieser Laser kann verwendet werden, um einen [lime] -Reparaturgeschütz [] anzutreiben. Platziere einen hier.
tutorial.healingTurretExplain.text = Solange er Kraft hat, repariert dieser Turm in der Nähe Blöcke. [] Wenn du spielst, stelle sicher, dass du so schnell wie möglich einen in deiner Basis bekommst!
tutorial.smeltery.text = Viele Blöcke benötigen [orange] Stahl [], um eine [orange] Schmelzer [] herzustellen. Platziere einen hier.
tutorial.smelterySetup.text = Diese Schmelzer wird nun [orange] Stahl [] aus dem Eingangs-Eisen produzieren, wobei Kohle als Brennstoff verwendet wird.
tutorial.end.text = Und damit ist das Tutorial abgeschlossen! Viel Glück!
keybind.move_x.name=bewege_x
keybind.move_y.name=bewege_y
keybind.select.name=wählen
@@ -283,197 +181,315 @@ keybind.pause.name = Pause
keybind.dash.name=Bindestrich
keybind.rotate_alt.name=drehen_alt
keybind.rotate.name=Drehen
keybind.weapon_1.name = Waffe_1
keybind.weapon_2.name = Waffe_2
keybind.weapon_3.name = Waffe_3
keybind.weapon_4.name = Waffe_4
keybind.weapon_5.name = Waffe_5
keybind.weapon_6.name = Waffe_6
mode.waves.name=Wellen
mode.sandbox.name=Sandkasten
mode.freebuild.name=Freier Bau
upgrade.standard.name = Standard
upgrade.standard.description = Der Standardmech.
upgrade.blaster.name = Blaster
upgrade.blaster.description = Schiesst eine langsame, schwache Kugel.
upgrade.triblaster.name = Dreifach-Blaster
upgrade.triblaster.description = Schiesst 3 Kugeln in einer Ausbreitung.
upgrade.clustergun.name = Klumpen-Waffe
upgrade.clustergun.description = Schiesst eine ungenaue Verbreitung von explosiven Granaten.
upgrade.beam.name = Strahlkanone
upgrade.beam.description = Schiesst einen weitreichenden durchdringenden Laserstrahl.
upgrade.vulcan.name = Vulkan
upgrade.vulcan.description = Schiesst eine Flut von schnellen Kugeln.
upgrade.shockgun.name = Schock-Waffe
upgrade.shockgun.description = Erschiesst eine verheerende Explosion von geladenen Granatsplittern.
item.stone.name=Stein
item.iron.name = Eisen
item.coal.name=Kohle
item.steel.name = Stahl
item.titanium.name=Titan
item.dirium.name = Dirium
item.thorium.name=Uran
item.sand.name=Sand
liquid.water.name=Wasser
liquid.plasma.name = Plasma
liquid.lava.name=Lava
liquid.oil.name=Öl
block.weaponfactory.name = Waffenfabrik
block.air.name = Luft
block.blockpart.name = Blockteil
block.deepwater.name = tiefes Wasser
block.water.name = Wasser
block.lava.name = Lava
block.oil.name = Öl
block.stone.name = Stein
block.blackstone.name = schwarzer Stein
block.iron.name = Eisen
block.coal.name = Kohle
block.titanium.name = Titan
block.thorium.name = Uran
block.dirt.name = Erde
block.sand.name = Sand
block.ice.name = Eis
block.snow.name = Schnee
block.grass.name = Gras
block.sandblock.name = Sandstein
block.snowblock.name = Schneeblock
block.stoneblock.name = Steinblock
block.blackstoneblock.name = Schwarzer Stein
block.grassblock.name = Grasblock
block.mossblock.name = Moosblock
block.shrub.name = Busch
block.rock.name = Felsen
block.icerock.name = Eisfelsen
block.blackrock.name = Schwarzer Felsen
block.dirtblock.name = Erdblock
block.stonewall.name = Steinwand
block.stonewall.fulldescription = Ein billiger Verteidigungsblock. Nützlich zum Schutz des Kerns und der Geschütztürme in den ersten Wellen.
block.ironwall.name = Eisenwand
block.ironwall.fulldescription = Ein grundlegender Verteidigungsblock. Bietet Schutz vor Feinden.
block.steelwall.name = Stahlwand
block.steelwall.fulldescription = Ein Standard-Verteidigungsblock. Bietet angemessen Schutz vor Feinden.
block.titaniumwall.name = Titanwand
block.titaniumwall.fulldescription = Eine starke Abwehrblockade. Bietet Schutz vor Feinden.
block.duriumwall.name = Diriumwand
block.duriumwall.fulldescription = Eine sehr starke Abwehrblockade. Bietet guten Schutz vor Feinden.
block.compositewall.name = Verbundende Wand
block.steelwall-large.name = grosse Stahlwand
block.steelwall-large.fulldescription = Ein Standard-Verteidigungsblock. Mehrere Blöcke gross.
block.titaniumwall-large.name = grosse Titanwand
block.titaniumwall-large.fulldescription = Eine starke Abwehrblockade. Mehrere Blöcke gross.
block.duriumwall-large.name = grosse Diriumwand
block.duriumwall-large.fulldescription = Eine sehr starke Abwehrblockade. Mehrere Blöcke gross.
block.titaniumshieldwall.name = geschützte Wand
block.titaniumshieldwall.fulldescription = Ein starker Abwehrblock mit einem extra eingebauten Schild. Benötigt Energie. Verwendet Energie, um feindliche Kugeln zu absorbieren. Es wird empfohlen, Verstärker zu verwenden, um diesem Block Energie zuzuführen.
block.repairturret.name = Reparaturgeschütz
block.repairturret.fulldescription = Repariert beschädigte Blöcke in der Nähe in einem langsamen Tempo. Nutzt geringe Mengen an Energie.
block.megarepairturret.name = Reparaturgeschütz II
block.megarepairturret.fulldescription = Repariert in der Nähe beschädigte Blöcke in Reichweite zu einem vernünftigen Preis. Verwendet Energie.
block.shieldgenerator.name = Schildgenerator
block.shieldgenerator.fulldescription = Ein fortgeschrittener Verteidigungsblock. Schützt alle Blöcke in einem Radius vor Angriffen. Bei keinem Betrieb langsamer Strom verbrauch, verliert bei Kugelkontakt jedoch schnell Energie.
block.door.name=Tür
block.door.fulldescription = Ein Block, der durch Antippen geöffnet und geschlossen werden kann.
block.door-large.name=grosse Tür
block.door-large.fulldescription = Ein Block der mehrere Felder gross ist und der durch Antippen geöffnet und geschlossen werden kann.
block.conduit.name=Leitungsrohr
block.conduit.fulldescription = Grundlegender Flüssigkeitstransportblock. Funktioniert wie ein Förderband, aber mit Flüssigkeiten. Am besten mit Pumpen oder anderen Leitungen verwenden. Kann als Brücke für Gegner und Spieler verwendet werden.
block.pulseconduit.name=Pulsleitungsrohr
block.pulseconduit.fulldescription = Fortschrittlicher Flüssigkeitstransportblock. Transportiert Flüssigkeiten schneller und speichert mehr als normale Leitungsrohre.
block.liquidrouter.name=flüssigkeiten verteiler
block.liquidrouter.fulldescription = Funktioniert ähnlich wie ein Router. Akzeptiert Flüssigkeit von einer Seite und gibt sie auf die anderen Seiten aus. Nützlich zum Aufspalten von Flüssigkeit aus eines einzelnen Leitungsrohres in mehrere andere Leitungensrohre.
block.conveyor.name=Förderband
block.conveyor.fulldescription = Grundelement Transport Block. Bewegt Gegenstände nach vorne und legt sie automatisch in Türmen oder ähnliches. Drehbar. Kann als Brücke für Gegner und Spieler verwendet werden.
block.steelconveyor.name = Stahlförderband
block.steelconveyor.fulldescription = Erweiterter Transportblock Bewegt Gegenstände schneller als Standardförderer.
block.poweredconveyor.name = Impulsförderband
block.poweredconveyor.fulldescription = Der ultimative Transportblock für Gegenstände. Bewegt Gegenstände noch schneller als Stahlförderer.
block.router.name=Verteiler
block.router.fulldescription = Akzeptiert Objekte aus einer Richtung und gibt sie in 3 andere Richtungen aus. Kann auch eine bestimmte Anzahl von Gegenständen speichern. Geeignet zum Aufteilen der Materialien von einem Bohrer in mehrere Geschütze.
block.junction.name=Kreuzung
block.junction.fulldescription = Fungiert als Brücke für zwei kreuzende Förderbänder. Nützlich in Situationen mit zwei verschiedenen Förderbänder, die unterschiedliche Materialien zu verschiedenen Orten transportieren.
block.conveyortunnel.name = Förderbandtunnel
block.conveyortunnel.fulldescription = Transportiert Artikel unter Blöcken. Verwendung für einen Tunnel, der in den zu untertunnelnden Block führt, und einen auf der anderen Seite. Stellen Sie sicher, dass beide Tunnel in entgegengesetzte Richtungen weisen, das heisst das die Tunnel voneinander weggucken.
block.liquidjunction.name=flüssigkeite Kreuzung
block.liquidjunction.fulldescription = Funktioniert als Brücke für zwei kreuzende Leitungsrohre. Nützlich in Situationen mit zwei verschiedenen Leitungen, die unterschiedliche Flüssigkeiten zu verschiedenen Orten transportieren.
block.liquiditemjunction.name = Flüssigkeit-Gegenstand-Kreuzung
block.liquiditemjunction.fulldescription = Fungiert als Brücke zum Überqueren von Leitungsrohre und Förderbändern.
block.powerbooster.name = Energieverstärker
block.powerbooster.fulldescription = Verteilt die Energie an alle Blöcke innerhalb seines Radius.
block.powerlaser.name = Energielaser
block.powerlaser.fulldescription = Erzeugt einen Laser, der die Kraft auf den Block davor überträgt. Erzeugt selbst keine Energie. Am besten mit Generatoren oder anderen Lasern verwendet.
block.powerlaserrouter.name = Laser Verteiler
block.powerlaserrouter.fulldescription = Laser, der die Kraft in drei Richtungen gleichzeitig verteilt. Nützlich in Situationen, in denen mehrere Blöcke von einem Generator mit Strom versorgt werden müssen.
block.powerlasercorner.name = Laser-Ecke
block.powerlasercorner.fulldescription = Laser, der die Kraft in zwei Richtungen gleichzeitig verteilt. Nützlich in Situationen, in denen mehrere Blöcke von einem Generator mit Strom versorgt werden müssen und ein Router ungenau ist.
block.teleporter.name = Teleporter
block.teleporter.fulldescription = Erweiterter Transportblock Teleporter geben Gegenstände in andere Teleporter derselben Farbe ein. Tut nichts, wenn keine Teleporter derselben Farbe existieren. Wenn mehrere Teleporter mit derselben Farbe existieren, wird eine zufällige ausgewählt. Verwendet Energie. Tippen, um die Farbe zu ändern.
block.sorter.name=Sortierer
block.sorter.fulldescription = Sortiert den Gegenstand nach Materialart. Das zu akzeptierende Material wird durch die Farbe im Block angezeigt. Alle Artikel, die dem Sortiermaterial entsprechen, werden vorwärts ausgegeben, alles andere wird nach links und rechts ausgegeben.
block.core.name = Kern
block.pump.name = Pumpe
block.pump.fulldescription = Pumpen Flüssigkeiten aus einem Quellblock - meist Wasser, Lava oder Öl. Gibt Flüssigkeit in benachbarte Leitungsrohre aus.
block.fluxpump.name = flux Pumpe
block.fluxpump.fulldescription = Eine erweiterte Version der Pumpe. Speichert mehr Flüssigkeit und pumpt Flüssigkeit schneller.
block.smelter.name=Schmelzer
block.smelter.fulldescription = Der essentielle Bastelblock. Wenn 1x Eisen und 1x Kohle eingegeben wird, wird 1x Stahl ausgegeben.
block.crucible.name = Tiegel
block.crucible.fulldescription = Ein fortgeschrittener Handwerksblock. Braucht Kohle um zu funktionieren. Wenn 1x Titan und 1x Stahl eingegeben wird, wird 1x Dirium ausgegeben.
block.coalpurifier.name = Kohle-Extraktor
block.coalpurifier.fulldescription = Ein einfacher Extraktorblock. Gibt Kohle aus, wenn der Block mit grossen Mengen Wasser und Stein gefüllt wird.
block.titaniumpurifier.name = Titan-Extraktor
block.titaniumpurifier.fulldescription = Ein Standard-Extraktorblock. Gibt Titan aus wenn er mit grossen Mengen Wasser und Eisen gefüllt wird.
block.oilrefinery.name = Ölraffinerie
block.oilrefinery.fulldescription = Veredelt grosse Mengen Öl zu Kohle. Nützlich für die Betankung von Blöcken die Kohle benutzen wie z.b. Waffentürme, wenn Kohleadern knapp sind.
block.stoneformer.name = Steinformer
block.stoneformer.fulldescription = Verfestigt flüssige Lava zu Stein. Nützlich für die Herstellung von grossen Mengen von Stein für Kohle-Extraktor.
block.lavasmelter.name = Lava-Schmelzer
block.lavasmelter.fulldescription = Verwendet Lava, um Eisen zu Stahl schmelzen. Eine Alternative zum Schmelzer. Nützlich in Situationen, in denen Kohle knapp ist.
block.stonedrill.name = Steinbohrer
block.stonedrill.fulldescription = Der wesentliche Bohrer. Wenn er auf Steinplatten gelegt wird, gibt er Steine mit einer langsamen Geschwindigkeit auf endlosen Zeit aus.
block.irondrill.name = Eisenbohrer
block.irondrill.fulldescription = Eine grundlegender Bohrer. Wenn es auf Eisenerz gelegt wird, gibt er Eisen auf endloser Zeit langsam aus.
block.coaldrill.name = Kohlenbohrer
block.coaldrill.fulldescription = Eine grundlegender Bohrer. Wenn es auf Kohleerz platziert wird, gibt er für endloser Zeit langsam Kohle aus.
block.thoriumdrill.name = Uran-Bohrer
block.thoriumdrill.fulldescription = Ein fortgeschrittener Bohrer. Wenn es auf Uranerz platziert wird, gibt er Uran mit einer langsamen Geschwindigkeit auf endloser Zeit ab.
block.titaniumdrill.name = Titan-Bohrer
block.titaniumdrill.fulldescription = Ein fortgeschrittener Bohrer. Wenn es auf Titanerz platziert wird, gibt er Titan langsam aus für undendlich langer Zeit
block.omnidrill.name = Omni-Bohrer
block.omnidrill.fulldescription = Der ultimative Bohrer. Baut in schnellem Tempo jegliches Erz ab.
block.coalgenerator.name = Kohle-Generator
block.coalgenerator.fulldescription = Der wesentliche Generator. Erzeugt Energie aus Kohle. Gibt Energie als Laser an seine 4 Seiten aus.
block.thermalgenerator.name = thermischer Generator
block.thermalgenerator.fulldescription = Erzeugt Energie aus Lava. Gibt Energie als Laser an seine 4 Seiten aus.
block.combustiongenerator.name = Verbrennungsgenerator
block.combustiongenerator.fulldescription = Erzeugt Energie aus Öl. Gibt Energie als Laser an seine 4 Seiten aus.
block.rtgenerator.name = RTG-Generator
block.rtgenerator.fulldescription = Erzeugt geringe Mengen an Energie aus dem radioaktiven Zerfall von Uran. Gibt Energie als Laser an seine 4 Seiten aus.
block.nuclearreactor.name = Kernreaktor
block.nuclearreactor.fulldescription = Eine erweiterte Version des RTG-Generators und der ultimative Energie Generator. Erzeugt Strom aus Uran. Erfordert konstante Wasserkühlung. Sehr heiss; explodiert heftig, wenn zu wenig Kühlmittel zugeführt wird.
block.turret.name = Geschütz
block.turret.fulldescription = Ein einfacher, billiger Turm. Verwendet Stein für Munition. Hat etwas mehr Reichweite als das Doppelgeschütz.
block.doubleturret.name = Doppelgeschütz
block.doubleturret.fulldescription = Eine etwas stärkere Version des Geschützes. Verwendet Stein für Munition. Hat deutlich mehr Schaden, hat aber eine geringere Reichweite. Schiesst zwei Kugeln.
block.machineturret.name = Gatling Geschütz
block.machineturret.fulldescription = Ein Standard-Allround-Turm. Verwendet Eisen für Munition. Hat eine schnelle Feuerrate mit gutem Schaden.
block.shotgunturret.name = Splittergeschütz
block.shotgunturret.fulldescription = Ein Standard-Turm. Verwendet Eisen für Munition. Schiesst 7 Kugeln auf einmal. Geringere Reichweite, aber höhere Schadensleistung als das Gatling Geschütz
block.flameturret.name = Flammenwerfer
block.flameturret.fulldescription = Fortschrittlicher Nahbereichswaffe. Verwendet Kohle für Munition. Hat eine sehr geringe Reichweite, aber sehr hohen Schaden. Gut für Nahkampf. Empfohlen für den Einsatz hinter Mauern.
block.sniperturret.name = Schienenkanone
block.sniperturret.fulldescription = Fortschrittliches Reichweitengeschütz. Verwendet Stahl für Munition. Sehr hoher Schaden, aber niedrige Feuerrate. Teuer zu verwenden, kann aber aufgrund seiner Reichweite weit entfernt von den feindlichen Linien platziert werden.
block.mortarturret.name = Flakgeschütz
block.mortarturret.fulldescription = Fortschrittlicher Flächen-Schaden Turm. Verwendet Kohle für Munition. Sehr langsame Feuerrate und Geschosse, aber sehr hoher Einzelziel- und Flächenschaden. Nützlich gegen grosse Mengen von Feinden.
block.laserturret.name = Laserturm
block.laserturret.fulldescription = Fortschrittlicher Einzelziel-Turm. Verwendet Strom. Guter Allround-Revolver für mittlere Reichweiten. Nur Einzelziel. Verfehlt nie.
block.waveturret.name = Teslakanone
block.waveturret.fulldescription = Erweiterter Mehrfach-Ziele-Turm. Verwendet Strom. Mittlere Reichweite. Verfehlt nie. Im Durchschnitt zu wenig Schaden, aber kann mehrere Feinde gleichzeitig mit Kettenblitz treffen.
block.plasmaturret.name = Plasmageschütz
block.plasmaturret.fulldescription = Hochentwickelte Version des Flammenwerfers. Verwendet Kohle als Munition. Sehr hoher Schaden, niedriger bis mittlerer Reichweite.
block.chainturret.name = Kettengeschütz
block.chainturret.fulldescription = Die ultimative Schnellfeuer Waffe. Verwendet Uran als Munition. Schiesst grosse Kugeln mit hoher Feuerrate. Mittlere Reichweite. Mehrere Felder gross. Hält extrem viel aus.
block.titancannon.name = Titan Kanone
block.titancannon.fulldescription = Die ultimative Langstrecken Kanone. Verwendet Uran als Munition. Schiesst grosse Flächen-Schadenden-Granaten mit einer mittleren Feuerrate ab. Lange Reichweite. Ist mehrere Felder gross. Hält extrem viel aus.
block.playerspawn.name = Spielerspawn
block.enemyspawn.name = Gegnerspawn
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.newgame=New Game
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.closing=[accent]Closing server...
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.clientOutdated=Outdated client! Update your game!
text.server.kicked.serverOutdated=Outdated server! Ask the host to update!
text.server.kicked.banned=You are banned on this server.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.server.friendlyfire=Friendly Fire
text.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.trace.ip=IP: [accent]{0}
text.trace.id=Unique ID: [accent]{0}
text.trace.android=Android Client: [accent]{0}
text.trace.modclient=Custom Client: [accent]{0}
text.trace.totalblocksbroken=Total blocks broken: [accent]{0}
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.trace.lastblockbroken=Last block broken: [accent]{0}
text.trace.totalblocksplaced=Total blocks placed: [accent]{0}
text.trace.lastblockplaced=Last block placed: [accent]{0}
text.invalidid=Invalid client ID! Submit a bug report.
text.server.bans=Bans
text.server.bans.none=No banned players found!
text.server.admins=Admins
text.server.admins.none=No admins found!
text.server.outdated=[crimson]Outdated Server![]
text.server.outdated.client=[crimson]Outdated Client![]
text.server.version=[lightgray]Version: {0}
text.server.custombuild=[yellow]Custom Build
text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.disconnect.data=Failed to load world data!
text.server.addressinuse=Address already in use!
text.save.difficulty=Difficulty: {0}
text.copylink=Copy Link
text.changelog.title=Changelog
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.changelog.error=[scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.language.restart=Please restart your game for the language settings to take effect.
text.settings.language=Language
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.info.title=[accent]Info
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.fullscreen.name=Fullscreen
setting.multithread.name=Multithreading
setting.minimap.name=Show Minimap
text.keybind.title=Rebind Keys
keybind.block_info.name=block_info
keybind.chat.name=chat
keybind.player_list.name=player_list
keybind.console.name=console
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+224 -281
View File
@@ -1,7 +1,6 @@
text.about=Creado por [ROYAL]Anuken [] - [SKY] anukendev@gmail.com [] Originalmente una entrada en el [naranja] GDL [] Metal Monstrosity Jam. Créditos: - SFX hecho con [AMARILLO] bfxr [] - Música hecha por [VERDE] RoccoW [] / encontrado en [lime] FreeMusicArchive.org [] Agradecimientos especiales a: - [coral] MitchellFJN []: extensa prueba de juego y comentarios - [cielo] Luxray5474 []: trabajo wiki, contribuciones de código - [lime] Epowerj []: sistema de compilación de código, icono - Todos los probadores beta en itch.io y Google Play\n
text.credits=Créditos
text.discord=¡Únete al Discord de Mindustry!
text.changes = [SCARLET] ¡Atención! [] Algunas mecánicas importantes del juego han sido cambiadas. - [acento] Los teletransportadores [] ahora usan energía. - [acento]Los talleres de fundición[] y [acento]los crisoles [] ahora tienen una capacidad máxima de artículos. - [acento] Los crisoles[] ahora requieren carbón como combustible.
text.link.discord.description=La sala oficial del discord de Mindustry
text.link.github.description=Código fuente del juego
text.link.dev-builds.description=Estados en desarrollo inestables
@@ -11,13 +10,12 @@ text.link.google-play.description = Listado en la tienda de Google Play
text.link.wiki.description=Wiki oficial de Mindustry
text.linkfail=¡Error al abrir el enlace!\nLa URL ha sido copiada a su portapapeles
text.editor.web=¡La versión web no es compatible con el editor!\nDescargue el juego para usarlo.
text.multiplayer.web = ¡Esta versión del juego no admite multijugador!\nPara jugar al modo multijugador desde su navegador, use el enlace \"versión de varios jugadores\" en la página itch.io.
text.multiplayer.web=¡Esta versión del juego no admite multijugador!\nPara jugar al modo multijugador desde su navegador, use el enlace "versión de varios jugadores" en la página itch.io.
text.gameover=El núcleo fue destruido.
text.highscore=[YELLOW]¡Nueva mejor puntuación!
text.lasted=Duró hasta la ronda
text.level.highscore=Puntuación màs alta: [accent]
text.level.delete.title=Confirmar Eliminación
text.level.delete = ¿Seguro que quieres eliminar el mapa \"[ORANGE] \" {0}?
text.level.select=Selección de nivel
text.level.mode=Modo de juego:
text.savegame=Guardar Partida
@@ -27,9 +25,7 @@ text.newgame = Nueva Partida
text.quit=Salir
text.about.button=Acerca de
text.name=Nombre
text.public = Público
text.players={0} Jugadores en línea
text.server.player.host = {0} ANFITRIÓN
text.players.single={0} jugador en línea
text.server.mismatch=Error de paquete: posible desajuste de la versión cliente / servidor.\n¡Asegúrate de que tú y el anfitrión tengáis la última versión de Mindustry!
text.server.closing=[accent] Cerrando servidor ...
@@ -81,7 +77,6 @@ text.confirmban = ¿Estás seguro de que quieres prohibir este jugador?
text.confirmunban=¿Estás seguro de que quieres desbloquear a este jugador?
text.confirmadmin=¿Seguro que quieres que este jugador sea un administrador?
text.confirmunadmin=¿Seguro que quieres eliminar el estado de administrador de este reproductor?
text.joingame.byip = Unirse por IP ...
text.joingame.title=Unirse a una partida
text.joingame.ip=IP:
text.disconnect=Desconectado.
@@ -93,8 +88,6 @@ text.server.port = Puerto:
text.server.addressinuse=¡Dirección ya en uso!
text.server.invalidport=¡Número de puerto inválido!
text.server.error=[crimson] Error en la creación del servidor: [orange]
text.tutorial.back = < Anterior
text.tutorial.next = Siguiente >
text.save.new=Nuevo Guardado
text.save.overwrite=¿Seguro que quieres sobrescribir este juego guardado?
text.overwrite=Sobreescribir
@@ -145,7 +138,6 @@ text.enemies = {0} Enemigos
text.enemies.single={0} Enemigo
text.loadimage=Cargar imagen
text.saveimage=Guardar imagen
text.oregen = Generación de mineral {0}
text.editor.badsize=[orange]¡Dimensiones de imagen inválidas![]\nDimensiones de mapa válidas: {0}
text.editor.errorimageload=Error al cargar el archivo de imagen: [orange] {0}
text.editor.errorimagesave=Error al guardar el archivo de imagen: [orange] {0}
@@ -156,21 +148,12 @@ text.editor.savemap = Guardar mapa
text.editor.loadimage=Cargar imagen
text.editor.saveimage=Guardar imagen
text.editor.unsaved=[scarlet] ¡Tienes cambios sin guardar! [] ¿Estás seguro de que quieres salir?
text.editor.brushsize = Tamaño del pincel: {0}
text.editor.noplayerspawn = ¡Este mapa no tiene punto de aparición del jugador!
text.editor.manyplayerspawns = ¡Los mapas no pueden tener más de un punto de spawn de jugador!
text.editor.manyenemyspawns = {0 }¡No puede tener más de puntos de aparición enemiga!
text.editor.resizemap=Cambiar el tamaño del mapa
text.editor.resizebig = [escarlata] ¡Advertencia! [] Los mapas de más de 256 unidades pueden ser inestables.
text.editor.mapname=Nombre del mapa
text.editor.overwrite=[acento] ¡Advertencia!\nEsto sobrescribe un mapa existente.
text.editor.failoverwrite = [carmesí] ¡No se puede sobrescribir el mapa por defecto!
text.editor.selectmap=Seleccione un mapa para cargar:
text.width=Ancho:
text.height=Altura:
text.randomize = Aleatorizar
text.apply = Aplicar
text.update = Refrescar
text.menu=Menú
text.play=Jugar
text.load=Cargar
@@ -191,67 +174,25 @@ text.upgrades = Mejoras
text.purchased=[LIME] Creado!
text.weapons=Armas
text.paused=Pausado
text.respawn = Reapareciendo en
text.info.title=[acento] Información
text.error.title=[carmesí] Se ha producido un error
text.error.crashmessage = [SCARLET] Se ha producido un error inesperado, que habría causado un bloqueo. [] Informe las circunstancias exactas bajo las cuales se produjo este error al desarrollador: [ORANGE] anukendev@gmail.com []
text.error.crashtitle=Ha ocurrido un error
text.mode.break = Modo de eliminación:
text.mode.place = Modo de colocación:
placemode.hold.name = Línea
placemode.areadelete.name = Àrea
placemode.touchdelete.name = Toque
placemode.holddelete.name = Mantener
placemode.none.name = Ninguno
placemode.touch.name = Toque
placemode.cursor.name = Cursor
text.blocks.extrainfo = [acento] información adicional del bloque:
text.blocks.blockinfo=Información de bloque
text.blocks.powercapacity=Capacidad de energía
text.blocks.powershot=Energía/disparo
text.blocks.powersecond = energía drenada/segundo
text.blocks.powerdraindamage = Energía drenada/daño
text.blocks.shieldradius = Radio del escudo
text.blocks.itemspeedsecond = Velocidad del objeto/segundo
text.blocks.range = Rango
text.blocks.size=Tamaño
text.blocks.powerliquid = Poder/Líquido
text.blocks.maxliquidsecond = máximo líquido/segundo
text.blocks.liquidcapacity=Capacidad de liquido
text.blocks.liquidsecond = Líquido/segundo
text.blocks.damageshot = Daño/ disparo
text.blocks.ammocapacity = Capacidad de munición
text.blocks.ammo = Munición:
text.blocks.ammoitem = Munición/objeto
text.blocks.maxitemssecond=Objetos máximos/segundo
text.blocks.powerrange=Rango de energía
text.blocks.lasertilerange = Rango de poder en casilllas
text.blocks.capacity = Capacidad
text.blocks.itemcapacity=Capacidad de items
text.blocks.maxpowergenerationsecond = Máxima generación de energía/segundo
text.blocks.powergenerationsecond = Generación de energía/segundo
text.blocks.generationsecondsitem = Segundos de generación/Item
text.blocks.input = Ingreso
text.blocks.inputliquid=Entrada de líquidos
text.blocks.inputitem=Entrada de ítems
text.blocks.output = Salida
text.blocks.secondsitem = Segundos/Ítem
text.blocks.maxpowertransfersecond = Máxima transferencia de poder/segundo
text.blocks.explosive=¡Altamente explosivo!
text.blocks.repairssecond = Reparado / segundo
text.blocks.health=Vida
text.blocks.inaccuracy=Inexactitud
text.blocks.shots=Disparos
text.blocks.shotssecond = Disparos / segundo
text.blocks.fuel = Combustible
text.blocks.fuelduration = Duración del combustible
text.blocks.maxoutputsecond = Máxima salida/segundo
text.blocks.inputcapacity=Capacidad de entrada
text.blocks.outputcapacity=Capacidad de salida
text.blocks.poweritem = Poder/Ítem
text.placemode = Modo colocar
text.breakmode = Modo romper
text.health = Salud
setting.difficulty.easy=Fácil
setting.difficulty.normal=Mormal
setting.difficulty.hard=Difícil
@@ -259,7 +200,6 @@ setting.difficulty.insane = Insano
setting.difficulty.purge=Purga
setting.difficulty.name=Dificultad:
setting.screenshake.name=Shake de pantalla
setting.smoothcam.name = Cámara lisa
setting.indicators.name=Indicador del enemigo
setting.effects.name=Mostrar efectos
setting.sensitivity.name=Sensibilidad del controlador
@@ -270,9 +210,7 @@ setting.multithread.name = Multithreading
setting.fps.name=Mostrar fps
setting.vsync.name=VSync
setting.lasers.name=Mostrar láseres de poder
setting.previewopacity.name = Colocando Vista Previa Opacidad
setting.healthbars.name=Mostrar barras de vida de enemigos y jugadores
setting.pixelate.name = Pixelear pantalla
setting.musicvol.name=Volumen de la música
setting.mutemusic.name=Apagar música
setting.sfxvol.name=Volumen de los efectos de sonido
@@ -290,50 +228,6 @@ map.grassland.name = Pastizal
map.tundra.name=Tundra
map.spiral.name=Espiral
map.tutorial.name=Tutorial
tutorial.intro.text = [amarillo] Bienvenido al tutorial. [] Para comenzar, presione 'siguiente'.
tutorial.moveDesktop.text = Para moverse, use las teclas [naranja] [[WASD] []. Mantenga [naranja] shift [] para impulsar. Mantenga presionada la tecla [naranja] CTRL [] mientras usa la rueda de desplazamiento [naranja] [] para acercar o alejar la imagen.
tutorial.shoot.text = Usa el mouse para apuntar, mantén presionado [naranja] el botón izquierdo del mouse [] para disparar. Intenta practicar en el objetivo [amarillo] [].
tutorial.moveAndroid.text = Para recorrer la vista, arrastre un dedo por la pantalla. Pellizque y arrastre para acercar o alejar.
tutorial.placeSelect.text = Intente seleccionar un transportador [amarillo] [] desde el menú del bloque en la parte inferior derecha.
tutorial.placeConveyorDesktop.text = Utilice [naranja] [[rueda de desplazamiento] [] para girar la cinta transportadora hacia [naranja] hacia adelante [], luego colóquela en la ubicación [amarilla] marcada [] usando [naranja] [[botón izquierdo del mouse] [].
tutorial.placeConveyorAndroid.text = Utilice [naranja] [[girar el botón] [] para girar el transportador hacia [naranja] hacia delante [], arrástrelo con un dedo, luego colóquelo en la ubicación [amarilla] marcada [] usando [naranja] [[marca de verificación][].
tutorial.placeConveyorAndroidInfo.text = Alternativamente, puede presionar el icono de la cruz en la parte inferior izquierda para cambiar a [naranja] [[modo táctil] [] y colocar bloques tocando en la pantalla. En modo táctil, los bloques se pueden girar con la flecha en la parte inferior izquierda. Presione [amarillo] al lado [] para probarlo.
tutorial.placeDrill.text = Ahora, seleccione y coloque un taladro de piedra [amarillo] [] en la ubicación marcada.
tutorial.blockInfo.text = Si desea obtener más información sobre un bloque, puede tocar el signo de interrogación [naranja] [] en la parte superior derecha para leer su descripción.
tutorial.deselectDesktop.text = Puede deseleccionar un bloque usando el [naranja] [[botón derecho del mouse] [].
tutorial.deselectAndroid.text = Puede deseleccionar un bloque presionando el botón [naranja] X [].
tutorial.drillPlaced.text = El taladro ahora producirá piedra [amarilla], [] la enviará al transportador y luego la moverá al núcleo [amarillo] [].
tutorial.drillInfo.text = Diferentes minerales necesitan diferentes ejercicios. La piedra requiere taladros de piedra, el hierro requiere taladros de hierro, etc.
tutorial.drillPlaced2.text = Mover elementos al núcleo los coloca en su inventario de elementos [amarillo] [], en la esquina superior izquierda. Colocar bloques utiliza elementos de tu inventario.
tutorial.moreDrills.text = Puede vincular muchos taladros y cintas transportadoras juntas, de esa manera.
tutorial.deleteBlock.text = Puede eliminar bloques haciendo clic en el botón [naranja] del botón derecho del mouse [] en el bloque que desea eliminar. Intente eliminar este transportador.
tutorial.deleteBlockAndroid.text = Puede eliminar bloques mediante [naranja] seleccionando la cruz [] en el menú [naranja] del modo de interrupción [] en la parte inferior izquierda y tocando un bloque. Intente eliminar este transportador.
tutorial.placeTurret.text = Ahora, seleccione y coloque una torreta [amarilla] [] en la ubicación marcada [amarilla] [].
tutorial.placedTurretAmmo.text = Esta torre ahora aceptará [amarillo] munición [] del transportador. Puedes ver la cantidad de munición que tiene al pasar el mouse sobre ella y verificar la barra verde [verde] [].
tutorial.turretExplanation.text = Las torretas dispararán automáticamente al enemigo más cercano al alcance, siempre que tengan suficiente munición.
tutorial.waves.text = Cada [amarillo] 60 [] segundos, una ola de [coral] enemigos [] aparecerán en lugares específicos e intentarán destruir el núcleo.
tutorial.coreDestruction.text = Tu objetivo es [amarillo] defender el núcleo []. Si se destruye el núcleo, tú [coral] pierdes el juego [].
tutorial.pausingDesktop.text = Si alguna vez necesita tomar un descanso, presione el botón de pausa [naranja] [] en el espacio superior izquierdo o [naranja] [] para detener el juego. Aún puede seleccionar y colocar bloques mientras está en pausa, pero no puede mover o disparar.
tutorial.pausingAndroid.text = Si alguna vez necesita tomarse un descanso, presione el botón de pausa [naranja] [] en la parte superior izquierda para pausar el juego. Todavía puede romper y colocar bloques mientras está en pausa.
tutorial.purchaseWeapons.text = Puedes comprar nuevas armas [amarillas] [] para tu mech abriendo el menú de actualización en la esquina inferior izquierda.
tutorial.switchWeapons.text = Cambie las armas haciendo clic en su icono en la esquina inferior izquierda o usando números [naranja] [[1-9] [].
tutorial.spawnWave.text = Aquí viene una ola ahora. Destruyelos.
tutorial.pumpDesc.text = En olas posteriores, es posible que deba usar bombas [amarillas] [] para distribuir líquidos para generadores o extractores.
tutorial.pumpPlace.text = Las bombas funcionan de manera similar a los taladros, excepto que producen líquidos en lugar de artículos. Intente colocar una bomba en el aceite designado [amarillo] [].
tutorial.conduitUse.text = Ahora coloque un conducto [naranja] [] que se aleje de la bomba.
tutorial.conduitUse2.text = Y algunos más ...
tutorial.conduitUse3.text = Y algunos más ...
tutorial.generator.text = Ahora, coloque un bloque [naranja] de generador de combustión [] al final del conducto.
tutorial.generatorExplain.text = Este generador ahora creará energía [amarilla] [] del aceite.
tutorial.lasers.text = La potencia se distribuye usando láseres de potencia [amarillos] []. Gira y coloca uno aquí.
tutorial.laserExplain.text = El generador ahora moverá energía al bloque láser. Un haz [amarillo] opaco [] significa que está transmitiendo corriente, y un haz [amarillo] transparente [] significa que no lo está.
tutorial.laserMore.text = Puedes verificar cuánta potencia tiene un bloque al pasar el mouse sobre él y verificar la barra amarilla [amarilla] [] en la parte superior.
tutorial.healingTurret.text = Este láser se puede usar para alimentar una torreta de reparación de [cal] []. Coloca uno aquí.
tutorial.healingTurretExplain.text = Mientras tenga energía, esta torreta [cal] reparará los bloques cercanos. [] ¡Al jugar, asegúrate de obtener uno en tu base lo más rápido posible!
tutorial.smeltery.text = Muchos bloques requieren [naranja] acero [] para fabricar, lo que requiere una fundición [naranja] [] para fabricar. Coloca uno aquí.
tutorial.smelterySetup.text = Esta fundición producirá acero [naranja] [] a partir de la plancha de entrada, utilizando carbón como combustible.
tutorial.tunnelExplain.text = También tenga en cuenta que los artículos pasan por un bloque de túnel [naranja] [] y salen del otro lado, pasando por el bloque de piedra. Tenga en cuenta que los túneles solo pueden atravesar hasta 2 bloques.
tutorial.end.text = ¡Y eso concluye el tutorial! ¡Buena suerte!
text.keybind.title=Vuelva a conectar las llaves
keybind.move_x.name=mover_x
keybind.move_y.name=mover_y
@@ -351,12 +245,6 @@ keybind.player_list.name = Jugadores_lista
keybind.console.name=Console
keybind.rotate_alt.name=Rotacion_alt
keybind.rotate.name=Girar
keybind.weapon_1.name = Arma_1
keybind.weapon_2.name = Arma_2
keybind.weapon_3.name = Arma_3\n
keybind.weapon_4.name = Arma_4
keybind.weapon_5.name = Arma_5
keybind.weapon_6.name = Arma6
mode.text.help.title=Descripción de modos
mode.waves.name=Hordas
mode.waves.description=El modo normal. Recursos limitados y las hordas vendrán automáticamente
@@ -364,189 +252,244 @@ mode.sandbox.name = Sandbox
mode.sandbox.description=Recursos infinitos y sin temporizador para las olas.
mode.freebuild.name=Construcción libre
mode.freebuild.description=Recursos limitados y sin tiempo definido para las hordas
upgrade.standard.name = Estandar
upgrade.standard.description = El mech estándar.
upgrade.blaster.name = Blaster
upgrade.blaster.description = Dispara una bala lenta y débil.
upgrade.triblaster.name = Triblaster
upgrade.triblaster.description = Dispara 3 balas en una extensión.
upgrade.clustergun.name = Cleaster Gun
upgrade.clustergun.description = Dispara una propagación inexacta de granadas explosivas.
upgrade.beam.name = Cañòn Beam
upgrade.beam.description = Dispara un rayo láser perforante de largo alcance.
upgrade.vulcan.name = Volcán
upgrade.vulcan.description = Dispara una ráfaga de balas rapidas
upgrade.shockgun.name = Pistola Shock\n
upgrade.shockgun.description = Dispara una ráfaga devastadora de metralla cargada.
item.stone.name=Piedra
item.iron.name = Hierro
item.coal.name=Carbón
item.steel.name = Acero
item.titanium.name=Titanio
item.dirium.name = Dirio
item.uranium.name = Uranio
item.sand.name=Arena
liquid.water.name=Agua
liquid.plasma.name = Plasma
liquid.lava.name=Lava
liquid.oil.name=Aceite
block.weaponfactory.name = Fábrica de armas
block.weaponfactory.fulldescription = Se usa para crear armas para el jugador mech. Haga clic para usar. Automáticamente toma recursos del núcleo.
block.air.name = Aire
block.blockpart.name = Bloque
block.deepwater.name = Aguas profundas
block.water.name = Agua
block.lava.name = Lava
block.oil.name = Aceite
block.stone.name = Piedra
block.blackstone.name = Piedra Negra
block.iron.name = Hierro
block.coal.name = Carbón
block.titanium.name = Titanio
block.uranium.name = Uranio
block.dirt.name = Sucio
block.sand.name = Arena
block.ice.name = Hielo
block.snow.name = Nieve
block.grass.name = Césped
block.sandblock.name = Bloque de arena
block.snowblock.name = Bloque de nieve
block.stoneblock.name = Bloque de piedra
block.blackstoneblock.name = Bloque de piedra negra
block.grassblock.name = Bloque de césped
block.mossblock.name = Bloque de musgo
block.shrub.name = Arbusto
block.rock.name = Piedra
block.icerock.name = Piedra congelada
block.blackrock.name = Roca Negra
block.dirtblock.name = Bloque de suciedad
block.stonewall.name = Pared de piedra
block.stonewall.fulldescription = Un bloque defensivo barato. Útil para proteger el núcleo y las torrecillas en las primeras olas.
block.ironwall.name = Muro de hierro
block.ironwall.fulldescription = Un bloque defensivo básico. Proporciona protección de los enemigos.
block.steelwall.name = Muro de acero
block.steelwall.fulldescription = Un bloque defensivo estándar. protección adecuada de los enemigos.
block.titaniumwall.name = Muro de titanio
block.titaniumwall.fulldescription = Un fuerte bloqueo defensivo. Proporciona protección de los enemigos.
block.duriumwall.name = Muro de Dirio
block.duriumwall.fulldescription = Un bloque defensivo muy fuerte. Proporciona protección de los enemigos.
block.compositewall.name = Muro compuesto
block.steelwall-large.name = Pared de acero grande
block.steelwall-large.fulldescription = Un bloque defensivo estándar. Se extiende por múltiples mosaicos.
block.titaniumwall-large.name = Gran pared de titanio
block.titaniumwall-large.fulldescription = Un fuerte bloqueo defensivo. Se extiende por múltiples mosaicos.
block.duriumwall-large.name = Gran pared de dirio
block.duriumwall-large.fulldescription = Un bloque defensivo muy fuerte. Se extiende por múltiples mosaicos.
block.titaniumshieldwall.name = Muro blindado
block.titaniumshieldwall.fulldescription = Un fuerte bloque defensivo, con un escudo extra incorporado. Requiere poder Usa energía para absorber las balas enemigas. Se recomienda utilizar potenciadores de potencia para proporcionar energía a este bloque.
block.repairturret.name = Torreta de reparación
block.repairturret.fulldescription = Repara los bloques dañados cercanos en el rango a una velocidad lenta. Utiliza pequeñas cantidades de energía.
block.megarepairturret.name = Torreta de reparación II
block.megarepairturret.fulldescription = Repara los bloques dañados cercanos en el rango a una tasa decente. Utiliza el poder
block.shieldgenerator.name = Generador de escudo
block.shieldgenerator.fulldescription = Un bloque defensivo avanzado. Protege todos los bloques en un radio del ataque. Utiliza potencia a un ritmo lento cuando está inactivo, pero consume energía rápidamente al contacto con balas.
block.door.name=Puerta
block.door.fulldescription = Un bloque que se puede abrir y cerrar tocando.
block.door-large.name=Puerta grande
block.door-large.fulldescription = Un bloque que se puede abrir y cerrar tocando.
block.conduit.name=Conducto
block.conduit.fulldescription = Bloque de transporte de líquido básico. Funciona como un transportador, pero con líquidos. Se usa mejor con bombas u otros conductos. Se puede usar como puente sobre líquidos para enemigos y jugadores.
block.pulseconduit.name=Conducto de pulso
block.pulseconduit.fulldescription = Bloque de transporte de líquidos avanzado. Transporta líquidos más rápido y almacena más que los conductos estándar.
block.liquidrouter.name=Enrutador líquido
block.liquidrouter.fulldescription = Funciona de manera similar a un enrutador. Acepta entrada de líquido desde un lado y lo envía a los otros lados. Útil para dividir el líquido de un solo conducto en otros múltiples conductos.
block.conveyor.name=Transportador
block.conveyor.fulldescription = Bloque de transporte de elementos básicos. Mueve los artículos hacia adelante y los deposita automáticamente en torretas o crafters. Giratorio. Se puede usar como puente sobre líquidos para enemigos y jugadores.
block.steelconveyor.name = Transportador de acero
block.steelconveyor.fulldescription = Bloque de transporte de elementos avanzados. Mueve los artículos más rápido que los transportadores estándar.
block.poweredconveyor.name = Transportador de pulso
block.poweredconveyor.fulldescription = El último bloque de transporte de elementos. Mueve los artículos más rápido que los transportadores de acero.
block.router.name=Enrutador
block.router.fulldescription = Acepta elementos de una dirección y los envía a otras 3 direcciones. También puede almacenar una cierta cantidad de artículos. Útil para dividir los materiales de un taladro en múltiples torretas.
block.junction.name=Union
block.junction.fulldescription = Actúa como un puente para cruzar dos cintas transportadoras. Útil en situaciones con dos transportadores diferentes que llevan diferentes materiales a diferentes ubicaciones.
block.conveyortunnel.name = Túnel transportador
block.conveyortunnel.fulldescription = Transporta el artículo debajo de bloques. Para usarlo, coloque un túnel que conduce al bloque por el que se colocará el túnel, y otro del otro lado. Asegúrate de que ambos túneles estén orientados en direcciones opuestas, que se dirigen hacia los bloques a los que están ingresando o enviando.
block.liquidjunction.name=Unión líquida
block.liquidjunction.fulldescription = Actúa como un puente para dos conductos que cruzan. Útil en situaciones con dos conductos diferentes que llevan diferentes líquidos a diferentes lugares.
block.liquiditemjunction.name = Unión líquidos-elementos
block.liquiditemjunction.fulldescription = Actúa como un puente para cruzar conductos y transportadores.
block.powerbooster.name = Ampliación de potencia
block.powerbooster.fulldescription = Distribuye energía a todos los bloques dentro de su radio.
block.powerlaser.name = Láser de potencia
block.powerlaser.fulldescription = Crea un láser que transmite potencia al bloque que está delante de él. No genera ningún poder en sí mismo. Se usa mejor con generadores u otros láseres.
block.powerlaserrouter.name = Enrutador láser
block.powerlaserrouter.fulldescription = Láser que distribuye la potencia en tres direcciones a la vez. Útil en situaciones donde se requiere para alimentar múltiples bloques de un generador.
block.powerlasercorner.name = Laser esquinero
block.powerlasercorner.fulldescription = Láser que distribuye la potencia en dos direcciones a la vez. Útil en situaciones donde se requiere alimentar múltiples bloques desde un generador, y un enrutador es impreciso.
block.teleporter.name = Teletransportador
block.teleporter.fulldescription = Bloque de transporte de elementos avanzados. Los teleportadores ingresan elementos a otros teletransportadores del mismo color. No hace nada si no existen teletransportadores del mismo color. Si existen múltiples teleportadores del mismo color, se selecciona uno aleatorio. Utiliza el poder Toca para cambiar el color.
block.sorter.name=Clasificador
block.sorter.fulldescription = Ordena el artículo por tipo de material. El material a aceptar se indica por el color en el bloque. Todos los elementos que coinciden con el material de clasificación se envían hacia adelante, todo lo demás se envía a la izquierda y a la derecha.
block.core.name = Nùcleo
block.pump.name = Bomba
block.pump.fulldescription = Bombea líquidos de un bloque fuente, generalmente agua, lava o aceite. Emite líquido en los conductos cercanos.
block.fluxpump.name = Bomba de flujo
block.fluxpump.fulldescription = Una versión avanzada de la bomba. Almacena más líquido y bombea líquido más rápido.
block.smelter.name=horno de fundición
block.smelter.fulldescription = El bloque de elaboración esencial. Cuando se ingresa 1 hierro y 1 carbón como combustible, se emite un acero. Se aconseja ingresar hierro y carbón en diferentes bandas para evitar obstrucciones.
block.crucible.name = Crisol
block.crucible.fulldescription = Un bloque de elaboración avanzada. Cuando se ingresa 1 titanio, 1 acero y 1 carbón como combustible, se emite un dirium. Se aconseja ingresar carbón, acero y titanio en diferentes bandas para evitar obstrucciones.
block.coalpurifier.name = Extractor de carbón
block.coalpurifier.fulldescription = Un bloque extractor básico. Salidas de carbón cuando se suministra con grandes cantidades de agua y piedra.
block.titaniumpurifier.name = extractor de titanio
block.titaniumpurifier.fulldescription = Un bloque extractor estándar. Salidas de titanio cuando se suministra con grandes cantidades de agua y hierro.
block.oilrefinery.name = Refinería de petróleo
block.oilrefinery.fulldescription = Refina grandes cantidades de aceite en artículos de carbón. Útil para alimentar torretas a base de carbón cuando las vetas de carbón son escasas.
block.stoneformer.name = Piedra antigua
block.stoneformer.fulldescription = Se vende lava líquida en piedra. Útil para producir cantidades masivas de piedra para purificadores de carbón.
block.lavasmelter.name = Fundición de lava
block.lavasmelter.fulldescription = Utiliza lava para convertir el hierro en acero. Una alternativa a las fundiciones. Útil en situaciones donde el carbón es escaso.
block.stonedrill.name = Perforadora de piedra
block.stonedrill.fulldescription = El taladro esencial. Cuando se coloca en baldosas de piedra, las impresiones de piedra a un ritmo lento de forma indefinida.
block.irondrill.name = Perforadora de hierro
block.irondrill.fulldescription = Un ejercicio básico. Cuando se coloca sobre baldosas de mineral de hierro, emite hierro a un ritmo lento indefinidamente.
block.coaldrill.name = Perforadora de carbón
block.coaldrill.fulldescription = Un ejercicio básico. Cuando se coloca en las baldosas de mineral de carbón, emite carbón a un ritmo lento indefinidamente.
block.uraniumdrill.name = Taladro de uranio
block.uraniumdrill.fulldescription = Un taladro avanzado. Cuando se coloca en placas de mineral de uranio, emite uranio a un ritmo lento de forma indefinida.
block.titaniumdrill.name = Taladro de titanio
block.titaniumdrill.fulldescription = Un taladro avanzado. Cuando se coloca en baldosas de mineral de titanio, emite titanio a un ritmo lento indefinidamente.
block.omnidrill.name = omnidrill
block.omnidrill.fulldescription = El último ejercicio Va a extraer cualquier mineral que se coloca a un ritmo rápido.
block.coalgenerator.name = Generador de carbón
block.coalgenerator.fulldescription = El generador esencial. Genera energía del carbón Emite energía como láser en sus 4 lados.
block.thermalgenerator.name = Generador térmico
block.thermalgenerator.fulldescription = Genera energía de la lava Emite energía como láser en sus 4 lados.
block.combustiongenerator.name = Generador de combustión
block.combustiongenerator.fulldescription = Genera energía del petróleo. Emite energía como láser en sus 4 lados.
block.rtgenerator.name = Generador de RTG
block.rtgenerator.fulldescription = Genera pequeñas cantidades de energía a partir de la desintegración radiactiva del uranio. Emite energía como láser en sus 4 lados.
block.nuclearreactor.name = Reactor nuclear
block.nuclearreactor.fulldescription = Una versión avanzada del generador RTG y el último generador de energía. Genera energía del uranio. Requiere enfriamiento constante de agua. Altamente volátil; explotará violentamente si se suministran cantidades insuficientes de refrigerante.
block.turret.name = Torre
block.turret.fulldescription = Una torrecilla básica y barata. Utiliza piedra para munición. Tiene un poco más de alcance que la torre doble.
block.doubleturret.name = Doble torreta
block.doubleturret.fulldescription = Una versión un poco más poderosa de la torreta. Utiliza piedra para munición. Hace mucho más daño, pero tiene un rango menor. Dispara dos balas.
block.machineturret.name = Torreta de gatling
block.machineturret.fulldescription = Una torreta versátil estándar. Utiliza hierro para munición. Tiene una velocidad de disparo rápida con un daño decente.
block.shotgunturret.name = Torreta divisoria
block.shotgunturret.fulldescription = Una torreta estándar. Utiliza hierro para munición. Dispara una extensión de 7 balas. Alcance más bajo, pero mayor producción de daños que la torreta de gatling.
block.flameturret.name = Torreta de fuego
block.flameturret.fulldescription = Torreta de corto alcance avanzada. Utiliza carbón para munición. Tiene un rango muy bajo, pero un daño muy alto. Bueno para cuartos cercanos. Recomendado para ser utilizado detrás de las paredes.
block.sniperturret.name = Torreta railgun
block.sniperturret.fulldescription = Torreta de largo alcance avanzada. Utiliza acero para munición. Daño muy alto, pero bajo índice de fuego. Es caro de usar, pero puede colocarse lejos de las líneas enemigas debido a su alcance.
block.mortarturret.name = Torreta antiaérea
block.mortarturret.fulldescription = Torreta avanzada de baja salpicadura de daños por salpicadura. Utiliza carbón para munición. Dispara un aluvión de balas que explotan en metralla. Útil para grandes multitudes de enemigos.
block.laserturret.name = Torreta láser
block.laserturret.fulldescription = Torreta de un solo objetivo avanzado. Utiliza el energia. Buena torre de medio alcance. Objetivo único. Nunca falla
block.waveturret.name = Torreta tesla
block.waveturret.fulldescription = Torreta multi-objetivo avanzada. Utiliza el poder Rango medio. Nunca falla. De Medio a bajo daño, pero puede golpear a varios enemigos simultáneamente con rayos en cadena.
block.plasmaturret.name = Torreta de plasma
block.plasmaturret.fulldescription = Versión altamente avanzada de la torreta de fuego. Utiliza carbón como munición. Daño muy alto, rango bajo a medio.
block.chainturret.name = Torreta de cadena
block.chainturret.fulldescription = La torreta de fuego rápido suprema. Usa uranio como munición. Dispara babosas grandes a una alta cadencia. Rango medio. Se extiende por múltiples bloques. Extremadamente duradero.
block.titancannon.name = Cañón titán
block.titancannon.fulldescription = La torreta de largo alcance suprema. Usa uranio como munición. Dispara grandes proyectiles con daño de área a una cadencia media. De largo alcance. Se extiende por múltiples bloques. Extremadamente duradero.
block.playerspawn.name = Punto de aparición del jugador
block.enemyspawn.name = Generador de enemigos
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.name=Thorium
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+246 -279
View File
@@ -1,12 +1,10 @@
text.about=Créé par [ROYAL]Anuken.[]\nA l'origine une entrée dans le [orange]GDL[] MM Jam.\n\nCrédits: \n- SFX réalisé avec [yellow]bfxr[] \n- Musique faite par [lime]RoccoW[] / trouvé sur [lime]FreeMusicArchive.org[] \n\nRemerciements particuliers à:\n- [coral]MitchellFJN[]: nombreux tests et retours d'expérience \n- [sky]Luxray5474[]: travail wiki, contributions de code \n- [lime]Epowerj[]: système de compilation de code, icône \n- Tous les beta testeurs sont sur itch.io et Google Play\n
text.discord=Rejoignez le discord de Mindustry
text.changes = [SCARLET]Attention![] \nCertains mécanismes importants du jeu ont ete modifies.\n-Les [accent]telporteurs[] utilisent maintenant de l'énergie.\n-Les [accent]fonderies[] et les[accent]crucibles[] ont maintenant une capacité maximale d'articles.\n-Les [accent]crucibles[] exigent maintenant du charbon comme combustible.
text.gameover=Le noyau a été détruit.
text.highscore=[YELLOW]Nouveau meilleur score!
text.lasted=Vous avez duré jusqu'à la vague
text.level.highscore=Meilleur score: [accent]{0}
text.level.delete.title=Confirmer
text.level.delete = Êtes-vous sûr de vouloir supprimer la carte \"[orange] \"?
text.level.select=Sélection de niveau
text.level.mode=Mode de jeu :
text.savegame=Sauvegarder la partie
@@ -15,9 +13,7 @@ text.joingame = Rejoindre la partie
text.quit=Quitter
text.about.button=À propos
text.name=Nom :
text.public = Publique
text.players=joueurs en ligne
text.server.player.host = Héberger
text.players.single=joueur en ligne
text.server.mismatch=Erreur de paquet: possible incompatibilité de version client/serveur. Assurez-vous que vous et l'hôte avez la dernière version de Mindustry!
text.server.closing=[accent]Fermeture du serveur ...
@@ -66,7 +62,6 @@ text.confirmban = Êtes-vous sûr de vouloir bannir ce joueur?
text.confirmunban=Êtes-vous sûr de vouloir annuler le ban de ce joueur?
text.confirmadmin=Êtes-vous sûr de vouloir faire de ce joueur un administrateur?
text.confirmunadmin=Êtes-vous sûr de vouloir supprimer le statut d'administrateur de ce joueur?
text.joingame.byip = Rejoindre par IP ...
text.joingame.title=Rejoindre une partie
text.joingame.ip=IP :
text.disconnect=Déconnecté
@@ -77,8 +72,6 @@ text.server.port = Port :
text.server.addressinuse=Adresse déjà utilisée!
text.server.invalidport=Numéro de port incorrect.
text.server.error=[crimson]Erreur lors de l'hébergement du serveur: [orange] {0}
text.tutorial.back = < Précédent\n
text.tutorial.next = Suivant>
text.save.new=Nouvelle sauvegarde
text.save.overwrite=Êtes-vous sûr de vouloir remplacer cette sauvegarde?
text.overwrite=Écraser
@@ -126,7 +119,6 @@ text.enemies = ennemis
text.enemies.single=Ennemi
text.loadimage=Charger l'image
text.saveimage=Enregistrer l'image
text.oregen = Génération de minerais
text.editor.badsize=[orange]Dimensions de l'image non valides![] Dimensions de la carte valides: {0}
text.editor.errorimageload=Erreur lors du chargement du fichier image:[orange] {0}
text.editor.errorimagesave=Erreur lors de la sauvegarde du fichier image:[orange] {0}
@@ -137,21 +129,12 @@ text.editor.savemap = Enregistrer la carte
text.editor.loadimage=Charger l'image
text.editor.saveimage=Enregistrer l'image
text.editor.unsaved=[scarlet] Vous avez des changements non sauvegardés![] Êtes-vous sûr de vouloir quitter?
text.editor.brushsize = Taille de la brosse:
text.editor.noplayerspawn = Cette carte n'a pas de point d'apparition de joueur!
text.editor.manyplayerspawns = Les cartes ne peuvent pas avoir plus d'un point d'apparition de joueur!
text.editor.manyenemyspawns = Il ne peut pas avoir plus de {0} points d'apparition ennemis!
text.editor.resizemap=Redimensionner la carte
text.editor.resizebig = [scarlet]Attention![] Les cartes de plus de 256 unités peuvent laggés et être instables.
text.editor.mapname=Nom de la carte:
text.editor.overwrite=[accent]Attention! Cela écrasera la carte existante.
text.editor.failoverwrite = [Crimson]Impossible d'écraser la carte par défaut!
text.editor.selectmap=Sélectionnez une carte à charger:
text.width=Largeur:
text.height=Hauteur:
text.randomize = Rendre aléatoire
text.apply = Appliquer
text.update = Modifier
text.menu=Menu
text.play=Jouer
text.load=Charger
@@ -172,67 +155,25 @@ text.upgrades = Améliorations
text.purchased=[VERT]Créé!
text.weapons=Armes
text.paused=Pause
text.respawn = Réapparition dans
text.info.title=[accent]Info
text.error.title=[crimson]Une erreur est survenue
text.error.crashmessage = [SCARLET]Une erreur inattendue est survenue, et aurait provoqué un crash.[] Veuillez indiquer les circonstances exactes dans lesquelles cette erreur est survenue au développeur:[ORANGE] anukendev@gmail.com[]
text.error.crashtitle=Une erreur est survenue
text.mode.break = Mode de rupture: {0}
text.mode.place = Placez le mode: {0}
placemode.hold.name = Ligne
placemode.areadelete.name = surface
placemode.touchdelete.name = toucher
placemode.holddelete.name = tenir
placemode.none.name = aucun
placemode.touch.name = toucher
placemode.cursor.name = curseur
text.blocks.extrainfo = [accent] info supplémentaire du bloc:
text.blocks.blockinfo=Bloquer les infos
text.blocks.powercapacity=capacité d'énergie
text.blocks.powershot=Energie/Tir
text.blocks.powersecond = Energie/Seconde
text.blocks.powerdraindamage = Utilisation d'énergie/Dommage
text.blocks.shieldradius = rayon du bouclier
text.blocks.itemspeedsecond = Vitesse d'Article/Seconde
text.blocks.range = Portée
text.blocks.size=Taille
text.blocks.powerliquid = énergie/Liquide
text.blocks.maxliquidsecond = Max Liquide/Seconde
text.blocks.liquidcapacity=Capacité liquide
text.blocks.liquidsecond = Liquide/seconde
text.blocks.damageshot = Dégâts/tir
text.blocks.ammocapacity = Capacité de munitions
text.blocks.ammo = Munition
text.blocks.ammoitem = Munitions/Article
text.blocks.maxitemssecond=Max articles/seconde
text.blocks.powerrange=Gamme de puissance
text.blocks.lasertilerange = portée du laser
text.blocks.capacity = Capacité
text.blocks.itemcapacity=Capacité article
text.blocks.maxpowergenerationsecond = Génération max d'énergie/seconde
text.blocks.powergenerationsecond = Génération d'énergie/seconde
text.blocks.generationsecondsitem = Génération Secondes / item
text.blocks.input = entrée
text.blocks.inputliquid=Entrée de liquide
text.blocks.inputitem=entré d'article
text.blocks.output = Sortie
text.blocks.secondsitem = Secondes/article
text.blocks.maxpowertransfersecond = Transfert max d'énergie/seconde
text.blocks.explosive=Hautement explosif !
text.blocks.repairssecond = Réparation/seconde
text.blocks.health=Santé
text.blocks.inaccuracy=Inexactitude
text.blocks.shots=tirs
text.blocks.shotssecond = Tirs/seconde
text.blocks.fuel = Carburant
text.blocks.fuelduration = Durée du carburant
text.blocks.maxoutputsecond = Sortie max/seconde
text.blocks.inputcapacity=Capacité d'entrée
text.blocks.outputcapacity=Capacité de sortie
text.blocks.poweritem = Energie/Article
text.placemode = Mode Placement
text.breakmode = Mode destruction
text.health = santé
setting.difficulty.easy=facile
setting.difficulty.normal=normal
setting.difficulty.hard=difficile
@@ -240,7 +181,6 @@ setting.difficulty.insane = Extreme
setting.difficulty.purge=Purge
setting.difficulty.name=Difficulté:
setting.screenshake.name=Tremblement d'écran
setting.smoothcam.name = Caméra lisse
setting.indicators.name=Indicateurs ennemis
setting.effects.name=Effets d'affichage
setting.sensitivity.name=Sensibilité de la manette
@@ -252,7 +192,6 @@ setting.fps.name = Afficher FPS
setting.vsync.name=VSync
setting.lasers.name=Afficher les rayons des lasers
setting.healthbars.name=Afficher les barres de santé des entités
setting.pixelate.name = Pixéliser l'écran
setting.musicvol.name=volume musique
setting.mutemusic.name=Musique muette
setting.sfxvol.name=Volume SFX
@@ -270,50 +209,6 @@ map.grassland.name = prairie
map.tundra.name=toundra
map.spiral.name=spirale
map.tutorial.name=tutoriel
tutorial.intro.text = [yellow]Bienvenue dans le tutoriel[]. Pour commencer, appuyez sur \"suivant\".
tutorial.moveDesktop.text = Pour vous déplacer, utilisez les touches [orange][[WASD][]. Maintenez [orange]shift[] pour accélérer. Maintenez la touche [orange]CTRL[] enfoncée tout en utilisant la [orange]molette[] pour effectuer un zoom avant ou arrière.
tutorial.shoot.text = Utilisez votre souris pour viser, maintenez le [orange]bouton gauche de la souris[] pour tirer. Essayez de pratiquer sur la [yellow]cible[].
tutorial.moveAndroid.text = Pour déplacer votre vue, faites glisser un doigt sur l'écran. Pincez et faites glisser pour effectuer un zoom avant ou arrière.
tutorial.placeSelect.text = Essayez de sélectionner un [yellow]transporteur[] dans le menu des blocs en bas à droite.
tutorial.placeConveyorDesktop.text = Utilisez la [orange][[molette][] pour faire pivoter le transporteur [orange]vers l'avant[], puis placez-le dans l'emplacement [yellow]marqué[] en utilisant le [orange][[bouton gauche de la souris][].
tutorial.placeConveyorAndroid.text = Utilisez [orange][[bouton de rotation][] pour faire pivoter le transporteur [orange]vers l'avant[], faites-le glisser avec votre doigt, puis placez-le dans l'emplacement [yellow]marqué[] avec [orange][[coche][].
tutorial.placeConveyorAndroidInfo.text = Vous pouvez également appuyer sur l'icône du réticule en bas à gauche pour passer en [orange][[mode tactile][] et placer des blocs en appuyant sur l'écran. En mode tactile, les blocs peuvent être pivotés avec la flèche en bas à gauche. Appuyez sur [yellow]suivant[] pour essayer.
tutorial.placeDrill.text = Maintenant, sélectionnez et placez un [yellow]extracteur de pierre[] à l'endroit marqué.
tutorial.blockInfo.text = Si vous voulez en savoir plus sur un bloc, vous pouvez appuyer sur le [orange]point d'interrogation[] en haut à droite pour lire sa description.
tutorial.deselectDesktop.text = Vous pouvez désélectionner un bloc en utilisant le [orange][[bouton droit de la souris][].
tutorial.deselectAndroid.text = Vous pouvez désélectionner un bloc en appuyant sur le bouton [orange]X[].
tutorial.drillPlaced.text = L'extracteur produira maintenant de la [yellow]pierre[], qui sera placée sur le transporteur, puis sera emmenée dans le [yellow]noyau[].
tutorial.drillInfo.text = Différents minerais ont besoin de différents extracteurs. La pierre nécessite des extracteurs de pierre, le fer des extracteurs de fer,...etc...
tutorial.drillPlaced2.text = Le déplacement d'article dans le noyau le place dans votre[yellow]inventaire[], au milieu à droite. Le placement de blocs utilise les éléments de votre inventaire.
tutorial.moreDrills.text = Vous pouvez relier plusieurs extracteurs et transporteurs ensemble, comme ça.
tutorial.deleteBlock.text = Vous pouvez supprimer des blocs en cliquant sur le clique [orange]droit de la souris[] sur le bloc que vous voulez supprimer. Essayez de supprimer ce transporteur.
tutorial.deleteBlockAndroid.text = Vous pouvez supprimer des blocs en [orange]sélectionnant le réticule[] dans [orange] le menu du mode destruction[] en bas à gauche et en appuyant sur un bloc. Essayez de supprimer ce transporteur.
tutorial.placeTurret.text = Maintenant, sélectionnez et placez une [yellow]tourelle[] à l'[yellow]emplacement marqué[].
tutorial.placedTurretAmmo.text = Cette tourelle accepte maintenant les [yellow]munitions[] du transporteur. Vous pouvez voir combien de munitions elle a en la survolant et en vérifiant sa [green]barre verte[].
tutorial.turretExplanation.text = Les tourelles tirent automatiquement sur l'ennemi le plus proche, pourvu qu'elles aient suffisamment de munitions.
tutorial.waves.text = Toutes les [yellow]60 secondes[], une [coral]vague d'ennemis[] apparaîtra dans des endroits spécifiques et tentera de détruire votre noyau.
tutorial.coreDestruction.text = Votre objectif est de [yellow]défendre le noyau[]. Si le noyau est détruit, vous [coral]perdez le jeu[].
tutorial.pausingDesktop.text = Si vous avez besoin de faire une pause, appuyez sur le bouton [orange]pause[] en haut à gauche pour mettre le jeu en pause. Vous pouvez toujours casser et placer des blocs en pause, mais vous ne pouvez pas bouger ou tirer.
tutorial.pausingAndroid.text = Si vous avez besoin de faire une pause, appuyez sur le bouton [orange]pause[] en haut à gauche pour mettre le jeu en pause. Vous pouvez toujours casser et placer des blocs en pause.
tutorial.purchaseWeapons.text = Vous pouvez acheter de nouvelles [yellow]armes[] pour votre robot en ouvrant le menu de mise à niveau en bas à gauche.
tutorial.switchWeapons.text = Changez d'arme en cliquant sur l'icône en bas à droite, ou en utilisant les chiffres [orange][[1-9][].
tutorial.spawnWave.text = Une vague arrive. Détruisez-les.
tutorial.pumpDesc.text = Dans les vagues plus lointaines, vous devrez peut-être utiliser des [yellow]pompes[] pour distribuer du liquide pour les générateurs ou les extracteurs.
tutorial.pumpPlace.text = Les pompes fonctionnent de la même manière que les extracteurs, sauf qu'elles récoltent du liquides et non du minerai. Essayez de placer une pompe sur [yellow]pétrole[] désigné.
tutorial.conduitUse.text = Maintenant, placez un [orange]conduit[] qui s'éloigne de la pompe.
tutorial.conduitUse2.text = Et un autre ...
tutorial.conduitUse3.text = Et un autre ...
tutorial.generator.text = Maintenant, placez un bloc [orange]de générateur à combustion[] à l'extrémité du conduit.
tutorial.generatorExplain.text = Ce générateur va maintenant créer de l' [yellow]énergie[] à partir de pétrole.
tutorial.lasers.text = L'énergie est distribuée à l'aide de [yellow]lasers d'énergie[]. Tournez et placez-en un ici.
tutorial.laserExplain.text = Le générateur va maintenant déplacer la puissance dans le laser. Un faisceau [yellow]opaque[] signifie qu'il transmet actuellement de la puissance, et un faisceau [yellow]transparent[] signifie que ce n'est pas le cas.
tutorial.laserMore.text = Vous pouvez vérifier la puissance d'un bloc en survolant celui-ci et en vérifiant la [yellow]barre jaune[] en haut.
tutorial.healingTurret.text = Ce laser peut être utilisé pour alimenter une [lime]tourelle de réparation[]. Placez-en une ici.
tutorial.healingTurretExplain.text = Tant qu'elle a de la puissance, cette tourelle [lime]réparera les blocs voisins[].En jouant, assurez-vous d'en avoir une dans votre base le plus rapidement possible!
tutorial.smeltery.text = De nombreux blocs nécessitent de l' [orange]acier[] pour fabriquer, ce qui nécessite une [orange]fonderie[]. Placez-en une ici.
tutorial.smelterySetup.text = Cette fonderie produira maintenant de l' [orange]acier[] à partir du fer, utilisant le charbon comme combustible.
tutorial.tunnelExplain.text = Notez également que les objets traversent un [orange]tunnel[] et émergent de l'autre côté, traversant le bloc de pierre. Gardez à l'esprit que les tunnels ne peuvent traverser que 2 blocs.
tutorial.end.text = Et cela conclut le tutoriel! Bonne chance!
text.keybind.title=Relier le clés
keybind.move_x.name=mouvement x
keybind.move_y.name=mouvement y
@@ -331,198 +226,270 @@ keybind.player_list.name = Liste des joueurs
keybind.console.name=console
keybind.rotate_alt.name=tourner_alt
keybind.rotate.name=Tourner
keybind.weapon_1.name = Arme 1
keybind.weapon_2.name = Arme 2
keybind.weapon_3.name = Arme 3
keybind.weapon_4.name = Arme 4
keybind.weapon_5.name = Arme 5
keybind.weapon_6.name = Arme 6
mode.waves.name=Vagues
mode.sandbox.name=bac à sable
mode.freebuild.name=construction libre
upgrade.standard.name = La norme
upgrade.standard.description = Le robot standard.
upgrade.blaster.name = blaster
upgrade.blaster.description = Tire faiblement et lentetement.
upgrade.triblaster.name = Tri-blaster
upgrade.triblaster.description = Tire 3 balles se propageant en V.
upgrade.clustergun.name = clustergun
upgrade.clustergun.description = Tire une portée de grenades explosives.
upgrade.beam.name = beam cannon
upgrade.beam.description = Tire un rayon laser de perçage à longue portée.
upgrade.vulcan.name = Vulcain
upgrade.vulcan.description = Tire un barrage de balles rapides.
upgrade.shockgun.name = shockgun
upgrade.shockgun.description = Tire une charge de balles qui explosent en éclats.
item.stone.name=pierre
item.iron.name = fer
item.coal.name=charbon
item.steel.name = Acier
item.titanium.name=Titane
item.dirium.name = dirium
item.uranium.name = uranium
item.sand.name=sable
liquid.water.name=eau
liquid.plasma.name = plasma
liquid.lava.name=lave
liquid.oil.name=pétrole
block.weaponfactory.name = usine d'armes
block.weaponfactory.fulldescription = Utilisé pour créer des armes pour le joueur robot. Cliquez pour utiliser. Extrait automatiquement les ressources du noyau.
block.air.name = air
block.blockpart.name = partie de block
block.deepwater.name = eaux profondes
block.water.name = eau
block.lava.name = lave
block.oil.name = pétrole
block.stone.name = pierre
block.blackstone.name = pierre noire
block.iron.name = fer
block.coal.name = charbon
block.titanium.name = titane
block.uranium.name = uranium
block.dirt.name = terre
block.sand.name = sable
block.ice.name = glace
block.snow.name = neige
block.grass.name = herbe
block.sandblock.name = bloc de sable
block.snowblock.name = bloc de neige
block.stoneblock.name = bloc de pierre
block.blackstoneblock.name = bloc de roche noire
block.grassblock.name = bloc d'herbe
block.mossblock.name = bloc de mousse
block.shrub.name = arbuste
block.rock.name = roche
block.icerock.name = roche de glace
block.blackrock.name = roche noire
block.dirtblock.name = bloc de terre
block.stonewall.name = mur de pierres
block.stonewall.fulldescription = Un bloc défensif bon marché. Utile pour protéger le noyau et les tourelles durant les premières vagues.
block.ironwall.name = mur de fer
block.ironwall.fulldescription = Un bloc défensif de base. Fournit une protection contre les ennemis.
block.steelwall.name = mur en acier
block.steelwall.fulldescription = Un bloc défensif standard. une protection adéquate contre les ennemis.
block.titaniumwall.name = mur de titane
block.titaniumwall.fulldescription = Un bloc défensif très résistant. Fournit une protection contre les ennemis.
block.duriumwall.name = mur de dirium
block.duriumwall.fulldescription = Un bloc défensif extrêmement résistant. Fournit une protection contre les ennemis.
block.compositewall.name = mur composite
block.steelwall-large.name = grand mur d'acier
block.steelwall-large.fulldescription = Un bloc défensif standard, prend plusieurs blocs de largeurs.
block.titaniumwall-large.name = grand mur de titane
block.titaniumwall-large.fulldescription = Un bloc défensif très résistant, prend plusieurs blocs de largeurs.
block.duriumwall-large.name = grand mur de dirium
block.duriumwall-large.fulldescription = Un bloc défensif extrêmement résistant, prend plusieurs blocs de largeurs.
block.titaniumshieldwall.name = mur blindé
block.titaniumshieldwall.fulldescription = Un bloc défensif solide, avec un bouclier intégré. Nécessite de l'énergie. Utilise l'énergie pour absorber les balles ennemies. Il est recommandé d'utiliser un distributeur d'énergie pour fournir de l'énergie à ce bloc.
block.repairturret.name = tourelle de réparation
block.repairturret.fulldescription = Répare les blocs avoisinants endommagés dans un zone circulaire à un rythme lent. Utilise de l'énergie.
block.megarepairturret.name = tourelle de réparation II
block.megarepairturret.fulldescription = Répare les blocs avoisinants endommagés dans un zone circulaire à un rythme régulier. Utilise de l'énergie.
block.shieldgenerator.name = générateur de bouclier
block.shieldgenerator.fulldescription = Un bloc défensif avancé. Protège tous les blocs avoisinants dans une zone circulaire. Utilise l'énergie à un rythme lent, mais draine beaucoup d'énergie au contact d'un tir ennemi.
block.door.name=porte
block.door.fulldescription = Un bloc qui peut être ouvert et fermé en cliquant dessus.
block.door-large.name=grande porte
block.door-large.fulldescription = Un bloc qui peut être ouvert et fermé en cliquant dessus.
block.conduit.name=conduit
block.conduit.fulldescription = Bloc de transport de liquide basique. Fonctionne comme un transporteur, mais avec des liquides. A placé à coté de pompes. Peut être utilisé comme un pont sur les liquides pour les ennemis et les joueurs.
block.pulseconduit.name=conduit à impulsion
block.pulseconduit.fulldescription = Bloc de transport de liquide avancé. Transporte les liquides plus rapidement et stocke plus que les conduits standards.
block.liquidrouter.name=routeur de liquide
block.liquidrouter.fulldescription = Fonctionne de manière similaire à un routeur. Accepte l'entrée de liquide d'un côté et l'envoie vers 3 autres côtés. Utile pour répartir le liquide d'un conduit vers plusieurs autres conduits.
block.conveyor.name=transporteur
block.conveyor.fulldescription = Bloc de transport standard. Déplace les objets vers l'avant et les dépose automatiquement dans les tourelles ou des blocs d'artisanats. Rotatif. Peut être utilisé comme une plateforme sur les liquides, pour les ennemis et les joueurs.
block.steelconveyor.name = transporteur en acier
block.steelconveyor.fulldescription = transporteur d'articles avancé. Déplace les objets plus rapidement que les transporteurs standards.
block.poweredconveyor.name = transporteur à impulsions
block.poweredconveyor.fulldescription = Le transporteur d'articles ultime. Déplace les articles plus rapidement que les convoyeurs en acier.
block.router.name=Routeur
block.router.fulldescription = Accepte les éléments d'une direction et les distribue dans 3 autres directions. Peut également stocker une certaine quantité d'articles. Utile pour diviser cette quantité afin d'approvisionner plusieurs tourelles ou des blocs d'artisanat.
block.junction.name=jonction
block.junction.fulldescription = Agit comme un pont pour deux transporteurs qui se croisent et qui possèdent différents articles.
block.conveyortunnel.name = tunnel de transport
block.conveyortunnel.fulldescription = Transporte des articles sous les blocs. Pour l'utiliser, placez les entre des blocs, au maximum deux. Assurez-vous que les deux tunnels sont orientés dans des directions opposées.
block.liquidjunction.name=jonction à liquide
block.liquidjunction.fulldescription = Agit comme un pont pour deux conduits. Utile dans la situations ou deux conduits se croisent et transportent différents liquides.
block.liquiditemjunction.name = jonction de liquide-article
block.liquiditemjunction.fulldescription = Agit comme un pont pour croiser les conduits et les convoyeurs.
block.powerbooster.name = distributeur d'énergie
block.powerbooster.fulldescription = Distribue la puissance à tous les blocs avoisinants dans une zone circulaire.
block.powerlaser.name = laser d'énergie
block.powerlaser.fulldescription = Crée un laser qui transmet la puissance au bloc en face de lui. Ne génère pas d'énergie par lui-même. Idéal avec des générateurs ou d'autres lasers.
block.powerlaserrouter.name = routeur laser
block.powerlaserrouter.fulldescription = Laser qui distribue la puissance à trois directions à la fois. Utile pour séparer l'énergie afin d'alimenter plusieurs blocs
block.powerlasercorner.name = laser en angle droit
block.powerlasercorner.fulldescription = Laser qui distribue la puissance à deux directions en angle droit. Utile pour séparer l'énergie afin d'alimenter plusieurs blocs.
block.teleporter.name = téléporteur
block.teleporter.fulldescription = Bloc de transport avancé. Les téléporteurs saisissent des articles aux autres téléporteurs de la même couleur. Ne fait rien si aucun téléporteur de la même couleur n'existe. Si plusieurs téléporteurs existent de la même couleur, un téléporteur aléatoire est sélectionné. Utilise de l'énergie. Cliquez pour changer de couleur.
block.sorter.name=trieur
block.sorter.fulldescription = Trie l'article par type de matériau. Le matériau à accepter est indiqué par la couleur du bloc. Tous les éléments qui correspondent au matériau de tri sont sortis vers l'avant, tout le reste est sorti à gauche et à droite.
block.core.name = noyau
block.pump.name = pompe
block.pump.fulldescription = Pompe les liquides provenant d'un bloc source - généralement de l'eau, de la lave ou de l'huile. Transmet le liquide dans les conduits voisins.
block.fluxpump.name = pompe à flux
block.fluxpump.fulldescription = Une version avancée de la pompe. Stocke plus et pompe le liquide plus rapidement que la pompe ordinaire.
block.smelter.name=fonderie
block.smelter.fulldescription = Le bloc d'artisanat essentiel. Produit de l'acier lorsqu'il est approvisionné en fer et charbon. Il est conseillé d'introduire le fer et le charbon par différents transporteurs pour éviter les situations de débordement.
block.crucible.name = Crucible
block.crucible.fulldescription = Un bloc d'artisanat avancé. Produit du diridium lorsqu'il est approvisionné en fer, en titanium et en charbon . Il est conseillé d'introduire ces minerais par différents transporteurs.
block.coalpurifier.name = raffinerie de charbon
block.coalpurifier.fulldescription = Un bloc d'artisanat de base. Produit du charbon lorsqu'il est fourni avec de grandes quantités d'eau et de pierre.
block.titaniumpurifier.name = raffinerie de titane
block.titaniumpurifier.fulldescription = Un bloc d'artisanat avancé. Produit du titane lorsqu'il est fourni avec de grandes quantités d'eau et de fer.
block.oilrefinery.name = raffinerie de pétrole
block.oilrefinery.fulldescription = Un bloc d'artisanat standard. Affine de grandes quantités de pétrole grâce au charbon. Utile pour alimenter les tourelles à charbon lorsque les filons de charbon sont rares.
block.stoneformer.name = raffinerie de pierre
block.stoneformer.fulldescription = Un bloc d'artisanat standard. Il purifie la lave en pierre. Utile pour produire des quantités massives de pierre.
block.lavasmelter.name = fonderie d'acier
block.lavasmelter.fulldescription = Un bloc d'artisanat de base. Utilise la lave pour convertir le fer en acier. Une alternative aux fonderies. Utile dans les situations où le charbon est rare.
block.stonedrill.name = extracteur de pierre
block.stonedrill.fulldescription = L'extracteur essentiel. Lorsqu'il est placé sur de la pierre, il l'extrait à un rythme rapide.
block.irondrill.name = extracteur de fer
block.irondrill.fulldescription = Un extracteur de base. Lorsqu'ils il est placé sur un minerai de charbon, il l'extrait à un rythme régulier.
block.coaldrill.name = extracteur de charbon
block.coaldrill.fulldescription = Un extracteur de base. Lorsqu'il est placé sur un minerai de charbon, il l'extrait à un rythme régulier.
block.uraniumdrill.name = extracteur d'uranium
block.uraniumdrill.fulldescription = Un extracteur avancé .Lorsqu'il est placé sur un minerai d'uranium, il l'extrait lentement.
block.titaniumdrill.name = extracteur de titane
block.titaniumdrill.fulldescription = Un extracteur avancé. Lorsqu'il est placé sur un minerai de titane, il l'extrait lentement.
block.omnidrill.name = omni-extracteur
block.omnidrill.fulldescription = L'extracteur ultime .Minera n'importe quel minerai sur lequel il est placé à un rythme rapide.
block.coalgenerator.name = générateur à charbon
block.coalgenerator.fulldescription = Le générateur essentiel. Génère de l'énergie à partir du charbon. eparpille l'énergie de ses 4 cotés.
block.thermalgenerator.name = générateur thermique
block.thermalgenerator.fulldescription = Génère de l'énergie à partir de la lave. éparpille l'énergie de ses 4 cotés.
block.combustiongenerator.name = générateur à combustion
block.combustiongenerator.fulldescription = Génère de l'énergie à partir du pétrole. éparpille l'énergie de ses 4 cotés.
block.rtgenerator.name = Générateur RTG
block.rtgenerator.fulldescription = Génère de petites quantités d'énergie à partir d'uranium. éparpille l'énergie de ses 4 cotés
block.nuclearreactor.name = réacteur nucléaire
block.nuclearreactor.fulldescription = Une version avancée du générateur RTG ,et le générateur d'énergie ultime. Génère de l'énergie à partir de l'uranium. Nécessite un refroidissement à eau constant. Hautement inflammable; explosera violemment si des quantités insuffisantes de liquide de refroidissement sont fournies.
block.turret.name = tourelle
block.turret.fulldescription = Une tourelle basique et bon marché. Utilise la pierre pour munition. A légèrement plus de portée que la double-tourelle.
block.doubleturret.name = tourelle double
block.doubleturret.fulldescription = Une version légèrement plus puissante de la tourelle. Utilise la pierre comme munition. Fait beaucoup plus de dégâts, mais a une portée inférieure.
block.machineturret.name = tourelle gattling
block.machineturret.fulldescription = Une tourelle complète standard. Utilise le fer pour munition. A une vitesse de tir rapide avec des dégâts décents.
block.shotgunturret.name = tourelle fusil à pompe.
block.shotgunturret.fulldescription = Une tourelle standard. Utilise le fer pour munition. Tire une portée de 7 balles. Portée basse, mais plus de dégâts que la tourelle gattling.
block.flameturret.name = tourelle incendiaire
block.flameturret.fulldescription = Tourelle avancée à courte portée. Utilise du charbon pour munition. A une portée très faible, mais des dégâts très élevés. Bon pour les places étroites. Recommandé pour tirer à travers les murs.
block.sniperturret.name = Tourelle laser
block.sniperturret.fulldescription = Tourelle avancée à longue portée. Utilise l'acier pour munition. Dommages très élevés, mais faible vitesse de tir. Chère, mais peut être placé loin des lignes ennemies en raison de sa portée.
block.mortarturret.name = Tourelle Antiaérienne
block.mortarturret.fulldescription = Tourelle avancée à fragmentation de faible précision. Utilise du charbon pour munition. Tire un barrage de balles qui explose en éclats. Utile pour les grandes foules d'ennemis.
block.laserturret.name = Tourelle Laser
block.laserturret.fulldescription = Tourelle à cible unique avancée. Utilise de l'énergie. Bonne tourelle polyvalente de moyenne portée. Une seule cible seulement. Ne manque jamais.
block.waveturret.name = Tourelle Tesla
block.waveturret.fulldescription = Tourelle multi-cible avancée. Utilise de l'énergie. Portée moyenne. Ne manque jamais sa cible. Peu de dégâts, mais peut frapper plusieurs ennemis simultanément avec sa répétition d'éclair.
block.plasmaturret.name = Tourelle à plasma
block.plasmaturret.fulldescription = Version très avancée de la tourelle incendiaire. Utilise le charbon comme munition. Dommages très élevés, de faible à moyenne portée.
block.chainturret.name = Tourelle à répétition.
block.chainturret.fulldescription = La tourelle ultime à tir rapide. Utilise l'uranium comme munition. Tire de grosses salves à une vitesse de feu élevée. Portée moyenne. Traverse plusieurs carreaux. Extrêmement résistante.
block.titancannon.name = Cannon Titan
block.titancannon.fulldescription = La tourelle à longue portée ultime. Utilise l'uranium comme munition. Tire de gros obus à dégâts de zone à une cadence de tir moyenne. Longue portée. occupe plusieurs blocks. Extrêmement dur.
block.playerspawn.name = point d'apparition joueur
block.enemyspawn.name = Point d'apparition ennemie
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.newgame=New Game
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.disconnect.data=Failed to load world data!
text.copylink=Copy Link
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.name=Thorium
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+281 -277
View File
@@ -5,7 +5,6 @@ text.highscore = [YELLOW]Rekor baru!
text.lasted=Anda bertahan sampai gelombang
text.level.highscore=Skor Tinggi: [accent]{0}
text.level.delete.title=Konfirmasi Hapus
text.level.delete = Yakin ingin menghapus peta \"[orange]{0}\"?
text.level.select=Pilih Level
text.level.mode=Modus permainan:
text.savegame=Simpan Permainan
@@ -14,9 +13,7 @@ text.joingame = Bermain Bersama
text.quit=Keluar
text.about.button=Tentang
text.name=Nama:
text.public = Publik
text.players={0} pemain online
text.server.player.host = {0} (host)
text.players.single={0} pemain online
text.server.mismatch=Kesalahan paket: kemungkinan versi client / server tidak sesuai.\nPastikan Anda dan host memiliki versi terbaru Mindustry!
text.server.closing=[accent]Menutup server...
@@ -40,7 +37,6 @@ text.server.add = Tambahkan Server
text.server.delete=Yakin ingin menghapus server ini?
text.server.hostname=Host: {0}
text.server.edit=Sunting Server
text.joingame.byip = Bergabung dengan IP...
text.joingame.title=Bermain Bersama
text.joingame.ip=IP:
text.disconnect=Sambungan terputus.
@@ -51,8 +47,6 @@ text.server.port = Port:
text.server.addressinuse=Alamat sudah di pakai!
text.server.invalidport=Nomor port salah!
text.server.error=[crimson]Kesalahan server hosting: [orange]{0}
text.tutorial.back = < Sebelumnya
text.tutorial.next = Berikutnya >
text.save.new=Simpan Baru
text.save.overwrite=Yakin ingin mengganti slot simpan ini?
text.overwrite=Ganti
@@ -95,7 +89,6 @@ text.enemies = {0} musuh
text.enemies.single={0} Musuh
text.loadimage=Buka Gambar
text.saveimage=Simpan Gambar
text.oregen = Generator Bijih
text.editor.badsize=[orange]Dimensi gambar tidak valid![]\nDimensi peta yang valid: {0}
text.editor.errorimageload=Kesalahan saat memuat file gambar:\n[orange]{0}
text.editor.errorimagesave=Kesalahan saat menyimpan file gambar:\n[orange]{0}
@@ -106,21 +99,12 @@ text.editor.savemap = Simpan Peta
text.editor.loadimage=Buka Gambar
text.editor.saveimage=Simpan Gambar
text.editor.unsaved=[scarlet]Anda memiliki perubahan yang belum disimpan![]\nYakin ingin keluar?
text.editor.brushsize = Ukuran sikat: {0}
text.editor.noplayerspawn = Peta ini tidak memiliki spawnpoint pemain!
text.editor.manyplayerspawns = Peta tidak bisa memiliki lebih dari satu\nspawnpoint pemain!
text.editor.manyenemyspawns = Tidak dapat memiliki lebih dari\n{0} spawnpoint musuh!
text.editor.resizemap=Ubah ukuran peta
text.editor.resizebig = [scarlet]Peringatan!\n[]Peta yang lebih besar dari 256 unit mungkin nge-lag dan tidak stabil.
text.editor.mapname=Nama Peta:
text.editor.overwrite=[accent]Peringatan!\nIni akan mengganti peta yang ada.
text.editor.failoverwrite = [crimson]Tidak dapat mengganti peta default!
text.editor.selectmap=Pilih peta yang akan dimuat:
text.width=Lebar:
text.height=Tinggi:
text.randomize = Acak
text.apply = Terapkan
text.update = Perbarui
text.menu=Menu
text.play=Main
text.load=Buka
@@ -141,67 +125,25 @@ text.upgrades = Perbaruan
text.purchased=[LIME]Dibuat!
text.weapons=Senjata
text.paused=Jeda
text.respawn = Respawning dalam
text.info.title=[accent]Info
text.error.title=[crimson]Telah terjadi kesalahan
text.error.crashmessage = [SCARLET]Kesalahan tak terduga telah terjadi, yang menyebabkan kerusakan.\n[]Tolong laporkan keadaan yang tepat dimana kesalahan ini terjadi pada pengembang:\n[ORANGE] anukendev@gmail.com[]
text.error.crashtitle=Telah terjadi kesalahan
text.mode.break = Mode penghancur: {0}
text.mode.place = Mode penaruh: {0}
placemode.hold.name = garis
placemode.areadelete.name = area
placemode.touchdelete.name = sentuh
placemode.holddelete.name = tahan
placemode.none.name = tidak ada
placemode.touch.name = sentuh
placemode.cursor.name = kursor
text.blocks.extrainfo = [accent]info tambahan blok:
text.blocks.blockinfo=Info Blok
text.blocks.powercapacity=Kapasitas Tenaga
text.blocks.powershot=Tenaga/tembakan
text.blocks.powersecond = Tenaga/detik
text.blocks.powerdraindamage = Tenaga Dipakai/damage
text.blocks.shieldradius = Radius Perisai
text.blocks.itemspeedsecond = Kecepatan Barang/detik
text.blocks.range = Jangkauan
text.blocks.size=Ukuran
text.blocks.powerliquid = Tenaga/Cairan
text.blocks.maxliquidsecond = Batas cairan/detik
text.blocks.liquidcapacity=Kapasitas cairan
text.blocks.liquidsecond = Cairan/detik
text.blocks.damageshot = Damage/tembakan
text.blocks.ammocapacity = Kapasitas Amunisi
text.blocks.ammo = Amunisi
text.blocks.ammoitem = Amunisi/barang
text.blocks.maxitemssecond=Batas barang/detik
text.blocks.powerrange=Jangkauan tenaga
text.blocks.lasertilerange = Kotak jangkauan laser
text.blocks.capacity = Kapasitas
text.blocks.itemcapacity=Kapasitas Barang
text.blocks.maxpowergenerationsecond = Batas Penghasil Tenaga/detik
text.blocks.powergenerationsecond = Penghasil Tenaga/detik
text.blocks.generationsecondsitem = Waktu Penghasil (detik)/barang
text.blocks.input = Masukan
text.blocks.inputliquid=Cairan yang Masuk
text.blocks.inputitem=Barang yang Masuk
text.blocks.output = Keluar
text.blocks.secondsitem = Detik/barang
text.blocks.maxpowertransfersecond = Batas transfer tenaga/detik
text.blocks.explosive=Mudah meledak!
text.blocks.repairssecond = Perbaikan/detik
text.blocks.health=Darah
text.blocks.inaccuracy=Ketidaktelitian
text.blocks.shots=Tembakan
text.blocks.shotssecond = Tembakan/detik
text.blocks.fuel = Bahan Bakar
text.blocks.fuelduration = Durasi Bahan Bakar
text.blocks.maxoutputsecond = Batas keluar/detik
text.blocks.inputcapacity=Kapasitas masuk
text.blocks.outputcapacity=Kapasitas keluar
text.blocks.poweritem = Tenaga/barang
text.placemode = Mode Penempatan
text.breakmode = Mode Penghancur
text.health = darah
setting.difficulty.easy=mudah
setting.difficulty.normal=normal
setting.difficulty.hard=sulit
@@ -209,7 +151,6 @@ setting.difficulty.insane = sangat susah
setting.difficulty.purge=paling susah
setting.difficulty.name=Kesulitan:
setting.screenshake.name=Layar Bergoyang
setting.smoothcam.name = Kamera Halus
setting.indicators.name=Indikator Musuh
setting.effects.name=Efek Tampilan
setting.sensitivity.name=Sensitivitas Pengendali
@@ -220,7 +161,6 @@ setting.fps.name = Tunjukkan FPS
setting.vsync.name=VSync
setting.lasers.name=Tampilkan Laser Tenaga
setting.healthbars.name=Tampilkan Bar Darah Entitas
setting.pixelate.name = Layar Pixel
setting.musicvol.name=Volume Musik
setting.mutemusic.name=Bisukan Musik
setting.sfxvol.name=Volume Suara
@@ -238,50 +178,6 @@ map.grassland.name = padang rumput
map.tundra.name=tundra
map.spiral.name=spiral
map.tutorial.name=tutorial
tutorial.intro.text = [yellow]Selamat datang di tutorial.[] Untuk memulai, tekan 'berikutnya'.
tutorial.moveDesktop.text = Untuk bergerak, gunakan tombol [orange][[WASD][]. Tahan tombol [orange]shift[] untuk mempercepat. Tahan [orange]CTRL[] saat menggunakan [orange]scrollwheel[] untuk memperbesar atau memperkecil tampilan.
tutorial.shoot.text = Gunakan mouse anda untuk mengarahkan, tahan [orange]tombol kiri mouse[] untuk menembak. Cobalah menembaki [yellow]target[].
tutorial.moveAndroid.text = Untuk menggeser tampilan, seret satu jari ke layar. Jepit dan seret untuk memperbesar atau memperkecil tampilan.
tutorial.placeSelect.text = Coba pilih [yellow]konveyor[] dari menu blok di kanan bawah.
tutorial.placeConveyorDesktop.text = Gunakan [orange][[scrollwheel][] untuk memutar konveyor menghadap [orange]ke depan[], lalu letakkan di [yellow]lokasi yang ditandai[] menggunakan [orange][[tombol kiri mouse]][].
tutorial.placeConveyorAndroid.text = Gunakan [orange][[tombol putar]][] untuk memutar konveyor menghadap [orange]ke depan[], seret ke posisi dengan satu jari, lalu letakkan di [yellow]lokasi yang ditandai[] dengan menggunakan [orange][[tanda centang][].
tutorial.placeConveyorAndroidInfo.text = Sebagai alternatif, Anda dapat menekan ikon crosshair di kiri bawah untuk beralih ke [orange][[mode sentuh]][], dan letakkan blok dengan mengetuk layar. Dalam mode sentuh, blok bisa diputar dengan panah di kiri bawah. Tekan [yellow]berikutnya[] untuk mencobanya.
tutorial.placeDrill.text = Sekarang, pilih dan tempatkan [yellow]pertambangan battu[] di lokasi yang ditandai.
tutorial.blockInfo.text = Jika Anda ingin mempelajari lebih lanjut tentang blok, Anda dapat menekan [orange]tanda tanya[] di bagian kanan atas untuk membaca deskripsinya.
tutorial.deselectDesktop.text = Anda bisa membatalkan pemilihan blok menggunakan [orange][[tombol mouse kanan][].
tutorial.deselectAndroid.text = Anda dapat membatalkan pemilihan blok dengan menekan tombol [orange]X (silang)[].
tutorial.drillPlaced.text = Pertambangannya sekarang akan menghasilkan [yellow]batu[] yang dikeluarkan ke konveyor, lalu memindahkannya ke [yellow]intinya[].
tutorial.drillInfo.text = Bijih yang berbeda membutuhkan pertambangan yang berbeda. Batu membutuhkan pertambangan batu, besi membutuhkan pertambangan besi, dll.
tutorial.drillPlaced2.text = Memindahkan barang ke dalam inti menempatkannya di [yellow]inventaris barang[] Anda, di kiri atas. Menempatkan blok menggunakan barang dari inventaris Anda.
tutorial.moreDrills.text = Anda bisa menghubungkan banyak pertambangan dan konveyor bersama-sama, seperti biasa.
tutorial.deleteBlock.text = Anda dapat menghapus blok dengan mengeklik [orange]tombol mouse kanan[] di blok yang ingin Anda hapus. Coba hapus konveyor ini.
tutorial.deleteBlockAndroid.text = Anda dapat menghapus blok dengan [orange]memilih crosshair[] di [orange]menu mode penghancur[] di kiri bawah dan mengetuk bloknya. Coba hapus konveyor ini.
tutorial.placeTurret.text = Sekarang, pilih dan tempatkan [yellow]turret[] di [yellow]lokasi yang ditandai[].
tutorial.placedTurretAmmo.text = Turret ini sekarang akan menerima [yellow]amunisi[] dari konveyor. Anda dapat melihat berapa banyak amunisi yang dimiliki dengan menggeser kursor di bloknya dan memeriksa di [green]bilah hijau[].
tutorial.turretExplanation.text = Turret secara otomatis akan menembak musuh terdekat dalam jangkauan, selama mereka memiliki cukup amunisi.
tutorial.waves.text = Setiap [yellow]60[] detik, gelombang [coral]musuh[] akan muncul di lokasi tertentu dan berusaha menghancurkan intinya.
tutorial.coreDestruction.text = Tujuan Anda adalah untuk [yellow]mempertahankan intinya[]. Jika intinya hancur, Anda [coral]kalah dalam permainan[].
tutorial.pausingDesktop.text = Jika Anda perlu istirahat sebentar, tekan [orange]tombol jeda[] di bagian kiri atas atau [orange]tombol spasi[] untuk menghentikan sementara permainan. Anda masih bisa memilih dan menempatkan blok sambil berhenti, tapi tidak bisa bergerak atau menembak.
tutorial.pausingAndroid.text = Jika Anda perlu istirahat sebentar, tekan [orange]tombol jeda[] di kiri atas untuk menjeda permainan. Anda masih bisa menghapus dan menempatkan blok sambil berhenti sebentar.
tutorial.purchaseWeapons.text = Anda bisa membeli [yellow]senjata baru[] untuk robot Anda dengan membuka menu upgrade di kiri bawah.
tutorial.switchWeapons.text = Untuk mengganti senjata, klik ikonnya di kiri bawah, atau gunakan angka [orange][[1-9][].
tutorial.spawnWave.text = Gelombang sekarang datang. Hancurkan mereka.
tutorial.pumpDesc.text = Pada gelombang selanjutnya, Anda mungkin perlu menggunakan [yellow]pompa[] untuk mendistribusikan cairan untuk generator atau ekstraktor.
tutorial.pumpPlace.text = Pompa bekerja seperti dengan pertambangan, namun mereka menghasilkan cairan dan bukan barang. Cobalah menempatkan pompa pada [yellow]minyak yang ditunjuk[].
tutorial.conduitUse.text = Sekarang tempatkan [orange]saluran[] yang mengarah jauh dari pompa.
tutorial.conduitUse2.text = Dan beberapa lagi...
tutorial.conduitUse3.text = Dan beberapa lagi...
tutorial.generator.text = Sekarang, tempatkan [orange]blok generator pembakaran[] di ujung saluran.
tutorial.generatorExplain.text = Generator ini sekarang akan menciptakan [yellow]tenaga[] dari minyak.
tutorial.lasers.text = Tenaga didistribusikan menggunakan [yellow]laser tenaga[]. Putar dan tempatkan di sini.
tutorial.laserExplain.text = Generator sekarang akan memindahkan tenaga ke blok laser. Sinar [yellow]terang[] menandakan bahwa saat ini mentransmisikan tenaga, dan sinar [yellow]transparan[] berarti tidak.
tutorial.laserMore.text = Anda dapat memeriksa berapa banyak tenaga yang dimiliki blok dengan memindahkan kursor/mengetuk di atasnya dan memeriksa [yellow]bar kuning[] di bagian atas.
tutorial.healingTurret.text = Laser ini bisa digunakan untuk menyalakan [lime]turret perbaikan[]. Tempatkan satu di sini.
tutorial.healingTurretExplain.text = Selama memiliki tenaga, turret ini akan [lime]memperbaiki blok terdekat[]. Saat bermain, pastikan Anda memasukkannya ke markas Anda secepat mungkin!
tutorial.smeltery.text = Banyak blok yang membutuhkan [orange]baja[] agar dapat dibangun, yang membutuhkan [orange]peleburan[] untuk dibuat. Tempatkan satu di sini.
tutorial.smelterySetup.text = Peleburan ini sekarang akan menghasilkan [orange]baja[] dari besi yang masuk, dengan batubara sebagai bahan bakarnya.
tutorial.tunnelExplain.text = Perhatikan juga bahwa barang-barang itu masuk melalui [orange]blok terowongan[] dan muncul di sisi lain, melewati blok batu. Perlu diingat bahwa terowongan hanya bisa melalui sampai 2 blok.
tutorial.end.text = Dan itu menyimpulkan tutorialnya! Semoga berhasil!
keybind.move_x.name=gerak_x
keybind.move_y.name=gerak_y
keybind.select.name=pilih
@@ -294,198 +190,306 @@ keybind.pause.name = jeda
keybind.dash.name=berlari
keybind.rotate_alt.name=putar_alt
keybind.rotate.name=putar
keybind.weapon_1.name = senjata_1
keybind.weapon_2.name = senjata_2
keybind.weapon_3.name = senjata_3
keybind.weapon_4.name = senjata_4
keybind.weapon_5.name = senjata_5
keybind.weapon_6.name = senjata_6
mode.waves.name=gelombang
mode.sandbox.name=sandbox
mode.freebuild.name=freebuild
upgrade.standard.name = standar
upgrade.standard.description = Robot standar.
upgrade.blaster.name = blaster
upgrade.blaster.description = Menembakan sebuah peluru yang lemah dan lambat.
upgrade.triblaster.name = triblaster
upgrade.triblaster.description = Menembakan 3 peluru secara menyebar.
upgrade.clustergun.name = clustergun
upgrade.clustergun.description = Menembakan sebuah granat eksplosif yang tidak akurat.
upgrade.beam.name = meriam sinar
upgrade.beam.description = Menembakan sinar laser jarak jauh.
upgrade.vulcan.name = vulcan
upgrade.vulcan.description = Menembakkan rombongan peluru dengan cepat.
upgrade.shockgun.name = shockgun
upgrade.shockgun.description = Menembakkan ledakan yang menghancurkan dari pecahan peluru yang terisi.
item.stone.name=batu
item.iron.name = besi
item.coal.name=batu bara
item.steel.name = baja
item.titanium.name=titanium
item.dirium.name = dirium
item.thorium.name=thorium
item.sand.name=pasir
liquid.water.name=air
liquid.plasma.name = plasma
liquid.lava.name=lahar
liquid.oil.name=minyak
block.weaponfactory.name = pabrik senjata
block.weaponfactory.fulldescription = Dipakai untuk membuat senjata bagi robot pemain. Klik untuk memakai. Otomatis mengambil sumber daya dari inti.
block.air.name = udara
block.blockpart.name = bagian blok
block.deepwater.name = air dangkal
block.water.name = air
block.lava.name = lahar
block.oil.name = minyak
block.stone.name = batu
block.blackstone.name = batu hitam
block.iron.name = besi
block.coal.name = batu bara
block.titanium.name = titanium
block.thorium.name = thorium
block.dirt.name = tanah
block.sand.name = pasir
block.ice.name = es
block.snow.name = salju
block.grass.name = rumput
block.sandblock.name = blok pasir
block.snowblock.name = blok salju
block.stoneblock.name = blok batu
block.blackstoneblock.name = blok batu hitam
block.grassblock.name = blok rumput
block.mossblock.name = blok lumut
block.shrub.name = belukar
block.rock.name = batu
block.icerock.name = batu es
block.blackrock.name = batu hitam
block.dirtblock.name = blok tanah
block.stonewall.name = dinding batu
block.stonewall.fulldescription = Sebuah blok defensif yang murah. Berguna untuk melindungi inti dan turret di beberapa gelombang pertama.
block.ironwall.name = dinding besi
block.ironwall.fulldescription = Blok defensif dasar. Menyediakan perlindungan dari musuh.
block.steelwall.name = dinding baja
block.steelwall.fulldescription = Sebuah blok defensif standar. Perlindungan yang memadai dari musuh.
block.titaniumwall.name = dinding titanium
block.titaniumwall.fulldescription = Blok pertahanan yang kuat. Menyediakan perlindungan dari musuh.
block.duriumwall.name = dinding dirium
block.duriumwall.fulldescription = Blok pertahanan yang sangat kuat. Menyediakan perlindungan dari musuh.
block.compositewall.name = dinding komposit
block.steelwall-large.name = dinding baja besar
block.steelwall-large.fulldescription = Sebuah blok defensif standar. Membentang beberapa ubin.
block.titaniumwall-large.name = dinding titanium besar
block.titaniumwall-large.fulldescription = Blok pertahanan yang kuat. Membentang beberapa ubin.
block.duriumwall-large.name = dinding dirium yang besar
block.duriumwall-large.fulldescription = Blok pertahanan yang sangat kuat. Membentang beberapa ubin.
block.titaniumshieldwall.name = dinding perisai
block.titaniumshieldwall.fulldescription = Sebuah blok defensif yang kuat, dengan tambahan perisai. Membutuhkan tenaga. Menggunakan energi untuk menyerap peluru musuh. Dianjurkan untuk menggunakan pemercepat tenaga untuk memberi energi pada blok ini.
block.repairturret.name = turret perbaikan
block.repairturret.fulldescription = Memperbaiki blok terdekat yang rusak dengan lambat. Menggunakan sedikit tenaga.
block.megarepairturret.name = perbaikan turret II
block.megarepairturret.fulldescription = Memperbaiki blok yang rusak dengan normal. Menggunakan tenaga.
block.shieldgenerator.name = pembangkit perisai
block.shieldgenerator.fulldescription = Blok defensif yang maju. Mellindungi semua blok dalam radius dari serangan. Menggunakan tenaga dengan lambat saat menganggur, namun menyalurkan energi dengan cepat pada kontak peluru.
block.door.name=pintu
block.door.fulldescription = Blok yang bisa dibuka dan ditutup dengan mengetuknya.
block.door-large.name=pintu besar
block.door-large.fulldescription = Blok yang bisa dibuka dan ditutup dengan mengetuknya.
block.conduit.name=saluran
block.conduit.fulldescription = Blok pengangkut cairan dasar. Bekerja seperti konveyor, tapi dengan cairan. Terbaik digunakan dengan pompa atau saluran lainnya. Bisa digunakan sebagai jembatan di atas cairan untuk musuh dan pemain.
block.pulseconduit.name=saluran cepat
block.pulseconduit.fulldescription = Blok pengangkut cairan tingkat lanjut. Mengangkut cairan lebih cepat dan menyimpan lebih banyak dari pada saluran standar.
block.liquidrouter.name=router cairan
block.liquidrouter.fulldescription = Bekerja seperti router. Menerima masukan cairan dari satu sisi dan mengeluarkannya ke sisi yang lain. Berguna untuk pemisahan cairan dari satu saluran ke beberapa saluran lainnya.
block.conveyor.name=konveyor
block.conveyor.fulldescription = Blok dasar pengangkut barang. Memindahkan barang ke depan dan secara otomatis menyimpannya ke turret, ekstraktor, dan pertambangan. Bisa diputar. Bisa digunakan sebagai jembatan di atas cairan untuk musuh dan pemain.
block.steelconveyor.name = konveyor baja
block.steelconveyor.fulldescription = Blok transportasi barang lanjutan. Memindahkan barang lebih cepat dari konveyor standar.
block.poweredconveyor.name = konveyor cepat
block.poweredconveyor.fulldescription = Blok terbaik untuk pengangkutan barang. Memindahkan barang lebih cepat dari konveyor baja.
block.router.name=router
block.router.fulldescription = Menerima item dari satu arah dan mengeluarkannya ke 3 arah. Bisa juga menyimpan sejumlah barang. Berguna untuk membelah bahan dari satu pertambangan ke beberapa turret.
block.junction.name=persimpangan jalan
block.junction.fulldescription = Bertindak sebagai jembatan untuk dua sabuk persimpangan. Berguna dalam situasi dengan dua konveyor berbeda yang membawa bahan berbeda ke lokasi yang berbeda.
block.conveyortunnel.name = terowongan konveyor
block.conveyortunnel.fulldescription = Memindahkan barang di bawah blok. Untuk menggunakan, tempatkan satu terowongan yang menuju ke terowongan di bawah blok, dan satu di sisi lain. Pastikan kedua terowongan menghadap ke arah yang berlawanan, yaitu menuju blok yang mereka masukkan atau keluarkan.
block.liquidjunction.name=persimpangan cairan
block.liquidjunction.fulldescription = Bertindak sebagai jembatan untuk dua saluran persimpangan. Berguna dalam situasi dengan dua saluran berbeda yang membawa cairan berbeda ke lokasi yang berbeda.
block.liquiditemjunction.name = persimpangan barang-cairan
block.liquiditemjunction.fulldescription = Bertindak sebagai jembatan untuk menyilang saluran dan konveyor.
block.powerbooster.name = pemercepat tenaga
block.powerbooster.fulldescription = Mendistribusikan tenaga ke semua blok dalam radiusnya.
block.powerlaser.name = laser tenaga
block.powerlaser.fulldescription = Membuat laser yang mentransmisikan daya ke blok di depannya. Tidak menghasilkan tenaga itu sendiri. Terbaik digunakan dengan generator atau laser lainnya.
block.powerlaserrouter.name = router laser
block.powerlaserrouter.fulldescription = Laser yang mendistribusikan tenaga ke tiga arah sekaligus. Berguna dalam situasi di mana diperlukan tenaga ke beberapa blok dari satu generator.
block.powerlasercorner.name = sudut laser
block.powerlasercorner.fulldescription = Laser yang mendistribusikan tenaga ke dua arah sekaligus. Berguna dalam situasi di mana diperlukan tenaga ke beberapa blok dari satu generator, dan arah router kurang tepat.
block.teleporter.name = teleporter
block.teleporter.fulldescription = Blok transportasi barang lanjutan. Teleporter memasukkan barang ke teleporter lain dengan warna yang sama. Tidak ada apa-apa jika tidak ada teleporter dengan warna yang sama. Jika beberapa teleporter memiliki warna yang sama, teleporter dipilih secara acak. Menggunakan tenaga. Ketuk/klik untuk mengubah warna.
block.sorter.name=penyortir
block.sorter.fulldescription = Menyortir barang menurut jenis bahannya. Bahan yang diterima ditandai dengan warna di blok. Semua item yang sesuai dengan jenis bahan dilepaskan ke depan, segala sesuatu yang lain dikeluarkan ke kiri dan kanan.
block.core.name = inti
block.pump.name = pompa
block.pump.fulldescription = Memompa cairan dari sumber blok- biasanya air, lahar atau minyak. Mengeluarkan cairan ke saluran terdekat.
block.fluxpump.name = pompa flux
block.fluxpump.fulldescription = Sebuah versi lanjutan dari pompa. Menyimpan lebih banyak cairan dan memompa cairan lebih cepat.
block.smelter.name=peleburan
block.smelter.fulldescription = Blok kerajinan esensial. Saat dimasukkan 1 besi dan 1 batu bara sebagai bahan bakar, akan mengeluarkan satu baja. Disarankan untuk memasukkan besi dan batu bara ke sabuk yang berbeda untuk mencegah penyumbatan.
block.crucible.name = peleburan dirium
block.crucible.fulldescription = Sebuah blok kerajinan yang maju. Saat dimasukkan 1 titanium, 1 baja dan 1 batu bara sebagai bahan bakar, mengeluarkan satu dirium. Disarankan untuk memasukkan batubara, baja dan titanium pada sabuk yang berbeda untuk mencegah penyumbatan.
block.coalpurifier.name = ekstraktor batubara
block.coalpurifier.fulldescription = Blok ekstraktor dasar. mengeluarkan batu bara saat dipasok dengan air dan batu dalam skala yang besar.
block.titaniumpurifier.name = ekstraktor titanium
block.titaniumpurifier.fulldescription = Blok ekstraktor standar. mengeluarkan titanium bila dipasok dengan air dan besi dalam skala yang besar.
block.oilrefinery.name = penyulingan minyak
block.oilrefinery.fulldescription = Menyuling sejumlah minyak menjadi batubara. Berguna untuk memasok turret berbasis batubara saat penambangan batubara langka.
block.stoneformer.name = pembentuk batu
block.stoneformer.fulldescription = Mengubah lahar ke dalam batu. Berguna untuk menghasilkan batu dalam jumlah besar untuk pemurni batu bara.
block.lavasmelter.name = peleburan lava
block.lavasmelter.fulldescription = Menggunakan lahar untuk mengubah besi menjadi baja. Sebuah alternatif untuk peleburan batubara. Berguna dalam situasi di mana pertambangan batubara langka.
block.stonedrill.name = pertambangan batu
block.stonedrill.fulldescription = Pertambangan penting. Saat diletakkan di atas ubin batu, akan menghasilkan batu pada kecepatan yang lambat tanpa batas waktu.
block.irondrill.name = pertambangan besi
block.irondrill.fulldescription = Pertambangan dasar. Saat diletakkan di atas ubin bijih besi, akan mengeluarkan besi pada kecepatan yang lambat tanpa batas waktu.
block.coaldrill.name = pertambangan batubara
block.coaldrill.fulldescription = Pertambangan dasar. Saat ditempatkan di ubin bijih batubara, akan mengeluarkan batu bara pada kecepatan yang lambat tanpa batas waktu.
block.thoriumdrill.name = pertambangan thorium
block.thoriumdrill.fulldescription = Sebuah pertambangan yang canggih. Saat ditempatkan di ubin bijih thorium, akan mengeluarkan thorium pada kecepatan lambat tanpa batas waktu.
block.titaniumdrill.name = pertambangan titanium
block.titaniumdrill.fulldescription = Sebuah pertambangan yang canggih. Saat ditempatkan pada ubin bijih titanium, akan mengeluarkan titanium pada kecepatan lambat tanpa batas waktu.
block.omnidrill.name = pertambangan super
block.omnidrill.fulldescription = Pertambangan yang terbaik. Akan saya tambang bijih apapun itu ditempatkan pada kecepatan tinggi.
block.coalgenerator.name = pembangkit tenaga batubara
block.coalgenerator.fulldescription = Generator penting. Menghasilkan tenaga dari batu bara. Keluarkan tenaga sebagai laser ke 4 sisinya.
block.thermalgenerator.name = pembangkit tenaga panas
block.thermalgenerator.fulldescription = Menghasilkan tenaga dari lahar. Mengeluarkan tenaga sebagai laser ke 4 sisi.
block.combustiongenerator.name = pembangkit tenaga minyak
block.combustiongenerator.fulldescription = Menghasilkan tenaga dari minyak. Mengeluarkan tenaga sebagai laser ke 4 sisi.
block.rtgenerator.name = pembangkit tenaga radioaktif
block.rtgenerator.fulldescription = Menghasilkan sedikit tenaga dari peluruhan radioaktif thorium. Mengeluarkan tenaga sebagai laser ke 4 sisi.
block.nuclearreactor.name = reaktor nuklir
block.nuclearreactor.fulldescription = Versi lanjutan Pembangkit Tenaga Radioaktif, dan generator tenaga tertinggi. Menghasilkan tenaga dari thorium. Membutuhkan pendinginan air konstan. Sangat mudah menguap; akan meledak dengan hebat jika tidak cukup jumlah pendingin yang diberikan.
block.turret.name = turret
block.turret.fulldescription = Sebuah menara dasar yang murah. Menggunakan batu untuk amunisi. Memiliki jangkauan yang sedikit lebih banyak daripada turret ganda.
block.doubleturret.name = turret ganda
block.doubleturret.fulldescription = Versi turret standar yang sedikit lebih bertenaga. Menggunakan batu untuk amunisi. Memberikan damage secara signifikan lebih banyak, namun memiliki jangkauan yang lebih rendah. Menembak dua peluru.
block.machineturret.name = turret cepat
block.machineturret.fulldescription = Sebuah menara standar. Menggunakan besi untuk amunisi. Memiliki tembakan yang cepat dengan damage yang layak.
block.shotgunturret.name = turret split
block.shotgunturret.fulldescription = Sebuah turret standar. Menggunakan besi untuk amunisi. Menembakkan 7 peluru. Jaraknya pendek, namun damage-nya lebih tinggi daripada turret cepat.
block.flameturret.name = turret api
block.flameturret.fulldescription = Turret jarak dekat lanjutan. Menggunakan batubara untuk amunisi. Memiliki jangkauan yang pendek, namun sangat tinggi damage-nya. Bagus untuk jarak dekat. Dianjurkan untuk digunakan dibalik dinding.
block.sniperturret.name = turret railgun
block.sniperturret.fulldescription = Turret jarak jauh lanjutan. Menggunakan baja untuk amunisi. Kerusakan yang sangat tinggi, namun menembak dengan lambat. Mahal untuk digunakan, tapi bisa ditempatkan jauh dari garis musuh karena jangkauannya.
block.mortarturret.name = turret flak
block.mortarturret.fulldescription = Turret dengan akurasi pendek dan damage eksplosif. Menggunakan batubara untuk amunisi. Menembakkan peluru yang meledak lalu menjadi pecahan peluru. Berguna untuk kerumunan musuh yang besar.
block.laserturret.name = turret laser
block.laserturret.fulldescription = Turret satu target. Menggunakan tenaga. Memiliki jarak sedang yang bagus. Target tunggal saja. Tidak pernah meleset.
block.waveturret.name = turret tesla
block.waveturret.fulldescription = Turret target banyak. Menggunakan tenaga. Jaraknya sedang. Tidak pernah meleset. Rata-rata damage-nya kecil, namun bisa menembak beberapa musuh bersamaan dengan petir berantai.
block.plasmaturret.name = turret plasma
block.plasmaturret.fulldescription = Versi yang sangat maju dari turret api. Menggunakan batubara sebagai amunisi. Damage yang sangat tinggi, jaraknya pendek sampai sedang.
block.chainturret.name = turret berantai
block.chainturret.fulldescription = Menara api yang menembak dengan cepat. Menggunakan thorium sebagai amunisi. Menembak peluru besar dengan kecepatan tinggi. Jaraknya sedang. Membentang beberapa ubin. Sangat tangguh.
block.titancannon.name = meriam titan
block.titancannon.fulldescription = Turret jarak jauh terakhir. Menggunakan thorium sebagai amunisi. Menembakkan peluru yang meledak dengan cipratan besar dengan kecepatan sedang. Jarak jauh. Membentang beberapa ubin. Sangat tangguh.
block.playerspawn.name = spawn pemain
block.enemyspawn.name = spawn musuh
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.newgame=New Game
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.banned=You are banned on this server.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.trace.ip=IP: [accent]{0}
text.trace.id=Unique ID: [accent]{0}
text.trace.android=Android Client: [accent]{0}
text.trace.modclient=Custom Client: [accent]{0}
text.trace.totalblocksbroken=Total blocks broken: [accent]{0}
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.trace.lastblockbroken=Last block broken: [accent]{0}
text.trace.totalblocksplaced=Total blocks placed: [accent]{0}
text.trace.lastblockplaced=Last block placed: [accent]{0}
text.invalidid=Invalid client ID! Submit a bug report.
text.server.bans=Bans
text.server.bans.none=No banned players found!
text.server.admins=Admins
text.server.admins.none=No admins found!
text.server.outdated=[crimson]Outdated Server![]
text.server.outdated.client=[crimson]Outdated Client![]
text.server.version=[lightgray]Version: {0}
text.server.custombuild=[yellow]Custom Build
text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.disconnect.data=Failed to load world data!
text.save.difficulty=Difficulty: {0}
text.copylink=Copy Link
text.changelog.title=Changelog
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.changelog.error=[scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.multithread.name=Multithreading
setting.minimap.name=Show Minimap
text.keybind.title=Rebind Keys
keybind.block_info.name=block_info
keybind.chat.name=chat
keybind.player_list.name=player_list
keybind.console.name=console
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+224 -280
View File
@@ -1,7 +1,6 @@
text.about=Creato da [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\nOriginariamente era una voce nel [orange]GDL[] Metal Monstrosity Jam.\n\n Crediti:\n - SFX realizzato con [YELLOW]bfxr [] \n - Musica creata da [GREEN]RoccoW[] / trovata su [lime]FreeMusicArchive.org[]\n\n Un ringraziamento speciale a:\n - [coral]MitchellFJN []: esteso test del gioco e feedback\n - [sky]Luxray5474 []: lavorazione della wiki, contributi col codice\n - [lime]Epowerj []: sistema di costruzione del codice, icone\n - Tutti i beta tester su itch.io e Google Play\n
text.credits=Crediti
text.discord=Unisciti sul server discord di mindustry!
text.changes = [SCARLET]Attenzione!\n[]Alcune importanti meccaniche di gioco sono state modificate.\n\n - [accent]I teletrasporti[] ora usano la corrente.\n - [accent]Le fornaci[] e [accent]i crogioli[] ora hanno una capacità massima di oggetti. \n- [accent]I crogioli[] ora richiedono il carbone come combustibile.
text.link.discord.description=la chatroom ufficiale del server discord di Mindustry
text.link.github.description=Codice sorgente del gioco
text.link.dev-builds.description=Build di sviluppo versioni instabili
@@ -11,13 +10,12 @@ text.link.google-play.description = Elenco di Google Play Store
text.link.wiki.description=wiki ufficiale di Mindustry
text.linkfail=Impossibile aprire il link! L'URL è stato copiato nella tua bacheca.
text.editor.web=La versione web non supporta l'editor! Scarica il gioco per usarlo.
text.multiplayer.web = Questa versione del gioco non supporta il multiplayer! Per giocare in multiplayer dal tuo browser, usa il link \"versione web multiplayer\" nella pagina itch.io.
text.multiplayer.web=Questa versione del gioco non supporta il multiplayer! Per giocare in multiplayer dal tuo browser, usa il link "versione web multiplayer" nella pagina itch.io.
text.gameover=Il nucleo è stato distrutto.
text.highscore=[YELLOW]Nuovo record!
text.lasted=Sei durato fino all'onda
text.level.highscore=Migliore: [accent]{0}
text.level.delete.title=Conferma Eliminazione
text.level.delete = Sei sicuro di voler eliminare la mappa \"[arancione]{0}\"?
text.level.select=Selezione del livello
text.level.mode=Modalità di gioco:
text.savegame=Salva
@@ -27,9 +25,7 @@ text.newgame = Nuovo gioco
text.quit=Esci
text.about.button=Informazioni
text.name=Nome:
text.public = Pubblico
text.players={0} giocatori online
text.server.player.host = {0} (host)
text.players.single={0} giocatori online
text.server.mismatch=Errore nel pacchetto: possibile discrepanza nella versione client / server. Assicurati che tu e l'host abbiate l'ultima versione di Mindustry!
text.server.closing=[accent]Chiusura server ...
@@ -81,7 +77,6 @@ text.confirmban = Sei sicuro di voler bandire questo giocatore?
text.confirmunban=Sei sicuro di voler sbloccare questo giocatore?
text.confirmadmin=Sei sicuro di voler rendere questo giocatore un amministratore?
text.confirmunadmin=Sei sicuro di voler rimuovere lo stato di amministratore da questo player?
text.joingame.byip = Unisciti a IP ...
text.joingame.title=Unisciti alla Partita
text.joingame.ip=IP:
text.disconnect=Disconnesso.
@@ -93,8 +88,6 @@ text.server.port = Porta:
text.server.addressinuse=Indirizzo già in uso!
text.server.invalidport=Numero di porta non valido!
text.server.error=[crimson]Errore nell'hosting del server: [orange] {0}
text.tutorial.back = < Prec
text.tutorial.next = Succ >
text.save.new=Nuovo Salvataggio
text.save.overwrite=Sei sicuro di voler sovrascrivere questo salvataggio?
text.overwrite=Sostituisci
@@ -145,7 +138,6 @@ text.enemies = {0} Nemici
text.enemies.single={0} Nemico
text.loadimage=Carica immagine
text.saveimage=Salva Immagine
text.oregen = Generazione dei minerali
text.editor.badsize=[orange]Dimensioni dell'immagine non valide![]\n Dimensioni della mappa valide: {0}
text.editor.errorimageload=Errore durante il caricamento del file immagine:\n [orange]{0}
text.editor.errorimagesave=Errore durante il salvataggio del file immagine:\n [orange]{0}
@@ -156,21 +148,12 @@ text.editor.savemap = Salva\nla mappa
text.editor.loadimage=Carica\nimmagine
text.editor.saveimage=Salva\nImmagine
text.editor.unsaved=[scarlet]Hai modifiche non salvate![]\nSei sicuro di voler uscire?
text.editor.brushsize = Dimensione del pennello: {0}
text.editor.noplayerspawn = Questa mappa non ha lo spawnpoint del giocatore!
text.editor.manyplayerspawns = Le mappe non possono avere più di un punto di spawn di un giocatore!
text.editor.manyenemyspawns = Non puoi avere più di {0} spawn nemici!
text.editor.resizemap=Ridimensiona la mappa
text.editor.resizebig = [Scarlet]Attenzione!\n[]Le mappe più grandi di 256 unità potrebbero causare del lag oltre ad essere instabili.
text.editor.mapname=Nome Mappa:
text.editor.overwrite=[Accent]Attenzione!\nQuesto sovrascrive una mappa esistente.
text.editor.failoverwrite = [crimson]Impossibile sovrascrivere la mappa di default!
text.editor.selectmap=Seleziona una mappa da caricare:
text.width=Larghezza:
text.height=Altezza:
text.randomize = Randomizza
text.apply = Applicare
text.update = Aggiorna
text.menu=Menu
text.play=Gioca
text.load=Carica
@@ -191,67 +174,25 @@ text.upgrades = Miglioramenti
text.purchased=[LIME]Creato!
text.weapons=Armi
text.paused=In pausa
text.respawn = Rinascita in
text.info.title=[Accent]Informazioni
text.error.title=[crimson]Si è verificato un errore
text.error.crashmessage = [SCARLET]Si è verificato un errore imprevisto che ha causato un arresto anomalo.[] Si prega di segnalare le circostanze esatte in cui questo errore si è verificato allo sviluppatore:\n[ORANGE]anukendev@gmail.com[]
text.error.crashtitle=Si è verificato un errore
text.mode.break = Modalità di interruzione: {0}
text.mode.place = Modalità luogo: {0}
placemode.hold.name = linea
placemode.areadelete.name = area
placemode.touchdelete.name = toccare
placemode.holddelete.name = trattieni
placemode.none.name = nessuno
placemode.touch.name = toccare
placemode.cursor.name = cursore
text.blocks.extrainfo = [accent]informazioni extra sui blocchi:
text.blocks.blockinfo=Informazioni sul blocco
text.blocks.powercapacity=Capacità energetica
text.blocks.powershot=Danno/Colpo
text.blocks.powersecond = Energia/Secondo
text.blocks.powerdraindamage = Consumo/Danno
text.blocks.shieldradius = Raggio dello scudo
text.blocks.itemspeedsecond = Velocita Oggetti/Secondo
text.blocks.range = Gamma
text.blocks.size=Grandezza
text.blocks.powerliquid = Energia/Liquido
text.blocks.maxliquidsecond = Max liquido/Secondo
text.blocks.liquidcapacity=Capacità del liquido
text.blocks.liquidsecond = Liquido/Secondo
text.blocks.damageshot = Danni colpo
text.blocks.ammocapacity = Capacità del caricatore
text.blocks.ammo = Munizioni
text.blocks.ammoitem = Munizioni/Oggetto
text.blocks.maxitemssecond=Oggetti massimi/secondo
text.blocks.powerrange=Raggio Energia
text.blocks.lasertilerange = Raggio piastrelle laser
text.blocks.capacity = Capacità
text.blocks.itemcapacity=Capacità oggetto
text.blocks.maxpowergenerationsecond = Massima Energia Generata/secondo
text.blocks.powergenerationsecond = Energia generata/secondo
text.blocks.generationsecondsitem = Generazione secondi/oggetto
text.blocks.input = Ingresso
text.blocks.inputliquid=Ingresso del liquido
text.blocks.inputitem=Ingresso Oggetto
text.blocks.output = Uscita
text.blocks.secondsitem = Secondi/item
text.blocks.maxpowertransfersecond = Massimo trasferimento di potenza/secondo
text.blocks.explosive=Altamente esplosivo!
text.blocks.repairssecond = Ripara/secondo
text.blocks.health=Salute
text.blocks.inaccuracy=inesattezza
text.blocks.shots=Colpi
text.blocks.shotssecond = Colpi/secondo
text.blocks.fuel = Carburante
text.blocks.fuelduration = Durata del carburante
text.blocks.maxoutputsecond = Uscita max/secondo
text.blocks.inputcapacity=Capacità di ingresso
text.blocks.outputcapacity=Capacità di uscita
text.blocks.poweritem = Energia/Oggetto
text.placemode = Place Mode
text.breakmode = Modalità di interruzione
text.health = Salutee
setting.difficulty.easy=facile
setting.difficulty.normal=medio
setting.difficulty.hard=difficile
@@ -259,7 +200,6 @@ setting.difficulty.insane = Folle
setting.difficulty.purge=Epurazione
setting.difficulty.name=Difficoltà:
setting.screenshake.name=Screen Shake
setting.smoothcam.name = Smooth Camera
setting.indicators.name=Indicatori nemici
setting.effects.name=Visualizza effetti
setting.sensitivity.name=Sensibilità del controllore.
@@ -271,7 +211,6 @@ setting.fps.name = Mostra FPS
setting.vsync.name=Sincronizzazione Verticale
setting.lasers.name=Mostra Energia Dei Laser
setting.healthbars.name=Mostra barra della salute delle entità
setting.pixelate.name = Schermo Pixelate
setting.musicvol.name=Volume Musica
setting.mutemusic.name=Musica muta
setting.sfxvol.name=Volume SFX
@@ -289,50 +228,6 @@ map.grassland.name = Prateria
map.tundra.name=Tundra
map.spiral.name=spirale
map.tutorial.name=Tutorial
tutorial.intro.text = [yellow]Benvenuti nel tutorial.[] Per iniziare, premere 'succ'.
tutorial.moveDesktop.text = Per spostarsi, utilizza i tasti [orange][[WASD][] . Tenere premuto [orange]shift []per correre. Tenere premuto [orange]CTRL[] mentre si utilizza la [orange]rotella del mouse[] per ingrandire o ridurre lo zoom.
tutorial.shoot.text = Usa il mouse per mirare, tieni premuto [orange]tasto sinistro del mouse[] per sparare. Fai uun po' di pratica con quest' [yellow]obiettivo[].
tutorial.moveAndroid.text = Per spostare la vista, trascina un dito sullo schermo. Pizzica e trascina per ingrandire o ridurre.
tutorial.placeSelect.text = Prova a selezionare un [yellow]nastro trasportatore[] dal menu dei blocchi in basso a destra.
tutorial.placeConveyorDesktop.text = Utilizza la [orange]rotellina di scorrimento[] per ruotare il nastro trasportatore in modo che sia rivolto verso [orange]in avanti[], quindi posizionarlo nella [yellow]posizione contrassegnata[] utilizzando il [orange]tasto sinistro del mouse[].
tutorial.placeConveyorAndroid.text = Utilizzare il pulsante [orange]tasto di rotazione[] per ruotare il trasportatore in modo che sia rivolto [orange]in avanti[], trascinalo in posizione con un dito, quindi posizionalo nella [yellow]posizione contrassegnata[] utilizzando [orange]segno di spunta[]
tutorial.placeConveyorAndroidInfo.text = In alternativa, puoi premere l'icona mirino in basso a sinistra per passare alla [orange] touch mode[] e posiziona i blocchi toccando sullo schermo. In modalità touch, i blocchi possono essere ruotati con la freccia in basso a sinistra. Premi [yellow]avanti[] per provarlo.
tutorial.placeDrill.text = Ora, seleziona e posiziona un [yellow]trapano per pietra[] nella posizione contrassegnata.
tutorial.blockInfo.text = Se vuoi saperne di più su un blocco, puoi toccare il [orange]punto interrogativo[] in alto a destra per leggere la sua descrizione.
tutorial.deselectDesktop.text = Puoi deselezionare un blocco usando [orange]tasto destro del mouse[].
tutorial.deselectAndroid.text = È possibile deselezionare un blocco premendo il tasto [orange]X[].
tutorial.drillPlaced.text = Il trapano ora produrrà [yellow]pietra,[] la manderà sul nastro trasportatore, quindi la sposterà nel [yellow]nucleo[].
tutorial.drillInfo.text = I minerali differenti hanno bisogno di trapani diversi. La pietra richiede il trapano di pietra, il ferro richiede il trapano di ferro, ecc.
tutorial.drillPlaced2.text = Spostando gli oggetti nel nucleo li metti nell' [yellow]inventario[], in alto a sinistra. Piazzare i blocchi usa gli oggetti dal tuo inventario.
tutorial.moreDrills.text = Puoi collegare molti trapani e trasportatori insieme, in questo modo.
tutorial.deleteBlock.text = È possibile eliminare i blocchi facendo clic sul [orange]pulsante destro del mouse[] sul blocco che si desidera eliminare. Prova a eliminare questo trasportatore.
tutorial.deleteBlockAndroid.text = È possibile eliminare i blocchi [orange]selezionandoli col mirino[] nel menu della [orange]modalità pausa[] in basso a sinistra e toccando un blocco. Prova a eliminare questo trasportatore.
tutorial.placeTurret.text = Ora, seleziona e posiziona una [yellow]torretta[] nella [yellow]posizione contrassegnata[].
tutorial.placedTurretAmmo.text = Questa torretta ora accetta [yellow]munizioni[] dal trasportatore. Puoi vedere quante munizioni ha al passaggio del mouse [green]barra verde[].
tutorial.turretExplanation.text = Le torrette spareranno automaticamente al nemico più vicino nel raggio d'azione, a patto che abbiano munizioni sufficienti.
tutorial.waves.text = Ogni [yellow]60[] secondi, un'ondata di [coral]nemici[] si genera in posizioni specifiche e tenta di distruggere il nucleo.
tutorial.coreDestruction.text = Il tuo obiettivo è difendere [yellow]il nucleo[]. Se il nucleo viene distrutto, tu [coral]perdi la partita[].
tutorial.pausingDesktop.text = Se hai bisogno di fare una pausa, premi il [orange]pulsante di pausa[] in alto a sinistra per mettere in pausa il gioco. Puoi ancora selezionare e posizionare i blocchi mentre sei in pausa, ma non puoi muoverti o sparare
tutorial.pausingAndroid.text = Se hai bisogno di fare una pausa, premi il [orange]pulsante di pausa[] in alto a sinistra per mettere in pausa il gioco. Puoi ancora rompere e posizionare i blocchi mentre sei in pausa.
tutorial.purchaseWeapons.text = Puoi acquistare nuove [yellow]armi[] per il tuo mech aprendo il menu di aggiornamenti in basso a sinistra.
tutorial.switchWeapons.text = Cambia le armi facendo clic sulla sua icona in basso a sinistra o usando i numeri [orange][[1-9][].
tutorial.spawnWave.text = Ecco un'ondata ora. Distruggili.
tutorial.pumpDesc.text = Nelle onde successive, potrebbe essere necessario utilizzare le [yellow]pompe[] per distribuire i liquidi per i generatori o gli estrattori.
tutorial.pumpPlace.text = Le pompe funzionano in modo simile ai trapani, tranne per il fatto che producono liquidi anziché oggetti. Prova a posizionare una pompa sull' [yellow]petrolio evidenziato[].
tutorial.conduitUse.text = Ora posiziona una [orange]conduttura[]
tutorial.conduitUse2.text = E alcuni altri ...
tutorial.conduitUse3.text = E alcuni altri ...
tutorial.generator.text = Ora, posizionare un [orange]generatore a combustione[] all'estremità del condotto.
tutorial.generatorExplain.text = Questo generatore ora creerà [yellow]corrente[] dall'petrolio.
tutorial.lasers.text = La potenza è distribuita usando i [yellow]laser energetici[]. Ruota e posizionane uno qui.
tutorial.laserExplain.text = Il generatore ora trasferirà l'energia nel blocco laser. Un raggio [yellow]opaco[] indica che sta trasmettendo corrente e un raggio [yellow]trasparente[] significa che non la sta strasmettendo.
tutorial.laserMore.text = Puoi controllare quanta energia ha un blocco passandoci sopra e controllando la barra [yellow]gialla[] in alto.
tutorial.healingTurret.text = Questo laser può essere utilizzato per alimentare una [lime]torretta di riparazione[]. Mettine una qui.
tutorial.healingTurretExplain.text = Finché ha energia, questa torretta [lime]riparerà i blocchi vicini.[] Durante la riproduzione del gioco, assicurati di averne una nella tua base il più rapidamente possibile!
tutorial.smeltery.text = Molti blocchi richiedono [orange]acciaio[] da produrre, che richiede una [orange] fonderia[] per la produzione. Mettine una qui.
tutorial.smelterySetup.text = Questa fonderia produrrà ora [orange]acciaio[] dal ferro in ingresso, usando il carbone come combustibile.
tutorial.tunnelExplain.text = Si noti inoltre che gli oggetti passano attraverso un[orange]tunnel[] e emergono dall'altra parte, passando attraverso il blocco di pietra. Tieni presente che i tunnel possono attraversare fino a 2 blocchi.
tutorial.end.text = E questo conclude il tutorial! In bocca al lupo!
text.keybind.title=Configurazione Tasti
keybind.move_x.name=move_x
keybind.move_y.name=move_y
@@ -350,12 +245,6 @@ keybind.player_list.name = lista_giocatori
keybind.console.name=console
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Ruotare
keybind.weapon_1.name = arma_1
keybind.weapon_2.name = arma_2
keybind.weapon_3.name = arma_3
keybind.weapon_4.name = arma_4
keybind.weapon_5.name = arma_5
keybind.weapon_6.name = arma_6
mode.text.help.title=Descrizione delle modalità
mode.waves.name=onde
mode.waves.description=modalità normale. risorse limitate e onde in entrata automatiche.
@@ -363,189 +252,244 @@ mode.sandbox.name = Sandbox
mode.sandbox.description=risorse infinite e nessun timer per le onde.
mode.freebuild.name=freebuild
mode.freebuild.description=risorse limitate e nessun timer per le onde.
upgrade.standard.name = Standard
upgrade.standard.description = Il mech standard.
upgrade.blaster.name = blaster
upgrade.blaster.description = Spara un proiettile lento, debole.
upgrade.triblaster.name = triblaster
upgrade.triblaster.description = Spara 3 proiettili a diffusione.
upgrade.clustergun.name = clustergun
upgrade.clustergun.description = Spara delle imprecise granate esplosive.
upgrade.beam.name = cannone a raggi
upgrade.beam.description = Spara un raggio laser penetrante a lungo raggio.
upgrade.vulcan.name = Vulcano
upgrade.vulcan.description = Spara una raffica di proiettili veloci.
upgrade.shockgun.name = shockgun
upgrade.shockgun.description = Spara a una devastante esplosione di shrapnel carichi.
item.stone.name=pietra
item.iron.name = ferro
item.coal.name=carbone
item.steel.name = acciaio
item.titanium.name=titanio
item.dirium.name = diridio
item.uranium.name = uranio
item.sand.name=sabbia
liquid.water.name=acqua
liquid.plasma.name = Plasma
liquid.lava.name=lava
liquid.oil.name=petrolio
block.weaponfactory.name = fabbrica d'armi
block.weaponfactory.fulldescription = Utilizzata per creare armi per il giocatore mech. Clicca per usare. Prende automaticamente le risorse dal core.
block.air.name = aria
block.blockpart.name = blockpart
block.deepwater.name = acque profonde
block.water.name = acqua
block.lava.name = lava
block.oil.name = petrolio
block.stone.name = pietra
block.blackstone.name = pietra nera
block.iron.name = ferro
block.coal.name = carbone
block.titanium.name = titanio
block.uranium.name = uranio
block.dirt.name = terra
block.sand.name = sabbia
block.ice.name = ghiaccio
block.snow.name = neve
block.grass.name = Erba
block.sandblock.name = blocco di sabbia
block.snowblock.name = blocco di neve
block.stoneblock.name = blocco di pietra
block.blackstoneblock.name = blocco di pietra nera
block.grassblock.name = blocco d'erba
block.mossblock.name = blocco di muschio
block.shrub.name = arbusto
block.rock.name = roccia
block.icerock.name = giaccio
block.blackrock.name = roccia nera
block.dirtblock.name = blocco di terra
block.stonewall.name = muro di pietra
block.stonewall.fulldescription = Un blocco difensivo poco costoso. Utile per proteggere il nucleo e le torrette nelle prime ondate.
block.ironwall.name = muro di ferro
block.ironwall.fulldescription = Un blocco difensivo di base. Fornisce protezione dai nemici.
block.steelwall.name = muro d'acciaio
block.steelwall.fulldescription = Un blocco difensivo standard. protezione adeguata dai nemici.
block.titaniumwall.name = muro di titanio
block.titaniumwall.fulldescription = Un forte blocco difensivo. Fornisce protezione dai nemici.
block.duriumwall.name = muro di diridio
block.duriumwall.fulldescription = Un blocco difensivo molto forte. Fornisce protezione dai nemici.
block.compositewall.name = muro composito
block.steelwall-large.name = grande muro di acciaio
block.steelwall-large.fulldescription = Un blocco difensivo standard. Si estende su più tessere.
block.titaniumwall-large.name = grande muro di titanio
block.titaniumwall-large.fulldescription = Un forte blocco difensivo. Si estende su più tessere.
block.duriumwall-large.name = grande muro di diridio
block.duriumwall-large.fulldescription = Un blocco difensivo molto forte. Si estende su più tessere.
block.titaniumshieldwall.name = muro schermato
block.titaniumshieldwall.fulldescription = Un forte blocco difensivo, con uno scudo incorporato extra. Richiede energia. Utilizza l'energia per assorbire i proiettili nemici. Si consiglia di utilizzare i booster di energia per fornire energia a questo blocco.
block.repairturret.name = torretta di riparazione
block.repairturret.fulldescription = Ripara i blocchi danneggiati vicini nel raggio di azione a un ritmo lento. Utilizza piccole quantità di energia.
block.megarepairturret.name = torretta di riparazione II
block.megarepairturret.fulldescription = Ripara i blocchi vicini danneggiati nel raggio di portata a ritmo moderato. Usa il potere.
block.shieldgenerator.name = generatore di scudi
block.shieldgenerator.fulldescription = Un blocco difensivo avanzato. Fa da scudo per tutti i blocchi in un raggio dalla posizione. Utilizza l'energia a una velocità ridotta quando è inattivo, ma scarica rapidamente energia sul contatto con i proiettili.
block.door.name=porta
block.door.fulldescription = Un blocco che può essere aperto e chiuso toccandolo.
block.door-large.name=grande porta
block.door-large.fulldescription = Un blocco che può essere aperto e chiuso toccandolo.
block.conduit.name=Condotto
block.conduit.fulldescription = Blocco di trasporto liquido di base. Funziona come un trasportatore, ma con liquidi. Ideale per pompe o altri condotti. Può essere usato come un ponte sui liquidi per nemici e giocatori.
block.pulseconduit.name=condotto di impulso
block.pulseconduit.fulldescription = Blocco di trasporto di liquidi avanzato. Trasporta i liquidi più velocemente e immagazzina più dei condotti standard.
block.liquidrouter.name=router liquido
block.liquidrouter.fulldescription = Funziona in modo simile a un router. Accetta input liquidi da un lato e li invia agli altri lati. Utile per separare il liquido da un singolo condotto in più condotti.
block.conveyor.name=trasportatore
block.conveyor.fulldescription = Blocco di trasporto basico. Sposta gli oggetti in avanti e li deposita automaticamente in torrette o crafters. Ruotabile. Può essere usato come un ponte sui liquidi per nemici e giocatori.
block.steelconveyor.name = trasportatore d'acciaio
block.steelconveyor.fulldescription = Blocco avanzato di trasporto. Sposta gli oggetti più velocemente rispetto ai trasportatori standard.
block.poweredconveyor.name = trasportatore di impulsi
block.poweredconveyor.fulldescription = Il blocco di trasporto di ultima generazione. Sposta gli oggetti più velocemente dei trasportatori in acciaio.
block.router.name=router
block.router.fulldescription = Accetta elementi da una direzione e li invia a 3 altre direzioni. Può anche memorizzare una certa quantità di oggetti. Utile per dividere i materiali da un trapano a più torrette.
block.junction.name=giunzione
block.junction.fulldescription = Funziona come un ponte per due nastri trasportatori che la attraversono. Utile in situazioni con due diversi trasportatori che trasportano materiali diversi in luoghi diversi.
block.conveyortunnel.name = tunnel di trasporto
block.conveyortunnel.fulldescription = Trasporta oggetti sotto blocchi. Per utilizzare, posizionare un tunnel che conduce nel blocco da scavare sotto il tunnel e uno sull'altro lato. Assicurarsi che entrambe le gallerie siano rivolte in direzioni opposte, cioè verso i blocchi in cui vengono immesse o in uscita.
block.liquidjunction.name=giunzione liquida
block.liquidjunction.fulldescription = Funziona come un ponte per due condotti di attraversamento. Utile in situazioni con due condotti diversi che trasportano liquidi diversi in luoghi diversi.
block.liquiditemjunction.name = giunzione di oggetti liquidi
block.liquiditemjunction.fulldescription = Funziona come un ponte per attraversare condutture e trasportatori.
block.powerbooster.name = power booster
block.powerbooster.fulldescription = Distribuisce l'energia a tutti i blocchi entro il suo raggio.
block.powerlaser.name = laser energetico
block.powerlaser.fulldescription = Crea un laser che trasmette energia al blocco di fronte ad esso. Non genera alcuna energia. Ideale per generatori o altri laser.
block.powerlaserrouter.name = router laser
block.powerlaserrouter.fulldescription = Laser che distribuisce la potenza in tre direzioni contemporaneamente. Utile in situazioni in cui è necessario alimentare più blocchi da un generatore.
block.powerlasercorner.name = angolo laser
block.powerlasercorner.fulldescription = Laser che distribuisce la potenza in due direzioni contemporaneamente. Utile in situazioni in cui è necessario alimentare più blocchi da un generatore e un router è impreciso.
block.teleporter.name = teletrasporto
block.teleporter.fulldescription = Blocco avanzato di trasporto dell'elemento. I teletrasportatori immettono gli oggetti ad altri teletrasportatori dello stesso colore. Non fa nulla se non esistono teletrasportatori dello stesso colore. Se esistono più teletrasporti dello stesso colore, ne viene selezionato uno casuale. Usa l'energia. Tocca per cambiare colore.
block.sorter.name=sorter
block.sorter.fulldescription = Ordina l'oggetto per tipo di materiale. Il materiale da accettare è indicato dal colore nel blocco. Tutti gli articoli che corrispondono al materiale di ordinamento vengono emessi in avanti, tutto il resto viene emesso a sinistra e a destra.
block.core.name = Centro
block.pump.name = pompa
block.pump.fulldescription = Pompa di liquidi da un blocco sorgente - di solito acqua, lava o petrolio. Emette liquido nei condotti nelle vicinanze.
block.fluxpump.name = pompaflux
block.fluxpump.fulldescription = Una versione avanzata della pompa. Memorizza più liquido e pompa il liquido più velocemente.
block.smelter.name=fonderia
block.smelter.fulldescription = Il blocco di lavorazione essenziale. Quando immesso 1 ferro e 1 carbone come combustibile, emette un acciaio. Si consiglia di inserire ferro e carbone su diverse cinghie per evitare l'intasamento.
block.crucible.name = crogiuolo
block.crucible.fulldescription = Un blocco di lavorazione avanzato. Immettendo 1 titanio, 1 acciaio e 1 carbone come combustibile, emette un diridio. Si consiglia di inserire carbone, acciaio e titanio su nastri diversi per evitare l'intasamento.
block.coalpurifier.name = estrattore di carbone
block.coalpurifier.fulldescription = Un blocco estrattore di base. Emette carbone quando viene fornito con grandi quantità di acqua e pietra.
block.titaniumpurifier.name = estrattore di titanio
block.titaniumpurifier.fulldescription = Un blocco estrattore standard. Produce il titanio quando viene fornito con grandi quantità di acqua e ferro.
block.oilrefinery.name = raffineria d'petrolio
block.oilrefinery.fulldescription = Affina grandi quantità di petrolio in oggetti di carbone. Utile per alimentare torrette a base di carbone quando le vene del carbone scarseggiano.
block.stoneformer.name = forma pietre
block.stoneformer.fulldescription = Solidifica la lava producendo pietra. Utile per produrre enormi quantità di pietra per depuratori di carbone.
block.lavasmelter.name = fonderia a lava
block.lavasmelter.fulldescription = Usa la lava per convertire il ferro in acciaio. Un'alternativa alle smelterie. Utile in situazioni in cui il carbone è scarso.
block.stonedrill.name = trapano di pietra
block.stonedrill.fulldescription = Il trapano essenziale. Se posizionato su delle piastrelle di pietra, emette una pietra a un ritmo lento indefinitamente.
block.irondrill.name = trapano di ferro
block.irondrill.fulldescription = Un trapano di base. Quando viene posizionato su delle piastrelle con il minerale ferro, emette il ferro a un ritmo lento indefinitamente.
block.coaldrill.name = trivella di carbone
block.coaldrill.fulldescription = Un trapano di base. Se posizionato su delle piastrelle di carbone, produce a tempo indeterminato il carbone a un ritmo lento.
block.uraniumdrill.name = trapano all'uranio
block.uraniumdrill.fulldescription = Un trapano avanzato. Se posizionato su delel piastrelle con dell'uranio, emette l'uranio a un ritmo lento indefinitamente.
block.titaniumdrill.name = trapano in titanio
block.titaniumdrill.fulldescription = Un trapano avanzato. Se posizionato su delle piastrelle di titanio, emette il titanio a un ritmo lento indefinitamente.
block.omnidrill.name = omnidrill
block.omnidrill.fulldescription = L'ultimo trapano. Trapanerà qualsiasi minerale su cui è posizionato ad un ritmo rapido.
block.coalgenerator.name = generatore di carbone
block.coalgenerator.fulldescription = Il generatore essenziale. Genera potenza dal carbone. Emette potenza come laser sui suoi 4 lati.
block.thermalgenerator.name = generatore termico
block.thermalgenerator.fulldescription = Genera energia dalla lava. Emette energia come laser sui suoi 4 lati.
block.combustiongenerator.name = generatore a combustione
block.combustiongenerator.fulldescription = Genera energia dall'petrolio. Emette energia come laser sui suoi 4 lati.
block.rtgenerator.name = Generatore RTG
block.rtgenerator.fulldescription = Genera piccole quantità di energia dal decadimento radioattivo dell'uranio. Emette potenza come laser sui suoi 4 lati.
block.nuclearreactor.name = reattore nucleare
block.nuclearreactor.fulldescription = Una versione avanzata del Generatore RTG e il massimo generatore di energia. Genera potenza dall'uranio. Richiede un raffreddamento costante dell'acqua. Altamente volatile; esploderà violentemente se vengono fornite quantità insufficienti di refrigerante.
block.turret.name = torretta
block.turret.fulldescription = Una torretta semplice ed economica. Usa la pietra per le munizioni. Ha un raggio leggermente superiore rispetto alla doppia torretta.
block.doubleturret.name = doppia torretta
block.doubleturret.fulldescription = Una versione leggermente più potente della torretta. Usa la pietra per le munizioni. Fa molto più danni, ma ha un raggio più basso. Spara due proiettili.
block.machineturret.name = torretta di gattling
block.machineturret.fulldescription = Una torretta standard a tutto tondo. Usa il ferro per le munizioni. Ha una velocità di fuoco veloce con danni decenti.
block.shotgunturret.name = torretta di splitter
block.shotgunturret.fulldescription = Una torretta standard. Usa il ferro per le munizioni. Spara una diffusione di 7 proiettili. Gittata inferiore, ma maggiore danno inflitto rispetto alla torretta gattling.
block.flameturret.name = lanciafiamme
block.flameturret.fulldescription = Torretta avanzata a distanza ravvicinata. Usa carbone per munizioni. Ha una portata molto bassa, ma un danno molto alto. Buono per luoghi chiusi. Consigliato per essere usato dietro i muri.
block.sniperturret.name = torretta ellettromagnetica
block.sniperturret.fulldescription = Torretta avanzata a lungo raggio. Utilizza l'acciaio come munizioni. Danno molto alto, ma bassa velocità di fuoco. Costoso da usare, ma può essere posizionato lontano dalle linee nemiche a causa della sua portata.
block.mortarturret.name = torretta di sfogo
block.mortarturret.fulldescription = Torretta a getto d'acqua avanzato a bassa precisione. Usa carbone per munizioni. Spara una raffica di proiettili che esplodono in shrapnel. Utile per grandi folle di nemici.
block.laserturret.name = torretta laser
block.laserturret.fulldescription = Avanzata torretta a bersaglio singolo. Usa l'energia Buona torretta a medio raggio a tutto tondo. Ingaggio singolo. Non manca mai il bersaglio.
block.waveturret.name = Torretta tesla
block.waveturret.fulldescription = Torretta multi-target avanzata. Usa l'energia. Gamma media Non manca mai. Danno basso, ma può colpire più nemici contemporaneamente con dei fulmini a catena.
block.plasmaturret.name = torretta a plasma
block.plasmaturret.fulldescription = Versione altamente avanzata del lanciafiamme. Usa il carbone come munizione. Danno molto alto, da basso a medio raggio.
block.chainturret.name = torretta a catena
block.chainturret.fulldescription = L'ultima torretta a fuoco rapido. Usa l'uranio come munizione. Spara grossi proiettili ad un alto tasso di fuoco. Gamma media Si estende su più tessere. Estremamente duro.
block.titancannon.name = cannone di titano
block.titancannon.fulldescription = L'ultima torretta a lungo raggio. Usa l'uranio come munizione. Spara grossi proiettili di schizzi a una velocità media di fuoco. Lungo raggio. Si estende su più tessere. Estremamente duro.
block.playerspawn.name = spawngiocatore
block.enemyspawn.name = spawnnemico
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.name=Thorium
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+367 -458
View File
@@ -1,79 +1,86 @@
text.about = 만든이 : [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n이 게임은 [orange]GDL[] Metal Monstrosity Jam 을 사용했습니다.\n\n크레딧\n- [YELLOW]bfxr[] 가 SFX 를 만듬\n- [GREEN]Roccow[] 가 음악을 만듬\n\n특별히 감사한 분들\n- [coral]MitchellFJN[]: 테스트하고 피드백을 주신 분\n- [sky]Luxray5474[]: wiki 를 만들고 코드에 기여하신 분\n- [lime]Epowerj[]: 코드를 만들고 아이콘을 제작하신 분\n- itch.io 그리고 Google Play 에서의 모든 베타 테스터 분들\n
text.credits = 크레딧
text.discord = Mindustry 디스코드에 참여하세요!
text.changes = [SCARLET]주의!\n[]몇몇 중요한 게임 메커니즘이 변경되었습니다.\n\n- [accent]텔레포터[]는 이제 전력을 사용합니다.\n- [accent]제련소[]와 [accent]도가니[] 는 이제 최대 자원저장 공간을 가집니다.\n- [accent]도가니[] 는 이제 석탄 연료를 필요로 합니다.
text.link.discord.description = 공식 Mindustry 디스코드 채팅방
text.about=제작자 : [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
text.credits=제작자
text.discord=Mindustry Discord 에 참여하세요!
text.link.discord.description=공식 Mindustry Discord 채팅방
text.link.github.description=게임 소스코드
text.link.dev-builds.description = 개발중인 빌드 (불안정)
text.link.trello.description = 공식 trello 보드에서 현재 계획중인 기능을 찾을 수 있습니다.
text.link.itch.io.description = itch.io 사이트에서 PC 버전 다운로드 또는 웹 버전을 플레이 할 수 있습니다.
text.link.google-play.description = Google Play 스토어 목록
text.link.dev-builds.description=개발중인 빌드
text.link.trello.description=다음 계획된 기능들을 게시한 공식 trello 보드
text.link.itch.io.description=PC 버전 다운로드 HTML5 버전이 있는 itch.io 사이트
text.link.google-play.description=Google 플레이 스토어 등록 정보
text.link.wiki.description=공식 Mindustry 위키
text.linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다.
text.editor.web = 웹버전은 맵 편집기를 지원하지 않습니다!\n게임을 다운로드 한 에 사용세요.
text.web.unsupported = 이 버전의 게임은 멀티플레이를 지원하지 않습니다!\n멀티플레이를 브라우저에서 하고 싶다면 이 itch.io 페이지에서 \"Multiplayer web version\" 버튼을 눌러서 플레이 해 주세요.
text.multiplayer.web = 이 버전의 게임은 멀티플레이를 지원하지 않습니다!\n멀티플레이를 브라우저에서 고 싶다면 itch.io 페이지에서 \"Multiplayer web version\" 버튼을 눌러서 플레이 해 주세요.
text.gameover = 코어가 파괴되었습니다.
text.linkfail=링크를 여는데 실패했습니다!URL이 기기의 클립보드에 복사되었습니다.
text.editor.web=HTML5 버전은 에디터 기능을 지원하지 않습니다!게임을 다운로드 한 에 사용 해 주세요.
text.web.unsupported=HTML5 버전은 이 기능을 지원하지 않습니다!게임을 다운로드 한 뒤에 사용 해 주세요.
text.multiplayer.web=이 버전은 멀티플레이를 지원하지 않습니다!멀티플레이를 브라우저에서 즐기고 싶다면, itch.io 페이지에서 \"multiplayer web version\" 링크로 들어가면 됩니다.
text.host.web=HTML5 버전은 게임 호스팅을 지원하지 않습니다!게임을 다운로드 한 뒤에 사용 해 주세요.
text.gameover=코어가 터졌습니다. 게임 오버!
text.highscore=[YELLOW]최고점수 달성!
text.lasted = 이번 맵에서 달성한 마지막 웨이브 :
text.lasted=마지막으로 달성한 웨이브
text.level.highscore=최고 점수 : [accent]{0}
text.level.delete.title = 삭제 확인
text.map.delete = 정말로 \"[orange]{0}\" 맵을 삭제하시겠습니까?
text.level.delete.title=삭제 확인
text.map.delete=정말로 \"[orange]{0}[]\" 맵을 삭제하시겠습니까?
text.level.select=맵 선택
text.level.mode=게임모드:
text.savegame = 저장하기
text.loadgame = 불러오기
text.joingame = 서버참가
text.construction.title=블록 배치 안내서
text.construction=[accent]블록 배치 모드[]를 선택하셨습니다.\n\n블록을 설치하고 싶으면, 자신의 건설 가능 범위 내에서 간단히 탭 하면 됩니다.\n일부 블록을 선택한 후에 확인 버튼을 누르면 배가 배치 작업을 진행할 것입니다.\n- [accent]블록을 삭제[]하고 싶다면 배치하고 싶은 영역을 탭 하세요. \n- [accent]블록을 넓게 배치[]하고 싶다면 배치하고 싶은 시작 영역을 길게 누르며 드래그 하면 됩니다.- [accent]블록을 한줄로 배치[]하고 싶다면 배치하고 싶은 시작 영역을 한번 탭 하고 길게 누르면서 드래그 하면 됩니다. \n- [accent]블록 배치 모드를 취소[]하고 싶다면 화면 하단 왼쪽에 있는 X 버튼을 누르면 됩니다.
text.deconstruction.title=블록 삭제 안내서
text.deconstruction=[accent]블록 삭제 모드[]를 선택하셨습니다\n블록을 삭제하고 싶다면, 자신의 건설 가능 범위 내에서 간단히 탭 하면 됩니다.\n일부 블록을 선택한 후에 확인 버튼을 누르면 배가 파괴 작업을 진행할 것입니다.\n- [accent]블록을 삭제[]하고 싶다면 배치하고 싶은 영역을 탭 하세요- [accent]블록을 넓은 범위로 삭제[]하고 싶다면 배치하고 싶은 시작 영역을 길게 누르며 드래그 하면 됩니다.- [accent]블록 삭제 모드를 취소[]하고 싶다면 화면 하단 왼쪽에 있는 X 버튼을 누르면 됩니다.
text.showagain=다음 세션에서 이 메세지를 표시하지 않습니다
text.unlocks=잠금 해제
text.savegame=게임 저장
text.loadgame=게임 불러오기
text.joingame=게임 참가
text.addplayers=플레이어 추가/제거
text.newgame=새 게임
text.quit=나가기
text.maps=
text.about.button = 소개
text.maps.none=[LIGHT_GRAY]맵을 찾을 수 없습니다!
text.about.button=정보
text.name=이름:
text.unlocked = 새 블록 잠금 해제!
text.unlocked.plural = 새 블록 잠금 해제!
text.public = 공개
text.players = {0} 온라인
text.server.player.host = {0} 이 호스트함.
text.players.single = {0}명 온라인.
text.server.mismatch = 패킷오류 : 현재 게임 버전과 서버 버전이 일치하지 않습니다.\n현재 게임 버전이 최신버전인지 확인 해 주세요!
text.unlocked=새 블록 잠금 해제되었습니다!
text.unlocked.plural=새 블록 잠금 해제되었습니다!
text.players={0} 플레이어 온라인
text.players.single={0} 플레이어 온라인
text.server.mismatch=패킷 오류: 클라이언트와 서버 버전이 일치하지 않습니다.자신이 서버를 호스트하거나 최신 버전을 사용 해 주세요!
text.server.closing=[accent]서버 닫는중...
text.server.kicked.kick = 당신은 서버에서 강제 퇴장 되었습니다.
text.server.kicked.fastShoot = 너님은 총을 너무 빨리 쏴서 강퇴당했다.
text.server.kicked.invalidPassword = 잘못된 비밀번호 입니다!
text.server.kicked.clientOutdated = 현재 플레이중인 게임 버전이 낮습니다!\n게임을 업데이트 해 주세요.
text.server.kicked.serverOutdated = 이 서버는 현재 클라이언트보다 낮은 버전의 서버입니다!\n서버장에게 업데이트를 요청하세요!
text.server.kicked.banned = 당신은 서버에서 차단되었습니다.
text.server.kicked.recentKick = 최근에 강제 퇴장되었습니다.\n잠시 후에 다시 입장 해 주세요.
text.server.kicked.nameInUse = 이미 서버 안에 같은 닉네임을 사용하는 유저가 있습니다!
text.server.kicked.idInUse = 당신은 이미 서버에 접속하고 있습니다!\n두 계정을 한 서버에 접속하는 것은 허용되지 않습니다.
text.server.connected = {0} 님이 서버에 입장했습니다.
text.server.disconnected = {0} 님이 서버에서 나갔습니다.
text.nohost = 커스텀 맵은 서버호스팅이 불가능합니다!
text.server.kicked.kick=당신은 서버에서 추방되었습니다!
text.server.kicked.fastShoot=당신은 총을 너무 빨리 발사했습니다.
text.server.kicked.invalidPassword=알 수 없는 비밀번호 입니다!
text.server.kicked.clientOutdated=오래된 버전의 클라이언트 입니다! 게임을 업데이트 세요!
text.server.kicked.serverOutdated=오래된 버전의 서버입니다! 서버 호스트 관리자에게 문의하세요!
text.server.kicked.banned=당신은 서버에서 밴 망치를 맞아 차단당했습니다.
text.server.kicked.recentKick=당신은 방금 추방처리 되었습니다.잠시 기다린 후에 접속 해 주세요.
text.server.kicked.nameInUse=이 닉네임이 이미 서버에서 사용중입니다.
text.server.kicked.nameEmpty=닉네임에는 반드시 영어 또는 숫자가 있어야 합니다.
text.server.kicked.idInUse=당신은 이미 서버에 접속중입니다! 다중 계정은 허용되지 않습니다.
text.server.kicked.customClient=이 서버는 커스텀 빌드를 지원하지 않습니다. 공식 버전을 사용하세요.
text.server.connected={0} 님이 접속했습니다.
text.server.disconnected={0} 님이 나갔습니다.
text.nohost=커스텀 맵을 호스트 할 수 없습니다!
text.host.info=[accent]호스트[] 버튼은 현재 네트워크의 [scarlet]6567[] 과 [scarlet]6568[] 포트를 사용합니다.\n[LIGHY_GRAY]같은 Wi-Fi 또는 로컬 네트워크[] 에서 서버 목록을 볼 수 있습니다.\n\n만약 플레이어들이 이 IP를 통해 어디에서나 연결할 수 있게 하고 싶다면, 공유기 설정에서 [accent]포트 포워딩[]을 해야 합니다.\n\n[LIGHT_GRAY]참고 : LAN 게임 연결에 문제가 있는 사람이 있다면, 방화벽 설정에서 Mindustry 가 로컬 네트워크에 액세스하도록 허용했는지 확인 해 주세요.
text.join.info=여기서 [accent]서버 IP[]를 입력하여 다른 서버에 접속할 수 있습니다.\n또는 [accent]로컬 네트워크(LAN)[] 서버를 검색하여 접속할 수 있습니다.\nLAN 및 WAN 멀티 플레이어 모두 지원됩니다.\n\n[LIGHT_GRAY]참고 : 여기에서는 자동으로 글로벌 서버를 추가하지 않습니다. IP로 다른 사람의 서버에 접속할려면 서버장에게 IP를 요청해야 합니다.
text.hostserver=서버 열기
text.host=호스트
text.hosting = [accent]서버여는중...
text.hosting=[accent]서버 여는중..
text.hosts.refresh=새로고침
text.hosts.discovering=LAN 게임 찾기
text.server.refreshing = 서버 새로고침
text.hosts.none = [lightgray]LAN 게임 없습니다!
text.host.invalid = [scarlet]호스트에 연결할 수 없습니다!
text.server.friendlyfire = 팀킬 허용
text.server.refreshing=서버 목록 새로고치는중...
text.hosts.none=[lightgray]LAN 게임을 찾을 수 없습니다!
text.host.invalid=[scarlet]서버에 연결할 수 없습니다!
text.server.friendlyfire=팀킬
text.trace=플레이어 추적
text.trace.playername=플레이어 이름: [accent]{0}
text.trace.ip=IP : [accent]{0}
text.trace.id=고유 ID: [accent]{0}
text.trace.android=Android 클라이언트 : [accent]{0}
text.trace.modclient=수정된 클라이언트 : [accent]{0}
text.trace.totalblocksbroken = 총 파괴한 블록 : [accent]
text.trace.structureblocksbroken = 총 구조 블럭 파괴수 : [accent]
text.trace.lastblockbroken = 마지막으로 파괴한 블: [accent]{0}
text.trace.totalblocksplaced = 총 설치한 블 : [accent]{0}
text.trace.lastblockplaced = 마지막으로 설치한 블록 : [accent]
text.trace.totalblocksbroken=블럭 파괴 수: [accent]{0}
text.trace.structureblocksbroken=총 구조 블럭 파괴 수: [accent]{0}
text.trace.lastblockbroken=마지막으로 파괴한 블: [accent]{0}
text.trace.totalblocksplaced=총 설치한 블 수: [accent]{0}
text.trace.lastblockplaced=마지막으로 설치한 블록: [accent]{0}
text.invalidid=잘못된 클라이언트 ID 입니다! 공식 Mindustry 으로 버그 보고서를 제출 해 주세요.
text.server.bans = 차단된 유저
text.server.bans=차단된 유저
text.server.bans.none=차단된 플레이어가 없습니다.
text.server.admins=관리자들
text.server.admins.none=관리자가 없습니다!
@@ -84,12 +91,11 @@ text.server.edit = 서버 수정
text.server.outdated=[crimson]서버 버전이 낮습니다![]
text.server.outdated.client=[Crimson]클라이언트 버전이 낮습니다![]
text.server.version=[lightgray]버전 : {0}
text.server.custombuild = [노란색]수정된 빌드
text.server.custombuild=[yellow]커스텀 서버
text.confirmban=이 플레이어를 차단하시겠습니까?
text.confirmunban = 이 플레이어를 차단 해제 하시겠습니까?
text.confirmunban=이 플레이어를 차단하시겠습니까?
text.confirmadmin=이 플레이어를 관리자로 설정 하시겠습니까?
text.confirmunadmin=이 플레이어의 관리자 상태를 해제하시겠습니까?
text.joingame.byip = IP로 참가하기...
text.joingame.title=게임 참가
text.joingame.ip=IP:
text.disconnect=서버와 연결이 해제되었습니다.
@@ -101,493 +107,396 @@ text.server.port = 포트:
text.server.addressinuse=이 주소는 이미 사용중입니다!
text.server.invalidport=포트 번호가 잘못되었습니다.
text.server.error=[crimson]{0}[orange]서버를 호스팅 하는데 오류가 발생했습니다.[]
text.tutorial.back = < 이전
text.tutorial.next = 다음 >
text.save.new = 새로 저장
text.save.overwrite = 이 저장 슬롯을 덮어씌우겠습니까?
text.overwrite = 덮어쓰기
text.save.none = 저장 파일을 찾지 못했습니다!
text.saveload = [accent]저장중...
text.savefail = 게임을 저장하지 못했습니다!
text.save.delete.confirm = 이 저장파일을 삭제 하시겠습니까?
text.save.delete = 삭제
text.save.export = 저장파일 내보내기
text.save.import.invalid = [orange] 저장파일이 유효한 파일이 아닙니다!\n\n다른 디바이스에 있는 커스텀 맵을 가져오는건 작동하지 않습니다.
text.save.import.fail = [crimson]저장파일을 불러오지 못함: [orange]{0}
text.save.new=새로 저장\n
text.save.overwrite=이 저장 슬롯을 덮어씌우겠습니까?\n
text.overwrite=덮어쓰기\n
text.save.none=저장 파일을 찾지 못했습니다!\n
text.saveload=[accent]저장중...\n
text.savefail=게임을 저장하지 못했습니다!\n
text.save.delete.confirm=이 저장파일을 삭제 하시겠습니까?\n
text.save.delete=삭제\n
text.save.export=저장파일 내보내기\n
text.save.import.invalid=[orange]저장 상태가 정상이 아닙니다!
text.save.import.fail=[crimson]저장파일을 불러오지 못함: [orange]{0}\n
text.save.export.fail=[crimson]저장파일을 내보내지 못함: [orange]{0}
text.save.import = 저장파일 불러오기
text.save.newslot = 저장 파일이름 :
text.save.rename = 이름 변경
text.save.rename.text = 새 이름 :
text.selectslot = 저장슬롯을 선택하십시오.
text.slot = [accent]{0}번째 슬롯
text.save.corrupted = [orange]저장파일이 손상되었습니다!
text.empty = <비어있음>
text.on = 켜기
text.off = 끄기
text.save.import=저장파일 불러오기\n
text.save.newslot=저장 파일이름 :\n
text.save.rename=이름 변경\n
text.save.rename.text=새 이름 :\n
text.selectslot=저장슬롯을 선택하십시오.\n
text.slot=[accent]{0}번째 슬롯\n
text.save.corrupted=[orange]세이브 파일이 손상되었거나 잘못된 파일입니다!만약 게임을 업데이트 했다면 이것은 아마 저장 형식 변경일 것이고, 이것은 버그가 [scarlet]아닙니다[].\n\n
text.empty=<비어있음>\n
text.on=켜기\n
text.off=끄기\n
text.save.autosave=자동저장: {0}
text.save.map=맵 : {0}
text.save.wave = {0} 단계
text.save.wave={0} 웨이브
text.save.difficulty=난이도: {0}
text.save.date=마지막 저장 날짜 : {0}
text.confirm=확인
text.delete = 삭제
text.ok =
text.delete=삭제\n
text.ok=
text.open=열기
text.cancel=취소
text.openlink=링크 열기
text.copylink=링크 복사
text.back = 뒤로
text.quit.confirm = 종료 하시겠습니까?
text.back=뒤로가기
text.quit.confirm=정말로 종료하시겠습니까?
text.changelog.title=변경사항
text.changelog.loading = 업데이트 내역 가져오는중..
text.changelog.error.android = [orange]업데이트 내역은 가끔 Android 4.4 이하에서 작동하지 않습니다.\n이것은 Android 내부 버그입니다.
text.changelog.error.ios = [orange]현재 업데이트 내역은 iOS 에서 지원하지 않습니다.
text.changelog.error = [searlet]업데이트 내역을 가져오는 오류가 발생했습니다!\n인터넷 연결을 확인 해 주세요.
text.changelog.current = [yellow][[현재 버전]
text.changelog.loading=변경사항 가져오는중...
text.changelog.error.android=[orange]게임 변경사항은 가끔 Android 4.4 이하에서 작동하지 않습니다.이것은 내부 Android 버그 때문입니다.
text.changelog.error.ios=[orange]현재 iOS에서는 변경 사항을 지원하지 않습니다.
text.changelog.error=[scarlet]게임 변경사항을 가져오는 오류가 발생했습니다![]\n인터넷 연결을 확인하십시오.
text.changelog.current=[orange][[현재 버전]
text.changelog.latest=[orange][[최신 버전]
text.loading = [accent]로딩중 ...
text.wave = [orange] {0} 단계
text.wave.waiting = 다음 단계까지 {0} 초 남음
text.waiting = 대기 중...
text.enemies = 남은 잡몹 수 : {0}
text.enemies.single = {0} 마리 남음
text.loading=[accent]불러오는중...
text.saving=[accent]저장중...\n
text.wave=[orange]{0} 웨이브
text.wave.waiting=다음 웨이브 시작까지 {0}초
text.waiting=기다리는중...
text.enemies=남은 몹 : {0}
text.enemies.single=몹이 {0}마리 남아있음
text.loadimage=사진 불러오기
text.saveimage=사진 저장
text.unknown=알 수 없음
text.custom = 관습
text.custom=커스텀
text.builtin=내장
text.map.delete.confirm = 이 맵을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다!
text.editor.openin = 편집기에서 열기
text.editor.oregen = 광물 생성
text.editor.oregen.info = 광물 생성:
text.map.delete.confirm=이 맵을 삭제하시겠습니까? 이 명령은 취소할 수 없습니다!
text.map.random=[accent]랜덤 맵
text.map.nospawn=이 맵에는 플레이어가 스폰 할 코어가 없습니다! 맵 편집기에서 [ROYAL]파란색[]코어를 맵에 추가하세요.
text.editor.slope=\\
text.editor.openin=편집기 열기
text.editor.oregen=광물 무작위 생성
text.editor.oregen.info=광물 무작위 생성:
text.editor.mapinfo=맵 정보
text.editor.author = 작성자:
text.editor.author=만든이:
text.editor.description=설명:
text.editor.name=이름:
text.editor.teams=
text.editor.badsize = [orange]사진 크기가 잘못되었습니다![]\n유효한 맵 크기 : {0}
text.editor.errorimageload = 파일을 불러오는 중 오류 발생 : [orange]{0}
text.editor.errorimagesave = 파일 저장 중 오류 발생 : [orange] {0}
text.editor.elevation=높이
text.editor.badsize=[orange]사진 크기가 잘못되었습니다![]유효한 맵 크기 : {0}
text.editor.errorimageload=[orange]{0}[] 파일을 불러오는데 오류가 발생했습니다.
text.editor.errorimagesave=[orange]{0}[] 파일 저장중 오류가 발생했습니다.
text.editor.generate=생성
text.editor.resize = 크기 조정
text.editor.resize=크기조정
text.editor.loadmap=맵 불러오기
text.editor.savemap=맵 저장
text.editor.saved=저장됨!
text.editor.save.noname = 지도에 이름이 없습니다! '지도 정보'메뉴에서 하나를 설정하십시오.
text.editor.save.overwrite = 귀하의지도는 내장 된지도를 덮어 씁니다! '지도 정보'메뉴에서 다른 이름을 선택하십시오.
text.editor.save.noname=지도에 이름이 없습니다! ' 정보' 메뉴에서 설정하세요.
text.editor.save.overwrite=이 맵의 이름은 기존에 있던 맵을 덮어씁니다! ' 정보' 메뉴에서 다른 이름을 선택하세요.
text.editor.import.exists=[scarlet]맵을 불러올 수 없음:[] 기존에 있던 '{0}' 맵이 이미 존재합니다!
text.editor.import=가져오기
text.editor.importmap = 지도 가져 오기
text.editor.importmap.description = 이미 존재하는지도 가져 오기
text.editor.importmap= 가져오기
text.editor.importmap.description=이미 존재하는 가져오기
text.editor.importfile=파일 가져오기
text.editor.importfile.description=외부 맵 파일 가져오기
text.editor.importimage = 지형 이미지 가져 오기
text.editor.importimage.description = 외부지도 이미지 파일 가져 오기
text.editor.importimage=지형 사진 가져오기
text.editor.importimage.description=외부 이미지 파일 가져오기
text.editor.export=내보내기
text.editor.exportfile=파일 내보내기
text.editor.exportfile.description = 지도 파일 내보내기
text.editor.exportfile.description= 파일 내보내기
text.editor.exportimage=지형 이미지 내보내기
text.editor.exportimage.description = 지도 이미지 파일 내보내기
text.editor.exportimage.description= 이미지 파일 내보내기
text.editor.loadimage=지형 가져오기
text.editor.saveimage=지형 내보내기
text.editor.unsaved = [scarlet]변경사항을 저장하지 않았습니다![]\n종료하시겠습니까?
text.editor.brushsize = 브러쉬 크기 :
text.editor.noplayerspawn = 이맵에는 플레이어의 스폰 지점이 없습니다!
text.editor.manyplayerspawns = 맵에는 플레이어 스폰 지점이 둘 이상 있을 수 없습니다!
text.editor.manyenemyspawns = 잡몹 스폰지점을 개 이상으로 지정할 수 없습니다!
text.editor.unsaved=[scarlet]변경사항을 저장하지 않았습니다![]\n정말로 나가시겠습니까?\n
text.editor.resizemap=맵 크기 조정
text.editor.resizebig = [scarlet]경고!\n[]맵 크기가 256이상일경우 랙이 걸리거나 게임이 불안정할 수 있습니다.
text.editor.mapname=맵 이름:
text.editor.overwrite = [accent]경고!\n이 작업은 기존 맵을 덮어게 됩니다!
text.editor.overwrite=[accept]경고!이 명령은 기존 맵을 덮어씌우게 됩니다.\n
text.editor.overwrite.confirm=[scarlet]경고![] 이 이름을 가진 맵이 이미 있습니다. 덮어 쓰시겠습니까?
text.editor.selectmap=불러올 맵 선택:
text.width=넓이:
text.height=높이:
text.randomize = 무작위
text.apply = 적용
text.update = 업데이트
text.menu=메뉴
text.play=플레이
text.load=불러오기
text.save=저장
text.language.restart = 언어 설정을 적용하려면 게임을 다시 시작하십시오.
text.fps={0} FPS
text.tps={0} TPS
text.ping=핑 : {0}ms
text.language.restart=언어를 변경하려면 게임을 다시 시작 해 주세요.
text.settings.language=언어
text.settings=설정
text.tutorial = 자습서
text.editor = 에디터
text.mapeditor = 에디터
text.donate = 기부하기
text.settings.reset = 기본값으로 재설정
text.settings.rebind = rebind
text.tutorial=게임 방법
text.editor=편집기
text.mapeditor=편집기
text.donate=기부
text.settings.reset=설정 초기화
text.settings.rebind=키 재설정
text.settings.controls=컨트롤
text.settings.game = 게임 설정
text.settings.sound = 소리 설정
text.settings.graphics = 그래픽 설정
text.upgrades = 업그레이드
text.purchased = [LIME]제작됨!
text.settings.game=게임
text.settings.sound=소리
text.settings.graphics=화면
text.upgrades=강화
text.purchased=[LIME]생성됨!
text.weapons=무기
text.paused = 일시
text.respawn = 남은 부활 시간 :
text.paused=일시
text.yes=
text.no=아니오
text.info.title=[accent]정보
text.error.title = [crimson]예기지 않은 오류가 발생했습니다!
text.error.crashmessage = [SCARLET]예기치 못한 오류가 발생하여, 무언가 충돌을 일으켰습니다\n[]이 오류에 대한 정확한 내용을 개발자에게 전달해 주세요!\n[ORANGE]anukendev@gmail.com[] 또는 [orange]Mindustry 디스코드[orange]로 보내주세요!
text.error.crashtitle = 오류 발생!
text.mode.break = 삭제 모드 :
text.mode.place = 설치 모드 :
placemode.hold.name = 라인
placemode.areadelete.name = 구역 삭제
placemode.touchdelete.name = 클릭하여 삭제
placemode.holddelete.name = 길게 눌러 삭제
placemode.none.name = 없음
placemode.touch.name = 클릭
placemode.cursor.name = 커서
text.blocks.extrainfo = [accent]추가 블록 정보:
text.error.title=[crimson]오류가 발생했습니다.
text.error.crashtitle=오류가 발생했습니다.
text.blocks.blockinfo=블록 정보
text.blocks.powercapacity = [powerinfo]전력 용량
text.blocks.powershot = [turretinfo]전력당 발사 수
text.blocks.powersecond = [powerinfo]초당 전력량
text.blocks.powerdraindamage = [powerinfo]전력 소모량당 데미지 량
text.blocks.shieldradius = [powerinfo]보호막 반경
text.blocks.itemspeedsecond = [iteminfo]초당 아이템 속도
text.blocks.range = [turretinfo]범위
text.blocks.size = [gray]크기
text.blocks.powerliquid = [powerinfo]전력당 액체량
text.blocks.maxliquidsecond = [liquidinfo]초당 최대 액체량
text.blocks.liquidcapacity = [liquidinfo]액체 저장
text.blocks.liquidsecond = [liquidinfo]초당 액체
text.blocks.damageshot = [turretinfo]1발당 데미지
text.blocks.ammocapacity = [turretinfo]탄약 적재
text.blocks.ammo = [turretinfo]탄약
text.blocks.ammoitem = [turretinfo]탄약당 아이템
text.blocks.maxitemssecond = [iteminfo]초당 최대 아이템 수
text.blocks.lasertilerange = [powerinfo]레이저 타일 범위
text.blocks.capacity = [iteminfo]용량
text.blocks.itemcapacity = [iteminfo]아이템 용량
text.blocks.maxpowergenerationsecond = [powerinfo]초당 최대 발전량
text.blocks.powergenerationsecond = [powerinfo]초당 발전량
text.blocks.generationsecondsitem = [powerinfo]초당 생성 아이템 수
text.blocks.input = [liquidinfo]입
text.blocks.inputliquid = [liquidinfo]입력 액체
text.blocks.inputitem = [liquidinfo]입력 아이템
text.blocks.output = [liquidinfo]출력
text.blocks.secondsitem = [liquidinfo]초당 아이템 수
text.blocks.maxpowertransfersecond = [powerinfo]초당 최대 전력 이송량
text.blocks.explosive = [orange]이 건물이 파괴되면 큰 폭발이 일어납니다!
text.blocks.repairssecond = [turretinfo]초당 수리
text.blocks.health = [healthstats]체력
text.blocks.inaccuracy = [turretinfo]명중하지 않을 확률
text.blocks.shots = [turretinfo]발사수
text.blocks.shotssecond = [turretinfo]초당 발사수
text.blocks.fuel = [craftinfo]연료
text.blocks.fuelduration = [craftinfo]연료 지속 시간
text.blocks.maxoutputsecond = [craftinfo]초당 최대 출력
text.blocks.inputcapacity = [craftinfo]초당 입력 수
text.blocks.outputcapacity = [craftinfo]초당 출력 수
text.blocks.poweritem = [powerinfo]전력당 아이템 수
text.placemode = 설치 모드
text.breakmode = 삭제 모드
text.health = 체력
text.blocks.powercapacity=최대 전력 용량
text.blocks.powershot=1발당 파워 소모량
text.blocks.targetsair=표적 공기
text.blocks.itemspeed=유닛 이동 속도
text.blocks.shootrange=공격 범위
text.blocks.size=블록 크기
text.blocks.liquidcapacity=최대 액체 용량
text.blocks.maxitemssecond=최대 아이템 보관량
text.blocks.powerrange=전력 범위
text.blocks.poweruse=전력 사용
text.blocks.inputitemcapacity=입력 아이템 용
text.blocks.outputitemcapacity=입력 아이템 용
text.blocks.itemcapacity=품목 용량
text.blocks.maxpowergeneration=최대 발전
text.blocks.powertransferspeed=전력 전송량
text.blocks.craftspeed=생산 속도
text.blocks.inputliquid=입력 액체
text.blocks.inputliquidaux=보조 액체
text.blocks.inputitem=입력 아이템
text.blocks.inputitems=입력 아이템들
text.blocks.outputitem=출력 아이템
text.blocks.drilltier=드릴
text.blocks.drillspeed=기본 드릴 속도
text.blocks.liquidoutput=액체 출
text.blocks.liquiduse=액체 사용
text.blocks.coolant=냉각제
text.blocks.coolantuse=냉각수 사용
text.blocks.inputliquidfuel=연료 액
text.blocks.liquidfueluse=액체 연료 사용
text.blocks.explosive=이게 터지면 펑 터지면서 주변 블록에게 피해를 입힙니다!
text.blocks.health=
text.blocks.inaccuracy=빗맞을 확률
text.blocks.shots=총알
text.blocks.reload=재장전
text.blocks.inputfuel=연료
text.blocks.fuelburntime=연료 연소 시간
text.blocks.inputcapacity=입력 용량
text.blocks.outputcapacity=출력 용량
text.blocks.requird=요구사항:
text.unit.blocks=블록들
text.unit.powersecond=초당 전력 단위
text.unit.liquidsecond=액체 단위 / 초
text.unit.itemssecond=항목 / 초
text.unit.pixelssecond=초당 픽셀
text.unit.liquidunits=액상 단위
text.unit.powerunits=전원 장치
text.unit.degrees=
text.unit.seconds=
text.unit.none=
text.unit.items=아이템
text.category.general=일반
text.category.power=전력
text.category.liquids=액체
text.category.items=아이템
text.category.crafting=제작
text.category.shooting=발사
setting.difficulty.easy=쉬움
setting.difficulty.normal=보통
setting.difficulty.hard=어려움
setting.difficulty.insane = 미쳤음
setting.difficulty.purge = 청소기
setting.difficulty.insane=[#1E90FF]K[#ADFF2F]O[#FFB6C1]R[#B0C4DE]E[#FF4500]A
setting.difficulty.purge=[#1E90FF]K[#ADFF2F]O[#FFB6C1]R[#B0C4DE]E[#FF4500]A
setting.difficulty.name=난이도:
setting.screenshake.name = 화면 흔들
setting.smoothcam.name = 부드러운 카메라 이동
setting.screenshake.name=화면 흔들
setting.indicators.name=적 위치 표시 화살표
setting.effects.name=화면 효과
setting.sensitivity.name=컨트롤러 감도
setting.saveinterval.name=자동저장 간격
setting.seconds =
setting.seconds={0}
setting.fullscreen.name=전체 화면
setting.multithread.name = 멀티 스레드 활성화
setting.fps.name = 초당 프레임 표시
setting.vsync.name = 수직동기
setting.lasers.name = 파워 레이 표시
setting.previewopacity.name = 블럭 배치 미리보기 표시
setting.healthbars.name = 체력 막대바 표시
setting.pixelate.name = 화면 픽셀화
setting.musicvol.name = 악 볼륨
setting.mutemusic.name = 음악 끄
setting.sfxvol.name = 효과음 볼륨
setting.mutesound.name = 효과음 끄기
setting.multithread.name=멀티 스레드
setting.fps.name=FPS 표시
setting.vsync.name=VSync 활성
setting.lasers.name=파워 레이 표시
setting.healthbars.name=몹 체력바 표시
setting.minimap.name=미니맵 보기
setting.musicvol.name=음악 크기
setting.mutemusic.name=소거
setting.sfxvol.name=효과음 크
setting.mutesound.name=소리 끄기
map.maze.name=미로
map.fortress.name=요새
map.sinkhole.name=싱크홀
map.caves.name=동굴
map.volcano.name=화산
map.caldera.name=칼데라
map.scorch.name = 타버린 세계
map.scorch.name=타버
map.desert.name=사막
map.island.name=
map.grassland.name = 초원
map.tundra.name =
map.grassland.name=목초지
map.tundra.name=
map.spiral.name=나선
map.tutorial.name = 자습서
tutorial.intro.text = [yellow] 자습서에 오신 것을 환영합니다.[] 시작하려면 '다음'을 누르세요.
tutorial.moveDesktop.text = 이동하려면 [orange] [[WASD] [] 키를 사용하세요. 또한, [orange]Shift[]를 누르고 있으면 빠르게 이동할 수 있습니다. [orange]CTRL[]을 누른 상태에서 [orange] 마우스 스크롤 휠 []을 사용하여 확대 또는 축소 할 수 있습니다
tutorial.shoot.text = 마우스를 사용하여 조준하고 [orange]왼쪽 마우스 버튼[]을 눌러 쏘세요. 저기 노란색 [yellow]타겟[]앞에서 연습해보세요.
tutorial.moveAndroid.text = 화면을 이동하기 위해서 한손가락으로 드래그 해 보세요. 확대 및 축소는 두손가락으로 하시면 됩니다.
tutorial.placeSelect.text = 오른쪽 하단에 있는 블럭 메뉴에서 [yellow]컨베이어[]를 선택하세요.
tutorial.placeConveyorDesktop.text = [orange][[마우스 스크롤 휠][]을 사용하여 컨베이어를[orange]앞 방향[]으로 돌린다음 [yellow]표시된 위치[]에 [orange][[왼쪽 마우스 버튼][]을 이용해 컨베이어를 설치 합니다.
tutorial.placeConveyorAndroid.text = 컨베이어를 회전 시키기 위해[orange][[회전 버튼][]를 누르고 [orange]앞방향[]을 보게 한후, 한손가락으로 [yellow]표시된 위치[]에 [orange][[확인][] 버튼으로 설치하세요.
tutorial.placeConveyorAndroidInfo.text = 아니면 왼쪽 하단에 [orange][[설치 모드][]를 눌러 클릭모드로 전환하고 클릭만으로 블럭을 배치 할수 있습니다.\n방향을 바꾸려면 왼쪽하단 5번째 칸에 있는 화살표로 바꾸시면 됩니다.\n[yellow]다음[]을 눌러 한번 해 보세요.
tutorial.placeDrill.text = 이제, 표시된 위치에 [yellow]돌 드릴[]을 선택하여 배치하세요.
tutorial.blockInfo.text = 블록에 대해 더 자세히 알고 싶다면, 오른쪽 상단에있는 [orange]물음표[]를 눌러 설명을 읽으세요.
tutorial.deselectDesktop.text = [orange][[마우스 오른쪽 버튼][]을 사용하여 블록을 선택 해제할 수 있습니다.
tutorial.deselectAndroid.text = [orange]X[] 버튼을 눌러 블록을 선택 해제할 수 있습니다.
tutorial.drillPlaced.text = 드릴은 이제 [yellow] 돌[]을 생산할 것이고, 컨베이어로 내보낸 다음 [yellow]코어[]로 옮길 것입니다.
tutorial.drillInfo.text = 각 광석은 그에 맞는 드릴이 필요합니다. 돌은 돌 드릴이 필요하고, 철은 철 드릴이 필요합니다.
tutorial.drillPlaced2.text = 아이템을 코어로 이동하면 왼쪽 상단의 [orange]아이템 인벤토리[]에 표시됩니다.\n인벤토리의 아이템은 블록을 배치할때 사용됩니다.
tutorial.moreDrills.text = 드릴과 컨베이어는 많이 연결할 수 있습니다. 이것처럼요.
tutorial.deleteBlock.text = 블록을 삭제하고 싶으면 [orange]마우스 오른쪽 버튼[]을 클릭하여 블록을 삭제할 수 있습니다.\n이 컨베이어를 삭제 해 보세요.
tutorial.deleteBlockAndroid.text = 왼쪽 하단에 있는 [orange]블록 삭제모드[]안에 [orange]십자선[] 아이콘을 선택한 다음 블록을 눌러 삭제할 수 있습니다. 이 컨베이어를 삭제해 보세요.
tutorial.placeTurret.text = 이제[yellow] 표시된 위치 []에 [yellow]포탑[]을 선택하여 배치하세요.
tutorial.placedTurretAmmo.text = 이 포탑은 컨베이어에서 [yellow]탄약[]을 받습니다.\n포탑에 커서를 가리키면 [green]녹색 막대[]를 통해 얼마나 많은 탄약이 포탑 안에있는지 확인 할수 있습니다.
tutorial.turretExplanation.text = 포탑은 충분한 탄약을 보유하고있는 한, 범위 내의 가장 가까운 적을 향해 자동으로 공격합니다.
tutorial.waves.text = [yellow]60[]초 마다, 웨이브가 시작되고[coral]적[]들이 특정 위치에 스폰되어 코어를 파괴하기위해 올 것 입니다.
tutorial.coreDestruction.text = 당신의 목표는 [yellow]코어를 최대한 오래동안 방어하는 것[]입니다. 코어가 파괴되면 [coral]게임에서 패배합니다[].
tutorial.pausingDesktop.text = 휴식을 취해야 하는 경우, 왼쪽 상단에 있는 [orange]일시정지 버튼[] 을 누르거나 [orange]스페이스바[] 를 눌러 게임을 일시정지 시킬 수 있습니다.\n일시정지된 상태에서 블록을 선택하고 배치할 수는 있지만, 움직이거나 공격할 수는 없습니다.
tutorial.pausingAndroid.text = 휴식을 취해야 하는 경우, 왼쪽 상단에 있는 [orange]일시정지 버튼[] 을 눌러 게임을 일시정지 시킬 수 있습니다.\n일시정지된 상태에서 블록을 선택하고 배치할 수는 있지만, 움직이거나 공격할 수는 없습니다.
tutorial.purchaseWeapons.text = 왼쪽 하단에 있는 업그레이드 메뉴를 열어 새로운 [yellow]무기[]를 구입할 수 있습니다.
tutorial.switchWeapons.text = 왼쪽 하단의 아이콘을 클릭하거나 숫자 [orange][[1-9][] 버튼을 사용하여 무기를 바꿀 수 있습니다.
tutorial.spawnWave.text = 웨이브가 시작되었습니다. 적들을 파괴하세요!
tutorial.pumpDesc.text = 이후 웨이브에선 발전기 또는 추출기용 액체를 사용하기 위해 [yellow]펌프[] 를 사용해야 할 수도 있습니다
tutorial.pumpPlace.text = 펌프는 드릴과 유사하게 작동하지만, 아이템 대신 액체를 생산합니다. [yellow]지정된 위치[]에 펌프를 놓으세요.
tutorial.conduitUse.text = 이제 [orange]파이프[] 를 펌프에서 멀리 떨어트려 두세요
tutorial.conduitUse2.text = 하나 더...
tutorial.conduitUse3.text = 하나 더...
tutorial.generator.text = 이제 파이프 끝 부분에 [orange]석유 발전기[] 블록을 놓으세요.
tutorial.generatorExplain.text = 이제 이 발전기는 석유에서 [yellow]전력[]을 생성합니다.
tutorial.lasers.text = 전력은 [yellow]파워 레이저[]를 통해 전송됩니다. 회전한 후 이곳에 배치하세요.
tutorial.laserExplain.text = 발전기가 이제 레이저 블록으로 전력을 보냅니다.\n[yellow]불투명[] 광선은 현재 전력을 전송 중임을 의미하고 [yellow]투명[] 광선은 전송하지 않음을 의미합니다.
tutorial.laserMore.text = 블록 위로 마우스를 올리고 상단의 [yellow]노란 막대[]를 확인하여 블록의 전력을 볼 수 있습니다
tutorial.healingTurret.text = 이 레이저는 [lime]수리포탑[] 에 전력을 공급하는데 사용합니다. 여기에 하나 놓으세요
tutorial.healingTurretExplain.text = 전력이 있는 한 이 포탑은 [lime]주변 블록을 수리[] 합니다.\n시간이 있을 때 가능한 빨리 기지에 하나가 있는지 확인하세요!
tutorial.smeltery.text = 많은 블록들은[orange]강철[]을 필요로 합니다.\n[orange]제련소[]를 선택해 여기에 놓으세요.
tutorial.smelterySetup.text = 이 제련소는 석탄을 연료로 사용하며 철을 넣으면 [orange]강철[] 을 생산할 것입니다.
tutorial.tunnelExplain.text = 또한 아이템이 [orange]터널 블록[]을 통해 지나가고 다른 쪽에서 돌 블록을 통과하여 나옵니다.\n터널은 최대 2블록까지만 통과할 수 있습니
tutorial.end.text = 이것으로 자습서를 마칩니다! 행운을 빕니다!
text.keybind.title = 키 지정
keybind.move_x.name = x축 이동
keybind.move_y.name = y축 이동
map.tutorial.name=게임 방법
text.keybind.title=키 바인딩
keybind.move_x.name=오른쪽/왼쪽 이동
keybind.move_y.name=위쪽/아래쪽 이동
keybind.select.name=선택
keybind.break.name = 블럭 삭제
keybind.shoot.name = 발사
keybind.zoom_hold.name = 확대 할때 누를 버튼
keybind.break.name=파괴
keybind.shoot.name=사격
keybind.zoom_hold.name=길게눌러 확대
keybind.zoom.name=확대
keybind.block_info.name = 정보
keybind.block_info.name= 정보
keybind.menu.name=메뉴
keybind.pause.name = 일시
keybind.pause.name=일시
keybind.dash.name=달리기
keybind.chat.name = 대화창
keybind.player_list.name = player_list
keybind.chat.name=채팅
keybind.player_list.name=플레이어 목록
keybind.console.name=콘솔
keybind.rotate_alt.name = 반대로 돌기
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=회전
keybind.weapon_1.name = 무기 단축키_1
keybind.weapon_2.name = 무기 단축키_2
keybind.weapon_3.name = 무기 단축키_3
keybind.weapon_4.name = 무기 단축키_4
keybind.weapon_5.name = 무기 단축키_5
keybind.weapon_6.name = 무기 단축키_6
mode.text.help.title = 모드 설명
mode.waves.name = 단계
mode.waves.description = 이것은 일반 모드입니다. 제한된 자원과 자동으로 웨이브가 시작됩니다.
mode.text.help.title=도움말
mode.waves.name=웨이브
mode.waves.description=이것은 일반 모드입니다. 제한된 자원과 자동으로 다음 웨이브가 시작됩니다.
mode.sandbox.name=샌드박스
mode.sandbox.description = 무한한 자원과 웨이브 시작하는 타이머가 없습니다.
mode.freebuild.name = 자유 건
mode.freebuild.description = 제한된 자원을 가지고 있으며, 웨이브 시작하기 위한 타이머가 없습니다.
upgrade.standard-mech.name = 기본
upgrade.standard-mech.description = 그냥 기본 총.
upgrade.standard-ship.name = 기본 배
upgrade.standard-ship.description = 그냥 기본 배
upgrade.blaster.name = 래스터
upgrade.blaster.description = 그냥 느리고 약한 총알.
upgrade.triblaster.name = 3단 블래스터
upgrade.triblaster.description = 3발을 동시에 쏘는 총.
upgrade.clustergun.name = 유탄발사기
upgrade.clustergun.description = 적에 맞으면 폭발하거나, 일정시간 후 터집니다.
upgrade.beam.name = 레이저 캐논
upgrade.beam.description = 적을 통과하는 장거리 레이저 빔을 쏩니다
upgrade.vulcan.name = 벌칸
upgrade.vulcan.description = 빠른 속도로 총을 쏩니다
upgrade.shockgun.name = 샷건
upgrade.shockgun.description = 충전된 총알을 산탄처럼 쏘는 총
mode.sandbox.description=무한한 자원과 다음 웨이브 시작을 위한 타이머가 없습니다.
mode.freebuild.name=자유 건
mode.freebuild.description=제한된 자원과 다음 웨이브 시작 위한 타이머가 없습니다.
content.item.name=아이템
content.liquid.name=액체
content.unit-type.name=종류
content.recipe.name=록들
item.stone.name=
item.iron.name =
item.stone.description=흔히 찾을 수 있는 자원. 바닥에서 돌을 캐거나 용암을 사용하여 얻을 수 있습니다.
item.tungsten.name=텅스텐
item.tungsten.description=일반적이지만 매우 유용한 건축 재료. 드릴 및 생산 건물, 제련소와 같은 내열성 블록에 사용됩니다.
item.lead.name=리드
item.lead.description=기본적인 시작 자원. 전자 및 액체 수송 블록에서 광범위하게 사용됩니다.
item.coal.name=석탄
item.steel.name = 강철
item.coal.description=일반적이고 쉽게 이용할 수 있는 연료.
item.carbide.name=합금
item.carbide.description=텅스텐과 탄소로 만든 합금. 고급 운송 블록 및 상위 티어 드릴에 사용됩니다.
item.titanium.name=티타늄
item.dirium.name = 합금
item.titanium.description=물 운반이나 드릴, 비행기등에서 재료로 사용되는 자원입니다.
item.thorium.name=토륨
item.thorium.description=건물 탄약 또는 핵연료로 사용되는 방사성 금속.
item.silicon.name=실리콘
item.silcion.description=매우 유용한 반도체로, 태양 전지 패널과 복잡한 전자 제품에 응용할 수 있습니다.
item.plastanium.name=플라스타늄
item.plastanium.description=고급 항공기 및 분열 탄약에 사용되는 가벼운 연성 재료.
item.phase-matter.name=메타
item.surge-alloy.name=설합금
item.biomatter.name=바이오메터
item.biomatter.description=이것은 유기농 덤불입니다! 석유로 전환하거나 기본 연료로 사용됩니다.
item.sand.name=모래
item.sand.description=합금 및 플럭스 모두에서 제련시 광범위하게 사용되는 일반적인 재료.
item.blast-compound.name=폭발 화합물
item.blast-compound.description=폭탄 및 폭발물에 사용되는 휘발성 화합물.연료로 불을 낼 수 있지만, 별로 추천하지는 않습니다.
item.pyratite.name=피러레이트
item.pyratite.description=화염 무기에 사용되는 엄청난 가연성 물질.
liquid.water.name=
liquid.plasma.name = 플라즈마
liquid.lava.name=용암
liquid.oil.name=석유
block.weaponfactory.name = 무기 공장
block.weaponfactory.fulldescription = 플레이어용 무기를 만드는 데 사용됩니다.\n클릭하여 사용하십시오.\n코어에 있는 자원을 사용합니다.
block.air.name = 공기
block.blockpart.name = 블록파트
block.deepwater.name = 깊은 물
block.water.name =
block.lava.name = 용암
block.oil.name = 석유
block.stone.name =
block.blackstone.name = 검은 돌
block.iron.name =
block.coal.name = 석탄
block.titanium.name = 티타늄
block.thorium.name = 토륨
block.dirt.name =
block.sand.name = 모래
block.ice.name = 얼음
block.snow.name =
block.grass.name = 잔디
block.sandblock.name = 모래블럭
block.snowblock.name = 얼음 블럭
block.stoneblock.name = 돌 블럭
block.blackstoneblock.name = 검은 돌 블럭
block.grassblock.name = 잔디 블럭
block.mossblock.name = 이끼블럭
block.shrub.name = 덤불
block.rock.name = 바위
block.icerock.name = 얼음 덩어리
block.blackrock.name = 검은 바위
block.dirtblock.name = 흙 블럭
block.stonewall.name = 돌 벽
block.stonewall.fulldescription = 가장 안좋은 그냥 돌벽. 초반에 코어와 포탑을 보호하는데 사용 할 수 있습니다.
block.ironwall.name = 철 벽
block.ironwall.fulldescription = 기본적인 벽 블럭. 적으로부터 보호해 줍니다.
block.steelwall.name = 강철 벽
block.steelwall.fulldescription = 나름 좋은 벽 블럭. 적으로부터의 공격을 대부분 보호해 줍니다.
block.titaniumwall.name = 티타늄 벽
block.titaniumwall.fulldescription = 강력한 벽 블럭. 적으로부터의 공격을 거의 보호해 줍니다
block.duriumwall.name = 합금 벽
block.duriumwall.fulldescription = 매우 강력한 벽 블록. 게임내에서 가장 강력한 벽 입니다.
block.compositewall.name = 복합 벽
block.steelwall-large.name = 대형 강철 벽
block.steelwall-large.fulldescription = 좋은 벽 블럭. 2x2 크기에 큰 벽입니다.
block.titaniumwall-large.name = 대형 티타늄 벽
block.titaniumwall-large.fulldescription = 강력한 벽 블럭. 2x2 크기에 큰 벽입니다.
block.duriumwall-large.name = 대형 디리듐 벽
block.duriumwall-large.fulldescription = 매우 강력한 벽 블록. 2x2 크기에 큰 벽입니다.
block.titaniumshieldwall.name = 보호막 벽
block.titaniumshieldwall.fulldescription = 보호막이 내장 된 강력한 벽 블럭입니다.\n적의 총알을 흡수할 때 에너지를 사용하기 때문에 전력이 필요합니다.\n전력을 공급할때 무선 공급기를 사용하면 편리합니다 .
block.repairturret.name = 수리포탑
block.repairturret.fulldescription = 범위 안에 있는 손상된 블록을 느린 속도로 수리합니다. 소량의 전력을 사용합니다.
block.megarepairturret.name = 수리포탑 II
block.megarepairturret.fulldescription = 범위 안에 있는 손상된 블록을 수리합니다. 전력을 사용합니다.
block.shieldgenerator.name = 보호막 발전기
block.shieldgenerator.fulldescription = 고급 보호 블록. 반경 내의 모든 블록을 공격으로부터 보호합니다.\n작동 중일 때는 느린 속도로 전력을 사용하지만 공격을 받았을 시 그만큼의 전력을 소모하게 됩니다.
liquid.cryofluid.name=크라이오플루드
text.item.explosiveness=[LIGHT_GRAY]폭발력 : {0}
text.item.flammability=[LIGHT_GRAY]인화성 : {0}
text.item.radioactivity=[LIGHT_GRAY]방사능 : {0}
text.item.fluxiness=[LIGHT_GRAY]플렉스 파워 : {0}
text.item.hardness=[LIGHT_GRAY]강도 : {0}
text.liquid.heatcapacity=[LIGHT_GRAY]발열 용량 : {0}
text.liquid.viscosity=[LIGHT_GRAY]점도 : {0}
text.liquid.temperature=[LIGHT_GRAY]온도 : {0}
block.tungsten-wall.name=텅스텐 벽
block.tungsten-wall-large.name=큰 텅스텐 벽
block.carbide-wall.name=합금벽
block.carbide-wall-large.name=대형 합금벽
block.thorium-wall.name=토룸 벽
block.thorium-wall-large.name=대형 토륨 벽
block.door.name=
block.door.fulldescription = 블록을 탭하여 열거나 닫을 수 있습니다.
block.door-large.name = 대형 문
block.door-large.fulldescription = 블록을 탭하여 열거나 닫을 수 있습니다. 2x2 크기 입니다.
block.conduit.name = 파이프
block.conduit.fulldescription = 기본 액체 이송 블록. 컨베이어처럼 작동하지만 액체를 운반하는데 쓰입니다.\n펌프 또는 다른 파이프와 함께 사용하는 것이 가장 좋습니다.\n적과 플레이어가 액체를 건널때 쓰일수도 있습니다.
block.pulseconduit.name = 펄스 파이프
block.pulseconduit.fulldescription = 파이프에 상위호환, 액체를 더 빨리 운반하고 파이프보다 더 많이 저장합니다.
block.liquidrouter.name = 액체 분배기
block.liquidrouter.fulldescription = 분배기와 유사하게 작동합니다.\n한 방향으로 액체를 입력받아 다른 방향으로 출력합니다. 하나의 파이프에서 다른 파이프들로 액체를 분배할 때 유용합니다.
block.door-large.name=큰 문
block.duo.name=샷건
block.scorch.name=스코치
block.hail.name=헤일
block.lancer.name=랜서
block.conveyor.name=컨베이어
block.conveyor.fulldescription = 기본 컨베이어.\n아이템을 앞으로 운반시켜 자동으로 포탑이나 제작기에 넣어 줍니다.\n회전이 가능하고 적과 플레이어의 다리가 될 수도 있습니다.
block.steelconveyor.name = 강철 컨베이어
block.steelconveyor.fulldescription = 빠른 컨베이어, 표준 컨베이어보다 빠르게 아이템을 운반합니다.
block.poweredconveyor.name = 펄스 컨베이어
block.poweredconveyor.fulldescription = 가장 빠른 컨베이어. 강철 컨베이어보다 매우 항목을 이동합니다.
block.router.name = 분배기
block.router.fulldescription = 한 방향으로 아이템을 받아 다른 방향으로 출력합니다.\n하나의 컨베이어에서 다른 컨베이어들로 아이템을 분배할 때 유용합니다
block.titanium-conveyor.name=티타늄 컨베이어
block.junction.name=교차기
block.junction.fulldescription = 두 개의 컨베이어를 교차시키는 역할을합니다.\n교차된 위치의 다른 재료를 담고있는 2개의 컨베이어가 있는 상황에서 유용합니다.
block.conveyortunnel.name = 컨베이어 터널
block.conveyortunnel.fulldescription = 한블럭 단위로 아이템을 전송 합니다.\n이 블럭을 사용하려면 두 터널이 한블럭을 사이로 서로 반대 방향을 향하게하세요.
block.liquidjunction.name = 액체 교차기
block.liquidjunction.fulldescription = 교차기와 유사하며 두 개 파이프를 교차시키는 역할을합니다.\n교차된 위치의 다른 액체를 담고있는 2개의 파이프가 있는 상황에서 유용합니다.
block.liquiditemjunction.name = 액체 아이템 교차기
block.liquiditemjunction.fulldescription = 파이프와 컨베이어를 교차시키는 역할을합니다.
block.powerbooster.name = 무선 전력 공급기
block.powerbooster.fulldescription = 반경 내에 무선으로 전력을 공급합니다.
block.powerlaser.name = 파워 레이저
block.powerlaser.fulldescription = 반경 내에 바라보는 블록에 전력을 전송하는 레이저를 쏩니다.\n전력을 생성하지는 않고 발전기 또는 다른 레이저와 함께 사용하는 것이 가장 좋습니다.
block.powerlaserrouter.name = 레이저 분배기
block.powerlaserrouter.fulldescription = 한 번에 세 방향으로 전력을 전송하는 레이저를 쏩니다.\n하나의 발전기에서 여러 개의 블록에 전원을 공급해야하는 경우에 유용합니다.
block.powerlasercorner.name = 코너 레이저
block.powerlasercorner.fulldescription = 한 번에 두 방향으로 전력을 전송하는 레이저를 쏩니다.\n하나의 발전기에서 여러 개의 블록에 전원을 공급해야하는 상황에서 유용합니다
block.teleporter.name = 텔레포터
block.teleporter.fulldescription = 고급 아이템 전송 블록.\n텔레포터는 동일한 색깔의 다른 텔레포터에게 아이템을 전송합니다.\n같은 색의 텔레포터가 없다면 아무것도 하지 않습니다.\n동일한 색상의 여러 텔레포터가 있는 경우 임의의 하나에게 전송됩니다.\n전원을 사용하고, 눌러서 색깔을 바꿀수 있습니다.
block.splitter.name=스플리터
block.splitter.description=아이템을 넣는 즉시 컨베이어를 반대 방향으로 바꾼 후 내보냅니다.
block.router.name=분배기
block.router.description=아이템을 넣으면 다른 방향으로 아이템을 번갈아서 내보냅니다.
block.distributor.name=디스토이어
block.distributor.description=아이템을 8방향으로 나눌 수있는 스플리터.
block.sorter.name=필터
block.sorter.fulldescription = 유형별로 아이템을 정렬합니다.\n통과할 아이템은 블록의 색상으로 표시됩니다.\n통과된 아이템은 앞으로 출력 되고 나머지는 왼쪽과 오른쪽으로 출력됩니다.
block.splitter.name = 분리
block.splitter.fulldescription = 들어오는 자원을 두 방향으로 분할해서 출력합니다.\n왼쪽과 오른쪽만 출력하고 라우터와 달리 내부 저장공간이 없고 즉시 출력됩니다.
block.core.name = 코어
block.pump.name = 펌프
block.pump.fulldescription = 물, 용암 또는 기름과 같은 액체를 퍼올립니다.\n붙어있는 파이프에게 액체를 배출합니다.
block.fluxpump.name = 플럭스 펌프
block.fluxpump.fulldescription = 빠른 펌프. 더 많은 액체를 저장하고 액체를 더 빠르게 퍼올립니다.
block.sorter.description=아이템을 받아서 설정된 아이템일 경우 바로 앞으로 통과하며, 그렇지 않을 경우 옆으로 통과합니다.
block.overflow-gate.name=오버플로 게이트
block.overflow-gate.description=정면 경로가 차단된 경우 왼쪽과 오른쪽으로만 출력하는 복합 스플리터와 분배기 입니다.
block.bridgeconveyor.name=터널
block.bridgeconveyor.description=최대 2블록을 건너 뛰고 자원을 운반하게 해 주는 블럭.
block.smelter.name=제련소
block.smelter.fulldescription = 필수적인 제작 블록.\n1개의 철과 1개의 석탄을 연료로 넣으면 하나의 강철을 생성합니다.\n막힘을 방지하기 위해 철과 석탄을 다른 컨베이어에 넣는 것이 좋습니다.
block.crucible.name = 합금 제련소
block.crucible.fulldescription = 고급 제작 블록.\n티타늄 1개, 강철 1개, 석탄 1개를 연료로 넣으면 하나의 합금을 출력합니다.\n막힘을 방지하기 위해 석탄, 강철 및 티타늄을 다른 컨베이어에 입력하는 것이 좋습니다.
block.coalpurifier.name = 석탄 추출기
block.coalpurifier.fulldescription = 간단한 추출기. 다량의 물과 돌이 공급되면 석탄을 생산합니다.
block.titaniumpurifier.name = 티타늄 추출기
block.titaniumpurifier.fulldescription = 기본 추출기 블록. 다량의 물과 철이 공급되면 티타늄을 생산합니다.
block.oilrefinery.name = 정유소
block.oilrefinery.fulldescription = 다량의 기름을 석탄으로 정제합니다.\n석탄이 부족할 때 석탄 기반 포탑에 연료를 공급하는 데 유용합니다.
block.stoneformer.name = 돌 생산기
block.stoneformer.fulldescription = 용암을 돌로 바꿉니다. 석탄 추출기용 돌을 대량 생산할 때 유용합니다.
block.siliconextractor.name = 실리콘 추출기
block.arc-smelter.name=아크 제련소
block.silicon-smelter.name=실리콘 제련소
block.phase-weaver.name=펄스 위버
block.pulverizer.name=분쇄기
block.quartzextractor.name = 석영 추출
block.lavasmelter.name = 용암 제련소
block.lavasmelter.fulldescription = 용암을 사용하여 철을 강철로 전환합니다. 제련소의 대안으로 쓸수 있습니다.\n석탄이 부족한 상황에서 유용합니다.
block.stonedrill.name = 돌 드릴
block.stonedrill.fulldescription = 필수 적인 드릴. 돌 타일 위에 놓을 때 느린속도로 채굴합니다.
block.irondrill.name = 철 드릴
block.irondrill.fulldescription = 기본 드릴. 철 광석 타일에 놓으면 느린속도로 철을 채굴합니다.
block.coaldrill.name = 석탄 드릴
block.coaldrill.fulldescription = 기본 드릴. 석탄 광석 타일 위에 놓으면 느린속도로 석탄을 채굴 합니다.
block.thoriumdrill.name = 토륨 드릴
block.thoriumdrill.fulldescription = 고급 드릴. 토륨 광석 타일에 이 블럭을 놓으면, 느린 속도로 토륨을 채굴합니다.
block.titaniumdrill.name = 티타늄 드릴
block.titaniumdrill.fulldescription = 고급 드릴. 티타늄 광석 타일 위에 놓으면 느린속도로 티타늄을 채굴합니다.
block.omnidrill.name = 옴니 드릴
block.omnidrill.fulldescription = 빠른 속도로 모든 광석을 채굴 할 수 있습니다.
block.coalgenerator.name = 석탄 발전
block.coalgenerator.fulldescription = 필수적인 발전기. 석탄으로 전력을 생산합니다. 4면에 레이저로 전력을 출력합니다.
block.thermalgenerator.name = 지열 발전기
block.thermalgenerator.fulldescription = 용암으로부터 전력을 생산합니다. 4면에 레이저로 전력을 출력합니다.
block.combustiongenerator.name = 석유 발전기
block.combustiongenerator.fulldescription = 기름에서 전력을 생산합니다. 4면에 레이저로 전력을 출력합니다.
block.rtgenerator.name = 우라늄 발전기
block.rtgenerator.fulldescription = 토륨에서 나오는 방사선으로 적은 량의 전력을 생산합니다.\n4면으로 전력이 출력됩니다.
block.nuclearreactor.name = 원자로
block.nuclearreactor.fulldescription = 우라늄 발전기의 고급 버전과 궁극의 발전기.\n토륨에서 전력을 생산합니다.\n\n냉각수가 필요하며, 높은 휘발성을 가지고 있습니다.\n이 건물을 작동시키기 위해 연료로 토륨을 필요로 합니다.
block.turret.name = 포탑
block.turret.fulldescription = 즉석에서 만들 수 있고 가장 쓰레기인 포탑.\n탄약으로 돌을 사용합니다.\n\n이중 포탑보다 약간 넓은 범위를가집니다.
block.doubleturret.name = 2단 포탑
block.doubleturret.fulldescription = 포탑의 상위 버전입니다.\n탄약으로 돌을 사용합니다.\n\n더 많은 데미지를 주지만 범위는 낮습니다.\n총알 2발을 동시에 발사합니다.
block.machineturret.name = 게틀링 포탑
block.machineturret.fulldescription = 표준적인 포탑.\n탄약으로 철을 사용합니다.\n\n적당한 데미지에 빠른 발사 속도를 가지고 있습니다.
block.shotgunturret.name = 스플리터 포탑
block.shotgunturret.fulldescription = 표준적인 포탑.\n탄약으로 철을 사용합니다.\n\n한방에 7발을 발사합니다.\n범위가 낮지만 게틀링 포탑보다 높은 데미지를 가지고 있습니다.
block.flameturret.name = 화염 포탑
block.flameturret.fulldescription = 고급 근거리 포탑.\n탄약으로 석탄을 사용합니다.\n\n범위는 낮지만 높은 데미지를 가지고 있습니다, 벽 뒤에 두는것이 좋습니다.
block.sniperturret.name = 레일건 포탑
block.sniperturret.fulldescription = 고급 장거리 포탑.\n탄약에 강철을 사용합니다.\n\n매우 높은 데미지를 입힐 수 있지만 발사 속도는 낮습니다.\n사용 범위에 따라 적의 공격 범위 밖에서 공격할 수 있습니다.
block.mortarturret.name = 플랭크 포탑
block.mortarturret.fulldescription = 고급형이자 정확도가 낮은 스플래쉬 데미지 포탑.\n탄약에 석탄을 사용합니다.\n\n파편으로 폭발하는 총알을 사용하고. 많은 적군에게 유용합니다.
block.laserturret.name = 레이저 포탑
block.laserturret.fulldescription = 고급 단일 대상 공격 포탑.\n전력을 사용합니다.\n\n중간 크기의 사거리를 가지고 있고 절대 빗나가지 않습니다.
block.waveturret.name = 테슬라 포탑
block.waveturret.fulldescription = 고급 다중 타겟 포탑.\n전력을 사용합니다.\n\n중간크기의 사거리를 가지고 있으며. 절대 빗나가지 않으므로 걱정할 염려가 없습니다.\n데미지는 거의 없지만 연속공격으로 여러 명의 적들을 동시에 공격 할 수 있습니다.
block.plasmaturret.name = 플라즈마 포탑
block.plasmaturret.fulldescription = 포탑의 최고급 버전.\n석탄을 탄약으로 사용합니다.\n\n근접 사격 터렛의 끝판왕이며, 엄청나게 높은 데미지와 근거리와 중거리 사이 정도의 사거리를 가지고 있습니다.
block.chainturret.name = 체인 포탑
block.chainturret.fulldescription = 궁국의 초고속 포탑.\n토륨을 탄약으로 사용합니다.\n\n엄청나게 빠른 공격속도를 가지고 있고, 중간 크기의 사거리를 가지고 있습니다.\n2x2 크기의 포탑입니다.
block.titancannon.name = 타이탄 캐논
block.titancannon.fulldescription = 궁극의 장거리 포탑.\n토륨을 탄약으로 사용합니다.\n중간 수준의 사격 속도를 가지고 있으며 사거리가 매우 깁니다.\n\n3x3 크기의 포탑입니다.
block.playerspawn.name = 플레이어 스폰 지점
block.enemyspawn.name = 적 스폰 지점
block.cryofluidmixer.name=크라이오플루드 혼합
block.melter.name=멜터
block.incinerator.name=소각로
block.biomattercompressor.name=바이오매터 압축기
block.separator.name=셉터
block.centrifuge.name=원심 분리기
block.power-node.name=전력 노드
block.power-node-large.name=대형 전력 노드
block.battery.name=배터리
block.battery-large.name=대형 배터리
block.combustion-generator.name=연소 발전기
block.turbine-generator.name=터빈 발전기
block.tungsten-drill.name=텅스텐 드릴
block.carbide-drill.name=합금 드릴
block.laser-drill.name=레이저 드릴
block.water-extractor.name=물 추출
block.cultivator.name=경운기
block.dart-ship-factory.name=다트 선박 공장
block.delta-mech-factory.name=델타 메크 공장
block.dronefactory.name=드론 공장
block.repairpoint.name=수리 포인트
block.resupplypoint.name=재공급 포인트
block.conduit.name=도관
block.pulseconduit.name=펄스 도관
block.liquidrouter.name=액체 분배기
block.liquidtank.name=물탱크
block.liquidjunction.name=액체 교차기
block.bridgeconduit.name=브릿지 도관
block.mechanical-pump.name=기계 펌프
block.itemsource.name=아이템 소스
block.itemvoid.name=아이템 무효
block.liquidsource.name=액체 소스
block.powervoid.name=무효 전력
block.powerinfinite.name=무한한 힘
block.unloader.name=언로더
block.sortedunloader.name=정렬된 언로더
block.vault.name=Vault
block.wave.name=웨이브
block.swarmer.name=스워머
block.salvo.name=살보
block.ripple.name=라이플
block.phase-conveyor.name=펄스 컨베이어
block.bridge-conveyor.name=터널
block.plastanium-compressor.name=플라스터늄 압축기
block.pyratite-mixer.name=피터레이트 혼합기
block.blast-mixer.name=블래스트 혼합기
block.solidifer.name=고체
block.solar-panel.name=태양 전지 패널
block.solar-panel-large.name=대형 태양 전지판
block.oil-extractor.name=오일 추출기
block.javelin-ship-factory.name=창 던지기 선박 공장
block.drone-factory.name=드론 팩토리
block.fabricator-factory.name=Fabricator 공장
block.repair-point.name=수리 점
block.resupply-point.name=재 공급 포인트
block.pulse-conduit.name=펄스 도관
block.phase-conduit.name=위상 도관
block.liquid-router.name=액체 라우터
block.liquid-tank.name=액체 탱크
block.liquid-junction.name=액체 교차기
block.bridge-conduit.name=브릿지 도관
block.rotary-pump.name=로타리 펌프
block.nuclear-reactor.name=핵발전소
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+282 -275
View File
@@ -5,7 +5,6 @@ text.highscore = [YELLOW] Nowy rekord!
text.lasted=Wytrwałeś do fali
text.level.highscore=Rekord: [accent]{0}
text.level.delete.title=Potwierdź kasowanie
text.level.delete = Czy na pewno chcesz usunąć mapę \"[orange]{0}\"?
text.level.select=Wybrany poziom
text.level.mode=Tryb gry:
text.savegame=Zapisz Grę
@@ -14,9 +13,7 @@ text.joingame = Gra wieloosobowa
text.quit=Wyjdź
text.about.button=O grze
text.name=Nazwa:
text.public = Publiczny
text.players={0} graczy online
text.server.player.host = {0} (host)
text.players.single={0} gracz online
text.server.mismatch=Błąd pakietu: możliwa niezgodność wersji klienta/serwera.\nUpewnij się, że Ty i host macie najnowszą wersję Mindustry!
text.server.closing=[accent] Zamykanie serwera ...
@@ -40,7 +37,6 @@ text.server.add = Dodaj serwer
text.server.delete=Czy na pewno chcesz usunąć ten serwer?
text.server.hostname=Host: {0}
text.server.edit=Edytuj serwer
text.joingame.byip = Dołącz przez IP...
text.joingame.title=Dołącz do gry
text.joingame.ip=IP:
text.disconnect=Rozłączony.
@@ -51,8 +47,6 @@ text.server.port = Port:
text.server.addressinuse=Adres jest już w użyciu!
text.server.invalidport=Nieprawidłowy numer portu.
text.server.error=[crimson] Błąd hostowania serwera: [orange] {0}
text.tutorial.back = < Cofnij
text.tutorial.next = Dalej >
text.save.new=Nowy zapis
text.save.overwrite=Czy na pewno chcesz nadpisać zapis gry?
text.overwrite=Nadpisz
@@ -105,21 +99,12 @@ text.editor.savemap = Zapisz mapę
text.editor.loadimage=Załaduj obraz
text.editor.saveimage=Zapisz obraz
text.editor.unsaved=[scarlet]Masz niezapisane zmiany![]\nCzy na pewno chcesz wyjść?
text.editor.brushsize = Rozmiar pędzla: {0}
text.editor.noplayerspawn = Ta mapa nie ma ustawionego spawnu gracza!
text.editor.manyplayerspawns = Mapy nie mogą mieć więcej niż jeden punkt spawnu gracza!
text.editor.manyenemyspawns = Nie może mieć więcej niż {0} punktów spawnu wroga!
text.editor.resizemap=Zmień rozmiar mapy
text.editor.resizebig = [scarlet]Uwaga![]\nMapy większe niż 256 jednostek mogą przycinać i być niestabilne.
text.editor.mapname=Nazwa mapy:
text.editor.overwrite=[accent]Uwaga!\nSpowoduje to nadpisanie istniejącej mapy.
text.editor.failoverwrite = [crimson]Nie można nadpisać mapy podstawowej!
text.editor.selectmap=Wybierz mapę do załadowania:
text.width=Szerokość:
text.height=Wysokość:
text.randomize = Wylosuj
text.apply = Zastosuj
text.update = Zaktualizuj
text.menu=Menu
text.play=Graj
text.load=Wczytaj
@@ -140,67 +125,25 @@ text.upgrades = Ulepszenia
text.purchased=[LIME]Stworzono!
text.weapons=Bronie
text.paused=Wstrzymano
text.respawn = Odrodzenie za
text.info.title=[accent]Informacje
text.error.title=[crimson]Wystąpił błąd
text.error.crashmessage = [SCARLET]Wystąpił nieoczekiwany błąd, który spowodowałby awarię.[]\nProszę, powiadom dewelopera gry o tym błędzie, pisząc jak do niego doszło: [ORANGE]anukendev@gmail.com[]
text.error.crashtitle=Wystąpił błąd
text.mode.break = Tryb przerw: {0}
text.mode.place = Tryb układania: {0}
placemode.hold.name = linia
placemode.areadelete.name = obszar
placemode.touchdelete.name = Dotyk
placemode.holddelete.name = Przytrzymać
placemode.none.name = żaden
placemode.touch.name = Dotyk
placemode.cursor.name = kursor
text.blocks.extrainfo = [accent]Dodatkowe informacje o bloku:
text.blocks.blockinfo=Informacje o bloku
text.blocks.powercapacity=Moc znamionowa
text.blocks.powershot=moc / strzał
text.blocks.powersecond = moc / sekunda
text.blocks.powerdraindamage = siła ataku / obrażenia
text.blocks.shieldradius = Promień osłony
text.blocks.itemspeedsecond = prędkość / sekundy
text.blocks.range = Zakres
text.blocks.size=Rozmiar
text.blocks.powerliquid = moc / ciecz
text.blocks.maxliquidsecond = maksymalna ilość cieczy / sekunda
text.blocks.liquidcapacity=Pojemność cieczy
text.blocks.liquidsecond = ciecz / sekunda
text.blocks.damageshot = obrażenia / strzał
text.blocks.ammocapacity = Pojemność amunicji
text.blocks.ammo = Amunicja:
text.blocks.ammoitem = amunicja / przedmiot
text.blocks.maxitemssecond=Maksymalna liczba przedmiotów / Sekunda
text.blocks.powerrange=Zakres mocy
text.blocks.lasertilerange = Zasięg lasera
text.blocks.capacity = Wydajność
text.blocks.itemcapacity=Pojemność przedmiotów
text.blocks.maxpowergenerationsecond = maksymalne generowanie energii / sekunda
text.blocks.powergenerationsecond = wytwarzanie energii / sekunda
text.blocks.generationsecondsitem = sekunda / przedmiot
text.blocks.input = Wkład
text.blocks.inputliquid=Potrzebna ciecz
text.blocks.inputitem=Potrzebne przedmioty
text.blocks.output = Wyjście
text.blocks.secondsitem = sekundy / przedmiot
text.blocks.maxpowertransfersecond = maksymalny transfer mocy / sekundę
text.blocks.explosive=Wysoce wybuchowy!
text.blocks.repairssecond = naprawa / sekunda
text.blocks.health=Zdrowie
text.blocks.inaccuracy=Niedokładność
text.blocks.shots=Strzały
text.blocks.shotssecond = Strzały / Sekunda
text.blocks.fuel = Paliwo
text.blocks.fuelduration = Wydajność paliwa
text.blocks.maxoutputsecond = maksymalne wyjście / sekunda
text.blocks.inputcapacity=Pojemność wejściowa
text.blocks.outputcapacity=Wydajność wyjściowa
text.blocks.poweritem = moc / przedmiot
text.placemode = Tryb miejsca
text.breakmode = Tryb przerwania
text.health = Zdrowie:
setting.difficulty.easy=łatwy
setting.difficulty.normal=normalny
setting.difficulty.hard=trudny
@@ -208,7 +151,6 @@ setting.difficulty.insane = szalony
setting.difficulty.purge=Czystka
setting.difficulty.name=Poziom trudności
setting.screenshake.name=Trzęsienie się ekranu
setting.smoothcam.name = Płynna kamera
setting.indicators.name=Wskaźniki wroga
setting.effects.name=Wyświetlanie efektów
setting.sensitivity.name=Czułość kontrolera
@@ -218,7 +160,6 @@ setting.fps.name = Widoczny licznik FPS
setting.vsync.name=Synchronizacja pionowa
setting.lasers.name=Pokaż lasery zasilające
setting.healthbars.name=Pokaż paski zdrowia jednostki
setting.pixelate.name = Rozpikselizowany obraz
setting.musicvol.name=Głośność muzyki
setting.mutemusic.name=Wycisz muzykę
setting.sfxvol.name=Głośność dźwięków
@@ -236,50 +177,6 @@ map.grassland.name = łąka
map.tundra.name=tundra
map.spiral.name=spirala
map.tutorial.name=Poradnik
tutorial.intro.text = [yellow]Witamy w poradniku do gry.[]\nAby rozpocząć, naciśnij \"Dalej\".
tutorial.moveDesktop.text = Aby się poruszać, użyj klawiszy [orange]W A S[] oraz [orange]D[]. Przytrzymaj [orange]shift[], aby przyśpieszyć.\nPrzytrzymując [orange]ctrl[] podczas kręcenia [orange]rolką myszy[] możesz zmieniać poziom przybliżenia mapy.
tutorial.shoot.text = Do celowania używasz kursora myszy.\n[orange]Lewy przycisk myszy[] służy do strzelania. Poćwicz na [yellow]celu[].
tutorial.moveAndroid.text = Aby przesunąć widok, przeciągnij jednym palcem po ekranie. Ściśnij i przeciągnij, aby powiększyć lub pomniejszyć.
tutorial.placeSelect.text = Wybierz [yellow]przenośnik[] z menu blokowego w prawym dolnym rogu.
tutorial.placeConveyorDesktop.text = Użyj [orange]rolki myszy[] aby obrócić przenośnik [orange]do przodu[], a następnie umieść go w [yellow]oznaczonym miejscu[] za pomocą [orange]lewego przycisku myszy[].
tutorial.placeConveyorAndroid.text = Użyj [orange]przycisk obracania[], aby obrócić przenośnik [orange]do przodu[]. Jednym palcem przeciągnij go na [yellow]wskazaną pozycję[], a następnie umieść go za pomocą [orange]znacznika wyboru[].
tutorial.placeConveyorAndroidInfo.text = Możesz też nacisnąć ikonę celownika w lewym dolnym rogu, aby przełączyć na [pomarańczowy] [[tryb dotykowy] [] i umieścić bloki, dotykając ekranu. W trybie dotykowym bloki można obracać strzałką w lewym dolnym rogu. Naciśnij [żółty] następny [], aby go wypróbować.
tutorial.placeDrill.text = Teraz wybierz i umieść [yellow]wiertło do kamienia[] w oznaczonym miejscu.
tutorial.blockInfo.text = Jeśli chcesz się dowiedzieć więcej na temat wybranego bloku, kliknij [orange]znak zapytania[] w prawym górnym rogu, aby przeczytać jego opis.
tutorial.deselectDesktop.text = Możesz anulować wybór bloku za pomocą [orange]prawego przycisku myszy[].
tutorial.deselectAndroid.text = Możesz odznaczyć blok, naciskając przycisk [orange]X[].
tutorial.drillPlaced.text = Wiertło będzie teraz produkować [yellow]kamień[] i podawać go na przenośnik, który przeniesie go do [yellow]rdzenia[]
tutorial.drillInfo.text = Różne rudy wymagają różnych wierteł. Kamień wymaga wiertła do kamieniu, żelazo wymaga wiertła do żelaza, itd.
tutorial.drillPlaced2.text = Przeniesienie przedmiotów do rdzenia powoduje umieszczenie ich w [yellow]inwentarzu przedmiotów[] w lewym górnym rogu. Stawianie bloków te przedmioty zużywa.
tutorial.moreDrills.text = Możesz połączyć wiertła i przenośników w przedstawiony sposób:
tutorial.deleteBlock.text = Możesz usuwać bloki, klikając [orange]prawy przycisk myszy[] na bloku, który chcesz usunąć.\nSpróbuj usunąć [yellow]oznaczony[] przenośnik.
tutorial.deleteBlockAndroid.text = Możesz usuwać bloki za pomocą [orange]krzyżyka[] w [orange]menu przerywania[] w lewym dolnym rogu i stukając w blok.\nSpróbuj usunąć [yellow]oznaczony[] przenośnik.
tutorial.placeTurret.text = Teraz wybierz i umieść [yellow]działko[] w [yellow]zaznaczonym miejscu[].
tutorial.placedTurretAmmo.text = Działko przyjmie teraz [yellow]amunicję[] z przenośnika. Możesz zobaczyć, ile ma amunicji, najeżdżając na działko kursorem i sprawdzając [green]zielony pasek[].
tutorial.turretExplanation.text = Wieżyczki będą strzelać automatycznie do najbliższego wroga w zasięgu, o ile będą miały wystarczającą ilość amunicji.
tutorial.waves.text = Co każde [yellow]60[] sekund, fala [coral]wrogów[] pojawi się w określonym miejscu na mapie i spróbuje zniszczyć rdzeń.
tutorial.coreDestruction.text = Twoim celem jest [yellow]obrona rdzenia[]. Zniszczenie rdzenia jest równoznaczne z [coral]przegraną[].
tutorial.pausingDesktop.text = Jeśli chcesz zrobić przerwę, naciśnij [orange]spację[] lub [orange]przycisk pauzy[] w lewym górnym rogu. Nadal możesz wybierać i wstawiać klocki podczas pauzy, ale nie możesz niszczyć i strzelać.
tutorial.pausingAndroid.text = Jeśli chcesz zrobić przerwę, naciśnij [orange]przycisk pauzy[]. Nadal możesz stawiać i niszczyć bloki.
tutorial.purchaseWeapons.text = Możesz kupić nowe [żółte] bronie [] dla swojego mecha, otwierając menu aktualizacji w lewym dolnym rogu.
tutorial.switchWeapons.text = Zmień broń, klikając jej ikonę w lewym dolnym rogu lub używając cyfr [orange][1-9[].
tutorial.spawnWave.text = Fala wrogów nadchodzi! Zniszcz ich.
tutorial.pumpDesc.text = W późniejszych falach może być konieczne użycie [yellow]pompy[] do rozprowadzania cieczy dla generatorów lub ekstraktorów.
tutorial.pumpPlace.text = Pompy działają podobnie do wierteł, z tym wyjątkiem, że wytwarzają ciecze zamiast ród.\nSpróbuj umieścić pompę na [yellow]oleju[].
tutorial.conduitUse.text = Teraz umieść [orange]rurę[] wychodzącą od pompy.
tutorial.conduitUse2.text = I tak jeszcze jedną...
tutorial.conduitUse3.text = I jeszcze jedeną...
tutorial.generator.text = Teraz umieść [orange]generator spalinowy[] na końcu kanału.
tutorial.generatorExplain.text = Generator ten będzie teraz wytwarzać [yellow]energię[] z oleju.
tutorial.lasers.text = Energia jest dystrybuowana za pomocą [yellow]przekaźników[]. Umieść takowy przekaźnik na [yellow]wskazanej pozycji[].
tutorial.laserExplain.text = Generator przeniesie teraz moc do przekaźnika. Wiązka [orange]nieprzeźroczysta[] oznacza, że aktualnie transmituje moc. Wiązka [yellow]przeźroczysta[] wskazuje na brak przekazywanej energii.
tutorial.laserMore.text = Możesz sprawdzić ile energii przechowuje blok najeżdżając na niego kursorem i sprawdzając [yellow]żółty pasek[].
tutorial.healingTurret.text = Energia może być używany do zasilania [lime]wież naprawczych[]. Umieść takową [yellow]tutaj[].
tutorial.healingTurretExplain.text = Dopóki dostarczana jest do niej energia będzie [lime]naprawiać pobliskie bloki[]. Podczas gry ustawiłeś ją niedaleko swojej bazy tak szybko, jak to tylko możliwe!
tutorial.smeltery.text = Wiele bloków wymaga do pracy [orange]stali[], którą można wytwarzać w [orange]hucie[]. A skoro tak, to postaw ją teraz.
tutorial.smelterySetup.text = Huta wytworzy teraz z żelaza [orange]stal[], wykorzystując węgiel jako paliwo.
tutorial.tunnelExplain.text = Zwróć też uwagę, że przedmioty przechodzą przez [orange]tunel[] i wynurzają się po drugiej stronie, przechodząc przez kamienny blok. Pamiętaj, że tunele mogą przechodzić tylko do 2 bloków.
tutorial.end.text = I na tym poradnik się kończy!\nPozostaje tylko życzyć Ci [orange]powodzenia[]!
keybind.move_x.name=Poruszanie w poziomie
keybind.move_y.name=Poruszanie w pionie
keybind.select.name=Wybieranie
@@ -292,197 +189,307 @@ keybind.pause.name = pauza
keybind.dash.name=przyśpieszenie
keybind.rotate_alt.name=Obracanie (1)
keybind.rotate.name=Obracanie (2)
keybind.weapon_1.name = Broń 1
keybind.weapon_2.name = Broń 2
keybind.weapon_3.name = Broń 3
keybind.weapon_4.name = Broń 4
keybind.weapon_5.name = Broń 5
keybind.weapon_6.name = Broń 6
mode.waves.name=Fale
mode.sandbox.name=sandbox
mode.freebuild.name=budowanie
upgrade.standard.name = Standardowy
upgrade.standard.description = Standardowy mech.
upgrade.blaster.name = blaster
upgrade.blaster.description = Wystrzeliwuje powolną, słabą kulę.
upgrade.triblaster.name = triblaster
upgrade.triblaster.description = Strzela 3 pociskami w rozprzestrzenianiu.
upgrade.clustergun.name = clustergun
upgrade.clustergun.description = Wystrzeliwuje w różnych kierunkach kilka granatów.
upgrade.beam.name = Działko laserowe
upgrade.beam.description = Strzela laserem o dalekim zasięgu.
upgrade.vulcan.name = wulkan
upgrade.vulcan.description = Wystrzeliwuje grad szybkich pocisków.
upgrade.shockgun.name = Działko elektryczne
upgrade.shockgun.description = Wystrzeliwuje niszczycielski podmuch naładowanych odłamków.
item.stone.name=kamień
item.iron.name = żelazo
item.coal.name=węgiel
item.steel.name = stal
item.titanium.name=tytan
item.dirium.name = dirium
item.thorium.name=uran
item.sand.name=piasek
liquid.water.name=woda
liquid.plasma.name = plazma
liquid.lava.name=lawa
liquid.oil.name=olej
block.weaponfactory.name = fabryka broni
block.air.name = Powietrze.
block.blockpart.name = Kawałek bloku
block.deepwater.name = głęboka woda
block.water.name = woda
block.lava.name = lawa
block.oil.name = olej
block.stone.name = kamień
block.blackstone.name = czarny kamień
block.iron.name = żelazo
block.coal.name = węgiel
block.titanium.name = tytan
block.thorium.name = uran
block.dirt.name = ziemia
block.sand.name = piasek
block.ice.name = lód
block.snow.name = śnieg
block.grass.name = trawa
block.sandblock.name = blok z piasku
block.snowblock.name = blok ze śniegu
block.stoneblock.name = blok z kamienia
block.blackstoneblock.name = blok z czarnego kamienia
block.grassblock.name = blok z trawy
block.mossblock.name = porośnięty blok
block.shrub.name = krzew
block.rock.name = kamyk
block.icerock.name = kamyk lodowy
block.blackrock.name = czarny kamyk
block.dirtblock.name = Brudny blok
block.stonewall.name = Kamienna ściana
block.stonewall.fulldescription = Tani blok obronny. Przydatny do ochrony rdzenia i wież w pierwszych kilku falach.
block.ironwall.name = Żelazna ściana
block.ironwall.fulldescription = Podstawowy blok obronny. Zapewnia ochronę przed wrogami.
block.steelwall.name = stalowa ściana
block.steelwall.fulldescription = Standardowy blok obronny. odpowiednia ochrona przed wrogami.
block.titaniumwall.name = tytanowa ściana
block.titaniumwall.fulldescription = Silny blok obronny. Zapewnia ochronę przed wrogami.
block.duriumwall.name = ściana z dirium
block.duriumwall.fulldescription = Bardzo silny blok obronny. Zapewnia ochronę przed wrogami.
block.compositewall.name = ściana kompozytowa
block.steelwall-large.name = duża stalowa ściana
block.steelwall-large.fulldescription = Standardowy blok obronny. Rozpiętość wielu płytek.
block.titaniumwall-large.name = duża tytanowa ściana
block.titaniumwall-large.fulldescription = Silny blok obronny. Rozpiętość wielu płytek.
block.duriumwall-large.name = duża ściana z dirium
block.duriumwall-large.fulldescription = Bardzo silny blok obronny. Rozpiętość wielu płytek.
block.titaniumshieldwall.name = Ściana z polem obronnym
block.titaniumshieldwall.fulldescription = Silny blok obronny z dodatkową wbudowaną tarczą. Wymaga zasilania. Używa energii do pochłaniania pocisków wroga. W celu dostarczenia zasilania zaleca się stosowanie wzmacniaczy energii.
block.repairturret.name = Wieża naprawcza
block.repairturret.fulldescription = Naprawia pobliskie uszkodzone bloki w niedużej prędkości. Wykorzystuje niewielkie ilości energii.
block.megarepairturret.name = Wieża naprawcza II
block.megarepairturret.fulldescription = Naprawia pobliskie uszkodzone bloki z przyzwoitą prędkośą. Do działania wykorzystuje energię.
block.shieldgenerator.name = Generator tarczy
block.shieldgenerator.fulldescription = Zaawansowany blok obronny. Osłania wszystkie bloki w promieniu przed atakiem wroga. Zużywa energię z niewielką prędkością gdy jest w stanie bezczynności, ale z kolei gdy jest w użyciu, energię pobiera bardzo szybko.
block.door.name=drzwi
block.door.fulldescription = Blok, który można otworzyć i zamknąć poprzez dotknięcie
block.door-large.name=duże drzwi
block.door-large.fulldescription = Blok, który można otworzyć i zamknąć poprzez dotknięcie
block.conduit.name=Rura
block.conduit.fulldescription = Podstawowy blok transportu cieczy. Działa jak przenośnik, tylko że z płynami. Najlepiej stosować z pompami bądź razem innymi rurami.\nMoże być używany jako pomost nad płynami dla wrogów i graczy.
block.pulseconduit.name=Rura impulsowa
block.pulseconduit.fulldescription = Zaawansowany blok transportu cieczy. Transportuje ciecze szybciej i przechowuje więcej niż rury standardowe.
block.liquidrouter.name=Rozdzielacz płynów
block.liquidrouter.fulldescription = Działa podobnie do zwykłego rozdzielacza. Akceptuje wejście cieczy z jednej strony i przekazuje ją na pozostałe strony. Przydatny do rozdzielania cieczy z jednej rury do wielu.
block.conveyor.name=Przenośnik
block.conveyor.fulldescription = Podstawowy blok transportu przedmiotów. Przenosi przedmioty do przodu i automatycznie umieszcza je w blokach. Może być używany jako pomost nad płynami dla wrogów i graczy.
block.steelconveyor.name = Przenośnik stalowy
block.steelconveyor.fulldescription = Zaawansowany blok transportu przedmiotów. Przenosi elementy szybciej niż standardowe przenośniki.
block.poweredconveyor.name = przenośnik impulsowy
block.poweredconveyor.fulldescription = Najszybszy blok transportowy przedmiotów.
block.router.name=Rozdzielacz
block.router.fulldescription = Przyjmuje przedmioty z jednego kierunku i przekazuje je w 3 innych kierunkach. Może również przechowywać pewną liczbę przedmiotów. Przydatny do dzielenia materiałów z jednego wiertła na wiele dział.
block.junction.name=węzeł
block.junction.fulldescription = Działa jako pomost dla dwóch skrzyżowanych przenośników taśmowych. Przydatny w sytuacjach, gdy dwa różne przenośniki przenoszą różne materiały do różnych lokalizacji.
block.conveyortunnel.name = tunel przenośnikowy
block.conveyortunnel.fulldescription = Transportuje przedmiot pod blokami. Aby użyć, umieść jeden tunel prowadzący do bloku, który ma zostać tunelowany, i jeden po drugiej stronie. Upewnij się, że oba tunele są skierowane w przeciwnych kierunkach, czyli w wejście do bloku podającego, a wyjście do bloku odbierającego.
block.liquidjunction.name=Węzeł dla płynów
block.liquidjunction.fulldescription = Skrzyżowanie dla rurociągów. Przydatne w sytuacji, w której transportujemy różne ciecze w rurach, które muszą się przeciąć.
block.liquiditemjunction.name = Węzeł rur i przenośników
block.liquiditemjunction.fulldescription = Skrzyżowanie przenośników taśmowych oraz rur.
block.powerbooster.name = Wzmacniacz energii
block.powerbooster.fulldescription = Dystrybuuje moc do wszystkich bloków w swoim promieniu.
block.powerlaser.name = Przekaźnik
block.powerlaser.fulldescription = Tworzy laser, który przesyła moc do bloku przed nim. Nie generuje energii. Najlepiej stosować z generatorami lub innymi przekaźnikami.
block.powerlaserrouter.name = Duży rozdzielacz energii
block.powerlaserrouter.fulldescription = Przekaźnik, który dystrybuuje energię w trzech kierunkach jednocześnie. Przydatne w sytuacjach, w których wymagane jest zasilanie wielu bloków z jednego generatora.
block.powerlasercorner.name = Rozdzielacz energii
block.powerlasercorner.fulldescription = Przekaźnik, który dystrybuuje energię w dwóch kierunkach jednocześnie. Przydatny w sytuacjach, gdy wymagane jest zasilanie wielu bloków z jednego generatora, a router jest nieprecyzyjny.
block.teleporter.name = teleporter
block.teleporter.fulldescription = Zaawansowany blok transportu przedmiotów. Teleporty przenoszą przedmioty do innych teleportów tego samego koloru. Jeżeli nie istnieją teleporty z tym samym kolorem, to nie niczego nigdzie nie przenosi. Jeśli istnieje wiele teleportów tego samego koloru, wybierany jest losowy. Zużywa energię. Stuknij aby zmienić kolor.
block.sorter.name=Sortownik
block.sorter.fulldescription = Sortuje przedmioty według rodzaju materiału. Materiał do zaakceptowania jest oznaczony w bloku. Wszystkie pasujące przedmioty są wysyłane do przodu, wszystko inne jest wyprowadzane na lewo i na prawo.
block.core.name = Rdzeń
block.pump.name = pompa
block.pump.fulldescription = Pompuje ciecze z bloku źródłowego - zwykle wody, lawy lub oleju. Wyprowadza ciecz do pobliskich rur.
block.fluxpump.name = pompa strumieniowa
block.fluxpump.fulldescription = Zaawansowana wersja pompy. Przechowuje więcej cieczy i szybciej pompuje.
block.smelter.name=huta
block.smelter.fulldescription = Niezbędny blok rzemieślniczy. Po wprowadzeniu 1 żelaza i 1 węgla jako paliwa, wytwarza 1 stal. Zaleca się wprowadzanie żelaza i węgla na różne pasy, aby zapobiec zatkaniu.
block.crucible.name = tygiel
block.crucible.fulldescription = Zaawansowany blok rzemieślniczy. Po wprowadzeniu 1 tytanu, 1 stali i 1 węgla jako paliwa, otrzymuje 1 dirium. Zaleca się wprowadzanie węgla, stali i tytanu z różnych taśm, aby zapobiec zatkaniu.
block.coalpurifier.name = ekstraktor węgla
block.coalpurifier.fulldescription = Wyprowadza węgiel, gdy jest dostarczana duża ilością wody i kamienia.
block.titaniumpurifier.name = ekstraktor tytanu
block.titaniumpurifier.fulldescription = Wyprowadza tytan, gdy jest dostarczana duża ilości wody i żelaza.
block.oilrefinery.name = Rafineria ropy
block.oilrefinery.fulldescription = Rafinuje duże ilości oleju do postaci węgla. Przydatne do napędzania działek napędzanych węglem, gry nie ma w pobliżu wystarcząjacej ilości rud węgla.
block.stoneformer.name = Wytwarzacz kamienia
block.stoneformer.fulldescription = Schładza lawę do postaci kamień. Przydatny do produkcji ogromnych ilości kamienia do oczyszczania węgla.
block.lavasmelter.name = Huta lawowa
block.lavasmelter.fulldescription = Używa lawy, by przekształcić żelazo w stal. Alternatywa dla zwykłych hut. Przydatny w sytuacjach, gdy brakuje węgla.
block.stonedrill.name = wiertło do kamienia
block.stonedrill.fulldescription = Niezbędne wiertło. Po umieszczeniu na kamiennym podłożu, powoli i w nieskończoność wydobywa kamień.
block.irondrill.name = wiertło do żelaza
block.irondrill.fulldescription = Po umieszczeniu na rudzie żelaza, powoli i w nieskończoność wydobywa żelazo.
block.coaldrill.name = wiertło do węgla
block.coaldrill.fulldescription = Po umieszczeniu na rudzie węgla, powoli i w nieskończoność wydobywa węgiel.
block.thoriumdrill.name = wiertło do uranu
block.thoriumdrill.fulldescription = Wiertło zaawansowane. Po umieszczeniu na rudzie uranu, wydobywa uran w wolnym tempie przez czas nieokreślony.
block.titaniumdrill.name = wiertło do tytanu
block.titaniumdrill.fulldescription = Wiertło zaawansowane. Po umieszczeniu na rudzie tytanu, wydobywa tytan w wolnym tempie przez czas nieokreślony.
block.omnidrill.name = omnidril
block.omnidrill.fulldescription = Wiertło wielofunkcyjne. W szybkim tempie wydobywa każdą rudę.
block.coalgenerator.name = generator na węgiel
block.coalgenerator.fulldescription = Niezbędny generator. Generuje energię z węgla na wszystkie strony.
block.thermalgenerator.name = generator termiczny
block.thermalgenerator.fulldescription = Generuje energię z lawy. Generuje energię z węgla na wszystkie strony.
block.combustiongenerator.name = generator spalinowy
block.combustiongenerator.fulldescription = Generuje moc z oleju. Generuje energię z węgla na wszystkie strony.
block.rtgenerator.name = Generator RTG
block.rtgenerator.fulldescription = Generuje niewielkie ilości energii z rozpadu promieniotwórczego uranu. Generuje energię z węgla na wszystkie strony.
block.nuclearreactor.name = reaktor jądrowy
block.nuclearreactor.fulldescription = Zaawansowana wersja generatora RTG i zarazem najlepsze źródło energii. Generuje ją z uranu. Wymaga stałego chłodzenia wodą. Wybucha niemal natychmiast w momencie, gdy dostarczona zostanie niewystarczająca ilość płynu chłodzącego.
block.turret.name = działko
block.turret.fulldescription = Podstawowa, nieduża wieżyczka. Używa kamienia jako amunicji. Ma nieco większy zasięg niż działko podwójne.
block.doubleturret.name = działko podwójne
block.doubleturret.fulldescription = Nieco mocniejsza wersja działka. Używa kamienia jako amunicji. Znacznie więcej obrażeń, ale ma mniejszy zasięg. Wystrzeliwuje dwie kule.
block.machineturret.name = działko szybkostrzelne
block.machineturret.fulldescription = Standardowa, wszechstronna wieża. Używa żelaza jako amunicji. Strzela dość szybko i ma przyzwoite uszkodzenia.
block.shotgunturret.name = działko odłamkowe
block.shotgunturret.fulldescription = Standardowa wieża. Używa żelaza do amunicji. Wystrzeliwuje 7 pocisków. Niższy zasięg, ale większe obrażenia niż działko szybkostrzelne.
block.flameturret.name = miotacz ognia
block.flameturret.fulldescription = Zaawansowana wieżyczka bliskiego zasięgu. Używa węgla jako amunicji. Ma bardzo niski zasięg, ale bardzo duże obrażenia. Dobra na krótkie dystanse. Zalecana do stosowania za ścianami.
block.sniperturret.name = karabin
block.sniperturret.fulldescription = Zaawansowana wieżyczka dalekiego zasięgu. Używa stali jako amunicji. Ma bardzo duże obrażenia, ale niski współczynnik ognia. Kosztowne w użyciu, ale można je umieścić z dala od linii wroga ze względu na jego zasięg.
block.mortarturret.name = Miotacz odłamków
block.mortarturret.fulldescription = Zaawansowana, bardzo dokładne działko rozpryskowe. Używa węgla jako amunicji. Wystrzeliwuje grad eksplodujących pocisków. Przydatny dla dużych hord wrogów.
block.laserturret.name = działo laserowe
block.laserturret.fulldescription = Zaawansowana wieża z jednym celem. Używa energii. Dobra wieża o średnim zasięgu. Atakuje tylko 1 cel i nigdy nie pudłuje.
block.waveturret.name = Działo Tesli
block.waveturret.fulldescription = Zaawansowana wieża celującai. Używa mocy. Średni zasięg. Nigdy nie trafia. Stosuje niskie obrażenia, ale może trafić wielu wrogów jednocześnie z oświetleniem łańcuszkiem.
block.plasmaturret.name = Działo plazmowe
block.plasmaturret.fulldescription = Wysoce zaawansowana wersja miotacza ognia. Używa węgla jako amunicji. Zadaje bardzo duże obrażenia i posiada średni zasięg.
block.chainturret.name = Działo uranowe
block.chainturret.fulldescription = Najlepsze działo szybkiego ognia. Używa uranu jako amunicji. Wystrzeliwuje duże spirale z dużą szybkością. Posiada średni zasięg.
block.titancannon.name = Potężne działo uranowe
block.titancannon.fulldescription = Najlepsze działo dalekiego zasięgu. Używa uranu jako amunicji. Wystrzeliwuje duże pociski z odłamkami. Ma średnią szybkostrzelność i duży promień rażenia.
block.playerspawn.name = Spawn gracza
block.enemyspawn.name = Spawn wroga
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.newgame=New Game
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.banned=You are banned on this server.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.trace.ip=IP: [accent]{0}
text.trace.id=Unique ID: [accent]{0}
text.trace.android=Android Client: [accent]{0}
text.trace.modclient=Custom Client: [accent]{0}
text.trace.totalblocksbroken=Total blocks broken: [accent]{0}
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.trace.lastblockbroken=Last block broken: [accent]{0}
text.trace.totalblocksplaced=Total blocks placed: [accent]{0}
text.trace.lastblockplaced=Last block placed: [accent]{0}
text.invalidid=Invalid client ID! Submit a bug report.
text.server.bans=Bans
text.server.bans.none=No banned players found!
text.server.admins=Admins
text.server.admins.none=No admins found!
text.server.outdated=[crimson]Outdated Server![]
text.server.outdated.client=[crimson]Outdated Client![]
text.server.version=[lightgray]Version: {0}
text.server.custombuild=[yellow]Custom Build
text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.disconnect.data=Failed to load world data!
text.save.difficulty=Difficulty: {0}
text.copylink=Copy Link
text.changelog.title=Changelog
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.changelog.error=[scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.fullscreen.name=Fullscreen
setting.multithread.name=Multithreading
setting.minimap.name=Show Minimap
text.keybind.title=Rebind Keys
keybind.block_info.name=block_info
keybind.chat.name=chat
keybind.player_list.name=player_list
keybind.console.name=console
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+344 -320
View File
@@ -5,7 +5,6 @@ text.highscore=[YELLOW]Novo recorde!
text.lasted=Você durou até a horda
text.level.highscore=Melhor\npontuação: [accent] {0}
text.level.delete.title=Confirmar exclusão
text.level.delete=Você tem certeza que quer excluir\no mapa "[orange]{0}"?
text.level.select=Seleção de Fase
text.level.mode=Modo de Jogo:
text.savegame=Salvar Jogo
@@ -33,7 +32,6 @@ text.loading=[accent]Carregando...
text.wave=[orange]Horda {0}
text.wave.waiting=Horda em {0}
text.waiting=Aguardando...
text.countdown=Horda em {0}
text.enemies={0} Inimigos restantes
text.enemies.single={0} Inimigo restante
text.loadimage=Carregar\nImagem
@@ -48,21 +46,12 @@ text.editor.savemap=Salvar\n Mapa
text.editor.loadimage=Carregar\n Imagem
text.editor.saveimage=Salvar\nImagem
text.editor.unsaved=[scarlet]Você tem alterações não salvas![]\nTem certeza que quer sair?
text.editor.brushsize=Tamanho do pincel: {0}
text.editor.noplayerspawn=Este mapa não tem ponto de spawn para o jogador!
text.editor.manyplayerspawns=Mapas não podem ter mais de um\nponto de spawn para jogador!
text.editor.manyenemyspawns=Não pode haver mais de\n{0} pontos de spawn para inimigos!
text.editor.resizemap=Redimensionar Mapa
text.editor.resizebig=[scarlet]Aviso!\n[]Mapas maiores que 256 unidades podem ser 'lentos' e instáveis
text.editor.mapname=Nome do Mapa:
text.editor.overwrite=[accent]Aviso!\nIsso sobrescreve um mapa existente.
text.editor.failoverwrite=[crimson]Não é possível salvar sobre o mapa padrão!
text.editor.selectmap=Selecione uma mapa para carregar:
text.width=Largura:
text.height=Altura:
text.randomize=Aleatório
text.apply=Aplicar
text.update=Atualizar
text.menu=Menu
text.play=Jogar
text.load=Carregar
@@ -81,58 +70,27 @@ text.upgrades=Melhorias
text.purchased=[LIME]Comprado!
text.weapons=Arsenal
text.paused=Pausado
text.respawn=Reaparecendo em
text.error.title=[crimson]Um erro ocorreu
text.error.crashmessage=[SCARLET]Um erro inesperado aconteceu, que pode ter causado o jogo a fechar. []Por favor, informe as exatas circunstâncias em que o erro ocorreu ao desenvolvidor:\n[ORANGE]anukendev@gmail.com[]
text.error.crashtitle=Um erro ocorreu.
text.blocks.extrainfo=[accent]Informação extra:
text.blocks.blockinfo=Informação do Bloco
text.blocks.powercapacity=Capacidade de Energia
text.blocks.powershot=Energia/tiro
text.blocks.powersecond=Energia/segundo
text.blocks.powerdraindamage=Energia/dano
text.blocks.shieldradius=Raio do Escudo
text.blocks.itemspeedsecond=Itens/segundo
text.blocks.range=Alcance
text.blocks.size=Tamanho
text.blocks.powerliquid=Energia/Líquido
text.blocks.maxliquidsecond=Entrada Máx. Líquido/segundo
text.blocks.liquidcapacity=Capacidade de Líquido
text.blocks.liquidsecond=Líquido/segundo
text.blocks.damageshot=Dano/tiro
text.blocks.ammocapacity=Munição Máxima
text.blocks.ammo=Munição
text.blocks.ammoitem=Munição/item
text.blocks.maxitemssecond=Máximo de itens/segundo
text.blocks.powerrange=Alcance da Energia
text.blocks.lasertilerange=Alcance do Laser (em células)
text.blocks.capacity=Capacidade
text.blocks.itemcapacity=Capacidade de Itens
text.blocks.powergenerationsecond=Geração de Energia/segundo
text.blocks.generationsecondsitem=Tempo de geração/item
text.blocks.input=Entrada
text.blocks.inputliquid=Líquido de entrada
text.blocks.inputitem=Item de entrada
text.blocks.output=Saída
text.blocks.secondsitem=Segundos/item
text.blocks.maxpowertransfersecond=Transferência máxima de Energia/segundo
text.blocks.explosive=Altamente Explosivo!
text.blocks.repairssecond=Reparo/segundo
text.blocks.health=Saúde
text.blocks.inaccuracy=Imprecisão
text.blocks.shots=Tiros
text.blocks.shotssecond=Taxa de tiro
text.placemode=Modo construção
text.breakmode=Modo remoção
text.health=Saúde
setting.difficulty.easy=Fácil
setting.difficulty.normal=Normal
setting.difficulty.hard=Difícil
setting.difficulty.name=Dificuldade
setting.screenshake.name=Balanço da Tela
#Tremor da tela?
setting.smoothcam.name=Câmera suave
#Suavizar Câmera?
setting.indicators.name=Indicadores de Inimigos
setting.effects.name=Particulas
setting.sensitivity.name=Sensibilidade do Controle
@@ -140,7 +98,6 @@ setting.fps.name=Mostrar FPS
setting.vsync.name=VSync
setting.lasers.name=Mostrar lasers
setting.healthbars.name=Mostrar barra de saúde de entidades
setting.pixelate.name=Pixelar Tela
setting.musicvol.name=Volume da Música
setting.mutemusic.name=Desligar Musica
setting.sfxvol.name=Volume de Efeitos
@@ -158,54 +115,10 @@ map.grassland.name=grassland
map.tundra.name=tundra
map.spiral.name=spiral
map.tutorial.name=tutorial
tutorial.intro.text=[yellow]Bem-vindo ao tutorial.[] Para começar aperte 'próximo'.
tutorial.moveDesktop.text=Para mover, use as teclas [orange][[WASD][]. Segure [orange]shift[] para mover rápido. Segure [orange]CTRL[] enquanto usa a [orange]roda do mouse[] para aumentar ou diminuir o zoom.
tutorial.shootInternal.text=Use o mouse para mirar, segure [orange]botão esquerdo do mouse[] para atirar. Tente praticar no [yellow]alvo[].
tutorial.moveAndroid.text=Para arrastar a visão, passe um dedo pela tela. Pince com os dedos para aumentar ou diminuir o zoom.
tutorial.placeSelect.text=Tente selecionar uma [yellow]esteira[] do menu de blocos no canto inferior direito.
tutorial.placeConveyorDesktop.text=Use a [orange][[roda do mouse][] para girar a esteira até que aponte [orange]para frente[], então coloque-a no [yellow]local marcado[] usando o [orange][[botão esquerdo do mouse][].
tutorial.placeConveyorAndroid.text=Use o [orange][[botão de girar][] para girar a esteira para que aponte [orange]para frente[], arraste-a para a posição e então coloque-a na [yellow]posição marcada[] usando o [orange][[botão de confirmação][].
tutorial.placeConveyorAndroidInfo.text=Você também pode apertar no ícone com uma cruz no canto inferior esquerdo para alterar para o [orange][[modo de toque][], e colocar blocos apertando na tela. No modo de toque, blocos podem ser girados com a seta no canto inferior esquerdo. Aperte [yellow]próximo[] para tentar.
tutorial.placeDrill.text=Agora selecione e coloque uma [yellow]broca de pedra[] no local marcado.
tutorial.blockInfo.text=Se quiser saber mais sobre os blocos, você pode apertar o [orange]símbolo de interrogação[] no canto superior direito para ler mais.
tutorial.deselectDesktop.text=Você pode cancelar a seleção de um bloco usando o [orange][botão direito do mouse[].
tutorial.deselectAndroid.text=ocê pode cancelar a seleção de um bloco apertando o botão [orange]X[].
tutorial.drillPlaced.text=A broca produzirá [yellow]pedra[], direcionando o produzido para a esteira a qual moverá a pedra para o [yellow]núcleo[].
tutorial.drillInfo.text=Minérios diferentes precisam de diferentes brocas. Pedra precisam de brocas de pedra, Ferro de brocas de ferro, etc.
tutorial.drillPlaced2.text=Itens movidos para o núcleo são colocados em seu [yellow]inventário[], no canto superior esquerdo. Colocar blocos gasta os recursos do inventário.
tutorial.moreDrills.text=Você pode conectar várias brocas e esteiras, veja.
tutorial.deleteBlock.text=Você pode excluir blocos clickando com o [orange]botão direito do mouse[] no bloco que quiser destruir. Tente excluir esta esteira.
tutorial.deleteBlockAndroid.text=Você pode excluir blocos [orange]apertando na cruz[] no [orange]menu modo de quebra[] no canto inferior esquerdo e então apertando no bloco desejado. Tente excluir esta esteira.
tutorial.placeTurret.text=Agora, selecione e construa uma [yellow]torre[] no [yellow]local marcado[].
tutorial.placedTurretAmmo.text=Esta torre aceitará [yellow]munição[] da esteira. Você pode ver quanta munição elas tem passando o mouse sobre elas e verificando a [green]barra verde[].
tutorial.turretExplanation.text=As torres irão atirar no inimigo mais próximo que estiver ao alcance, contanto que tenham munição suficiente.
tutorial.waves.text=A cada [yellow]60[] segundos, uma horda de [coral]inimigos[] irá aparecer em locais específicos e tentará destruir o núcleo.
tutorial.coreDestruction.text=Seu objetivo é [yellow]defender o núcleo[]. Se o núcleo for destruído, vecê [coral]perde o jogo[].
tutorial.pausingDesktop.text=Se você precisar parar por alguns instantes, aperte o [orange]botão de pausa[] no canto superior esquerdo ou [orange]barra de espaço[] para pausar o jogo. Você pode colocar blocos enquanto o jogo esta pausado, porém não poderá se mover ou atirar.
tutorial.pausingAndroid.text=Se você precisar parar por alguns instantes, aperte o [orange]botão de pausa[] no canto superior esquerdo ou [orange]barra de espaço[] para pausar o jogo. Você pode colocar blocos enquanto o jogo esta pausado.
tutorial.purchaseWeapons.text=Você pode comprar novas [yellow]armas[] para seu mecha, basta abrir o menu de melhorias no canto inferior esquerdo.
tutorial.switchWeapons.text=Alterne entre suas armas clickando em seu ícone ou usando as teclas numéricas [orange][[1-9][].
tutorial.spawnWave.text=Uma horda esta vindo. Destrúa-os.
tutorial.pumpDesc.text=Em hordas mais avançadas, você talvez precise de [yellow]bombas[] para distribuir líquidos para geradores ou extratores.
tutorial.pumpPlace.text=Bombas trabalham de forma semelhante às brocas, porém elas produzem líquidos ao envés de minérios. Tente colocar uma bomba na [yellow]célula de petróleo designada[].
tutorial.conduitUse.text=Agora coloque um [orange]cano[] levando para longe da bomba.
tutorial.conduitUse2.text=E mais alguns...
tutorial.conduitUse3.text=E mais alguns...
tutorial.generator.text=Agora coloque um [orange]gerador a combustão[] no final do cano.
tutorial.generatorExplain.text=Este gerador irá produzir [yellow]energia[] do petróleo.
tutorial.lasers.text=Energia é distribuida usando [yellow]lasers[]. Gire e coloque um aqui.
tutorial.laserExplain.text=O gerador irá mover energia para o bloco do laser. Um feixe [yellow]opaco[] significa que a energia está sendo transmitida, e um feixe [yellow]transparente[] significa que não.
tutorial.laserMore.text=Você pode verificar quanta energia um bloco tem ao passar o mouse sobre eles e verificando a [yellow]barra amarela[] no topo.
tutorial.healingTurret.text=Este laser pode ser usado para energizar uma [lime]torre de reparo[]. Coloque uma aqui.
tutorial.healingTurretExplain.text=Enquanto tiver energia, esta torre irá [lime]reparar blocos próximos.[] Quando jogar, tenha certeza de construir uma dessas próximas do núcleo o mais rápido possível!
tutorial.smeltery.text=Muitos blocos precisam de [orange]aço[] para serem construídos, o que requer uma [orange]fundidora[] para ser feito. Coloque uma aqui.
tutorial.smelterySetup.text=Esta fundidora irá produzir [orange]aço[] quando receber carvão e ferro.
tutorial.end.text=E este é o fim do Tutorial! Boa Sorte!
keybind.move_x.name=move_x
keybind.move_y.name=move_y
keybind.select.name=selecionar
keybind.break.name=quebrar
keybind.shootInternal.name=atirar
keybind.zoom_hold.name=segurar_zoom
keybind.zoom.name=zoom
keybind.menu.name=menu
@@ -213,259 +126,370 @@ keybind.pause.name=pausar
keybind.dash.name=Correr
keybind.rotate_alt.name=girar_alt*
keybind.rotate.name=girar
keybind.weapon_1.name=Arma 1
keybind.weapon_2.name=Arma 2
keybind.weapon_3.name=Arma 3
keybind.weapon_4.name=Arma 4
keybind.weapon_5.name=Arma 5
keybind.weapon_6.name=Arma 6
mode.waves.name=hordas
mode.sandbox.name=sandbox
#CAIXINHA DE AREIA
mode.freebuild.name=construção \nlivre
weapon.blaster.name=Blaster
weapon.blaster.description=Atira um projétil lento e fraco.
weapon.triblaster.name=Blaster Triplo
weapon.triblaster.description=Atira 3 balas que se espalham.
weapon.multigun.name=Escopeta
weapon.multigun.description=Atira balas com baixa precisão e uma\n alta taxa de disparo.
weapon.flamer.name=Lança-Chamas
weapon.railgun.name=Rifle Sniper
weapon.flamer.description=É um lança-chamas. O que mais ele faria?
weapon.railgun.description=Atira um projétil de longo alcance.
weapon.mortar.name=Morteiro
weapon.mortar.description=Atira um projétil lento, porém devastador.
item.stone.name=Pedra
item.iron.name=Ferro
item.coal.name=Carvão
item.steel.name=Aço
item.titanium.name=Titânio
item.dirium.name=Dírio
item.thorium.name=Urânio
liquid.water.name=Água
liquid.plasma.name=Plasma
liquid.lava.name=Lava
liquid.oil.name=Petróleo
block.air.name=Ar
block.blockpart.name=blockpart
#que?
block.deepwater.name=Água Profunda
block.water.name=Água
block.lava.name=Lava
block.oil.name=Petróleo
block.stone.name=Pedra
block.blackstone.name=Pedra Escura
block.iron.name=Ferro
block.coal.name=Carvão
block.titanium.name=Titânio
block.thorium.name=Urânio
block.dirt.name=Terra
block.sand.name=Areia
block.ice.name=Gelo
block.snow.name=Neve
block.grass.name=Grama
block.sandblock.name=Bloco de Areia
block.snowblock.name=Bloco de Neve
block.stoneblock.name=Rocha
block.blackstoneblock.name=Rocha Escura
block.grassblock.name=Bloco de Grama
block.mossblock.name=Musgo
block.shrub.name=Arbusto
block.rock.name=Rocha
block.icerock.name=Rocha de Gelo
block.blackrock.name=Rocha Escura
block.dirtblock.name=Bloco de Terra
block.stonewall.name=Parede de Pedra
block.stonewall.fulldescription=Um bloco defensivo barato. Útil para proteger o núcleo e torres nas primeiras hordas.
block.ironwall.name=Parede de Ferro
block.ironwall.fulldescription=Um bloco defensivo básico. Fornece proteção contra inimigos.
block.steelwall.name=Parede de aço
block.steelwall.fulldescription=Um bloco defensivo padrão. Fornece proteção contra inimigos.
block.titaniumwall.name=Parede de Titânio
block.titaniumwall.fulldescription=Um bloco defensivo forte. Fornece proteção contra inimigos.
block.duriumwall.name=Parede de Dírio
block.duriumwall.fulldescription=Um bloco defensivo muito forte. Fornece proteção contra inimigos.
block.compositewall.name=Parede de Composto
block.compositewall.fulldescription= Um bloco defensivo extremamente forte. Fornece a melhor proteção contra inimigos.
block.steelwall-large.name=Parede Grande de Aço
block.steelwall-large.fulldescription=Um bloco defensivo padrão. Ocupa multiplas células.
block.titaniumwall-large.name=Parede Grande de Titânio
block.titaniumwall-large.fulldescription=Um bloco defensivo forte. Ocupa multiplas células.
block.duriumwall-large.name=Parede Grande de Dírio
block.duriumwall-large.fulldescription=Um bloco defensivo muito forte. Ocupa multiplas células.
block.titaniumshieldwall.name=Parede com Escudo
block.titaniumshieldwall.fulldescription=Um bloco defensivo forte, com um escudo de energia imbutido. Usa energia passivamente e para absorver projéteis inimigos. É recomendado usar distribuidores de energia para abastecer este bloco.
#A strong defensive block, with an extra built-in shield. Requires power. Uses energy to absorb enemy bullets. It is recommended to use power boosters to provide energy to this block.
block.repairturret.name=Torre de Reparo
block.repairturret.fulldescription=Lentamente repara blocos danificados dentro do seu alcance. Consome um pouco de energia.
#Repairs nearby damaged blocks in range at a slow rate. Uses small amounts of power.
block.repairturret.description=[powerinfo]Consome Energia.[white]\nRepara blocos próximos.
block.megarepairturret.name=Torre de Reparo II
block.megarepairturret.fulldescription=Repara blocos danificados dentro do seu alcance. Consome um pouco de energia.
block.megarepairturret.description=[powerinfo]Consome Energia.[white]\nRepara blocos próximos.
block.shieldgenerator.name=Gerador de Escudo
block.shieldgenerator.fulldescription= Um bloco defensivo avançado. Protege todos os blocos em um raio. Lentamente usa energia quando parado, mas rapidamente drena em contato com projéteis.
#An advanced defensive block. Shields all the blocks in a radius from attack. Uses power at a slow rate when idle, but drains energy quickly on bullet contact.
block.door.name=Porta
block.door.fulldescription=Um bloco que pode ser aberto e fechado ao tocar nele.
block.door.description=Abre e Fecha.\n[interact]Toque para alternar o estado.
block.door-large.name=Porta Grande
block.door-large.fulldescription=Um bloco que pode ser aberto e fechado ao tocar nele.
block.door-large.description=Abre e Fecha.\n[interact]Toque para alternar o estado.
block.conduit.name=Cano
block.conduit.fulldescription=Bloco de transporte de líquido básico. Funciona como uma esteira, mas com líquidos. Pode ser usado como uma ponte para inimigos e jogadores.
#Basic liquid transport block. Works like a conveyor, but with liquids. Best used with pumps or other conduits. Can be used as a bridge over liquids for enemies and players.
block.pulseconduit.name=Cano de impulso
block.pulseconduit.fulldescription=Bloco de transporte de líquido avançado. Transporta líquidos mais rapidamente e armazena mais que canos normais.
#Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
block.liquidrouter.name=Roteador de líquido
block.liquidrouter.fulldescription=Aceita líquido de uma direção e o redireciona para as outras 3 direções. Útil para dividir o líquido entre vários canos.
#Works similarly to a router. Accepts liquid input from one side and outputs it to the other sides. Useful for splitting liquid from a single conduit into multiple other conduits.
block.liquidrouter.description=Divide líquidos em 3 direções.
block.conveyor.name=Esteira
block.conveyor.fulldescription=Bloco de transporte básico. Movimenta itens para frente e automaticamente os deposita em torres ou blocos de fabricação. Pode ser girado. Pode ser usado como uma ponte para inimigos e jogadores.
#Basic item transport block. Moves items forward and automatically deposits them into turrets or crafters. Rotatable. Can be used as a bridge over liquids for enemies and players.
block.steelconveyor.name=Esteira de aço
block.steelconveyor.fulldescription=Bloco de transporte avançado. Movimenta itens mais rapidamente que esteiras normais.
#Advanced item transport block. Moves items faster than standard conveyors.
block.poweredconveyor.name=Esteira de Impulso
block.poweredconveyor.fulldescription=O Bloco supremo de transporte. Movimenta itens mais rapidamente que esteiras de aço.
#The ultimate item transport block. Moves items faster than carbide conveyors.
block.router.name=Roteador
block.router.fulldescription=Aceita itens de uma direção e os redireciona para as outras 3 direções. Pode guardar uma certa quantidade de itens. Útil para dividir materiais entre várias torres.
block.router.description=Divide materiais em 3 direções.
block.junction.name=Junção
block.junction.fulldescription=Funciona como uma ponte para 2 linhas de esteiras que se cruzam. Útil em situações onde duas esteiras carregam diferentes materiais para diferentes locais.
block.junction.description=Funciona como uma junção para as esteiras.
block.conveyortunnel.name=Túnel de esteira
block.conveyortunnel.fulldescription=Transporta itens por baixo de blocos. Para usar coloque um túnel apontado para o bloco que deseja passar por baixo, e outro apontado para o primeiro túnel.
block.conveyortunnel.description=Transporta intes por baixo de blocos.
block.liquidjunction.name=Junção de líquido
block.liquidjunction.fulldescription=Funciona como uma ponte para 2 canos que se cruzam. Útil em situações onde 2 canos diferentes carregam diferentes líquidos para diferentes locais.
block.liquiditemjunction.name=liquid-item junction
block.liquiditemjunction.fulldescription=Acts as a bridge for crossing conduits and conveyors.
block.liquiditemjunction.description=Serves as a junction for items and liquids.
block.powerbooster.name=Distribuidor de energia
block.powerbooster.fulldescription=Distribui energia para todos os blocos dentro de seu raio.
block.powerbooster.description=Distribui energia em um raio.
block.powerlaser.name=Laser
#Laser de energia?
block.powerlaser.fulldescription=Cria um laser que transmite energia para o bloco à sua frente. Melhor usado com geradores ou outros lasers. Não gera energia.
block.powerlaser.description=Transmite energia.
block.powerlaserrouter.name=laser duplo
block.powerlaserrouter.fulldescription=Divide a entrada de energia em 3 lasers. Útil em situações onde é necessário conectar muitos blocos a partir de um gerador.
block.powerlaserrouter.description=Divide a entrada de energia em 3 lasers.
block.powerlasercorner.name=laser triplo
#*Essa nomeação ficou escrota
block.powerlasercorner.fulldescription=Laser que distribui energia para duas direções ao mesmo tempo. Útil em situações onde é necessário conectar muitos blocos a partir de um gerador.
block.powerlasercorner.description=Divide a entrada de energia em 2 lasers.
block.teleporter.name=Teleportador
block.teleporter.fulldescription=Bloco avançado de transporte de itens. Teleportadores transferem itens para outros teleportadores da mesma cor. Não faz nada se não houverem outros da mesma cor. Se houverem múltiplos da mesma cor, um aleatório será selecionado. Toque nas flechas para mudar de cor.
block.teleporter.description=[interact]Tap block to config[]
block.sorter.name=Ordenador
block.sorter.fulldescription=Separa itens pelo tipo de material. O material a ser aceito é indicado pela cor do bloco. Todos os itens que correspondem ao material a ser separado são direcionados para frente, todo o resto é direcionado para os lados.
block.sorter.description=[interact]Aperte no bloco para configurar[]
block.core.name=núcleo
block.pump.name=bomba
block.pump.fulldescription=Bombeia líquidos de um bloco, geralmente água, lava ou petróleo. Os líquidos são bombeados para canos próximos.
block.pump.description=Bombeia líquidos para canos próximos.
block.fluxpump.name=Bomba de fluxo
block.fluxpump.fulldescription=Uma versão avançada da bomba comum. Guarda mais líquido e bombeia mais rápido.
block.fluxpump.description=Bombeia líquidos para canos próximos.
block.smelter.name=Fornalha
block.smelter.fulldescription=O bloco de produção essencial. Quando recebe 1 carvão e\n1 ferro produz 1 aço
block.smelter.description=Converte carvão + ferro em aço.
block.crucible.name=Usina de fundição
block.crucible.fulldescription=Um bloco de produção avançado. Quando recebe 1 titânio e 1 aço produz 1 dírio.
block.crucible.description=Converte aço + titânio em dírio.
block.coalpurifier.name=Extrator de carvão
block.coalpurifier.fulldescription=Um bloco extrator básico. Produz carvão quando fornecido com grandes quantidades de água e pedra.
block.coalpurifier.description=Converte pedra + água em carvão.
block.titaniumpurifier.name=Extrator de titânio
block.titaniumpurifier.fulldescription=Um bloco extrator padrão. Produz titânio quando fornecido com grandes quantidas de água e ferro.
block.titaniumpurifier.description=Converte água e ferro em titânio.
block.oilrefinery.name=Refinaria de Petróleo
block.oilrefinery.fulldescription=Refina grande quantidades de petróleo para produzir carvão. Útil para abastecer torres que utilizam carvão quando jazidas de carvão são escassas.
block.oilrefinery.description=Converte petróleo em carvão.
block.stoneformer.name=Formador de Pedra
block.stoneformer.fulldescription=Solidifica lava para formar pedra. Útil para produzir grandes quantidades de pedra para extratores de carvão.
block.stoneformer.description=Converte lava em pedra.
block.lavasmelter.name=Fornalha à Lava
block.lavasmelter.fulldescription=Usa lava para converter ferro em aço. Uma alternativa para a fundidora. Útil em situações onde não há carvão por perto.
block.lavasmelter.description=Converte ferro + lava em aço.
block.stonedrill.name=Broca de pedra
block.stonedrill.fulldescription=A broca essencial. Quando colocada em uma jazida de pedra gera pedra indefinidamente.
block.stonedrill.description=Gera 1 pedra a cada 4 segundos.
#Mines 1 stone every 4 seconds.
block.irondrill.name=Broca de Ferro
block.irondrill.fulldescription=Uma broca básica. Quando colocada sobre uma jazida de ferro, lentamente gera ferro.
#A basic drill. When placed on tungsten ore tiles, outputs tungsten at a slow pace indefinitely.
block.irondrill.description=Gera 1 ferro a cada 5 segundos.
block.coaldrill.name=Broca de Carvão
block.coaldrill.fulldescription=Uma broca básica. Quando colocada sobre uma jazida de carvão, lentamente gera carvão.
block.coaldrill.description=Gera 1 carvão a cada 5 segundos.
block.thoriumdrill.name=Broca de Urânio
block.thoriumdrill.fulldescription=Uma broca avançada. Quando colocada sobre uma jazida de urânio, lentamente gera urânio.
block.thoriumdrill.description=Gera 1 Urânio a cada 7 segundos.
block.titaniumdrill.name=Broca de Titânio
block.titaniumdrill.fulldescription=Uma broca avançada. Quando colocada sobre uma jazida de titânio, lentamente gera titânio.
block.titaniumdrill.description=Gera 1 Titânio a cada 5 segundos.
block.omnidrill.name=Omnibroca
block.omnidrill.fulldescription=A broca suprema. Rapidamente extrai qualquer minério em que é colocada.
#The ultimate drill. Will mine any ore it is placed on at a rapid pace.
block.omnidrill.description=Gera 1 de qualquer recurso a cada 3 segundos.
block.coalgenerator.name=Gerador à Carvão
#Crase ou não?
block.coalgenerator.fulldescription=O gerador essencial. Gera energia a partir de carvão. Distribui energia em forma de laser para os 4 lados.
block.coalgenerator.description=Gera energia a partir de carvão.
block.thermalgenerator.name=Gerador Térmico
block.thermalgenerator.fulldescription=Gera energia a partir de lava. Distribui energia em forma de laser para os 4 lados.
block.thermalgenerator.description=Gera energia a partir de lava.
block.combustiongenerator.name=Gerador à Combustão
block.combustiongenerator.fulldescription=Gera energia a partir de petróleo. Distribui energia em forma de laser para os 4 lados.
block.combustiongenerator.description=Gera energia a partir de petróleo.
block.rtgenerator.name=Gerador RTG
block.rtgenerator.fulldescription=Gera pouca quantidade de energia a partir do decaimento radioativo do urânio. Distribui energia em forma de laser para os 4 lados.
block.rtgenerator.description=Gera energia a partir de Urânio.
block.nuclearreactor.name=Reator Nuclear
block.nuclearreactor.fulldescription=Uma versão avançada do gerador RTG. Gera energia a partir de Urânio. Requer constante resfriamento à água. Altamente volátil; explodirá violentamente se não for suprido com quantiddades suficientes de água.
block.turret.name=Torre Comum
block.turret.fulldescription=Uma torre básica e barata. Usa pedra como munição. Tem alcance um pouco maior que a torre dupla.
block.turret.description=[turretinfo]Munição: pedra
block.doubleturret.name=Torre Dupla
block.doubleturret.fulldescription=Uma versão um pouco mais poderosa do que a torre comum. Usa pedra como munição. Causa um dano maior, porém tem menor alcance. Atira dois projéteis.
block.doubleturret.description=[turretinfo]Munição: pedra
block.machineturret.name=Torre Automática
block.machineturret.fulldescription=Uma torre padrão completa. Usa ferro como munição. Tem alta taxa de disparo e dano decente.
block.machineturret.description=[turretinfo]Munição: ferro
block.shotgunturret.name=Torre Splitter
#Splitter turret
block.shotgunturret.fulldescription=Uma torre padrão. Usa ferro como munição. Atira 7 balas em forma de cone. Pouco alcance, porém maior dano do que a Torre Dupla.
block.shotgunturret.description=[turretinfo]Munição: ferro
block.flameturret.name=Torre lança-\nchamas
block.flameturret.fulldescription=Torre avançada de baixo alcance. Usa carvão. Pouco alcance mas alto dano. Boa para trechos estreitos. Recomenda-se usá-la atŕas de paredes.
block.flameturret.description=[turretinfo]Munição: carvão
block.sniperturret.name=Torre Sniper
#Torre Railgun?
block.sniperturret.fulldescription=Torre avançada de longo alcance. Usa aço como munição. Dano altíssimo, porém baixa taxa de disparo. Cara para usar, porém pode ser colocada longe das linhas inimigas dado seu alcance.
block.sniperturret.description=[turretinfo]Munição: aço
block.mortarturret.name=Torre Flak
block.mortarturret.fulldescription=Torre avançada de dano em área. Usa carvão. Taxa de disparo e balas lentas, mas alto dano em alvo único ou distribuído.
block.mortarturret.description=[turretinfo]Munição: carvão
block.laserturret.name=Torre laser
block.laserturret.fulldescription=Torre de alvo único avançada. Usa energia. Boa torre de alcance médio e uso geral. Alvo único apenas. Nunca erra.
block.laserturret.description=[turretinfo]Usa Energia
block.waveturret.name=Torre Tesla
block.waveturret.fulldescription=Torre de múltiplos alvos avançada. Usa Energia. Alcance médio. Nunca erra. Dano médio-baixo, porém pode acertar vários inimigos simultaneamente com raios conectados.
block.waveturret.description=[turretinfo]Usa Energia
block.plasmaturret.name=Torre de Plasma
block.plasmaturret.fulldescription=Versão altamente avançada da Torre lança-chamas. Usa carvão. Dano altíssimo e alcance médio-baixo.
block.plasmaturret.description=[turretinfo]Munição: carvão
block.chainturret.name=Canhão automático
block.chainturret.fulldescription=A torre de tiro rápido mais avançada. Usa Urânio como munição. Atira grandes projéteis rapidamente. Alcance médio. Ocupa várias células. Extremamente resistente.
block.chainturret.description=[turretinfo]Munição: Urânio
block.titancannon.name=Canhão Titã
block.titancannon.fulldescription=A torre de longo alcance mais avançada. Usa Urânio como munição. Atira várias balas de dano em área à uma taxa de disparo média. Alto alcance. Ocupa várias células. Extremamente resistente.
block.titancannon.description=[turretinfo]Munição: Urânio
block.playerspawn.name=playerspawn
block.enemyspawn.name=enemyspawn
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.joingame=Join Game
text.addplayers=Add/Remove Players
text.newgame=New Game
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.about.button=About
text.name=Name:
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.players={0} players online
text.players.single={0} player online
text.server.mismatch=Packet error: possible client/server version mismatch.\nMake sure you and the host have the\nlatest version of Mindustry!
text.server.closing=[accent]Closing server...
text.server.kicked.kick=You have been kicked from the server!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.invalidPassword=Invalid password!
text.server.kicked.clientOutdated=Outdated client! Update your game!
text.server.kicked.serverOutdated=Outdated server! Ask the host to update!
text.server.kicked.banned=You are banned on this server.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.server.connected={0} has joined.
text.server.disconnected={0} has disconnected.
text.nohost=Can't host server on a custom map!
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.hostserver=Host Server
text.host=Host
text.hosting=[accent]Opening server...
text.hosts.refresh=Refresh
text.hosts.discovering=Discovering LAN games
text.server.refreshing=Refreshing server
text.hosts.none=[lightgray]No LAN games found!
text.host.invalid=[scarlet]Can't connect to host.
text.server.friendlyfire=Friendly Fire
text.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.trace.ip=IP: [accent]{0}
text.trace.id=Unique ID: [accent]{0}
text.trace.android=Android Client: [accent]{0}
text.trace.modclient=Custom Client: [accent]{0}
text.trace.totalblocksbroken=Total blocks broken: [accent]{0}
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.trace.lastblockbroken=Last block broken: [accent]{0}
text.trace.totalblocksplaced=Total blocks placed: [accent]{0}
text.trace.lastblockplaced=Last block placed: [accent]{0}
text.invalidid=Invalid client ID! Submit a bug report.
text.server.bans=Bans
text.server.bans.none=No banned players found!
text.server.admins=Admins
text.server.admins.none=No admins found!
text.server.add=Add Server
text.server.delete=Are you sure you want to delete this server?
text.server.hostname=Host: {0}
text.server.edit=Edit Server
text.server.outdated=[crimson]Outdated Server![]
text.server.outdated.client=[crimson]Outdated Client![]
text.server.version=[lightgray]Version: {0}
text.server.custombuild=[yellow]Custom Build
text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.joingame.title=Join Game
text.joingame.ip=IP:
text.disconnect=Disconnected.
text.disconnect.data=Failed to load world data!
text.connecting=[accent]Connecting...
text.connecting.data=[accent]Loading world data...
text.connectfail=[crimson]Failed to connect to server: [orange]{0}
text.server.port=Port:
text.server.addressinuse=Address already in use!
text.server.invalidport=Invalid port number!
text.server.error=[crimson]Error hosting server: [orange]{0}
text.save.new=New Save
text.save.none=No saves found!
text.save.delete.confirm=Are you sure you want to delete this save?
text.save.delete=Delete
text.save.export=Export Save
text.save.import.invalid=[orange]This save is invalid!
text.save.import.fail=[crimson]Failed to import save: [orange]{0}
text.save.export.fail=[crimson]Failed to export save: [orange]{0}
text.save.import=Import Save
text.save.newslot=Save name:
text.save.rename=Rename
text.save.rename.text=New name:
text.on=On
text.off=Off
text.save.autosave=Autosave: {0}
text.save.map=Map: {0}
text.save.difficulty=Difficulty: {0}
text.copylink=Copy Link
text.changelog.title=Changelog
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.changelog.error=[scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.language.restart=Please restart your game for the language settings to take effect.
text.settings.language=Language
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.info.title=[accent]Info
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.blocks.inputcapacity=Input capacity
text.blocks.outputcapacity=Output capacity
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.difficulty.insane=insane
setting.difficulty.purge=purge
setting.saveinterval.name=Autosave Interval
setting.seconds={0} Seconds
setting.fullscreen.name=Fullscreen
setting.multithread.name=Multithreading
setting.minimap.name=Show Minimap
text.keybind.title=Rebind Keys
keybind.shoot.name=shoot
keybind.block_info.name=block_info
keybind.chat.name=chat
keybind.player_list.name=player_list
keybind.console.name=console
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.name=Sand
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+221 -281
View File
@@ -1,7 +1,6 @@
text.about=Создатель [ROYAL] Anuken. [] \nИзначально игра была создана для участия в [orange] GDL [] MM Jam. \n\nАвторы: \n- Звуковые эффекты, сделаны с помощью [YELLOW] bfxr [] \n- Музыка, создана [GREEN] RoccoW [] / найденная на [lime] FreeMusicArchive.org [] \n\nОсобая благодарность: \n- [coral] MitchellFJN []: в тестировании и отзывах \n- [sky] Luxray5474 []: работа в вики, помощь в разработке \n- Все бета-тестеры на itch.io и Google Play\n\nИгра переведена полностью на русский язык [GREEN]krocotavus[] и [GREEN]lexa1549. Дополнил перевод [GREEN]Prosta4ok_ua[]\n
text.credits=Авторы
text.discord=Присоединяйтесь к нашему Discord чату!
text.changes=[SCARLET] Внимание!\n[]Изменена некоторая важная игровая механика.\n\n-[accent]Телепортеры[]теперь используют силу.\n-[accent]Печи[]и[accent]тигли[]теперь имеют максимальная емкость элемента.\n-[accent]Тигли[]теперь требует угля в качестве топлива.
text.link.discord.description=официальный discord-сервер Mindustry
text.link.github.description=Исходный код игры
text.link.dev-builds.description=Нестабильные разработки
@@ -17,7 +16,6 @@ text.highscore = [YELLOW]Новый рекорд!
text.lasted=Вы продержались до волны
text.level.highscore=Рекорд: [accent]{0}
text.level.delete.title=Подтвердите удаление
text.level.delete = Вы уверены,что хотите удалить эту карту \"[orange]\"{0}?
text.level.select=Выбор уровня
text.level.mode=Режим игры:
text.savegame=Сохранить игру
@@ -27,9 +25,7 @@ text.newgame= Новая игра
text.quit=Выход
text.about.button=Об игре
text.name=Название:
text.public = Общие
text.players=Игроков на сервере: {0}
text.server.player.host={0} (хост)
text.players.single={0} игрок на сервере
text.server.mismatch=Ошибка пакета: возможное несоответствие версии клиента / сервера. Убедитесь, что у вас и у создателя сервера установлена ​​последняя версия Mindustry!
text.server.closing=[accent]Закрытие сервера...
@@ -61,8 +57,6 @@ text.trace.id = Уникальный идентификатор: [accent]{0}
text.trace.android=Клиент Android: [accent]{0}
text.trace.modclient=Пользовательский клиент: [accent]{0}
text.trace.totalblocksbroken=Всего разбитых блоков: [accent]{0}
e.structureblocksbroken = Структурных блоков сломанных: [accent]{0}
text.trace.lastblockbroken=Последний сломанный блок:[accent]{0}
text.trace.totalblocksplaced=Всего размещено блоков: [accent]{0}
text.trace.lastblockplaced=Последний размещенный блок: [accent]{0}
@@ -83,7 +77,6 @@ text.confirmban = Вы действительно хотите заблокир
text.confirmunban=Вы действительно хотите разблокировать этого игрока?
text.confirmadmin=Вы уверены, что хотите сделать этого игрока администратором?
text.confirmunadmin=Вы действительно хотите удалить статус администратора с этого игрока?
text.joingame.byip = Присоединиться по IP ...
text.joingame.title=Присоединиться к игре
text.joingame.ip=IP:
text.disconnect=Отключён\n
@@ -95,8 +88,6 @@ text.server.port = Порт:
text.server.addressinuse=Адрес уже используется!
text.server.invalidport=Неверный номер порта!
text.server.error=[crimson]Ошибка создания сервера: [orange] {0}
text.tutorial.back = <назад
text.tutorial.next = далее>
text.save.new=Новое сохранение
text.save.overwrite=Вы уверены,что хотите перезаписать этот слот для сохранения?
text.overwrite=Перезаписать
@@ -148,7 +139,6 @@ text.enemies = {0} Противников
text.enemies.single={0} Противник
text.loadimage=Загрузить изображение
text.saveimage=Сохранить изображение
text.oregen = Генерация руд
text.editor.badsize=[orange]Недопустимый формат изображения! [] \nДопустимый формат карты: {0}
text.editor.errorimageload=Ошибка загрузки изображения: [orange] {0}
text.editor.errorimagesave=Ошибка сохранения изображения: [orange] {0}
@@ -159,21 +149,12 @@ text.editor.savemap = Сохранить\nкарту
text.editor.loadimage=Загрузить \nизображение
text.editor.saveimage=Сохранить \nизображение
text.editor.unsaved=[scarlet]У вас есть не сохраненные изменения![] \nВы уверены,что хотите выйти?
text.editor.brushsize = Размер кисти: {0}
text.editor.noplayerspawn = На этой карте нет точки появления игрока!
text.editor.manyplayerspawns = На карте не может быть больше одной точки появления игрока!
text.editor.manyenemyspawns = Не может быть больше {0} вражеских точек появления!
text.editor.resizemap=Изменить размер карты
text.editor.resizebig = [scarlet]Внимание! \n[]Карты размером больше 256 единиц могут быть не стабильны и тормозить.
text.editor.mapname=Название карты:
text.editor.overwrite=[accent]Внимание! \nЭто перезапишет уже существующую карту.
text.editor.failoverwrite = [crimson]Невозможно перезаписать стандартную карту!
text.editor.selectmap=Выберите карту для загрузки:
text.width=Ширина:
text.height=Высота:
text.randomize = Рандомизировать
text.apply = Применить
text.update = Обновить
text.menu=Меню
text.play=Играть
text.load=Загрузить
@@ -194,67 +175,25 @@ text.upgrades = Улучшения
text.purchased=[LIME]Создан!
text.weapons=Оружие
text.paused=Пауза
text.respawn = Возрождение через
text.info.title=[accent]Информация
text.error.title=[crimson]Произошла ошибка
text.error.crashmessage = [SCARLET]Произошла непредвиденная ошибка,которая могла вызвать сбой.[]Пожалуйста, сообщите точные обстоятельства разработчику,при которых эта ошибка возникла : [ORANGE]anukendev@gmail.com[]
text.error.crashtitle=Произошла ошибка
text.mode.break = Режим сноса: {0}
text.mode.place = Режим размещения: {0}
placemode.hold.name = линия
placemode.areadelete.name = зона
placemode.touchdelete.name = касание
placemode.holddelete.name = удержание
placemode.none.name = ничего
placemode.touch.name = Касание
placemode.cursor.name = курсор
text.blocks.extrainfo = [accent]дополнительная информация о блоке:
text.blocks.blockinfo=Информация о блоке
text.blocks.powercapacity=Вместимость энергии
text.blocks.powershot=Энергия / выстрел
text.blocks.powersecond = Энергия / в секунду
text.blocks.powerdraindamage = Поглощение энергии / урон
text.blocks.shieldradius = Радиус щита
text.blocks.itemspeedsecond = Скорость предметов / в секунду
text.blocks.range = Дальность
text.blocks.size=Размер
text.blocks.powerliquid = Энергия / Жидкость
text.blocks.maxliquidsecond = Макс. Жидкость / в секунду
text.blocks.liquidcapacity=Вместимость жидкости
text.blocks.liquidsecond = Жидкость / в секунду
text.blocks.damageshot = Урон / выстрел
text.blocks.ammocapacity = Вместимость боеприпасов
text.blocks.ammo = боеприпасы
text.blocks.ammoitem = боеприпасы / предмет
text.blocks.maxitemssecond=Макс. Количество предметов / в секунду
text.blocks.powerrange=Диапазон мощности энергии
text.blocks.lasertilerange = Дальность лазера
text.blocks.capacity = Вместимость
text.blocks.itemcapacity=Вместимость предметов
text.blocks.maxpowergenerationsecond = Макс. выработка энергии / в секунду
text.blocks.powergenerationsecond = Выработка энергии / в секунду
text.blocks.generationsecondsitem = Выработка секунд / предмет
text.blocks.input = Прием
text.blocks.inputliquid=Прием жидкости
text.blocks.inputitem=Прием предмета
text.blocks.output = Вывод
text.blocks.secondsitem = Секунды / предмет
text.blocks.maxpowertransfersecond = Максимальная передача энергии / секунда
text.blocks.explosive=Взрывоопасно!
text.blocks.repairssecond = Ремонт / в секунду
text.blocks.health=Здоровье
text.blocks.inaccuracy=Разброс
text.blocks.shots=Выстрелы
text.blocks.shotssecond = Выстрелов / в секунду
text.blocks.fuel = топливо
text.blocks.fuelduration = Продолжительность действия топлива
text.blocks.maxoutputsecond = Макс. Вывод / в секунду
text.blocks.inputcapacity=Вместимость ввода
text.blocks.outputcapacity=Вместимость вывода
text.blocks.poweritem = Энергия / предмет
text.placemode = Режим размещения
text.breakmode = Режим сноса
text.health = здоровье
setting.difficulty.easy=легко
setting.difficulty.normal=нормально
setting.difficulty.hard=тяжело
@@ -262,7 +201,6 @@ setting.difficulty.insane = нереально
setting.difficulty.purge=зачистка
setting.difficulty.name=Сложность
setting.screenshake.name=Дрожание экрана
setting.smoothcam.name = Плавная камера
setting.indicators.name=Индикаторы противников
setting.effects.name=Эффекты на экране
setting.sensitivity.name=Чувствительность контроллера
@@ -273,9 +211,7 @@ setting.multithread.name = Многопоточность
setting.fps.name=Показать FPS
setting.vsync.name=Верт. синхронизация
setting.lasers.name=Показывать энергетические лазеры
setting.previewopacity.name = Прозрачность объкта при предв. просм.
setting.healthbars.name=Показать полоски здоровья объекта
setting.pixelate.name = Пикселизация экрана
setting.musicvol.name=Громкость музыки
setting.mutemusic.name=Заглушить музыку
setting.sfxvol.name=Громкость звуковых эффектов
@@ -293,50 +229,6 @@ map.grassland.name = луг
map.tundra.name=тундра
map.spiral.name=спираль
map.tutorial.name=обучение
tutorial.intro.text = [yellow]Добро пожаловать в обучение.[] Чтобы начать нажмите «далее».
tutorial.moveDesktop.text = Для перемещения используйте [orange][[WASD][] клавиши. Удерживайте [orange]shift[] для ускорения. Удерживайте [orange]CTRL[] при использовании [orange]​​колесика мыши[] для увеличения или уменьшения масштаба.
tutorial.shoot.text = Используйте мышь для прицеливания, удерживайте [orange]левую кнопку мыши[],чтобы выстрелить. Попробуйте на [yellow]цели[].
tutorial.moveAndroid.text = Чтобы изменить вид, перетащите палец по экрану. Зажмите и разведите двумя пальцами,чтобы увеличить или уменьшить степень приближения.
tutorial.placeSelect.text = Попробуйте выбрать [yellow]конвейер[] из меню блоков внизу справа.
tutorial.placeConveyorDesktop.text = Используйте [orange][[колёсико мыши][],чтобы повернуть конвейер лицом [orange]вперед[], поместите его в [yellow]отмеченное место[],используя [orange][[левую кнопку мыши]].
tutorial.placeConveyorAndroid.text = Используйте [orange][[кнопку поворота][], чтобы повернуть конвейер лицом [orange]вперед[], перетащите его на место одним пальцем, затем поместите его в [yellow]отмеченное место[],используя [orange][[галочку][].
tutorial.placeConveyorAndroidInfo.text = Кроме того, вы можете нажать на значок перекрестия в левом нижнем углу, чтобы перейти в [orange][[режим касания][] и поместить блоки, нажав на экран. В режиме касания блоки можно поворачивать стрелкой в ​​левом нижнем углу. Нажмите [yellow]далее[],чтобы попробовать.
tutorial.placeDrill.text = Теперь, выберите и поместите [yellow]каменный бур[] в отмеченное место.
tutorial.blockInfo.text = Если вы хотите узнать больше о блоке, вы можете нажать на [orange]знак вопроса[] в правом верхнем углу, чтобы прочитать его описание.
tutorial.deselectDesktop.text = Вы можете отменить выбор блока, используя [orange][[правую кнопку мыши][].
tutorial.deselectAndroid.text = Вы можете отменить выбор блока, нажав кнопку [orange]X[].
tutorial.drillPlaced.text = Бур теперь производит [yellow]камень,[] выведет его на конвейер, а затем переместит его в [yellow]ядро​[]
tutorial.drillInfo.text = Разным рудам нужны разные буры. Камень требует каменный бур, железо требует железный бур и т.д.
tutorial.drillPlaced2.text = Перемещение предметов в ядро ​​помещает их в ваш [yellow]инвентарь для предметов[], в левом верхнем углу. Размещение блоков использует предметы из вашего инвентаря.
tutorial.moreDrills.text = Вы можете соединить много буров и конвейеров вместе, вот так.
tutorial.deleteBlock.text = Вы можете удалить блоки, щелкнув [orange]правой кнопкой мыши[] на блоке, который вы хотите удалить. Попробуйте удалить этот конвейер.
tutorial.deleteBlockAndroid.text = Вы можете удалить блоки [orange]выбрав перекрестие []в меню режима сноса[orange][] в левом нижнем углу и нажать на блок. Попробуйте удалить этот конвейер.
tutorial.placeTurret.text = Теперь выберите и поместите [yellow]турель[] в [yellow]отмеченную позицию[].
tutorial.placedTurretAmmo.text = Эта турель теперь принимает [yellow]боеприпасы[] от конвейера. Вы можете видеть, сколько патронов у него есть, посмотрев на зеленую полосу над ней [green][].
tutorial.turretExplanation.text = Турели автоматически стреляют в ближайшего противника в радиусе действия, если у них достаточно боеприпасов.
tutorial.waves.text = Каждые [yellow]60[] секунд, волна [coral]противников[] будет появляться в определенных местах и будет ​​пытаться уничтожить ядро.
tutorial.coreDestruction.text = Ваша цель - [yellow]защитить ядро​​[]. Если ядро будет ​​уничтожено, то вы [cotal]проиграете[]
tutorial.pausingDesktop.text = Если вам нужен будет перерыв, нажмите кнопку [orange]пауза[] в верхнем левом углу или [orange]пробел[],чтобы приостановить игру. Вы можете выбирать и размещать блоки во время паузы, но не можете перемещаться или стрелять.
tutorial.pausingAndroid.text = Если вам нужен будет перерыв, нажмите кнопку [orange]пауза[] в левом верхнем углу, чтобы приостановить игру. Вы можете по-прежнему размещать выбранные блоки во время паузы.
tutorial.purchaseWeapons.text = Вы можете приобрести новое [yellow]оружие[] для своего меха, открыв меню обновлений в левом нижнем углу.
tutorial.switchWeapons.text = Переключаться между оружием можно, щелкнув на его значок в левом нижнем углу или используя цифры [orange][[1-9][].
tutorial.spawnWave.text = Сейчас прибудет волна. Уничтожьте их.
tutorial.pumpDesc.text = В более поздних волнах, вы должны использовать [yellow]насосы[] для распределения жидкостей для генераторов или экстракторов.
tutorial.pumpPlace.text = Насосы работают аналогично бурам, за исключением того, что они производят жидкости вместо предметов. Попробуйте поместить насос на [yellow]обозначенную нефть[].
tutorial.conduitUse.text = Теперь поместите [orange]трубопровод[], ведущий от насоса.
tutorial.conduitUse2.text = И еще немного ...
tutorial.conduitUse3.text = И еще немного ...
tutorial.generator.text = Теперь поместите блок[orange]генератор сжигания[] в конец трубопровода.
tutorial.generatorExplain.text = Этот генератор теперь создаст [yellow]энергию[] из нефти.
tutorial.lasers.text = Энергия распределяется с использованием [yellow]электрических лазеров[]. Поверните и поместите его здесь.
tutorial.laserExplain.text = Теперь генератор передаст энергию в лазерный блок. [yellow]Непрозрачный[] луч означает, что он в настоящее время передает электричество, а [yellow]прозрачный[] луч означает, что он не передает электричество.
tutorial.laserMore.text = Вы можете проверить,какой заряд у блока, наблюдая за [yellow]желтой полосой[] над ним.
tutorial.healingTurret.text = Этот лазер можно использовать для питания [lime]ремонтной турели[]. Поместите её сюда.
tutorial.healingTurretExplain.text = Пока она имеет заряд, эта турель будет [lime]ремонтировать соседние блоки.[] Когда вы играете, убедитесь, что вы имеете такую на своей базе как можно быстрее.
tutorial.smeltery.text = Для многих блоков требуется [orange]сталь[], для этого требуется [orange]плавильный завод[]. Поместите его сюда.
tutorial.smelterySetup.text = Этот завод теперь производит [orange]сталь[] из поступающего железа, используя уголь в качестве топлива.
tutorial.tunnelExplain.text = Также обратите внимание, что предметы проходят через [orange] туннельный блок [] и появляются на другой стороне, проходя через каменный блок. Имейте в виду, что туннели могут проходить только до двух блоков.
tutorial.end.text = На этом обучение закончено! Удачи!
text.keybind.title=Переназначить клавиши
keybind.move_x.name=движение_x
keybind.move_y.name=движение_y
@@ -354,12 +246,6 @@ keybind.player_list.name = список_игроков
keybind.console.name=консоль
keybind.rotate_alt.name=вращать_alt
keybind.rotate.name=вращать
keybind.weapon_1.name = Оружие_1
keybind.weapon_2.name = Оружие_2
keybind.weapon_3.name = Оружие_3
keybind.weapon_4.name = Оружие_4
keybind.weapon_5.name = Оружие_5
keybind.weapon_6.name = Оружие_6
mode.text.help.title=Описание режимов
mode.waves.name=волны
mode.waves.description=в нормальном режиме. ограниченные ресурсы и автоматические наступающие волны.
@@ -367,189 +253,243 @@ mode.sandbox.name = песочница
mode.sandbox.description=бесконечные ресурсы и нет таймера для волн.
mode.freebuild.name=свободная\nстройка
mode.freebuild.description=ограниченные ресурсы и нет таймера для волн.
upgrade.standard.name = стандарт
upgrade.standard.description = Стандартный мех.
upgrade.blaster.name = Бластер
upgrade.blaster.description = Стреляет медленной, слабой пулей.
upgrade.triblaster.name = трибластер
upgrade.triblaster.description = Стреляет 3 пулями в разброс.
upgrade.clustergun.name = Кластерная пушка
upgrade.clustergun.description = Стреляет неточным распространением взрывных гранат.
upgrade.beam.name = Лучевая пушка
upgrade.beam.description = Стреляет пробивающим лазерным луч высокой дальности.
upgrade.vulcan.name = вулкан
upgrade.vulcan.description = Стреляет шквалом быстрых пуль.
upgrade.shockgun.name = шоковая пушка
upgrade.shockgun.description = Стреляет взрывным зарядом заряженной шрапнели.
item.stone.name=камень
item.iron.name = железо
item.coal.name=Уголь
item.steel.name = сталь
item.titanium.name=титан
item.dirium.name = дириум
item.thorium.name=уран
item.sand.name=песок
liquid.water.name=Вода
liquid.plasma.name = Плазма
liquid.lava.name=лава
liquid.oil.name=Нефть
block.weaponfactory.name = оружейный завод
block.weaponfactory.fulldescription=Используется для создания оружия для игрока. Нажмите для использования. Автоматически извлекает ресурсы из ядра.
block.air.name = воздух
block.blockpart.name = часть блока
block.deepwater.name = глубоководье
block.water.name = вода
block.lava.name = лава
block.oil.name = нефть
block.stone.name = Камень
block.blackstone.name = черный камень
block.iron.name = железо
block.coal.name = уголь
block.titanium.name = титан
block.thorium.name = уран
block.dirt.name = земля
block.sand.name = песок
block.ice.name = лед
block.snow.name = снег
block.grass.name = трава
block.sandblock.name = блок песка
block.snowblock.name = блок снега
block.stoneblock.name = блок камня
block.blackstoneblock.name = блок черного камня
block.grassblock.name = блок травы
block.mossblock.name = блок мха
block.shrub.name = кустарник
block.rock.name = валун
block.icerock.name = замерзший валун
block.blackrock.name = черный валун
block.dirtblock.name = блок земли
block.stonewall.name = каменная стена
block.stonewall.fulldescription = Дешевый оборонительный блок. Полезен для защиты ядра и турелей в первых волнах.
block.ironwall.name = железная стена
block.ironwall.fulldescription = Основной защитный блок. Обеспечивает защиту от противников.
block.steelwall.name = стальная стена
block.steelwall.fulldescription = Стандартный защитный блок. адекватная защита от противников.
block.titaniumwall.name = титановая стена
block.titaniumwall.fulldescription = Сильный защитный блок. Обеспечивает защиту от противников.
block.duriumwall.name = стена из дириума
block.duriumwall.fulldescription = Очень прочный защитный блок. Обеспечивает защиту от противников.
block.compositewall.name = композитная стена
block.steelwall-large.name = большая стальная стена
block.steelwall-large.fulldescription = Стандартный защитный блок. Охватывает несколько клеток.
block.titaniumwall-large.name = большая титановая стена
block.titaniumwall-large.fulldescription = Сильный защитный блок. Охватывает несколько клеток.
block.duriumwall-large.name = большая стена из дириума
block.duriumwall-large.fulldescription = Очень сильный защитный блок. Охватывает несколько клеток.
block.titaniumshieldwall.name = экранированная стена
block.titaniumshieldwall.fulldescription = Прочный защитный блок с дополнительным встроенным щитом. Требует энергию. Использует энергию для поглощения вражеских пуль. Для обеспечения энергией этого блока рекомендуется использовать усилители энергии.
block.repairturret.name = ремонтная турель
block.repairturret.fulldescription = Ремонтирует близлежащие поврежденные блоки в радиусе действия. Использует небольшое количество энергии.
block.megarepairturret.name = ремонтная турель II
block.megarepairturret.fulldescription = Ремонтирует близлежащие поврежденные блоки в радиусе действия с приличной скоростью. Использует энергию.
block.shieldgenerator.name = Генератор щита
block.shieldgenerator.fulldescription = Передовой защитный блок. Защищает все блоки в радиусе от атаки. Использует мало энергии когда бездействует, но быстро разряжается при контакте с пулями.
block.door.name=дверь
block.door.fulldescription = Блок, который можно открыть и закрыть, нажав на него.
block.door-large.name=большая дверь
block.door-large.fulldescription = Блок, который можно открыть и закрыть, нажав на него.
block.conduit.name=трубопровод
block.conduit.fulldescription = Основной блок транспортировки жидкости. Работает как конвейер, но с жидкостями. Лучше всего использовать насосы или другие трубопроводы. Может использоваться как мост через жидкости для противников и игроков.
block.pulseconduit.name=импульсный трубопровод
block.pulseconduit.fulldescription = Передовой блок транспортировки жидкости. Перемещает жидкости быстрее и хранит больше, чем стандартные трубопроводы.
block.liquidrouter.name=Маршрутизатор житкостей
block.liquidrouter.fulldescription = Работает аналогично маршрутизатору. Принимает жидкость с одной стороны и выводит ее на другие стороны. Полезно для разделения жидкости из одного трубопровода на несколько других трубопроводов.
block.conveyor.name=конвейер
block.conveyor.fulldescription = Основной транспортный блок. Перемещает предметы вперед и автоматически перекладывает их в турели или в крафтеры. Могут вращаться . Может использоваться как мост через жидкости для противников и игроков.
block.steelconveyor.name = стальной конвейер
block.steelconveyor.fulldescription = Передовой транспортный блок предметов. Перемещает предметы быстрее, чем стандартные конвейеры.
block.poweredconveyor.name = импульсный конвейер
block.poweredconveyor.fulldescription = Лучший транспортный блок. Перемещает предметы быстрее, чем стальные конвейеры.
block.router.name=Маршрутизатор
block.router.fulldescription = Принимает предметы с одного направления и выводит их в 3 других направлениях. Может также хранить определенное количество предметов. Используется для разделения материалов с одного бура на несколько турелей
block.junction.name=Перекресток
block.junction.fulldescription = Действует как мост для двух конвейерных лент. Полезно в ситуациях с двумя различными конвейерами, несущими разные материалы в разные места.
block.conveyortunnel.name = конвейерный туннель
block.conveyortunnel.fulldescription = Перемещает предмет под блоками. Чтобы использовать, поместите один туннель, ведущий в блок, который должен быть туннелирован, и один на другой стороне. Убедитесь, что оба туннеля обращены к противоположным направлениям, которые относятся к блокам, которые они принимают или выводят.
block.liquidjunction.name=Перекресток для жидкостей
block.liquidjunction.fulldescription = Действует как мост для двух пересекающихся трубопроводов. Полезно в ситуациях с двумя различными каналами, перемещающими различные жидкости в разные места.
block.liquiditemjunction.name = Распределитель жидкостей и предметов
block.liquiditemjunction.fulldescription = Действует как мост для пересекающихся трубопроводов и конвейеров.
block.powerbooster.name = усилитель энергии
block.powerbooster.fulldescription = Распределяет электричество всем блокам в пределах своего радиуса.
block.powerlaser.name = Энергетический лазер
block.powerlaser.fulldescription = Создает лазер, который передает питание блоку перед ним. Не генерирует никакой энергии. Лучше всего использовать с генераторами или другими лазерами.
block.powerlaserrouter.name = лазерный маршрутизатор
block.powerlaserrouter.fulldescription = Лазер, который одновременно передает электричество в три направления. Полезно в тех ситуациях, когда требуется питание нескольким блокам от одного генератора.
block.powerlasercorner.name = лазерный угол
block.powerlasercorner.fulldescription = Лазер, распределяющий энергию сразу на два направления. Полезно в тех ситуациях, когда требуется питание нескольким блокам от одного генератора, а маршрутизатор не годится.
block.teleporter.name = телепорт
block.teleporter.fulldescription = Улучшенный транспортный блок предметов. Телепортеры передают предметы в другие телепорты одного цвета. Ничего не происходит, если нет телепортеров одного цвета. Если несколько телепортеров имеют один и тот же цвет, выбирается случайный. Использует энергия. Нажмите, чтобы изменить цвет.
block.sorter.name=сортировщик
block.sorter.fulldescription = Сортирует предмет по типу материала. Материал для приема указывается цветом в блоке. Все предметы, соответствующие материалу сортировки, выводятся вперед, все остальное выводится влево и вправо.
block.core.name = Ядро
block.pump.name = Насос
block.pump.fulldescription = Качают жидкости из блока источнка - обычно вода, лава или нефть. Выводит жидкость в соседние трубопроводы.
block.fluxpump.name = Флюсовый насос
block.fluxpump.fulldescription = Передовая версия насоса. Хранит больше жидкости и качает быстрее.
block.smelter.name=Плавильный завод
block.smelter.fulldescription = Основной блок крафтер. При вводе 1 х железа и 1 х угля выдается одна сталь.
block.crucible.name = Тигель
block.crucible.fulldescription = Продвинутый блок крафтер. При вводе 1х титана и 1х стали выдается один дириум.
block.coalpurifier.name = Экстрактор угля
block.coalpurifier.fulldescription = Стандартный экстрактор. Выдает уголь, когда подается большое количество воды и камня.
block.titaniumpurifier.name = Экстрактор титана
block.titaniumpurifier.fulldescription = Стандартный экстрактор. Выдает титан при подаче большого количества воды и железа.
block.oilrefinery.name = Нефтеперерабатывающий Завод
block.oilrefinery.fulldescription = Перерабатывает большое количество нефти в уголь. Полезно для заправки турелей использующих уголь, когда на карте дефицит угля.
block.stoneformer.name = Формировщик камня
block.stoneformer.fulldescription = Охлаждает жидкую лаву, делая из него камень. Полезен для производства большого количества камней для ​угольного очистителя
block.lavasmelter.name = лавовый плавильный завод
block.lavasmelter.fulldescription = Использует лаву для переработки железа в сталь. Альтернатива плавильным заводам. Полезно в ситуациях, когда угля мало.
block.stonedrill.name = каменный бур
block.stonedrill.fulldescription = Важный бур. Когда он помещается на каменную клетку, медленно, бесконечно добывает камень.
block.irondrill.name = Железный бур
block.irondrill.fulldescription = Основной бур. При размещении на клетке с железной рудой, выдает железо медленным темпом на неопределенный срок.
block.coaldrill.name = угольный бур
block.coaldrill.fulldescription = Основной бур. При размещении на клетке с угольной рудой происходит медленный темп добычи угля на неопределенный срок.
block.thoriumdrill.name = урановый бур
block.thoriumdrill.fulldescription = Передовой бур. При размещении на клетке с урановой рудой выдает уран медленным темпом на неопределенный срок.
block.titaniumdrill.name = титановый бур
block.titaniumdrill.fulldescription = Продвинутый бур. При размещении на клетках с титановой рудой выводится титан медленным темпом на неопределенный срок.
block.omnidrill.name = Адаптивный бур
block.omnidrill.fulldescription = Идеальный бур. Будет добывать любую руду на которой стоит с безумным темпом\n
block.coalgenerator.name = угольный генератор
block.coalgenerator.fulldescription = Важный генератор. Генерирует энергию из угля. Выводит энергию в качестве лазеров на 4 стороны.
block.thermalgenerator.name = термальный генератор
block.thermalgenerator.fulldescription = Генерирует энергию из лавы. Выводит электричество в качестве лазеров на 4 стороны.
block.combustiongenerator.name = генератор внутреннего сгорания
block.combustiongenerator.fulldescription = Генерирует энергию из нефти. Выводит энергию в качестве лазеров на 4 стороны.
block.rtgenerator.name = Генератор RTG
block.rtgenerator.fulldescription = Генерирует небольшое количество энергии из распада радиоактивного урана. Выводит энергию в качестве лазеров на 4 стороны.
block.nuclearreactor.name = ядерный реактор
block.nuclearreactor.fulldescription = Передовая версия генератора RTG и идеальный источник энергии. Генерирует энергию из урана. Требуется постоянное водяное охлаждение.Крайне взрывоопасен; сильно взорвётся при подаче недостаточного количества хладагента.
block.turret.name = Турель
block.turret.fulldescription = Базовая, дешевая турель. Использует камень для боеприпасов. Имеет немного больше диапазон, чем двойная турель.
block.doubleturret.name = двойная турель
block.doubleturret.fulldescription = Немного более мощная версия турели. Использует камень для боеприпасов. Значительно больший урон, но имеет более низкий диапазон. Выстреливает двумя пулями.
block.machineturret.name = Турель Гатлинга
block.machineturret.fulldescription = Стандартная универсальная турель. Использует железо для боеприпасов. Обладает быстрой скоростью выстрелов с приличным уроном.
block.shotgunturret.name = разветвленная турель\n
block.shotgunturret.fulldescription = Стандартная турель. Использует железо для боеприпасов. Стреляет в разброс 7 пулями. Маленький диапазон, но более высокий уровень урона по сравнению с турелью Гатлинга.
block.flameturret.name = Огнемётная турель\n
block.flameturret.fulldescription = Продвинутая турель для защиты на близком расстоянии. Использует уголь для боеприпасов. Имеет очень маленький диапазон, но очень высокий урон. Хорошо подходит на близких расстояниях. Рекомендуется использовать со стенами.
block.sniperturret.name = Турель-рельсотрон
block.sniperturret.fulldescription = Продвинутая дальнобойная турель. Использует сталь для боеприпасов. Очень высокий урон, но низкая скорость стрельбы. Дорога в использовании, но может быть помещена далеко от вражеских линий из-за её дальности.
block.mortarturret.name = Зенитная турель
block.mortarturret.fulldescription = Продвинутая турель с уроном по зоне. Использует уголь для боеприпасов. Очень низкая скорость стрельбы и пуль, но очень высокий урон по одной цели и зоне. Полезен для больших толп врагов.
block.laserturret.name = лазерная турель
block.laserturret.fulldescription = Продвинутая турель. Использует энергию. Хорошая , универсальная турель средней дальности. Атакует только одну цель. Никогда не промахивается.
block.waveturret.name = Тесла-турель
block.waveturret.fulldescription = Продвинутая многоцелевая турель. Использует энергию. Средняя дальность. Никогда не промахивается. В среднем, может нанести небольшой урон, но он может поразить нескольких противников одновременно с помощью цепной молнии.
block.plasmaturret.name = плазменная турель
block.plasmaturret.fulldescription = Высокотехнологичная версия огнеметной турели. Использует уголь в качестве боеприпасов. Очень высокий урон, дальность между маленькой и средней.
block.chainturret.name = Пулемётная турель
block.chainturret.fulldescription = Самая лучшая, скорострельная турель. Использует уран для боеприпасов. Стреляет большими снарядами с высокой скорострельностью. Средняя дальность. Охватывает несколько клеток. Чрезвычайно прочная.
block.titancannon.name = Пушка-титан
block.titancannon.fulldescription = Самая лучшая, дальнобойная турель. Использует уран как боеприпасы. Стреляет большими снарядами с уроном по зоне со средней скоростью стрельбы. Большая дальность. Охватывает несколько клеток. Чрезвычайно прочная.
block.playerspawn.name = Точка появления игрока
block.enemyspawn.name = Точка появления врага
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+224 -280
View File
@@ -1,7 +1,6 @@
text.about=[ROYAL] Anuken tarafından oluşturuldu [] - [SKY] anukendev@gmail.com [] Aslen [turuncu] GDL [] Metal Monstrosity Jam. Kredi: - [SARI] ile yapılan SFX bfxr [] - [YEŞİL] RoccoW tarafından yapılan müzik [] / [kireç] bulunan FreeMusicArchive.org [] Özel teşekkürler: - [mercan] MitchellFJN []: Kapsamlı oyun testi ve geri bildirim - [sky] Luxray5474 []: wiki çalışması, kod katkıları - [kireç] Epowerj []: kod sistemi yapılandırması, icon - itch.io ve Google Play'deki tüm beta test kullanıcıları\n
text.credits=Yapımcılar
text.discord=Mindustry Discord'una katılın!
text.changes = [SCARLET] Dikkat! [] Bazı önemli oyun mekanikleri değişti. - [Aksanın] teletaşıyıcı [] şimdi artık gücü kullanıyor. - [accent] dökümcü [] ve [accent] pota [] artık bir maksimum ürün kapasitesine sahip. - [Aksan] pota [] artık yakıt olarak kömür gerektiriyor.
text.link.discord.description=Resmi Mindustry Discord iletişim kanalı
text.link.github.description=Oyunun kaynak kodu
text.link.dev-builds.description=Geliştirme altında olan sürüm
@@ -11,13 +10,12 @@ text.link.google-play.description = Google Play mağaza sayfası
text.link.wiki.description=Resmi Mindustry Wikipedi'si
text.linkfail=Bağlantı açılamadı! URL, yazı tahtanıza kopyalandı.
text.editor.web=Web sürümü editörü desteklemiyor! Editörü kullanmak için oyunu indirin.
text.multiplayer.web = Oyunun bu sürümü çok oyunculuyu desteklemiyor! Tarayıcınızdan çok oyunculu oynamak için, itch.io sayfasındaki \"çok oyunculu web sürümü\" bağlantısını kullanın.
text.multiplayer.web=Oyunun bu sürümü çok oyunculuyu desteklemiyor! Tarayıcınızdan çok oyunculu oynamak için, itch.io sayfasındaki "çok oyunculu web sürümü" bağlantısını kullanın.
text.gameover=Çekirdek yok edildi.
text.highscore=[SARI] Yeni yüksek puan!
text.lasted=Dalgaya kadar sürdün
text.level.highscore=Yüksek Puan: [accent] {0}
text.level.delete.title=Silmeyi onaylayın
text.level.delete = \"[Orange] {0} \" Haritayı silmek istediğinizden emin misiniz?
text.level.select=Seviye Seç
text.level.mode=Oyun Modu
text.savegame=Oyunu Kaydet
@@ -27,9 +25,7 @@ text.newgame = Yeni Oyun
text.quit=Çık
text.about.button=Hakkında
text.name=Adı:
text.public = Herkese açık
text.players=1090 oyuncu çevrimiçi
text.server.player.host = Sunucu
text.players.single={0} Oyuncu Çevrimiçi
text.server.mismatch=Paket hatası: olası istemci / sunucu sürümü uyuşmazlığı. Siz ve ev sahibi Mindustry'nin en son sürümüne sahip olduğunuzdan emin olun!
text.server.closing=[accent] Sunucu kapatılıyor ...
@@ -81,7 +77,6 @@ text.confirmban = Bu oyuncuyu yasaklamak istediğinizden emin misiniz?
text.confirmunban=Bu oyuncunun yasağını kaldırmak istediğinden emin misin?
text.confirmadmin=Bu oyuncunun yönetici yapmak istediğinden emin misin?
text.confirmunadmin=Bu oyuncudan yönetici durumunu kaldırmak istediğinizden emin misiniz?
text.joingame.byip = IP ile Katılın ...
text.joingame.title=Oyuna katılmak
text.joingame.ip=IP:
text.disconnect=Bağlantı Kesildi
@@ -93,8 +88,6 @@ text.server.port = Liman
text.server.addressinuse=Adres çoktan kullanımda!
text.server.invalidport=Bağlantı noktası numarası geçersiz.
text.server.error=[crimson] Sunucu barındırma hatası: [orange] {0}
text.tutorial.back = <Önceki
text.tutorial.next = İleri >
text.save.new=6349,Yeni Kayıt
text.save.overwrite=Bu kayıt yuvasının üzerine yazmak istediğinizden emin misiniz?
text.overwrite=Üzerine Yaz
@@ -145,7 +138,6 @@ text.enemies = {0} Düşmanlar
text.enemies.single={0} Düşman
text.loadimage=Resmi yükle
text.saveimage=Resmi Kaydet
text.oregen = Maden Üretimi
text.editor.badsize=[orange] Resim boyutları geçersiz! [] Geçerli harita boyutları: {0}
text.editor.errorimageload=Resim dosyası yüklenirken hata oluştu: [orange] {0}
text.editor.errorimagesave=Resim dosyası kaydedilirken hata oluştu: [orange] {0}
@@ -156,21 +148,12 @@ text.editor.savemap = Harita Kaydet
text.editor.loadimage=Resmi yükle
text.editor.saveimage=Resmi Kaydet
text.editor.unsaved=[scarlet] Kaydedilmemiş değişiklikleriniz var! [] Çıkmak istediğinizden emin misiniz?
text.editor.brushsize = Fırça boyutu: {0}
text.editor.noplayerspawn = Bu haritanın oyuncu spawnpoint'i yok!
text.editor.manyplayerspawns = Haritalar, birden fazla oyuncu spawnpoint'e sahip olamaz!
text.editor.manyenemyspawns = {0} düşman spawnpoint {0}'den daha fazlası olamaz!
text.editor.resizemap=Haritayı Yeniden Boyutlandır
text.editor.resizebig = [Kızıl] Uyarı! [] 256'dan büyük haritalar yavaş ve dengesiz olabilir.
text.editor.mapname=Harita Adı
text.editor.overwrite=[Vurgu] Uyarı! Bu mevcut bir haritanın üzerine yazar.
text.editor.failoverwrite = [crimson] Varsayılan haritanın üzerine yazılamıyor!
text.editor.selectmap=Yüklenecek bir harita seçin:
text.width=Genişliği:
text.height=Boy:
text.randomize = Rasgele seçmek
text.apply = Uygula
text.update = Güncelle
text.menu=Menü
text.play=Oyna
text.load=Yükle
@@ -191,67 +174,25 @@ text.upgrades = Geliştirmeler
text.purchased=[KİREÇ] Yap၊ld၊
text.weapons=Silahlar
text.paused=Duraklatıldı
text.respawn = Saniye içinde yeniden doğacaksınız.
text.info.title=[Vurgu] Bilgi
text.error.title=[crimson] Bir hata oluştu
text.error.crashmessage = [SCARLET] Bir kilitlenme meydana getiren beklenmeyen bir hata oluştu. [] Lütfen geliştiriciye bu hatanın gerçekleştiği koşulları bildirin: [ORANGE] anukendev@gmail.com []
text.error.crashtitle=Bir hata oluştu
text.mode.break = Ara verme modu: {0}
text.mode.place = Döşeme modu: {0}
placemode.hold.name = hat
placemode.areadelete.name = alan
placemode.touchdelete.name = dokun
placemode.holddelete.name = tut
placemode.none.name = Yok
placemode.touch.name = dokun
placemode.cursor.name = İmleç
text.blocks.extrainfo = [accent] fazladan blok bilgisi:
text.blocks.blockinfo=Blok Bilgisi
text.blocks.powercapacity=Güç kapasitesi
text.blocks.powershot=Güç / atış
text.blocks.powersecond = Güç / saniye
text.blocks.powerdraindamage = Güç tahliye / hasar
text.blocks.shieldradius = Kalkan Yarıçapı
text.blocks.itemspeedsecond = Ürün Hız / saniye
text.blocks.range = Menzil
text.blocks.size=Boyut
text.blocks.powerliquid = Güç / Sıvı
text.blocks.maxliquidsecond = Maksimum sıvı / saniye
text.blocks.liquidcapacity=Sıvı kapasitesi
text.blocks.liquidsecond = Sıvı / saniye
text.blocks.damageshot = Zarar / atış
text.blocks.ammocapacity = Mermi kapasitesi
text.blocks.ammo = Cephane:
text.blocks.ammoitem = Cephane / öğe
text.blocks.maxitemssecond=Maksimum öğe / saniye
text.blocks.powerrange=Güç aralığı
text.blocks.lasertilerange = Lazer karo aralığı
text.blocks.capacity = Kapasite
text.blocks.itemcapacity=Ürün kapasitesi
text.blocks.maxpowergenerationsecond = Maksimum Güç Üretimi / saniye
text.blocks.powergenerationsecond = Güç Üretimi / saniye
text.blocks.generationsecondsitem = Nesil Saniye / öğe
text.blocks.input = giriş
text.blocks.inputliquid=Giriş sıvı
text.blocks.inputitem=Giriş öğesi
text.blocks.output = Çıktı
text.blocks.secondsitem = Saniye / öğe
text.blocks.maxpowertransfersecond = Maksimum güç aktarımı / saniye
text.blocks.explosive=Çok patlayıcı!
text.blocks.repairssecond = Tamir / saniye
text.blocks.health=Can
text.blocks.inaccuracy=yanlışlık
text.blocks.shots=atışlar
text.blocks.shotssecond = Çekim / saniye
text.blocks.fuel = Yakıt
text.blocks.fuelduration = Yakıt Süresi
text.blocks.maxoutputsecond = Maksimum çıkış / saniye
text.blocks.inputcapacity=Giriş kapasitesi
text.blocks.outputcapacity=Çıkış kapasitesi
text.blocks.poweritem = Güç / Ürün
text.placemode = Yer Modu
text.breakmode = Mola modu
text.health = sağlık
setting.difficulty.easy=kolay
setting.difficulty.normal=orta
setting.difficulty.hard=zor
@@ -259,7 +200,6 @@ setting.difficulty.insane = deli
setting.difficulty.purge=tasfiye
setting.difficulty.name=Zorluk:
setting.screenshake.name=Ekran Sallamak
setting.smoothcam.name = Pürüzsüz kamera
setting.indicators.name=Düşman Göstergeleri
setting.effects.name=Görüntü Efektleri
setting.sensitivity.name=Denetleyici hassasiyeti
@@ -271,7 +211,6 @@ setting.fps.name = Saniyede ... Kare göstermek
setting.vsync.name=VSync
setting.lasers.name=Güç Lazerleri Göster
setting.healthbars.name=Varlık Sağlık çubuklarını göster
setting.pixelate.name = Piksel Ekran
setting.musicvol.name=Müzik sesi
setting.mutemusic.name=Müziği Kapat
setting.sfxvol.name=SFX Hacmi
@@ -289,50 +228,6 @@ map.grassland.name = Çayır
map.tundra.name=tundra
map.spiral.name=sarmal
map.tutorial.name=Eğitim
tutorial.intro.text = [sarı] Eğiticiye hoşgeldiniz. [] Başlamak için 'ileri' ye basın.
tutorial.moveDesktop.text = Taşımak için [turuncu] [[WASD] [] tuşlarını kullanın. Destek için [turuncu] shift [] tuşunu basılı tutun. Yakınlaştırmak veya uzaklaştırmak için [turuncu] kaydırma tekerini [] kullanırken [turuncu] CTRL [] tuşunu basılı tutun.
tutorial.shoot.text = Hedeflemek için farenizi kullanın, [turuncu] sol fare tuşunu [] vurun. [Sarı] hedef [] üzerinde çalışmayı deneyin.
tutorial.moveAndroid.text = Görünümü kaydırmak için, bir parmağınızı ekran boyunca sürükleyin. Yakınlaştırmak veya uzaklaştırmak için sıkıştırın ve sürükleyin.
tutorial.placeSelect.text = Sağ alttaki blok menüsünden [sarı] bir konveyör [] seçmeyi deneyin.
tutorial.placeConveyorDesktop.text = [Turuncu] [[scrollwheel] [] tuşunu kullanarak konveyörü [turuncu] ileriye [] getirin ve [turuncu] [[sol fare tuşu] [] düğmesini kullanarak [sarı] işaretli konuma [] yerleştirin.
tutorial.placeConveyorAndroid.text = [Turuncu] [[döndürme düğmesi] [] düğmesini kullanarak konveyörü [turuncu] ileriye [] doğru döndürün, bir parmağınızla konumuna sürükleyin, ardından [turuncu] kullanarak [sarı] işaretli konuma [] yerleştirin [[onay işareti][].
tutorial.placeConveyorAndroidInfo.text = Alternatif olarak, [turuncu] [[dokunma modu] [] moduna geçmek için sol alt taraftaki artı simgesini ve ekrana dokunarak blokları yerleştirebilirsiniz. Dokunmatik modda, bloklar soldaki ok ile döndürülebilir. Denemek için [sarı] sonraki [] tuşuna basın.
tutorial.placeDrill.text = Şimdi, işaretlenmiş konuma bir [sarı] taş matkap [] seçin ve yerleştirin.
tutorial.blockInfo.text = Bir blok hakkında daha fazla bilgi edinmek isterseniz, açıklamayı okumak için sağ üstteki [turuncu] soru işaretine [] dokunabilirsiniz.
tutorial.deselectDesktop.text = [Turuncu] [[sağ fare tuşu] [] kullanarak bir bloğu kaldırabilirsiniz.
tutorial.deselectAndroid.text = [Turuncu] X [] düğmesine basarak bir bloğun seçimini kaldırabilirsiniz.
tutorial.drillPlaced.text = Matkap şimdi [sarı] taş üretecek, [] konveyör üzerine çıkacak, daha sonra [sarı] çekirdeğe [] hareket ettirilecektir.
tutorial.drillInfo.text = Farklı cevherlerin farklı matkaplara ihtiyacı vardır. Taş taş matkaplar gerektirir, demir demir matkaplar gerektirir, vb.
tutorial.drillPlaced2.text = Öğeleri çekirdeğe taşımak, onları sol üstteki [sarı] öğe envanterinize [] yerleştirir. Yerleştirme blokları, envanterinizdeki öğeleri kullanır.
tutorial.moreDrills.text = Birçok matkap ve konveyörü birbirine bağlayabilirsiniz.
tutorial.deleteBlock.text = Silmek istediğiniz blokta [turuncu] sağ fare düğmesine [] tıklayarak blokları silebilirsiniz. Bu konveyörü silmeyi deneyin.
tutorial.deleteBlockAndroid.text = Alt soldaki [turuncu] kesme modu menüsünde [] artı işaretini [] seçerek ve bir bloka dokunarak blokları [turuncu] ile silebilirsiniz. Bu konveyörü silmeyi deneyin.
tutorial.placeTurret.text = Şimdi, [sarı] işaretli konuma [] [sarı] bir taret [] seçin ve yerleştirin.
tutorial.placedTurretAmmo.text = Bu taret artık konveyör [sarı] mermiyi [] kabul edecektir. Üzerinde gezdirerek ne kadar cephane olduğunu ve yeşil renkli [[yeşil] çubuğunu [] kontrol ederek görebilirsiniz.
tutorial.turretExplanation.text = Taretler, yeterli mermiye sahip oldukları sürece otomatik olarak en yakın düşmana ateş ederler.
tutorial.waves.text = Her [sarı] 60 [] saniyede, [mercan] düşmanlardan oluşan bir dalga [] belirli yerlerde doğacak ve çekirdeği yok etmeye çalışacaktır.
tutorial.coreDestruction.text = Hedefiniz [sarı] çekirdeği [] savunmaktır. Çekirdek yok edilirse, [mercan] oyunu kaybedersiniz [].
tutorial.pausingDesktop.text = Bir ara vermeniz gerekiyorsa, oyunu duraklatmak için sol üstteki [turuncu] duraklat [] düğmesine veya [turuncu] boşluk [] tuşuna basın. Duraklatılırken blokları seçebilir ve yerleştirebilirsiniz, ancak hareket edemez veya ateş edemezsiniz.
tutorial.pausingAndroid.text = Bir ara vermeniz gerekirse, oyunu duraklatmak için sol üstteki [turuncu] duraklatma düğmesine [] basın. Duraklatılırken hala blokları kırıp yerleştirebilirsiniz.
tutorial.purchaseWeapons.text = Alt soldaki yükseltme menüsünü açarak, makineniz için yeni [sarı] silahlar [] satın alabilirsiniz.
tutorial.switchWeapons.text = Silahları, sol alt taraftaki simgesini tıklayarak veya sayıları [turuncu] [[1-9] [] kullanarak değiştirebilirsiniz.
tutorial.spawnWave.text = İşte şimdi bir dalga geliyor. Onları yok et.
tutorial.pumpDesc.text = Daha sonraki dalgalarda, jeneratörler veya aspiratörler için sıvı dağıtmak için [sarı] pompaları [] kullanmanız gerekebilir.
tutorial.pumpPlace.text = Pompalar, matkaplar yerine benzer şekilde çalışırlar; [Sarı] belirlenmiş yağa [] bir pompa yerleştirmeyi deneyin.
tutorial.conduitUse.text = Şimdi pompadan önde giden bir [turuncu] kablo kanalı [] yerleştirin.
tutorial.conduitUse2.text = Ve birkaç tane daha ...
tutorial.conduitUse3.text = Ve birkaç tane daha ...
tutorial.generator.text = Şimdi, kanalın ucunda bir [turuncu] yanma jeneratörü [] bloğu yerleştirin.
tutorial.generatorExplain.text = Bu jeneratör şimdi yağdan [sarı] güç [] oluşturacaktır.
tutorial.lasers.text = Güç [sarı] güç lazerleri [] kullanılarak dağıtılır. Döndür ve buraya bir tane yerleştir.
tutorial.laserExplain.text = Jeneratör şimdi gücü lazer bloğuna taşıyacaktır. Bir [sarı] opak [] ışını, şu anda gücü iletmekte olduğu anlamına gelir ve [sarı] saydam [] ışını, bunun olmadığı anlamına gelir.
tutorial.laserMore.text = Bir bloğun üzerine geldiğinde ne kadar gç olduğunu ve üst taraftaki [sarı] sarı çubuğu [] kontrol ederek kontrol edebilirsiniz.
tutorial.healingTurret.text = Bu lazer bir [kireç] onarım tareti [] için kullanılabilir. Bir tane buraya yerleştirin.
tutorial.healingTurretExplain.text = Gücü olduğu sürece, bu taret yakındaki blokları tamir eder. [] en yakın zamanda bu bloku temin edin!
tutorial.smeltery.text = Pek çok blok, [turuncu] yapılabilmesi için çelik gerektirir ve bu da [turuncu] bir dökümcünün [] yapılmasını gerektirir. Bir tane buraya yerleştirin.
tutorial.smelterySetup.text = Bu dökümcü kömürü yakıt olarak kullanarak, demirden [turuncu] çelik [] üretecek.
tutorial.tunnelExplain.text = Ayrıca, eşyaların bir [turuncu] tünel bloğundan [] geçtiğini ve taş bloktan geçerek diğer tarafta ortaya çıktığını unutmayın. Tünellerin yalnızca 2 bloğa kadar gidebileceğini unutmayın.
tutorial.end.text = Ve bu dersi bitirir! İyi şanslar!
text.keybind.title=Tuşları yeniden ayarla
keybind.move_x.name=sağ / sol
keybind.move_y.name=yukarı / aşağı
@@ -350,12 +245,6 @@ keybind.player_list.name = oyuncu listesi
keybind.console.name=KONTROL MASASI
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Döndür
keybind.weapon_1.name = weapon_1
keybind.weapon_2.name = weapon_2
keybind.weapon_3.name = weapon_3
keybind.weapon_4.name = weapon_4
keybind.weapon_5.name = weapon_5
keybind.weapon_6.name = weapon_6
mode.text.help.title=Modların açıklaması
mode.waves.name=dalgalar
mode.waves.description=normal mod. sınırlı kaynaklar ve otomatik gelen dalgalar.
@@ -363,189 +252,244 @@ mode.sandbox.name = Limitsiz Oynama
mode.sandbox.description=sonsuz kaynaklar ve dalgalar için zamanlayıcı yok.
mode.freebuild.name=Özgür Oynama
mode.freebuild.description=sınırlı kaynaklar ve dalgalar için zamanlayıcı yok.
upgrade.standard.name = standart
upgrade.standard.description = Standart mech.
upgrade.blaster.name = blaster
upgrade.blaster.description = Yavaş, zayıf bir mermi ateş eder.
upgrade.triblaster.name = triblaster
upgrade.triblaster.description = Bir yayında 3 mermi ateş eder.
upgrade.clustergun.name = clustergun
upgrade.clustergun.description = Yayılan bombalar ateş eder.
upgrade.beam.name = lazer
upgrade.beam.description = Uzun menzilli bir delici lazer ışını atar.
upgrade.vulcan.name = Vulkan
upgrade.vulcan.description = Hızlı mermiler ateş eder.
upgrade.shockgun.name = shockgun
upgrade.shockgun.description = Yıkıcı ve patlayıcı mermiler savurarak ateş eder.
item.stone.name=taş
item.iron.name = Demir
item.coal.name=kömür
item.steel.name = çelik
item.titanium.name=titanyum
item.dirium.name = dirium
item.uranium.name = uranyum
item.sand.name=kum
liquid.water.name=su
liquid.plasma.name = plazma
liquid.lava.name=lav
liquid.oil.name=petrol
block.weaponfactory.name = silah fabrikası
block.weaponfactory.fulldescription = Oyuncu mech için silah oluşturmak için kullanılır. Kullanmak için tıklayın. Kaynaklarını otomatik olarak çekirdekten alır.
block.air.name = hava
block.blockpart.name = blokparçası
block.deepwater.name = derin su
block.water.name = su
block.lava.name = lav
block.oil.name = petrol
block.stone.name = taş
block.blackstone.name = siyah taş
block.iron.name = Demir
block.coal.name = kömür
block.titanium.name = titanyum
block.uranium.name = uranyum
block.dirt.name = toprak
block.sand.name = kum
block.ice.name = buz
block.snow.name = kar
block.grass.name = Otlar
block.sandblock.name = kumbloku
block.snowblock.name = karbloku
block.stoneblock.name = taşbloku
block.blackstoneblock.name = blackstoneblock
block.grassblock.name = grassblock
block.mossblock.name = mossblock
block.shrub.name = çalı
block.rock.name = Kaya
block.icerock.name = ICEROCK
block.blackrock.name = Siyah Kaya
block.dirtblock.name = dirtblock
block.stonewall.name = taş duvar
block.stonewall.fulldescription = Ucuz bir savunma bloğu. İlk birkaç dalgada çekirdeği ve tareti korumak için kullanışlıdır.
block.ironwall.name = Demir duvar
block.ironwall.fulldescription = Temel bir savunma bloğu. Düşmanlardan korunma sağlar. Taş duvardan daha korunaklıdır.
block.steelwall.name = Çelik duvar
block.steelwall.fulldescription = Standart bir savunma bloğu. düşmanlardan korunma sağlar
block.titaniumwall.name = titanyum duvar
block.titaniumwall.fulldescription = Güçlü bir savunma bloğu. Düşmanlardan korunma sağlar.
block.duriumwall.name = dirium duvar
block.duriumwall.fulldescription = Çok güçlü bir savunma bloğu. Düşmanlardan korunma sağlar.
block.compositewall.name = kompozit duvar
block.steelwall-large.name = büyük çelik duvar
block.steelwall-large.fulldescription = Standart bir savunma bloğu. Birden fazla fayansa yayılır.
block.titaniumwall-large.name = büyük titanyum duvar
block.titaniumwall-large.fulldescription = Güçlü bir savunma bloğu. Birden fazla fayans yayılır.
block.duriumwall-large.name = büyük dirsek duvarı
block.duriumwall-large.fulldescription = Çok güçlü bir savunma bloğu. Birden fazla fayans yayılır.
block.titaniumshieldwall.name = korumalı duvar
block.titaniumshieldwall.fulldescription = Ekstra yerleşik bir kalkan ile güçlü bir savunma bloğu. Düşman mermilerini emmek için enerji kullanır. Bu bloğa enerji sağlamak için güç arttırıcıların kullanılması tavsiye edilir.
block.repairturret.name = onarım tareti
block.repairturret.fulldescription = Yakındaki hasarlı blokları yavaş bir hızda tamir eder. Küçük menzili vardır. Az miktarlarda güç kullanır.
block.megarepairturret.name = onarım tareti II
block.megarepairturret.fulldescription = Yakındaki hasarlı blokları tamir eder. Uygun menzillidir. Gücü kullanır.
block.shieldgenerator.name = kalkan üreteci
block.shieldgenerator.fulldescription = Gelişmiş bir savunma bloğu. Bir yarıçaptaki tüm blokları saldırıya karşı korur. Boştayken gücü yavaş bir hızda kullanır, ancak mermi temasında enerjiyi hızla boşaltır.
block.door.name=kapı
block.door.fulldescription = Dokunarak açılıp kapatılabilen bir blok.
block.door-large.name=büyük kapı
block.door-large.fulldescription = Dokunarak açılıp kapatılabilen bir blok.
block.conduit.name=sıvı borusu
block.conduit.fulldescription = Temel sıvı taşıma bloğu. Bir konveyör gibi çalışır, ancak sıvılar ile. pompa veya diğer borular ile kullanılır. Düşmanlar ve oyuncular için sıvılar üzerinde bir köprü olarak kullanılabilir.
block.pulseconduit.name=hızlı sıvı borusu
block.pulseconduit.fulldescription = Gelişmiş sıvı taşıma bloku. Sıvıları daha hızlı taşır ve standart sıvı taşıma borularından daha fazla sıvı depolar.
block.liquidrouter.name=sıvı yönlendirici
block.liquidrouter.fulldescription = Bir yönlendiriciye benzer şekilde çalışır. Bir taraftan sıvı girişi kabul eder ve diğer tarafa gönderir. Tek bir borudan diğer birçok boruyla sıvı paylaşmak için kullanışlıdır.
block.conveyor.name=konveyör
block.conveyor.fulldescription = En temel madde taşıma bloğu. Öğeleri konulduğu yöne göre maddeleri ileriye taşır ve bunları otomatik olarak taretlere ya da üretici bloklara getirir. konulmadan önce Döndürülebilirler, ancak konulduktan sonra Döndürülemezler. Düşmanlar ve oyuncular için sıvılar üzerinde bir köprü olarak kullanılabilir.
block.steelconveyor.name = çelik konveyör
block.steelconveyor.fulldescription = Gelişmiş madde taşıma bloğu. Öğeleri standart konveyörlerden daha hızlı taşır.
block.poweredconveyor.name = hızlı konveyör
block.poweredconveyor.fulldescription = Nihai ürün taşıma bloğu. Öğeleri çelik konveyörlerden daha hızlı taşır.
block.router.name=yönlendirici
block.router.fulldescription = Öğeleri bir yönden kabul eder ve 3 farklı yöne gönderir. Malzemelerin belirli bir miktarını da depolayabilir. Malzemelerin bir matkaptan çoklu taretlere ayrılması için uygundur.
block.junction.name=Kavşak noktası
block.junction.fulldescription = İki çapraz şekilde geçmeye çalışan konveyör bandı için köprü görevi görür. Farklı yerlere farklı malzemeler taşıyan konveyör olduğu durumlarda kullanışlıdır.
block.conveyortunnel.name = konveyör tüneli
block.conveyortunnel.fulldescription = Maddeleri blokların altından geçirmek için kullanılır. Kullanmak için, altına tünel yapılacak bloğun bir tarafta giriş tüneli ve diğer tarafa çıkış tüneli yerleştirin. Her iki tünelin de giriş veya çıkış yapan bloklara doğru zıt yönlere baktığından emin olun.
block.liquidjunction.name=sıvı bağlantı
block.liquidjunction.fulldescription = İki çaprazdan geçen boru için köprü görevi görür. Farklı yerlere farklı sıvılar taşıyan kanalların olduğu durumlarda kullanışlıdır.
block.liquiditemjunction.name = sıvı madde kavşağı
block.liquiditemjunction.fulldescription = Kanalları ve konveyörleri yan yana geçirmek için bir köprü görevi görür.
block.powerbooster.name = güç yükseltici
block.powerbooster.fulldescription = Gücü kendi yarıçapı içindeki tüm bloklara dağıtır.
block.powerlaser.name = güç lazeri
block.powerlaser.fulldescription = Önündeki bloğa güç ileten bir lazer oluşturur. Herhangi bir güç üretmez. En iyi jeneratörler veya diğer lazerler ile kullanılır.
block.powerlaserrouter.name = lazer yönlendirici
block.powerlaserrouter.fulldescription = Bir kerede gücü üç yöne dağıtan lazer. Bir jeneratörden birçok bloka güç verilmesi gereken durumlarda kullanışlıdır.
block.powerlasercorner.name = lazer köşesi
block.powerlasercorner.fulldescription = Bir kerede gücü iki yöne dağıtan lazer. Bir jeneratörden birçok bloka güç verilmesi gereken durumlarda ve bir yönlendiricinin kesin olmadığı durumlarda kullanışlıdır.
block.teleporter.name = teletaşıyıcı
block.teleporter.fulldescription = Gelişmiş madde taşıma bloğu. tele-taşıyıcı, öğeleri aynı renkte olan bir teletaşıyıcıya yönlendirir. Aynı renkte teletaşıyıcı yoksa, hiçbir şey yapmaz. Aynı renkten birden çok tele-yazıcı varsa, rastgele biri seçilir. Gücü kullanır. Rengi değiştirmek için dokunun. Not: Sadece madde ileten teletaşıyıcılar gücü kullanır.
block.sorter.name=ayrıştırıcı
block.sorter.fulldescription = Malzemeleri türüne göre ayrıştırır. Kabul edilecek malzeme bloktaki renkle gösterilir. Doğru materyal ile eşleşen tüm öğeler ileriye doğru çıkar, diğer her şey sol ve sağ taraflardan çıkar.
block.core.name = çekirdek
block.pump.name = pompa
block.pump.fulldescription = Kaynak bloğundan su, lav veya yağ gibi sıvıları pompalar. Yakındaki kanallara sıvıyı aktarır.
block.fluxpump.name = fluxpump
block.fluxpump.fulldescription = Pompanın gelişmiş bir versiyonu. Sıvıyı daha hızlı pompalar ve daha fazla sıvı depolar.
block.smelter.name=dökümcü
block.smelter.fulldescription = Temel üretim bloğu. 1 demir ve 1 kömür yakıt olarak verildiğinde, demir çıkarır. Tıkanmayı önlemek için farklı konveyörlerden demir ve kömürün kullanılması tavsiye edilir.
block.crucible.name = pota
block.crucible.fulldescription = Gelişmiş bir üretim bloğu. 1 titanyum, 1 çelik ve 1 kömür yakıt olarak girildiğinde, dirium çıkarır. Tıkanmayı önlemek için farklı konveyörlerden kömür, çelik ve titanyum kullanılması tavsiye edilir.
block.coalpurifier.name = kömür çıkarıcı
block.coalpurifier.fulldescription = Temel bir ekstraktör bloğu. Çok miktarda su ve taş ile birlikte tedarik edildiğinde kömür çıkarır.
block.titaniumpurifier.name = titanyum çıkarıcı
block.titaniumpurifier.fulldescription = Standart bir ekstraktör bloğu. Çok miktarda su ve demir ile birlikte verildiğinde titanyum çıkarır.
block.oilrefinery.name = yağ rafinerisi
block.oilrefinery.fulldescription = Büyük miktarda yağı kömür parçalarına ayırır. Kömür damarları kıt olduğunda kömür bazlı taretlerin yakıtı için kullanışlıdır.
block.stoneformer.name = taş biçimlendiricisi
block.stoneformer.fulldescription = Lavı taş haline getirir. Muazzam miktarda taş üretmek için kullanışlıdır.
block.lavasmelter.name = lav dökümcüsü
block.lavasmelter.fulldescription = Demiri çeliğe dönüştürmek için lav kullanır. Dökümcüler için bir alternatif. Kömürün az olduğu durumlarda kullanışlıdır
block.stonedrill.name = taş matkap
block.stonedrill.fulldescription = Temel bir matkap. Taş karolara yerleştirildiğinde, süresiz olarak yavaş bir hızda taş çıkarı
block.irondrill.name = demir matkap
block.irondrill.fulldescription = Temel bir matkap. Demir cevheri çinileri üzerine yerleştirildiğinde, süresiz olarak yavaş bir şekilde demir çıkarıTemel bir matkap. Demir cevheri çinileri üzerine yerleştirildiğinde, süresiz olarak yavaş bir şekilde demir çıkarır.\n.
block.coaldrill.name = kömür matkap
block.coaldrill.fulldescription = Temel bir matkap. Kömür madeninin üzerine yerleştirildiğinde, süresiz olarak yavaş bir şekilde kömür çıkarır.
block.uraniumdrill.name = uranyum matkap
block.uraniumdrill.fulldescription = Gelişmiş bir matkap. Uranyum cevheri üzerine yerleştirildiğinde, uranyumu süresiz olarak yavaş bir hızda çıkarır.
block.titaniumdrill.name = titanyum matkap
block.titaniumdrill.fulldescription = Gelişmiş bir matkap. Titanyum cevherinin üzerine yerleştirildiğinde, sonsuza yavaş bir tempoda titanyum çıkar.
block.omnidrill.name = omnidrill
block.omnidrill.fulldescription = En büyük matkap. Herhangi bir cevherin uzerine yerlestitldiginde hızlı bir hızda cevher çıkarır
block.coalgenerator.name = kömür jeneratörü
block.coalgenerator.fulldescription = Gerekli jeneratör. Kömürden güç üretir. 4 tarafına lazer olarak güç verir.
block.thermalgenerator.name = termik jeneratör
block.thermalgenerator.fulldescription = Lavdan güç üretir. 4 tarafına lazer olarak güç verir.
block.combustiongenerator.name = yanma jeneratörü
block.combustiongenerator.fulldescription = Yağdan güç üretir. 4 tarafına lazer olarak güç verir.
block.rtgenerator.name = RTG jeneratörü
block.rtgenerator.fulldescription = Uranyumun radyoaktif bozunmasından az miktarda güç üretir. 4 tarafına lazer olarak güç verir.
block.nuclearreactor.name = nükleer reaktör
block.nuclearreactor.fulldescription = RTG Jeneratörünün gelişmiş bir versiyonu ve en iyi güç jeneratörüdür. Uranyumdan güç üretir. Su ile soğutulması gerekir. Son derece tehlikelidir; yetersiz miktarda su ile beslenmediğinde şiddetli patlayabilir.
block.turret.name = taret
block.turret.fulldescription = Basit, ucuz bir kule. Cephane için taş kullanır. Çift taretten biraz daha büyük menzillidir.
block.doubleturret.name = çift taret
block.doubleturret.fulldescription = Taretin biraz daha güçlü bir versiyonu. Cephane için taş kullanır. standart tarete nazaran daha fazla hasar verir, ancak daha düşük bir menzile sahiptir. İki mermi ile ateş eder.
block.machineturret.name = gattling tareti
block.machineturret.fulldescription = Demir atan bir taret. Cephane için demir kullanır. İyi bir hasar ile ateş oranına sahiptir.
block.shotgunturret.name = splitter tareti
block.shotgunturret.fulldescription = Standart bir kule. Cephane için demir kullanır. tek atışta 7 mermi yayılır. Düşük menzillidir, ancak Gatling taretinden daha yüksek hasar verir.
block.flameturret.name = alev tareti
block.flameturret.fulldescription = Gelişmiş yakın menzilli taret. Cephane için kömür kullanır. Çok düşük bir menzile sahiptir, ancak çok yüksek hasar verir. Duvarların arkasında kullanılması tavsiye edilir.
block.sniperturret.name = çelik tareti
block.sniperturret.fulldescription = Gelişmiş uzun menzilli taret. Cephane için çelik kullanır. Yüksek hasar verir, ancak düşük ateş hızı vardır. Kullanımı pahalı, ancak yüksek menzili nedeniyle düşmanı uzak mesafelerden vurabilir.
block.mortarturret.name = flak tareti
block.mortarturret.fulldescription = Gelişmiş sıçrama hasarlı tareti. Cephane için kömür kullanır. Patlayan mermi şarapnel saysinde birden fazla düşman vurabilir. büyük düşman topluluklarını yok etmek için kullanışlıdır.
block.laserturret.name = lazer tareti
block.laserturret.fulldescription = Gelişmiş tek hedefli taret. Gücü kullanır. orta menzilli taret. Sadece tek hedefli. Asla ıskalamaz.
block.waveturret.name = tesla tareti
block.waveturret.fulldescription = Gelişmiş birçok hedefli taret. Gücü kullanır. Orta menzilli. Asla ıskalamaz. Düşük ile orta seviyede hasar verir, ancak aynı anda birden fazla düşmana vurabilir.
block.plasmaturret.name = plazma tareti
block.plasmaturret.fulldescription = Alev taretinin gelişmiş versiyonu. kömürü cephane olarak kullanır. Çok yüksek hasar, düşük ila orta menzil.
block.chainturret.name = zincir tareti
block.chainturret.fulldescription = En iyi hızlı ateş tareti. Uranyumu cephane olarak kullanır. Yüksek ateş hızı vardır. Orta menzillidir. Birden fazla blok boyunca yayılır. Son derece dayanıklıdır.
block.titancannon.name = titan topu
block.titancannon.fulldescription = En iyi uzak menzilli taret. Uranyumu cephane olarak kullanır. Orta ateş hızındadır ve top ateşinin sıçrama hasarı büyüktür. Uzun mesafe. Birden fazla blok boyunca yayılır. Son derece dayanıklıdır.
block.playerspawn.name = oyuncudoğuşu
block.enemyspawn.name = dϋşmandoğuşu
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.name=Thorium
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+273 -278
View File
@@ -1,12 +1,10 @@
text.about=Створено [ROYAL] Anuken. []\nСпочатку запис у [orange] GDL [] MM Jam.\nТворці:\n- SFX зроблено з [YELLOW] bfxr []\n- Музика зроблена [GREEN] RoccoW [] / Знайдено на [lime] FreeMusicArchive.org [] \nОсоблива подяка:\n- [coral] MitchellFJN []: екстенсивне тестування та відгуки\n- [sky] Luxray5474 []: робота з вікі, вклади коду\n- Всі бета-тестери на itch.io та Google Play\n
text.discord=Приєднуйтесь до нашого Discord!
text.changes = [SCARLET] Увага! \n[] Деякі важливі механіки гри були змінені.\n- [accent] Телепорти [] тепер використовують електроенергію. \n- [accent] Домінна піч [] та [accent] Тиглі [] тепер мають ліміт. \n- [accent] Тиглі [] зараз вимагають вугілля як паливо.
text.gameover=Ядро було зруйновано.
text.highscore=[YELLOW] Новий рекорд!
text.lasted=Ви тримались до хвилі
text.level.highscore=Рекорд: [accent] {0}
text.level.delete.title=Підтвердьте видалення
text.level.delete = Ви впевнені, що хочете видалити карту \"[orange] {0} \"?
text.level.select=Вибір рівня
text.level.mode=Ігровий режим
text.savegame=Зберегти гру
@@ -16,9 +14,7 @@ text.newgame=Нова гра
text.quit=Вийти
text.about.button=Про
text.name=Назва:
text.public = Публічний
text.players={0} гравців онлайн
text.server.player.host = {0} (host)
text.players.single={0} гравців онлайн
text.server.mismatch=Пакетна помилка: невідповідність версії версії клієнта / сервера. Переконайтеся, що ви та хост мають останню версію Mindustry!
text.server.closing=[accent] Закриття сервера ...
@@ -42,7 +38,6 @@ text.server.add = Додати сервер
text.server.delete=Ви впевнені, що хочете видалити цей сервер?
text.server.hostname=Хост: {0}
text.server.edit=Редагувати сервер
text.joingame.byip = [] Приєднатися по IP ...[]
text.joingame.title=Приєднатися до гри
text.joingame.ip=IP
text.disconnect=Роз'єднано
@@ -53,8 +48,6 @@ text.server.port = Порт
text.server.addressinuse=Адреса вже використовується!
text.server.invalidport=Недійсний номер порту.
text.server.error=[crimson] Помилка хостингу сервера: [orange] {0}
text.tutorial.back = < Попер.
text.tutorial.next = Далі >
text.save.new=Нове збереження
text.save.overwrite=Ви впевнені, що хочете перезаписати цей слот для збереження?
text.overwrite=Перезаписати
@@ -98,7 +91,6 @@ text.enemies = {0} Вороги
text.enemies.single=Противник
text.loadimage=Завантажити зображення
text.saveimage=Зберегти зображення
text.oregen = Генерація руд
text.editor.badsize=[orange] Недійсні розміри зображення! [] Дійсні розміри карти: {0}
text.editor.errorimageload=Помилка завантаження файлу зображень: [orange] {0}
text.editor.errorimagesave=Помилка збереження файлу зображення: [orange] {0}
@@ -109,21 +101,12 @@ text.editor.savemap = Зберегти карту
text.editor.loadimage=Завантажити зображення
text.editor.saveimage=Зберегти зображення
text.editor.unsaved=[scarlet] У вас є незбережені зміни! [] Ви впевнені, що хочете вийти?
text.editor.brushsize = Розмір пензля: {0}
text.editor.noplayerspawn = Ця карта не має ігрового поля для гравця!
text.editor.manyplayerspawns = Карти не можуть мати більше одного ігрового поля для гравців!
text.editor.manyenemyspawns = Не може бути більше ніж {0} ворожих точок!
text.editor.resizemap=Змінити розмір карти
text.editor.resizebig = [scarlet] Попередження! [] Карти, розмір яких перевищує 256 одиниць, можуть виснути і можуть бути нестабільними.
text.editor.mapname=Назва карти:
text.editor.overwrite=[accent] Попередження! Це перезаписує існуючу карту.
text.editor.failoverwrite = [crimson] Неможливо перезаписати карту за замовчуванням!
text.editor.selectmap=Виберіть карту для завантаження:
text.width=Ширина
text.height=Висота
text.randomize = Рандомізувати
text.apply = Застосувати
text.update = Оновити
text.menu=Меню
text.play=Відтворити
text.load=Завантаження
@@ -144,67 +127,25 @@ text.upgrades = Оновлення
text.purchased=[LIME] Створено!
text.weapons=Зброя
text.paused=Пауза
text.respawn = Відновлення за
text.info.title=[accent] інформація
text.error.title=[crimson] Виникла помилка
text.error.crashmessage = [SCARLET] Виникла несподівана помилка, що призвела до збою. [] Будь ласка, повідомте про конкретні обставини, розробнику: [ORANGE] anukendev@gmail.com []
text.error.crashtitle=Виникла помилка
text.mode.break = Режим зносу: {0}
text.mode.place = Режим будівництва: {0}
placemode.hold.name = Лінія
placemode.areadelete.name = Площа
placemode.touchdelete.name = Дотик
placemode.holddelete.name = Утримування.
placemode.none.name = (None)
placemode.touch.name = Дотик
placemode.cursor.name = курсор
text.blocks.extrainfo = [accent] додатковий інформаційний блок:
text.blocks.blockinfo=Блокування інформації
text.blocks.powercapacity=Потужність
text.blocks.powershot=Потужність / постріл
text.blocks.powersecond = Потужність / секунда
text.blocks.powerdraindamage = Потужність дренажу / пошкодження
text.blocks.shieldradius = Радіус щита
text.blocks.itemspeedsecond = Швидкість / секунда
text.blocks.range = Радіус
text.blocks.size=Розмір
text.blocks.powerliquid = Потужність / Рідина
text.blocks.maxliquidsecond = Макс. Рідина / секунда
text.blocks.liquidcapacity=Ємкість рідини
text.blocks.liquidsecond = Рідина / секунда
text.blocks.damageshot = Пошкодження / постріл
text.blocks.ammocapacity = Місткість боєприпасів
text.blocks.ammo = Набої
text.blocks.ammoitem = Боєприпаси / предмет
text.blocks.maxitemssecond=Макс. Елементи / секунду
text.blocks.powerrange=Радіус потужності
text.blocks.lasertilerange = Радіус лазерних плиток
text.blocks.capacity = Ємкість
text.blocks.itemcapacity=Ємкість предмету
text.blocks.maxpowergenerationsecond = Максимальна потужність / секунда
text.blocks.powergenerationsecond = Потужність / секунда
text.blocks.generationsecondsitem = Генерація за секунду / предмет
text.blocks.input = Ввід
text.blocks.inputliquid=Ввід речовини
text.blocks.inputitem=Вхідний матеріал
text.blocks.output = Вивід
text.blocks.secondsitem = Секунда / предмет
text.blocks.maxpowertransfersecond = Максимальна передача потужності / секунда
text.blocks.explosive=Вибухонебезпечний!
text.blocks.repairssecond = Ремонт / секунда
text.blocks.health=Здоров'я
text.blocks.inaccuracy=Неточність
text.blocks.shots=Постріли
text.blocks.shotssecond = Постріли / секунду
text.blocks.fuel = Паливо:
text.blocks.fuelduration = Тривалість палива
text.blocks.maxoutputsecond = Макс. Вихід / секунду
text.blocks.inputcapacity=Вхідна ємність
text.blocks.outputcapacity=Випускна ємність
text.blocks.poweritem = Потужність / виріб
text.placemode = Місцевий режим
text.breakmode = Перерваний режим
text.health = Здоров'я
setting.difficulty.easy=Легкий
setting.difficulty.normal=Нормальний
setting.difficulty.hard=Важкий
@@ -212,7 +153,6 @@ setting.difficulty.insane = Божевільний
setting.difficulty.purge=Очистити
setting.difficulty.name=Складність
setting.screenshake.name=Тряска екрана
setting.smoothcam.name = Гладка камера
setting.indicators.name=Індикатори ворога
setting.effects.name=Ефекти відображення
setting.sensitivity.name=Чутливість контролера
@@ -224,7 +164,6 @@ setting.fps.name = Показати FPS
setting.vsync.name=VSunc
setting.lasers.name=Показати енергетичні лазери
setting.healthbars.name=Показати здоров'я
setting.pixelate.name = Пікселяція екрану
setting.musicvol.name=Гучність музики
setting.mutemusic.name=Вимкнути музику
setting.sfxvol.name=Гучність ефектів
@@ -242,50 +181,6 @@ map.grassland.name = Пасовища
map.tundra.name=Тундра
map.spiral.name=Спіраль
map.tutorial.name=Навчання
tutorial.intro.text = [yellow] Ласкаво просимо до підручника. [] Для початку натисніть \"далі\".
tutorial.moveDesktop.text = Для переміщення використовуйте клавіші [orange] [[WASD] []. Утримуйте [orange] SHIFT[], для прискорення. Утримуйте [orange] CTRL [], використовуючи [orange] колесо прокручування [] для збільшення або зменшення.
tutorial.shoot.text = Використовуйте мишу, щоб націлитись, утримуйте [orange] ліву кнопку миші [], щоб стріляти. Попрактикуйтесь на [yellow] мішені [].
tutorial.moveAndroid.text = Щоб перетягнути панораму, перетягніть один палець по екрану. Використовуйте два пальця, щоб збільшити чи зменшити маштаб.
tutorial.placeSelect.text = Спробуйте вибрати [yellow] конвеєр [] у меню блоку внизу справа.
tutorial.placeConveyorDesktop.text = Використовуйте [orange] [[колесико миші] [], щоб повернути конвеєр [orange] вперед [], а потім помістіть його в [yellow] позначене місце [], використовуючи [orange] [[ліву кнопку миші] [].
tutorial.placeConveyorAndroid.text = Використовуйте [orange] [[кнопку оберту] [], щоб обернути конвеєр [оранжевий] вперед [], перетягуйте його одним пальцем, а потім помістіть його в [yellow] позначене місце [], використовуючи [orange] [[галочка][].
tutorial.placeConveyorAndroidInfo.text = Крім того, ви можете натиснути піктограму перехрестя внизу ліворуч, щоб переключитися на [orange] [[сенсорний режим]] [], і помістити блоки, натиснувши на екран. У сенсорному режимі блоки можна повертати зі стрілкою внизу ліворуч. Натисніть [yellow] наступний [], щоб спробувати.
tutorial.placeDrill.text = Тепер виберіть та розмістіть [yellow] кам'яне свердло [] у зазначеному місці.
tutorial.blockInfo.text = Якщо ви хочете дізнатись більше про блок, ви можете торкнутися [orange] знак питання [] у верхньому правому куті, щоб прочитати його опис.
tutorial.deselectDesktop.text = Ви можете вимкнути блок, використовуючи [orange] [[клацання правою кнопкою миші] [].
tutorial.deselectAndroid.text = Ви можете скасувати вибір блоку, натиснувши кнопку [orange] X [].
tutorial.drillPlaced.text = Дриль тепер видобуває [yellow] камінь, [] та виведе його на конвеєр, а потім переміщає його в [yellow] ядро [].
tutorial.drillInfo.text = Різні руди потребують різних дрилі. Камінь вимагає кам'яні свердла, залізо вимагає залізні свердла та ін
tutorial.drillPlaced2.text = Переміщення елементів у ядро ​​вказує їх у ваш [yellow] предметний інвентар [] у верхньому лівому куті. Розміщення блоків використовує предмети з вашого інвентарю.
tutorial.moreDrills.text = Ви можете пов'язати багато свердлів і конвеєрів разом в одну гілку конвеєра.
tutorial.deleteBlock.text = Ви можете видалити блоки, натиснувши правою клавішею [orange] правою кнопкою миші [] по блоці, який ви хочете видалити. Спробуйте видалити цей конвеєр.
tutorial.deleteBlockAndroid.text = Ви можете видалити блоки за допомогою [orange], перехрестя [] в меню [mode] зламу [orange] у нижньому лівому куті та натиснувши на блок. Спробуйте видалити цей конвеєр.
tutorial.placeTurret.text = Тепер виділіть та розмістіть [yellow] турель [] у [yellow] позначеному місці [].
tutorial.placedTurretAmmo.text = Ця турель тепер приймає [yellow] боєприпас [] з конвеєра. Ви можете побачити, скільки боєприпасів вона має, натискаючи на неї і перевіряючи [green] зелену полоску [].
tutorial.turretExplanation.text = Турелі будуть автоматично стріляти у найближчого ворога, якщо вони мають достатню кількість боєприпасів.
tutorial.waves.text = Кожні [yellow] 60 [] секунд, хвиля [coral] ворогів [] буде виникати в певних місцях і намагатися знищити ядро.
tutorial.coreDestruction.text = Ваша мета полягає в тому, щоб [yellow] захищати ядро []. Якщо ядро ​​знищено, ви [coral] програєте[].
tutorial.pausingDesktop.text = Якщо вам коли-небудь потрібно зробити перерву, натисніть кнопку [orange] паузи [] у верхньому лівому куті або на кнопку [orange] пропуск [], щоб призупинити гру. Ви можете вибрати і розмістити блоки під час призупинення, але не можете переміщатися чи стріляти.
tutorial.pausingAndroid.text = Якщо вам коли-небудь потрібно зробити перерву, натисніть кнопку [orange] пауза [] у верхньому лівому куті, щоб призупинити гру. Ти можеш ще знищувати та будувати блоки під час призупинення.
tutorial.purchaseWeapons.text = Ви можете придбати нову [yellow] зброю [] для вашого механізму, відкривши меню оновлення в лівому нижньому кутку.
tutorial.switchWeapons.text = Перемикати зброю будь-яким натисканням його піктограми внизу ліворуч або за допомогою цифр [orange] [[1-9] [].
tutorial.spawnWave.text = Ось хвиля зараз. Знищи їх
tutorial.pumpDesc.text = У пізніших хвилях, можливо, доведеться використовувати [yellow] насоси [] для розподілу рідин для генераторів або екстракторів.
tutorial.pumpPlace.text = Насоси працюють аналогічно свердлам, за винятком того, що вони виробляють рідини замість предметів. Спробуйте встановити насос на [yellow] призначене мастило [].
tutorial.conduitUse.text = Тепер покладіть [orange] трубопровід [], віддаляючись від насоса.
tutorial.conduitUse2.text = І ще кілька ...
tutorial.conduitUse3.text = І ще кілька ...
tutorial.generator.text = Тепер, помістіть блок [orange] ​​базовий генератор енергії [] в кінці каналу.
tutorial.generatorExplain.text = Цей генератор тепер створить [yellow] енергію [] від масла.
tutorial.lasers.text = Потужність розподіляється за допомогою [yellow] лазерів потужності []. Поверніть і помістіть його тут.
tutorial.laserExplain.text = Тепер генератор переведе енергію в лазерний блок. Промінь [yellow] непрозорий [] означає, що в даний час він передає потужність, а промінь [yellow] прозорий [] означає, що це не так.
tutorial.laserMore.text = Ви можете перевірити, скільки енергії в блоку, наведіть курсор миші на нього і перевірте [yellow] жовту стрічку [] у верхній частині екрана.
tutorial.healingTurret.text = Цей лазер може бути використаний для живлення турелі для ремонту [lime] []. Помістіть одну тут.
tutorial.healingTurretExplain.text = Поки вона має енергію, ця турель може [lime] відремонтувати блоки. [] Під час гри постарайтеся збудувати одну таку чим швидше!
tutorial.smeltery.text = Для багатьох блоків потрібна [orange] сталь [], для цього потрібна[orange] доминна піч [] . Місце тут.
tutorial.smelterySetup.text = Ця піч буде тепер виробляти [orange] сталь [] із вхідного заліза, використовуючи вугілля як паливо.
tutorial.tunnelExplain.text = Також зауважте, що елементи проходять через [yellow] тунельний блок [] і з'являються з іншого боку, проходячи через кам'яний блок. Майте на увазі, що тунелі можуть проходити лише до 2 блоків.
tutorial.end.text = Ви завершили підручник! Удачі!
text.keybind.title=Ключ перемотки
keybind.move_x.name=move_x
keybind.move_y.name=move_y
@@ -303,198 +198,298 @@ keybind.player_list.name = Список гравців
keybind.console.name=// Консоль 1
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Повернути
keybind.weapon_1.name = Зброя!
keybind.weapon_2.name = Зброя!
keybind.weapon_3.name = Зброя!
keybind.weapon_4.name = Зброя!
keybind.weapon_5.name = Зброя!
keybind.weapon_6.name = Зброя!
mode.waves.name=Хвилі
mode.sandbox.name=Пісочниця
mode.freebuild.name=Вільний режим
upgrade.standard.name = Стандартний
upgrade.standard.description = Стандартний механ.
upgrade.blaster.name = Бластер
upgrade.blaster.description = Стріляє повільно, слабкі кулі.
upgrade.triblaster.name = Трипластер
upgrade.triblaster.description = Вистрілює 3 кулі в розповсюдженні.
upgrade.clustergun.name = Касетна гармата
upgrade.clustergun.description = Вистрілює неточними вибуховими гранатами.
upgrade.beam.name = Пушечна гармата
upgrade.beam.description = Вистрілює далекобійним,пробірний лазерний промінь.
upgrade.vulcan.name = Вулкан
upgrade.vulcan.description = Вистрілює шквал швидких куль.
upgrade.shockgun.name = Шок-пушка
upgrade.shockgun.description = Стріляє руйнівним вибухом заряженої шрапнелі.
item.stone.name=Камінь
item.iron.name = Залізо
item.coal.name=Вугівалля
item.steel.name = Сталь
item.titanium.name=Титан
item.dirium.name = Дириум
item.thorium.name=Уран
item.sand.name=Пісок
liquid.water.name=Вода
liquid.plasma.name = Плазма
liquid.lava.name=Лава
liquid.oil.name=Нафта
block.weaponfactory.name = Фабрика зброї
block.weaponfactory.fulldescription = Використовується для створення зброї для гравця mech. Натисніть, щоб використати. Автоматично приймає ресурси з основного ядра.
block.air.name = Повітря
block.blockpart.name = Блокчастина
block.deepwater.name = Глибока вода
block.water.name = Вода
block.lava.name = Лава
block.oil.name = Нафта
block.stone.name = Камінь
block.blackstone.name = Чорний камінь
block.iron.name = Залізо
block.coal.name = Вугілля
block.titanium.name = Титан
block.thorium.name = Уран
block.dirt.name = Бруд
block.sand.name = Пісок
block.ice.name = Лід
block.snow.name = Сніг
block.grass.name = Трава
block.sandblock.name = Блок піску
block.snowblock.name = Блок снігу
block.stoneblock.name = Блок камню
block.blackstoneblock.name = Блок чорного камню
block.grassblock.name = Блок бруду
block.mossblock.name = Моссблок
block.shrub.name = Чагарник
block.rock.name = Камень
block.icerock.name = Ледяний камень
block.blackrock.name = Чорний камінь
block.dirtblock.name = Блок землі
block.stonewall.name = Кам'яна стіна
block.stonewall.fulldescription = Недорогий захисний блок. Корисно для захисту ядра та турелі в перші кілька хвиль.
block.ironwall.name = Залізна стіна
block.ironwall.fulldescription = Основний захисний блок. Забезпечує захист від ворогів.
block.steelwall.name = Сталева стіна
block.steelwall.fulldescription = Стандартний захисний блок. адекватний захист від ворогів.
block.titaniumwall.name = Титанова стіна
block.titaniumwall.fulldescription = Сильний захисний блок. Забезпечує захист від ворогів.
block.duriumwall.name = Діріумова стіна
block.duriumwall.fulldescription = Дуже сильний захисний блок. Забезпечує захист від ворогів.
block.compositewall.name = Композитна стіна
block.steelwall-large.name = Велика сталева стіна
block.steelwall-large.fulldescription = Стандартний захисний блок. Поєднує в собі кілька блоків.
block.titaniumwall-large.name = Велика титанова стіна
block.titaniumwall-large.fulldescription = Сильний захисний блок. Поєднує в собі кілька блоків.
block.duriumwall-large.name = Велика дирмітова стіна
block.duriumwall-large.fulldescription = Дуже сильний захисний блок.Поєднує в собі кілька блоків.
block.titaniumshieldwall.name = Стіна з щитом
block.titaniumshieldwall.fulldescription = Сильний захисний блок з додатковим вбудованим щитом. Потрібна енергія. Використовує енергію для поглинання ворожих куль. Рекомендується використовувати силові пристосування для забезпечення енергії цього блоку.
block.repairturret.name = Ремонтна турель
block.repairturret.fulldescription = Ремонтує недалекі пошкодженні блоки.Повільний темп. Використовує невелику кількість енергії.
block.megarepairturret.name = Ремонтна турель II
block.megarepairturret.fulldescription = Ремонтує недалекі пошкодженні блоки.Збільшений радіус та швидший темп ремонту . Використовує багато енергії.
block.shieldgenerator.name = Генератор щиту
block.shieldgenerator.fulldescription = Передовий захисний блок. Захищає всі блоки в радіусі від нападу. Не вкористовує енергію при бездіяльності, але швидко витрачає енергію на захист від куль.
block.door.name=Двері
block.door.fulldescription = Блок, який можна відкрити та закрити, торкнувшись його.
block.door-large.name=Великі двері
block.door-large.fulldescription = Блок, який можна відкрити та закрити, торкнувшись його.
block.conduit.name=Трубопровід
block.conduit.fulldescription = Основний транспортний блок. Працює як конвеєр, але з рідинами. Найкраще використовується з насосами або іншими трубопроводами. Може використовуватися як міст через рідини для ворогів та гравців.
block.pulseconduit.name=Імпульсний канал
block.pulseconduit.fulldescription = Покращенний блок перевезення рідин. Транспортує рідини швидше і зберігає більше стандартних каналів.
block.liquidrouter.name=маршрутизатор для рідини
block.liquidrouter.fulldescription = Працює аналогічно маршрутизатору. Приймає рідину ввід з одного боку і виводить його на інші сторони. Корисний для розщеплення рідини з одного каналу на кілька інших трубопроводів.
block.conveyor.name=Конвеєр
block.conveyor.fulldescription = Базовий транспортний блок. Переміщує предмети вперед і автоматично вкладає їх у турелі або ремісники. Поворотний Може використовуватися як міст через рідину для ворогів та гравців.
block.steelconveyor.name = Сталевий конвеєр
block.steelconveyor.fulldescription = Розширений блок транспортування предметів. Переміщення елементів швидше, ніж стандартні конвеєри.
block.poweredconveyor.name = Імпульсний конвеєр
block.poweredconveyor.fulldescription = Кінцевий транспортний блок. Переміщення елементів швидше, ніж сталеві конвеєри.
block.router.name=Маршрутизатор
block.router.fulldescription = Приймає елементи з одного напрямку і виводить їх на 3 інших напрямках. Можна також зберігати певну кількість предметів. Використовується для розщеплення матеріалів з одного свердла на декілька башточок.
block.junction.name=Міст
block.junction.fulldescription = Виступає як міст для двох перехресних конвеєрних стрічок. Корисне у ситуаціях з двома різними конвеєрами, що несуть різні матеріали в різних місцях.
block.conveyortunnel.name = Конвеєрний тунель
block.conveyortunnel.fulldescription = Транспортує предмети під блоками. Щоб використати, помістіть один тунель, що веде у блок, щоб бути підсвіченим, а один - з іншого боку. Переконайтеся, що обидва тунелі стикаються з протилежними напрямками, тобто до блоків, які вони вводять або виводять.
block.liquidjunction.name=Міст для рідини
block.liquidjunction.fulldescription = Діє як міст для двох перехресних трубопроводів. Корисно в ситуаціях з двома різними трубами, що несуть різні рідини в різних місцях.
block.liquiditemjunction.name = Перехрестя рідкого пункту
block.liquiditemjunction.fulldescription = Виступає як міст для перетину трубопроводів і конвеєрів.
block.powerbooster.name = Підсилювач потужності
block.powerbooster.fulldescription = Поширює енергію на всі блоки в межах його радіуса.
block.powerlaser.name = Енергетичний лазер
block.powerlaser.fulldescription = Створює лазер, який передає енергію блоку перед ним. Не створює жодної сили сама. Найкраще використовується з генераторами або іншими лазерами.
block.powerlaserrouter.name = Лазерний маршрутизатор
block.powerlaserrouter.fulldescription = Лазер, який розподіляє енергію у три напрямки одночасно. Корисно в ситуаціях, коли потрібно живити кілька блоків від одного генератора.
block.powerlasercorner.name = Лазерний кут
block.powerlasercorner.fulldescription = Лазер, який розподіляє енергію одночасно на два напрямки. Корисно в ситуаціях, коли потрібно живити кілька блоків від одного генератора, а маршрутизатор неточний.
block.teleporter.name = Телепорт
block.teleporter.fulldescription = Продвинутий блок транспортування предметів.Щоб телепортувати предмети з одного місця в інше потрібно збудувати 2 телепорти і назначити на них одинаковий колір. Використовує енергію. Натисніть, щоб змінити колір.
block.sorter.name=Сортувальник
block.sorter.fulldescription = Сортує предмети за типом матеріалу. Матеріал для прийняття позначається кольором у блоці. Всі елементи, що відповідають матеріалу сортування, виводяться вперед, а все інше виводить ліворуч і праворуч.
block.core.name = Ядро
block.pump.name = Насос
block.pump.fulldescription = Насоси рідини з вихідного блоку - зазвичай вода, лава чи олія. Виводить рідину в сусідні трубопроводи.
block.fluxpump.name = Флюсовий насос
block.fluxpump.fulldescription = Розширений варіант насоса. Зберігає більше рідини та перекачує швидше.
block.smelter.name=Плавильня
block.smelter.fulldescription = Основний ремісничий блок. Коли вводиться 1 залізо та 1 вугілля в якості палива, виводить одну сталь. Рекомендується вводити залізо та вугілля на різних поясах, щоб запобігти засміченню.
block.crucible.name = Тигель
block.crucible.fulldescription = Розширений блок обробки. При введенні 1 титану, 1 сталі та 1 вугілля в якості пального, виводить один дирний. Рекомендується вводити вугілля, сталь та титан на різних поясах, щоб запобігти засміченню.
block.coalpurifier.name = вугільний екстрактор
block.coalpurifier.fulldescription = Основний екстрактор. Виходить вугілля при постачанні великої кількості води та каменю.
block.titaniumpurifier.name = Титановий екстрактор
block.titaniumpurifier.fulldescription = Стандартний блок екстрактора. Виходить титан при постачанні великої кількості води та заліза.
block.oilrefinery.name = Нафтопереробний завод
block.oilrefinery.fulldescription = Очищує велику кількість нафти і перетворює на вугілля. Корисний для заправки вугільних башточок, коли вугільні родовища є дефіцитними.
block.stoneformer.name = Кам'янний екстрактор
block.stoneformer.fulldescription = Здавлюється рідка лава в камінь. Корисно для виготовлення великої кількості каменю для очищувачів вугілля.
block.lavasmelter.name = Лавовий завод
block.lavasmelter.fulldescription = Використовує лаву для перетворення залізо на сталь. Альтернатива плавильні. Корисно в ситуаціях, коли вугілля є дефіцитним.
block.stonedrill.name = Кам'янна свердловина
block.stonedrill.fulldescription = Основна свердловина.Розміщюється на кам'яній плитці виводить камінь повільними темпами.
block.irondrill.name = Залізна свердловина
block.irondrill.fulldescription = Базова свердловина.Розміщюється на родовищі залізної руди, випускає залізо в повільному темпі.
block.coaldrill.name = Вугільна свердловина
block.coaldrill.fulldescription = Базова свердловина.Розміщюється на родовищі вугільної руди ,видобуває вугілля повільними темпами.
block.thoriumdrill.name = Уранова свердловина
block.thoriumdrill.fulldescription = Продвинута свердловина. Розміщюється на родовищі уранової руди.Видобуток урану відбувається повільними темпами.
block.titaniumdrill.name = Титанова свердловина
block.titaniumdrill.fulldescription = Продвинута свердловина.Розміщюється на родовищі титанової руди, Видобуток титану відбувається повільним темпом.
block.omnidrill.name = Убер свердловина
block.omnidrill.fulldescription = Кінцева свердловина.Дуже швидко видобуває будь-який вид руди.
block.coalgenerator.name = Вугільний генератор
block.coalgenerator.fulldescription = Основний генератор. Генерує енергію з вугілля. Виводиться потужність лазерів на 4 сторони.
block.thermalgenerator.name = Теплогенератор
block.thermalgenerator.fulldescription = Генерує енергію від лави. Виводиться потужність лазерів на 4 сторони.
block.combustiongenerator.name = Генератор горіння
block.combustiongenerator.fulldescription = Генерує енергію з нафти. Виводиться потужність лазерів на 4 сторони.
block.rtgenerator.name = RTG генератор
block.rtgenerator.fulldescription = Генерує невелику кількість енергії з радіоактивного розпаду урану. Виводиться потужність лазерів на 4 сторони.
block.nuclearreactor.name = Ядерний реактор
block.nuclearreactor.fulldescription = Розширений варіант RTG Generator і кінцевий генератор електроенергії. Генерує енергію з урану. Потребує постійного водяного охолодження.Сильно вибухне якщо не буде постачання води у великії кількості
block.turret.name = Турель
block.turret.fulldescription = Базова, дешева турель. Використовує камінь для боєприпасів. Має трохи більше діапазону, ніж подвійна турель.
block.doubleturret.name = Подвійна турель
block.doubleturret.fulldescription = Дещо потужна версія турель. Використовує камінь для боєприпасів. Значно більший урон, але менший діапазон. Вистрілює дві кулі.
block.machineturret.name = Кулеметна турель
block.machineturret.fulldescription = Стандартна всеосяжна турель. Використовує залізо для боєприпасів. Має швидку швидкість пострілу і гідну шкоду.
block.shotgunturret.name = Розріджуюча турель
block.shotgunturret.fulldescription = Стандартна турель. Використовує залізо для боєприпасів. Вистрілює 7 куль навколо себе.Наносить значних ушкоджень,звісно якщо поцілить :)
block.flameturret.name = Вогнемет
block.flameturret.fulldescription = Продвинута турель ближнього діапазону. Використовує вугілля для боєприпасів. Має дуже низький радіус, але дуже високий збиток. Добре для близьких дистанцій. Рекомендується використовувати за стінами.
block.sniperturret.name = Лазерна турель.
block.sniperturret.fulldescription = Продвинута далекобійна турель. Використовує сталь для боєприпасів. Дуже високий збиток, але низький рівень урону. Дорогі для використання, але можуть бути розташовані далеко від ліній ворога через його радіус.
block.mortarturret.name = Флак турель
block.mortarturret.fulldescription = Продвинута,неточна турель. Використовує вугілля для боєприпасів. Стріляє кулями, що вибухають у шрапнеллв. Корисне для великих натовпів ворогів.
block.laserturret.name = Лазерна турель
block.laserturret.fulldescription = Продвинута однопушечна турель. Використовує енергію. Хороша на середніх дистанціях. Ніколи не пропускає.
block.waveturret.name = Тесла
block.waveturret.fulldescription = Передова багатоцільова турель. Використовує енергію. Середній радіус. Ніколи не пропускає. Активно знижує, але може вражати декількох ворогів одночасно з ланцюговим освітленням.
block.plasmaturret.name = Плазмова турель
block.plasmaturret.fulldescription = Дуже продвинута версія Вогнеметної турелі. Використовує вугілля як боєприпаси. Дуже високий урон, від близької до середньої дистанції.
block.chainturret.name = Уранова турель
block.chainturret.fulldescription = Остаточна швидкістна вежа. Використовує уран як боєприпаси. Вистрілює великі кулі при високій швидкості вогню. Середній радіус. Промінь кілька плиток. Надзвичайно жорсткий.
block.titancannon.name = Титанова гармата
block.titancannon.fulldescription = Найбільш далекобійна турель. Використовує уран як боєприпаси. Вистрілює великі снаряди. Далекобійний. Промінь кілька плиток. Надзвичайно жорсткий.
block.playerspawn.name = Спавн Гравця
block.enemyspawn.name = Спавн ворогів
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.link.github.description=Game source code
text.link.dev-builds.description=Unstable development builds
text.link.trello.description=Official trello board for planned features
text.link.itch.io.description=itch.io page with PC downloads and web version
text.link.google-play.description=Google Play store listing
text.link.wiki.description=official Mindustry wiki
text.linkfail=Failed to open link!\nThe URL has been copied to your cliboard.
text.editor.web=The web version does not support the editor!\nDownload the game to use it.
text.web.unsupported=The web version does not support this feature! Download the game to use it.
text.multiplayer.web=This version of the game does not support multiplayer!\nTo play multiplayer from your browser, use the "multiplayer web version" link at the itch.io page.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
text.construction.title=Block Construction Guide
text.construction=You've just selected [accent]block construction mode[].\n\nTo begin placing, simply tap a valid location near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Shift the selection[] by holding and dragging any block in the selection.\n- [accent]Place blocks in a line[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel construction or selection[] by pressing the X at the bottom left.
text.deconstruction.title=Block Deconstruction Guide
text.deconstruction=You've just selected [accent]block deconstruction mode[].\n\nTo begin breaking, simply tap a block near your ship.\nOnce you have selected some blocks, press the checkbox to confirm, and your ship will begin de-constructing them.\n\n- [accent]Remove blocks[] from your selection by tapping them.\n- [accent]Remove blocks in an area[] by tapping and holding an empty spot, then dragging in a direction.\n- [accent]Cancel deconstruction or selection[] by pressing the X at the bottom left.
text.showagain=Don't show again next session
text.unlocks=Unlocks
text.addplayers=Add/Remove Players
text.maps=Maps
text.maps.none=[LIGHT_GRAY]No maps found!
text.unlocked=New Block Unlocked!
text.unlocked.plural=New Blocks Unlocked!
text.server.kicked.fastShoot=You are shooting too quickly.
text.server.kicked.banned=You are banned on this server.
text.server.kicked.recentKick=You have been kicked recently.\nWait before connecting again.
text.server.kicked.nameInUse=There is someone with that name\nalready on this server.
text.server.kicked.nameEmpty=Your name must contain at least one character or number.
text.server.kicked.idInUse=You are already on this server! Connecting with two accounts is not permitted.
text.server.kicked.customClient=This server does not support custom builds. Download an official version.
text.host.info=The [accent]host[] button hosts a server on ports [scarlet]6567[] and [scarlet]6568.[]\nAnybody on the same [LIGHT_GRAY]wifi or local network[] should be able to see your server in their server list.\n\nIf you want people to be able to connect from anywhere by IP, [accent]port forwarding[] is required.\n\n[LIGHT_GRAY]Note: If someone is experiencing trouble connecting to your LAN game, make sure you have allowed Mindustry access to your local network in your firewall settings.
text.join.info=Here, you can enter a [accent]server IP[] to connect to, or discover [accent]local network[] servers to connect to.\nBoth LAN and WAN multiplayer is supported.\n\n[LIGHT_GRAY]Note: There is no automatic global server list; if you want to connect to someone by IP, you would need to ask the host for their IP.
text.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.trace.ip=IP: [accent]{0}
text.trace.id=Unique ID: [accent]{0}
text.trace.android=Android Client: [accent]{0}
text.trace.modclient=Custom Client: [accent]{0}
text.trace.totalblocksbroken=Total blocks broken: [accent]{0}
text.trace.structureblocksbroken=Structure blocks broken: [accent]{0}
text.trace.lastblockbroken=Last block broken: [accent]{0}
text.trace.totalblocksplaced=Total blocks placed: [accent]{0}
text.trace.lastblockplaced=Last block placed: [accent]{0}
text.invalidid=Invalid client ID! Submit a bug report.
text.server.bans=Bans
text.server.bans.none=No banned players found!
text.server.admins=Admins
text.server.admins.none=No admins found!
text.server.outdated=[crimson]Outdated Server![]
text.server.outdated.client=[crimson]Outdated Client![]
text.server.version=[lightgray]Version: {0}
text.server.custombuild=[yellow]Custom Build
text.confirmban=Are you sure you want to ban this player?
text.confirmunban=Are you sure you want to unban this player?
text.confirmadmin=Are you sure you want to make this player an admin?
text.confirmunadmin=Are you sure you want to remove admin status from this player?
text.disconnect.data=Failed to load world data!
text.copylink=Copy Link
text.changelog.title=Changelog
text.changelog.loading=Getting changelog...
text.changelog.error.android=[orange]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
text.changelog.error.ios=[orange]The changelog is currently not supported in iOS.
text.changelog.error=[scarlet]Error getting changelog!\nCheck your internet connection.
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.saving=[accent]Saving...
text.unknown=Unknown
text.custom=Custom
text.builtin=Built-In
text.map.delete.confirm=Are you sure you want to delete this map? This action cannot be undone!
text.map.random=[accent]Random Map
text.map.nospawn=This map does not have any cores for the player to spawn in! Add a [ROYAL]blue[] core to this map in the editor.
text.editor.slope=\\
text.editor.openin=Open In Editor
text.editor.oregen=Ore Generation
text.editor.oregen.info=Ore Generation:
text.editor.mapinfo=Map Info
text.editor.author=Author:
text.editor.description=Description:
text.editor.name=Name:
text.editor.teams=Teams
text.editor.elevation=Elevation
text.editor.saved=Saved!
text.editor.save.noname=Your map does not have a name! Set one in the 'map info' menu.
text.editor.save.overwrite=Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
text.editor.import.exists=[scarlet]Unable to import:[] a built-in map named '{0}' already exists!
text.editor.import=Import...
text.editor.importmap=Import Map
text.editor.importmap.description=Import an already existing map
text.editor.importfile=Import File
text.editor.importfile.description=Import an external map file
text.editor.importimage=Import Terrain Image
text.editor.importimage.description=Import an external map image file
text.editor.export=Export...
text.editor.exportfile=Export File
text.editor.exportfile.description=Export a map file
text.editor.exportimage=Export Terrain Image
text.editor.exportimage.description=Export a map image file
text.editor.overwrite.confirm=[scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Ping: {0}ms
text.settings.rebind=Rebind
text.yes=Yes
text.no=No
text.blocks.targetsair=Targets Air
text.blocks.itemspeed=Units Moved
text.blocks.shootrange=Range
text.blocks.poweruse=Power Use
text.blocks.inputitemcapacity=Input Item Capacity
text.blocks.outputitemcapacity=Input Item Capacity
text.blocks.maxpowergeneration=Max Power Generation
text.blocks.powertransferspeed=Power Transfer
text.blocks.craftspeed=Production Speed
text.blocks.inputliquidaux=Aux Liquid
text.blocks.inputitems=Input Items
text.blocks.outputitem=Output Item
text.blocks.drilltier=Drillables
text.blocks.drillspeed=Base Drill Speed
text.blocks.liquidoutput=Liquid Output
text.blocks.liquiduse=Liquid Use
text.blocks.coolant=Coolant
text.blocks.coolantuse=Coolant Use
text.blocks.inputliquidfuel=Fuel Liquid
text.blocks.liquidfueluse=Liquid Fuel Use
text.blocks.reload=Reload
text.blocks.inputfuel=Fuel
text.blocks.fuelburntime=Fuel Burn Time
text.unit.blocks=blocks
text.unit.powersecond=power units/second
text.unit.liquidsecond=liquid units/second
text.unit.itemssecond=items/second
text.unit.pixelssecond=pixels/second
text.unit.liquidunits=liquid units
text.unit.powerunits=power units
text.unit.degrees=degrees
text.unit.seconds=seconds
text.unit.none=
text.unit.items=items
text.category.general=General
text.category.power=Power
text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.minimap.name=Show Minimap
mode.text.help.title=Description of modes
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.description=infinite resources and no timer for waves.
mode.freebuild.description=limited resources and no timer for waves.
content.item.name=Items
content.liquid.name=Liquids
content.unit-type.name=Units
content.recipe.name=Blocks
item.stone.description=A common raw material. Used for separating and refining into other materials, or melting into lava.
item.tungsten.name=Tungsten
item.tungsten.description=A common, but very useful structure material. Used in drills and heat-resistant blocks such as generators and smelteries.
item.lead.name=Lead
item.lead.description=A basic starter material. Used extensively in electronics and liquid transportation blocks.
item.coal.description=A common and readily available fuel.
item.carbide.name=Carbide
item.carbide.description=A tough alloy made with tungsten and carbon. Used in advanced transportation blocks and high-tier drills.
item.titanium.description=A rare super-light metal used extensively in liquid transportation, drills and aircraft.
item.thorium.description=A dense, radioactive metal used as structural support and nuclear fuel.
item.silicon.name=Silicon
item.silcion.description=An extremely useful semiconductor, with applications in solar panels and many complex electronics.
item.plastanium.name=Plastanium
item.plastanium.description=A light, ductile material used in advanced aircraft and fragmentation ammunition.
item.phase-matter.name=Phase Matter
item.surge-alloy.name=Surge Alloy
item.biomatter.name=Biomatter
item.biomatter.description=A clump of organic mush; used for conversion into oil or as a basic fuel.
item.sand.description=A common material that is used extensively in smelting, both in alloying and as a flux.
item.blast-compound.name=Blast Compound
item.blast-compound.description=A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
item.pyratite.name=Pyratite
item.pyratite.description=An extremely flammable substance used in incendiary weapons.
liquid.cryofluid.name=Cryofluid
text.item.explosiveness=[LIGHT_GRAY]Explosiveness: {0}
text.item.flammability=[LIGHT_GRAY]Flammability: {0}
text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
block.tungsten-wall.name=Tungsten Wall
block.tungsten-wall-large.name=Large Tungsten Wall
block.carbide-wall.name=Carbide Wall
block.carbide-wall-large.name=Large Carbide Wall
block.thorium-wall.name=Thorium Wall
block.thorium-wall-large.name=Large Thorium Wall
block.duo.name=Duo
block.scorch.name=Scorch
block.hail.name=Hail
block.lancer.name=Lancer
block.titanium-conveyor.name=Titanium Conveyor
block.splitter.name=Splitter
block.splitter.description=Outputs items into two opposite directions immediately after they are recieved.
block.router.description=Splits items into all 4 directions. Can store items as a buffer.
block.distributor.name=Distributor
block.distributor.description=A splitter that can split items into 8 directions.
block.sorter.description=Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
block.overflow-gate.name=Overflow Gate
block.overflow-gate.description=A combination splitter and router that only outputs to the left and right if the front path is blocked.
block.bridgeconveyor.name=Bridge Conveyor
block.bridgeconveyor.description=A conveyor that can go over other blocks, for up to two total blocks.
block.arc-smelter.name=Arc Smelter
block.silicon-smelter.name=Silicon Smelter
block.phase-weaver.name=Phase Weaver
block.pulverizer.name=Pulverizer
block.cryofluidmixer.name=Cryofluid Mixer
block.melter.name=Melter
block.incinerator.name=Incinerator
block.biomattercompressor.name=Biomatter Compressor
block.separator.name=Separator
block.centrifuge.name=Centrifuge
block.power-node.name=Power Node
block.power-node-large.name=Large Power Node
block.battery.name=Battery
block.battery-large.name=Large Battery
block.combustion-generator.name=Combustion Generator
block.turbine-generator.name=Turbine Generator
block.tungsten-drill.name=Tungsten Drill
block.carbide-drill.name=Carbide Drill
block.laser-drill.name=Laser Drill
block.water-extractor.name=Water Extractor
block.cultivator.name=Cultivator
block.dart-ship-factory.name=Dart Ship Factory
block.delta-mech-factory.name=Delta Mech Factory
block.dronefactory.name=Drone Factory
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.liquidtank.name=Liquid Tank
block.bridgeconduit.name=Bridge Conduit
block.mechanical-pump.name=Mechanical Pump
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.wave.name=Wave
block.swarmer.name=Swarmer
block.salvo.name=Salvo
block.ripple.name=Ripple
block.phase-conveyor.name=Phase Conveyor
block.bridge-conveyor.name=Bridge Conveyor
block.plastanium-compressor.name=Plastanium Compressor
block.pyratite-mixer.name=Pyratite Mixer
block.blast-mixer.name=Blast Mixer
block.solidifer.name=Solidifer
block.solar-panel.name=Solar Panel
block.solar-panel-large.name=Large Solar Panel
block.oil-extractor.name=Oil Extractor
block.javelin-ship-factory.name=Javelin Ship factory
block.drone-factory.name=Drone Factory
block.fabricator-factory.name=Fabricator Factory
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
block.phase-conduit.name=Phase Conduit
block.liquid-router.name=Liquid Router
block.liquid-tank.name=Liquid Tank
block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
text.save.old=This save is for an older version of the game, and can no longer be used.\n\n[LIGHT_GRAY]Save backwards compatibility will be implemented in the full 4.0 release.
+9 -22
View File
@@ -3,6 +3,8 @@ precision mediump float;
precision mediump int;
#endif
#define SPACE 1.0
uniform sampler2D u_texture;
uniform vec4 u_color;
@@ -11,30 +13,15 @@ uniform vec2 u_texsize;
varying vec4 v_color;
varying vec2 v_texCoord;
bool id(vec4 v){
return v.a > 0.1;
}
void main() {
vec2 T = v_texCoord.xy;
vec2 v = vec2(1.0/u_texsize.x, 1.0/u_texsize.y);
bool any = false;
vec4 c = texture2D(u_texture, v_texCoord.xy);
float step = 1.0;
vec4 c = texture2D(u_texture, T);
if(texture2D(u_texture, T).a < 0.1 &&
(id(texture2D(u_texture, T + vec2(0, step) * v)) || id(texture2D(u_texture, T + vec2(0, -step) * v)) ||
id(texture2D(u_texture, T + vec2(step, 0) * v)) || id(texture2D(u_texture, T + vec2(-step, 0) * v))))
any = true;
if(any){
gl_FragColor = u_color;
}else{
gl_FragColor = c * v_color;
}
gl_FragColor = mix(c * v_color, u_color,
(1.0-step(0.1, texture2D(u_texture, v_texCoord.xy).a)) *
step(0.1, texture2D(u_texture, v_texCoord.xy + vec2(0, SPACE) * v).a +
texture2D(u_texture, v_texCoord.xy + vec2(0, -SPACE) * v).a +
texture2D(u_texture, v_texCoord.xy + vec2(SPACE, 0) * v).a +
texture2D(u_texture, v_texCoord.xy + vec2(-SPACE, 0) * v).a));
}
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 133 KiB

+2 -4
View File
@@ -4,21 +4,19 @@
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.Tile"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.Content"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.io.Maps"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.Player" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.units.BaseUnit" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.Map"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.SpawnGroup"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.core.GameState"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.EventType"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.io.SaveFileVersion"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.type.Recipe" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.ucore.entities.impl.EffectEntity"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Packets"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Packet"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.effect"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.bullet.Bullet"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.type.Recipe" />
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.game.Team"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.net.Streamable"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.meta.BlockBar"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.world.mapgen.WorldGenerator"/>
<extend-configuration-property name="gdx.reflect.include" value="com.badlogic.gdx.utils.Predicate"/>
</module>
@@ -1,6 +1,5 @@
package io.anuke.mindustry;
import com.badlogic.gdx.utils.async.AsyncExecutor;
import io.anuke.mindustry.core.*;
import io.anuke.mindustry.io.BundleLoader;
import io.anuke.ucore.core.Timers;
@@ -10,7 +9,6 @@ import io.anuke.ucore.util.Log;
import static io.anuke.mindustry.Vars.*;
public class Mindustry extends ModuleCore{
private AsyncExecutor exec = new AsyncExecutor(1);
@Override
public void init(){
+44 -61
View File
@@ -19,8 +19,8 @@ import io.anuke.mindustry.io.Version;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.entities.impl.EffectEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.OS;
import io.anuke.ucore.util.Translator;
@@ -28,6 +28,46 @@ import io.anuke.ucore.util.Translator;
import java.util.Locale;
public class Vars{
//respawn time in frames
public static final float respawnduration = 60 * 4;
//time between waves in frames (on normal mode)
public static final float wavespace = 60 * 60 * 2f;
//waves can last no longer than 3 minutes, otherwise the next one spawns
public static final float maxwavespace = 60 * 60 * 4f;
//set ridiculously high for now
public static final float coreBuildRange = 800999f;
//discord group URL
public static final String discordURL = "https://discord.gg/BKADYds";
public static final String releasesURL = "https://api.github.com/repos/Anuken/Mindustry/releases";
public static final int maxTextLength = 150;
public static final int maxNameLength = 40;
public static final int maxCharNameLength = 20;
public static final int saveSlots = 64;
public static final float itemSize = 5f;
public static final int tilesize = 8;
public static final Locale[] locales = {new Locale("en"), new Locale("fr"), new Locale("ru"), new Locale("uk", "UA"), new Locale("pl"),
new Locale("de"), new Locale("pt", "BR"), new Locale("ko"), new Locale("in", "ID"), new Locale("ita"), new Locale("es")};
public static final Color[] playerColors = {
Color.valueOf("82759a"),
Color.valueOf("c0c1c5"),
Color.valueOf("fff0e7"),
Color.valueOf("7d2953"),
Color.valueOf("ff074e"),
Color.valueOf("ff072a"),
Color.valueOf("ff76a6"),
Color.valueOf("a95238"),
Color.valueOf("ffa108"),
Color.valueOf("feeb2c"),
Color.valueOf("ffcaa8"),
Color.valueOf("008551"),
Color.valueOf("00e339"),
Color.valueOf("423c7b"),
Color.valueOf("4b5ef1"),
Color.valueOf("2cabfe"),
};
//server port
public static final int port = 6567;
public static final int webPort = 6568;
public static boolean testMobile;
//shorthand for whether or not this is running on android or ios
public static boolean mobile;
@@ -35,21 +75,6 @@ public class Vars{
public static boolean android;
//shorthand for whether or not this is running on GWT
public static boolean gwt;
//respawn time in frames
public static final float respawnduration = 60*4;
//time between waves in frames (on normal mode)
public static final float wavespace = 60*60*2f;
//waves can last no longer than 3 minutes, otherwise the next one spawns
public static final float maxwavespace = 60*60*4f;
//set ridiculously high for now
public static final float coreBuildRange = 800999f;
//discord group URL
public static final String discordURL = "https://discord.gg/BKADYds";
public static final String releasesURL = "https://api.github.com/repos/Anuken/Mindustry/releases";
//directory for user-created map data
public static FileHandle customMapDirectory;
//save file directory
@@ -75,56 +100,12 @@ public class Vars{
public static boolean showUI = true;
//whether to show block debug
public static boolean showBlockDebug = false;
public static boolean showFog = true;
public static final int maxTextLength = 150;
public static final int maxNameLength = 40;
public static final int maxCharNameLength = 20;
public static boolean headless = false;
public static float controllerMin = 0.25f;
public static float baseControllerSpeed = 11f;
public static final int saveSlots = 64;
public static final float itemSize = 5f;
//only if smoothCamera
public static boolean snapCamera = true;
public static final int tilesize = 8;
public static final Translator[] tmptr = new Translator[]{new Translator(), new Translator(), new Translator(), new Translator()};
public static final Locale[] locales = {new Locale("en"), new Locale("fr"), new Locale("ru"), new Locale("uk", "UA"), new Locale("pl"),
new Locale("de"), new Locale("pt", "BR"), new Locale("ko"), new Locale("in", "ID"), new Locale("ita"), new Locale("es")};
public static final Color[] playerColors = {
Color.valueOf("82759a"),
Color.valueOf("c0c1c5"),
Color.valueOf("fff0e7"),
Color.valueOf("7d2953"),
Color.valueOf("ff074e"),
Color.valueOf("ff072a"),
Color.valueOf("ff76a6"),
Color.valueOf("a95238"),
Color.valueOf("ffa108"),
Color.valueOf("feeb2c"),
Color.valueOf("ffcaa8"),
Color.valueOf("008551"),
Color.valueOf("00e339"),
Color.valueOf("423c7b"),
Color.valueOf("4b5ef1"),
Color.valueOf("2cabfe"),
};
//server port
public static final int port = 6567;
public static final int webPort = 6568;
public static GameState state;
public static ThreadHandler threads;
@@ -150,6 +131,8 @@ public class Vars{
public static EntityGroup<Fire> fireGroup;
public static EntityGroup<BaseUnit>[] unitGroups;
public static final Translator[] tmptr = new Translator[]{new Translator(), new Translator(), new Translator(), new Translator()};
public static void init(){
Version.init();
@@ -171,7 +154,7 @@ public class Vars{
for(EntityGroup<?> group : Entities.getAllGroups()){
group.setRemoveListener(entity -> {
if(entity instanceof SyncTrait && Net.client()){
netClient.addRemovedEntity(((SyncTrait) entity).getID());
netClient.addRemovedEntity((entity).getID());
}
});
}
@@ -26,32 +26,53 @@ import static io.anuke.mindustry.Vars.*;
//TODO consider using quadtrees for finding specific types of blocks within an area
//TODO maybe use Arrays instead of ObjectSets?
/**Class used for indexing special target blocks for AI.*/
/**
* Class used for indexing special target blocks for AI.
*/
public class BlockIndexer{
/**Size of one ore quadrant.*/
/**
* Size of one ore quadrant.
*/
private final static int oreQuadrantSize = 20;
/**Size of one structure quadrant.*/
/**
* Size of one structure quadrant.
*/
private final static int structQuadrantSize = 12;
/**Set of all ores that are being scanned.*/
/**
* Set of all ores that are being scanned.
*/
private final ObjectSet<Item> scanOres = ObjectSet.with(Items.tungsten, Items.coal, Items.lead, Items.thorium, Items.titanium);
/**Stores all ore quadtrants on the map.*/
private ObjectMap<Item, ObjectSet<Tile>> ores;
private final ObjectSet<Item> itemSet = new ObjectSet<>();
/**Tags all quadrants.*/
/**
* Stores all ore quadtrants on the map.
*/
private ObjectMap<Item, ObjectSet<Tile>> ores;
/**
* Tags all quadrants.
*/
private Bits[] structQuadrants;
/**Maps teams to a map of flagged tiles by type.*/
/**
* Maps teams to a map of flagged tiles by type.
*/
private ObjectMap<BlockFlag, ObjectSet<Tile>> enemyMap = new ObjectMap<>();
/**Maps teams to a map of flagged tiles by type.*/
/**
* Maps teams to a map of flagged tiles by type.
*/
private ObjectMap<BlockFlag, ObjectSet<Tile>> allyMap = new ObjectMap<>();
/**Empty map for invalid teams.*/
/**
* Empty map for invalid teams.
*/
private ObjectMap<BlockFlag, ObjectSet<Tile>> emptyMap = new ObjectMap<>();
/**Maps tile positions to their last known tile index data.*/
/**
* Maps tile positions to their last known tile index data.
*/
private IntMap<TileIndex> typeMap = new IntMap<>();
/**Empty array used for returning.*/
/**
* Empty array used for returning.
*/
private ObjectSet<Tile> emptyArray = new ObjectSet<>();
public BlockIndexer(){
@@ -94,12 +115,16 @@ public class BlockIndexer {
});
}
/**Get all allied blocks with a flag.*/
/**
* Get all allied blocks with a flag.
*/
public ObjectSet<Tile> getAllied(Team team, BlockFlag type){
return (state.teams.get(team).ally ? allyMap : enemyMap).get(type, emptyArray);
}
/**Get all enemy blocks with a flag.*/
/**
* Get all enemy blocks with a flag.
*/
public ObjectSet<Tile> getEnemy(Team team, BlockFlag type){
return (!state.teams.get(team).ally ? allyMap : enemyMap).get(type, emptyArray);
}
@@ -134,15 +159,19 @@ public class BlockIndexer {
return (TileEntity) closest;
}
/**Returns a set of tiles that have ores of the specified type nearby.
/**
* Returns a set of tiles that have ores of the specified type nearby.
* While each tile in the set is not guaranteed to have an ore directly on it,
* each tile will at least have an ore within {@link #oreQuadrantSize} / 2 blocks of it.
* Only specific ore types are scanned. See {@link #scanOres}.*/
* Only specific ore types are scanned. See {@link #scanOres}.
*/
public ObjectSet<Tile> getOrePositions(Item item){
return ores.get(item, emptyArray);
}
/**Find the closest ore block relative to a position.*/
/**
* Find the closest ore block relative to a position.
*/
public Tile findClosestOre(float xp, float yp, Item item){
Tile tile = Geometry.findClosest(xp, yp, world.indexer().getOrePositions(item));
@@ -7,18 +7,11 @@ import io.anuke.mindustry.type.ContentList;
import io.anuke.mindustry.type.Liquid;
public class Liquids implements ContentList{
public static Liquid none, water, lava, oil, cryofluid;
public static Liquid water, lava, oil, cryofluid;
@Override
public void load(){
none = new Liquid("none", Color.CLEAR){
@Override
public boolean isHidden(){
return true;
}
};
water = new Liquid("water", Color.valueOf("486acd")){
{
heatCapacity = 0.4f;
@@ -48,8 +41,8 @@ public class Liquids implements ContentList {
cryofluid = new Liquid("cryofluid", Color.SKY){
{
heatCapacity = 0.75f;
temperature = 0.4f;
heatCapacity = 0.9f;
temperature = 0.25f;
tier = 1;
effect = StatusEffects.freezing;
}
@@ -11,7 +11,9 @@ import io.anuke.mindustry.type.Upgrade;
public class Mechs implements ContentList{
public static Mech alpha, delta, tau, omega, dart, javelin, trident, halberd;
/**These are not new mechs, just re-assignments for convenience.*/
/**
* These are not new mechs, just re-assignments for convenience.
*/
public static Mech starterDesktop, starterMobile;
@Override
@@ -48,7 +50,7 @@ public class Mechs implements ContentList {
}};
dart = new Mech("dart-ship", true){{
drillPower = -1;
drillPower = 1;
speed = 0.4f;
maxSpeed = 3f;
drag = 0.1f;
@@ -44,11 +44,11 @@ public class Recipes implements ContentList{
//starter lead transporation
new Recipe(distribution, DistributionBlocks.junction, new ItemStack(Items.lead, 2));
new Recipe(distribution, DistributionBlocks.router, new ItemStack(Items.lead, 6));
new Recipe(distribution, DistributionBlocks.splitter, new ItemStack(Items.lead, 6));
//advanced carbide transporation
new Recipe(distribution, DistributionBlocks.splitter, new ItemStack(Items.carbide, 2), new ItemStack(Items.tungsten, 2));
new Recipe(distribution, DistributionBlocks.multiplexer, new ItemStack(Items.carbide, 8), new ItemStack(Items.tungsten, 8));
//new Recipe(distribution, DistributionBlocks.splitter, new ItemStack(Items.carbide, 2), new ItemStack(Items.tungsten, 2));
new Recipe(distribution, DistributionBlocks.distributor, new ItemStack(Items.carbide, 8), new ItemStack(Items.tungsten, 8));
new Recipe(distribution, DistributionBlocks.sorter, new ItemStack(Items.carbide, 4), new ItemStack(Items.tungsten, 4));
new Recipe(distribution, DistributionBlocks.overflowGate, new ItemStack(Items.carbide, 4), new ItemStack(Items.tungsten, 8));
new Recipe(distribution, DistributionBlocks.bridgeConveyor, new ItemStack(Items.carbide, 8), new ItemStack(Items.tungsten, 8));
@@ -171,7 +171,6 @@ public class Recipes implements ContentList{
new Recipe(production, ProductionBlocks.oilextractor, new ItemStack(Items.titanium, 40), new ItemStack(Items.surgealloy, 40));*/
//new Recipe(distribution, DistributionBlocks.massDriver, new ItemStack(Items.carbide, 1));
@@ -3,10 +3,10 @@ package io.anuke.mindustry.content;
import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.content.fx.EnvironmentFx;
import io.anuke.mindustry.entities.StatusController.StatusEntry;
import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.type.StatusEffect;
import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.type.ContentList;
import io.anuke.mindustry.type.StatusEffect;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
@@ -15,17 +15,22 @@ public class Blocks extends BlockList implements ContentList{
public static Block air, spawn, blockpart, space, metalfloor, deepwater, water, lava, oil, stone, blackstone, dirt, sand, ice, snow, grass, shrub, rock, icerock, blackrock;
@Override
public void load(){
air = new Floor("air"){
{
blend = false;
}
//don't draw
public void draw(Tile tile) {}
public void load() {}
public void init() {}
public void draw(Tile tile){
}
public void load(){
}
public void init(){
}
};
blockpart = new BlockPart();
@@ -145,17 +150,14 @@ public class Blocks extends BlockList implements ContentList{
rock = new Rock("rock"){{
variants = 2;
varyShadow = true;
}};
icerock = new Rock("icerock"){{
variants = 2;
varyShadow = true;
}};
blackrock = new Rock("blackrock"){{
variants = 1;
varyShadow = true;
}};
}
}
@@ -13,52 +13,51 @@ import io.anuke.mindustry.world.blocks.production.*;
public class CraftingBlocks extends BlockList implements ContentList{
public static Block smelter, arcsmelter, siliconsmelter, plastaniumCompressor, phaseWeaver, alloysmelter, alloyfuser,
pyratiteMixer, blastMixer,
cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, oilRefinery, solidifier, incinerator;
cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, solidifier, incinerator;
@Override
public void load(){
smelter = new Smelter("smelter"){{
health = 70;
inputs = new ItemStack[]{new ItemStack(Items.tungsten, 3)};
fuel = Items.coal;
result = Items.carbide;
craftTime = 45f;
burnDuration = 35f;
useFlux = true;
consumes.items(new ItemStack[]{new ItemStack(Items.tungsten, 3)});
consumes.item(Items.coal);
}};
arcsmelter = new PowerSmelter("arc-smelter"){{
health = 90;
craftEffect = BlockFx.smeltsmoke;
inputs = new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.tungsten, 2)};
result = Items.carbide;
powerUse = 0.1f;
craftTime = 30f;
size = 2;
useFlux = true;
fluxNeeded = 2;
consumes.items(new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.tungsten, 2)});
consumes.power(0.1f);
}};
siliconsmelter = new PowerSmelter("silicon-smelter"){{
health = 90;
craftEffect = BlockFx.smeltsmoke;
inputs = new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2)};
result = Items.silicon;
powerUse = 0.05f;
craftTime = 40f;
size = 2;
hasLiquids = false;
flameColor = Color.valueOf("ffef99");
consumes.items(new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2)});
consumes.power(0.05f);
}};
plastaniumCompressor = new PlastaniumCompressor("plastanium-compressor"){{
inputLiquid = Liquids.oil;
inputItem = new ItemStack(Items.titanium, 2);
hasItems = true;
liquidUse = 0.3f;
liquidCapacity = 60f;
powerUse = 0.5f;
craftTime = 80f;
output = Items.plastanium;
itemCapacity = 30;
@@ -67,66 +66,75 @@ public class CraftingBlocks extends BlockList implements ContentList {
hasPower = hasLiquids = true;
craftEffect = BlockFx.formsmoke;
updateEffect = BlockFx.plasticburn;
consumes.liquid(Liquids.oil, 0.3f);
consumes.power(0.4f);
consumes.item(Items.titanium, 2);
}};
phaseWeaver = new PhaseWeaver("phase-weaver"){{
health = 90;
craftEffect = BlockFx.smeltsmoke;
inputs = new ItemStack[]{new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)};
result = Items.phasematter;
powerUse = 0.4f;
craftTime = 120f;
size = 2;
consumes.items(new ItemStack[]{new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10)});
consumes.power(0.5f);
}};
alloysmelter = new PowerSmelter("alloy-smelter"){{
health = 90;
craftEffect = BlockFx.smeltsmoke;
inputs = new ItemStack[]{new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.plastanium, 2)};
result = Items.surgealloy;
powerUse = 0.3f;
craftTime = 50f;
size = 2;
useFlux = true;
fluxNeeded = 4;
consumes.power(0.3f);
consumes.items(new ItemStack[]{new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.plastanium, 2)});
}};
alloyfuser = new PowerSmelter("alloy-fuser"){{
health = 90;
craftEffect = BlockFx.smeltsmoke;
inputs = new ItemStack[]{new ItemStack(Items.titanium, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.plastanium, 2)};
result = Items.surgealloy;
powerUse = 0.4f;
craftTime = 30f;
size = 3;
useFlux = true;
fluxNeeded = 4;
consumes.items(new ItemStack[]{new ItemStack(Items.titanium, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.plastanium, 2)});
consumes.power(0.4f);
}};
cryofluidmixer = new LiquidMixer("cryofluidmixer"){{
health = 200;
inputLiquid = Liquids.water;
outputLiquid = Liquids.cryofluid;
inputItem = Items.titanium;
liquidPerItem = 50f;
itemCapacity = 50;
powerUse = 0.1f;
size = 2;
hasPower = true;
consumes.power(0.1f);
consumes.item(Items.titanium);
consumes.liquid(Liquids.water, 0.3f);
}};
blastMixer = new GenericCrafter("blast-mixer"){{
itemCapacity = 20;
hasItems = true;
hasPower = true;
inputLiquid = Liquids.oil;
liquidUse = 0.05f;
inputItem = new ItemStack(Items.pyratite, 1);
hasLiquids = true;
output = Items.blastCompound;
powerUse = 0.04f;
size = 2;
consumes.liquid(Liquids.oil, 0.05f);
consumes.item(Items.pyratite, 1);
consumes.power(0.04f);
}};
pyratiteMixer = new PowerSmelter("pyratite-mixer"){{
@@ -134,27 +142,27 @@ public class CraftingBlocks extends BlockList implements ContentList {
itemCapacity = 20;
hasItems = true;
hasPower = true;
inputs = new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)};
result = Items.pyratite;
powerUse = 0.02f;
size = 2;
consumes.power(0.02f);
consumes.items(new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)});
}};
melter = new PowerCrafter("melter"){{
health = 200;
outputLiquid = Liquids.lava;
outputLiquidAmount = 0.05f;
input = new ItemStack(Items.stone, 1);
outputLiquidAmount = 0.75f;
itemCapacity = 50;
craftTime = 10f;
powerUse = 0.1f;
hasLiquids = hasPower = true;
consumes.power(0.1f);
consumes.item(Items.stone, 2);
}};
separator = new Separator("separator"){{
liquid = Liquids.water;
item = Items.stone;
results = new Item[]{
null, null, null, null, null, null, null, null, null, null,
Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand,
@@ -164,15 +172,15 @@ public class CraftingBlocks extends BlockList implements ContentList {
Items.coal, Items.coal,
Items.titanium
};
liquidUse = 0.2f;
filterTime = 40f;
itemCapacity = 40;
health = 50;
consumes.item(Items.stone, 2);
consumes.liquid(Liquids.water, 0.3f);
}};
centrifuge = new Separator("centrifuge"){{
liquid = Liquids.water;
item = Items.stone;
results = new Item[]{
null, null, null, null, null, null, null, null, null, null, null, null, null,
Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand, Items.sand,
@@ -184,9 +192,7 @@ public class CraftingBlocks extends BlockList implements ContentList {
Items.thorium,
};
liquidUse = 0.3f;
hasPower = true;
powerUse = 0.2f;
filterTime = 15f;
itemCapacity = 60;
health = 50 * 4;
@@ -195,53 +201,49 @@ public class CraftingBlocks extends BlockList implements ContentList {
spinnerThickness = 1.5f;
spinnerSpeed = 3f;
size = 2;
consumes.item(Items.stone, 2);
consumes.power(0.2f);
consumes.liquid(Liquids.water, 0.5f);
}};
biomatterCompressor = new Compressor("biomattercompressor"){{
input = new ItemStack(Items.biomatter, 1);
liquidCapacity = 60f;
itemCapacity = 50;
powerUse = 0.06f;
craftTime = 25f;
outputLiquid = Liquids.oil;
outputLiquidAmount = 0.1f;
outputLiquidAmount = 0.14f;
size = 2;
health = 320;
hasLiquids = true;
consumes.item(Items.biomatter, 1);
consumes.power(0.06f);
}};
pulverizer = new Pulverizer("pulverizer"){{
inputItem = new ItemStack(Items.stone, 2);
itemCapacity = 40;
powerUse = 0.2f;
output = Items.sand;
health = 80;
craftEffect = BlockFx.pulverize;
craftTime = 60f;
updateEffect = BlockFx.pulverizeSmall;
hasItems = hasPower = true;
}};
oilRefinery = new GenericCrafter("oilrefinery") {{
inputLiquid = Liquids.oil;
powerUse = 0.05f;
liquidUse = 0.1f;
liquidCapacity = 56f;
output = Items.coal;
health = 80;
craftEffect = BlockFx.purifyoil;
hasItems = hasLiquids = hasPower = true;
consumes.item(Items.stone, 2);
consumes.power(0.2f);
}};
solidifier = new GenericCrafter("solidifer"){{
inputLiquid = Liquids.lava;
liquidUse = 1f;
liquidCapacity = 21f;
craftTime = 14;
output = Items.stone;
itemCapacity = 20;
health = 80;
craftEffect = BlockFx.purifystone;
hasLiquids = hasItems = true;
consumes.liquid(Liquids.lava, 1f);
}};
incinerator = new Incinerator("incinerator"){{
@@ -28,6 +28,12 @@ import java.io.IOException;
public class DebugBlocks extends BlockList implements ContentList{
public static Block powerVoid, powerInfinite, itemSource, liquidSource, itemVoid;
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true)
public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){
LiquidSourceEntity entity = tile.entity();
entity.source = liquid;
}
@Override
public void load(){
powerVoid = new PowerBlock("powervoid"){
@@ -53,10 +59,11 @@ public class DebugBlocks extends BlockList implements ContentList{
{
hasItems = true;
}
@Override
public void update(Tile tile){
SorterEntity entity = tile.entity();
entity.items.items[entity.sortItem.id] = 1;
entity.items.set(entity.sortItem, 1);
tryDump(tile, entity.sortItem);
}
@@ -79,9 +86,8 @@ public class DebugBlocks extends BlockList implements ContentList{
public void update(Tile tile){
LiquidSourceEntity entity = tile.entity();
tile.entity.liquids.amount = liquidCapacity;
tile.entity.liquids.liquid = entity.source;
tryDumpLiquid(tile);
tile.entity.liquids.add(entity.source, liquidCapacity);
tryDumpLiquid(tile, entity.source);
}
@Override
@@ -143,12 +149,6 @@ public class DebugBlocks extends BlockList implements ContentList{
};
}
@Remote(targets = Loc.both, called = Loc.both, in = In.blocks, forward = true)
public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){
LiquidSourceEntity entity = tile.entity();
entity.source = liquid;
}
class LiquidSourceEntity extends TileEntity{
public Liquid source = Liquids.water;
@@ -35,11 +35,11 @@ public class DefenseBlocks extends BlockList implements ContentList {
}};
thoriumWall = new Wall("thorium-wall"){{
health = 110 * wallHealthMultiplier;
health = 200 * wallHealthMultiplier;
}};
thoriumWallLarge = new Wall("thorium-wall-large"){{
health = 110 * wallHealthMultiplier*4;
health = 200 * wallHealthMultiplier * 4;
size = 2;
}};
@@ -5,7 +5,7 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.distribution.*;
public class DistributionBlocks extends BlockList implements ContentList{
public static Block conveyor, titaniumconveyor, router, multiplexer, junction,
public static Block conveyor, titaniumconveyor, distributor, junction,
bridgeConveyor, phaseConveyor, sorter, splitter, overflowGate, massDriver;
@Override
@@ -21,13 +21,6 @@ public class DistributionBlocks extends BlockList implements ContentList{
speed = 0.07f;
}};
router = new Router("router");
multiplexer = new Router("multiplexer") {{
size = 2;
itemCapacity = 80;
}};
junction = new Junction("junction"){{
speed = 26;
capacity = 32;
@@ -35,17 +28,22 @@ public class DistributionBlocks extends BlockList implements ContentList{
bridgeConveyor = new BufferedItemBridge("bridge-conveyor"){{
range = 3;
hasPower = false;
}};
phaseConveyor = new ItemBridge("phase-conveyor"){{
range = 7;
hasPower = false;
consumes.power(0.05f);
}};
sorter = new Sorter("sorter");
splitter = new Splitter("splitter");
distributor = new Splitter("distributor"){{
size = 2;
}};
overflowGate = new OverflowGate("overflow-gate");
massDriver = new MassDriver("mass-driver"){{
@@ -20,15 +20,16 @@ public class LiquidBlocks extends BlockList implements ContentList{
rotaryPump = new Pump("rotary-pump"){{
shadow = "shadow-rounded-2";
pumpAmount = 0.25f;
powerUse = 0.015f;
consumes.power(0.015f);
liquidCapacity = 30f;
hasPower = true;
size = 2;
tier = 1;
}};
thermalPump = new Pump("thermal-pump"){{
pumpAmount = 0.3f;
powerUse = 0.02f;
consumes.power(0.05f);
liquidCapacity = 40f;
size = 2;
tier = 2;
@@ -63,6 +64,8 @@ public class LiquidBlocks extends BlockList implements ContentList{
phaseConduit = new LiquidBridge("phase-conduit"){{
range = 7;
hasPower = false;
consumes.power(0.05f);
}};
}
}
@@ -10,6 +10,13 @@ import io.anuke.mindustry.world.blocks.OreBlock;
public class OreBlocks extends BlockList{
private static final ObjectMap<Item, ObjectMap<Block, Block>> oreBlockMap = new ObjectMap<>();
public static Block get(Block floor, Item item){
if(!oreBlockMap.containsKey(item)) throw new IllegalArgumentException("Item '" + item + "' is not an ore!");
if(!oreBlockMap.get(item).containsKey(floor))
throw new IllegalArgumentException("Block '" + floor.name + "' does not support ores!");
return oreBlockMap.get(item).get(floor);
}
@Override
public void load(){
Item[] ores = {Items.tungsten, Items.lead, Items.coal, Items.titanium, Items.thorium};
@@ -25,10 +32,4 @@ public class OreBlocks extends BlockList {
}
}
}
public static Block get(Block floor, Item item){
if(!oreBlockMap.containsKey(item)) throw new IllegalArgumentException("Item '" + item + "' is not an ore!");
if(!oreBlockMap.get(item).containsKey(floor)) throw new IllegalArgumentException("Block '" + floor.name + "' does not support ores!");
return oreBlockMap.get(item).get(floor);
}
}
@@ -1,5 +1,6 @@
package io.anuke.mindustry.content.blocks;
import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.content.fx.BlockFx;
import io.anuke.mindustry.type.ContentList;
import io.anuke.mindustry.world.Block;
@@ -32,7 +33,7 @@ public class PowerBlocks extends BlockList implements ContentList {
powerCapacity = 40f;
itemDuration = 30f;
powerPerLiquid = 0.7f;
auxLiquidUse = 0.05f;
consumes.liquid(Liquids.water, 0.05f);
size = 2;
}};
@@ -29,17 +29,17 @@ public class ProductionBlocks extends BlockList implements ContentList {
laserdrill = new Drill("laser-drill"){{
drillTime = 180;
size = 2;
powerUse = 0.2f;
hasPower = true;
tier = 4;
updateEffect = BlockFx.pulverizeMedium;
drillEffect = BlockFx.mineBig;
consumes.power(0.2f);
}};
blastdrill = new Drill("blast-drill"){{
drillTime = 120;
size = 3;
powerUse = 0.5f;
drawRim = true;
hasPower = true;
tier = 5;
@@ -48,13 +48,14 @@ public class ProductionBlocks extends BlockList implements ContentList {
drillEffect = BlockFx.mineHuge;
rotateSpeed = 6f;
warmupSpeed = 0.01f;
consumes.power(0.5f);
}};
plasmadrill = new Drill("plasma-drill"){{
heatColor = Color.valueOf("ff461b");
drillTime = 90;
size = 4;
powerUse = 0.7f;
hasLiquids = true;
hasPower = true;
tier = 5;
@@ -64,38 +65,43 @@ public class ProductionBlocks extends BlockList implements ContentList {
updateEffectChance = 0.04f;
drillEffect = BlockFx.mineHuge;
warmupSpeed = 0.005f;
consumes.power(0.7f);
}};
waterextractor = new SolidPump("water-extractor"){{
result = Liquids.water;
powerUse = 0.2f;
pumpAmount = 0.1f;
size = 2;
liquidCapacity = 30f;
rotateSpeed = 1.4f;
consumes.power(0.2f);
}};
oilextractor = new Fracker("oil-extractor"){{
result = Liquids.oil;
inputLiquid = Liquids.water;
updateEffect = BlockFx.pulverize;
liquidCapacity = 50f;
updateEffectChance = 0.05f;
inputLiquidUse = 0.3f;
powerUse = 0.6f;
pumpAmount = 0.06f;
pumpAmount = 0.08f;
size = 3;
liquidCapacity = 30f;
consumes.item(Items.sand);
consumes.power(0.5f);
consumes.liquid(Liquids.water, 0.3f);
}};
cultivator = new Cultivator("cultivator"){{
result = Items.biomatter;
inputLiquid = Liquids.water;
liquidUse = 0.2f;
drillTime = 260;
size = 2;
hasLiquids = true;
hasPower = true;
consumes.power(0.08f);
consumes.liquid(Liquids.water, 0.2f);
}};
}
@@ -19,6 +19,7 @@ public class StorageBlocks extends BlockList implements ContentList {
vault = new Vault("vault"){{
size = 3;
health = 600;
itemCapacity = 2000;
}};
unloader = new Unloader("unloader"){{
@@ -13,7 +13,8 @@ import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Strings;
public class TurretBlocks extends BlockList implements ContentList{
public static Block duo, /*scatter,*/ scorch, hail, wave, lancer, arc, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown;
public static Block duo, /*scatter,*/
scorch, hail, wave, lancer, arc, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown;
@Override
public void load(){
@@ -73,10 +74,10 @@ public class TurretBlocks extends BlockList implements ContentList {
health = 360;
drawer = (tile, entity) -> {
Draw.rect(name, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
Draw.color(entity.liquids.liquid.color);
Draw.alpha(entity.liquids.amount / liquidCapacity);
Draw.color(entity.liquids.current().color);
Draw.alpha(entity.liquids.total() / liquidCapacity);
Draw.rect(name + "-liquid", tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
Draw.color();
};
@@ -145,7 +146,7 @@ public class TurretBlocks extends BlockList implements ContentList {
ammoUseEffect = ShootFx.shellEjectBig;
drawer = (tile, entity) -> {
Draw.rect(name, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
Draw.rect(region, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
float offsetx = (int) (Mathf.abscurve(Mathf.curve(entity.reload / reload, 0.3f, 0.2f)) * 3f);
float offsety = -(int) (Mathf.abscurve(Mathf.curve(entity.reload / reload, 0.3f, 0.2f)) * 2f);
@@ -16,19 +16,16 @@ public class UnitBlocks extends BlockList implements ContentList {
type = UnitTypes.drone;
produceTime = 800;
size = 2;
requirements = new ItemStack[]{
new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)
};
consumes.power(0.08f);
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)});
}};
fabricatorFactory = new UnitFactory("fabricator-factory"){{
type = UnitTypes.fabricator;
produceTime = 1600;
size = 2;
powerUse = 0.2f;
requirements = new ItemStack[]{
new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)
};
consumes.power(0.2f);
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)});
}};
resupplyPoint = new ResupplyPoint("resupply-point"){{
@@ -25,8 +25,10 @@ import io.anuke.ucore.core.Effects;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.util.Log;
/**Loads all game content.
* Call load() before doing anything with content.*/
/**
* Loads all game content.
* Call load() before doing anything with content.
*/
public class ContentLoader{
private static boolean loaded = false;
private static ObjectSet<Array<? extends Content>> contentSet = new OrderedSet<>();
@@ -94,7 +96,9 @@ public class ContentLoader {
new Recipes(),
};
/**Creates all content types.*/
/**
* Creates all content types.
*/
public static void load(){
if(loaded){
Log.info("Content already loaded, skipping.");
@@ -134,7 +138,9 @@ public class ContentLoader {
loaded = true;
}
/**Initializes all content with the specified function.*/
/**
* Initializes all content with the specified function.
*/
public static void initialize(Consumer<Content> callable){
if(initialization.contains(callable)) return;
@@ -155,8 +161,10 @@ public class ContentLoader {
return contentMap;
}
/**Registers sync IDs for all types of sync entities.
* Do not register units here!*/
/**
* Registers sync IDs for all types of sync entities.
* Do not register units here!
*/
private static void registerTypes(){
TypeTrait.registerType(Player.class, Player::new);
TypeTrait.registerType(ItemDrop.class, ItemDrop::new);
@@ -20,7 +20,6 @@ import io.anuke.mindustry.input.MobileInput;
import io.anuke.mindustry.io.Map;
import io.anuke.mindustry.io.Saves;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.*;
@@ -31,10 +30,12 @@ import io.anuke.ucore.util.Atlas;
import static io.anuke.mindustry.Vars.*;
/**Control module.
/**
* Control module.
* Handles all input, saving, keybinds and keybinds.
* Should <i>not</i> handle any logic-critical state.
* This class is not created in the headless server.*/
* This class is not created in the headless server.
*/
public class Control extends Module{
/** Minimum period of time between the same sound being played.*/
private static final long minSoundPeriod = 100;
@@ -166,7 +167,9 @@ public class Control extends Module{
Player[] old = players;
players = new Player[index + 1];
System.arraycopy(old, 0, players, 0, old.length);
}
if(inputs.length != index + 1){
InputHandler[] oldi = inputs;
inputs = new InputHandler[index + 1];
System.arraycopy(oldi, 0, inputs, 0, oldi.length);
@@ -262,11 +265,7 @@ public class Control extends Module{
if(entity == null) return;
for (int i = 0; i < entity.items.items.length; i++) {
if(entity.items.items[i] <= 0) continue;
Item item = Item.getByID(i);
control.database().unlockContent(item);
}
entity.items.forEach((item, amount) -> control.database().unlockContent(item));
if(players[0].inventory.hasItem()){
control.database().unlockContent(players[0].inventory.getItem().item);
@@ -274,7 +273,7 @@ public class Control extends Module{
for(int i = 0; i < Recipe.all().size; i++){
Recipe recipe = Recipe.all().get(i);
if(!recipe.debugOnly && entity.items.hasItems(recipe.requirements, 1.4f)){
if(!recipe.debugOnly && entity.items.has(recipe.requirements, 1.4f)){
if(control.database().unlockContent(recipe)){
ui.hudfrag.showUnlock(recipe);
}
@@ -8,8 +8,6 @@ import io.anuke.mindustry.game.TeamInfo;
import io.anuke.ucore.core.Events;
public class GameState{
private State state = State.menu;
public int wave = 1;
public float wavetime;
public boolean gameOver = false;
@@ -18,6 +16,7 @@ public class GameState{
public boolean friendlyFire;
public WaveSpawner spawner = new WaveSpawner();
public TeamInfo teams = new TeamInfo();
private State state = State.menu;
public void set(State astate){
Events.fire(StateChangeEvent.class, state, astate);
+10 -14
View File
@@ -24,12 +24,14 @@ import io.anuke.ucore.modules.Module;
import static io.anuke.mindustry.Vars.*;
/**Logic module.
/**
* Logic module.
* Handles all logic for entities and waves.
* Handles game state events.
* Does not store any game state itself.
*
* This class should <i>not</i> call any outside methods to change state of modules, but instead fire events.*/
* <p>
* This class should <i>not</i> call any outside methods to change state of modules, but instead fire events.
*/
public class Logic extends Module{
public boolean doUpdate = true;
@@ -54,12 +56,12 @@ public class Logic extends Module {
if(debug){
for(Item item : Item.all()){
if(item.type == ItemType.material){
tile.entity.items.addItem(item, 1000);
tile.entity.items.add(item, 1000);
}
}
}else{
tile.entity.items.addItem(Items.tungsten, 50);
tile.entity.items.addItem(Items.lead, 20);
tile.entity.items.add(Items.tungsten, 50);
tile.entity.items.add(Items.lead, 20);
}
}
}
@@ -137,7 +139,8 @@ public class Logic extends Module {
runWave();
}
if(!Entities.defaultGroup().isEmpty()) throw new RuntimeException("Do not add anything to the default group!");
if(!Entities.defaultGroup().isEmpty())
throw new RuntimeException("Do not add anything to the default group!");
Entities.update(bulletGroup);
for(EntityGroup group : unitGroups){
@@ -158,13 +161,6 @@ public class Logic extends Module {
for(EntityGroup group : unitGroups){
if(!group.isEmpty()){
EntityPhysics.collideGroups(bulletGroup, group);
/*
for(EntityGroup other : unitGroups){
if(!other.isEmpty()){
EntityPhysics.collideGroups(group, other);
}
}*/
}
}
+127 -97
View File
@@ -1,5 +1,6 @@
package io.anuke.mindustry.core;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Base64Coder;
import com.badlogic.gdx.utils.IntSet;
@@ -40,33 +41,59 @@ public class NetClient extends Module {
private final static float playerSyncTime = 2;
private Timer timer = new Timer(5);
/**Whether the client is currently connecting.*/
/**
* Whether the client is currently connecting.
*/
private boolean connecting = false;
/**If true, no message will be shown on disconnect.*/
/**
* If true, no message will be shown on disconnect.
*/
private boolean quiet = false;
/**Counter for data timeout.*/
/**
* Counter for data timeout.
*/
private float timeoutTime = 0f;
/**Last sent client snapshot ID.*/
/**
* Last sent client snapshot ID.
*/
private int lastSent;
/**Last snapshot ID recieved.*/
/**
* Last snapshot ID recieved.
*/
private int lastSnapshotBaseID = -1;
/**Last snapshot recieved.*/
/**
* Last snapshot recieved.
*/
private byte[] lastSnapshotBase;
/**Current snapshot that is being built from chinks.*/
/**
* Current snapshot that is being built from chinks.
*/
private byte[] currentSnapshot;
/**Array of recieved chunk statuses.*/
/**
* Array of recieved chunk statuses.
*/
private boolean[] recievedChunks;
/**Counter of how many chunks have been recieved.*/
/**
* Counter of how many chunks have been recieved.
*/
private int recievedChunkCounter;
/**ID of snapshot that is currently being constructed.*/
/**
* ID of snapshot that is currently being constructed.
*/
private int currentSnapshotID = -1;
/**Decoder for uncompressing snapshots.*/
/**
* Decoder for uncompressing snapshots.
*/
private DEZDecoder decoder = new DEZDecoder();
/**List of entities that were removed, and need not be added while syncing.*/
/**
* List of entities that were removed, and need not be added while syncing.
*/
private IntSet removed = new IntSet();
/**Byte stream for reading in snapshots.*/
/**
* Byte stream for reading in snapshots.
*/
private ReusableByteArrayInputStream byteStream = new ReusableByteArrayInputStream();
private DataInputStream dataStream = new DataInputStream(byteStream);
@@ -144,86 +171,6 @@ public class NetClient extends Module {
});
}
@Override
public void update(){
if(!Net.client()) return;
if(!state.is(State.menu)){
if(!connecting) sync();
}else if(!connecting){
Net.disconnect();
}else{ //...must be connecting
timeoutTime += Timers.delta();
if(timeoutTime > dataTimeout){
Log.err("Failed to load data!");
ui.loadfrag.hide();
quiet = true;
ui.showError("$text.disconnect.data");
Net.disconnect();
timeoutTime = 0f;
}
}
}
public boolean isConnecting(){
return connecting;
}
private void finishConnecting(){
state.set(State.playing);
connecting = false;
ui.loadfrag.hide();
ui.join.hide();
Net.setClientLoaded(true);
Call.connectConfirm();
Timers.runTask(40f, Platform.instance::updateRPC);
}
public void beginConnecting(){
connecting = true;
}
public void disconnectQuietly(){
quiet = true;
Net.disconnect();
}
public synchronized void addRemovedEntity(int id){
removed.add(id);
}
public synchronized boolean isEntityUsed(int id){
return removed.contains(id);
}
void sync(){
if(timer.get(0, playerSyncTime)){
ClientSnapshotPacket packet = Pooling.obtain(ClientSnapshotPacket.class);
packet.lastSnapshot = lastSnapshotBaseID;
packet.snapid = lastSent++;
Net.send(packet, SendMode.udp);
}
if(timer.get(1, 60)){
Net.updatePing();
}
}
String getUsid(String ip){
if(Settings.getString("usid-" + ip, null) != null){
return Settings.getString("usid-" + ip, null);
}else{
byte[] bytes = new byte[8];
new Random().nextBytes(bytes);
String result = new String(Base64Coder.encode(bytes));
Settings.putString("usid-" + ip, result);
Settings.save();
return result;
}
}
@Remote(variants = Variant.one, priority = PacketPriority.high)
public static void onKick(KickReason reason){
netClient.disconnectQuietly();
@@ -250,8 +197,9 @@ public class NetClient extends Module {
}
@Remote(variants = Variant.one, priority = PacketPriority.low, unreliable = true)
public static void onSnapshot(byte[] chunk, int snapshotID, short chunkID, short totalLength, int base){
if(NetServer.showSnapshotSize) Log.info("Recieved snapshot: len {0} ID {1} chunkID {2} totalLength {3} base {4} client-base {5}", chunk.length, snapshotID, chunkID, totalLength, base, netClient.lastSnapshotBaseID);
public static void onSnapshot(byte[] chunk, int snapshotID, short chunkID, int totalLength, int base){
if(NetServer.showSnapshotSize)
Log.info("Recieved snapshot: len {0} ID {1} chunkID {2} totalLength {3} base {4} client-base {5}", chunk.length, snapshotID, chunkID, totalLength, base, netClient.lastSnapshotBaseID);
//skip snapshot IDs that have already been recieved OR snapshots that are too far in front
if(snapshotID < netClient.lastSnapshotBaseID || base != netClient.lastSnapshotBaseID){
@@ -294,7 +242,8 @@ public class NetClient extends Module {
snapshot = chunk;
}
if(NetServer.showSnapshotSize) Log.info("Finished recieving snapshot ID {0} length {1}", snapshotID, chunk.length);
if(NetServer.showSnapshotSize)
Log.info("Finished recieving snapshot ID {0} length {1}", snapshotID, chunk.length);
byte[] result;
int length;
@@ -303,7 +252,8 @@ public class NetClient extends Module {
length = snapshot.length;
netClient.lastSnapshotBase = Arrays.copyOf(snapshot, snapshot.length);
}else{ //otherwise, last snapshot must not be null, decode it
if(NetServer.showSnapshotSize) Log.info("Base size: {0} Patch size: {1}", netClient.lastSnapshotBase.length, snapshot.length);
if(NetServer.showSnapshotSize)
Log.info("Base size: {0} Patch size: {1}", netClient.lastSnapshotBase.length, snapshot.length);
netClient.decoder.init(netClient.lastSnapshotBase, snapshot);
result = netClient.decoder.decode();
length = netClient.decoder.getDecodedLength();
@@ -380,4 +330,84 @@ public class NetClient extends Module {
throw new RuntimeException(e);
}
}
@Override
public void update(){
if(!Net.client()) return;
if(!state.is(State.menu)){
if(!connecting) sync();
}else if(!connecting){
Net.disconnect();
}else{ //...must be connecting
timeoutTime += Timers.delta();
if(timeoutTime > dataTimeout){
Log.err("Failed to load data!");
ui.loadfrag.hide();
quiet = true;
ui.showError("$text.disconnect.data");
Net.disconnect();
timeoutTime = 0f;
}
}
}
public boolean isConnecting(){
return connecting;
}
private void finishConnecting(){
state.set(State.playing);
connecting = false;
ui.loadfrag.hide();
ui.join.hide();
Net.setClientLoaded(true);
Gdx.app.postRunnable(Call::connectConfirm);
Timers.runTask(40f, Platform.instance::updateRPC);
}
public void beginConnecting(){
connecting = true;
}
public void disconnectQuietly(){
quiet = true;
Net.disconnect();
}
public synchronized void addRemovedEntity(int id){
removed.add(id);
}
public synchronized boolean isEntityUsed(int id){
return removed.contains(id);
}
void sync(){
if(timer.get(0, playerSyncTime)){
ClientSnapshotPacket packet = Pooling.obtain(ClientSnapshotPacket.class);
packet.lastSnapshot = lastSnapshotBaseID;
packet.snapid = lastSent++;
Net.send(packet, SendMode.udp);
}
if(timer.get(1, 60)){
Net.updatePing();
}
}
String getUsid(String ip){
if(Settings.getString("usid-" + ip, null) != null){
return Settings.getString("usid-" + ip, null);
}else{
byte[] bytes = new byte[8];
new Random().nextBytes(bytes);
String result = new String(Base64Coder.encode(bytes));
Settings.putString("usid-" + ip, result);
Settings.save();
return result;
}
}
}
+101 -88
View File
@@ -45,20 +45,30 @@ public class NetServer extends Module{
private final static byte[] reusableSnapArray = new byte[maxSnapshotSize];
private final static float serverSyncTime = 4, kickDuration = 30 * 1000;
private final static Vector2 vector = new Vector2();
/**If a play goes away of their server-side coordinates by this distance, they get teleported back.*/
/**
* If a play goes away of their server-side coordinates by this distance, they get teleported back.
*/
private final static float correctDist = 16f;
public final Administration admins = new Administration();
/**Maps connection IDs to players.*/
/**
* Maps connection IDs to players.
*/
private IntMap<Player> connections = new IntMap<>();
private boolean closing = false;
/**Stream for writing player sync data to.*/
/**
* Stream for writing player sync data to.
*/
private CountableByteArrayOutputStream syncStream = new CountableByteArrayOutputStream();
/**Data stream for writing player sync data to.*/
/**
* Data stream for writing player sync data to.
*/
private DataOutputStream dataStream = new DataOutputStream(syncStream);
/**Encoder for computing snapshot deltas.*/
/**
* Encoder for computing snapshot deltas.
*/
private DEZEncoder encoder = new DEZEncoder();
public NetServer(){
@@ -238,6 +248,86 @@ public class NetServer extends Module{
});
}
/**
* Sends a raw byte[] snapshot to a client, splitting up into chunks when needed.
*/
private static void sendSplitSnapshot(int userid, byte[] bytes, int snapshotID, int base){
if(bytes.length < maxSnapshotSize){
Call.onSnapshot(userid, bytes, snapshotID, (short) 0, bytes.length, base);
}else{
int remaining = bytes.length;
int offset = 0;
int chunkid = 0;
while(remaining > 0){
int used = Math.min(remaining, maxSnapshotSize);
byte[] toSend;
//re-use sent byte arrays when possible
if(used == maxSnapshotSize){
toSend = reusableSnapArray;
System.arraycopy(bytes, offset, toSend, 0, Math.min(offset + maxSnapshotSize, bytes.length) - offset);
}else{
toSend = Arrays.copyOfRange(bytes, offset, Math.min(offset + maxSnapshotSize, bytes.length));
}
Call.onSnapshot(userid, toSend, snapshotID, (short) chunkid, bytes.length, base);
remaining -= used;
offset += used;
chunkid++;
}
}
}
public static void onDisconnect(Player player){
Call.sendMessage("[accent]" + player.name + " has disconnected.");
Call.onPlayerDisconnect(player.id);
player.remove();
netServer.connections.remove(player.con.id);
}
@Remote(targets = Loc.client, called = Loc.server)
public static void onAdminRequest(Player player, Player other, AdminAction action){
if(!player.isAdmin){
Log.err("ACCESS DENIED: Player {0} / {1} attempted to perform admin action without proper security access.",
player.name, player.con.address);
return;
}
if(other == null || (other.isAdmin && other != player)){ //fun fact: this means you can ban yourself
Log.err("{0} attempted to perform admin action on nonexistant or admin player.", player.name);
return;
}
if(action == AdminAction.wave){
//no verification is done, so admins can hypothetically spam waves
//not a real issue, because server owners may want to do just that
state.wavetime = 0f;
}else if(action == AdminAction.ban){
netServer.admins.banPlayerIP(other.con.address);
netServer.kick(other.con.id, KickReason.banned);
Log.info("&lc{0} has banned {1}.", player.name, other.name);
}else if(action == AdminAction.kick){
netServer.kick(other.con.id, KickReason.kick);
Log.info("&lc{0} has kicked {1}.", player.name, other.name);
}else if(action == AdminAction.trace){
//TODO
if(player.con != null){
Call.onTraceInfo(player.con.id, netServer.admins.getTraceByID(other.uuid));
}else{
NetClient.onTraceInfo(netServer.admins.getTraceByID(other.uuid));
}
Log.info("&lc{0} has requested trace info of {1}.", player.name, other.name);
}
}
@Remote(targets = Loc.client)
public static void connectConfirm(Player player){
player.add();
player.con.hasConnected = true;
Call.sendMessage("[accent]" + player.name + " has connected.");
Log.info("&y{0} has connected.", player.name);
}
public void update(){
if(!headless && !closing && Net.server() && state.is(State.menu)){
closing = true;
@@ -344,7 +434,8 @@ public class NetServer extends Module{
//if the player hasn't acknowledged that it has recieved the packet, send the same thing again
if(connection.currentBaseID < connection.lastSentSnapshotID){
if(showSnapshotSize) Log.info("Re-sending snapshot: {0} bytes, ID {1} base {2} baselength {3}", connection.lastSentSnapshot.length, connection.lastSentSnapshotID, connection.lastSentBase, connection.currentBaseSnapshot.length);
if(showSnapshotSize)
Log.info("Re-sending snapshot: {0} bytes, ID {1} base {2} baselength {3}", connection.lastSentSnapshot.length, connection.lastSentSnapshotID, connection.lastSentBase, connection.currentBaseSnapshot.length);
sendSplitSnapshot(connection.id, connection.lastSentSnapshot, connection.lastSentSnapshotID, connection.lastSentBase);
return;
}
@@ -409,7 +500,8 @@ public class NetServer extends Module{
dataStream.writeByte(((SyncTrait) entity).getTypeID()); //write type ID
((SyncTrait) entity).write(dataStream); //write entity
int length = syncStream.position() - position; //length must always be less than 127 bytes
if(length > 127) throw new RuntimeException("Write size for entity of type " + group.getType() + " must not exceed 127!");
if(length > 127)
throw new RuntimeException("Write size for entity of type " + group.getType() + " must not exceed 127!");
dataStream.writeByte(length);
}
}
@@ -433,7 +525,8 @@ public class NetServer extends Module{
//send diff, otherwise
byte[] diff = ByteDeltaEncoder.toDiff(new ByteMatcherHash(connection.currentBaseSnapshot, bytes), encoder);
if(showSnapshotSize) Log.info("Shrank snapshot: {0} -> {1}, Base {2} ID {3} base length = {4}", bytes.length, diff.length, connection.currentBaseID, connection.currentBaseID + 1, connection.currentBaseSnapshot.length);
if(showSnapshotSize)
Log.info("Shrank snapshot: {0} -> {1}, Base {2} ID {3} base length = {4}", bytes.length, diff.length, connection.currentBaseID, connection.currentBaseID + 1, connection.currentBaseSnapshot.length);
sendSplitSnapshot(connection.id, diff, connection.currentBaseID + 1, connection.currentBaseID);
connection.lastSentSnapshot = diff;
connection.lastSentSnapshotID = connection.currentBaseID + 1;
@@ -445,84 +538,4 @@ public class NetServer extends Module{
e.printStackTrace();
}
}
/**Sends a raw byte[] snapshot to a client, splitting up into chunks when needed.*/
private static void sendSplitSnapshot(int userid, byte[] bytes, int snapshotID, int base){
if(bytes.length < maxSnapshotSize){
Call.onSnapshot(userid, bytes, snapshotID, (short)0, (short)bytes.length, base);
}else{
int remaining = bytes.length;
int offset = 0;
int chunkid = 0;
while(remaining > 0){
int used = Math.min(remaining, maxSnapshotSize);
byte[] toSend;
//re-use sent byte arrays when possible
if(used == maxSnapshotSize){
toSend = reusableSnapArray;
System.arraycopy(bytes, offset, toSend, 0, Math.min(offset + maxSnapshotSize, bytes.length) - offset);
}else {
toSend = Arrays.copyOfRange(bytes, offset, Math.min(offset + maxSnapshotSize, bytes.length));
}
Call.onSnapshot(userid, toSend, snapshotID, (short)chunkid, (short)bytes.length, base);
remaining -= used;
offset += used;
chunkid ++;
}
}
}
public static void onDisconnect(Player player){
Call.sendMessage("[accent]" + player.name + " has disconnected.");
Call.onPlayerDisconnect(player.id);
player.remove();
netServer.connections.remove(player.con.id);
}
@Remote(targets = Loc.client, called = Loc.server)
public static void onAdminRequest(Player player, Player other, AdminAction action){
if(!player.isAdmin){
Log.err("ACCESS DENIED: Player {0} / {1} attempted to perform admin action without proper security access.",
player.name, player.con.address);
return;
}
if(other == null || (other.isAdmin && other != player)){ //fun fact: this means you can ban yourself
Log.err("{0} attempted to perform admin action on nonexistant or admin player.", player.name);
return;
}
String ip = player.con.address;
if(action == AdminAction.wave) {
//no verification is done, so admins can hypothetically spam waves
//not a real issue, because server owners may want to do just that
state.wavetime = 0f;
}else if(action == AdminAction.ban){
netServer.admins.banPlayerIP(ip);
netServer.kick(other.con.id, KickReason.banned);
Log.info("&lc{0} has banned {1}.", player.name, other.name);
}else if(action == AdminAction.kick){
netServer.kick(other.con.id, KickReason.kick);
Log.info("&lc{0} has kicked {1}.", player.name, other.name);
}else if(action == AdminAction.trace){
//TODO
if(player.con != null) {
Call.onTraceInfo(player.con.id, netServer.admins.getTraceByID(other.uuid));
}else{
NetClient.onTraceInfo(netServer.admins.getTraceByID(other.uuid));
}
Log.info("&lc{0} has requested trace info of {1}.", player.name, other.name);
}
}
@Remote(targets = Loc.client)
public static void connectConfirm(Player player){
player.add();
player.con.hasConnected = true;
Call.sendMessage("[accent]" + player.name + " has connected.");
Log.info("&y{0} has connected.", player.name);
}
}
+138 -45
View File
@@ -4,8 +4,6 @@ import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Base64Coder;
import io.anuke.mindustry.core.ThreadHandler.ThreadProvider;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.TextField;
@@ -14,44 +12,101 @@ import java.util.Locale;
import java.util.Random;
public abstract class Platform{
/**Each separate game platform should set this instance to their own implementation.*/
public static Platform instance = new Platform() {};
/**
* Each separate game platform should set this instance to their own implementation.
*/
public static Platform instance = new Platform(){
};
/**Format the date using the default date formatter.*/
public String format(Date date){return "invalid";}
/**Format a number by adding in commas or periods where needed.*/
public String format(int number){return "invalid";}
/**Show a native error dialog.*/
public void showError(String text){}
/**Add a text input dialog that should show up after the field is tapped.*/
/**
* Format the date using the default date formatter.
*/
public String format(Date date){
return "invalid";
}
/**
* Format a number by adding in commas or periods where needed.
*/
public String format(int number){
return "invalid";
}
/**
* Show a native error dialog.
*/
public void showError(String text){
}
/**
* Add a text input dialog that should show up after the field is tapped.
*/
public void addDialog(TextField field){
addDialog(field, 16);
}
/**See addDialog().*/
public void addDialog(TextField field, int maxLength){}
/**Update discord RPC.*/
public void updateRPC(){}
/**Called when the game is exited.*/
public void onGameExit(){}
/**Open donation dialog. Currently android only.*/
public void openDonations(){}
/**Whether donating is supported.*/
/**
* See addDialog().
*/
public void addDialog(TextField field, int maxLength){
}
/**
* Update discord RPC.
*/
public void updateRPC(){
}
/**
* Called when the game is exited.
*/
public void onGameExit(){
}
/**
* Open donation dialog. Currently android only.
*/
public void openDonations(){
}
/**
* Whether donating is supported.
*/
public boolean canDonate(){
return false;
}
/**Whether discord RPC is supported.*/
public boolean hasDiscord(){return true;}
/**Return the localized name for the locale. This is basically a workaround for GWT not supporting getName().*/
/**
* Whether discord RPC is supported.
*/
public boolean hasDiscord(){
return true;
}
/**
* Return the localized name for the locale. This is basically a workaround for GWT not supporting getName().
*/
public String getLocaleName(Locale locale){
return locale.toString();
}
/**Whether joining games is supported.*/
/**
* Whether joining games is supported.
*/
public boolean canJoinGame(){
return true;
}
/**Whether debug mode is enabled.*/
public boolean isDebug(){return false;}
/**Must be a base64 string 8 bytes in length.*/
/**
* Whether debug mode is enabled.
*/
public boolean isDebug(){
return false;
}
/**
* Must be a base64 string 8 bytes in length.
*/
public String getUUID(){
String uuid = Settings.getString("uuid", "");
if(uuid.isEmpty()){
@@ -64,12 +119,21 @@ public abstract class Platform {
}
return uuid;
}
/**Only used for iOS or android: open the share menu for a map or save.*/
public void shareFile(FileHandle file){}
/**Download a file. Only used on GWT backend.*/
public void downloadFile(String name, byte[] bytes){}
/**Show a file chooser. Desktop only.
/**
* Only used for iOS or android: open the share menu for a map or save.
*/
public void shareFile(FileHandle file){
}
/**
* Download a file. Only used on GWT backend.
*/
public void downloadFile(String name, byte[] bytes){
}
/**
* Show a file chooser. Desktop only.
*
* @param text File chooser title text
* @param content Description of the type of files to be loaded
@@ -77,25 +141,54 @@ public abstract class Platform {
* @param open Whether to open or save files
* @param filetype File extension to filter
*/
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){}
/**Use the default thread provider from the kryonet module for this.*/
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){
}
/**
* Use the default thread provider from the kryonet module for this.
*/
public ThreadProvider getThreadProvider(){
return new ThreadProvider(){
@Override public boolean isOnThread() {return true;}
@Override public void sleep(long ms) {}
@Override public void start(Runnable run) {}
@Override public void stop() {}
@Override public void notify(Object object) {}
@Override public void wait(Object object) {}
@Override public <T extends Entity> void switchContainer(EntityGroup<T> group) {}
@Override
public boolean isOnThread(){
return true;
}
@Override
public void sleep(long ms){
}
@Override
public void start(Runnable run){
}
@Override
public void stop(){
}
@Override
public void notify(Object object){
}
@Override
public void wait(Object object){
}
};
}
//TODO iOS implementation
/**Forces the app into landscape mode. Currently Android only.*/
public void beginForceLandscape(){}
/**
* Forces the app into landscape mode. Currently Android only.
*/
public void beginForceLandscape(){
}
//TODO iOS implementation
/**Stops forcing the app into landscape orientation. Currently Android only.*/
public void endForceLandscape(){}
/**
* Stops forcing the app into landscape orientation. Currently Android only.
*/
public void endForceLandscape(){
}
}
+34 -3
View File
@@ -110,6 +110,7 @@ public class Renderer extends RendererModule{
Cursors.arrow = Cursors.loadCursor("cursor");
Cursors.hand = Cursors.loadCursor("hand");
Cursors.ibeam = Cursors.loadCursor("ibar");
Cursors.restoreCursor();
Cursors.loadCustom("drill");
Cursors.loadCustom("unload");
@@ -219,12 +220,13 @@ public class Renderer extends RendererModule{
Graphics.endShaders();
}
drawAllTeams(false);
blocks.skipLayer(Layer.turret);
blocks.drawBlocks(Layer.laser);
drawFlyerShadows();
drawAllTeams(true);
drawAndInterpolate(bulletGroup);
@@ -244,11 +246,40 @@ public class Renderer extends RendererModule{
fog.draw();
}
batch.begin();
Graphics.beginCam();
EntityDraw.setClip(false);
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
EntityDraw.setClip(true);
batch.end();
Graphics.end();
}
private void drawFlyerShadows(){
Graphics.surface(effectSurface, true, false);
float trnsX = 12, trnsY = -13;
Graphics.end();
Core.batch.getTransformMatrix().translate(trnsX, trnsY, 0);
Graphics.begin();
for(EntityGroup<? extends BaseUnit> group : unitGroups){
if(!group.isEmpty()){
drawAndInterpolate(group, unit -> unit.isFlying() && !unit.isDead(), Unit::drawShadow);
}
}
if(!playerGroup.isEmpty()){
drawAndInterpolate(playerGroup, unit -> unit.isFlying() && !unit.isDead(), Unit::drawShadow);
}
Graphics.end();
Core.batch.getTransformMatrix().translate(-trnsX, -trnsY, 0);
Graphics.begin();
//TODO this actually isn't necessary
Draw.color(0, 0, 0, 0.15f);
Graphics.flushSurface();
Draw.color();
}
private void drawAllTeams(boolean flying){
@@ -1,28 +1,23 @@
package io.anuke.mindustry.core;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.Queue;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.EntityGroup.ArrayContainer;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.util.Log;
import static io.anuke.mindustry.Vars.control;
import static io.anuke.mindustry.Vars.logic;
public class ThreadHandler{
private final Array<Runnable> toRun = new Array<>();
private final Queue<Runnable> toRun = new Queue<>();
private final ThreadProvider impl;
private final Object updateLock = new Object();
private float delta = 1f;
private float smoothDelta = 1f;
private long frame = 0, lastDeltaUpdate;
private float framesSinceUpdate;
private boolean enabled;
private final Object updateLock = new Object();
private boolean rendered = true;
public ThreadHandler(ThreadProvider impl){
@@ -37,7 +32,7 @@ public class ThreadHandler {
public void run(Runnable r){
if(enabled){
synchronized(toRun){
toRun.add(r);
toRun.addLast(r);
}
}else{
r.run();
@@ -55,7 +50,7 @@ public class ThreadHandler {
public void runDelay(Runnable r){
if(enabled){
synchronized(toRun){
toRun.add(r);
toRun.addLast(r);
}
}else{
Gdx.app.postRunnable(r);
@@ -86,12 +81,13 @@ public class ThreadHandler {
}
}
public boolean isEnabled(){
return enabled;
}
public void setEnabled(boolean enabled){
if(enabled){
logic.doUpdate = false;
for(EntityGroup<?> group : Entities.getAllGroups()){
impl.switchContainer(group);
}
Timers.runTask(2f, () -> {
impl.start(this::runLogic);
this.enabled = true;
@@ -99,21 +95,14 @@ public class ThreadHandler {
}else{
this.enabled = false;
impl.stop();
for(EntityGroup<?> group : Entities.getAllGroups()){
group.setContainer(new ArrayContainer<>());
}
Timers.runTask(2f, () -> {
logic.doUpdate = true;
});
}
}
public boolean isEnabled(){
return enabled;
}
public boolean doInterpolate(){
return enabled && Math.abs(Gdx.graphics.getFramesPerSecond() - getTPS()) > 15;
return enabled && Gdx.graphics.getFramesPerSecond() - getTPS() > 20 && getTPS() < 30;
}
public boolean isOnThread(){
@@ -125,11 +114,17 @@ public class ThreadHandler {
while(true){
long time = TimeUtils.nanoTime();
while(true){
Runnable r;
synchronized(toRun){
for(Runnable r : toRun){
r.run();
if(toRun.size > 0){
r = toRun.removeFirst();
}else{
break;
}
toRun.clear();
}
r.run();
}
logic.doUpdate = true;
@@ -170,11 +165,15 @@ public class ThreadHandler {
public interface ThreadProvider{
boolean isOnThread();
void sleep(long ms) throws InterruptedException;
void start(Runnable run);
void stop();
void wait(Object object) throws InterruptedException;
void notify(Object object);
<T extends Entity> void switchContainer(EntityGroup<T> group);
}
}
+27 -27
View File
@@ -34,9 +34,18 @@ import java.util.Locale;
import static io.anuke.mindustry.Vars.control;
import static io.anuke.mindustry.Vars.players;
import static io.anuke.mindustry.Vars.threads;
import static io.anuke.ucore.scene.actions.Actions.*;
public class UI extends SceneModule{
public final MenuFragment menufrag = new MenuFragment();
public final HudFragment hudfrag = new HudFragment();
public final ChatFragment chatfrag = new ChatFragment();
public final PlayerListFragment listfrag = new PlayerListFragment();
public final BackgroundFragment backfrag = new BackgroundFragment();
public final LoadingFragment loadfrag = new LoadingFragment();
public final DebugFragment debugfrag = new DebugFragment();
public AboutDialog about;
public RestartDialog restart;
public LevelDialog levels;
@@ -59,14 +68,6 @@ public class UI extends SceneModule{
public UnlocksDialog unlocks;
public ContentInfoDialog content;
public final MenuFragment menufrag = new MenuFragment();
public final HudFragment hudfrag = new HudFragment();
public final ChatFragment chatfrag = new ChatFragment();
public final PlayerListFragment listfrag = new PlayerListFragment();
public final BackgroundFragment backfrag = new BackgroundFragment();
public final LoadingFragment loadfrag = new LoadingFragment();
public final DebugFragment debugfrag = new DebugFragment();
private Locale lastLocale;
public UI(){
@@ -147,7 +148,7 @@ public class UI extends SceneModule{
}
Graphics.end();
Draw.color();
}
@Override
@@ -225,16 +226,31 @@ public class UI extends SceneModule{
public void loadAnd(String text, Callable call){
loadfrag.show(text);
Timers.runTask(6f, () -> {
Timers.runTask(7f, () -> {
call.run();
loadfrag.hide();
});
}
public void loadLogic(Callable call){
loadLogic("$text.loading", call);
}
public void loadLogic(String text, Callable call){
loadfrag.show();
Timers.runTask(7f, () -> {
threads.run(() -> {
call.run();
threads.runGraphics(loadfrag::hide);
});
});
}
public void showTextInput(String title, String text, String def, TextFieldFilter filter, Consumer<String> confirmed){
new Dialog(title, "dialog"){{
content().margin(30).add(text).padRight(6f);
TextField field = content().addField(def, t->{}).size(170f, 50f).get();
TextField field = content().addField(def, t -> {
}).size(170f, 50f).get();
field.setTextFieldFilter((f, c) -> field.getText().length() < 12 && filter.acceptChar(f, c));
Platform.instance.addDialog(field);
buttons().defaults().size(120, 54).pad(4);
@@ -286,20 +302,4 @@ public class UI extends SceneModule{
dialog.keyDown(Keys.BACK, dialog::hide);
dialog.show();
}
public void showConfirmListen(String title, String text, Consumer<Boolean> listener){
FloatingDialog dialog = new FloatingDialog(title);
dialog.content().add(text).pad(4f);
dialog.buttons().defaults().size(200f, 54f).pad(2f);
dialog.buttons().addButton("$text.cancel", () -> {
dialog.hide();
listener.accept(true);
});
dialog.buttons().addButton("$text.ok", () -> {
dialog.hide();
listener.accept(true);
});
dialog.show();
}
}
+60 -17
View File
@@ -10,7 +10,11 @@ import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.EventType.TileChangeEvent;
import io.anuke.mindustry.game.EventType.WorldLoadEvent;
import io.anuke.mindustry.io.*;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.io.Map;
import io.anuke.mindustry.io.MapIO;
import io.anuke.mindustry.io.MapMeta;
import io.anuke.mindustry.io.Maps;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.mapgen.WorldGenerator;
@@ -92,12 +96,16 @@ public class World extends Module{
return currentMap;
}
public void setMap(Map map){
this.currentMap = map;
}
public int width(){
return tiles.length;
return tiles == null ? 0 : tiles.length;
}
public int height(){
return tiles[0].length;
return tiles == null ? 0 : tiles[0].length;
}
public int toPacked(int x, int y){
@@ -142,8 +150,10 @@ public class World extends Module{
}
}
/**Resizes the tile array to the specified size and returns the resulting tile array.
* Only use for loading saves!*/
/**
* Resizes the tile array to the specified size and returns the resulting tile array.
* Only use for loading saves!
*/
public Tile[][] createTiles(int width, int height){
if(tiles != null){
clearTileEntities();
@@ -158,18 +168,26 @@ public class World extends Module{
return tiles;
}
/**Call to signify the beginning of map loading.
* TileChangeEvents will not be fired until endMapLoad().*/
/**
* Call to signify the beginning of map loading.
* TileChangeEvents will not be fired until endMapLoad().
*/
public void beginMapLoad(){
generating = true;
}
/**Call to signify the end of map loading. Updates tile occlusions and sets up physics for the world.
* A WorldLoadEvent will be fire.*/
/**
* Call to signify the end of map loading. Updates tile occlusions and sets up physics for the world.
* A WorldLoadEvent will be fire.
*/
public void endMapLoad(){
for(int x = 0; x < tiles.length; x++){
for(int y = 0; y < tiles[0].length; y++){
tiles[x][y].updateOcclusion();
if(tiles[x][y].entity != null){
tiles[x][y].entity.updateProximity();
}
}
}
@@ -179,7 +197,9 @@ public class World extends Module{
Events.fire(WorldLoadEvent.class);
}
/**Loads up a procedural map. This does not call play(), but calls reset().*/
/**
* Loads up a procedural map. This does not call play(), but calls reset().
*/
public void loadProceduralMap(){
Timers.mark();
Timers.mark();
@@ -208,10 +228,6 @@ public class World extends Module{
Log.info("Full time to generate: {0}", Timers.elapsed());
}
public void setMap(Map map){
this.currentMap = map;
}
public void loadMap(Map map){
loadMap(map, MathUtils.random(0, 999999));
}
@@ -263,14 +279,41 @@ public class World extends Module{
}
}
/**Raycast, but with world coordinates.*/
public void setBlock(Tile tile, Block block, Team team){
tile.setBlock(block);
if(block.isMultiblock()){
int offsetx = -(block.size - 1) / 2;
int offsety = -(block.size - 1) / 2;
for(int dx = 0; dx < block.size; dx++){
for(int dy = 0; dy < block.size; dy++){
int worldx = dx + offsetx + tile.x;
int worldy = dy + offsety + tile.y;
if(!(worldx == tile.x && worldy == tile.y)){
Tile toplace = world.tile(worldx, worldy);
if(toplace != null){
toplace.setLinked((byte) (dx + offsetx), (byte) (dy + offsety));
toplace.setTeam(team);
}
}
}
}
}
}
/**
* Raycast, but with world coordinates.
*/
public GridPoint2 raycastWorld(float x, float y, float x2, float y2){
return raycast(Mathf.scl2(x, tilesize), Mathf.scl2(y, tilesize),
Mathf.scl2(x2, tilesize), Mathf.scl2(y2, tilesize));
}
/**Input is in block coordinates, not world coordinates.
* @return null if no collisions found, block position otherwise.*/
/**
* Input is in block coordinates, not world coordinates.
*
* @return null if no collisions found, block position otherwise.
*/
public GridPoint2 raycast(int x0f, int y0f, int x1, int y1){
int x0 = x0f;
int y0 = y0f;
@@ -7,11 +7,17 @@ import io.anuke.mindustry.io.MapTileData.TileDataMarker;
import io.anuke.ucore.util.Bits;
public class DrawOperation{
/**Data to apply operation to.*/
/**
* Data to apply operation to.
*/
private MapTileData data;
/**List of per-tile operations that occurred.*/
/**
* List of per-tile operations that occurred.
*/
private Array<TileOperation> operations = new Array<>();
/**Checks for duplicate operations, useful for brushes.*/
/**
* Checks for duplicate operations, useful for brushes.
*/
private IntSet checks = new IntSet();
public DrawOperation(MapTileData data){
@@ -39,29 +39,31 @@ public class MapEditor{
return tags;
}
public void beginEdit(MapTileData map, ObjectMap<String, String> tags){
public void beginEdit(MapTileData map, ObjectMap<String, String> tags, boolean clear){
this.map = map;
this.brushSize = 1;
this.tags = tags;
if(clear){
for(int x = 0; x < map.width(); x++){
for(int y = 0; y < map.height(); y++){
map.write(x, y, DataPosition.floor, (byte) Blocks.stone.id);
}
}
}
drawBlock = Blocks.stone;
renderer.resize(map.width(), map.height());
}
public void setDrawElevation(int elevation){
this.elevation = (byte)elevation;
}
public byte getDrawElevation(){
return elevation;
}
public void setDrawElevation(int elevation){
this.elevation = (byte) elevation;
}
public int getDrawRotation(){
return rotation;
}
@@ -70,14 +72,14 @@ public class MapEditor{
this.rotation = rotation;
}
public void setDrawTeam(Team team){
this.drawTeam = team;
}
public Team getDrawTeam(){
return drawTeam;
}
public void setDrawTeam(Team team){
this.drawTeam = team;
}
public Block getDrawBlock(){
return drawBlock;
}
@@ -86,14 +88,14 @@ public class MapEditor{
this.drawBlock = block;
}
public void setBrushSize(int size){
this.brushSize = size;
}
public int getBrushSize(){
return brushSize;
}
public void setBrushSize(int size){
this.brushSize = size;
}
public void draw(int x, int y){
draw(x, y, drawBlock);
}
@@ -3,7 +3,6 @@ package io.anuke.mindustry.editor;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
@@ -26,7 +25,6 @@ import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.function.Listenable;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Pixmaps;
import io.anuke.ucore.input.Input;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.builders.build;
@@ -107,7 +105,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
MapMeta meta = MapIO.readMapMeta(stream);
MapTileData data = MapIO.readTileData(stream, meta, false);
editor.beginEdit(data, meta.tags);
editor.beginEdit(data, meta.tags, false);
view.clearStack();
}catch(Exception e){
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
@@ -115,17 +113,17 @@ public class MapEditorDialog extends Dialog implements Disposable{
}
});
}, true, mapExtension);
},
}/*,
"$text.editor.importimage", "$text.editor.importimage.description", "icon-file-image", (Listenable)() -> {
if(gwt){
ui.showError("text.web.unsupported");
ui.showError("$text.web.unsupported");
}else {
Platform.instance.showFileChooser("$text.loadimage", "Image Files", file -> {
ui.loadAnd(() -> {
try{
MapTileData data = MapIO.readPixmap(new Pixmap(file));
editor.beginEdit(data, editor.getTags());
editor.beginEdit(data, editor.getTags(), false);
view.clearStack();
}catch (Exception e){
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
@@ -134,7 +132,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
});
}, true, "png");
}
}));
}*/));
t.addImageTextButton("$text.editor.export", "icon-save-map", isize, () -> createDialog("$text.editor.export",
"$text.editor.exportfile", "$text.editor.exportfile.description", "icon-file", (Listenable) () -> {
@@ -165,10 +163,10 @@ public class MapEditorDialog extends Dialog implements Disposable{
Log.err(e);
}
}
},
}/*,
"$text.editor.exportimage", "$text.editor.exportimage.description", "icon-file-image", (Listenable)() -> {
if(gwt){
ui.showError("text.web.unsupported");
ui.showError("$text.web.unsupported");
}else{
Platform.instance.showFileChooser("$text.saveimage", "Image Files", file -> {
file = file.parent().child(file.nameWithoutExtension() + ".png");
@@ -183,7 +181,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
});
}, false, "png");
}
}));
}*/));
t.row();
@@ -213,7 +211,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
MapMeta meta = MapIO.readMapMeta(stream);
MapTileData data = MapIO.readTileData(stream, meta, false);
editor.beginEdit(data, meta.tags);
editor.beginEdit(data, meta.tags, false);
view.clearStack();
}catch(IOException e){
ui.showError(Bundles.format("text.editor.errormapload", Strings.parseException(e, false)));
@@ -254,7 +252,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
view.clearStack();
Core.scene.setScrollFocus(view);
if(!shownWithMap){
editor.beginEdit(new MapTileData(256, 256), new ObjectMap<>());
editor.beginEdit(new MapTileData(256, 256), new ObjectMap<>(), true);
}
shownWithMap = false;
@@ -286,11 +284,13 @@ public class MapEditorDialog extends Dialog implements Disposable{
saved = true;
}
/**Argument format:
/**
* Argument format:
* 0) button name
* 1) description
* 2) icon name
* 3) listener */
* 3) listener
*/
private FloatingDialog createDialog(String title, Object... arguments){
FloatingDialog dialog = new FloatingDialog(title);
@@ -348,7 +348,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
shownWithMap = true;
DataInputStream stream = new DataInputStream(is);
MapMeta meta = MapIO.readMapMeta(stream);
editor.beginEdit(MapIO.readTileData(stream, meta, false), meta.tags);
editor.beginEdit(MapIO.readTileData(stream, meta, false), meta.tags, false);
is.close();
show();
}catch(Exception e){
@@ -368,13 +368,11 @@ public class MapEditorDialog extends Dialog implements Disposable{
public void updateSelectedBlock(){
Block block = editor.getDrawBlock();
int i = 0;
for(int j = 0; j < Block.all().size; j++){
if(block.id == j){
blockgroup.getButtons().get(i).setChecked(true);
if(block.id == j && j < blockgroup.getButtons().size){
blockgroup.getButtons().get(j).setChecked(true);
break;
}
i++;
}
}
@@ -588,7 +586,8 @@ public class MapEditorDialog extends Dialog implements Disposable{
for(Block block : Block.all()){
TextureRegion[] regions = block.getCompactIcon();
if((block.synthetic() && (Recipe.getByResult(block) == null || !control.database().isUnlocked(Recipe.getByResult(block)))) && !debug && block != StorageBlocks.core) continue;
if((block.synthetic() && (Recipe.getByResult(block) == null || !control.database().isUnlocked(Recipe.getByResult(block)))) && !debug && block != StorageBlocks.core)
continue;
if(regions.length == 0 || regions[0] == Draw.region("jjfgj")) continue;
@@ -1,7 +1,7 @@
package io.anuke.mindustry.editor;
import io.anuke.mindustry.io.Map;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.io.Map;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.TextButton;
+45 -45
View File
@@ -53,51 +53,6 @@ public class MapView extends Element implements GestureListener{
private float mousex, mousey;
private EditorTool lastTool;
public void setTool(EditorTool tool){
this.tool = tool;
}
public EditorTool getTool() {
return tool;
}
public void clearStack(){
stack.clear();
//TODO clear und obuffer
}
public OperationStack getStack() {
return stack;
}
public void setGrid(boolean grid) {
this.grid = grid;
}
public boolean isGrid() {
return grid;
}
public void undo(){
if(stack.canUndo()){
stack.undo(editor);
}
}
public void redo(){
if(stack.canRedo()){
stack.redo(editor);
}
}
public void addTileOp(TileOperation t){
op.addOperation(t);
}
public boolean checkForDuplicates(short x, short y){
return op.checkDuplicate(x, y);
}
public MapView(MapEditor editor){
this.editor = editor;
@@ -211,6 +166,51 @@ public class MapView extends Element implements GestureListener{
});
}
public EditorTool getTool(){
return tool;
}
public void setTool(EditorTool tool){
this.tool = tool;
}
public void clearStack(){
stack.clear();
//TODO clear und obuffer
}
public OperationStack getStack(){
return stack;
}
public boolean isGrid(){
return grid;
}
public void setGrid(boolean grid){
this.grid = grid;
}
public void undo(){
if(stack.canUndo()){
stack.undo(editor);
}
}
public void redo(){
if(stack.canRedo()){
stack.redo(editor);
}
}
public void addTileOp(TileOperation t){
op.addOperation(t);
}
public boolean checkForDuplicates(short x, short y){
return op.checkDuplicate(x, y);
}
@Override
public void act(float delta){
super.act(delta);
@@ -24,13 +24,17 @@ import io.anuke.ucore.util.Translator;
import static io.anuke.mindustry.Vars.*;
/**Utility class for damaging in an area.*/
/**
* Utility class for damaging in an area.
*/
public class Damage{
private static Rectangle rect = new Rectangle();
private static Rectangle hitrect = new Rectangle();
private static Translator tr = new Translator();
/**Creates a dynamic explosion based on specified parameters.*/
/**
* Creates a dynamic explosion based on specified parameters.
*/
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){
for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){
int branches = 5 + Mathf.clamp((int) (power / 30), 1, 20);
@@ -76,8 +80,10 @@ public class Damage {
}
}
/**Damages entities in a line.
* Only enemies of the specified team are damaged.*/
/**
* Damages entities in a line.
* Only enemies of the specified team are damaged.
*/
public static void collideLine(SolidEntity hitter, Team team, Effect effect, float x, float y, float angle, float length){
tr.trns(angle, length);
rect.setPosition(x, y).setSize(tr.x, tr.y);
@@ -120,7 +126,9 @@ public class Damage {
Units.getNearbyEnemies(team, rect, cons);
}
/**Damages all entities and blocks in a radius that are enemies of the team.*/
/**
* Damages all entities and blocks in a radius that are enemies of the team.
*/
public static void damageUnits(Team team, float x, float y, float size, float damage, Predicate<Unit> predicate, Consumer<Unit> acceptor){
Consumer<Unit> cons = entity -> {
if(!predicate.test(entity)) return;
@@ -141,12 +149,16 @@ public class Damage {
}
}
/**Damages everything in a radius.*/
/**
* Damages everything in a radius.
*/
public static void damage(float x, float y, float radius, float damage){
damage(null, x, y, radius, damage);
}
/**Damages all entities and blocks in a radius that are enemies of the team.*/
/**
* Damages all entities and blocks in a radius that are enemies of the team.
*/
public static void damage(Team team, float x, float y, float radius, float damage){
Consumer<Unit> cons = entity -> {
if(entity.team == team || entity.distanceTo(x, y) > radius){
@@ -9,6 +9,7 @@ import com.badlogic.gdx.utils.Queue;
import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.entities.effect.ScorchDecal;
import io.anuke.mindustry.entities.traits.*;
@@ -25,7 +26,10 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.mindustry.world.blocks.storage.CoreBlock.CoreEntity;
import io.anuke.mindustry.world.blocks.units.MechFactory;
import io.anuke.ucore.core.*;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.ucore.graphics.Draw;
@@ -39,13 +43,11 @@ import java.io.IOException;
import static io.anuke.mindustry.Vars.*;
public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTrait{
public static final int timerSync = 2;
private static final int timerShootLeft = 0;
private static final int timerShootRight = 1;
public static final int timerSync = 2;
//region instance variables, constructor
public float baseRotation;
public float pointerX, pointerY;
@@ -81,6 +83,30 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
//region unit and event overrides, utility methods
@Remote(in = In.entities, targets = Loc.server, called = Loc.server)
public static void onPlayerDamage(Player player, float amount){
if(player == null) return;
player.hitTime = hitDuration;
player.health -= amount;
}
@Remote(in = In.entities, targets = Loc.server, called = Loc.server)
public static void onPlayerDeath(Player player){
if(player == null) return;
player.dead = true;
player.placeQueue.clear();
player.dropCarry();
float explosiveness = 2f + (player.inventory.hasItem() ? player.inventory.getItem().item.explosiveness * player.inventory.getItem().amount : 0f);
float flammability = (player.inventory.hasItem() ? player.inventory.getItem().item.flammability * player.inventory.getItem().amount : 0f);
Damage.dynamicExplosion(player.x, player.y, flammability, explosiveness, 0f, player.getSize() / 2f, Palette.darkFlame);
ScorchDecal.create(player.x, player.y);
player.onDeath();
}
@Override
public Timer getTimer(){
@@ -214,31 +240,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
return super.collides(other) || other instanceof ItemDrop;
}
@Remote(in = In.entities, targets = Loc.server, called = Loc.server)
public static void onPlayerDamage(Player player, float amount){
if(player == null) return;
player.hitTime = hitDuration;
player.health -= amount;
}
@Remote(in = In.entities, targets = Loc.server, called = Loc.server)
public static void onPlayerDeath(Player player){
if(player == null) return;
player.dead = true;
player.placeQueue.clear();
player.dropCarry();
float explosiveness = 2f + (player.inventory.hasItem() ? player.inventory.getItem().item.explosiveness * player.inventory.getItem().amount : 0f);
float flammability = (player.inventory.hasItem() ? player.inventory.getItem().item.flammability * player.inventory.getItem().amount : 0f);
Damage.dynamicExplosion(player.x, player.y, flammability, explosiveness, 0f, player.getSize()/2f, Palette.darkFlame);
ScorchDecal.create(player.x, player.y);
player.onDeath();
}
@Override
public void set(float x, float y){
this.x = x;
@@ -273,6 +274,11 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
return isLocal ? Float.MAX_VALUE : 40;
}
@Override
public void drawShadow(){
Draw.rect(mech.iconRegion, x + elevation * elevationScale, y - elevation * elevationScale, rotation - 90);
}
@Override
public void draw(){
if((debug && (!showPlayer || !showUI)) || dead) return;
@@ -368,7 +374,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
float wobblyness = 0.6f;
trail.update(x + Angles.trnsx(rotation + 180f, 5f) + Mathf.range(wobblyness),
y + Angles.trnsy(rotation + 180f, 5f) + Mathf.range(wobblyness));
trail.draw(mech.trailColor, mech.trailColor, 5f * (isFlying() ? 1f : boostHeat));
trail.draw(mech.trailColor, 5f * (isFlying() ? 1f : boostHeat));
}else{
trail.clear();
}
@@ -396,7 +402,9 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
Draw.tscl(fontScale);
}
/**Draw all current build requests. Does not draw the beam effect, only the positions.*/
/**
* Draw all current build requests. Does not draw the beam effect, only the positions.
*/
public void drawBuildRequests(){
synchronized(getPlaceQueue()){
for(BuildRequest request : getPlaceQueue()){
@@ -467,7 +475,9 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
updateMech();
}
if(isLocal){
avoidOthers(8f);
}
if(!isShooting()){
updateBuilding(this);
@@ -485,8 +495,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
damage(health + 1); //die instantly
}
if(ui.chatfrag.chatOpen()) return;
float speed = isBoosting && !mech.flying ? debug ? 5f : mech.boostSpeed : mech.speed;
//fraction of speed when at max load
float carrySlowdown = 0.7f;
@@ -501,7 +509,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
}
//drop from carrier on key press
if(Inputs.keyTap("drop_unit")){
if(!ui.chatfrag.chatOpen() && Inputs.keyTap("drop_unit")){
if(!mech.flying){
if(getCarrier() != null){
CallEntity.dropSelf(this);
@@ -534,10 +542,12 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
pointerY = vec.y;
updateShooting();
movement.limit(speed);
movement.limit(speed * Timers.delta());
if(getCarrier() == null){
if(!ui.chatfrag.chatOpen()){
velocity.add(movement);
}
float prex = x, prey = y;
updateVelocityStatus(mech.drag, 10f);
moved = distanceTo(prex, prey) > 0.01f;
@@ -547,6 +557,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
y = Mathf.lerpDelta(y, getCarrier().getY(), 0.1f);
}
if(!ui.chatfrag.chatOpen()){
if(!isShooting()){
if(!movement.isZero()){
rotation = Mathf.slerpDelta(rotation, movement.angle(), 0.13f);
@@ -556,6 +567,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
this.rotation = Mathf.slerpDelta(this.rotation, angle, 0.1f);
}
}
}
protected void updateShooting(){
if(isShooting()){
@@ -591,18 +603,13 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
}
movement.set(targetX - x, targetY - y).limit(mech.speed);
movement.setAngle(Mathf.slerpDelta(movement.angle(), velocity.angle(), 0.05f));
movement.setAngle(Mathf.slerp(movement.angle(), velocity.angle(), 0.05f));
if(distanceTo(targetX, targetY) < attractDst){
movement.setZero();
}
velocity.add(movement);
updateVelocityStatus(mech.drag, mech.maxSpeed);
//hovering effect
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f);
y += Mathf.cos(Timers.time() + id * 999, 25f, 0.08f);
if(velocity.len() <= 0.2f){
rotation += Mathf.sin(Timers.time() + id * 99, 10f, 1f);
@@ -610,6 +617,12 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
rotation = Mathf.slerpDelta(rotation, velocity.angle(), velocity.len() / 10f);
}
updateVelocityStatus(mech.drag, mech.maxSpeed);
//hovering effect
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f);
y += Mathf.cos(Timers.time() + id * 999, 25f, 0.08f);
//update shooting if not building, not mining and there's ammo left
if(!isBuilding() && inventory.hasAmmo() && getMineTile() == null){
@@ -652,14 +665,19 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
team = (team == Team.blue ? Team.red : Team.blue);
}
/**Resets all values of the player.*/
/**
* Resets all values of the player.
*/
public void reset(){
status.clear();
team = Team.blue;
inventory.clear();
placeQueue.clear();
dead = true;
trail.clear();
health = maxHealth();
mech = (mobile ? Mechs.starterMobile : Mechs.starterDesktop);
placeQueue.clear();
add();
}
@@ -739,13 +757,12 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
public void write(DataOutput buffer) throws IOException{
super.writeSave(buffer, !isLocal);
buffer.writeUTF(name); //TODO writing strings is very inefficient
buffer.writeBoolean(isAdmin);
buffer.writeByte(Bits.toByte(isAdmin) | (Bits.toByte(dead) << 1) | (Bits.toByte(isBoosting) << 2));
buffer.writeInt(Color.rgba8888(color));
buffer.writeBoolean(dead);
buffer.writeByte(mech.id);
buffer.writeBoolean(isBoosting);
buffer.writeInt(mining == null ? -1 : mining.packedPosition());
buffer.writeInt(spawner);
buffer.writeShort((short) (baseRotation * 2));
writeBuilding(buffer);
}
@@ -755,17 +772,19 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
float lastx = x, lasty = y, lastrot = rotation;
super.readSave(buffer);
name = buffer.readUTF();
isAdmin = buffer.readBoolean();
byte bools = buffer.readByte();
isAdmin = (bools & 1) != 0;
dead = (bools & 2) != 0;
boolean boosting = (bools & 4) != 0;
color.set(buffer.readInt());
dead = buffer.readBoolean();
mech = Upgrade.getByID(buffer.readByte());
boolean boosting = buffer.readBoolean();
int mine = buffer.readInt();
spawner = buffer.readInt();
float baseRotation = buffer.readShort() / 2f;
readBuilding(buffer, !isLocal);
interpolator.read(lastx, lasty, x, y, time, rotation);
interpolator.read(lastx, lasty, x, y, time, rotation, baseRotation);
rotation = lastrot;
if(isLocal){
@@ -4,12 +4,16 @@ import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.ucore.util.Mathf;
/**Class for predicting shoot angles based on velocities of targets.*/
/**
* Class for predicting shoot angles based on velocities of targets.
*/
public class Predict{
private static Vector2 vec = new Vector2();
private static Vector2 vresult = new Vector2();
/**Calculates of intercept of a stationary and moving target. Do not call from multiple threads!
/**
* Calculates of intercept of a stationary and moving target. Do not call from multiple threads!
*
* @param srcx X of shooter
* @param srcy Y of shooter
* @param dstx X of target
@@ -17,7 +21,8 @@ public class Predict {
* @param dstvx X velocity of target (subtract shooter X velocity if needed)
* @param dstvy Y velocity of target (subtract shooter Y velocity if needed)
* @param v speed of bullet
* @return the intercept location*/
* @return the intercept location
*/
public static Vector2 intercept(float srcx, float srcy, float dstx, float dsty, float dstvx, float dstvy, float v){
float tx = dstx - srcx,
ty = dsty - srcy;
@@ -44,7 +49,9 @@ public class Predict {
return sol;
}
/**See {@link #intercept(float, float, float, float, float, float, float)}.*/
/**
* See {@link #intercept(float, float, float, float, float, float, float)}.
*/
public static Vector2 intercept(TargetTrait src, TargetTrait dst, float v){
return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getVelocity().x - src.getVelocity().x, dst.getVelocity().x - src.getVelocity().y, v);
}
@@ -12,7 +12,9 @@ import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
/**Class for controlling status effects on an entity.*/
/**
* Class for controlling status effects on an entity.
*/
public class StatusController implements Saveable{
private static final StatusEntry globalResult = new StatusEntry();
private static final Array<StatusEntry> removals = new ThreadArray<>();
@@ -1,6 +1,9 @@
package io.anuke.mindustry.entities;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.fx.Fx;
@@ -10,11 +13,14 @@ import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallBlocks;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Edges;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Wall;
import io.anuke.mindustry.world.blocks.modules.InventoryModule;
import io.anuke.mindustry.world.blocks.modules.LiquidModule;
import io.anuke.mindustry.world.blocks.modules.PowerModule;
import io.anuke.mindustry.world.consumers.Consume;
import io.anuke.mindustry.world.modules.ConsumeModule;
import io.anuke.mindustry.world.modules.InventoryModule;
import io.anuke.mindustry.world.modules.LiquidModule;
import io.anuke.mindustry.world.modules.PowerModule;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
@@ -31,9 +37,11 @@ import static io.anuke.mindustry.Vars.world;
public class TileEntity extends BaseEntity implements TargetTrait{
public static final float timeToSleep = 60f * 4; //4 seconds to fall asleep
/**This value is only used for debugging.*/
private static final ObjectSet<Tile> tmpTiles = new ObjectSet<>();
/**
* This value is only used for debugging.
*/
public static int sleepingEntities = 0;
public Tile tile;
public Timer timer;
public float health;
@@ -41,11 +49,27 @@ public class TileEntity extends BaseEntity implements TargetTrait {
public PowerModule power;
public InventoryModule items;
public LiquidModule liquids;
public ConsumeModule cons;
/**List of (cached) tiles with entities in proximity, used for outputting to*/
private Array<Tile> proximity = new Array<>(8);
private boolean dead = false;
private boolean sleeping;
private float sleepTime;
@Remote(called = Loc.server, in = In.blocks)
public static void onTileDamage(Tile tile, float health){
if(tile.entity != null){
tile.entity.health = health;
}
}
@Remote(called = Loc.server, in = In.blocks)
public static void onTileDestroyed(Tile tile){
if(tile.entity == null) return;
tile.entity.onDeath();
}
/**Sets this tile entity data to this tile, and adds it if necessary.*/
public TileEntity init(Tile tile, boolean added){
this.tile = tile;
@@ -57,19 +81,16 @@ public class TileEntity extends BaseEntity implements TargetTrait {
timer = new Timer(tile.block().timers);
if(added){
//if(!tile.block().autoSleep) { //TODO only autosleep when creating a fresh block!
add();
/*}else{
sleeping = true;
sleepingEntities ++;
}*/
}
return this;
}
/**Call when nothing is happening to the entity.
* This increments the internal sleep timer.*/
/**
* Call when nothing is happening to the entity.
* This increments the internal sleep timer.
*/
public void sleep(){
sleepTime += Timers.delta();
if(!sleeping && sleepTime >= timeToSleep){
@@ -79,8 +100,10 @@ public class TileEntity extends BaseEntity implements TargetTrait {
}
}
/**Call when something just happened to the entity.
* If the entity was sleeping, this enables it. This also resets the sleep timer.*/
/**
* Call when something just happened to the entity.
* If the entity was sleeping, this enables it. This also resets the sleep timer.
*/
public void wakeUp(){
sleepTime = 0f;
if(sleeping){
@@ -98,8 +121,11 @@ public class TileEntity extends BaseEntity implements TargetTrait {
return dead;
}
public void write(DataOutputStream stream) throws IOException{}
public void read(DataInputStream stream) throws IOException{}
public void write(DataOutputStream stream) throws IOException{
}
public void read(DataInputStream stream) throws IOException{
}
private void onDeath(){
if(!dead){
@@ -135,6 +161,60 @@ public class TileEntity extends BaseEntity implements TargetTrait {
return tile;
}
public boolean consumed(Class<? extends Consume> type){
return tile.block().consumes.get(type).valid(tile.block(), this);
}
public void removeFromProximity(){
GridPoint2[] nearby = Edges.getEdges(tile.block().size);
for(GridPoint2 point : nearby){
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
//remove this tile from all nearby tile's proximities
if(other != null){
other = other.target();
other.block().onProximityUpdate(other);
}
if(other != null && other.entity != null){
other.entity.proximity.removeValue(tile, true);
}
}
}
public void updateProximity(){
tmpTiles.clear();
proximity.clear();
GridPoint2[] nearby = Edges.getEdges(tile.block().size);
for(GridPoint2 point : nearby){
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
if(other != null){
other.block().onProximityUpdate(other);
other = other.target();
}
if(other != null && other.entity != null){
tmpTiles.add(other);
//add this tile to proximity of nearby tiles
if(!other.entity.proximity.contains(tile, true)){
other.entity.proximity.add(tile);
}
}
}
//using a set to prevent duplicates
for(Tile tile : tmpTiles){
proximity.add(tile);
}
tile.block().onProximityUpdate(tile);
}
public Array<Tile> proximity(){
return proximity;
}
@Override
public Team getTeam(){
return tile.getTeam();
@@ -160,6 +240,9 @@ public class TileEntity extends BaseEntity implements TargetTrait {
}
tile.block().update(tile);
if(cons != null){
cons.update(this);
}
}
}
@@ -167,15 +250,4 @@ public class TileEntity extends BaseEntity implements TargetTrait {
public EntityGroup targetGroup(){
return tileGroup;
}
@Remote(called = Loc.server, in = In.blocks)
public static void onTileDamage(Tile tile, float health){
tile.entity.health = health;
}
@Remote(called = Loc.server, in = In.blocks)
public static void onTileDestroyed(Tile tile){
if(tile.entity == null) return;
tile.entity.onDeath();
}
}
+40 -11
View File
@@ -32,12 +32,19 @@ import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world;
public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait, CarriableTrait, InventoryTrait{
/**total duration of hit flash effect*/
/**
* total duration of hit flash effect
*/
public static final float hitDuration = 9f;
/**Percision divisor of velocity, used when writing. For example a value of '2' would mean the percision is 1/2 = 0.5-size chunks.*/
/**
* Percision divisor of velocity, used when writing. For example a value of '2' would mean the percision is 1/2 = 0.5-size chunks.
*/
public static final float velocityPercision = 8f;
/**Maximum absolute value of a velocity vector component.*/
/**
* Maximum absolute value of a velocity vector component.
*/
public static final float maxAbsVelocity = 127f / velocityPercision;
public static final float elevationScale = 4f;
private static final Vector2 moveVector = new Vector2();
@@ -52,6 +59,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
protected Vector2 velocity = new Translator(0f, 0.0001f);
protected float hitTime;
protected float drownTime;
protected float elevation;
@Override
public UnitInventory getInventory(){
@@ -69,13 +77,13 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
@Override
public void setCarrier(CarryTrait carrier) {
this.carrier = carrier;
public CarryTrait getCarrier(){
return carrier;
}
@Override
public CarryTrait getCarrier() {
return carrier;
public void setCarrier(CarryTrait carrier){
this.carrier = carrier;
}
@Override
@@ -199,14 +207,17 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
public void avoidOthers(float avoidRange){
EntityPhysics.getNearby(getGroup(), x, y, avoidRange * 2f, t -> {
if(t == this || (t instanceof Unit && (((Unit) t).isDead() || (((Unit) t).isFlying() != isFlying()) || ((Unit) t).getCarrier() == this) || getCarrier() == t)) return;
if(t == this || (t instanceof Unit && (((Unit) t).isDead() || (((Unit) t).isFlying() != isFlying()) || ((Unit) t).getCarrier() == this) || getCarrier() == t))
return;
float dst = distanceTo(t);
if(dst > avoidRange) return;
velocity.add(moveVector.set(x, y).sub(t.getX(), t.getY()).setLength(1f * (1f - (dst / avoidRange))));
});
}
/**Updates velocity and status effects.*/
/**
* Updates velocity and status effects.
*/
public void updateVelocityStatus(float drag, float maxVelocity){
if(isCarried()){ //carried units do not take into account velocity normally
set(carrier.getX(), carrier.getY());
@@ -224,6 +235,10 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
if(isFlying()){
x += velocity.x / getMass() * Timers.delta();
y += velocity.y / getMass() * Timers.delta();
if(tile != null){
elevation = Mathf.lerpDelta(elevation, tile.elevation, 0.04f);
}
}else{
boolean onLiquid = floor.isLiquid;
@@ -296,8 +311,14 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
return inventory.totalAmmo() / (float) inventory.ammoCapacity();
}
public void drawUnder(){}
public void drawOver(){}
public void drawUnder(){
}
public void drawOver(){
}
public void drawShadow(){
}
public void drawView(){
Fill.circle(x, y, getViewDistance());
@@ -312,12 +333,20 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
public abstract TextureRegion getIconRegion();
public abstract int getItemCapacity();
public abstract int getAmmoCapacity();
public abstract float getArmor();
public abstract boolean acceptsAmmo(Item item);
public abstract void addAmmo(Item item);
public abstract float getMass();
public abstract boolean isFlying();
public abstract float getSize();
}
@@ -8,15 +8,16 @@ import io.anuke.mindustry.type.AmmoType;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.ItemStack;
import java.io.*;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
public class UnitInventory implements Saveable{
private final Unit unit;
private Array<AmmoEntry> ammos = new Array<>();
private int totalAmmo;
private ItemStack item = new ItemStack(Items.stone, 0);
private final Unit unit;
public UnitInventory(Unit unit){
this.unit = unit;
}
@@ -53,7 +54,9 @@ public class UnitInventory implements Saveable{
item.amount = iamount;
}
/**Returns ammo range, or MAX_VALUE if this inventory has no ammo.*/
/**
* Returns ammo range, or MAX_VALUE if this inventory has no ammo.
*/
public float getAmmoRange(){
return hasAmmo() ? getAmmo().getRange() : Float.MAX_VALUE;
}
@@ -87,6 +90,7 @@ public class UnitInventory implements Saveable{
}
public void addAmmo(AmmoType type){
if(type == null) return;
totalAmmo += type.quantityMultiplier;
//find ammo entry by type
+70 -33
View File
@@ -15,12 +15,19 @@ import io.anuke.ucore.function.Predicate;
import static io.anuke.mindustry.Vars.*;
/**Utility class for unit and team interactions.*/
/**
* Utility class for unit and team interactions.
*/
public class Units{
private static Rectangle rect = new Rectangle();
private static Rectangle hitrect = new Rectangle();
private static Unit result;
private static float cdist;
private static boolean boolResult;
/**Validates a target.
/**
* Validates a target.
*
* @param target The target to validate
* @param team The team of the thing doing tha targeting
* @param x The X position of the thing doign the targeting
@@ -33,39 +40,47 @@ public class Units {
}
/**See {@link #invalidateTarget(TargetTrait, Team, float, float, float)}*/
/**
* See {@link #invalidateTarget(TargetTrait, Team, float, float, float)}
*/
public static boolean invalidateTarget(TargetTrait target, Team team, float x, float y){
return invalidateTarget(target, team, x, y, Float.MAX_VALUE);
}
/**See {@link #invalidateTarget(TargetTrait, Team, float, float, float)}*/
/**
* See {@link #invalidateTarget(TargetTrait, Team, float, float, float)}
*/
public static boolean invalidateTarget(TargetTrait target, Unit targeter){
return invalidateTarget(target, targeter.team, targeter.x, targeter.y, targeter.inventory.getAmmoRange());
}
/**Returns whether there are any entities on this tile.*/
/**
* Returns whether there are any entities on this tile.
*/
public static boolean anyEntities(Tile tile){
Block type = tile.block();
rect.setSize(type.size * tilesize, type.size * tilesize);
rect.setCenter(tile.drawx(), tile.drawy());
boolean[] value = new boolean[1];
boolResult = false;
Units.getNearby(rect, unit -> {
if (value[0]) return;
if(boolResult) return;
if(!unit.isFlying()){
unit.getHitbox(hitrect);
if(hitrect.overlaps(rect)){
value[0] = true;
boolResult = true;
}
}
});
return value[0];
return boolResult;
}
/**Returns whether there are any entities on this tile, with the hitbox expanded.*/
/**
* Returns whether there are any entities on this tile, with the hitbox expanded.
*/
public static boolean anyEntities(Tile tile, float expansion, Predicate<Unit> pred){
Block type = tile.block();
rect.setSize(type.size * tilesize + expansion, type.size * tilesize + expansion);
@@ -87,7 +102,9 @@ public class Units {
return value[0];
}
/**Returns the neareset ally tile in a range.*/
/**
* Returns the neareset ally tile in a range.
*/
public static TileEntity findAllyTile(Team team, float x, float y, float range, Predicate<Tile> pred){
for(Team enemy : state.teams.alliesOf(team)){
TileEntity entity = world.indexer().findTile(enemy, x, y, range, pred);
@@ -98,7 +115,9 @@ public class Units {
return null;
}
/**Returns the neareset enemy tile in a range.*/
/**
* Returns the neareset enemy tile in a range.
*/
public static TileEntity findEnemyTile(Team team, float x, float y, float range, Predicate<Tile> pred){
for(Team enemy : state.teams.enemiesOf(team)){
TileEntity entity = world.indexer().findTile(enemy, x, y, range, pred);
@@ -109,7 +128,9 @@ public class Units {
return null;
}
/**Iterates over all units on all teams, including players.*/
/**
* Iterates over all units on all teams, including players.
*/
public static void allUnits(Consumer<Unit> cons){
//check all unit groups first
for(EntityGroup<BaseUnit> group : unitGroups){
@@ -126,7 +147,9 @@ public class Units {
}
}
/**Returns the closest target enemy. First, units are checked, then tile entities.*/
/**
* Returns the closest target enemy. First, units are checked, then tile entities.
*/
public static TargetTrait getClosestTarget(Team team, float x, float y, float range){
Unit unit = getClosestEnemy(team, x, y, range, u -> true);
if(unit != null){
@@ -136,10 +159,12 @@ public class Units {
}
}
/**Returns the closest enemy of this team. Filter by predicate.*/
/**
* Returns the closest enemy of this team. Filter by predicate.
*/
public static Unit getClosestEnemy(Team team, float x, float y, float range, Predicate<Unit> predicate){
Unit[] result = {null};
float[] cdist = {0};
result = null;
cdist = 0f;
rect.setSize(range * 2f).setCenter(x, y);
@@ -149,20 +174,22 @@ public class Units {
float dist = Vector2.dst(e.x, e.y, x, y);
if(dist < range){
if (result[0] == null || dist < cdist[0]) {
result[0] = e;
cdist[0] = dist;
if(result == null || dist < cdist){
result = e;
cdist = dist;
}
}
});
return result[0];
return result;
}
/**Returns the closest ally of this team. Filter by predicate.*/
/**
* Returns the closest ally of this team. Filter by predicate.
*/
public static Unit getClosest(Team team, float x, float y, float range, Predicate<Unit> predicate){
Unit[] result = {null};
float[] cdist = {0};
result = null;
cdist = 0f;
rect.setSize(range * 2f).setCenter(x, y);
@@ -172,17 +199,19 @@ public class Units {
float dist = Vector2.dst(e.x, e.y, x, y);
if(dist < range){
if (result[0] == null || dist < cdist[0]) {
result[0] = e;
cdist[0] = dist;
if(result == null || dist < cdist){
result = e;
cdist = dist;
}
}
});
return result[0];
return result;
}
/**Iterates over all units in a rectangle.*/
/**
* Iterates over all units in a rectangle.
*/
public static void getNearby(Team team, Rectangle rect, Consumer<Unit> cons){
EntityGroup<BaseUnit> group = unitGroups[team.ordinal()];
@@ -196,7 +225,9 @@ public class Units {
});
}
/**Iterates over all units in a circle around this position.*/
/**
* Iterates over all units in a circle around this position.
*/
public static void getNearby(Team team, float x, float y, float radius, Consumer<Unit> cons){
rect.setSize(radius * 2).setCenter(x, y);
@@ -217,7 +248,9 @@ public class Units {
});
}
/**Iterates over all units in a rectangle.*/
/**
* Iterates over all units in a rectangle.
*/
public static void getNearby(Rectangle rect, Consumer<Unit> cons){
for(Team team : Team.all){
@@ -231,7 +264,9 @@ public class Units {
EntityPhysics.getNearby(playerGroup, rect, player -> cons.accept((Unit) player));
}
/**Iterates over all units that are enemies of this team.*/
/**
* Iterates over all units that are enemies of this team.
*/
public static void getNearbyEnemies(Team team, Rectangle rect, Consumer<Unit> cons){
ObjectSet<Team> targets = state.teams.enemiesOf(team);
@@ -250,7 +285,9 @@ public class Units {
});
}
/**Iterates over all units.*/
/**
* Iterates over all units.
*/
public static void getAllUnits(Consumer<Unit> cons){
for(Team team : Team.all){
@@ -12,7 +12,9 @@ import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
/**A BulletType for most ammo-based bullets shot from turrets and units.*/
/**
* A BulletType for most ammo-based bullets shot from turrets and units.
*/
public class BasicBulletType extends BulletType{
public Color backColor = Palette.bulletYellowBack, frontColor = Palette.bulletYellow;
public float bulletWidth = 5f, bulletHeight = 7f;
@@ -23,7 +25,9 @@ public class BasicBulletType extends BulletType {
public float fragVelocityMin = 0.2f, fragVelocityMax = 1f;
public BulletType fragBullet = null;
/**Use a negative value to disable splash damage.*/
/**
* Use a negative value to disable splash damage.
*/
public float splashDamageRadius = -1f;
public float splashDamage = 6f;
@@ -28,12 +28,16 @@ import static io.anuke.mindustry.Vars.world;
public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncTrait{
private static Vector2 vector = new Vector2();
public Timer timer = new Timer(3);
private Team team;
private Object data;
private boolean supressCollision;
public Timer timer = new Timer(3);
/**
* Internal use only!
*/
public Bullet(){
}
public static void create(BulletType type, TeamTrait owner, float x, float y, float angle){
create(type, owner, owner.getTeam(), x, y, angle);
@@ -86,9 +90,6 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
create(type, null, Team.none, x, y, angle);
}
/**Internal use only!*/
public Bullet(){}
public boolean collidesTiles(){
return type.collidesTiles;
}

Some files were not shown because too many files have changed in this diff Show More