Merge branch 'master' into patch-2

This commit is contained in:
Anuken
2018-08-06 11:17:20 -04:00
committed by GitHub
219 changed files with 4930 additions and 3375 deletions

View File

@@ -18,7 +18,7 @@ Once this is done, all you need to do is wait for me to approve your changes.
If a translation bundle for your language *doesn't* exist, you need to create one yourself.
In the folder with all the bundles in it, click the *'create new file'* button, and name it `bundle_(locale code here).properties`.
Then, copy-paste the entire contents of the [English translation bundle](https://raw.githubusercontent.com/Anuken/Mindustry/master/core/assets/bundles/bundle.propertie) into the file, and translate all the necessary text to your language.
Then, copy-paste the entire contents of the [English translation bundle](https://raw.githubusercontent.com/Anuken/Mindustry/master/core/assets/bundles/bundle.properties) into the file, and translate all the necessary text to your language.
Once you are done, press the *propose new file* button at the bottom, then 'create pull request twice'.
#### Useful Information
@@ -36,4 +36,4 @@ There are two ways to test the translation bundle:
**And that's it.**
*(...of course, that's never really it. Bother me on Discord when something inevatably goes wrong.)*
*(...of course, that's never really it. Bother me on Discord when something inevitably goes wrong.)*

View File

@@ -24,7 +24,6 @@ dependencies {
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
implementation "com.badlogicgames.gdx:gdx-ai:$aiVersion"
implementation "com.badlogicgames.gdx:gdx-controllers-android:$gdxVersion"
}

View File

@@ -12,7 +12,6 @@ import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.utils.Base64Coder;
@@ -25,8 +24,8 @@ import io.anuke.kryonet.KryoClient;
import io.anuke.kryonet.KryoServer;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.core.ThreadHandler.ThreadProvider;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.ui.dialogs.FileChooser;
import io.anuke.ucore.function.Consumer;
@@ -48,19 +47,16 @@ import java.util.Locale;
import static io.anuke.mindustry.Vars.*;
public class AndroidLauncher extends AndroidApplication{
public class AndroidLauncher extends PatchedAndroidApplication{
public static final int PERMISSION_REQUEST_CODE = 1;
boolean doubleScaleTablets = true;
FileChooser chooser;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useImmersiveMode = true;
Platform.instance = new Platform(){
DateFormat format = SimpleDateFormat.getDateTimeInstance();
@@ -108,19 +104,15 @@ public class AndroidLauncher extends AndroidApplication{
public String getUUID(){
try{
String s = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
Secure.ANDROID_ID);
int len = s.length();
byte[] data = new byte[len / 2];
for(int i = 0; i < len; i += 2){
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i + 1), 16));
+ Character.digit(s.charAt(i + 1), 16));
}
String result = new String(Base64Coder.encode(data));
if(result.equals("AAAAAAAAAOA=")) throw new RuntimeException("Bad UUID.");
return result;
}catch(Exception e){
return super.getUUID();
@@ -129,28 +121,23 @@ public class AndroidLauncher extends AndroidApplication{
@Override
public void shareFile(FileHandle file){
}
@Override
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){
chooser = new FileChooser(text, file -> file.extension().equalsIgnoreCase(filetype), open, cons);
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
chooser.show();
chooser = null;
}else{
ArrayList<String> perms = new ArrayList<>();
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
perms.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
}
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE);
}
}
@@ -170,7 +157,6 @@ public class AndroidLauncher extends AndroidApplication{
return true;
}
};
try{
ProviderInstaller.installIfNeeded(this);
}catch(GooglePlayServicesRepairableException e){
@@ -179,18 +165,13 @@ public class AndroidLauncher extends AndroidApplication{
}catch(GooglePlayServicesNotAvailableException e){
Log.e("SecurityException", "Google Play Services not available.");
}
if(doubleScaleTablets && isTablet(this.getContext())){
Unit.dp.addition = 0.5f;
}
config.hideStatusBar = true;
Net.setClientProvider(new KryoClient());
Net.setServerProvider(new KryoServer());
initialize(new Mindustry(), config);
checkFiles(getIntent());
}
@@ -200,7 +181,6 @@ public class AndroidLauncher extends AndroidApplication{
for(int i : grantResults){
if(i != PackageManager.PERMISSION_GRANTED) return;
}
if(chooser != null){
chooser.show();
}
@@ -220,21 +200,16 @@ public class AndroidLauncher extends AndroidApplication{
//error
return;
}
boolean save = uri.getPath().endsWith(saveExtension);
boolean map = uri.getPath().endsWith(mapExtension);
InputStream inStream;
if(myFile != null) inStream = new FileInputStream(myFile);
else inStream = getContentResolver().openInputStream(uri);
Gdx.app.postRunnable(() -> {
if(save){ //open save
System.out.println("Opening save.");
FileHandle file = Gdx.files.local("temp-save." + saveExtension);
file.write(inStream, false);
if(SaveIO.isSaveValid(file)){
try{
SaveSlot slot = control.getSaves().importSave(file);
@@ -245,20 +220,17 @@ public class AndroidLauncher extends AndroidApplication{
}else{
ui.showError("$text.save.import.invalid");
}
}else if(map){ //open map
Gdx.app.postRunnable(() -> {
System.out.println("Opening map.");
if(!ui.editor.isShown()){
ui.editor.show();
}
ui.editor.beginEditMap(inStream);
});
}
});
}
}catch(IOException e){
e.printStackTrace();
}

View File

@@ -0,0 +1,20 @@
package io.anuke.mindustry;
import com.badlogic.gdx.backends.android.AndroidApplication;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class PatchedAndroidApplication extends AndroidApplication {
private final ExecutorService exec = Executors.newSingleThreadExecutor();
@Override
protected void onPause () {
if(useImmersiveMode) {
exec.submit(() -> {
try {Thread.sleep(100);} catch (InterruptedException ignored) {}
graphics.onDrawFrame(null);
});
}
super.onPause();
}
}

View File

@@ -80,9 +80,6 @@ public class Annotations{
*/
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;
}

View File

@@ -35,6 +35,8 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
private static final String readServerName = "RemoteReadServer";
/** Name of class that handles reading and invoking packets on the client. */
private static final String readClientName = "RemoteReadClient";
/**Simple class name of generated class name.*/
private static final String callLocation = "Call";
/** Processing round number. */
private int round;
@@ -102,15 +104,15 @@ public class RemoteMethodAnnotationProcessor extends AbstractProcessor{
}
//get and create class entry if needed
if(!classMap.containsKey(annotation.in())){
ClassEntry clas = new ClassEntry(annotation.in());
classMap.put(annotation.in(), clas);
if(!classMap.containsKey(callLocation)){
ClassEntry clas = new ClassEntry(callLocation);
classMap.put(callLocation, clas);
classes.add(clas);
Utils.messager.printMessage(Kind.NOTE, "Generating class '" + clas.name + "'.");
}
ClassEntry entry = classMap.get(annotation.in());
ClassEntry entry = classMap.get(callLocation);
//create and add entry
MethodEntry method = new MethodEntry(entry.name, Utils.getMethodName(element), annotation.targets(), annotation.variants(),

View File

@@ -26,8 +26,7 @@ allprojects {
appName = 'Mindustry'
gdxVersion = '1.9.8'
roboVMVersion = '2.3.0'
aiVersion = '1.8.1'
uCoreVersion = 'b93d02efe3fdbe1a10b33d59597da8693d4f7de3'
uCoreVersion = '239e6a5bad'
getVersionString = {
String buildVersion = getBuildVersion()
@@ -97,7 +96,6 @@ project(":desktop") {
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion"
compile 'com.github.MinnDevelopment:java-discord-rpc:v2.0.0'
compile 'com.yuvimasory:orange-extensions:1.3.0'
}
}
@@ -113,13 +111,10 @@ project(":html") {
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion"
compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources"
compile "com.badlogicgames.gdx:gdx-controllers:$gdxVersion:sources"
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-controllers-gwt:$gdxVersion:sources"
compile "com.sksamuel.gwt:gwt-websockets:1.0.4"
compile "com.sksamuel.gwt:gwt-websockets:1.0.4:sources"
}
compileJava.options.compilerArgs = [
@@ -154,13 +149,9 @@ project(":core") {
compileOnly project(":annotations")
build.finalizedBy(finish)
boolean comp = System.properties["release"] == null || System.properties["release"] == "false"
def comp = System.properties["release"] == null || System.properties["release"] == "false"
if(!comp){
println("NOTICE: Compiling release build.")
}else{
println("Compiling DEBUG build.")
}
if(!comp) println("Note: Compiling release build.")
if(new File(projectDir.parent, '../uCore').exists() && comp){
compile project(":uCore")
@@ -220,7 +211,6 @@ project(":kryonet") {
dependencies {
compile project(":core")
compile 'com.github.crykn:kryonet:2.22.1'
compile "org.java-websocket:Java-WebSocket:1.3.7"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 789 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 574 B

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 313 B

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

View File

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 310 B

View File

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 306 B

View File

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 266 B

View File

Before

Width:  |  Height:  |  Size: 363 B

After

Width:  |  Height:  |  Size: 363 B

View File

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 384 B

View File

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 195 B

After

Width:  |  Height:  |  Size: 195 B

View File

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 177 B

View File

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 279 B

View File

Before

Width:  |  Height:  |  Size: 298 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

View File

@@ -1,4 +1,4 @@
text.about=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.credits=Credits
text.discord=Join the mindustry discord!
text.link.discord.description=the official Mindustry discord chatroom
@@ -11,11 +11,11 @@ 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=The web version of the game does not support multiplayer!\nUse the downloadable PC, Android or iOS versions.
text.host.web=The web version does not support hosting games! Download the game to use this feature.
text.gameover=The core was destroyed.
text.highscore=[YELLOW]New highscore!
text.lasted=You lasted until wave
text.gameover=Your core has been destroyed
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.highscore=[accent]New highscore!
text.wave.lasted=You lasted until wave [accent]{0}[].
text.level.highscore=High Score: [accent]{0}
text.level.delete.title=Confirm Delete
text.map.delete=Are you sure you want to delete the map "[orange]{0}[]"?
@@ -50,13 +50,19 @@ text.addplayers=Add/Remove Players
text.customgame=Custom Game
text.campaign=Campaign
text.sectors=Sectors
text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector=Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.mission.resource=Obtain {0} x{1}
text.none=<none>
text.close=Close
text.quit=Quit
text.maps=Maps
@@ -80,7 +86,7 @@ text.server.kicked.nameInUse=There is someone with that name\nalready on this se
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.host.info=The [accent]host[] button hosts a server on port [scarlet]6567[]. \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
@@ -149,6 +155,7 @@ text.save.rename.text=New name:
text.selectslot=Select a save.
text.slot=[accent]Slot {0}
text.save.corrupted=[orange]Save file corrupted or invalid!\nIf you have just updated your game, this is probably a change in the save format and [scarlet]not[] a bug.
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.empty=<empty>
text.on=On
text.off=Off
@@ -253,9 +260,6 @@ text.settings.controls=Controls
text.settings.game=Game
text.settings.sound=Sound
text.settings.graphics=Graphics
text.upgrades=Upgrades
text.purchased=[LIME]Created!
text.weapons=Weapons
text.paused=Paused
text.yes=Yes
text.no=No
@@ -320,6 +324,9 @@ text.category.liquids=Liquids
text.category.items=Items
text.category.crafting=Crafting
text.category.shooting=Shooting
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
setting.difficulty.easy=easy
setting.difficulty.normal=normal
setting.difficulty.hard=hard
@@ -343,41 +350,27 @@ setting.musicvol.name=Music Volume
setting.mutemusic.name=Mute Music
setting.sfxvol.name=SFX Volume
setting.mutesound.name=Mute Sound
map.maze.name=maze
map.fortress.name=fortress
map.sinkhole.name=sinkhole
map.caves.name=caves
map.volcano.name=volcano
map.caldera.name=caldera
map.scorch.name=scorch
map.desert.name=desert
map.island.name=island
map.grassland.name=grassland
map.tundra.name=tundra
map.spiral.name=spiral
map.tutorial.name=tutorial
text.keybind.title=Rebind Keys
keybind.move_x.name=move_x
keybind.move_y.name=move_y
keybind.select.name=select
keybind.break.name=break
keybind.shoot.name=shoot
keybind.zoom_hold.name=zoom_hold
keybind.zoom.name=zoom
keybind.block_info.name=block_info
keybind.menu.name=menu
keybind.pause.name=pause
keybind.dash.name=dash
keybind.chat.name=chat
keybind.player_list.name=player_list
keybind.move_x.name=Move x
keybind.move_y.name=Move y
keybind.select.name=Select
keybind.break.name=Break
keybind.shoot.name=Shoot
keybind.zoom_hold.name=Zoom Hold
keybind.zoom.name=Zoom
keybind.menu.name=Menu
keybind.pause.name=Pause
keybind.dash.name=Dash
keybind.chat.name=Chat
keybind.player_list.name=Player list
keybind.console.name=console
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=rotate
keybind.rotate.name=Rotate
mode.text.help.title=Description of modes
mode.waves.name=waves
mode.waves.description=the normal mode. limited resources and automatic incoming waves.
mode.sandbox.name=sandbox
mode.sandbox.description=infinite resources and no timer for waves.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
mode.freebuild.name=freebuild
mode.freebuild.description=limited resources and no timer for waves.
@@ -426,6 +419,9 @@ text.item.radioactivity=[LIGHT_GRAY]Radioactivity: {0}
text.item.fluxiness=[LIGHT_GRAY]Flux Power: {0}
text.item.hardness=[LIGHT_GRAY]Hardness: {0}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Heat Capacity: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosity: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperature: {0}
@@ -479,9 +475,9 @@ 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.dart-ship-factory.name=Dart Ship Reconstructor
block.delta-mech-factory.name=Delta Mech Reconstructor
block.javelin-ship-factory.name=Javelin Ship Reconstructor
block.repairpoint.name=Repair Point
block.resupplypoint.name=Resupply Point
block.conduit.name=Conduit
@@ -512,9 +508,10 @@ 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.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.repair-point.name=Repair Point
block.resupply-point.name=Resupply Point
block.pulse-conduit.name=Pulse Conduit
@@ -525,3 +522,23 @@ block.liquid-junction.name=Liquid Junction
block.bridge-conduit.name=Bridge Conduit
block.rotary-pump.name=Rotary Pump
block.nuclear-reactor.name=Nuclear Reactor
block.command-center.name=Command Center
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.

View File

@@ -1,8 +1,6 @@
text.about=Erstellt von [ROYAL] Anuken. [] \nUrsprünglich ein Eintrag im [orange] GDL [] MM Jam.\n\nCredits: \n- SFX gemacht mit [yellow] bfxr [] - Musik gemacht von [green] RoccoW [] / gefunden auf [lime] FreeMusicArchive.org [] \n\nBesonderer Dank geht an: \n- [coral] MitchellFJN []: Umfangreicher Spieletest und Feedback \n- [sky] Luxray5474 []: Wiki-Arbeit, Code-Beiträge \n- Alle Beta-Tester auf itch.io und Google Play\n
text.discord=Trete dem Mindustry Discord bei!
text.gameover=Der Kern wurde zerstört.
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.select=Level Auswahl
@@ -111,9 +109,6 @@ text.settings.controls=Steuerung
text.settings.game=Spiel
text.settings.sound=Audio
text.settings.graphics=Grafiken
text.upgrades=Verbesserungen
text.purchased=[LIME] Erstellt!
text.weapons=Waffen
text.paused=Pausiert
text.error.title=[crimson] Ein Fehler ist aufgetreten
text.error.crashtitle=EIn Fehler ist aufgetreten!
@@ -153,19 +148,6 @@ setting.musicvol.name=Musiklautstärke
setting.mutemusic.name=Musik stummschalten
setting.sfxvol.name=Audioeffekte Lautstärke
setting.mutesound.name=Audioeffekte stummschalten
map.maze.name=Labyrinth
map.fortress.name=Festung
map.sinkhole.name=Sinkloch
map.caves.name=Höhlen
map.volcano.name=Vulkan
map.caldera.name=Lavakessel
map.scorch.name=Flammen
map.desert.name=Wüste
map.island.name=Insel
map.grassland.name=Grasland
map.tundra.name=Kältesteppe
map.spiral.name=Spirale
map.tutorial.name=Tutorial
keybind.move_x.name=bewege_x
keybind.move_y.name=bewege_y
keybind.select.name=wählen
@@ -176,7 +158,6 @@ keybind.zoom.name=zoomen
keybind.menu.name=Menü
keybind.pause.name=Pause
keybind.dash.name=Bindestrich
keybind.rotate_alt.name=drehen_alt
keybind.rotate.name=Drehen
mode.waves.name=Wellen
mode.sandbox.name=Sandkasten
@@ -211,8 +192,6 @@ 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.
@@ -359,7 +338,6 @@ 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
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,4 +1,3 @@
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.link.discord.description=La sala oficial del discord de Mindustry
@@ -10,10 +9,8 @@ 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.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.select=Selección de nivel
@@ -165,9 +162,6 @@ text.settings.controls=Controles
text.settings.game=Juego
text.settings.sound=Sonido
text.settings.graphics=Gráficos
text.upgrades=Mejoras
text.purchased=[LIME] Creado!
text.weapons=Armas
text.paused=Pausado
text.info.title=[acento] Información
text.error.title=[carmesí] Se ha producido un error
@@ -210,19 +204,6 @@ setting.musicvol.name=Volumen de la música
setting.mutemusic.name=Apagar música
setting.sfxvol.name=Volumen de los efectos de sonido
setting.mutesound.name=Apagar sonidos
map.maze.name=Laberinto
map.fortress.name=Fortaleza
map.sinkhole.name=Sumidero
map.caves.name=Cuevas
map.volcano.name=Volcán
map.caldera.name=Caldera
map.scorch.name=Desierto volcánico
map.desert.name=Desierto
map.island.name=Isla
map.grassland.name=Pastizal
map.tundra.name=Tundra
map.spiral.name=Espiral
map.tutorial.name=Tutorial
text.keybind.title=Vuelva a conectar las llaves
keybind.move_x.name=mover_x
keybind.move_y.name=mover_y
@@ -231,14 +212,12 @@ keybind.break.name=Romper
keybind.shoot.name=¡Dispara!
keybind.zoom_hold.name=Enfoque_Mantener
keybind.zoom.name=Enfoquè
keybind.block_info.name=Bloque_informacion
keybind.menu.name=Menú
keybind.pause.name=Pausa
keybind.dash.name=Deslizar
keybind.chat.name=Chat
keybind.player_list.name=Jugadores_lista
keybind.console.name=Console
keybind.rotate_alt.name=Rotacion_alt
keybind.rotate.name=Girar
mode.text.help.title=Descripción de modos
mode.waves.name=Hordas
@@ -266,7 +245,6 @@ block.liquidjunction.name=Unión líquida
block.sorter.name=Clasificador
block.smelter.name=horno de fundición
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.
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,8 +1,6 @@
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.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.select=Sélection de niveau
@@ -147,9 +145,6 @@ text.settings.controls=Contrôles
text.settings.game=Jeu
text.settings.sound=Son
text.settings.graphics=Graphique
text.upgrades=Améliorations
text.purchased=[VERT]Créé!
text.weapons=Armes
text.paused=Pause
text.info.title=[accent]Info
text.error.title=[crimson]Une erreur est survenue
@@ -192,19 +187,6 @@ setting.musicvol.name=volume musique
setting.mutemusic.name=Musique muette
setting.sfxvol.name=Volume SFX
setting.mutesound.name=Son muet
map.maze.name=Labyrinthe
map.fortress.name=forteresse
map.sinkhole.name=gouffre
map.caves.name=cavernes
map.volcano.name=volcan
map.caldera.name=chaudron
map.scorch.name=brûlure
map.desert.name=désert
map.island.name=Île
map.grassland.name=prairie
map.tundra.name=toundra
map.spiral.name=spirale
map.tutorial.name=tutoriel
text.keybind.title=Relier le clés
keybind.move_x.name=mouvement x
keybind.move_y.name=mouvement y
@@ -213,14 +195,12 @@ keybind.break.name=Pause
keybind.shoot.name=tirer
keybind.zoom_hold.name=tenir le zoom
keybind.zoom.name=zoom
keybind.block_info.name=bloc_info
keybind.menu.name=menu
keybind.pause.name=Pause
keybind.dash.name=attaque frontal
keybind.chat.name=chat
keybind.player_list.name=Liste des joueurs
keybind.console.name=console
keybind.rotate_alt.name=tourner_alt
keybind.rotate.name=Tourner
mode.waves.name=Vagues
mode.sandbox.name=bac à sable
@@ -254,8 +234,6 @@ 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.
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,8 +1,6 @@
text.about=Dibuat oleh [ROYAL]Anuken.[]\nAwalnya masuk di [orange]GDL[] MM Jam.\n\nKredit:\n- SFX dibuat dengan [YELLOW]bfxr[]\n- Musik dibuat oleh [GREEN]RoccoW[] / ditemukan di [lime]FreeMusicArchive.org[]\n\nTerima kasih khusus kepada:\n- [coral]MitchellFJN[]: playtesting dan umpan balik yang luas\n- [sky]Luxray5474[]: pekerjaan wiki, kontribusi kode\n- Semua penguji beta di itch.io dan Google Play\n
text.discord=Bergabunglah dengan Discord Mindustry!
text.gameover=Intinya hancur.
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.select=Pilih Level
@@ -117,9 +115,6 @@ text.settings.controls=Kontrol
text.settings.game=Permainan
text.settings.sound=Suara
text.settings.graphics=Grafis
text.upgrades=Perbaruan
text.purchased=[LIME]Dibuat!
text.weapons=Senjata
text.paused=Jeda
text.info.title=[accent]Info
text.error.title=[crimson]Telah terjadi kesalahan
@@ -161,19 +156,6 @@ setting.musicvol.name=Volume Musik
setting.mutemusic.name=Bisukan Musik
setting.sfxvol.name=Volume Suara
setting.mutesound.name=Bisukan Suara
map.maze.name=labirin
map.fortress.name=benteng
map.sinkhole.name=lubang pembuangan
map.caves.name=gua
map.volcano.name=gunung berapi
map.caldera.name=kaldera
map.scorch.name=penghangusan
map.desert.name=gurun
map.island.name=pulau
map.grassland.name=padang rumput
map.tundra.name=tundra
map.spiral.name=spiral
map.tutorial.name=tutorial
keybind.move_x.name=gerak_x
keybind.move_y.name=gerak_y
keybind.select.name=pilih
@@ -184,7 +166,6 @@ keybind.zoom.name=perbesar
keybind.menu.name=menu
keybind.pause.name=jeda
keybind.dash.name=berlari
keybind.rotate_alt.name=putar_alt
keybind.rotate.name=putar
mode.waves.name=gelombang
mode.sandbox.name=sandbox
@@ -219,8 +200,6 @@ 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.
@@ -359,7 +338,6 @@ 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
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,4 +1,3 @@
text.about=Creato da [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\nOriginariamente parte del [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 []: sviluppo 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 - [SCARLET] Ludovico Vaghi [], [SCARLET] Enrico Franciscono [] e [SCARLET] Luca Deluigi [] per la traduzione italiana\n
text.credits=Crediti
text.discord=Unisciti sul server discord di mindustry!
text.link.discord.description=la chatroom ufficiale del server discord di Mindustry
@@ -10,10 +9,8 @@ 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.gameover=Il nucleo è stato distrutto.
text.highscore=[YELLOW]Nuovo record!
text.lasted=Sei durato fino all'ondata
text.level.highscore=Miglior punteggio: [accent]{0}
text.level.delete.title=Conferma Eliminazione
text.level.select=Selezione del livello
@@ -165,9 +162,6 @@ text.settings.controls=Controlli
text.settings.game=Gioco
text.settings.sound=Suono
text.settings.graphics=Grafica
text.upgrades=Miglioramenti
text.purchased=[LIME]Creato!
text.weapons=Armi
text.paused=In pausa
text.info.title=[Accent]Info
text.error.title=[crimson]Si è verificato un errore
@@ -210,19 +204,6 @@ setting.musicvol.name=Volume Musica
setting.mutemusic.name=Silenzia musica
setting.sfxvol.name=Volume SFX
setting.mutesound.name=Togli suoni
map.maze.name=labirinto
map.fortress.name=fortezza
map.sinkhole.name=dolina
map.caves.name=grotte
map.volcano.name=vulcano
map.caldera.name=caldera
map.scorch.name=bruciatura
map.desert.name=deserto
map.island.name=isola
map.grassland.name=prateria
map.tundra.name=tundra
map.spiral.name=spirale
map.tutorial.name=tutorial
text.keybind.title=Configurazione Tasti
keybind.move_x.name=Sposta_x
keybind.move_y.name=Sposta_y
@@ -231,14 +212,12 @@ keybind.break.name=rompi
keybind.shoot.name=spara
keybind.zoom_hold.name=zoom_hold
keybind.zoom.name=zoom
keybind.block_info.name=Informazioni blocco
keybind.menu.name=menu
keybind.pause.name=pausa
keybind.dash.name=Scatto
keybind.chat.name=Chat
keybind.player_list.name=lista_giocatori
keybind.console.name=console
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Ruotare
mode.text.help.title=Descrizione delle modalità
mode.waves.name=ondate
@@ -500,4 +479,4 @@ block.liquid-tank.name=Tanica d'acqua
block.liquid-junction.name=Giunzione liquida
block.bridge-conduit.name=Condotta forzata sopraelevata
block.rotary-pump.name=Pompa a turbina
block.nuclear-reactor.name=Reattore nucleare
block.nuclear-reactor.name=Reattore nucleare

View File

@@ -1,4 +1,3 @@
text.about=제작자 : [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
text.credits=제작자
text.discord=Mindustry Discord 에 참여하세요!
text.link.discord.description=공식 Mindustry Discord 채팅방
@@ -11,11 +10,8 @@ text.link.wiki.description=공식 Mindustry 위키
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.level.highscore=최고 점수 : [accent]{0}
text.level.delete.title=삭제 확인
text.map.delete=정말로 "[orange]{0}[]" 맵을 삭제하시겠습니까?
@@ -223,9 +219,6 @@ text.settings.controls=컨트롤
text.settings.game=게임
text.settings.sound=소리
text.settings.graphics=화면
text.upgrades=강화
text.purchased=[LIME]생성됨!
text.weapons=무기
text.paused=일시 정지
text.yes=
text.no=아니오
@@ -311,19 +304,6 @@ 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.desert.name=사막
map.island.name=
map.grassland.name=목초지
map.tundra.name=툰트라
map.spiral.name=나선
map.tutorial.name=게임 방법
text.keybind.title=키 바인딩
keybind.move_x.name=오른쪽/왼쪽 이동
keybind.move_y.name=위쪽/아래쪽 이동
@@ -332,14 +312,12 @@ keybind.break.name=파괴
keybind.shoot.name=사격
keybind.zoom_hold.name=길게눌러 확대
keybind.zoom.name=확대
keybind.block_info.name=블럭 정보
keybind.menu.name=메뉴
keybind.pause.name=일시중지
keybind.dash.name=달리기
keybind.chat.name=채팅
keybind.player_list.name=플레이어 목록
keybind.console.name=콘솔
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=회전
mode.text.help.title=도움말
mode.waves.name=웨이브
@@ -443,7 +421,6 @@ 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=도관
@@ -475,8 +452,6 @@ 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=펄스 도관
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,8 +1,6 @@
text.about=Stworzony przez [ROYAL] Anuken. []\nPierwotnie wpis w [orange] GDL [] MM Jam.\n\nNapisy:\n- SFX wykonane z pomocą [YELLOW] bfxr []\n- Muzyka wykonana przez [GREEN] RoccoW [] / znaleziona na [lime] FreeMusicArchive.org []\n\nSpecjalne podziękowania dla:\n- [coral] MitchellFJN []: obszerne testowanie i feedback\n- [niebo] Luxray5474 []: prace związane z wiki, pomoc z kodem\n- Wszystkich beta testerów na itch.io i Google Play\n
text.discord=Odwiedź nasz serwer Discord
text.gameover=Rdzeń został zniszczony.
text.highscore=[YELLOW] Nowy rekord!
text.lasted=Wytrwałeś do fali
text.level.highscore=Rekord: [accent]{0}
text.level.delete.title=Potwierdź usuwanie
text.level.select=Wybrany poziom
@@ -117,9 +115,6 @@ text.settings.controls=Sterowanie
text.settings.game=Gra
text.settings.sound=Dźwięk
text.settings.graphics=Grafika
text.upgrades=Ulepszenia
text.purchased=[LIME]Stworzono!
text.weapons=Bronie
text.paused=Wstrzymano
text.info.title=[accent]Informacje
text.error.title=[crimson]Wystąpił błąd
@@ -160,19 +155,6 @@ setting.musicvol.name=Głośność muzyki
setting.mutemusic.name=Wycisz muzykę
setting.sfxvol.name=Głośność dźwięków
setting.mutesound.name=Wycisz dźwięki
map.maze.name=labirynt
map.fortress.name=twierdza
map.sinkhole.name=wgłębienie
map.caves.name=jaskinie
map.volcano.name=wulkan
map.caldera.name=kaldera
map.scorch.name=opalacz
map.desert.name=pustynia
map.island.name=wyspa
map.grassland.name=łąka
map.tundra.name=tundra
map.spiral.name=spirala
map.tutorial.name=Poradnik
keybind.move_x.name=Poruszanie w poziomie
keybind.move_y.name=Poruszanie w pionie
keybind.select.name=Wybieranie
@@ -183,7 +165,6 @@ keybind.zoom.name=Przybliżanie
keybind.menu.name=menu
keybind.pause.name=pauza
keybind.dash.name=przyśpieszenie
keybind.rotate_alt.name=Obracanie (1)
keybind.rotate.name=Obracanie (2)
mode.waves.name=Fale
mode.sandbox.name=sandbox
@@ -218,8 +199,6 @@ text.link.wiki.description=Oficjana Wiki Mindustry
text.linkfail=Nie udało się otworzyć linku!\nURL został skopiowany.
text.editor.web=Wersja przeglądarkowa nie wspomaga edytora map!\nPobierz grę aby użyć edytora.
text.web.unsupported=Wersja przeglądarkowa nie wspomaga tej fukcji!\nPobierz grę aby użyć tej funkcji.
text.multiplayer.web=Ta wersja gry nie wspomaga gry wieloosobowej!\nAby zagrać w grę wieloosobową, użyj wersji "wieloosobowa gra przeglądarkowa" na stronie itch.io.
text.host.web=Wersja przglądarkowa nie wspomaga tworzenia serwerów!\nPobierz grę aby użyć tej funkcji.
text.map.delete=Jesteś pewny, że chcesz usunąć "[orange]{0}[]"?
text.construction.title=Poradnik tworzenia bloków
text.construction=Wybrałeś [accent]tryb tworzenia bloków[].\n\nAby zacząć stawiać bloki, po prostu kliknij na dostępne pole obot twojego statku.\nKiedy wybrałeś kilka bloków, kliknij ptaszek i twój statek zacznie budować bloki.\n\n- [accent]Anuluj bloki[] z twojej kolekcji przez klikanie ich(?).\n- [accent]Przesuwaj bloki w kolekcji[] przez przeciąganie ich w opowiednim kierunku.\n- [accent]Stawiaj bloki w lini[] przez kliknięcie w wybranym miejscu i przesuięcie palca.\n- [accent]Anuluj konstrukcję lub kolekcję [] przez kliknięcie X w lewym dolnym rogu.
@@ -359,7 +338,6 @@ setting.fullscreen.name=Pełny ekran
setting.multithread.name=Wielowątkowość
setting.minimap.name=Pokaż Minimapę
text.keybind.title=Zmień ustawienia przycisków
keybind.block_info.name=Informacje o bloku
keybind.chat.name=Chat
keybind.player_list.name=Lista graczy
keybind.console.name=Konsola
@@ -447,7 +425,6 @@ block.water-extractor.name=Wodny Ekstraktor
block.cultivator.name=Spluchniacz
block.dart-ship-factory.name=Fabryka Staktów "DART"
block.delta-mech-factory.name=Fabryka Mecha "DELTA"
block.dronefactory.name=Fabryka Dronów
block.repairpoint.name=Punkt Naprawy
block.resupplypoint.name=Punkt Uzupełniania Amunicji
block.liquidtank.name=Zbiornik na Płyny
@@ -473,8 +450,6 @@ block.solar-panel.name=Panel Słoneczny
block.solar-panel-large.name=Duży Panel Słoneczny
block.oil-extractor.name=Ekstraktor Ropy
block.javelin-ship-factory.name=Fabryka Statków "JAVELIN"
block.drone-factory.name=Fabryka Dronów
block.fabricator-factory.name=Fabryka Dronów Budowlanych
block.repair-point.name=Punkt Napraw
block.resupply-point.name=Punkt Uzupełniania Amunicji
block.pulse-conduit.name=Rura Pulsacyjna
@@ -493,7 +468,6 @@ text.sector=Wybrany Sektor: [LIGHT_GRAY]{0}
text.sector.time=Czas: [LIGHT_GRAY]{0}
text.sector.deploy=Wejdź
text.sector.resume=Wznów
text.sector.unlocked=Sektor ukończony!
text.sector.locked=[scarlet][[Niegotowy]
text.sector.unexplored=[accent][[Nieodkryty]
text.close=Zamknij
@@ -501,3 +475,44 @@ text.save.playtime=Czas gry: {0}
text.editor.brush=Pędzel
block.itemvoid.name=Item Void
block.powervoid.name=Power Void
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,8 +1,6 @@
text.about=Criado por [ROYAL]Anuken.[]\nOriginalmente uma entrada para a [orange]GDL[] MM Jam.\n\nCredits:\n- SFX feito com [YELLOW]bfxr[]\n- Música feita por [GREEN]RoccoW[] / encontrada em [lime]FreeMusicArchive.org[]\n\nAgradecimento especial para:\n- [coral]MitchellFJN[]: playtesting extensivo e feedback\n- [sky]Luxray5474[]: wiki work e contribuições com código\n- Todos os beta testers do itch.io e Google Play\n
text.discord=Junte-se ao Discord do Mindustry! (Lá nós falamos em inglês)
text.gameover=O núcleo foi destruído.
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.select=Seleção de Fase
@@ -48,7 +46,7 @@ text.editor.saveimage=Salvar\nImagem
text.editor.unsaved=[scarlet]Você tem alterações não salvas![]\nTem certeza que quer sair?
text.editor.resizemap=Redimensionar Mapa
text.editor.mapname=Nome do Mapa:
text.editor.overwrite=[accent]Aviso!\nIsso sobrescreve um mapa existente.
text.editor.overwrite=[accent]Aviso!\nIsso Subistitui um mapa existente.
text.editor.selectmap=Selecione uma mapa para carregar:
text.width=Largura:
text.height=Altura:
@@ -66,12 +64,9 @@ text.settings.controls=Controles
text.settings.game=Jogo
text.settings.sound=Som
text.settings.graphics=Gráficos
text.upgrades=Melhorias
text.purchased=[LIME]Comprado!
text.weapons=Arsenal
text.paused=Pausado
text.error.title=[crimson]Um erro ocorreu
text.error.crashtitle=Um erro ocorreu.
text.error.title=[crimson]Ocorreu um Erro.
text.error.crashtitle=Ocorreu um Erro
text.blocks.blockinfo=Informação do Bloco
text.blocks.powercapacity=Capacidade de Energia
text.blocks.powershot=Energia/tiro
@@ -92,7 +87,7 @@ setting.difficulty.hard=Difícil
setting.difficulty.name=Dificuldade
setting.screenshake.name=Balanço da Tela
setting.indicators.name=Indicadores de Inimigos
setting.effects.name=Particulas
setting.effects.name=Efeitos
setting.sensitivity.name=Sensibilidade do Controle
setting.fps.name=Mostrar FPS
setting.vsync.name=VSync
@@ -102,19 +97,6 @@ setting.musicvol.name=Volume da Música
setting.mutemusic.name=Desligar Musica
setting.sfxvol.name=Volume de Efeitos
setting.mutesound.name=Desligar Som
map.maze.name=maze
map.fortress.name=fortress
map.sinkhole.name=sinkhole
map.caves.name=caves
map.volcano.name=volcano
map.caldera.name=caldera
map.scorch.name=scorch
map.desert.name=desert
map.island.name=island
map.grassland.name=grassland
map.tundra.name=tundra
map.spiral.name=spiral
map.tutorial.name=tutorial
keybind.move_x.name=move_x
keybind.move_y.name=move_y
keybind.select.name=selecionar
@@ -124,7 +106,6 @@ keybind.zoom.name=zoom
keybind.menu.name=menu
keybind.pause.name=pausar
keybind.dash.name=Correr
keybind.rotate_alt.name=girar_alt*
keybind.rotate.name=girar
mode.waves.name=hordas
mode.sandbox.name=sandbox
@@ -149,310 +130,305 @@ block.liquidjunction.name=Junção de líquido
block.sorter.name=Ordenador
block.sorter.description=[interact]Aperte no bloco para configurar[]
block.smelter.name=Fornalha
text.credits=Credits
text.link.discord.description=the official Mindustry discord chatroom
text.credits=Creditos
text.link.discord.description=O discord oficial do Mindustry
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.dev-builds.description=Desenvolvimentos Instaveis
text.link.trello.description=Trello Oficial para Updates Planejados
text.link.itch.io.description=Pagina da Itch.io com os Downloads
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.link.wiki.description=Wiki oficial do Mindustry
text.linkfail=Falha ao abrir o link\nO Url foi copiado
text.editor.web=A versão web não suporta o editor!\nBaixe o jogo para usar.
text.web.unsupported=A versão web não suporta este recurso! Baixe o jogo para usar.
text.map.delete=Certeza que quer deletar o mapa "[orange]{0}[]"?
text.construction.title=Guia de contrução de blocos
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.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.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.trace=Trace Player
text.trace.playername=Player name: [accent]{0}
text.showagain=Não mostrar na proxima sessão
text.unlocks=Desbloqueados
text.joingame=Entrar no Jogo
text.addplayers=Adicionar/Remover Jogador
text.maps=Mapas
text.maps.none=[LIGHT_GRAY]Nenhum Mapa Encontrado!
text.about.button=Sobre
text.name=Nome:
text.unlocked=Novo bloco Desbloqueado!
text.unlocked.plural=Novos Blocos desbloqueados!
text.players={0} Jogadores Ativos
text.players.single={0} Jogador Ativo
text.server.mismatch=Packet error: Versão do Cliente/Servidor Incompativel.\nTenha certeza Que Host tem\nA ultima versão de Mindustry!
text.server.closing=[accent]Fechando servidor...
text.server.kicked.kick=Voce foi expulso do servidor!
text.server.kicked.fastShoot=Voce esta atirando rapido demais.
text.server.kicked.invalidPassword=Senha Incorreta!
text.server.kicked.clientOutdated=Cliente desatualizado! Atualize seu jogo!
text.server.kicked.serverOutdated=Servidor desatualiado! Peca ao dono para atualizar!
text.server.kicked.banned=Voce foi banido do servidor.
text.server.kicked.recentKick=Voce foi banido recentemente.\nEspere para conectar de novo.
text.server.kicked.nameInUse=Este nome ja esta sendo usado\nneste servidor.
text.server.kicked.nameEmpty=Voce deve ter pelo menos uma letra ou numero.
text.server.kicked.idInUse=Voce ja esta neste servidor! Conectar com duas contas não é permitido.
text.server.kicked.customClient=Este servidor não suporta construções customizadas. Baixe a versão original.
text.host.info=The [accent]Hospedar[]Botão Hopeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall
text.hostserver=Hospedar servidor
text.host=Hospedar
text.hosting=[accent]Abrindo server...
text.hosts.refresh=atualizar
text.hosts.discovering=Descobrindo jogos em lan
text.server.refreshing=Atualizando servidor
text.hosts.none=[lightgray]Nenhum jogo lan encontrado!
text.host.invalid=[scarlet]Não foi possivel Hospedar.
text.trace=Traçar jogador
text.trace.playername=Nome do jogador: [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.trace.android=Cliente Androide: [accent]{0}
text.trace.modclient=Cliente Customizado: [accent]{0}
text.trace.totalblocksbroken=Blocos totais quebrados: [accent]{0}
text.trace.structureblocksbroken=Blocos de estrutura quebrados: [accent]{0}
text.trace.lastblockbroken=Ultimo bloco quebrado: [accent]{0}
text.trace.totalblocksplaced=Blocos totais Colocados: [accent]{0}
text.trace.lastblockplaced=Ultimo bloco colocado: [accent]{0}
text.invalidid=ID do cliente invalido! Reporte o bug.
text.server.bans=Banidos
text.server.bans.none=Nenhum jogador banido encontrado!
text.server.admins=Administradores
text.server.admins.none=Nenhum administrador encontrado!
text.server.add=Adicionar servidor
text.server.delete=Certeza que quer deletar o servidor?
text.server.hostname=Hospedar: {0}
text.server.edit=Editar servidor
text.server.outdated=[crimson]Servidor desatualizado![]
text.server.outdated.client=[crimson]Cliente desatualiado![]
text.server.version=[lightgray]Versão: {0}
text.server.custombuild=[yellow]Construção customizada
text.confirmban=Certeza que quer banir este jogador?
text.confirmunban=Certeza que quer desbanir este jogador?
text.confirmadmin=Certeza que quer fazer este jogador um administrador?
text.confirmunadmin=Certeza que quer remover o estatus de adminstrador deste jogador?
text.joingame.title=Entrar no jogo
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.disconnect=Desconectado.
text.disconnect.data=Falha ao abrir a data do mundo!
text.connecting=[accent]Conectando...
text.connecting.data=[accent]Carregando data do mundo...
text.connectfail=[crimson]Falha ao entrar no servidor: [orange]{0}
text.server.port=Porte:
text.server.addressinuse=Senha em uso!
text.server.invalidport=Numero de port invalido!
text.server.error=[crimson]Erro ao hospedar o servidor: [orange]{0}
text.save.new=Novo Save
text.save.none=Nenhum save encontrado!
text.save.delete.confirm=Certeza que quer deletar este save?
text.save.delete=Deletar
text.save.export=Exportar save
text.save.import.invalid=[orange]Este save é invalido!
text.save.import.fail=[crimson]Falha ao importar save: [orange]{0}
text.save.export.fail=[crimson]Falha ao Exportar save: [orange]{0}
text.save.import=Importar save
text.save.newslot=Nome do save:
text.save.rename=Renomear
text.save.rename.text=Novo jogo:
text.on=Ligado
text.off=Desligado
text.save.autosave=Autosalvar: {0}
text.save.map=Mapa: {0}
text.save.difficulty=Dificuldade: {0}
text.copylink=Copiar 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.changelog.loading=Coletando changelog...
text.changelog.error.android=[orange]Note que a Changelog as vezes Funciona no android 4.4 e abaixo!\nIsso é por causa de um erro interno no sistema android.
text.changelog.error.ios=[orange]A changelog não é suportada no IOS.
text.changelog.error=[scarlet]Erro ao coletar Changelog!\nCheque a Conexão com a internet.
text.changelog.current=[yellow][[Primeira versão]
text.changelog.latest=[orange][[Ultima versão]
text.saving=[accent]Salvando...
text.unknown=Desconhecido
text.custom=Customizado
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.map.delete.confirm=Certeza que quer deletar este mapa? Isto não pode ser desfeito!
text.map.random=[accent]Mapa aleatório
text.map.nospawn=Esse mapa não contém um [yellow]core[] para o jogador Nascer! [ROYAL]blue[] Coloque um [yellow]core[] no editor de mapa.
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.editor.openin=Abrir no Editor
text.editor.oregen=Geração de minério
text.editor.oregen.info=Geração de minério:
text.editor.mapinfo=Informação do mapa
text.editor.author=Autor:
text.editor.description=Descrição:
text.editor.name=Nome:
text.editor.teams=Time
text.editor.elevation=Elevação
text.editor.saved=Salvo!
text.editor.save.noname=Seu mapa não tem um nome! Coloque um no menu de "Informação do mapa"
text.editor.save.overwrite=O seu mapa Substitui um mapa já construído! Coloque um nome diferente no menu "Informação do mapa"
text.editor.import.exists=[scarlet]Não foi possivel importar:[] Um mapa Construído chamado '{0}' Já existe!
text.editor.import=Importando...
text.editor.importmap=Importar Mapa
text.editor.importmap.description=Importar um mapa existente
text.editor.importfile=Importar arquivo
text.editor.importfile.description=Importar um arquivo externo
text.editor.importimage=Importar imagem do terreno
text.editor.importimage.description=Importar uma imagem de terreno externa
text.editor.export=Exportando...
text.editor.exportfile=Exportar arquivo
text.editor.exportfile.description=Exportar um arquivo de mapa
text.editor.exportimage=Exportar imagem de terreno
text.editor.exportimage.description=Exportar um arquivo de imagem de mapa
text.editor.overwrite.confirm=[scarlet]Aviso![] Um mapa com esse nome existe. Tem certeza que deseja substituir?
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.language.restart=Por favor Reinicie seu jogo para a tradução tomar efeito.
text.settings.language=Linguagem
text.settings.rebind=Religar
text.yes=Sim
text.no=Não
text.info.title=[accent]Informação
text.blocks.targetsair=Mirar no ar
text.blocks.itemspeed=Unidades mobilizadas
text.blocks.shootrange=Alcance
text.blocks.poweruse=Uso de energia
text.blocks.inputitemcapacity=Configurar capacidade de itens
text.blocks.outputitemcapacity=Configurar capacidade de itens
text.blocks.maxpowergeneration=Geração maxima de energia
text.blocks.powertransferspeed=Transferência de energia
text.blocks.craftspeed=Velocidade de produção
text.blocks.inputliquidaux=Líquido auxiliar
text.blocks.inputitems=Itens de entrada
text.blocks.outputitem=Itens de saida
text.blocks.drilltier=Furaveis
text.blocks.drillspeed=Velocidade da furadeira base
text.blocks.liquidoutput=Saida de liquido
text.blocks.liquiduse=Uso de liquido
text.blocks.coolant=Esfriador
text.blocks.coolantuse=Uso do esfriador
text.blocks.inputliquidfuel=Liquido de combustivel
text.blocks.liquidfueluse=Uso do liquido de combustivel
text.blocks.reload=Recarregar
text.blocks.inputfuel=Combustivel
text.blocks.fuelburntime=Tempo de queima de combustivel
text.blocks.inputcapacity=Capacidade de entrada
text.blocks.outputcapacity=Capacidade de saída
text.unit.blocks=blocos
text.unit.powersecond=Unidades de energia/segundo
text.unit.liquidsecond=Unidades de líquido/segundo
text.unit.itemssecond=itens/segundo
text.unit.pixelssecond=pixeis/segundo
text.unit.liquidunits=Unidades de liquido
text.unit.powerunits=Unidades de energia
text.unit.degrees=Graus
text.unit.seconds=segundos
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
text.unit.items=itens
text.category.general=Geral
text.category.power=Poder
text.category.liquids=Liquidos
text.category.items=Itens
text.category.crafting=Construindo
text.category.shooting=Atirando
setting.difficulty.insane=insano
setting.difficulty.purge=purge
setting.saveinterval.name=Autosave Interval
setting.seconds={0} Seconds
setting.fullscreen.name=Fullscreen
setting.saveinterval.name=Intervalo de autosalvamento
setting.seconds={0} Segundos
setting.fullscreen.name=Tela Cheia
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
setting.minimap.name=Mostrar minimapa
text.keybind.title=Refazer teclas
keybind.shoot.name=Atirar
keybind.chat.name=Conversa
keybind.player_list.name=Lista_de_jogadores
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.
mode.text.help.title=Descrição dos modos
mode.waves.description=O modo normal. Recursos limitados E os ataques vem automaticamente.
mode.sandbox.description=Recursos infinitos E sem tempo para Ataques.
mode.freebuild.description=recursos limitados e Sem tempo para Ataques.
content.item.name=Itens
content.liquid.name=Liquidos
content.unit-type.name=Unidades
content.recipe.name=Blocos
item.stone.description=Um Material Incomum Cru. Usado para separar e refinar Em outros materiais,Ou Derreter em Lava.
item.tungsten.name=Tungstenio
item.tungsten.description=Comum, Mas muito util Material de estrutura. Usado em blocos anti-Aquecimento e blocos com geradores E ferrarias.
item.lead.name=Chumbo
item.lead.description=Material de comeco basico. usado intensivamente em Blocos de transporte de liquidos e eletronicos.
item.coal.description=Combustivel pronto.
item.carbide.name=Carboneto
item.carbide.description=Uma aliança dura feita com Tugstenio e Carbono. Usado em blocos de transportação avançados E brocas de alto nivel.
item.titanium.description=Um Material raro super leve, metal usado intensivamente na transportação de líquidos, Brocas e Aeronaves.
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.silicon.name=Sílicio
item.silcion.description=Condutor extremamente importante,Com aplicação em paneis solares e dispositivos complexos.
item.plastanium.name=Plastanio
item.plastanium.description=Leve, Material dutil Usado em aeronaves Avançadas E munição de fragmentação.
item.phase-matter.name=Materia fase
item.surge-alloy.name=Liga de surto
item.biomatter.name=Biomateria
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
item.sand.name=Areia
item.sand.description=Um material comum Que é usado intensivamente em derretimento, Tanto em ligas como fluxo.
item.blast-compound.name=Composto de explosão
item.blast-compound.description=Um composto volatil usado em bombas em bombas em explosivos. Enquanto pode ser queimado como combustivel, Isso não é recomendado.
item.pyratite.name=piratita
item.pyratite.description=Substancia extremamente inflamavel usado em armas incendiarias.
liquid.cryofluid.name=Crio Fluido
text.item.explosiveness=[LIGHT_GRAY]Explosividade: {0}
text.item.flammability=[LIGHT_GRAY]Inflamabilidade: {0}
text.item.radioactivity=[LIGHT_GRAY]RadioAtividade: {0}
text.item.fluxiness=[LIGHT_GRAY]Poder do fluxo: {0}
text.item.hardness=[LIGHT_GRAY]Dureza: {0}
text.liquid.heatcapacity=[LIGHT_GRAY]Capacidade de aquecimento: {0}
text.liquid.viscosity=[LIGHT_GRAY]Viscosidade: {0}
text.liquid.temperature=[LIGHT_GRAY]Temperatura: {0}
block.tungsten-wall.name=Parede de tugstenio
block.tungsten-wall-large.name=Parede larga de Tugstenio
block.carbide-wall.name=Parede de carboneto
block.carbide-wall-large.name=Parede de Carboneto
block.thorium-wall.name=Parede de tório
block.thorium-wall-large.name=Parede larga de tório
block.duo.name=Duplo
block.scorch.name=Quimar
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.titanium-conveyor.name=Esteira de Titanio
block.splitter.name=Divisor
block.splitter.description=Manda os itens em duas direções diferentes imediatamente quando chegam.
block.distributor.name=Distribuidor
block.distributor.description=Um divisor que pode dividir itens em 8.
block.overflow-gate.name=Portão Sobrecarregado
block.overflow-gate.description=Uma combinação de roteador e divisor Que apenas manda para a esquerda e Direita se a frente estiver bloqueada.
block.bridgeconveyor.name=Esteira de ponte
block.bridgeconveyor.description=Uma esteira que pode ir acima de outros blocos, No total de 2 blocos.
block.arc-smelter.name=Fundidora Arc
block.silicon-smelter.name=Fundidora de silicio
block.phase-weaver.name=Palheta de fase
block.pulverizer.name=Pulverizador
block.cryofluidmixer.name=Misturador de Crio Fluido
block.melter.name=Aparelho de fusão
block.incinerator.name=Incinerador
block.biomattercompressor.name=Compressor de bio-matéria
block.separator.name=Separador
block.centrifuge.name=Centrifuga
block.power-node.name=Célula de energia
block.power-node-large.name=Célula de energia Grande
block.battery.name=Bateria
block.battery-large.name=Bateria Grande
block.combustion-generator.name=Gerador de combustão
block.turbine-generator.name=Gerador de Turbina
block.tungsten-drill.name=Broca de Tungstenio
block.carbide-drill.name=Broca de Carboneto
block.laser-drill.name=Broca a Laser
block.water-extractor.name=Extrator de Agua
block.cultivator.name=Cultivador
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.delta-mech-factory.name=Fabrica de Mecha Delta
block.repairpoint.name=Ponto de Reparo
block.resupplypoint.name=Ponto de Reabesticento
block.liquidtank.name=Tanque de líquido
block.bridgeconduit.name=Conduto Ponte
block.mechanical-pump.name=Bomba Mecanica
block.itemsource.name=Item Source
block.itemvoid.name=Item Void
block.liquidsource.name=Liquid Source
@@ -460,44 +436,83 @@ block.powervoid.name=Power Void
block.powerinfinite.name=Power Infinite
block.unloader.name=Unloader
block.sortedunloader.name=Sorted Unloader
block.vault.name=Vault
block.vault.name=Cofre
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.phase-conveyor.name=Esteira de Fases
block.bridge-conveyor.name=Esteira-Ponte
block.plastanium-compressor.name=Compressor de Plastanio
block.pyratite-mixer.name=Misturador de Piratita
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.
text.customgame=Custom Game
text.campaign=Campaign
text.sectors=Sectors
text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
block.solidifer.name=Solidificador
block.solar-panel.name=Painel Solar
block.solar-panel-large.name=Painel Solar Grande
block.oil-extractor.name=Extrator de Oleo
block.javelin-ship-factory.name=Fabrica de Nave Javelin
block.repair-point.name=Ponto de Reparo
block.resupply-point.name=Ponto de Reabastecimento
block.pulse-conduit.name=Conduto de Pulso
block.phase-conduit.name=Conduto de Fase
block.liquid-router.name=Roteador de Líquido
block.liquid-tank.name=Tanque de Líquido
block.liquid-junction.name=Junção de Líquido
block.bridge-conduit.name=Conduto-Ponte
block.rotary-pump.name=Bomba Rotatoria
block.nuclear-reactor.name=Reator Nuclear
text.save.old=Este save é para uma versão antiga do jogo, E não pode ser usado.\n\n[LIGHT_GRAY]Salvar Versões antigas vai ser Implementado Na versão 4.0 completa
text.customgame=Jogo Customizado
text.campaign=Campanha
text.sectors=Setores
text.sector=Setor Selecionado: [LIGHT_GRAY]{0}
text.sector.time=Tempo: [LIGHT_GRAY]{0}
text.sector.deploy=Soltar
text.sector.resume=Voltar
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.close=Fechar
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=Esse setor foi perdido! Soltar Novamente?
text.sector.retry=Tentar novamente?
text.wave.lasted=Você sobreviveu até a onda [accent]{0}[].
setting.fpscap.name=FPS Maximo
setting.fpscap.none=Nenhum
setting.fpscap.text={0} FPS
block.command-center.name=Centro De Comando
text.mission=Missão:[LIGHT_GRAY] {0}
text.mission.wave=Sobrevive [accent]{0}[] Onda.
text.mission.battle=Destrua a base inimiga.
text.none=<none>
text.sector.corrupted=[orange]Um arquivo de save Foi encontrado neste setor, Mas o login falhou.\nUm novo foi criado.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
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.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,6 +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=Создатель [ROYAL] Anuken. - [SKY]anukendev@gmail.com[]\n\nЕсть недороботки в переводе?\nПишите в офф. discord-сервер mindustry в канал #русский.
text.credits=Авторы
text.discord=Присоединяйтесь к нашему Discord чату!
text.discord=Присоединяйтесь к нашему Discord!
text.link.discord.description=официальный discord-сервер Mindustry
text.link.github.description=Исходный код игры
text.link.dev-builds.description=Нестабильные разработки
@@ -10,23 +10,54 @@ text.link.google-play.description=Google Play список магазинов
text.link.wiki.description=официальная вики Mindustry
text.linkfail=Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена.
text.editor.web=Веб-версия не поддерживает редактор!\nЗагрузите игру, чтобы использовать ее.
text.multiplayer.web=Эта версия игры не поддерживает многопользовательскую игру! \n Чтобы играть в мультиплеер из своего браузера, используйте ссылку «Многопользовательская веб-версия» на странице itch.io.
text.web.unsupported=Веб-версия не поддерживает эту функцию! Загрузите игру, чтобы использовать её.
text.gameover=Ядро было уничтожено.
text.sector.gameover=Этот сектор потерян. Разблокировать повторно?
text.sector.retry=Повторить попытку
text.highscore=[YELLOW]Новый рекорд!
text.lasted=Вы продержались до волны
text.wave.lasted=Вы продержались до волны [accent]{0}[].
text.level.highscore=Рекорд: [accent]{0}
text.level.delete.title=Подтвердите удаление
text.map.delete=Вы действительно хотите удалить карту "[orange]{0}[]"?
text.level.select=Выбор уровня
text.level.mode=Режим игры:
text.construction.title=Руководство по строительству блоков
text.construction=Вы только что выбрали режим строительства [accent]блоков[].\n\nЧтобы начать размещение, просто коснитесь действительного местоположения рядом с вашим кораблем.\nПосле того, как вы выбрали несколько блоков, установите флажок, чтобы подтвердить, и ваш корабль начнет их строить.\n\n- [accent]Удалите блоки [] из вашего выбора, нажав на них.n- [accent]Shift выделение [], удерживая и перетаскивая любой блок в выборе.\n- [accent]Поместите блоки в линию [], нажимая и удерживая пустое место, а затем перетаскивая его в направлении.\n- [accent]Отмените строительство или выбор [], нажав X в левом нижнем углу.
text.deconstruction.title=Руководство по разрушении блоков
text.deconstruction=Вы только что выбрали режим удаления[accent] блока.[].\n\nЧтобы начать ломать, просто нажмите на блок рядом с вашим кораблем.\nПосле того как вы выбрали некоторые блоки, установите флажок, чтобы подтвердить, и ваш корабль начнет их деконструкцию.\n\n- [accent]Удалите блоки [] из вашего выбора, нажав на них.\n- [accent]Удалите блоки в области [], нажав и удерживая пустое место, а затем перетащив его в направлении.\n- [accent]Отмените деконструкцию или выбор [], нажав X в левом нижнем углу.
text.showagain=Не показывать снова до следующей сессии
text.unlocks=Разблокированные
text.savegame=Сохранить игру
text.loadgame=Загрузить игру
text.joingame=Присоединиться
text.addplayers=Доб/удалить игроков
text.customgame=Пользовательская игра
text.campaign=Кампания
text.sectors=Секторы
text.sector=Выбранный сектор: [LIGHT_GRAY]{0}
text.sector.time=Время: [LIGHT_GRAY]{0}
text.sector.deploy=Высадиться
text.sector.resume=Продолжить
text.sector.locked=[scarlet][[Не завершено]
text.sector.unexplored=[accent][[Не изучено]
text.mission=Миссия:[LIGHT_GRAY] {0}
text.mission.complete=Миссия выполнена!
text.mission.complete.body=Сектор {0},{1} был завоёван.
text.mission.wave=Пережено следующее количество волн:[accent]{0}[].
text.mission.battle=Уничтожьте базу противника.
text.mission.resource=Приобретено {0} x{1}
text.none=<ничего>
text.close=Закрыть
text.quit=Выход
text.maps=Карты
text.maps.none=[LIGHT_GRAY]Карты не найдены!
text.about.button=Об игре
text.name=Название:
text.name=Ник:
text.unlocked=Новый блок разблокирован!
text.unlocked.plural=Новые блоки разблокированы!
text.players=Игроков на сервере: {0}
text.players.single={0} игрок на сервере
text.server.mismatch=Ошибка пакета: возможное несоответствие версии клиента / сервера. Убедитесь, что у вас и у создателя сервера установлена последняя версия Mindustry!
text.server.mismatch=Ошибка пакета: возможное несоответствие версии клиента/сервера. Убедитесь, что у вас и у создателя сервера установлена последняя версия Mindustry!
text.server.closing=[accent]Закрытие сервера...
text.server.kicked.kick=Вас выгнали с сервера!
text.server.kicked.fastShoot=Вы стреляете слишком быстро.
@@ -35,8 +66,12 @@ text.server.kicked.clientOutdated=Устаревший клиент! Обнов
text.server.kicked.serverOutdated=Устаревший сервер! Попросите хост обновить!
text.server.kicked.banned=Вы заблокированы на этом сервере.
text.server.kicked.recentKick=Вы недавно были кикнуты.\n Подождите немного перед следующим подключением
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.kicked.nameInUse=На этом сервере есть кто-то с этим именем.
text.server.kicked.nameEmpty=Ваше имя должно содержать хотя бы один символ или цифру.
text.server.kicked.idInUse=Вы уже на этом сервере! Соединение с двумя учетными записями не разрешено.
text.server.kicked.customClient=Этот сервер не поддерживает пользовательские сборки. Загрузите официальную версию.
text.host.info=Кнопка [accent] Сервер [] размещает сервер на порт [accent]6567[].[]\nЛюбой пользователь в той же [LIGHT_GRAY]сети или локальной сети [] должен иметь возможность видеть ваш сервер в своём списке серверов.\n\nЕсли вы хотите, чтобы люди могли подключаться из любого места по IP, то требуется переадресация(проброс) портов.[].\n\n[LIGHT_GRAY] Примечание. Если у кого-то возникают проблемы с подключением к вашей локальной сети, убедитесь, что вы разрешили Mindustry доступ к вашей локальной сети в настройках брандмауэра.
text.join.info=Здесь вы можете ввести IP-адрес [accent]сервера[] для подключения или открыть [accent]локальную сеть [] для подключения к серверам.\nПоддерживается многопользовательский режим LAN и WAN.\n\n[LIGHT_GRAY] Примечание: это не является автоматическим глобальным списком серверов; если вы хотите подключиться к кому-то по IP, вам нужно будет спросить хост о его IP-адресе.
text.hostserver=Запустить сервер
text.host=Сервер
text.hosting=[accent]Открытие сервера...
@@ -52,6 +87,7 @@ text.trace.id=Уникальный идентификатор: [accent]{0}
text.trace.android=Клиент Android: [accent]{0}
text.trace.modclient=Пользовательский клиент: [accent]{0}
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}
@@ -83,6 +119,7 @@ text.server.port=Порт:
text.server.addressinuse=Адрес уже используется!
text.server.invalidport=Неверный номер порта!
text.server.error=[crimson]Ошибка создания сервера: [orange] {0}
text.save.old=Это сохранение для более старой версии игры и больше не может использоваться.\n\n[LIGHT_GRAY]Сохранение обратной совместимости будет реализовано в полной версии 4.0.
text.save.new=Новое сохранение
text.save.overwrite=Вы уверены,что хотите перезаписать этот слот для сохранения?
text.overwrite=Перезаписать
@@ -91,7 +128,7 @@ text.saveload=[accent]Сохранение...
text.savefail=Не удалось сохранить игру!
text.save.delete.confirm=Вы уверены,что хотите удалить это сохранение?
text.save.delete=Удалить
text.save.export=Отправить сохранение
text.save.export=Экспортировать сохранение
text.save.import.invalid=[orange]Это сохранение недействительно!
text.save.import.fail=[crimson]Не удалось импортировать сохранение: [orange] {0}
text.save.export.fail=[crimson]Не удалось отправить сохранение: [orange] {0}
@@ -101,7 +138,8 @@ text.save.rename=Переименовывать
text.save.rename.text=Новое название:
text.selectslot=Выберите сохранение.
text.slot=[accent]Слот {0}
text.save.corrupted=[orange]Файл сохранения поврежден или имеет недействительный формат!
text.save.corrupted=[orange]Сохранённый файл повреждён или имеет недействительный формат!\nЕсли вы только что обновили свою игру, это, вероятно, изменение формата сохранения[scarlet], а не []ошибка.
text.sector.corrupted=[orange] Файл сохранения для этого сектора был найден, но загрузка не удалась.\nСоздан новый.
text.empty=<Пусто>
text.on=Вкл
text.off=Выкл
@@ -110,6 +148,7 @@ text.save.map=Карта: {0}
text.save.wave=Волна: {0}
text.save.difficulty=Сложность: {0}
text.save.date=Последнее сохранение: {0}
text.save.playtime=Время в игре: {0}
text.confirm=Подтвердить
text.delete=Удалить
text.ok=ОК
@@ -127,6 +166,7 @@ text.changelog.error=[scarlet]Ошибка при получении измен
text.changelog.current=[yellow][[Текущая версия]
text.changelog.latest=[orange][[Последняя версия]
text.loading=[accent] Загрузка...
text.saving=[accent]Сохранение..
text.wave=[orange]Волна {0}
text.wave.waiting=Волна через {0}
text.waiting=Ожидание...
@@ -134,6 +174,23 @@ text.enemies={0} Противников
text.enemies.single={0} Противник
text.loadimage=Загрузить изображение
text.saveimage=Сохранить изображение
text.unknown=Неизвестный
text.custom=Клиентский
text.builtin=Встроенный
text.map.delete.confirm=Вы действительно хотите удалить эту карту? Это действие не может быть отменено!
text.map.random=[accent]Случайная карта
text.map.nospawn=Эта карта не имеет ядер, в которых игрок может появиться! Добавьте [ROYAL]blue[] ядро в эту карте в редакторе карт.
text.editor.brush=Кисть
text.editor.slope=\\
text.editor.openin=Открыть в редакторе
text.editor.oregen=Генерация Руд
text.editor.oregen.info=Генерация Руд:
text.editor.mapinfo=Информация о карте
text.editor.author=Автор:
text.editor.description=Описание:
text.editor.name=Ник:
text.editor.teams=Команды
text.editor.elevation=возвышение
text.editor.badsize=[orange]Недопустимый формат изображения! [] \nДопустимый формат карты: {0}
text.editor.errorimageload=Ошибка загрузки изображения: [orange] {0}
text.editor.errorimagesave=Ошибка сохранения изображения: [orange] {0}
@@ -141,12 +198,29 @@ text.editor.generate=Создать
text.editor.resize=Изменить \nразмер
text.editor.loadmap=Загрузить\nкарту
text.editor.savemap=Сохранить\nкарту
text.editor.saved=Сохранено!
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.importfile=Импорт файла
text.editor.importfile.description=Импортировать внешний файл карты
text.editor.importimage=Импортировать изображение ландшафта
text.editor.importimage.description=Импорт внешнего файла изображения карты
text.editor.export=Экспорт...
text.editor.exportfile=Экспортировать файл
text.editor.exportfile.description=Экспорт файла карты
text.editor.exportimage=Экспортировать изображение ландшафта
text.editor.exportimage.description=Экспортировать файл изображения карты
text.editor.loadimage=Загрузить \nизображение
text.editor.saveimage=Сохранить \nизображение
text.editor.unsaved=[scarlet]У вас есть не сохраненные изменения![] \nВы уверены,что хотите выйти?
text.editor.unsaved=[scarlet]У вас есть несохраненные изменения![] \nВы уверены,что хотите выйти?
text.editor.resizemap=Изменить размер карты
text.editor.mapname=Название карты:
text.editor.overwrite=[accent]Внимание! \nЭто перезапишет уже существующую карту.
text.editor.overwrite.confirm=[scarlet]Осторожно![] Карта с таким названием уже существует. Вы действительно хотите её перезаписать?
text.editor.selectmap=Выберите карту для загрузки:
text.width=Ширина:
text.height=Высота:
@@ -154,6 +228,9 @@ text.menu=Меню
text.play=Играть
text.load=Загрузить
text.save=Сохранить
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=Пинг: {0} мс
text.language.restart=Перезагрузите игру, чтобы настройки языка вступили в силу.
text.settings.language=Язык
text.settings=Настройки
@@ -162,39 +239,82 @@ 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.weapons=Оружие
text.paused=Пауза
text.yes=Да
text.no=Нет
text.info.title=[accent]Информация
text.error.title=[crimson]Произошла ошибка
text.error.crashtitle=Произошла ошибка
text.blocks.blockinfo=Информация о блоке
text.blocks.powercapacity=Вместимость энергии
text.blocks.powershot=Энергия / выстрел
text.blocks.powershot=Энергия/выстрел
text.blocks.targetsair=Атакует воздуш. юнитов?
text.blocks.itemspeed=Перемещение единиц
text.blocks.shootrange=Радиус действия
text.blocks.size=Размер
text.blocks.liquidcapacity=Вместимость жидкости
text.blocks.maxitemssecond=Макс. Количество предметов / в секунду
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.inputitem=Прием предмета
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.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.fpscap.name=Макс. FPS
setting.fpscap.none=Ничто
setting.fpscap.text={0} FPS
setting.difficulty.easy=легко
setting.difficulty.normal=нормально
setting.difficulty.hard=тяжело
setting.difficulty.insane=нереально
setting.difficulty.insane=безумно
setting.difficulty.purge=зачистка
setting.difficulty.name=Сложность
setting.difficulty.name=Сложность:
setting.screenshake.name=Дрожание экрана
setting.indicators.name=Индикаторы противников
setting.effects.name=Эффекты на экране
@@ -207,297 +327,196 @@ setting.fps.name=Показать FPS
setting.vsync.name=Верт. синхронизация
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.desert.name=пустыня
map.island.name=остров
map.grassland.name=луг
map.tundra.name=тундра
map.spiral.name=спираль
map.tutorial.name=обучение
text.keybind.title=Переназначить клавиши
keybind.move_x.name=движение_x
keybind.move_y.name=движение_y
keybind.move_x.name=Движение x
keybind.move_y.name=Движение y
keybind.select.name=выбрать
keybind.break.name=Разрушить
keybind.shoot.name=стрельба
keybind.zoom_hold.name=удержание_зума
keybind.shoot.name=Выстрел
keybind.zoom_hold.name=Удержание зума
keybind.zoom.name=Приблизить
keybind.block_info.name=инфо_о_блоке
keybind.menu.name=Меню
keybind.pause.name=Пауза
keybind.dash.name=Рывок
keybind.chat.name=Чат
keybind.player_list.name=список_игроков
keybind.console.name=консоль
keybind.rotate_alt.name=вращать_alt
keybind.rotate.name=вращать
keybind.player_list.name=Список игроков
keybind.console.name=Консоль
keybind.rotate.name=Вращать
mode.text.help.title=Описание режимов
mode.waves.name=волны
mode.waves.description=в нормальном режиме. ограниченные ресурсы и автоматические наступающие волны.
mode.sandbox.name=песочница
mode.sandbox.description=бесконечные ресурсы и нет таймера для волн.
mode.sandbox.warning=Обратите внимание, что блоки нельзя использовать в режиме песочницы, пока они не будут разблокированы в других режимах.\n\n[LIGHT_GRAY] Если вы не разблокировали какие-либо блоки, ни один из них не появится.
mode.freebuild.name=свободная\nстройка
mode.freebuild.description=ограниченные ресурсы и нет таймера для волн.
item.stone.name=камень
content.item.name=Предметы
content.liquid.name=Жидкости
content.unit-type.name=Боевые единицы
content.recipe.name=Блоки
item.stone.name=Камень
item.stone.description=Обычное сырье. Используется для разделения и переработки в другие материалы или плавления в лаву.
item.tungsten.name=Вольфрам
item.tungsten.description=Обычный, но очень полезный строительный материал . Используется в бурах и теплостойких блоках, таких как генераторы и плавильные печи.
item.lead.name=Свинец
item.lead.description=Основной начальный материал. Широко используется в блоках электроники и транспортировки жидкости.
item.coal.name=Уголь
item.titanium.name=титан
item.thorium.name=уран
item.sand.name=песок
item.coal.description=Распростанённое и легкодоступное топливо.
item.carbide.name=Карбид
item.carbide.description=Жёсткий сплав, изготовленный из вольфрама и угля. Используется в передовых транспортных блоках и высокоуровневых бурах.
item.titanium.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.lava.name=лава
liquid.lava.name=Лава
liquid.oil.name=Нефть
block.door.name=дверь
block.door-large.name=большая дверь
block.conduit.name=трубопровод
block.pulseconduit.name=импульсный трубопровод
block.liquidrouter.name=Маршрутизатор житкостей
block.conveyor.name=конвейер
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.unit.health=[LIGHT_GRAY]Здоровье: {0}
text.unit.speed=[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-large.name=Большая дверь
block.duo.name=Двойная
block.scorch.name=Обжигатель
block.hail.name=Град
block.lancer.name=Копейщик
block.conveyor.name=Конвейер
block.titanium-conveyor.name=Титановый конвейер
block.junction.name=Перекрёсток
block.splitter.name=Разветвитель
block.splitter.description=Выводит предметы на два противоположных направления сразу после их получения.
block.router.name=Маршрутизатор
block.junction.name=Перекресток
block.liquidjunction.name=Перекресток для жидкостей
block.sorter.name=сортировщик
block.router.description=Распределяет предметы во все 4 направления. Может хранить элементы как буфера.
block.distributor.name=Распределитель
block.distributor.description=Разветвитель, который может распределять предметы на 8 направлений.
block.sorter.name=Сортировщик
block.sorter.description=Сортирует предметы. Если предмет соответствует выбранному, то ему можно пройти. В противном случае элемент выводится слева и справа.
block.overflow-gate.name=Избыточный затвор
block.overflow-gate.description=Комбинированный разветвитель и маршрутизатор, который выводится только слева и справа, если передний путь заблокирован.
block.bridgeconveyor.name=Мостовой конвейер
block.bridgeconveyor.description=Конвейер, который может переходить через другие блоки, до двух блоков в сумме.
block.smelter.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.
text.customgame=Custom Game
text.campaign=Campaign
text.sectors=Sectors
text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
block.arc-smelter.name=Дуговая печь
block.silicon-smelter.name=Кремниевый плавильный завод
block.phase-weaver.name=Фазовый ткач
block.pulverizer.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.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=Хранилище
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.drone-pad.name=Стартовая площадка дронов
block.fabricator-pad.name=Стартовая площадка сборщиков
block.interceptor-pad.name=Стартовая площадка истребителей-перехватчиков
block.monsoon-pad.name=Стартовая площадка муссонов
block.javelin-ship-factory.name=Фабрика кораблей класса "Копьё"
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=Ядерный реактор
block.command-center.name=Командный центр
block.mass-driver.name=Электромагнитная катапульта
block.blast-drill.name=Буровая установка
block.thermal-pump.name=Тепловой насос
block.dagger-pad.name=Стартовая площадка "Кинжал"
block.titan-pad.name=Стартовая площадка титанов
block.thermal-generator.name=Термальный генератор
unit.drone.name=Дрон
unit.drone.description=Начальный дрон. По умолчанию появляется из ядра. Автоматически добывает руды, собирает предметы, ремонтирует блоки.
unit.fabricator.name=Сборщик
unit.fabricator.description=Продвинутый дрон. Автоматически добывает руды, собирает предметы, ремонтирует блоки. Значительнее эффективней нежели обычный дрон
unit.scout.name=Разведчик
unit.scout.description=Основная наземная боевая единица. Использует свинец как боеприпасы.
unit.titan.name=Титан
unit.titan.description=Улучшенная бронированная наземная боевая единица. Использует карбид в качестве боеприпасов. Атакует наземные и воздушные цели.
unit.monsoon.name=Муссон
unit.monsoon.description=Тяжелый ковровый бомбардировщик. Использует взрывоопасное соединение или пиратит в качестве боеприпасов.
unit.interceptor.name=Истребитель-перехватчик
unit.interceptor.description=Быстрая и ударная боевая единица, которая использует набег с отскоком. Использует свинец как боеприпасы.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,4 +1,3 @@
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.link.discord.description=Resmi Mindustry Discord iletişim kanalı
@@ -10,10 +9,8 @@ text.link.google-play.description=Google Play mağaza sayfası
text.link.wiki.description=Resmi Mindustry Wikipedi'si
text.linkfail=Bağlantıı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.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.select=Seviye Seç
@@ -165,9 +162,6 @@ text.settings.controls=kontroller
text.settings.game=Oyun
text.settings.sound=Ses
text.settings.graphics=Grafik
text.upgrades=Geliştirmeler
text.purchased=[KİREÇ] Yap၊ld၊
text.weapons=Silahlar
text.paused=Duraklatıldı
text.info.title=[Vurgu] Bilgi
text.error.title=[crimson] Bir hata oluştu
@@ -210,19 +204,6 @@ setting.musicvol.name=Müzik sesi
setting.mutemusic.name=Müziği Kapat
setting.sfxvol.name=SFX Hacmi
setting.mutesound.name=Sesi kapat
map.maze.name=Labirent
map.fortress.name=Kale
map.sinkhole.name=düden
map.caves.name=mağaralar
map.volcano.name=volkan
map.caldera.name=kaldera
map.scorch.name=alazlamak
map.desert.name=çöl
map.island.name=ada
map.grassland.name=Çayır
map.tundra.name=tundra
map.spiral.name=sarmal
map.tutorial.name=Eğitim
text.keybind.title=Tuşları yeniden ayarla
keybind.move_x.name=sağ / sol
keybind.move_y.name=yukarı / aşağı
@@ -231,14 +212,12 @@ keybind.break.name=kırmak
keybind.shoot.name=ateş etme
keybind.zoom_hold.name=tut ve büyüt
keybind.zoom.name=Yakınlaştır
keybind.block_info.name=blok bilgisi
keybind.menu.name=menü
keybind.pause.name=duraklatma
keybind.dash.name=tire
keybind.chat.name=Sohbet
keybind.player_list.name=oyuncu listesi
keybind.console.name=KONTROL MASASI
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Döndür
mode.text.help.title=Modların açıklaması
mode.waves.name=dalgalar
@@ -266,7 +245,6 @@ block.liquidjunction.name=sıvı bağlantı
block.sorter.name=ayrıştırıcı
block.smelter.name=dökümcü
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.
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,8 +1,6 @@
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.gameover=Ядро було зруйновано.
text.highscore=[YELLOW] Новий рекорд!
text.lasted=Ви тримались до хвилі
text.level.highscore=Рекорд: [accent] {0}
text.level.delete.title=Підтвердьте видалення
text.level.select=Вибір рівня
@@ -118,9 +116,6 @@ text.settings.controls=Елементи управління
text.settings.game=Гра
text.settings.sound=Звук
text.settings.graphics=Графіка
text.upgrades=Оновлення
text.purchased=[LIME] Створено!
text.weapons=Зброя
text.paused=Пауза
text.info.title=[accent] інформація
text.error.title=[crimson] Виникла помилка
@@ -163,19 +158,6 @@ 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.desert.name=Пустеля
map.island.name=Острів
map.grassland.name=Пасовища
map.tundra.name=Тундра
map.spiral.name=Спіраль
map.tutorial.name=Навчання
text.keybind.title=Ключ перемотки
keybind.move_x.name=move_x
keybind.move_y.name=move_y
@@ -184,14 +166,12 @@ keybind.break.name={0}break{/0}{1}; {/1}
keybind.shoot.name=Постріл
keybind.zoom_hold.name=zoom_hold
keybind.zoom.name=Збільшити
keybind.block_info.name=Інформація про блок
keybind.menu.name=Меню
keybind.pause.name=Пауза
keybind.dash.name=Тире
keybind.chat.name=Чат
keybind.player_list.name=Список гравців
keybind.console.name=// Консоль 1
keybind.rotate_alt.name=rotate_alt
keybind.rotate.name=Повернути
mode.waves.name=Хвилі
mode.sandbox.name=Пісочниця
@@ -226,8 +206,6 @@ 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.
@@ -447,7 +425,6 @@ 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
@@ -475,8 +452,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -0,0 +1,518 @@
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
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 board 上的官方计划表
text.link.itch.io.description=PC版下载和网页版(itch.io)
text.link.google-play.description=从谷歌商店获取安卓版
text.link.wiki.description=官方 Mindustry 维基
text.linkfail=打开链接失败!\nURL 已经复制到剪贴板。
text.editor.web=网页版不支持地图编辑器!\n下载以使用编辑器。
text.web.unsupported=网页版不支持此功能,请下载以使用此功能。
text.gameover=你的核心被摧毁了!
text.sector.gameover=这个区域失守了,要重新部署吗?
text.sector.retry=重试
text.highscore=[accent]新纪录!
text.wave.lasted=你坚持到了第 [accent]{0}[] 波。
text.level.highscore=最高分: [accent]{0}
text.level.delete.title=确认删除
text.map.delete=确定要删除 "[orange]{0}[]" 地图吗?
text.level.select=选择关卡
text.level.mode=游戏模式:
text.construction.title=方块建造指导
text.construction=你选择了 [accent]建造模式[].\n\n点击你附近的有效位置以放置\n选择了方块以后, 点击复选框就会开始建造。\n\n- [accent]移除方块-[] 点击想要删除的方块。\n- [accent]直线放置方块-[] 按住一个空点然后拖到目的地。\n- [accent]取消建造或选择-[] 按左下角的X。
text.deconstruction.title=方块删除指导
text.deconstruction=你选择了 [accent]删除模式[]。\n\n点击你附近的有效位置以删除\n选择了方块以后点击复选框就会开始删除。\n\n- [accent]移除方块-[] 点击想要删除的方块。\n- [accent]移除选中部分-[] 按住并拖动以选中一个区域。\n- [accent]取消删除或选择-[] 按左下角的X.
text.showagain=不再显示
text.unlocks=已解锁
text.savegame=保存游戏
text.loadgame=载入游戏
text.joingame=加入游戏
text.addplayers=增加/删除玩家
text.customgame=自定义游戏
text.campaign=战役
text.sectors=区域
text.sector=区域: [LIGHT_GRAY]{0}
text.sector.time=时间: [LIGHT_GRAY]{0}
text.sector.deploy=部署
text.sector.resume=继续
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.mission=任务[LIGHT_GRAY] {0}
text.mission.wave=存活了 [accent]{0}[] 波。
text.mission.battle=摧毁敌方基地。
text.mission.resource=获得 {0} x{1}
text.none=<none>
text.close=关闭
text.quit=退出
text.maps=地图
text.maps.none=[LIGHT_GRAY]未发现地图!
text.about.button=关于
text.name=名字:
text.unlocked=新方块解锁!
text.unlocked.plural=新方块解锁!
text.players={0} 玩家在线
text.players.single={0} 玩家在线
text.server.mismatch=Packet error: 可能是客户端/服务器版本不匹配\n请确保你和房主\n都安装了最新版 Mindustry
text.server.closing=[accent]正在关闭服务器...
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=你刚刚被踢出服务器\n请稍后再重新连接
text.server.kicked.nameInUse=服务器中已经\n有相同的名字了。
text.server.kicked.nameEmpty=你的名字必须至少包含一个字母或数字。
text.server.kicked.idInUse=你已经在服务器中了!不允许用两个账号。
text.server.kicked.customClient=这个服务器不支持修改版连接,请下载官方版本。
text.host.info=[accent]创建局域网游戏[] 按钮会在 [scarlet]6567[] 端口运行一个服务器并且 [scarlet]6568.[]\n任何在同一个 [LIGHT_GRAY]wifi或本地网络[] 下的人都将在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过ip地址连接 那么需要[accent]端口转发[]。\n\n[LIGHT_GRAY]请注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了 Mindustry 连接本地网络。
text.join.info=你可以在这里输入[accent]服务器的IP地址[]以连接,或寻找[accent]本地网络[]中的服务器以连接。\n支持局域网或广域网多人游戏。\n\n[LIGHT_GRAY]请注意没有全球服务器列表如果你想通过IP地址连接某个服务器你需要向房主询问IP地址。
text.hostserver=服务器
text.host=创建服务器
text.hosting=[accent]正在打开服务器...
text.hosts.refresh=刷新
text.hosts.discovering=正在搜索局域网服务器
text.server.refreshing=正在刷新服务器
text.hosts.none=[lightgray]未发现局域网游戏!
text.host.invalid=[scarlet]无法连接服务器。
text.trace=跟踪玩家
text.trace.playername=玩家名字: [accent]{0}
text.trace.ip=IP地址 [accent]{0}
text.trace.id=ID: [accent]{0}
text.trace.android=安卓客户端: [accent]{0}
text.trace.modclient=修改版客户端: [accent]{0}
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请提交 bug 报告。
text.server.bans=黑名单
text.server.bans.none=没有被拉黑的玩家!
text.server.admins=管理员
text.server.admins.none=没有管理员!
text.server.add=添加服务器
text.server.delete=确定要删除这个服务器吗?
text.server.hostname=主机: {0}
text.server.edit=编辑服务器
text.server.outdated=[crimson]服务器过旧![]
text.server.outdated.client=[crimson]客户端过旧![]
text.server.version=[lightgray]版本: {0}
text.server.custombuild=[yellow]修改版
text.confirmban=确认拉黑这个玩家?
text.confirmunban=确认要取消拉黑这个玩家吗?
text.confirmadmin=确认要添加这个玩家为管理员吗?
text.confirmunadmin=确认要取消这个玩家的管理员身份吗?
text.joingame.title=加入游戏
text.joingame.ip=IP:
text.disconnect=已断开
text.disconnect.data=载入世界失败!
text.connecting=[accent]连接中...
text.connecting.data=[accent]加载世界中...
text.connectfail=[crimson]服务器连接失败: [orange]{0}
text.server.port=端口:
text.server.addressinuse=地址已经使用!
text.server.invalidport=无效的端口!
text.server.error=[crimson]创建服务器错误:[orange]{0}
text.save.old=这个存档属于旧版本游戏,无法继续使用了。\n\n[LIGHT_GRAY]存档向下兼容将在 4.0 版本中实现。
text.save.new=新存档
text.save.overwrite=确认要\n覆盖这个存档吗
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]存档无效!
text.save.import.fail=[crimson]导入存档:[orange]{0} 失败
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]存档损坏或无效!\n如果你刚刚升级了游戏那么这可能是因为存档格式改变了而[scarlet]不是[] bug 。
text.sector.corrupted=[orange]发现了一个此区域的保存文件,但是加载失败。\n已经创建了一个新的。
text.empty=<empty>
text.on=
text.off=
text.save.autosave=自动保存:{0}
text.save.map=地图:{0}
text.save.wave=第 {0} 波
text.save.difficulty=难度: {0}
text.save.date=最后保存日期:{0}
text.save.playtime=游戏时间:{0}
text.confirm=确认
text.delete=删除
text.ok=好的
text.open=打开
text.cancel=取消
text.openlink=打开链接
text.copylink=删除链接
text.back=返回
text.quit.confirm=确认要退出?
text.changelog.title=更新日志
text.changelog.loading=正在获取更新日志...
text.changelog.error.android=[orange]请注意更新日志有时在安卓 4.4 以下不工作。\n这是因为安卓系统的一个 bug 。
text.changelog.error.ios=[orange]iOS还不支持更新日志。
text.changelog.error=[scarlet]获取更新日志失败!\n请检查你的网络。
text.changelog.current=[yellow][[Current version]
text.changelog.latest=[orange][[Latest version]
text.loading=[accent]加载中...
text.saving=[accent]保存中...
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.builtin=内建的
text.map.delete.confirm=确认要删除地图吗?这个操作无法撤销!
text.map.random=[accent]随机地图
text.map.nospawn=这个地图没有核心!请在编辑器中添加一个[ROYAL]蓝色[]的核心。
text.editor.brush=笔刷
text.editor.slope=\\
text.editor.openin=在编辑器中打开
text.editor.oregen=生成矿石
text.editor.oregen.info=生成矿石:
text.editor.mapinfo=地图详情
text.editor.author=作者:
text.editor.description=描述:
text.editor.name=名字:
text.editor.teams=团队
text.editor.elevation=高度
text.editor.badsize=[orange]图片尺寸无效![]\n正确的尺寸{0}
text.editor.errorimageload=载入文件出错:\n[orange]{0}
text.editor.errorimagesave=保存文件出错:\n[orange]{0}
text.editor.generate=生成
text.editor.resize=调整
text.editor.loadmap=载入地图
text.editor.savemap=保存地图
text.editor.saved=已保存!
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.importfile=导入文件
text.editor.importfile.description=导入一个外置的地图文件
text.editor.importimage=导入地形图像
text.editor.importimage.description=导入外置地图图像文件
text.editor.export=导出...
text.editor.exportfile=导出文件
text.editor.exportfile.description=导出一个地图文件
text.editor.exportimage=导出一个地形文件
text.editor.exportimage.description=导出一个地图图像文件
text.editor.loadimage=导入地形
text.editor.saveimage=导出地形
text.editor.unsaved=[scarlet]你有未保存的更改![]\n确定要退出
text.editor.resizemap=调整地图
text.editor.mapname=地图名字:
text.editor.overwrite=[accent]警告!\n这将会覆盖一个已经存在的地图。
text.editor.overwrite.confirm=[scarlet]警告![] 存在同名地图,确定要覆盖?
text.editor.selectmap=选择一个地图加载:
text.width=宽度:
text.height=高度:
text.menu=菜单
text.play=开始游戏
text.load=载入游戏
text.save=保存
text.fps=FPS: {0}
text.tps=TPS: {0}
text.ping=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=重新绑定
text.settings.controls=控制
text.settings.game=游戏
text.settings.sound=声音
text.settings.graphics=图像
text.paused=暂停
text.yes=
text.no=
text.info.title=[accent]详情
text.error.title=[crimson]发生了一个错误
text.error.crashtitle=发生了一个错误
text.blocks.blockinfo=方块详情
text.blocks.powercapacity=能量容量
text.blocks.powershot=能量/发射
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=Aux 液体
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.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.fpscap.name=最高 FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
setting.difficulty.easy=简单
setting.difficulty.normal=普通
setting.difficulty.hard=困难
setting.difficulty.insane=疯狂
setting.difficulty.purge=清除
setting.difficulty.name=难度:
setting.screenshake.name=屏幕抖动
setting.indicators.name=指出敌人
setting.effects.name=显示效果
setting.sensitivity.name=控制器灵敏度
setting.saveinterval.name=自动保存间隔
setting.seconds={0} 秒
setting.fullscreen.name=全屏
setting.multithread.name=多线程
setting.fps.name=显示 FPS
setting.vsync.name=帧同步
setting.lasers.name=显示能量射线
setting.healthbars.name=显示生命值
setting.minimap.name=显示小地图
setting.musicvol.name=音乐音量
setting.mutemusic.name=静音
setting.sfxvol.name=音效音量
setting.mutesound.name=静音
text.keybind.title=重新绑定按键
keybind.move_x.name=X轴移动
keybind.move_y.name=Y轴移动
keybind.select.name=选择
keybind.break.name=破坏
keybind.shoot.name=射击
keybind.zoom_hold.name=保持缩放
keybind.zoom.name=缩放
keybind.menu.name=菜单
keybind.pause.name=暂停
keybind.dash.name=冲刺
keybind.chat.name=聊天
keybind.player_list.name=玩家列表
keybind.console.name=控制台
keybind.rotate.name=旋转
mode.text.help.title=模式说明
mode.waves.name=普通
mode.waves.description=普通模式,有限的资源和自动生成敌人。
mode.sandbox.name=沙盒
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.stone.description=一种常见的原料。用于分离和提炼成其他材料,或熔化成熔岩。
item.tungsten.name=
item.tungsten.description=一种常见但非常有用的结构材料。用于钻头和耐热方块,比如发电机和冶炼器。
item.lead.name=
item.lead.description=基本的起始材料。被广泛用于电气和液体运输方块。
item.coal.name=
item.coal.description=一种常见并容易获得的燃料。
item.carbide.name=电石
item.carbide.description=由钨和碳制成的坚韧合金。被用在高级的运输方块和高层钻机。
item.titanium.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.lava.name=岩浆
liquid.oil.name=石油
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.unit.health=[LIGHT_GRAY]生命值: {0}
text.unit.speed=[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-large.name=大门
block.duo.name=
block.scorch.name=灼烧炮
block.hail.name=Hail
block.lancer.name=枪骑兵
block.conveyor.name=传送带
block.titanium-conveyor.name=钛传送带
block.junction.name=连接点
block.splitter.name=分离器
block.splitter.description=将物品输出到三个不同的方向。
block.router.name=路由器
block.router.description=将物品分配到 4 个方向。可以作为缓冲区储存物品。
block.distributor.name=分配器
block.distributor.description=把物品分到 8 个方向的分配器。
block.sorter.name=分类器
block.sorter.description=对物品进行分类。如果物品与所选种类,则允许其通过。否则,物品将从左边和右边输出。
block.overflow-gate.name=溢流门
block.overflow-gate.description=分离器和路由器的组合,如果前面被挡住,则向从左和右输出。
block.bridgeconveyor.name=传送桥
block.bridgeconveyor.description=一种传送带,可以越过其他方块,最多两个方块。
block.smelter.name=冶炼厂
block.arc-smelter.name=电弧冶炼厂
block.silicon-smelter.name=硅冶炼厂
block.phase-weaver.name=相位编织器
block.pulverizer.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.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=Item Void
block.liquidsource.name=液体源
block.powervoid.name=Power Void
block.powerinfinite.name=无限能源
block.unloader.name=装卸器
block.sortedunloader.name=分类装卸器
block.vault.name=仓库
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.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=核反应堆
block.command-center.name=指令中心
block.mass-driver.name=质量驱动器
block.blast-drill.name=爆破钻头
unit.drone.name=无人机
unit.drone.description=初始的无人机单位.自动在核心生成,自动采矿,收集物品,修复方块
unit.fabricator.name=装配工
unit.fabricator.description=高级无人机单位,自动采矿,收集物品和修复方块.比普通无人机快很多.
unit.scout.name=侦察机
unit.scout.description=基础地面单位,使用钨作为弹药.
unit.titan.name=泰坦
unit.titan.description=高级的有武装地面单位,使用电石作为弹药.攻击地面单位和空中单位.
unit.monsoon.name=狂风
unit.monsoon.description=重型地毯式轰炸机,使用爆炸混合物或硫作为弹药。
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

View File

@@ -1,4 +1,3 @@
text.about=開發者 [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n最初構想於 [orange]GDL[] Metal Monstrosity Jam.\n\n銘謝\n- 音效作者 [YELLOW]bfxr[]\n- 音樂作者 [GREEN]a beat a day[]\n\n特別感謝:\n- [coral]MitchellFJN[]:大量的測試與回饋\n- [sky]Luxray5474[]:維基編纂、程式碼貢獻\n- [lime]Epowerj[]: 撰寫建造系統、繪製圖示\n- 所有在 itch.io 與 Google Play 上的測試版玩家\n
text.credits=致謝名單
text.discord=加入 Mindustry 的 Discord 聊天室
text.link.discord.description=官方 Mindustry Discord 聊天室
@@ -10,10 +9,8 @@ text.link.google-play.description=Google Play 商店頁面
text.link.wiki.description=官方 Mindustry 維基
text.linkfail=無法打開連結!我們已將該網址複製到您的剪貼簿。\n
text.editor.web=線上版本不支援地圖編輯器!請下載遊戲已使用這項功能。\n
text.multiplayer.web=此遊戲版本不支援多人連線!請在 itch.io 頁面使用「多人線上版」連結以進入多人遊戲。
text.gameover=核心已被摧毀。
text.highscore=[YELLOW]新的高分紀錄!
text.lasted=您存活到波次
text.level.highscore=最高分:[accent] {0}
text.level.delete.title=確認刪除
text.level.select=選擇關卡
@@ -167,9 +164,6 @@ text.settings.controls=操作
text.settings.game=遊戲
text.settings.sound=音效
text.settings.graphics=圖形
text.upgrades=升級
text.purchased=[LIME]已建立!
text.weapons=武器
text.paused=已暫停
text.info.title=[accent]資訊
text.error.title=[crimson]發生錯誤
@@ -212,19 +206,6 @@ 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.desert.name=沙漠
map.island.name=島嶼
map.grassland.name=草原
map.tundra.name=凍原
map.spiral.name=螺旋
map.tutorial.name=教學
text.keybind.title=重新綁定按鍵
keybind.move_x.name=水平移動
keybind.move_y.name=垂直移動
@@ -233,14 +214,12 @@ keybind.break.name=拆除
keybind.shoot.name=射擊
keybind.zoom_hold.name=按住縮放
keybind.zoom.name=縮放
keybind.block_info.name=方塊資訊
keybind.menu.name=主選單
keybind.pause.name=暫停遊戲
keybind.dash.name=衝刺
keybind.chat.name=聊天
keybind.player_list.name=玩家列表
keybind.console.name=終端機
keybind.rotate_alt.name=反向旋轉
keybind.rotate.name=旋轉
mode.text.help.title=模式說明
mode.waves.name=一般
@@ -268,7 +247,6 @@ block.liquidjunction.name=液體樞紐
block.sorter.name=分類器
block.smelter.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.
@@ -448,7 +426,6 @@ 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
@@ -476,8 +453,6 @@ 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
@@ -495,9 +470,49 @@ text.sector=Selected Sector: [LIGHT_GRAY]{0}
text.sector.time=Time: [LIGHT_GRAY]{0}
text.sector.deploy=Deploy
text.sector.resume=Resume
text.sector.unlocked=Sector completed!
text.sector.locked=[scarlet][[Incomplete]
text.sector.unexplored=[accent][[Unexplored]
text.close=Close
text.save.playtime=Playtime: {0}
text.editor.brush=Brush
text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
text.sector.gameover=This sector has been lost. Re-deploy?
text.sector.retry=Retry
text.wave.lasted=You lasted until wave [accent]{0}[].
setting.fpscap.name=Max FPS
setting.fpscap.none=None
setting.fpscap.text={0} FPS
block.command-center.name=Command Center
text.mission=Mission:[LIGHT_GRAY] {0}
text.mission.wave=Survive [accent]{0}[] waves.
text.mission.battle=Destroy the enemy base.
text.none=<none>
text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created.
text.mission.complete=Mission complete!
text.mission.complete.body=Sector {0},{1} has been conquered.
text.mission.resource=Obtain {0} x{1}
text.unit.health=[LIGHT_GRAY]Health: {0}
text.unit.speed=[LIGHT_GRAY]Speed: {0}
block.drone-pad.name=Drone Pad
block.fabricator-pad.name=Fabricator Pad
block.interceptor-pad.name=Interceptor Pad
block.monsoon-pad.name=Monsoon Pad
block.mass-driver.name=Mass Driver
block.blast-drill.name=Blast Drill
unit.drone.name=Drone
unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks.
unit.fabricator.name=Fabricator
unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone.
unit.scout.name=Scout
unit.scout.description=A basic ground unit. Uses lead as ammo.
unit.titan.name=Titan
unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets.
unit.monsoon.name=Monsoon
unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo.
unit.interceptor.name=Interceptor
unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo.
mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear.
block.thermal-pump.name=Thermal Pump
block.dagger-pad.name=Dagger Pad
block.titan-pad.name=Titan Pad
block.thermal-generator.name=Thermal Generator

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

@@ -1,5 +1,5 @@
{
com.badlogic.gdx.graphics.g2d.BitmapFont: {
Font: {
default-font: {
file: square.fnt,
markupEnabled: true,
@@ -26,22 +26,16 @@ com.badlogic.gdx.graphics.g2d.BitmapFont: {
scale: 2
}
},
com.badlogic.gdx.graphics.Color: {
Color: {
black: {a: 1, b: 0, g: 0, r: 0 },
white: {a: 1, b: 1, g: 1, r: 1 },
green: {a: 1, b: 0, g: 1, r: 0 },
red: {a: 1, b: 0, g: 0, r: 1 },
blue: {a: 1, b: 1, g: 0, r: 0 },
grey: {a: 1, b: 0.32, g: 0.32, r: 0.32 },
lightgray: {a: 1, b: 0.3, g: 0.3, r: 0.3 },
orange: {hex: "#FFA500"},
gray: {a: 1, b: 0.32, g: 0.32, r: 0.32 },
lightgray: {a: 1, b: 0.65, g: 0.65, r: 0.65 }
orange: {hex: "FFA500"},
accent: {hex: "f4ba6e"},
vis-blue: {a: 1, b: 0.886, g: 0.631, r: 0.105 },
vis-red: {a: 1, b: 0.047, g: 0, r: 0.862 },
menuitem: {a: 1, b: 0.65, g: 0.65, r: 0.65 },
link-label: {a: 1, b: 0.886, g: 0.631, r: 0.105 }
accentDark: {hex: "f4ba6e"},
},
io.anuke.ucore.scene.Skin$TintedDrawable: {
TintedDrawable: {
dialogDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.9} },
invis: {name: white, color: {r: 0, g: 0, b: 0, a: 0} }
loadDim: {name: white, color: {r: 0, g: 0, b: 0, a: 0.8} },
@@ -50,61 +44,58 @@ io.anuke.ucore.scene.Skin$TintedDrawable: {
clear-over: {name: white, color: {r: 1, g: 1, b: 1, a: 0.2} },
clear-down: {name: white, color: {r: 1, g: 1, b: 1, a: 0.4} }
},
io.anuke.ucore.scene.ui.Button$ButtonStyle: {
ButtonStyle: {
default: {down: button-down, up: button },
menu: {up: text-sides, over: text-sides-over, down: text-sides-down},
toggle: {checked: button-down, down: button-down, up: button }
},
io.anuke.ucore.scene.ui.TextButton$TextButtonStyle: {
default: {over: button-over, disabled: button, font: default-font, fontColor: white, disabledFontColor: grey, down: button-down, up: button, transition: 0 },
TextButtonStyle: {
default: {over: button-over, disabled: button, font: default-font, fontColor: white, disabledFontColor: gray, down: button-down, up: button, transition: 0 },
discord: {over: discord-banner-over, font: default-font, fontColor: white, up: discord-banner},
info: {font: default-font, fontColor: white, up: info-banner},
clear: {down: clear-down, up: clear, over: clear-over, font: default-font, fontColor: white, disabledFontColor: grey },
clear: {down: clear-down, up: clear, over: clear-over, font: default-font, fontColor: white, disabledFontColor: gray },
empty: {font: default-font},
toggle: {font: default-font, fontColor: white, checked: button-down, down: button-down, up: button, over: button-over, disabled: button, disabledFontColor: grey }
toggle: {font: default-font, fontColor: white, checked: button-down, down: button-down, up: button, over: button-over, disabled: button, disabledFontColor: gray }
},
io.anuke.ucore.scene.ui.ImageButton$ImageButtonStyle: {
default: {down: button-down, up: button, over: button-over, imageDisabledColor: lightgray, imageUpColor: white },
ImageButtonStyle: {
default: {down: button-down, up: button, over: button-over, imageDisabledColor: gray, imageUpColor: white },
empty: { imageDownColor: accent, imageUpColor: white},
emptytoggle: {imageCheckedColor: white, imageDownColor: white, imageUpColor: lightgray},
emptytoggle: {imageCheckedColor: white, imageDownColor: white, imageUpColor: gray},
static: {up: button },
static-down: {up: button-down },
toggle: {checked: button-down, down: button-down, up: button, imageDisabledColor: lightgray, imageUpColor: white },
togglemap: {down: button-map-down, up: button-map },
toggle: {checked: button-down, down: button-down, up: button, imageDisabledColor: gray, imageUpColor: white },
select: {checked: button-select, up: clear },
clear: {down: clear-down, up: clear, over: clear-over},
},
io.anuke.ucore.scene.ui.ScrollPane$ScrollPaneStyle: {
ScrollPaneStyle: {
default: {background: border, vScroll: scroll, vScrollKnob: scroll-knob-vertical-black},
horizontal: {background: border, vScroll: scroll, vScrollKnob: scroll-knob-vertical, hScroll: scroll-horizontal, hScrollKnob: scroll-knob-horizontal},
volume: {background: button-map, vScroll: scroll, vScrollKnob: scroll-knob-vertical-black},
clear: {vScroll: scroll, vScrollKnob: scroll-knob-vertical-black},
clear-black: {vScroll: scroll, vScrollKnob: scroll-knob-vertical-black}
},
io.anuke.ucore.scene.ui.Window$WindowStyle: {
WindowStyle: {
default: {titleFont: default-font, background: window, titleFontColor: accent },
dialog: {stageBackground: dialogDim, titleFont: default-font, background: window-empty, titleFontColor: accent }
},
io.anuke.ucore.scene.ui.KeybindDialog$KeybindDialogStyle: {
default: {keyColor: accent, keyNameColor: white, controllerColor: menuitem, paneStyle: clear},
KeybindDialogStyle: {
default: {keyColor: accent, keyNameColor: white, controllerColor: lightgray, paneStyle: clear},
},
io.anuke.ucore.scene.ui.Slider$SliderStyle: {
SliderStyle: {
default-horizontal: {background: slider, knob: slider-knob, knobOver: slider-knob-over, knobDown: slider-knob-down},
default-vertical: {background: slider-vertical, knob: slider-knob, knobOver: slider-knob-over, knobDown: slider-knob-down}
},
io.anuke.ucore.scene.ui.Label$LabelStyle: {
LabelStyle: {
default: {font: default-font, fontColor: white },
title: {font: title, fontColor: white },
link-label: {fontColor: link-label, font: default-font },
small: {font: default-font, fontColor: white },
menuitem-shortcut: {font: default-font, fontColor: menuitem }
small: {font: default-font, fontColor: white }
},
io.anuke.ucore.scene.ui.TextField$TextFieldStyle: {
default: {font: default-font-chat, fontColor: white, disabledFontColor: grey, selection: selection, background: button, cursor: cursor, messageFont: default-font, messageFontColor: grey }
textarea: {font: default-font-chat, fontColor: white, disabledFontColor: grey, selection: selection, background: textarea, cursor: cursor, messageFont: default-font, messageFontColor: grey }
TextFieldStyle: {
default: {font: default-font-chat, fontColor: white, disabledFontColor: gray, selection: selection, background: button, cursor: cursor, messageFont: default-font, messageFontColor: gray }
textarea: {font: default-font-chat, fontColor: white, disabledFontColor: gray, selection: selection, background: textarea, cursor: cursor, messageFont: default-font, messageFontColor: gray }
}
io.anuke.ucore.scene.ui.CheckBox$CheckBoxStyle: {
default: {checkboxOn: check-on, checkboxOff: check-off, checkboxOnOver: check-on-over, checkboxOver: check-over, font: default-font, fontColor: white, disabledFontColor: grey }
CheckBoxStyle: {
default: {checkboxOn: check-on, checkboxOff: check-off, checkboxOnOver: check-on-over, checkboxOver: check-over, font: default-font, fontColor: white, disabledFontColor: gray }
}
}

View File

@@ -19,4 +19,6 @@
<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.maps.generation.WorldGenerator"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.entities.StatusController"/>
<extend-configuration-property name="gdx.reflect.include" value="io.anuke.mindustry.maps.Sector"/>
<extend-configuration-property name="gdx.reflect.include" value="com.badlogic.gdx.utils.Predicate"/>
</module>

View File

@@ -29,14 +29,18 @@ public class Mindustry extends ModuleCore{
module(ui = new UI());
module(netServer = new NetServer());
module(netClient = new NetClient());
}
@Override
public void postInit(){
Log.info("Time to load [total]: {0}", Timers.elapsed());
}
@Override
public void render(){
threads.handleBeginRender();
super.render();
threads.handleRender();
threads.handleEndRender();
}
}

View File

@@ -32,8 +32,6 @@ public class Vars{
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
@@ -41,11 +39,9 @@ public class Vars{
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 int sectorSize = 256;
public static final int sectorSize = 300;
public static final int mapPadding = 3;
public static final int invalidSector = Integer.MAX_VALUE;
public static Locale[] locales;
@@ -69,7 +65,6 @@ public class Vars{
};
//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;
@@ -143,8 +138,6 @@ public class Vars{
String code = stra[i];
if(code.contains("_")){
locales[i] = new Locale(code.split("_")[0], code.split("_")[1]);
}else if(code.contains("-")){
locales[i] = new Locale(code.split("-")[0], code.split("-")[1]);
}else{
locales[i] = new Locale(code);
}

View File

@@ -89,7 +89,7 @@ public class Pathfinder{
}
private boolean passable(Tile tile, Team team){
return (tile.block() == Blocks.air && !tile.floor().isLiquid && tile.cliffs == 0 && !tile.floor().solid && !(tile.floor().isLiquid && (tile.floor().damageTaken > 0 || tile.floor().drownTime > 0)))
return (tile.block() == Blocks.air && !tile.floor().isLiquid && !tile.hasCliffs() && !tile.floor().solid && !(tile.floor().isLiquid && (tile.floor().damageTaken > 0 || tile.floor().drownTime > 0)))
|| (tile.breakable() && (tile.getTeam() != team)) || !tile.solid();
}

View File

@@ -71,9 +71,16 @@ public class Items implements ContentList{
cost = 1.5f;
}};
surgealloy = new Item("surge-alloy", Color.valueOf("b4d5c7")){{
type = ItemType.material;
}};
surgealloy = new Item("surge-alloy", Color.valueOf("b4d5c7")){
{
type = ItemType.material;
}
@Override
public boolean isHidden(){
return true;
}
};
biomatter = new Item("biomatter", Color.valueOf("648b55")){{
flammability = 0.4f;

View File

@@ -24,11 +24,12 @@ public class Mechs implements ContentList{
speed = 0.5f;
weapon = Weapons.blaster;
trailColor = Palette.lightTrail;
maxSpeed = 4f;
}};
delta = new Mech("delta-mech", false){{
drillPower = -1;
speed = 0.63f;
speed = 0.75f;
boostSpeed = 0.86f;
itemCapacity = 15;
armor = 30f;
@@ -37,16 +38,19 @@ public class Mechs implements ContentList{
weapon = Weapons.shockgun;
ammoCapacity = 50;
trailColor = Color.valueOf("d3ddff");
maxSpeed = 5f;
}};
tau = new Mech("tau-mech", false){{
drillPower = 2;
speed = 0.5f;
maxSpeed = 5f;
}};
omega = new Mech("omega-mech", false){{
drillPower = 1;
speed = 0.4f;
maxSpeed = 3f;
}};
dart = new Mech("dart-ship", true){{

View File

@@ -51,6 +51,7 @@ public class Recipes implements ContentList{
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));
new Recipe(distribution, DistributionBlocks.massDriver, new ItemStack(Items.carbide, 400), new ItemStack(Items.silicon, 300), new ItemStack(Items.lead, 400), new ItemStack(Items.thorium, 250));
//CRAFTING
@@ -74,7 +75,6 @@ public class Recipes implements ContentList{
new Recipe(crafting, CraftingBlocks.solidifier, new ItemStack(Items.carbide, 30), new ItemStack(Items.tungsten, 20));
new Recipe(crafting, CraftingBlocks.melter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 70), new ItemStack(Items.carbide, 90));
new Recipe(crafting, CraftingBlocks.incinerator, new ItemStack(Items.carbide, 10), new ItemStack(Items.lead, 30));
//processing
@@ -95,6 +95,7 @@ public class Recipes implements ContentList{
//generators - combustion
new Recipe(power, PowerBlocks.combustionGenerator, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 30));
new Recipe(power, PowerBlocks.turbineGenerator, new ItemStack(Items.tungsten, 70), new ItemStack(Items.carbide, 50), new ItemStack(Items.lead, 80), new ItemStack(Items.silicon, 60));
new Recipe(power, PowerBlocks.thermalGenerator, new ItemStack(Items.tungsten, 80), new ItemStack(Items.carbide, 70), new ItemStack(Items.lead, 100), new ItemStack(Items.silicon, 70), new ItemStack(Items.thorium, 70));
//generators - solar
new Recipe(power, PowerBlocks.solarPanel, new ItemStack(Items.lead, 20), new ItemStack(Items.silicon, 30));
@@ -104,14 +105,14 @@ public class Recipes implements ContentList{
new Recipe(power, PowerBlocks.nuclearReactor, new ItemStack(Items.lead, 600), new ItemStack(Items.silicon, 400), new ItemStack(Items.carbide, 300), new ItemStack(Items.thorium, 300));
//new Recipe(distribution, StorageBlocks.core, new ItemStack(Items.carbide, 50));
//new Recipe(distribution, StorageBlocks.unloader, new ItemStack(Items.carbide, 40), new ItemStack(Items.silicon, 50));
new Recipe(distribution, StorageBlocks.unloader, new ItemStack(Items.carbide, 40), new ItemStack(Items.silicon, 70));
new Recipe(distribution, StorageBlocks.unloader, new ItemStack(Items.carbide, 40), new ItemStack(Items.silicon, 50));
new Recipe(distribution, StorageBlocks.vault, new ItemStack(Items.carbide, 500), new ItemStack(Items.thorium, 350));
//DRILLS, PRODUCERS
new Recipe(production, ProductionBlocks.tungstenDrill, new ItemStack(Items.tungsten, 25));
new Recipe(production, ProductionBlocks.carbideDrill, new ItemStack(Items.tungsten, 50), new ItemStack(Items.carbide, 60));
new Recipe(production, ProductionBlocks.laserdrill, new ItemStack(Items.tungsten, 90), new ItemStack(Items.carbide, 110), new ItemStack(Items.silicon, 70), new ItemStack(Items.titanium, 80));
new Recipe(production, ProductionBlocks.blastdrill, new ItemStack(Items.tungsten, 140), new ItemStack(Items.carbide, 180), new ItemStack(Items.silicon, 120), new ItemStack(Items.titanium, 130), new ItemStack(Items.thorium, 130));
new Recipe(production, ProductionBlocks.waterextractor, new ItemStack(Items.tungsten, 50), new ItemStack(Items.carbide, 50), new ItemStack(Items.lead, 40));
new Recipe(production, ProductionBlocks.cultivator, new ItemStack(Items.tungsten, 20), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 20));
@@ -120,7 +121,6 @@ public class Recipes implements ContentList{
//UNITS
//bodies
new Recipe(units, UpgradeBlocks.dartFactory, new ItemStack(Items.lead, 150), new ItemStack(Items.silicon, 200), new ItemStack(Items.titanium, 240))
.setDesktop(); //dart is desktop only, because it's the starter mobile ship
@@ -132,11 +132,18 @@ public class Recipes implements ContentList{
//new Recipe(units, UpgradeBlocks.deltaFactory, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 30));
//actual unit related stuff
new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 90), new ItemStack(Items.silicon, 130));
new Recipe(units, UnitBlocks.fabricatorFactory, new ItemStack(Items.carbide, 70), new ItemStack(Items.thorium, 100), new ItemStack(Items.lead, 150), new ItemStack(Items.silicon, 300));
new Recipe(units, UnitBlocks.dronePad, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 90), new ItemStack(Items.silicon, 130));
new Recipe(units, UnitBlocks.fabricatorPad, new ItemStack(Items.carbide, 70), new ItemStack(Items.thorium, 60), new ItemStack(Items.lead, 130), new ItemStack(Items.silicon, 200));
new Recipe(units, UnitBlocks.daggerPad, new ItemStack(Items.lead, 80), new ItemStack(Items.silicon, 70));
new Recipe(units, UnitBlocks.titanPad, new ItemStack(Items.thorium, 90), new ItemStack(Items.lead, 140), new ItemStack(Items.silicon, 180));
new Recipe(units, UnitBlocks.interceptorPad, new ItemStack(Items.titanium, 40), new ItemStack(Items.lead, 80), new ItemStack(Items.silicon, 90));
new Recipe(units, UnitBlocks.monsoonPad, new ItemStack(Items.plastanium, 70), new ItemStack(Items.titanium, 100), new ItemStack(Items.lead, 130), new ItemStack(Items.silicon, 220));
new Recipe(units, UnitBlocks.repairPoint, new ItemStack(Items.lead, 30), new ItemStack(Items.tungsten, 30), new ItemStack(Items.silicon, 30));
new Recipe(units, UnitBlocks.resupplyPoint, new ItemStack(Items.lead, 30), new ItemStack(Items.tungsten, 30), new ItemStack(Items.silicon, 30));
new Recipe(units, UnitBlocks.commandCenter, new ItemStack(Items.lead, 100), new ItemStack(Items.carbide, 140), new ItemStack(Items.silicon, 250));
//LIQUIDS
new Recipe(liquid, LiquidBlocks.conduit, new ItemStack(Items.lead, 1))
@@ -144,7 +151,6 @@ public class Recipes implements ContentList{
new Recipe(liquid, LiquidBlocks.pulseConduit, new ItemStack(Items.titanium, 1), new ItemStack(Items.lead, 1));
new Recipe(liquid, LiquidBlocks.phaseConduit, new ItemStack(Items.phasematter, 10), new ItemStack(Items.silicon, 15), new ItemStack(Items.lead, 20), new ItemStack(Items.titanium, 20));
new Recipe(liquid, LiquidBlocks.liquidRouter, new ItemStack(Items.carbide, 4), new ItemStack(Items.lead, 4));
new Recipe(liquid, LiquidBlocks.liquidtank, new ItemStack(Items.titanium, 50), new ItemStack(Items.lead, 50), new ItemStack(Items.carbide, 20));
new Recipe(liquid, LiquidBlocks.liquidJunction, new ItemStack(Items.carbide, 4), new ItemStack(Items.lead, 4));
@@ -153,6 +159,7 @@ public class Recipes implements ContentList{
new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 20))
.setDependencies(CraftingBlocks.smelter);
new Recipe(liquid, LiquidBlocks.rotaryPump, new ItemStack(Items.tungsten, 140), new ItemStack(Items.lead, 100), new ItemStack(Items.silicon, 40), new ItemStack(Items.titanium, 70));
new Recipe(liquid, LiquidBlocks.thermalPump, new ItemStack(Items.tungsten, 160), new ItemStack(Items.lead, 130), new ItemStack(Items.silicon, 60), new ItemStack(Items.titanium, 80), new ItemStack(Items.thorium, 70));
//DEBUG
new Recipe(units, DebugBlocks.itemSource, new ItemStack(Items.carbide, 10)).setDebug();
@@ -170,8 +177,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));
/*
@@ -258,7 +263,7 @@ public class Recipes implements ContentList{
new Recipe(units, UnitBlocks.dropPoint, new ItemStack(Items.carbide, 10));
new Recipe(units, UnitBlocks.resupplyPoint, new ItemStack(Items.carbide, 10));
new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 50));
new Recipe(units, UnitBlocks.dronePad, new ItemStack(Items.tungsten, 50));
new Recipe(units, UnitBlocks.reconstructor, new ItemStack(Items.tungsten, 1));
new Recipe(units, UnitBlocks.overdriveProjector, new ItemStack(Items.tungsten, 1));

View File

@@ -1,13 +1,14 @@
package io.anuke.mindustry.content;
import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.entities.units.UnitType;
import io.anuke.mindustry.entities.units.types.*;
import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.type.ContentList;
public class UnitTypes implements ContentList{
public static UnitType drone, scout, vtol, monsoon, titan, fabricator;
public static UnitType drone, dagger, interceptor, monsoon, titan, fabricator;
@Override
public void load(){
@@ -22,7 +23,7 @@ public class UnitTypes implements ContentList{
health = 45;
}};
scout = new UnitType("scout", Scout.class, Scout::new){{
dagger = new UnitType("dagger", Dagger.class, Dagger::new){{
maxVelocity = 1.1f;
speed = 0.2f;
drag = 0.4f;
@@ -40,7 +41,7 @@ public class UnitTypes implements ContentList{
health = 260;
}};
vtol = new UnitType("vtol", Vtol.class, Vtol::new){{
interceptor = new UnitType("interceptor", Interceptor.class, Interceptor::new){{
speed = 0.3f;
maxVelocity = 1.9f;
drag = 0.01f;
@@ -54,13 +55,14 @@ public class UnitTypes implements ContentList{
drag = 0.01f;
isFlying = true;
weapon = Weapons.bomber;
ammoCapacity = 50;
}};
fabricator = new UnitType("fabricator", Fabricator.class, Fabricator::new){{
isFlying = true;
drag = 0.01f;
speed = 0.2f;
maxVelocity = 0.6f;
maxVelocity = 0.9f;
ammoCapacity = 0;
range = 70f;
itemCapacity = 70;
@@ -69,6 +71,7 @@ public class UnitTypes implements ContentList{
buildPower = 0.9f;
minePower = 1.1f;
healSpeed = 0.09f;
toMine = ObjectSet.with(Items.lead, Items.tungsten, Items.titanium);
}};
}

View File

@@ -46,7 +46,7 @@ public class Weapons implements ContentList{
reload = 50f;
roundrobin = true;
shots = 6;
inaccuracy = 15f;
inaccuracy = 10f;
recoil = 2f;
velocityRnd = 0.7f;
ejectEffect = ShootFx.shellEjectSmall;
@@ -93,7 +93,7 @@ public class Weapons implements ContentList{
bomber = new Weapon("bomber"){{
length = 0f;
width = 2f;
reload = 5f;
reload = 7f;
roundrobin = true;
ejectEffect = Fx.none;
velocityRnd = 1f;

View File

@@ -12,7 +12,7 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.*;
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;
public static Block air, blockpart, space, metalfloor, deepwater, water, lava, oil, stone, blackstone, dirt, sand, ice, snow, grass, shrub, rock, icerock, blackrock;
@Override
@@ -20,6 +20,7 @@ public class Blocks extends BlockList implements ContentList{
air = new Floor("air"){
{
blend = false;
alwaysReplace = true;
}
//don't draw

View File

@@ -6,8 +6,7 @@ import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.CallBlocks;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.type.ContentList;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Liquid;
@@ -28,7 +27,7 @@ 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)
@Remote(targets = Loc.both, called = Loc.both, forward = true)
public static void setLiquidSourceLiquid(Player player, Tile tile, Liquid liquid){
LiquidSourceEntity entity = tile.entity();
entity.source = liquid;
@@ -114,7 +113,7 @@ public class DebugBlocks extends BlockList implements ContentList{
if(i == 0) continue;
final int f = i;
ImageButton button = cont.addImageButton("white", "toggle", 24, () -> {
CallBlocks.setLiquidSourceLiquid(null, tile, items.get(f));
Call.setLiquidSourceLiquid(null, tile, items.get(f));
}).size(38, 42).padBottom(-5.1f).group(group).get();
button.getStyle().imageUpColor = items.get(i).color;
button.setChecked(entity.source.id == f);

View File

@@ -50,7 +50,7 @@ public class DistributionBlocks extends BlockList implements ContentList{
massDriver = new MassDriver("mass-driver"){{
size = 3;
itemCapacity = 80;
range = 300f;
range = 340f;
}};
}
}

View File

@@ -22,15 +22,19 @@ public class LiquidBlocks extends BlockList implements ContentList{
pumpAmount = 0.25f;
consumes.power(0.015f);
liquidCapacity = 30f;
powerCapacity = 20f;
hasPower = true;
size = 2;
tier = 1;
}};
thermalPump = new Pump("thermal-pump"){{
pumpAmount = 0.3f;
consumes.power(0.05f);
shadow = "shadow-rounded-2";
pumpAmount = 0.55f;
consumes.power(0.03f);
liquidCapacity = 40f;
hasPower = true;
powerCapacity = 20f;
size = 2;
tier = 2;
}};

View File

@@ -21,9 +21,8 @@ public class PowerBlocks extends BlockList implements ContentList{
thermalGenerator = new LiquidHeatGenerator("thermal-generator"){{
maxLiquidGenerate = 0.5f;
powerPerLiquid = 0.08f;
powerCapacity = 40f;
powerPerLiquid = 0.25f;
powerPerLiquid = 0.55f;
generateEffect = BlockFx.redgeneratespark;
size = 2;
}};
@@ -74,12 +73,13 @@ public class PowerBlocks extends BlockList implements ContentList{
powerNode = new PowerNode("power-node"){{
shadow = "shadow-round-1";
maxNodes = 4;
}};
powerNodeLarge = new PowerNode("power-node-large"){{
size = 2;
powerSpeed = 1f;
maxNodes = 5;
maxNodes = 6;
laserRange = 7.5f;
shadow = "shadow-round-2";
}};

View File

@@ -8,11 +8,13 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.units.*;
public class UnitBlocks extends BlockList implements ContentList{
public static Block resupplyPoint, repairPoint, droneFactory, fabricatorFactory, dropPoint, reconstructor, overdriveProjector, shieldProjector;
public static Block resupplyPoint, repairPoint, dronePad,
fabricatorPad, interceptorPad, monsoonPad, daggerPad, titanPad,
dropPoint, reconstructor, overdriveProjector, shieldProjector, commandCenter;
@Override
public void load(){
droneFactory = new UnitFactory("drone-factory"){{
dronePad = new UnitPad("drone-pad"){{
type = UnitTypes.drone;
produceTime = 800;
size = 2;
@@ -20,14 +22,48 @@ public class UnitBlocks extends BlockList implements ContentList{
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)});
}};
fabricatorFactory = new UnitFactory("fabricator-factory"){{
fabricatorPad = new UnitPad("fabricator-pad"){{
type = UnitTypes.fabricator;
produceTime = 1600;
produceTime = 1400;
size = 2;
consumes.power(0.2f);
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)});
}};
interceptorPad = new UnitPad("interceptor-pad"){{
type = UnitTypes.interceptor;
produceTime = 900;
size = 2;
consumes.power(0.08f);
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 20), new ItemStack(Items.titanium, 10)});
}};
monsoonPad = new UnitPad("monsoon-pad"){{
type = UnitTypes.monsoon;
produceTime = 1500;
size = 3;
consumes.power(0.14f);
shadow = "shadow-round-3";
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 30), new ItemStack(Items.titanium, 30), new ItemStack(Items.plastanium, 20)});
}};
daggerPad = new UnitPad("dagger-pad"){{
type = UnitTypes.dagger;
produceTime = 500;
size = 2;
consumes.power(0.06f);
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 10), new ItemStack(Items.tungsten, 20)});
}};
titanPad = new UnitPad("titan-pad"){{
type = UnitTypes.titan;
produceTime = 1300;
size = 3;
consumes.power(0.15f);
shadow = "shadow-round-3";
consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 20), new ItemStack(Items.tungsten, 30), new ItemStack(Items.thorium, 30)});
}};
resupplyPoint = new ResupplyPoint("resupply-point"){{
shadow = "shadow-round-1";
itemCapacity = 30;
@@ -51,7 +87,11 @@ public class UnitBlocks extends BlockList implements ContentList{
size = 2;
}};
shieldProjector = new ShieldProjector("shieldprojector"){{
shieldProjector = new ShieldProjector("shield-projector"){{
size = 2;
}};
commandCenter = new CommandCenter("command-center"){{
size = 2;
}};
}

View File

@@ -76,12 +76,12 @@ public class TurretBullets extends BulletList implements ContentList{
}
};
basicFlame = new BulletType(2f, 5){
basicFlame = new BulletType(2.3f, 5){
{
hitsize = 7f;
lifetime = 30f;
lifetime = 35f;
pierce = true;
drag = 0.07f;
drag = 0.05f;
hiteffect = BulletFx.hitFlameSmall;
despawneffect = Fx.none;
status = StatusEffects.burning;
@@ -179,7 +179,7 @@ public class TurretBullets extends BulletList implements ContentList{
}
};
driverBolt = new BulletType(5f, 20){
driverBolt = new BulletType(5f, 50){
{
collidesTiles = false;
lifetime = 200f;
@@ -190,11 +190,14 @@ public class TurretBullets extends BulletList implements ContentList{
@Override
public void draw(Bullet b){
Draw.color(Color.LIGHT_GRAY);
Fill.square(b.x, b.y, 3f, b.angle());
float w = 11f, h = 13f;
Draw.color(Palette.bulletYellowBack);
Draw.rect("shell-back", b.x, b.y, w, h, b.angle() + 90);
Draw.color(Palette.bulletYellow);
Draw.rect("shell", b.x, b.y, w, h, b.angle() + 90);
Draw.color(Palette.lighterOrange);
Fill.square(b.x, b.y, 2f, b.angle());
Draw.reset();
}

View File

@@ -25,13 +25,13 @@ public class WeaponBullets extends BulletList{
{
bulletWidth = 8f;
bulletHeight = 9f;
bulletShrink = 0.6f;
lifetime = 30f;
bulletShrink = 0.5f;
lifetime = 50f;
drag = 0.04f;
}
};
bombExplosive = new BombBulletType(20f, 20f, "shell"){
bombExplosive = new BombBulletType(10f, 20f, "shell"){
{
bulletWidth = 9f;
bulletHeight = 13f;
@@ -39,7 +39,7 @@ public class WeaponBullets extends BulletList{
}
};
bombIncendiary = new BombBulletType(15f, 10f, "shell"){
bombIncendiary = new BombBulletType(7f, 10f, "shell"){
{
bulletWidth = 8f;
bulletHeight = 12f;
@@ -63,7 +63,7 @@ public class WeaponBullets extends BulletList{
}
};
bombOil = new BombBulletType(3f, 3f, "shell"){
bombOil = new BombBulletType(2f, 3f, "shell"){
{
bulletWidth = 8f;
bulletHeight = 12f;

View File

@@ -16,7 +16,10 @@ import io.anuke.ucore.util.Tmp;
import static io.anuke.mindustry.Vars.tilesize;
public class BlockFx extends FxList implements ContentList{
public static Effect reactorsmoke, nuclearsmoke, nuclearcloud, redgeneratespark, generatespark, fuelburn, plasticburn, pulverize, pulverizeRed, pulverizeRedder, pulverizeSmall, pulverizeMedium, producesmoke, smeltsmoke, formsmoke, blastsmoke, lava, dooropen, doorclose, dooropenlarge, doorcloselarge, purify, purifyoil, purifystone, generate, mine, mineBig, mineHuge, smelt, teleportActivate, teleport, teleportOut, ripple, bubble;
public static Effect reactorsmoke, nuclearsmoke, nuclearcloud, redgeneratespark, generatespark, fuelburn, plasticburn,
pulverize, pulverizeRed, pulverizeRedder, pulverizeSmall, pulverizeMedium, producesmoke, smeltsmoke, formsmoke, blastsmoke,
lava, dooropen, doorclose, dooropenlarge, doorcloselarge, purify, purifyoil, purifystone, generate, mine, mineBig, mineHuge,
smelt, teleportActivate, teleport, teleportOut, ripple, bubble, commandSend;
@Override
public void load(){
@@ -274,5 +277,12 @@ public class BlockFx extends FxList implements ContentList{
});
Draw.reset();
});
commandSend = new Effect(28, e -> {
Draw.color(Palette.command);
Lines.stroke(e.fout() * 2f);
Lines.poly(e.x, e.y, 40, 4f + e.finpow() * 120f);
Draw.color();
});
}
}

View File

@@ -75,7 +75,7 @@ public class ShootFx extends FxList implements ContentList{
shootSmallFlame = new Effect(30f, e -> {
Draw.color(Palette.lightFlame, Palette.darkFlame, Color.GRAY, e.fin());
Angles.randLenVectors(e.id, 8, e.finpow() * 26f, e.rotation, 10f, (x, y) -> {
Angles.randLenVectors(e.id, 8, e.finpow() * 36f, e.rotation, 10f, (x, y) -> {
Fill.circle(e.x + x, e.y + y, 0.65f + e.fout() * 1.5f);
});

View File

@@ -35,65 +35,65 @@ public class ContentLoader{
private static OrderedMap<String, Array<Content>> contentMap = new OrderedMap<>();
private static ObjectSet<Consumer<Content>> initialization = new ObjectSet<>();
private static ContentList[] content = {
//effects
new BlockFx(),
new BulletFx(),
new EnvironmentFx(),
new ExplosionFx(),
new Fx(),
new ShootFx(),
new UnitFx(),
//effects
new BlockFx(),
new BulletFx(),
new EnvironmentFx(),
new ExplosionFx(),
new Fx(),
new ShootFx(),
new UnitFx(),
//items
new Items(),
//items
new Items(),
//status effects
new StatusEffects(),
//status effects
new StatusEffects(),
//liquids
new Liquids(),
//liquids
new Liquids(),
//bullets
new ArtilleryBullets(),
new FlakBullets(),
new MissileBullets(),
new StandardBullets(),
new TurretBullets(),
new WeaponBullets(),
//bullets
new ArtilleryBullets(),
new FlakBullets(),
new MissileBullets(),
new StandardBullets(),
new TurretBullets(),
new WeaponBullets(),
//ammotypes
new AmmoTypes(),
//ammotypes
new AmmoTypes(),
//weapons
new Weapons(),
//weapons
new Weapons(),
//mechs
new Mechs(),
//mechs
new Mechs(),
//units
new UnitTypes(),
//units
new UnitTypes(),
//blocks
new Blocks(),
new DefenseBlocks(),
new DistributionBlocks(),
new ProductionBlocks(),
new TurretBlocks(),
new DebugBlocks(),
new LiquidBlocks(),
new StorageBlocks(),
new UnitBlocks(),
new PowerBlocks(),
new CraftingBlocks(),
new UpgradeBlocks(),
new OreBlocks(),
//blocks
new Blocks(),
new DefenseBlocks(),
new DistributionBlocks(),
new ProductionBlocks(),
new TurretBlocks(),
new DebugBlocks(),
new LiquidBlocks(),
new StorageBlocks(),
new UnitBlocks(),
new PowerBlocks(),
new CraftingBlocks(),
new UpgradeBlocks(),
new OreBlocks(),
//not really a content class, but this makes initialization easier
new ColorMapper(),
//not really a content class, but this makes initialization easier
new ColorMapper(),
//recipes
new Recipes(),
//recipes
new Recipes(),
};
/**

View File

@@ -13,6 +13,7 @@ import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.game.ContentDatabase;
import io.anuke.mindustry.game.EventType.*;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.game.Saves;
import io.anuke.mindustry.input.DefaultKeybinds;
import io.anuke.mindustry.input.DesktopInput;
@@ -48,7 +49,6 @@ public class Control extends Module{
private ObjectMap<Sound, Long> soundMap = new ObjectMap<>();
private Throwable error;
//private Input gdxInput;
public Control(){
@@ -68,8 +68,6 @@ public class Control extends Module{
db.load();
//gdxInput = Gdx.input;
Sounds.setFalloff(9000f);
Sounds.setPlayer((sound, volume) -> {
long time = TimeUtils.millis();
@@ -84,14 +82,14 @@ public class Control extends Module{
DefaultKeybinds.load();
Settings.defaultList(
"ip", "localhost",
"port", port + "",
"color-0", Color.rgba8888(playerColors[8]),
"color-1", Color.rgba8888(playerColors[11]),
"color-2", Color.rgba8888(playerColors[13]),
"color-3", Color.rgba8888(playerColors[9]),
"name", "player",
"lastBuild", 0
"ip", "localhost",
"port", port + "",
"color-0", Color.rgba8888(playerColors[8]),
"color-1", Color.rgba8888(playerColors[11]),
"color-2", Color.rgba8888(playerColors[13]),
"color-3", Color.rgba8888(playerColors[9]),
"name", "player",
"lastBuild", 0
);
KeyBinds.load();
@@ -112,6 +110,12 @@ public class Control extends Module{
}
state.set(State.playing);
if(state.mode == GameMode.sandbox && !Settings.getBool("sandbox-warning", false)){
threads.runGraphics(() -> ui.showInfo("$mode.sandbox.warning"));
Settings.putBool("sandbox-warning", true);
Settings.save();
}
});
Events.on(WorldLoadGraphicsEvent.class, () -> {
@@ -144,12 +148,16 @@ public class Control extends Module{
});
Events.on(GameOverEvent.class, () -> {
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
//delete saves for game-over sectors
if(world.getSector() != null && world.getSector().hasSave()){
world.getSector().getSave().delete();
}
//TODO game over effect
ui.restart.show();
Timers.runTask(30f, () -> state.set(State.menu));
threads.runGraphics(() -> {
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
ui.restart.show();
state.set(State.menu);
});
});
Events.on(WorldLoadEvent.class, () -> threads.runGraphics(() -> Events.fire(WorldLoadGraphicsEvent.class)));
@@ -362,11 +370,16 @@ public class Control extends Module{
}
//check unlocked sectors
if(world.getSector() != null && world.getSector().goal.isComplete() && !world.getSector().complete){
world.sectors().completeSector(world.getSector().x, world.getSector().y);
world.sectors().save();
if(!headless){
ui.showInfoFade("$text.sector.unlocked");
if(world.getSector() != null && !world.getSector().complete){
//all assigned missions are complete
if(world.getSector().completedMissions >= world.getSector().missions.size){
world.sectors().completeSector(world.getSector().x, world.getSector().y);
world.sectors().save();
ui.missions.show(world.getSector());
}else if(world.getSector().currentMission().isComplete()){
//increment completed missions, check next index next frame
world.getSector().completedMissions ++;
}
}
@@ -374,7 +387,7 @@ public class Control extends Module{
if(!state.mode.infiniteResources && Timers.get("timerCheckUnlock", 120)){
checkUnlockableBlocks();
//save if the db changed, but don't save unlocks
//save if the db changed, but don't save in debug
if(db.isDirty() && !debug){
db.save();
}

View File

@@ -49,9 +49,7 @@ public class Logic extends Module{
state.set(State.playing);
state.wavetime = wavespace * state.difficulty.timeScaling * 2;
//fill inventory with items for debugging
for(TeamData team : state.teams.getTeams()){
for(TeamData team : state.teams.getTeams(true)){
for(Tile tile : team.cores){
if(debug){
for(Item item : Item.all()){
@@ -59,13 +57,20 @@ public class Logic extends Module{
tile.entity.items.set(item, 1000);
}
}
}else{
}else if(!state.mode.infiniteResources){
tile.entity.items.add(Items.tungsten, 50);
tile.entity.items.add(Items.lead, 20);
}
}
}
for(TeamData team : state.teams.getTeams(false)){
for(Tile tile : team.cores){
tile.entity.items.add(Items.tungsten, 2000);
tile.entity.items.add(Items.blastCompound, 2000);
}
}
Events.fire(PlayEvent.class);
}
@@ -131,11 +136,11 @@ public class Logic extends Module{
if(!state.is(State.paused) || Net.active()){
if(!state.mode.disableWaveTimer){
if(!state.mode.disableWaveTimer && !state.mode.disableWaves){
state.wavetime -= Timers.delta();
}
if(!Net.client() && state.wavetime <= 0){
if(!Net.client() && state.wavetime <= 0 && !state.mode.disableWaves){
runWave();
}

View File

@@ -12,9 +12,9 @@ import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.gen.RemoteReadServer;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.net.*;
import io.anuke.mindustry.net.Administration.PlayerInfo;
import io.anuke.mindustry.net.Packets.*;
@@ -80,12 +80,22 @@ public class NetServer extends Module{
Net.handleServer(ConnectPacket.class, (id, packet) -> {
String uuid = packet.uuid;
if(Net.getConnection(id) == null ||
admins.isIPBanned(Net.getConnection(id).address)) return;
NetConnection connection = Net.getConnection(id);
if(connection == null ||
admins.isIPBanned(connection.address)) return;
if(connection.hasBegunConnecting){
kick(id, KickReason.idInUse);
return;
}
connection.hasBegunConnecting = true;
TraceInfo trace = admins.getTraceByID(uuid);
PlayerInfo info = admins.getInfo(uuid);
trace.uuid = uuid;
trace.ip = connection.address;
trace.android = packet.mobile;
if(admins.isIDBanned(uuid)){
@@ -112,7 +122,7 @@ public class NetServer extends Module{
return;
}
if(player.uuid.equals(packet.uuid)){
if(player.uuid.equals(packet.uuid) || player.usid.equals(packet.usid)){
kick(id, KickReason.idInUse);
return;
}
@@ -175,16 +185,14 @@ public class NetServer extends Module{
NetConnection connection = Net.getConnection(id);
if(player == null || connection == null || packet.snapid < connection.lastRecievedClientSnapshot) return;
boolean verifyPosition = !player.isDead() && !debug && headless && !player.mech.flying && player.getCarrier() == null;
boolean verifyPosition = !player.isDead() && !debug && headless && player.getCarrier() == null;
if(connection.lastRecievedClientTime == 0) connection.lastRecievedClientTime = TimeUtils.millis() - 16;
long elapsed = TimeUtils.timeSinceMillis(connection.lastRecievedClientTime);
float maxSpeed = (packet.boosting && !player.mech.flying ? player.mech.boostSpeed : player.mech.speed) * 2.5f;
//extra 1.1x multiplicaton is added just in case
float maxMove = elapsed / 1000f * 60f * maxSpeed * 1.1f;
float maxSpeed = packet.boosting && !player.mech.flying ? player.mech.boostSpeed : player.mech.speed;
float maxMove = elapsed / 1000f * 60f * Math.min(compound(maxSpeed, player.mech.drag) * 1.2f, player.mech.maxSpeed * 1.05f);
player.pointerX = packet.pointerX;
player.pointerY = packet.pointerY;
@@ -197,12 +205,16 @@ public class NetServer extends Module{
}
vector.set(packet.x - player.getInterpolator().target.x, packet.y - player.getInterpolator().target.y);
vector.limit(maxMove);
float prevx = player.x, prevy = player.y;
player.set(player.getInterpolator().target.x, player.getInterpolator().target.y);
player.move(vector.x, vector.y);
if(!player.mech.flying){
player.move(vector.x, vector.y);
}else{
player.x += vector.x;
player.y += vector.y;
}
float newx = player.x, newy = player.y;
if(!verifyPosition){
@@ -213,6 +225,7 @@ public class NetServer extends Module{
}else if(Vector2.dst(packet.x, packet.y, newx, newy) > correctDist){
Call.onPositionSet(id, newx, newy); //teleport and correct position when necessary
}
//reset player to previous synced position so it gets interpolated
player.x = prevx;
player.y = prevy;
@@ -238,9 +251,16 @@ public class NetServer extends Module{
});
}
/**
* Sends a raw byte[] snapshot to a client, splitting up into chunks when needed.
*/
private float compound(float speed, float drag){
float total = 0f;
for(int i = 0; i < 20; i++){
total *= (1f - drag);
total += speed;
}
return total;
}
/** 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);
@@ -314,6 +334,8 @@ public class NetServer extends Module{
@Remote(targets = Loc.client)
public static void connectConfirm(Player player){
if(player.con == null || player.con.hasConnected) return;
player.add();
player.con.hasConnected = true;
Call.sendMessage("[accent]" + player.name + " [accent]has connected.");
@@ -352,8 +374,8 @@ public class NetServer extends Module{
Player player = connections.get(con.id);
if(player != null && (reason == KickReason.kick || reason == KickReason.banned) && admins.getTraceByID(getUUID(con.id)).uuid != null){
PlayerInfo info = admins.getInfo(admins.getTraceByID(getUUID(con.id)).uuid);
if(player != null && (reason == KickReason.kick || reason == KickReason.banned) && player.uuid != null){
PlayerInfo info = admins.getInfo(player.uuid);
info.timesKicked++;
info.lastKicked = TimeUtils.millis();
}

View File

@@ -43,10 +43,6 @@ public abstract class Platform {
public String getLocaleName(Locale locale){
return locale.toString();
}
/**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.*/

View File

@@ -66,7 +66,6 @@ public class Renderer extends RendererModule{
public Renderer(){
Core.batch = new SpriteBatch(4096);
pixelate = true;
Lines.setCircleVertices(14);
Shaders.init();
@@ -215,7 +214,24 @@ public class Renderer extends RendererModule{
blocks.processBlocks();
blocks.drawShadows();
blocks.drawBlocks(Layer.block);
for(Team team : Team.all){
if(blocks.isTeamShown(team)){
boolean outline = team != players[0].getTeam() && team != Team.none;
if(outline){
Shaders.outline.color.set(team.color);
Shaders.outline.color.a = 0.8f;
Graphics.beginShaders(Shaders.outline);
}
blocks.drawTeamBlocks(Layer.block, team);
if(outline){
Graphics.endShaders();
}
}
}
blocks.skipLayer(Layer.block);
Graphics.shader(Shaders.blockbuild, false);
blocks.drawBlocks(Layer.placement);

View File

@@ -3,6 +3,7 @@ package io.anuke.mindustry.core;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.utils.Queue;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Log;
@@ -19,6 +20,7 @@ public class ThreadHandler{
private float framesSinceUpdate;
private boolean enabled;
private boolean rendered = true;
private long lastFrameTime;
public ThreadHandler(ThreadProvider impl){
this.impl = impl;
@@ -69,7 +71,24 @@ public class ThreadHandler{
return framesSinceUpdate;
}
public void handleRender(){
public void handleBeginRender(){
lastFrameTime = TimeUtils.millis();
}
public void handleEndRender(){
int fpsCap = Settings.getInt("fpscap", 125);
if(fpsCap <= 120){
long target = 1000/fpsCap;
long elapsed = TimeUtils.timeSinceMillis(lastFrameTime);
if(elapsed < target){
try{
impl.sleep(target - elapsed);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
if(!enabled) return;

View File

@@ -43,7 +43,7 @@ public class UI extends SceneModule{
public AboutDialog about;
public RestartDialog restart;
public LevelDialog levels;
public CustomGameDialog levels;
public MapsDialog maps;
public LoadDialog load;
public DiscordDialog discord;
@@ -62,26 +62,27 @@ public class UI extends SceneModule{
public UnlocksDialog unlocks;
public ContentInfoDialog content;
public SectorsDialog sectors;
public MissionDialog missions;
private Locale lastLocale;
public UI(){
Dialog.setShowAction(() -> sequence(
alpha(0f),
originCenter(),
moveToAligned(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2, Align.center),
scaleTo(0.0f, 1f),
parallel(
scaleTo(1f, 1f, 0.1f, Interpolation.fade),
fadeIn(0.1f, Interpolation.fade)
)
alpha(0f),
originCenter(),
moveToAligned(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2, Align.center),
scaleTo(0.0f, 1f),
parallel(
scaleTo(1f, 1f, 0.1f, Interpolation.fade),
fadeIn(0.1f, Interpolation.fade)
)
));
Dialog.setHideAction(() -> sequence(
parallel(
scaleTo(0.01f, 0.01f, 0.1f, Interpolation.fade),
fadeOut(0.1f, Interpolation.fade)
)
parallel(
scaleTo(0.01f, 0.01f, 0.1f, Interpolation.fade),
fadeOut(0.1f, Interpolation.fade)
)
));
TooltipManager.getInstance().animations = false;
@@ -154,7 +155,7 @@ public class UI extends SceneModule{
join = new JoinDialog();
discord = new DiscordDialog();
load = new LoadDialog();
levels = new LevelDialog();
levels = new CustomGameDialog();
language = new LanguageDialog();
settings = new SettingsMenuDialog();
host = new HostDialog();
@@ -169,6 +170,7 @@ public class UI extends SceneModule{
unlocks = new UnlocksDialog();
content = new ContentInfoDialog();
sectors = new SectorsDialog();
missions = new MissionDialog();
Group group = Core.scene.getRoot();
@@ -179,6 +181,7 @@ public class UI extends SceneModule{
listfrag.build(group);
debugfrag.build(group);
loadfrag.build(group);
}
@Override

View File

@@ -219,6 +219,7 @@ public class World extends Module{
/**Loads up a sector map. This does not call play(), but calls reset().*/
public void loadSector(Sector sector){
currentSector = sector;
state.mode = sector.missions.peek().getMode();
Timers.mark();
Timers.mark();
@@ -230,16 +231,13 @@ public class World extends Module{
Tile[][] tiles = createTiles(width, height);
Map map = new Map("Sector [" + sector.x + ", " + sector.y + "]", new MapMeta(0, new ObjectMap<>(), width, height, null), true, () -> null);
Map map = new Map("Sector " + sector.x + ", " + sector.y, new MapMeta(0, new ObjectMap<>(), width, height, null), true, () -> null);
setMap(map);
EntityPhysics.resizeTree(0, 0, width * tilesize, height * tilesize);
Timers.mark();
generator.generateMap(tiles, sector.x, sector.y);
Log.info("Time to generate base map: {0}", Timers.elapsed());
Log.info("Time to generate fully without additional events: {0}", Timers.elapsed());
generator.generateMap(tiles, sector);
endMapLoad();

View File

@@ -25,7 +25,7 @@ public class MapEditor{
private byte elevation;
private int rotation;
private Block drawBlock = Blocks.stone;
private Team drawTeam = Team.none;
private Team drawTeam = Team.blue;
public MapEditor(){

View File

@@ -495,7 +495,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
.size(size).get().setAlignment(Align.center, Align.center);
t.addImageButton("icon-arrow-right", 16 * 2f, () -> editor.setDrawElevation(editor.getDrawElevation() + 1))
.disabled(b -> editor.getDrawElevation() >= 127).size(size);
.disabled(b -> editor.getDrawElevation() >= 63).size(size);
}).colspan(3).height(size).padTop(-5).width(size * 3f);
}).margin(0).left().growY();
@@ -566,7 +566,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){
if((block.synthetic() && (Recipe.getByResult(block) == null || !control.database().isUnlocked(Recipe.getByResult(block))))
&& !debug && block != StorageBlocks.core){
continue;
}
@@ -574,6 +575,10 @@ public class MapEditorDialog extends Dialog implements Disposable{
continue;
}
if(Recipe.getByResult(block) != null && Recipe.getByResult(block).desktopOnly && mobile && !debug){
continue;
}
if(regions.length == 0 || regions[0] == Draw.region("jjfgj")) continue;
Stack stack = new Stack();

View File

@@ -9,7 +9,7 @@ import io.anuke.mindustry.content.fx.Fx;
import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
@@ -43,7 +43,7 @@ public class Damage{
}
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){
Timers.run(i / 2, () -> CallEntity.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)));
Timers.run(i / 2, () -> Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)));
}
int waves = Mathf.clamp((int) (explosiveness / 4), 0, 30);

View File

@@ -14,10 +14,9 @@ import io.anuke.mindustry.entities.effect.ItemDrop;
import io.anuke.mindustry.entities.effect.ScorchDecal;
import io.anuke.mindustry.entities.traits.*;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallEntity;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Trail;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.NetConnection;
import io.anuke.mindustry.type.*;
@@ -83,7 +82,7 @@ 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)
@Remote(targets = Loc.server, called = Loc.server)
public static void onPlayerDamage(Player player, float amount){
if(player == null) return;
@@ -91,7 +90,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
player.health -= amount;
}
@Remote(in = In.entities, targets = Loc.server, called = Loc.server)
@Remote(targets = Loc.server, called = Loc.server)
public static void onPlayerDeath(Player player){
if(player == null) return;
@@ -228,10 +227,10 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
@Override
public void damage(float amount){
CallEntity.onPlayerDamage(this, calculateDamage(amount));
Call.onPlayerDamage(this, calculateDamage(amount));
if(health <= 0 && !dead){
CallEntity.onPlayerDeath(this);
Call.onPlayerDeath(this);
}
}
@@ -511,7 +510,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
if(!ui.chatfrag.chatOpen() && Inputs.keyTap("drop_unit")){
if(!mech.flying){
if(getCarrier() != null){
CallEntity.dropSelf(this);
Call.dropSelf(this);
}
}else if(getCarry() != null){
dropCarry();
@@ -548,7 +547,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
velocity.add(movement);
}
float prex = x, prey = y;
updateVelocityStatus(mech.drag, 10f);
updateVelocityStatus(mech.drag, debug ? 10f : mech.maxSpeed);
moved = distanceTo(prex, prey) > 0.01f;
}else{
velocity.setZero();

View File

@@ -10,8 +10,7 @@ import io.anuke.mindustry.content.fx.Fx;
import io.anuke.mindustry.entities.bullet.Bullet;
import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.CallBlocks;
import io.anuke.mindustry.net.In;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Edges;
import io.anuke.mindustry.world.Tile;
@@ -55,14 +54,14 @@ public class TileEntity extends BaseEntity implements TargetTrait{
private boolean sleeping;
private float sleepTime;
@Remote(called = Loc.server, in = In.blocks)
@Remote(called = Loc.server)
public static void onTileDamage(Tile tile, float health){
if(tile.entity != null){
tile.entity.health = health;
}
}
@Remote(called = Loc.server, in = In.blocks)
@Remote(called = Loc.server)
public static void onTileDestroyed(Tile tile){
if(tile.entity == null) return;
tile.entity.onDeath();
@@ -85,10 +84,7 @@ public class TileEntity extends BaseEntity implements TargetTrait{
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){
@@ -98,20 +94,6 @@ 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.
*/
public void wakeUp(){
noSleep();
for(Tile tile : proximity){
if(tile.entity.isSleeping()){
tile.entity.wakeUp();
}
}
}
/**Call when this entity is updating. This wakes it up.*/
public void noSleep(){
sleepTime = 0f;
@@ -159,10 +141,10 @@ public class TileEntity extends BaseEntity implements TargetTrait{
public void damage(float damage){
if(dead) return;
CallBlocks.onTileDamage(tile, health - tile.block().handleDamage(tile, damage));
Call.onTileDamage(tile, health - tile.block().handleDamage(tile, damage));
if(health <= 0){
CallBlocks.onTileDestroyed(tile);
Call.onTileDestroyed(tile);
}
}

View File

@@ -214,9 +214,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
});
}
/**
* 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());
@@ -280,7 +278,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
if(Math.abs(py - y) <= 0.0001f) velocity.y = 0f;
}
velocity.scl(Mathf.clamp(1f - drag * floor.dragMultiplier * Timers.delta()));
velocity.scl(Mathf.clamp(1f - drag * (isFlying() ? 1f : floor.dragMultiplier) * Timers.delta()));
}
public void applyEffect(StatusEffect effect, float intensity){

View File

@@ -110,6 +110,12 @@ public class UnitInventory implements Saveable{
ammos.add(entry);
}
public void fillAmmo(AmmoType type){
totalAmmo = ammoCapacity();
ammos.clear();
ammos.add(new AmmoEntry(type, ammoCapacity()));
}
public int capacity(){
return unit.getItemCapacity();
}

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