Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b70ea8afd6 | ||
|
|
fe6e3b03ba | ||
|
|
0849ed8cfc | ||
|
|
715c099dcc | ||
|
|
f9da9a3fe1 | ||
|
|
d4449289a8 | ||
|
|
adaf3112ed | ||
|
|
6524fc07a7 | ||
|
|
54e2c15ae4 | ||
|
|
5c224a49b6 | ||
|
|
fad7afb97e | ||
|
|
d5c78639f3 | ||
|
|
b91d26c509 | ||
|
|
051a2b6548 | ||
|
|
dfd08a8b69 | ||
|
|
3f40a4a63d | ||
|
|
a782e23e57 | ||
|
|
b74a466157 | ||
|
|
c7e7f7e58c | ||
|
|
760440fd24 | ||
|
|
856ea50676 | ||
|
|
dbd90bf843 | ||
|
|
8daf0a6619 | ||
|
|
6a9d23a2ef | ||
|
|
4d3cb54f7e | ||
|
|
22444e2d8e | ||
|
|
11a2016412 | ||
|
|
39588af3e4 | ||
|
|
99faf69fca | ||
|
|
0eec03c366 | ||
|
|
950e46e360 | ||
|
|
489d3d4777 | ||
|
|
07f17b1538 | ||
|
|
f42ba5adc8 | ||
|
|
6313b5b589 | ||
|
|
77d15c71cc | ||
|
|
5ffc3aca6a | ||
|
|
ffe6d8b356 | ||
|
|
13ee5512b2 | ||
|
|
3c36fccdf4 | ||
|
|
cd626b5718 | ||
|
|
a684e5b864 | ||
|
|
e919f0d60a | ||
|
|
35b883c065 | ||
|
|
fe95be6bd2 | ||
|
|
2bec423fd7 | ||
|
|
5ddbc7d25e | ||
|
|
7b829e3c3f | ||
|
|
e9c0648240 | ||
|
|
8a2b01fb27 | ||
|
|
3fa77d326c | ||
|
|
651886db35 | ||
|
|
0a4e5ca80e | ||
|
|
ef6a54580d | ||
|
|
ff3907d6f4 | ||
|
|
d36e7e5e45 | ||
|
|
e9cb036af1 | ||
|
|
ed8fc1fa1b | ||
|
|
c9b1c3f5ff | ||
|
|
3f16c75e06 | ||
|
|
9ab30eda4a | ||
|
|
467327b5b0 | ||
|
|
32da99fcc1 | ||
|
|
178cd16010 | ||
|
|
7357cef274 | ||
|
|
033e489904 | ||
|
|
6de284f6eb | ||
|
|
776c5bcb82 | ||
|
|
8779326e78 | ||
|
|
4dfa4a2348 | ||
|
|
39cc6cfd6d | ||
|
|
98ef75a581 | ||
|
|
ab69f947ef | ||
|
|
a9bc173016 | ||
|
|
72181c154d | ||
|
|
acc8eda33f | ||
|
|
a5ea0ee39e | ||
|
|
ee44bc3143 | ||
|
|
c9106ef256 | ||
|
|
d44b9ae317 | ||
|
|
dd29c202ef | ||
|
|
1ed80c59fd | ||
|
|
17d8aa5dc2 | ||
|
|
dc490696ac | ||
|
|
8764208045 | ||
|
|
536e460fce | ||
|
|
b1dc1513e5 | ||
|
|
fdef57d38f | ||
|
|
e11ada7ef2 | ||
|
|
4a925237ae | ||
|
|
62ee68679d | ||
|
|
01d1d3adf0 | ||
|
|
67c9b2d276 | ||
|
|
eae56c4230 | ||
|
|
d02fcfad46 | ||
|
|
317fef8887 | ||
|
|
7ecec5548e | ||
|
|
f42b6d58ec | ||
|
|
bce8c14efb | ||
|
|
c68ca5ee87 | ||
|
|
8e21f0a113 | ||
|
|
03dc7b0ac5 | ||
|
|
5afb043fb2 | ||
|
|
389b748395 | ||
|
|
6103e5b664 | ||
|
|
ac10d2b082 | ||
|
|
47c398f744 | ||
|
|
b192b13250 | ||
|
|
ae0c0966d3 | ||
|
|
a1330c444c | ||
|
|
f4f7f3cc1d | ||
|
|
8927383d7b | ||
|
|
506647e70b | ||
|
|
ed9ad45332 | ||
|
|
07ded59fb8 | ||
|
|
c2e1e97862 | ||
|
|
66257c15af | ||
|
|
d6ecbcdf11 | ||
|
|
52da06729b | ||
|
|
c04a67bc85 | ||
|
|
47a477dedd | ||
|
|
45ae083eea | ||
|
|
4040d1995a | ||
|
|
a620647376 | ||
|
|
3d970138ca | ||
|
|
385c147975 | ||
|
|
29f67110be | ||
|
|
0eb8dd5170 | ||
|
|
3b85f6a499 | ||
|
|
b907b839bf | ||
|
|
16fb1154ef | ||
|
|
c4622772f8 | ||
|
|
c994662b97 | ||
|
|
017b6e86f7 | ||
|
|
a86146faa2 | ||
|
|
05b2ecd4eb | ||
|
|
430a4ce59e | ||
|
|
4fff0f9af7 | ||
|
|
e830e65247 | ||
|
|
990fe2bdf8 | ||
|
|
0358038b71 | ||
|
|
9ad195b68b | ||
|
|
5911a7a0f5 |
@@ -50,7 +50,7 @@ jobs:
|
||||
cd ../Mindustry
|
||||
- name: Create artifacts
|
||||
run: |
|
||||
./gradlew desktop:dist server:dist core:depsJar core:mergedJavadoc -Pbuildversion=${RELEASE_VERSION:1}
|
||||
./gradlew desktop:dist server:dist core:depsJar core:assetsJar core:mergedJavadoc -Pbuildversion=${RELEASE_VERSION:1}
|
||||
- name: Update docs
|
||||
run: |
|
||||
cd ../
|
||||
@@ -97,3 +97,11 @@ jobs:
|
||||
file: core/build/libs/core-release-deps.jar
|
||||
asset_name: dependencies.jar
|
||||
tag: ${{ github.ref }}
|
||||
|
||||
- name: Upload assets JAR
|
||||
uses: svenstaro/upload-release-action@v2
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: core/build/libs/core-release-assets.jar
|
||||
asset_name: assets.jar
|
||||
tag: ${{ github.ref }}
|
||||
|
||||
@@ -75,8 +75,8 @@ android{
|
||||
}
|
||||
|
||||
compileOptions{
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
flavorDimensions = ["google"]
|
||||
|
||||
@@ -5,20 +5,22 @@ import android.app.*;
|
||||
import android.content.*;
|
||||
import android.content.pm.*;
|
||||
import android.net.*;
|
||||
import android.os.Build.*;
|
||||
import android.os.*;
|
||||
import android.os.Build.*;
|
||||
import android.telephony.*;
|
||||
import arc.*;
|
||||
import arc.backend.android.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import dalvik.system.*;
|
||||
import mindustry.*;
|
||||
import mindustry.game.Saves.*;
|
||||
import mindustry.io.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.FileChooser.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.io.*;
|
||||
@@ -30,7 +32,7 @@ import static mindustry.Vars.*;
|
||||
public class AndroidLauncher extends AndroidApplication{
|
||||
public static final int PERMISSION_REQUEST_CODE = 1;
|
||||
boolean doubleScaleTablets = true;
|
||||
FileChooser chooser;
|
||||
FileChooserDialog chooser;
|
||||
Runnable permCallback;
|
||||
|
||||
@Override
|
||||
@@ -97,8 +99,7 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
};
|
||||
}catch(SecurityException e){
|
||||
//`setReadOnly` to jar file in `/sdcard/Android/data/...` does not work on some Android 14 device
|
||||
//But in `/data/...` it works
|
||||
//`setReadOnly` to jar file in `/sdcard/Android/data/...` does not work on some Android 14 devices, but in `/data/...`, it does
|
||||
|
||||
if(Build.VERSION.SDK_INT < VERSION_CODES.O_MR1){
|
||||
throw e;
|
||||
@@ -127,27 +128,34 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showFileChooser(boolean open, String title, String extension, Cons<Fi> cons){
|
||||
showFileChooser(open, title, cons, extension);
|
||||
}
|
||||
|
||||
void showFileChooser(boolean open, String title, Cons<Fi> cons, String... extensions){
|
||||
public void showFileChooser(FileChooserParams params){
|
||||
try{
|
||||
String extension = extensions[0];
|
||||
String extension = params.extensions[0];
|
||||
|
||||
if(VERSION.SDK_INT >= VERSION_CODES.Q){
|
||||
Intent intent = new Intent(open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
||||
Intent intent = new Intent(params.open ? Intent.ACTION_OPEN_DOCUMENT : Intent.ACTION_CREATE_DOCUMENT);
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setType(extension.equals("zip") && !open && extensions.length == 1 ? "application/zip" : "*/*");
|
||||
intent.putExtra(Intent.EXTRA_TITLE, "export." + extension);
|
||||
intent.setType(extension.equals("zip") && !params.open && params.extensions.length == 1 ? "application/zip" : "*/*");
|
||||
intent.putExtra(Intent.EXTRA_TITLE, params.fileName);
|
||||
if(params.allowMultiple){
|
||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
|
||||
}
|
||||
|
||||
addResultListener(i -> startActivityForResult(intent, i), (code, in) -> {
|
||||
if(code == Activity.RESULT_OK && in != null && in.getData() != null){
|
||||
Uri uri = in.getData();
|
||||
Uri[] uris;
|
||||
if(in.getClipData() != null){
|
||||
uris = new Uri[in.getClipData().getItemCount()];
|
||||
for(int i = 0; i < uris.length; i++){
|
||||
uris[i] = in.getClipData().getItemAt(i).getUri();
|
||||
}
|
||||
}else{
|
||||
uris = new Uri[]{in.getData()};
|
||||
}
|
||||
|
||||
if(uri.getPath().contains("(invalid)")) return;
|
||||
if(uris.length == 0 || uris[0].getPath().contains("(invalid)")) return;
|
||||
|
||||
Core.app.post(() -> Core.app.post(() -> cons.get(new Fi(uri.getPath()){
|
||||
Fi[] files = Seq.with(uris).map(uri -> new Fi(uri.getPath()){
|
||||
@Override
|
||||
public InputStream read(){
|
||||
try{
|
||||
@@ -165,18 +173,14 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
throw new ArcRuntimeException(e);
|
||||
}
|
||||
}
|
||||
})));
|
||||
}).toArray(Fi.class);
|
||||
|
||||
Core.app.post(() -> Core.app.post(() -> params.handleChooseResult(files)));
|
||||
}
|
||||
});
|
||||
}else if(VERSION.SDK_INT >= VERSION_CODES.M && !(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
|
||||
checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)){
|
||||
chooser = new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), open, file -> {
|
||||
if(!open){
|
||||
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
|
||||
}else{
|
||||
cons.get(file);
|
||||
}
|
||||
});
|
||||
chooser = FileChooser.createFallbackFileChooser(params);
|
||||
|
||||
ArrayList<String> perms = new ArrayList<>();
|
||||
if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
||||
@@ -187,22 +191,13 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
}
|
||||
requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
|
||||
}else{
|
||||
if(open){
|
||||
new FileChooser(title, file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
|
||||
}else{
|
||||
super.showFileChooser(open, "@open", extension, cons);
|
||||
}
|
||||
FileChooser.showFallbackFileChooser(params);
|
||||
}
|
||||
}catch(Throwable error){
|
||||
Core.app.post(() -> Vars.ui.showException(error));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showMultiFileChooser(Cons<Fi> cons, String... extensions){
|
||||
showFileChooser(true, "@open", cons, extensions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginForceLandscape(){
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
|
||||
@@ -235,7 +230,6 @@ public class AndroidLauncher extends AndroidApplication{
|
||||
Log.err("Failed to delete cached folder", t);
|
||||
}
|
||||
|
||||
|
||||
//move to internal storage if there's no file indicating that it moved
|
||||
if(!Core.files.local("files_moved").exists()){
|
||||
Log.info("Moving files to external storage...");
|
||||
|
||||
@@ -88,6 +88,7 @@ public class Annotations{
|
||||
boolean collide() default false;
|
||||
boolean spatial() default false;
|
||||
boolean mapping() default false;
|
||||
boolean update() default false;
|
||||
}
|
||||
|
||||
/** Indicates an entity definition. */
|
||||
@@ -107,6 +108,8 @@ public class Annotations{
|
||||
boolean genio() default true;
|
||||
/** Whether I made a massive mistake by merging two different class branches */
|
||||
boolean legacy() default false;
|
||||
/** Groups to exclude. */
|
||||
String[] excludeGroups() default {};
|
||||
}
|
||||
|
||||
/** Indicates an internal interface for entity components. */
|
||||
|
||||
@@ -232,7 +232,7 @@ public abstract class BaseProcessor extends AbstractProcessor{
|
||||
|
||||
@Override
|
||||
public SourceVersion getSupportedSourceVersion(){
|
||||
return SourceVersion.RELEASE_8;
|
||||
return SourceVersion.RELEASE_17;
|
||||
}
|
||||
|
||||
public void process(RoundEnvironment env) throws Exception{
|
||||
|
||||
@@ -242,7 +242,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
boolean collides = an.collide();
|
||||
groupDefs.add(new GroupDefinition(name,
|
||||
ClassName.bestGuess(packageName + "." + groupType), types, an.spatial(), an.mapping(), collides));
|
||||
ClassName.bestGuess(packageName + "." + groupType), types, an.spatial(), an.mapping(), collides, an.update()));
|
||||
|
||||
TypeSpec.Builder accessor = TypeSpec.interfaceBuilder("IndexableEntity__" + name);
|
||||
accessor.addMethod(MethodSpec.methodBuilder("setIndex__" + name).addModifiers(Modifier.ABSTRACT, Modifier.PUBLIC).addParameter(int.class, "index").returns(void.class).build());
|
||||
@@ -258,7 +258,7 @@ public class EntityProcess extends BaseProcessor{
|
||||
|
||||
//all component classes (not interfaces)
|
||||
Seq<Stype> components = allComponents(type);
|
||||
Seq<GroupDefinition> groups = groupDefs.select(g -> (!g.components.isEmpty() && !g.components.contains(s -> !components.contains(s))) || g.manualInclusions.contains(type));
|
||||
Seq<GroupDefinition> groups = groupDefs.select(g -> (!g.components.isEmpty() && !Structs.contains(ann.excludeGroups(), g.name) && !g.components.contains(s -> !components.contains(s))) || g.manualInclusions.contains(type));
|
||||
ObjectMap<String, Seq<Smethod>> methods = new ObjectMap<>();
|
||||
ObjectMap<FieldSpec, Svar> specVariables = new ObjectMap<>();
|
||||
ObjectSet<String> usedFields = new ObjectSet<>();
|
||||
@@ -700,7 +700,11 @@ public class EntityProcess extends BaseProcessor{
|
||||
}
|
||||
}
|
||||
|
||||
groupUpdate.addStatement("all.update()");
|
||||
for(GroupDefinition group : groupDefs){
|
||||
if(group.updates){
|
||||
groupUpdate.addStatement("$L.update()", group.name);
|
||||
}
|
||||
}
|
||||
|
||||
for(GroupDefinition group : groupDefs){
|
||||
if(group.collides){
|
||||
@@ -985,16 +989,17 @@ public class EntityProcess extends BaseProcessor{
|
||||
final String name;
|
||||
final ClassName baseType;
|
||||
final Seq<Stype> components;
|
||||
final boolean spatial, mapping, collides;
|
||||
final boolean spatial, mapping, collides, updates;
|
||||
final ObjectSet<Selement> manualInclusions = new ObjectSet<>();
|
||||
|
||||
public GroupDefinition(String name, ClassName bestType, Seq<Stype> components, boolean spatial, boolean mapping, boolean collides){
|
||||
public GroupDefinition(String name, ClassName bestType, Seq<Stype> components, boolean spatial, boolean mapping, boolean collides, boolean updates){
|
||||
this.baseType = bestType;
|
||||
this.components = components;
|
||||
this.name = name;
|
||||
this.spatial = spatial;
|
||||
this.mapping = mapping;
|
||||
this.collides = collides;
|
||||
this.updates = updates;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -142,6 +142,19 @@ public class AssetsProcess extends BaseProcessor{
|
||||
.addParameter(int.class, "id")
|
||||
.returns(Sound.class)
|
||||
.addStatement("return (Sound)idToSound.get(id, () -> Sounds.none)").build());
|
||||
|
||||
type.addMethod(MethodSpec.methodBuilder("registerSound")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||
.addParameter(Sound.class, "sound")
|
||||
.addParameter(int.class, "id")
|
||||
.returns(void.class)
|
||||
.addStatement("idToSound.put(id, sound); soundToId.put(sound, id);").build());
|
||||
|
||||
type.addMethod(MethodSpec.methodBuilder("unregisterSound")
|
||||
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||
.addParameter(Sound.class, "sound")
|
||||
.returns(void.class)
|
||||
.addStatement("int id = soundToId.get(sound); if(id != 0){ soundToId.remove(sound); idToSound.remove(id); }").build());
|
||||
}
|
||||
|
||||
HashSet<String> names = new HashSet<>();
|
||||
|
||||
@@ -193,7 +193,7 @@ allprojects{
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile){
|
||||
targetCompatibility = 8
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
options.encoding = "UTF-8"
|
||||
options.compilerArgs += ["-Xlint:deprecation"]
|
||||
@@ -214,16 +214,32 @@ allprojects{
|
||||
|
||||
configure(project(":annotations")){
|
||||
tasks.withType(JavaCompile){
|
||||
targetCompatibility = 8
|
||||
sourceCompatibility = 8
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
options.fork = true
|
||||
|
||||
options.compilerArgs.addAll([
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED",
|
||||
"--add-exports", "jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED",
|
||||
"--add-exports", "java.base/sun.reflect.annotation=ALL-UNNAMED"
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
//compile with java 8 compatibility for everything except the annotation project
|
||||
configure(subprojects - project(":annotations") - project(":tests")){
|
||||
tasks.withType(JavaCompile){
|
||||
options.compilerArgs.addAll(['--release', '8'])
|
||||
options.compilerArgs.addAll(['--release', '17'])
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc){
|
||||
@@ -254,7 +270,6 @@ project(":desktop"){
|
||||
implementation "com.github.Anuken:steamworks4j:$steamworksVersion"
|
||||
|
||||
implementation arcModule("backends:backend-sdl")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,7 +281,7 @@ project(":core"){
|
||||
kapt{
|
||||
javacOptions{
|
||||
option("-source", "17")
|
||||
option("-target", "1.8")
|
||||
option("-target", "17")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -330,17 +345,26 @@ project(":core"){
|
||||
from sourceSets.main.allSource
|
||||
}
|
||||
|
||||
task assetsJar(type: Jar, dependsOn: ":tools:pack"){
|
||||
task assetsJar(type: Jar){
|
||||
archiveClassifier = 'assets'
|
||||
from files("assets"){
|
||||
exclude "config", "cache", "music", "sounds", "sprites/fallback"
|
||||
|
||||
into('assets'){
|
||||
from 'assets'
|
||||
exclude 'config', 'cache', 'music', 'sounds', 'sprites/fallback'
|
||||
}
|
||||
|
||||
into('assets-raw/sprites'){
|
||||
from 'assets-raw/sprites_out'
|
||||
include '**/*.png'
|
||||
}
|
||||
}
|
||||
|
||||
task musicJar(type: Jar){
|
||||
archiveClassifier = 'music'
|
||||
from files("assets"){
|
||||
include "music/*", "sounds/*"
|
||||
|
||||
into('assets'){
|
||||
from 'assets'
|
||||
include '**/*.ogg', '**/*.mp3'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -358,7 +382,6 @@ project(":core"){
|
||||
if(localArc && debugged()) api arcModule("extensions:recorder")
|
||||
if(localArc) api arcModule(":extensions:packer")
|
||||
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
compileOnly project(":annotations")
|
||||
if(!project.hasProperty("noKapt")) kapt project(":annotations")
|
||||
}
|
||||
@@ -403,7 +426,7 @@ project(":server"){
|
||||
dependencies{
|
||||
implementation project(":core")
|
||||
implementation arcModule("backends:backend-headless")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
implementation 'org.jline:jline:4.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -450,7 +473,6 @@ project(":tools"){
|
||||
implementation arcModule("backends:backend-headless")
|
||||
|
||||
implementation("com.google.guava:guava:33.3.1-jre")
|
||||
annotationProcessor 'com.github.Anuken:jabel:0.9.0'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -308,12 +308,6 @@
|
||||
"discord-logo-white"
|
||||
]
|
||||
},
|
||||
{
|
||||
"uid": "dd6df3b754e8d0dbf09d9b24088f0442",
|
||||
"css": "box",
|
||||
"code": 59422,
|
||||
"src": "iconic"
|
||||
},
|
||||
{
|
||||
"uid": "f08ba9f0e8f9b426a92efcaa59c1e932",
|
||||
"css": "reddit-alien",
|
||||
@@ -1083,6 +1077,186 @@
|
||||
"search": [
|
||||
"arrow-note"
|
||||
]
|
||||
},
|
||||
{
|
||||
"uid": "9ea0a737ccc45d6c510dcbae56058849",
|
||||
"css": "music",
|
||||
"code": 59402,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "81db033e704eb7c586a365559d7c0f36",
|
||||
"css": "file-audio",
|
||||
"code": 61895,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e44601720c64e6bb6a2d5cba6b0c588c",
|
||||
"css": "volume-off",
|
||||
"code": 59404,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "fee6e00f36e8ca8ef3e4a62caa213bf6",
|
||||
"css": "volume-down",
|
||||
"code": 59423,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "76857a03fbaa6857fe063b6c25aa98ed",
|
||||
"css": "volume-up",
|
||||
"code": 59424,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "3db5347bd219f3bce6025780f5d9ef45",
|
||||
"css": "tag",
|
||||
"code": 59425,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "a3f89e106175a5c5c4e9738870b12e55",
|
||||
"css": "tags",
|
||||
"code": 59432,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "69bd9dfe950d07d910f39c6988364e49",
|
||||
"css": "battery-4",
|
||||
"code": 62016,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "7ab4ec24078133effbc4e923b65ef835",
|
||||
"css": "battery-3",
|
||||
"code": 62017,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e430a168b45ba40aa988ca1a5034a553",
|
||||
"css": "battery-2",
|
||||
"code": 62018,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "99f4ea74adc24022106932d84a49b055",
|
||||
"css": "battery-1",
|
||||
"code": 62019,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "9983d2489e028d659d196915a25ef3ca",
|
||||
"css": "battery-0",
|
||||
"code": 62020,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "26613a2e6bc41593c54bead46f8c8ee3",
|
||||
"css": "file-code",
|
||||
"code": 61897,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "dd69d9aa589ea7bc0a82a3fe67039f4b",
|
||||
"css": "file-video",
|
||||
"code": 61896,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e80ae555c1413a4ec18b33fb348b4049",
|
||||
"css": "file-archive",
|
||||
"code": 61894,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c95735c17a10af81448c7fed98a04546",
|
||||
"css": "folder-open",
|
||||
"code": 59438,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "b091a8bd0fdade174951f17d936f51e4",
|
||||
"css": "folder-empty",
|
||||
"code": 61716,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6533bdc16ab201eb3f3b27ce989cab33",
|
||||
"css": "folder-open-empty",
|
||||
"code": 61717,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "c7a75a25880928fe76981a53eca4f926",
|
||||
"css": "inbox",
|
||||
"code": 59439,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "6fe95ffc3c807e62647d4f814a96e0d7",
|
||||
"css": "sitemap",
|
||||
"code": 61672,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "2c413e78faf1d6631fd7b094d14c2253",
|
||||
"css": "cloud",
|
||||
"code": 59441,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "de2fc7a5c986ab8c622f63455d7cf814",
|
||||
"css": "upload-cloud",
|
||||
"code": 61678,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "f5999a012fc3752386635ec02a858447",
|
||||
"css": "download-cloud",
|
||||
"code": 61677,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "e7a4824e79002c2d8ce3047b2da8b5a2",
|
||||
"css": "rain",
|
||||
"code": 59442,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "ac10a3a3077eab1b9d66509eb25fb9b4",
|
||||
"css": "cloud-sun",
|
||||
"code": 59448,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "6f200a5a449259c51cd0ccf56b4c1e93",
|
||||
"css": "drizzle",
|
||||
"code": 59452,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "3cac7625657b10cf706e7f332749c912",
|
||||
"css": "cloud-flash",
|
||||
"code": 59456,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "364cc69fb3edb8fb21caa6a2c0489589",
|
||||
"css": "cloud-wind",
|
||||
"code": 59457,
|
||||
"src": "typicons"
|
||||
},
|
||||
{
|
||||
"uid": "cc05df515bebe11df3ada0a5910a8f6d",
|
||||
"css": "box",
|
||||
"code": 59422,
|
||||
"src": "entypo"
|
||||
},
|
||||
{
|
||||
"uid": "d5f287ad8e3a2db8f808bc09980ec3dc",
|
||||
"css": "chart-alt",
|
||||
"code": 59459,
|
||||
"src": "typicons"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 428 B |
|
Before Width: | Height: | Size: 633 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 425 B |
|
Before Width: | Height: | Size: 119 B After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 149 B After Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 359 B |
|
Before Width: | Height: | Size: 364 B After Width: | Height: | Size: 400 B |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 560 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1010 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
|
||||
screenshot = Screenshot saved to {0}
|
||||
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Game Over
|
||||
gameover.disconnect = Disconnect
|
||||
gameover.pvp = The[accent] {0}[] team is victorious!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Sort by recent
|
||||
mods.browser.sortstars = Sort by stars
|
||||
|
||||
export.file = Export File
|
||||
import.file = Import File
|
||||
copy.clipboard = Copy to Clipboard
|
||||
import.clipboard = Import from Clipboard
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Share on Workshop
|
||||
|
||||
schematic = Schematic
|
||||
schematic.add = Save Schematic...
|
||||
schematics = Schematics
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = A schematic by that name already exists. Replace it?
|
||||
schematic.exists = A schematic by that name already exists.
|
||||
schematic.import = Import Schematic...
|
||||
schematic.exportfile = Export File
|
||||
schematic.importfile = Import File
|
||||
schematic.browseworkshop = Browse Workshop
|
||||
schematic.copy = Copy to Clipboard
|
||||
schematic.copy.import = Import from Clipboard
|
||||
schematic.shareworkshop = Share on Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||
schematic.saved = Schematic saved.
|
||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
mod.enable = Enable
|
||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||
@@ -329,7 +332,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Unable to join game ([accent]{0}[]).
|
||||
connecting = [accent]Connecting...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Loading world data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = I/O error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Invalid port number!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -346,6 +354,13 @@ save.export = Export Save
|
||||
save.import.invalid = [accent]This save is invalid!
|
||||
save.import.fail = [scarlet]Failed to import save: [accent]{0}
|
||||
save.export.fail = [scarlet]Failed to export save: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n\
|
||||
[lightgray]This is likely because the save file was not properly exported.\n\
|
||||
[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n\
|
||||
[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Import Save
|
||||
save.newslot = Save name:
|
||||
save.rename = Rename
|
||||
@@ -481,14 +496,6 @@ editor.rules = Rules
|
||||
editor.generation = Generation
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Data Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -513,6 +520,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patches
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundles
|
||||
asset.image = Images
|
||||
asset.sound = Sounds
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Data Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets found.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Image Zip
|
||||
asset.image.exportzip = Export Image Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Waves
|
||||
waves.team = Team
|
||||
@@ -531,7 +607,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Preview
|
||||
waves.edit = Edit...
|
||||
waves.random = Random
|
||||
waves.copy = Copy to Clipboard
|
||||
waves.load = Load from Clipboard
|
||||
@@ -558,6 +633,7 @@ all = All
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Details...
|
||||
edit = Edit
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1070,6 +1146,7 @@ stat.targetsground = Targets Ground
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Move Speed
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Time Between Launches
|
||||
stat.shootrange = Range
|
||||
stat.size = Size
|
||||
@@ -1547,6 +1624,7 @@ rules.enemyCheat = Infinite Enemy Team Resources
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1588,7 +1666,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2693,6 +2771,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nLimited to 20 times a second per variable.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]\"game1\"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.\n[accent]null []values are ignored.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Гэты сервер хоча скапіяваць тэкст
|
||||
linkfail = Не атрымалася адкрыць спасылку!\nURL-адрэс быў скапіяваны ў буфер абмена.
|
||||
screenshot = Cкрыншот захаваны ў {0}
|
||||
screenshot.invalid = Карта занадта вялікая, магчыма, не хапае памяці для скрыншота.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Гульня скончана
|
||||
gameover.disconnect = Адключаны
|
||||
gameover.pvp = [accent]{0}[] каманда перамагла!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Стпронка Рэлізаў
|
||||
mods.browser.sortdate = Сартаваць па нядаўняму
|
||||
mods.browser.sortstars = Сартаваць па зоркам
|
||||
|
||||
export.file = Экспартаваць файл
|
||||
import.file = Імпартаваць файл
|
||||
copy.clipboard = Скапіяваць у буфер абмена
|
||||
import.clipboard = Уставіць з буфера абмену
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Падзяліцца ў Майстэрні
|
||||
|
||||
schematic = Схема
|
||||
schematic.add = Захаваць схему...
|
||||
schematics = Схемы
|
||||
@@ -64,12 +72,6 @@ schematic.search = Пошук схемы...
|
||||
schematic.replace = Схема с дадзенай назвай ужо існуе. Замяніць яе?
|
||||
schematic.exists = Схема с дадзенай назвай ужо існуе.
|
||||
schematic.import = Імпартаваць схему...
|
||||
schematic.exportfile = Экспартаваць файл
|
||||
schematic.importfile = Імпартаваць файл
|
||||
schematic.browseworkshop = Прагляд Майстэрні
|
||||
schematic.copy = Скапіяваць у буфер абмена
|
||||
schematic.copy.import = Уставіць з буфера абмену
|
||||
schematic.shareworkshop = Падзяліцца ў Майстэрні
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Адлюстраваць схему
|
||||
schematic.saved = Схема захавана.
|
||||
schematic.delete.confirm = Гэтая схема будзе выдалена.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Гэтая мадыфікацыя не мо
|
||||
mod.requiresversion = Патрабуецца версія гульні: [red]{0}
|
||||
|
||||
mod.errors = Памылкі былі выкліканыя загружаным змесцівам.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]У Вас ёсць мадыфікацыі з памылкамі.[] Выключыце праблемныя мадыфікацыі або выпраўце памылкі перад гульнёй.
|
||||
mod.enable = Укл.
|
||||
mod.requiresrestart = Цяпер гульня зачыніцца, каб прымяніць змены ў мадыфікацыях.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Не ўдаецца далучыцца да гульні ([accent]{0}[]).
|
||||
connecting = [accent]Падключэнне…
|
||||
reconnecting = [accent]Перападключэнне...
|
||||
connecting.data = [accent]Загрузка дадзеных свету…
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Порт:
|
||||
server.invalidport = Няправільны нумар порта!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Экспартаваць захаванне
|
||||
save.import.invalid = [accent]Гэта захаванне несапраўднае!
|
||||
save.import.fail = [crimson]Немагчыма імпартаваць захаванне: [accent]{0}
|
||||
save.export.fail = [crimson]Не атрымалася экспартаваць захаванне: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Імпартаваць захаванне
|
||||
save.newslot = Імя сохраненя:
|
||||
save.rename = Перайменаваць
|
||||
@@ -479,14 +491,6 @@ editor.rules = Правілы:
|
||||
editor.generation = Генерацыя:
|
||||
editor.objectives = Мэты
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Інструкцыя па патчах
|
||||
editor.patches = Патчы кантэнту
|
||||
editor.patch = Набор патчаў: {0}
|
||||
editor.patches.none = [lightgray]Няма загружаных набораў патчаў.
|
||||
editor.patches.errors = Памылка набору патчаў
|
||||
editor.patches.importerror = Памылка пры імпарту Набора патчаў
|
||||
editor.patches.delete.confirm = Вы жадаеце выдаліць гэты набор патчаў?
|
||||
editor.patch.fields = {0} Паля
|
||||
editor.worldprocessors = Сусветныя працэсары
|
||||
editor.worldprocessors.editname = Змяніць назву
|
||||
editor.worldprocessors.none = [lightgray]Не знойдзена ніводнага сусветнага працэсару!\nДадайце адзін у рэдактар карт, або выкарыстоўваце \ue813 Кнопку дадаць ніжэй.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Перамяшчэнне па X
|
||||
editor.shifty = Перамяшчэнне па Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Патчы кантэнту
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Няма загружаных набораў патчаў.
|
||||
patch.errors = Памылка набору патчаў
|
||||
patch.importerror = Памылка пры імпарту Набора патчаў
|
||||
patch.delete.confirm = Вы жадаеце выдаліць гэты набор патчаў?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} Паля
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Майстэрня
|
||||
waves.title = Хвалі
|
||||
waves.team = Каманда
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = максімум адзінак
|
||||
waves.guardian = Вартаўнік
|
||||
waves.preview = Папярэдні прагляд
|
||||
waves.edit = Рэдагавацью...
|
||||
waves.random = Выпадкова
|
||||
waves.copy = Капіяваць у буфер абмену
|
||||
waves.load = Загрузіць з буфера абмену
|
||||
@@ -556,6 +628,7 @@ all = Усяго
|
||||
editor.default = [lightgray]<Па змаўчанні>
|
||||
details = Падрабязнасці...
|
||||
edit = Рэдагаваць...
|
||||
edit.menu = Edit...
|
||||
variables = Пераменныя
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Вы жадаеце выдаліць увесь код з гэтага працэсара?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Наземныя мэты
|
||||
stat.crushdamage = Шкода ад падзення
|
||||
stat.legsplashdamage = Шкода па вобласці ад крокаў
|
||||
stat.itemsmoved = Хуткасць перамяшчэння
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Інтэрвал запускаў
|
||||
stat.shootrange = Радыус дзеяння
|
||||
stat.size = Памер
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Бясконцыя рэсурсы ШІ
|
||||
rules.blockhealthmultiplier = Множнік здароўя блокаў
|
||||
rules.blockdamagemultiplier = Множнік Пашкоджання Блокам
|
||||
rules.unitfactoryactivation = Затрымка актывацыі фабрыкі юнітаў
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Множнік хуткасці вытворчасці баяв. адз.
|
||||
rules.unitcostmultiplier = Множнік Кошту Адзінак
|
||||
rules.unithealthmultiplier = Множнік здароўя баяв. адз.
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Нападкі з варожых сектараў
|
||||
rules.legacylaunchpads = Класічная механіка пускавых пляцовак
|
||||
rules.legacylaunchpads.info = Дазваляе выкарыстоўваць пускавыя пляцоўкі без пасадачных пляцовак, як у версіі 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Выключана[lightgray] (Класічныя пускавыя пляцоўкі ўключаны)
|
||||
rules.showspawns = Паказваць кропку з'яўлення ворага
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Непрадсказальны ШІ хвалей
|
||||
rules.pauseDisabled = Выключыць паўзы
|
||||
rules.fire = Агонь
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Страляе шквалам ракет і куль п
|
||||
unit.minke.description = Страляе выбуховымі і звычайнымі кулямі па ўсім ворагам паблізу.
|
||||
unit.bryde.description = Страляе дальнабойнай артылерыяй і ракетамі па ўсім ворагам паблізу.
|
||||
unit.sei.description = Страляе шквалам ракет і прбіўных куль па ўсіх ворагах паблізу
|
||||
unit.omura.description = Страляе дальнабойным прабіўным промнем. Вырабляе ўспышак.
|
||||
unit.omura.description = Страляе дальнабойным прабіўным промнем.
|
||||
unit.alpha.description = Абараняе ядро Аскепак ад ворагаў. Будуе будынкі.
|
||||
unit.beta.description = Абараняе ядро Штаб ад ворагаў. Будуе будынкі.
|
||||
unit.gamma.description = Абараняе ядро Атам ад ворагаў. Будуе будынкі.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Неуспех при отваряне на връзка!\nURL адресът е копиран в клипборда ви.
|
||||
screenshot = Записана екранна снимка в {0}
|
||||
screenshot.invalid = Картата е твърде голяма, възможно е да не достига памет за екранната снимка.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Играта свърши.
|
||||
gameover.disconnect = Прекъснете връзката
|
||||
gameover.pvp = [accent]{0}[] отбор спечели!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Страница на изданията
|
||||
mods.browser.sortdate = Сортирай по дата
|
||||
mods.browser.sortstars = Сортирай по рейтинг
|
||||
|
||||
export.file = Изнасяне във файл
|
||||
import.file = Внасяне от файл
|
||||
copy.clipboard = Копирай в Клипборда
|
||||
import.clipboard = Внеси от Клипборда
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Сподели в Работилницата
|
||||
|
||||
schematic = Схема
|
||||
schematic.add = Запази Схема...
|
||||
schematics = Схеми
|
||||
@@ -64,12 +72,6 @@ schematic.search = Търсене из схемите...
|
||||
schematic.replace = Вече съществува схема с това име. Да бъде ли заместена?
|
||||
schematic.exists = Вече съществува схема с това име.
|
||||
schematic.import = Внасяне на Схема...
|
||||
schematic.exportfile = Изнасяне във файл
|
||||
schematic.importfile = Внасяне от файл
|
||||
schematic.browseworkshop = Работилница
|
||||
schematic.copy = Копирай в Клипборда
|
||||
schematic.copy.import = Внеси от Клипборда
|
||||
schematic.shareworkshop = Сподели в Работилницата
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обърни схемата
|
||||
schematic.saved = Схемате беше запазена.
|
||||
schematic.delete.confirm = Тази схема ще бъде напълно унищожена.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Тази модификация не мож
|
||||
mod.requiresversion = Нужна е версия на играта: [red]{0}
|
||||
|
||||
mod.errors = Възникнаха грешки при зареждане на съдържанието.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Има грешки в някои от модовете, които използвате.[] Трябва да деактивирате тези модове или да поправите грешките преди да играете.
|
||||
mod.enable = Активирай
|
||||
mod.requiresrestart = Играта ще се затвори за да приложи промените в модовете.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Неуспех при свързване към игра ([accent]{0}[]).
|
||||
connecting = [accent]Свързване...
|
||||
reconnecting = [accent]Повторно свързване...
|
||||
connecting.data = [accent]Зареждане на информация за света...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Порт:
|
||||
server.invalidport = Невалиден порт!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Изнеси Запис
|
||||
save.import.invalid = [accent]Този запис е невалиден!
|
||||
save.import.fail = [scarlet]Грешка при внасяне на запис: [accent]{0}
|
||||
save.export.fail = [scarlet]Грешка при изнасяне на запис: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Внеси Запис
|
||||
save.newslot = Име на запис:
|
||||
save.rename = Преименувай
|
||||
@@ -479,14 +491,6 @@ editor.rules = Правила:
|
||||
editor.generation = Генериране:
|
||||
editor.objectives = Задачи
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Работилница
|
||||
waves.title = Вълни от нападатели
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = макс. единици
|
||||
waves.guardian = Пазител
|
||||
waves.preview = Преглед
|
||||
waves.edit = Редактирай...
|
||||
waves.random = Случаен брой
|
||||
waves.copy = Кобирай в Клипборд
|
||||
waves.load = Зареди от Клипборда
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Стандартно>
|
||||
details = Детайли...
|
||||
edit = Редактирай...
|
||||
edit.menu = Edit...
|
||||
variables = Променливи
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Напада по земя
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Скорост на движение
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Време между изстрелванията
|
||||
stat.shootrange = Обхват
|
||||
stat.size = Размер
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Безкрайни ресурси за компютъра (Ч
|
||||
rules.blockhealthmultiplier = Множител на точките живот на блокове
|
||||
rules.blockdamagemultiplier = Множител на щетите на блокове
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Множител на скоростта на производство на единици
|
||||
rules.unitcostmultiplier = Множител на цената за единици
|
||||
rules.unithealthmultiplier = Множител на точките живот на единици
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Огън
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Изстрелва залпове от ракети и
|
||||
unit.minke.description = Изстрелва сачми и стандартни муниции по наземни мишени.
|
||||
unit.bryde.description = Изстрелва далекообхватни боеприпаси и ракети по врагове.
|
||||
unit.sei.description = Изстрелва поредица от ракети и бронебойни куршуми по врагове.
|
||||
unit.omura.description = Изстрелва далечни пробивни релсови лазери по врагове. Изгражда единици модел Факел.
|
||||
unit.omura.description = Изстрелва далечни пробивни релсови лазери по врагове.
|
||||
unit.alpha.description = Защитава ядро Частица от врагове. Строи сгради.
|
||||
unit.beta.description = Защитава ядро Фондация от врагове. Строи сгради.
|
||||
unit.gamma.description = Защитава ядро Център от врагове. Строи сгради.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Поставя притежанието на единица или
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Синхронизира променлива през мрежата.\nПредизвиква се най-много 10 пъти в секунда.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = No s’ha pogut obrir l’enllaç!\nLa direcció URL s’ha copiat al porta-retalls.
|
||||
screenshot = S’ha desat la captura de pantalla a {0}.
|
||||
screenshot.invalid = El mapa és massa gran. No hi ha prou memòria per a fer la captura de pantalla.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Fi de la partida
|
||||
gameover.disconnect = Desconnecta
|
||||
gameover.pvp = Ha guanyat l’equip[accent] {0}[]!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Pàgina de versions publicades
|
||||
mods.browser.sortdate = Ordena per data
|
||||
mods.browser.sortstars = Ordena per valoració
|
||||
|
||||
export.file = Exporta un fitxer
|
||||
import.file = Importa un fitxer
|
||||
copy.clipboard = Copia al porta-retalls
|
||||
import.clipboard = Importa del porta-retalls
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Comparteix al Workshop de l’Steam
|
||||
|
||||
schematic = Esquema
|
||||
schematic.add = Desa l’esquema…
|
||||
schematics = Esquemes
|
||||
@@ -64,12 +72,6 @@ schematic.search = Cerca esquemes…
|
||||
schematic.replace = Ja hi ha un esquema amb aquest nom. Voleu reemplaçar-lo?
|
||||
schematic.exists = Ja hi ha un esquema amb aquest nom.
|
||||
schematic.import = Importa un esquema
|
||||
schematic.exportfile = Exporta un fitxer
|
||||
schematic.importfile = Importa un fitxer
|
||||
schematic.browseworkshop = Explora el Workshop de l’Steam
|
||||
schematic.copy = Copia al porta-retalls
|
||||
schematic.copy.import = Importa del porta-retalls
|
||||
schematic.shareworkshop = Comparteix al Workshop de l’Steam
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Dóna la volta a l’esquema
|
||||
schematic.saved = L’esquema s’ha desat.
|
||||
schematic.delete.confirm = Aquest esquema s’esborrarà.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Aquest mod no es pot carregar perquè té u
|
||||
mod.requiresversion = Cal la versió [red]{0}[] del joc.
|
||||
|
||||
mod.errors = S’han produït errors quan es carregava el contingut.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]S’executen mods amb errors.[] Desactiveu els mods afectats o arregleu les errades abans de jugar.
|
||||
mod.enable = Activa
|
||||
mod.requiresrestart = El programa es tancarà per a aplicar els canvis.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = S’ha esgotat el temps d’espera mentre es rebien
|
||||
cantconnect = No és possible unir-se a la partida ([accent]{0}[]).
|
||||
connecting = [accent]Es connecta…
|
||||
reconnecting = [accent]Es torna a connectar…
|
||||
connecting.data = [accent]Es carreguen les dades del món…
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = El número de port no és vàlid!
|
||||
server.error.addressinuse = [scarlet]El port 6567 no s’ha pogut obrir.[]\n\nAssegureu-vos que no s’executen altres servidors del Mindustry a la xarxa o dispositiu!
|
||||
@@ -344,6 +352,10 @@ save.export = Exporta la desada
|
||||
save.import.invalid = [accent]Aquesta desada no és vàlida!
|
||||
save.import.fail = [scarlet]La desada no s’ha pogut importar: [accent]{0}
|
||||
save.export.fail = [scarlet]La desada no s’ha pogut exportar: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importa una partida desada
|
||||
save.newslot = Nom del fitxer de la desada:
|
||||
save.rename = Reanomena
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regles
|
||||
editor.generation = Generació
|
||||
editor.objectives = Objectius
|
||||
editor.locales = Paquet de traduccions
|
||||
editor.patches.guide = Guia de pedaços
|
||||
editor.patches = Pedaços de continguts
|
||||
editor.patch = Conjunt de pedaços: {0}
|
||||
editor.patches.none = [lightgray]No s’han carregat pedaços.
|
||||
editor.patches.errors = Errors del conjunt de pedaços
|
||||
editor.patches.importerror = No s’ha pogut importar el conjunt de pedaços.
|
||||
editor.patches.delete.confirm = Esteu segur que voleu esborrar aquest conjunt de pedaços?
|
||||
editor.patch.fields = {0} camps
|
||||
editor.worldprocessors = Processadors integrats
|
||||
editor.worldprocessors.editname = Edita el nom
|
||||
editor.worldprocessors.none = [lightgray]No s’han trobat blocs de processadors integrats!\nAfegiu-ne un a l’editor de mapes o feu servir el botó \ue813 de sota.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Desplaça en l’eix X
|
||||
editor.shifty = Desplaça en l’eix Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Pedaços de continguts
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No s’han carregat pedaços.
|
||||
patch.errors = Errors del conjunt de pedaços
|
||||
patch.importerror = No s’ha pogut importar el conjunt de pedaços.
|
||||
patch.delete.confirm = Esteu segur que voleu esborrar aquest conjunt de pedaços?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} camps
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Onades
|
||||
waves.team = Equip
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = nombre màxim d’unitats
|
||||
waves.guardian = Guardià
|
||||
waves.preview = Previsualització
|
||||
waves.edit = Edita
|
||||
waves.random = Aleatori
|
||||
waves.copy = Copia al porta-retalls
|
||||
waves.load = Carrega del porta-retalls
|
||||
@@ -556,6 +628,7 @@ all = Tots
|
||||
editor.default = [lightgray]<Per defecte>
|
||||
details = Detalls
|
||||
edit = Edita
|
||||
edit.menu = Edit...
|
||||
variables = Variables
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Esteu segur que voleu esborrar tot el codi d’aquest processador?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Dispara objectius terrestres
|
||||
stat.crushdamage = Dany per aixafament
|
||||
stat.legsplashdamage = Dany per aixafament
|
||||
stat.itemsmoved = Velocitat de moviment
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Temps entre llançaments
|
||||
stat.shootrange = Abast
|
||||
stat.size = Mida
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Recursos infinits per a la IA (equip vermell)
|
||||
rules.blockhealthmultiplier = Multiplicador de la salut dels blocs
|
||||
rules.blockdamagemultiplier = Multiplicador del dany dels blocs
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicador de la velocitat de producció d’unitats
|
||||
rules.unitcostmultiplier = Multiplicador del cost de les unitats
|
||||
rules.unithealthmultiplier = Multiplicador de la salut de les unitats
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invasions de setors enemics
|
||||
rules.legacylaunchpads = Mecàniques de plataformes de llançament antigues
|
||||
rules.legacylaunchpads.info = Permet fer servir plataformes de llançament sense plataformes d’aterratge, com a la versió 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Desactivat[lightgray] (plataformes de llançament antigues activades)
|
||||
rules.showspawns = Mostra l’aparició d’enemics
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = IA d’onades immprevisible
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Foc
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Dispara una pluja de míssils i bales a tots els enemic
|
||||
unit.minke.description = Dispara projectils i bales estàndard als objectius terrestres.
|
||||
unit.bryde.description = Dispara projectils d’artilleria i míssils de llarg abast als enemics.
|
||||
unit.sei.description = Dispara una pluja de míssils i bales capaces de perforar escuts als enemics.
|
||||
unit.omura.description = Dispara projectils perforadors de llarg abast amb un canó electromagnètic. Construeix unitats «Flare».
|
||||
unit.omura.description = Dispara projectils perforadors de llarg abast amb un canó electromagnètic.
|
||||
unit.alpha.description = Defensa el nucli «Estella» dels enemics. Construeix estructures.
|
||||
unit.beta.description = Defensa el nucli «Fonament» des enemics. Construeix estructures.
|
||||
unit.gamma.description = Defensa el nucli «Punt neuràlgic» des enemics. Construeix estructures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Estableix una propietat d’una unitat o estructura.
|
||||
lst.effect = Crea un efecte de partícula.
|
||||
lst.sync = Sincronitza una variable a través de la xarxa.\nS’invoca com a molt 10 vegades per segon.
|
||||
lst.playsound = Reprodueix un so.\nEl volum i la panoramització (pan) poden ser un valor global o calculat segons la posició.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Crea una marca lògica al món.\nS’ha de donar un ID per a identificar-la.\nEs poden establir fins a 20.000 marcadors per món.
|
||||
lst.setmarker = Estableix una propietat per a la marca.\nL’ID que es faci servir ha de ser el mateix que el de la instrucció de crear la marca.
|
||||
lst.localeprint = Afegeix el valor d’una propietat de la traducció d’un mapa a la cua d’impressió.\nPer a establir paquets de traducció de mapes a l’editor de mapes, comproveu [accent]Informació del mapa > Paquets de traducció[].\nSi el client és un dispositiu mòbil, primer intenta imprimir una propietat que acabi en «.mobile».
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Tento server chce zkopírovat text do tvé schránky. Opravdu ch
|
||||
linkfail = Nepodařilo se otevřít odkaz!\nAdresa URL byla zkopírována do schránky.
|
||||
screenshot = Snímek obrazovky uložen {0}
|
||||
screenshot.invalid = Mapa je moc velká, nemusí být dost paměti pro získání snímku obrazovky.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Konec hry
|
||||
gameover.disconnect = Odpojit
|
||||
gameover.pvp = Vyhrál tým [accent]{0}[]!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Stránka Vydání
|
||||
mods.browser.sortdate = Řadit podle nedávných
|
||||
mods.browser.sortstars = Řadit podle hvězd
|
||||
|
||||
export.file = Exportovat soubor
|
||||
import.file = Importovat soubor
|
||||
copy.clipboard = Zkopírovat do schránky
|
||||
import.clipboard = Importovat ze schránky
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Sdílet skrze Workshop na Steamu
|
||||
|
||||
schematic = Šablona
|
||||
schematic.add = Uložit šablonu...
|
||||
schematics = Šablony
|
||||
@@ -64,12 +72,6 @@ schematic.search = Vyhledat šablonu...
|
||||
schematic.replace = Šablona s tímto názvem již existuje. Chceš ji nahradit?
|
||||
schematic.exists = Šablona s tímto názvem již existuje.
|
||||
schematic.import = Importuji šablonu...
|
||||
schematic.exportfile = Exportovat soubor
|
||||
schematic.importfile = Importovat soubor
|
||||
schematic.browseworkshop = Procházet Workshop na Steamu
|
||||
schematic.copy = Zkopírovat do schránky
|
||||
schematic.copy.import = Importovat ze schránky
|
||||
schematic.shareworkshop = Sdílet skrze Workshop na Steamu
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Převrátit šablonu
|
||||
schematic.saved = Šablona byla uložena.
|
||||
schematic.delete.confirm = Šablona bude kompletně vyhlazena.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Tato modifikace nelze načíst kvůli nepla
|
||||
mod.requiresversion = Vyžaduje verzi hry: [red]{0}
|
||||
|
||||
mod.errors = Při načítání obsahu hry se vyskytly problémy.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Máš modifikace s chybami.[] Buď zakaž dotčené modifikace, nebo oprav chyby před tím, než začneš hrát.
|
||||
mod.enable = Povolit
|
||||
mod.requiresrestart = Hra bude ukončena, aby bylo možné nasadit modifikace.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Při získávání UDP snímků vypršel čas spoje
|
||||
cantconnect = Není možno se připojit ke hře ([accent]{0}[]).
|
||||
connecting = [accent]Připojuji se...[]
|
||||
reconnecting = [accent]Znovu se připojuji...
|
||||
connecting.data = [accent]Načítám data ze serveru...[]
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Neplatné číslo portu!
|
||||
server.error.addressinuse = [scarlet]Nepodařilo se otevřít port 6567.[]\n\nUjistěte se, že na vašem zařízení nebo ve vaší síti neběží žádný jiný Mindustry server!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportovat uložení hry
|
||||
save.import.invalid = [accent]Toto uložení není v pořádku![]
|
||||
save.import.fail = [scarlet]Nepodařilo se importovat uložení hry: [accent]{0}[]
|
||||
save.export.fail = [scarlet]Nepodařilo se exportovat uložení hry: [accent]{0}[]
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importovat uložení hry
|
||||
save.newslot = Uložit hru:
|
||||
save.rename = Přejmenovat
|
||||
@@ -479,14 +491,6 @@ editor.rules = Pravidla:
|
||||
editor.generation = Generace:
|
||||
editor.objectives = Úkoly:
|
||||
editor.locales = Balíky jazyků
|
||||
editor.patches.guide = Průvodce záplatami
|
||||
editor.patches = Záplaty obsahu
|
||||
editor.patch = Sada záplat: {0}
|
||||
editor.patches.none = [lightgray]Nejsou načteny žádné sady záplat.
|
||||
editor.patches.errors = Chyby sady záplat
|
||||
editor.patches.importerror = Nepodařilo se importovat sadu záplat
|
||||
editor.patches.delete.confirm = Opravdu chceš tuto sadu záplat smazat?
|
||||
editor.patch.fields = {0} polí
|
||||
editor.worldprocessors = Globální Procesor
|
||||
editor.worldprocessors.editname = Upravit název
|
||||
editor.worldprocessors.none = [lightgray]Nebyly nalezeny žádné bloky světového procesoru!\nPřidej jeden v editoru map, nebo použij tlačítko \ue813 Přidat níže.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Vlastní priorita
|
||||
editor.filters.planetselect = Výběr planety
|
||||
editor.shiftx = Posun X
|
||||
editor.shifty = Posun Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Záplaty obsahu
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Nejsou načteny žádné sady záplat.
|
||||
patch.errors = Chyby sady záplat
|
||||
patch.importerror = Nepodařilo se importovat sadu záplat
|
||||
patch.delete.confirm = Opravdu chceš tuto sadu záplat smazat?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} polí
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop na Steamu
|
||||
waves.title = Vlny
|
||||
waves.team = Tým
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](první {0})
|
||||
waves.max = max. jednotek
|
||||
waves.guardian = Strážce
|
||||
waves.preview = Náhled
|
||||
waves.edit = Upravit....
|
||||
waves.random = Náhodně
|
||||
waves.copy = Uložit do schránky
|
||||
waves.load = Načíst ze schránky
|
||||
@@ -556,6 +628,7 @@ all = Vše
|
||||
editor.default = [lightgray]<Výchozí>[]
|
||||
details = Podrobnosti...
|
||||
edit = Upravit...
|
||||
edit.menu = Edit...
|
||||
variables = Hodnoty
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Opravdu chcete z tohoto procesoru odstranit veškerý kód?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Zaměřuje pozemní jednotky
|
||||
stat.crushdamage = Drtivé poškození
|
||||
stat.legsplashdamage = Plošné poškození nohou
|
||||
stat.itemsmoved = Rychlost pohybu
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Čas mezi vysláním
|
||||
stat.shootrange = Dostřel
|
||||
stat.size = Velikost
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Neomezeně surovin pro umělou inteligenci
|
||||
rules.blockhealthmultiplier = Násobek zdraví bloků
|
||||
rules.blockdamagemultiplier = Násobek poškození bloků
|
||||
rules.unitfactoryactivation = Zpoždění aktivace továrny na jednotky
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Násobek rychlosti výroby jednotek
|
||||
rules.unitcostmultiplier = Násobek ceny jednotek
|
||||
rules.unithealthmultiplier = Násobek zdraví jednotek
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invaze nepřátelských sektorů
|
||||
rules.legacylaunchpads = Starší mechanika vysílacích plošin
|
||||
rules.legacylaunchpads.info = Umožňuje používat vysílací plošiny bez přistávacích plošin, stejně jako ve verzi 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Zakázáno[lightgray] (starší vysílací plošiny povoleny)
|
||||
rules.showspawns = Zobrazit místa zrození nepřátel
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Nepředvídatelná AI vln
|
||||
rules.pauseDisabled = Zakázat pozastavení
|
||||
rules.fire = Výstřel
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Střílí palbu raket a střel na všechny blízké nep
|
||||
unit.minke.description = Střílí patrony a základní střely na blízké pozemní cíle.
|
||||
unit.bryde.description = Střílí na nepřátele dělostřelecké granáty a rakety dlouhého doletu.
|
||||
unit.sei.description = Střílí na nepřátele palbu raket a průbojných střel.
|
||||
unit.omura.description = Střílí na nepřátele průrazné šrouby s dlouhým doletem. Vytváří jednotky Záře.
|
||||
unit.omura.description = Střílí na nepřátele průrazné šrouby s dlouhým doletem.
|
||||
unit.alpha.description = Brání jádro Odštěpek před nepřáteli. Staví konstrukce.
|
||||
unit.beta.description = Brání jádro Základ před nepřáteli. Staví konstrukce.
|
||||
unit.gamma.description = Brání jádro Atom před nepřáteli. Staví konstrukce.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Nastaví vlastnost jednotky nebo budovy.
|
||||
lst.effect = Vytvoří částicový efekt.
|
||||
lst.sync = Synchronizuje proměnnou přes síť.\nOmezeno na 20× za sekundu na proměnnou.
|
||||
lst.playsound = Přehraje zvuk.\nHlasitost a posun mohou být globální hodnotou nebo vypočteny podle pozice.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Vytvoří ve světě novou logickou značku.\nJe nutné zadat ID pro identifikaci této značky.\nZnačky jsou momentálně omezeny na 20 000 na svět.
|
||||
lst.setmarker = Nastaví vlastnost značky.\nPoužité ID musí být stejné jako v instrukci Make Marker.\nHodnoty [accent]null []jsou ignorovány.
|
||||
lst.localeprint = Přidá hodnotu vlastnosti lokalizace mapy do textového bufferu.\nPro nastavení lokalizačních balíčků mapy v editoru map zkontroluj [accent]Informace o mapě > Lokalizační balíčky[].\nPokud je klient mobilní zařízení, nejdříve se pokusí vypsat vlastnost končící na ".mobile".
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Kunne ikke åbne link!\n Linkets URL er kopieret til din udklipsholder.
|
||||
screenshot = Screenshot gemt i {0}
|
||||
screenshot.invalid = Banen er for stor; der er ikke nok hukommelse til et skærmbillede.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Game Over
|
||||
gameover.disconnect = Disconnect
|
||||
gameover.pvp = [accent] {0}[] hold har vundet!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Sort by recent
|
||||
mods.browser.sortstars = Sort by stars
|
||||
|
||||
export.file = Exporter fil
|
||||
import.file = Importer fil
|
||||
copy.clipboard = Kopier til udklipsholder
|
||||
import.clipboard = Importer fra udklipsholder
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Del på Workshop
|
||||
|
||||
schematic = Skabelon
|
||||
schematic.add = Gem skabelon...
|
||||
schematics = Skabeloner
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = En skabelon med det navn eksisterer allerede - vil du erstatte denne?
|
||||
schematic.exists = En skabelon med det navn eksisterer allerede.
|
||||
schematic.import = Importer skabelon ...
|
||||
schematic.exportfile = Exporter fil
|
||||
schematic.importfile = Importer fil
|
||||
schematic.browseworkshop = Søg i Workshop
|
||||
schematic.copy = Kopier til udklipsholder
|
||||
schematic.copy.import = Importer fra udklipsholder
|
||||
schematic.shareworkshop = Del på Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Vend skabelon
|
||||
schematic.saved = Skabelon gemt.
|
||||
schematic.delete.confirm = Denne skabelon vil være væk for altid.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Fejl ved afhentning af indhold.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Du har mods med fejl.[] Deaktiver det eller løs fejl før du starter spillet.
|
||||
mod.enable = Aktiver
|
||||
mod.requiresrestart = Spillet vil nu lukke for at tilføje mod ændringerne
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Kunne ikke deltage i spil ([accent]{0}[]).
|
||||
connecting = [accent]Forbinder...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Indlæser bane-data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Ugyldigt port-nummer!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Eksporter gem
|
||||
save.import.invalid = [accent]Dette gem er i stykker!
|
||||
save.import.fail = [crimson]Kunne ikke importere gem: [accent]{0}
|
||||
save.export.fail = [crimson]Kunne ikke eksportere gem: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Import Gem
|
||||
save.newslot = Gem-navn:
|
||||
save.rename = Omdøb
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regler:
|
||||
editor.generation = Generering:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Bølger
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Vogter
|
||||
waves.preview = Forhåndsvisning
|
||||
waves.edit = Rediger...
|
||||
waves.random = Random
|
||||
waves.copy = Kopier til udklipsholder
|
||||
waves.load = Indlæs fra udklipsholder
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<standard>
|
||||
details = Detaljer...
|
||||
edit = Rediger...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Skyder fodgængere
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Bevægelseshastighed
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tid mellem affyringer
|
||||
stat.shootrange = Rækkevidde
|
||||
stat.size = Størrelse
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Uendelig AI (rødt hold) resurser.
|
||||
rules.blockhealthmultiplier = Blok-helbreds-forstærker.
|
||||
rules.blockdamagemultiplier = Blok-skade-forstærker.
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Enheds-produktionshastigheds-forstærker
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Enheds-helbreds-forstærker
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Ild
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Fehler beim Öffnen des Links!\nDie URL wurde in die Zwischenablage kopiert.
|
||||
screenshot = Screenshot gespeichert unter {0}
|
||||
screenshot.invalid = Karte zu groß! Eventuell nicht ausreichend Arbeitsspeicher für Screenshot.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Der Kern wurde zerstört.
|
||||
gameover.disconnect = Verbindung trennen
|
||||
gameover.pvp = Das[accent] {0}[] Team ist siegreich!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Versionen Webseite
|
||||
mods.browser.sortdate = Nach neuesten sortieren
|
||||
mods.browser.sortstars = Nach Sternen sortieren
|
||||
|
||||
export.file = Datei exportieren
|
||||
import.file = Datei importieren
|
||||
copy.clipboard = In Zwischenablage kopieren
|
||||
import.clipboard = Aus Zwischenablage importieren
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Im Workshop teilen
|
||||
|
||||
schematic = Entwurf
|
||||
schematic.add = Entwurf speichern...
|
||||
schematics = Entwürfe
|
||||
@@ -64,12 +72,6 @@ schematic.search = Suche nach Entwürfen...
|
||||
schematic.replace = Es gibt bereits einen Entwurf mit diesem Namen. Diesen ersetzen?
|
||||
schematic.exists = Es gibt schon einen Entwurf mit diesem Namen.
|
||||
schematic.import = Entwurf importieren...
|
||||
schematic.exportfile = Datei exportieren
|
||||
schematic.importfile = Datei importieren
|
||||
schematic.browseworkshop = Workshop durchsuchen
|
||||
schematic.copy = In Zwischenablage kopieren
|
||||
schematic.copy.import = Aus Zwischenablage importieren
|
||||
schematic.shareworkshop = Im Workshop teilen
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Entwurf umkehren
|
||||
schematic.saved = Entwurf gespeichert.
|
||||
schematic.delete.confirm = Dieser Entwurf wird vollständig vernichtet.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Diese Mod kann aufgrund fehlenden oder ung
|
||||
mod.requiresversion = Benötigt Spielversion: [red]{0}
|
||||
|
||||
mod.errors = Beim Laden von Inhalt sind Fehler aufgetreten.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]Du hast Mods mit Fehlern.[] Deaktiviere die Mods oder behebe die Fehler, bevor du spielst.
|
||||
mod.enable = Aktivieren
|
||||
mod.requiresrestart = Das Spiel wird jetzt beendet, um die Mod-Änderungen anzuwenden.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Zeitüberschreitung beim Empfangen von UDP-Snapshot
|
||||
cantconnect = Nicht möglich beizutreten ([accent]{0}[]).
|
||||
connecting = [accent] Verbinde...
|
||||
reconnecting = [accent]Verbindung wird wiederhergestellt...
|
||||
connecting.data = [accent] Welt wird geladen...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Falscher Port!
|
||||
server.error.addressinuse = [scarlet]Fehler beim Öffnen des Servers auf Port 6567.[]\n\nStelle sicher, dass keine anderen Mindustry-Server auf deinem Gerät oder Netzwerk laufen!
|
||||
@@ -344,6 +352,10 @@ save.export = Spielstand exportieren
|
||||
save.import.invalid = [accent]Dieser Spielstand ist ungültig!
|
||||
save.import.fail = [crimson]Spielstand konnte nicht importiert werden: [accent]{0}
|
||||
save.export.fail = [crimson]Spielstand konnte nicht exportiert werden: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Spielstand importieren
|
||||
save.newslot = Name:
|
||||
save.rename = Umbenennen
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regeln
|
||||
editor.generation = Generator
|
||||
editor.objectives = Ziele
|
||||
editor.locales = Sprach-Bundle
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = Weltprozessoren
|
||||
editor.worldprocessors.editname = Name bearbeiten
|
||||
editor.worldprocessors.none = [lightgray]Keine Weltprozessor-Blöcke gefunden!\nFüge einen im Karteneditor hinzu oder benutze den \ue813 Hinzufügen-Button unten.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Verschieben X
|
||||
editor.shifty = Verschieben Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Wellen
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = maximale Einheiten
|
||||
waves.guardian = Boss
|
||||
waves.preview = Vorschau
|
||||
waves.edit = Bearbeiten...
|
||||
waves.random = Zufällig
|
||||
waves.copy = In die Zwischenablage kopieren
|
||||
waves.load = Aus der Zwischenablage laden
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Standard>
|
||||
details = Details
|
||||
edit = Bearbeiten
|
||||
edit.menu = Edit...
|
||||
variables = Variablen
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Willst du wirklich den gesamten Code aus diesem Prozessor löschen?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Visiert Bodeneinheiten an
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Bewegungsgeschwindigkeit
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Zeit zwischen Starts
|
||||
stat.shootrange = Reichweite
|
||||
stat.size = Größe
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Unbegrenzte gegnerische Ressourcen
|
||||
rules.blockhealthmultiplier = Block-Lebenspunkte-Multiplikator
|
||||
rules.blockdamagemultiplier = Block-Schaden-Multiplikator
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Einheiten-Baugeschwindigkeit Multiplikator
|
||||
rules.unitcostmultiplier = Einheit-Baukosten Multiplikator
|
||||
rules.unithealthmultiplier = Einheit-Lebenspunkte-Multiplikator
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechaniken
|
||||
rules.legacylaunchpads.info = Launchpads können ohne Landepads benutzt werden, wie in Version 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Deaktiviert[lightgray] (Legacy Launch Pads aktiviert)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unvorhersehbare Wellen-KI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Feuer
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Schießt ein Sperrfeuer aus Raketen und Kugeln auf alle
|
||||
unit.minke.description = Schießt Geschosse und Kugeln auf Feinde.
|
||||
unit.bryde.description = Schießt Artilleriegeschosse und Raketen mit großer Reichweite auf alle feindlichen Ziele.
|
||||
unit.sei.description = Schießt ein Sperrfeuer aus Raketen und durchdringende Geschosse auf feindliche Ziele.
|
||||
unit.omura.description = Schießt eine Railgun mit hoher Reichweite, um Gegner zu zerstören. Stellt Flare-Einheiten her.
|
||||
unit.omura.description = Schießt eine Railgun mit hoher Reichweite, um Gegner zu zerstören.
|
||||
unit.alpha.description = Beschützt den Scherbenkern vor Feinden. Baut Blöcke.
|
||||
unit.beta.description = Beschützt den Fundamentkern vor Feinden. Baut Blöcke.
|
||||
unit.gamma.description = Beschützt den Nukleuskern vor Feinden. Baut Blöcke.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Setzt eine Eigenschaft einer Einheit oder eines Blockes.
|
||||
lst.effect = Erstelle einen Partikeleffekt
|
||||
lst.sync = Synchronisiert eine Variable im Netzwerk.\nWird maximal 10 Mal pro Sekunde ausgefürht.
|
||||
lst.playsound = Spielt einen Ton.\nDie Lautstärke kann ein fester Wert sein, oder anhand der Position berechnet werden. (weiter weg: leiser)
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Erstelle einen neuen Logikmarker in der Welt.\nEine ID zur Identifizierung muss angegeben werden.\nDerzeit können nur maximal 20.000 Marker pro Welt platziert werden.
|
||||
lst.setmarker = Lege eine Eigenschaft für einen Marker fest.\nDie ID muss die selbe wie bei der Erstellung des Markers sein.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Este servidor quiere copiar texto a tu portapapeles. ¿Estás se
|
||||
linkfail = ¡Error al abrir el enlace!\nLa URL se ha copiado al portapapeles.
|
||||
screenshot = Captura de pantalla guardada en {0}
|
||||
screenshot.invalid = El mapa es demasiado grande, no hay suficiente memoria para la captura de pantalla.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Fin de la partida
|
||||
gameover.disconnect = Desconectarse
|
||||
gameover.pvp = ¡El equipo[accent] {0}[] ha ganado!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Lista de versiones
|
||||
mods.browser.sortdate = Más recientes
|
||||
mods.browser.sortstars = Mejor valorados
|
||||
|
||||
export.file = Exportar archivo
|
||||
import.file = Importar archivo
|
||||
copy.clipboard = Copiar al portapapeles
|
||||
import.clipboard = Importar desde el portapapeles
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Compartir en Steam Workshop
|
||||
|
||||
schematic = Esquema
|
||||
schematic.add = Guardar esquema...
|
||||
schematics = Esquemas
|
||||
@@ -64,12 +72,6 @@ schematic.search = Buscar esquemas..
|
||||
schematic.replace = Ya existe un esquema con ese nombre. ¿Quieres reemplazarlo?
|
||||
schematic.exists = Ya existe un esquema con ese nombre.
|
||||
schematic.import = Importar esquema...
|
||||
schematic.exportfile = Exportar archivo
|
||||
schematic.importfile = Importar archivo
|
||||
schematic.browseworkshop = Buscar en Steam Workshop
|
||||
schematic.copy = Copiar al portapapeles
|
||||
schematic.copy.import = Importar desde el portapapeles
|
||||
schematic.shareworkshop = Compartir en Steam Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Invertir esquema
|
||||
schematic.saved = Esquema guardado.
|
||||
schematic.delete.confirm = Este esquema será absolutamente erradicado.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Este mod no se puede cargar debido a depend
|
||||
mod.requiresversion = Requiere la versión del juego: [red]{0}
|
||||
|
||||
mod.errors = Ha ocurrido un fallo al cargar el contenido.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Se están ejecutando algunos mods con fallos.[]Debes deshabilitarlos o arreglar los errores antes de jugar.
|
||||
mod.enable = Activar
|
||||
mod.requiresrestart = El juego se cerrará para aplicar los cambios del mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Tiempo de espera agotado al recibir instantánea UD
|
||||
cantconnect = No es posible unirse a la partida ([accent]{0}[]).
|
||||
connecting = [accent]Conectando...
|
||||
reconnecting = [accent]Reconectado...
|
||||
connecting.data = [accent]Cargando datos del mundo...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Puerto:
|
||||
server.invalidport = ¡El número de puerto no es valido!
|
||||
server.error.addressinuse = [scarlet]Error al abrir servidor en puerto 6567.[]\n\n¡Asegúrate que no haya otros servidores Mindustry corriendo en tu dispositivo o red!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportar archivo de guardado
|
||||
save.import.invalid = [accent]¡Este archivo no es válido!
|
||||
save.import.fail = [scarlet]Hubo un fallo al importar el archivo de guardado: [accent]{0}
|
||||
save.export.fail = [scarlet]Ha fallado la exportación del guardado: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importar guardado
|
||||
save.newslot = Nombre del archivo de guardado:
|
||||
save.rename = Renombrar
|
||||
@@ -479,14 +491,6 @@ editor.rules = Normas:
|
||||
editor.generation = Generación:
|
||||
editor.objectives = Objetivos
|
||||
editor.locales = Paquetes de localización
|
||||
editor.patches.guide = Guia de parches
|
||||
editor.patches = Parches de datos
|
||||
editor.patch = Conjunto de parches: {0}
|
||||
editor.patches.none = [lightgray]No hay conjuntos de parches cargados.
|
||||
editor.patches.errors = Errores del conjunto de parches
|
||||
editor.patches.importerror = Error al importar el conjunto de parches
|
||||
editor.patches.delete.confirm = ¿Estas seguro de eliminar este conjunto de parches?
|
||||
editor.patch.fields = {0} campos
|
||||
editor.worldprocessors = Procesadores estáticos
|
||||
editor.worldprocessors.editname = Editar nombre
|
||||
editor.worldprocessors.none = [lightgray]¡No se encontraron procesadores estáticos!\nAñade uno en el editor del mapa, o usa el botón \ue813 Añadir.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Priorizar Personalizados
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Trasladar X
|
||||
editor.shifty = Trasladar Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Parches de datos
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No hay conjuntos de parches cargados.
|
||||
patch.errors = Errores del conjunto de parches
|
||||
patch.importerror = Error al importar el conjunto de parches
|
||||
patch.delete.confirm = ¿Estas seguro de eliminar este conjunto de parches?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} campos
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Steam Workshop
|
||||
waves.title = Oleadas
|
||||
waves.team = Equipo
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](primero {0})
|
||||
waves.max = máximo de unidades
|
||||
waves.guardian = Guardián
|
||||
waves.preview = Vista previa
|
||||
waves.edit = Editar...
|
||||
waves.random = Aleatorizadas
|
||||
waves.copy = Copiar al portapapeles
|
||||
waves.load = Cargar del portapapeles
|
||||
@@ -556,6 +628,7 @@ all = Todos
|
||||
editor.default = [lightgray]<Por defecto>
|
||||
details = Detalles...
|
||||
edit = Editar...
|
||||
edit.menu = Edit...
|
||||
variables = Variables
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = ¿Seguro quieres limpiar todo el código de este procesador?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Apunta a tierra
|
||||
stat.crushdamage = Daño de aplastamiento
|
||||
stat.legsplashdamage = Daño de área por pisotón
|
||||
stat.itemsmoved = Velocidad de movimiento
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tiempo entre lanzamientos
|
||||
stat.shootrange = Alcance
|
||||
stat.size = Tamaño
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = La IA (Equipo Rojo) tiene recursos infinitos
|
||||
rules.blockhealthmultiplier = Multiplicador de vida de estructuras
|
||||
rules.blockdamagemultiplier = Multiplicador de daño de estructuras
|
||||
rules.unitfactoryactivation = Retardo de activación de las fabricas de unidades
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicador de velocidad de producción de unidades
|
||||
rules.unitcostmultiplier = Multiplicador de costo de unidades
|
||||
rules.unithealthmultiplier = Multiplicador de vida de unidades
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invasiones de sector enemigo
|
||||
rules.legacylaunchpads = Mecánicas antiguas de la plataforma de lanzamiento
|
||||
rules.legacylaunchpads.info = Permite usar plataformas de lanzamiento sin plataformas de aterrizaje, como en la versión 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Desactivado[lightgray] (Plataformas de lanzamiento antiguas activadas)
|
||||
rules.showspawns = Mostrar puntos de aparición de unidades enemigas
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = IA de las oleadas impredecible
|
||||
rules.pauseDisabled = Desactivar la pausa
|
||||
rules.fire = Fuego
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Establece una propiedad de una unidad o construcción.
|
||||
lst.effect = Crea un efecto de partículas.
|
||||
lst.sync = Sincroniza una variable a través de la red.\nSolo se invoca 10 veces por segundo como máximo.
|
||||
lst.playsound = Reproduce un sonido.\nEl volumen y la panorámica pueden ser valores globales, o pueden ser calculados basados en posición.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Crea un nuevo marcador lógico en el mundo.\nUna ID para identificar este marcador debe proporcionarse.\nLos marcadores se limitan actualmente a 20,000 por mapa.
|
||||
lst.setmarker = Establece una propiedad para un marcador.\nLa ID usada debe ser la misma que se uso en la instrucción Make Marker.
|
||||
lst.localeprint = Añade el valor de una propiedad de localización al buffer de texto.\nPara establecer conjuntos de localización en el editor del mapa, revisa [accent]Información del mapa > Paquetes de localización[].\nSi el cliente es un dispositivo móvil, trata de imprimir primero una propiedad con terminación ".mobile".
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Lingi avamine ebaõnnestus!\nVeebiaadress kopeeriti.
|
||||
screenshot = Kuvatõmmis salvestati: {0}
|
||||
screenshot.invalid = Maailm on liiga suur: kuvatõmmise salvestamiseks ei pruugi olla piisavalt mälu.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Mäng läbi!
|
||||
gameover.disconnect = Lahku
|
||||
gameover.pvp = Võistkond[accent] {0}[] võitis!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Väljastusleht
|
||||
mods.browser.sortdate = Sorteeri uusimad enne
|
||||
mods.browser.sortstars = Sorteeri tähtede järgi
|
||||
|
||||
export.file = Ekspordi Fail
|
||||
import.file = Impordi Fail
|
||||
copy.clipboard = Kopeeri Lõikelauale
|
||||
import.clipboard = Impordi Lõikelaualt
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Jaga Workshop'is
|
||||
|
||||
schematic = Skeem
|
||||
schematic.add = Salvesta Skeem...
|
||||
schematics = Skeemid
|
||||
@@ -64,12 +72,6 @@ schematic.search = Otsi skeemide hulgast...
|
||||
schematic.replace = Selle nimega skeem juba eksisteerib. Asenda?
|
||||
schematic.exists = Selle nimega skeem juba eksisteerib.
|
||||
schematic.import = Impordi Skeem...
|
||||
schematic.exportfile = Ekspordi Fail
|
||||
schematic.importfile = Impordi Fail
|
||||
schematic.browseworkshop = Lehitse Workshop'i
|
||||
schematic.copy = Kopeeri Lõikelauale
|
||||
schematic.copy.import = Impordi Lõikelaualt
|
||||
schematic.shareworkshop = Jaga Workshop'is
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Peegelda Skeem
|
||||
schematic.saved = Skeem salvestatud.
|
||||
schematic.delete.confirm = See skeem hävitatakse täielikult.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
mod.enable = Enable
|
||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Mänguga ei saanud liituda ([accent]{0}[]).
|
||||
connecting = [accent]Ühendamine...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Maailma andmete allalaadimine...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Ebasobiv pordi number!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Ekspordi
|
||||
save.import.invalid = [accent]See salvestis on kehtetu!
|
||||
save.import.fail = [crimson]Salvestise importimine ebaõnnestus: [accent]{0}
|
||||
save.export.fail = [crimson]Salvestise eksportimine ebaõnnestus: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Impordi
|
||||
save.newslot = Salvestise nimi:
|
||||
save.rename = Nimeta ümber
|
||||
@@ -479,14 +491,6 @@ editor.rules = Reeglid:
|
||||
editor.generation = Genereerimine:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Lahingulained
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Eelvaade
|
||||
waves.edit = Muuda...
|
||||
waves.random = Random
|
||||
waves.copy = Kopeeri puhvrisse
|
||||
waves.load = Lae puhvrist
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Vaikimisi>
|
||||
details = Üksikasjad...
|
||||
edit = Muuda...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Sihib maapinnale
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Transportimise kiirus
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Aeg lendutõusude vahel
|
||||
stat.shootrange = Ulatus
|
||||
stat.size = Suurus
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = [scarlet]Vaenlastel[] on lõputult ressursse
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Väeüksuste tootmiskiiruse kordaja
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Väeüksuste elude kordaja
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Huts egin du esteka irekitzean!\nURL-a zure arbelera kopiatu da.
|
||||
screenshot = Pantaila-argazkia {0} helbidean gorde da
|
||||
screenshot.invalid = Mapa handiegia, baliteke pantaila-argazkirako memoria nahiko ez egotea.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Partida amaitu da
|
||||
gameover.disconnect = Deskonektatu
|
||||
gameover.pvp = [accent] {0}[] taldeak irabazi du!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Bertsioaren orria
|
||||
mods.browser.sortdate = Ordenatu dataren arabera
|
||||
mods.browser.sortstars = Ordenatu izarren arabera
|
||||
|
||||
export.file = Esportatu fitxategia
|
||||
import.file = Inportatu fitxategia
|
||||
copy.clipboard = Kopiatu arbelera
|
||||
import.clipboard = Inportatu arbeletik
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Partekatu tailerrean
|
||||
|
||||
schematic = Eskema
|
||||
schematic.add = Gorde eskema...
|
||||
schematics = Eskemak
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Badago izen bereko eskema bat. Ordeztu nahi duzu?
|
||||
schematic.exists = Badago izen bereko eskema bat.
|
||||
schematic.import = Inportatu eskema...
|
||||
schematic.exportfile = Esportatu fitxategia
|
||||
schematic.importfile = Inportatu fitxategia
|
||||
schematic.browseworkshop = Arakatu tailerra
|
||||
schematic.copy = Kopiatu arbelera
|
||||
schematic.copy.import = Inportatu arbeletik
|
||||
schematic.shareworkshop = Partekatu tailerrean
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: itzulbiratu eskema
|
||||
schematic.saved = Eskema gordeta.
|
||||
schematic.delete.confirm = Eskema hau behin betiko suntsituko da.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Mod hau ezin da kargatu dependentzia elbarr
|
||||
mod.requiresversion = Beharrezko joko bertsioa: [red]{0}
|
||||
|
||||
mod.errors = Erroreak gertatu dira edukia kargatzean.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Erroreak dituzten mod-ak dituzu.[] Desgaitu kaltetutako mod-ak edo konpondu erroreak jolastu aurretik.
|
||||
mod.enable = Gaitu
|
||||
mod.requiresrestart = Jolasa itxi egingo da mod-aren aldaketak aplikatzeko.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Denbora agortuta UDPren argazkiak jasotzen zituen b
|
||||
cantconnect = Ezin izan da partidara elkartu ([accent]{0}[]).
|
||||
connecting = [accent]Konektatzen...
|
||||
reconnecting = [accent]Birkonektatzen...
|
||||
connecting.data = [accent]Munduaren datuak kargatzen...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Ataka:
|
||||
server.invalidport = Ataka zenbaki baliogabea!
|
||||
server.error.addressinuse = [scarlet]Errorea zerbitzaria 6567 portuan konektatzerakoan.[]\n\nZiurtatu beste Mindustry zerbitzaririk ez dabilela zure gailuan edo sarean!
|
||||
@@ -344,6 +352,10 @@ save.export = Esportatu gordetako partida
|
||||
save.import.invalid = [accent]Gordetako partida hau baliogabea da!
|
||||
save.import.fail = [crimson]Huts egin du gordetako partida inportatzean: [accent]{0}
|
||||
save.export.fail = [crimson]Huts egin du gordetako partida esportatzean: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Inportatu gordetako partida
|
||||
save.newslot = Gordetako partidaren izena:
|
||||
save.rename = Aldatu izena
|
||||
@@ -479,14 +491,6 @@ editor.rules = Arauak:
|
||||
editor.generation = Sorrarazi:
|
||||
editor.objectives = Helburuak
|
||||
editor.locales = Eskualde-konfigurazioko paketeak
|
||||
editor.patches.guide = Adabakien gida
|
||||
editor.patches = Eduki adabakiak
|
||||
editor.patch = Adabaki multzoa: {0}
|
||||
editor.patches.none = [lightgray]Ez dago adabaki multzorik kargatuta.
|
||||
editor.patches.errors = Adabaki multzoen erroreak
|
||||
editor.patches.importerror = Errorea adabakien multzoa inportatzean
|
||||
editor.patches.delete.confirm = Ziur zaude adabaki multzo hau ezabatu nahi duzula?
|
||||
editor.patch.fields = {0} eremuak
|
||||
editor.worldprocessors = Munduko prozesadoreak
|
||||
editor.worldprocessors.editname = Izena editatu
|
||||
editor.worldprocessors.none = [lightgray]Ez dira munduko prozesadore blokeak aurkitu!\nGehitu bat mapa-editorean edo erabili \ue813 Gehitu botoia segituan.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Eduki adabakiak
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Ez dago adabaki multzorik kargatuta.
|
||||
patch.errors = Adabaki multzoen erroreak
|
||||
patch.importerror = Errorea adabakien multzoa inportatzean
|
||||
patch.delete.confirm = Ziur zaude adabaki multzo hau ezabatu nahi duzula?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} eremuak
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Lantegia
|
||||
waves.title = Boladak
|
||||
waves.team = Taldea
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = unitate maximoa
|
||||
waves.guardian = Zaindaria
|
||||
waves.preview = Aurrebista
|
||||
waves.edit = Editatu...
|
||||
waves.random = Ausaz
|
||||
waves.copy = Kopiatu arbelera
|
||||
waves.load = Kargatu arbeletik
|
||||
@@ -556,6 +628,7 @@ all = Denak
|
||||
editor.default = [lightgray]<Lehenetsia>
|
||||
details = Xehetasunak...
|
||||
edit = Editatu...
|
||||
edit.menu = Edit...
|
||||
variables = aldagaiak
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Ziur zaude prozesadore honen kode guztia garbitu nahi duzula?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Lurrera tirokatzen du
|
||||
stat.crushdamage = Zapalketak eragindako kaltea
|
||||
stat.legsplashdamage = Hanketako zipriztinek eragindako kalteak.
|
||||
stat.itemsmoved = Garraio-abiadura
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Egozketen arteko denbora
|
||||
stat.shootrange = Irismena
|
||||
stat.size = Neurria
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = AI-k (talde gorriak) baliabide amaigabeak ditu
|
||||
rules.blockhealthmultiplier = Blokeen osasun biderkatzailea
|
||||
rules.blockdamagemultiplier = Blokeen kalte biderkatzailea
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unitateen sorrerarako abiadura-biderkatzailea
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unitateen osasun-biderkatzailea
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Etsaien sektorearen inbasioak
|
||||
rules.legacylaunchpads = Oinordetzan hartutako jaurtiketa-plataformaren mekanika
|
||||
rules.legacylaunchpads.info = 7.0 bertsioan bezala, lurreratze-plataformarik gabeko jaurtiketa-plataformak erabiltzea baimentzen du.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Desgaituta[lightgray] (Oinordetzan hartutako jaurtiketa plataforma gaitu)
|
||||
rules.showspawns = Etsaien spawn-ak erakutsi
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Olatu aurreikusezinen AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Sua
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Linkin avaaminen epäonnistui!\nOsoite on kopioitu leikepöydällesi.
|
||||
screenshot = Kuvankaappaus tallennettu sijaintiin {0}
|
||||
screenshot.invalid = Kartta liian laaja, levytila voi olla liian vähissä kuvankaappausta varten.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Peli ohi
|
||||
gameover.disconnect = Katkaise yhteys
|
||||
gameover.pvp = [accent] {0}[] joukkue voittaa!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Julkaisusivu
|
||||
mods.browser.sortdate = Järjestä laskevaan aikajärjestykseen
|
||||
mods.browser.sortstars = Järjestä tähtien määrän perusteella
|
||||
|
||||
export.file = Vie tiedosto
|
||||
import.file = Tuo tiedosto
|
||||
copy.clipboard = Kopioi leikepöydälle
|
||||
import.clipboard = Tuo leikepöydältä
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Jaa Workshoppiin
|
||||
|
||||
schematic = Kaavio
|
||||
schematic.add = Tallenna kaavio...
|
||||
schematics = Kaaviot
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Kaavio tällä nimellä on jo olemassa. Haluatko korvata sen?
|
||||
schematic.exists = Kaavio tällä nimellä on jo olemassa.
|
||||
schematic.import = Tuo kaavio...
|
||||
schematic.exportfile = Vie tiedosto
|
||||
schematic.importfile = Tuo tiedosto
|
||||
schematic.browseworkshop = Selaa Steam Workshoppia
|
||||
schematic.copy = Kopioi leikepöydälle
|
||||
schematic.copy.import = Tuo leikepöydältä
|
||||
schematic.shareworkshop = Jaa Workshoppiin
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Käännä Kaavio
|
||||
schematic.saved = Kaavio tallennettu.
|
||||
schematic.delete.confirm = Tämä kaavio poistetaan.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Virheitä on tapahtunut pelin ladatessa.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Sinulla on virheellisiä modeja.[] Joko poista ne käytöstä tai korjaa virheet.
|
||||
mod.enable = Käytä
|
||||
mod.requiresrestart = Peli suljetaan jotta muutokset voisivat toteutua.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Peliin ei voitu liittyä ([accent]{0}[]).
|
||||
connecting = [accent]Yhdistetään...
|
||||
reconnecting = [accent]Yhdistetään uudelleen...
|
||||
connecting.data = [accent]Ladataan maailman tietoja...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Portti:
|
||||
server.invalidport = Tällä portilla ei löytynyt peliä!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Vie tallennus
|
||||
save.import.invalid = [accent]Tämä tallennus on kelvoton!
|
||||
save.import.fail = [crimson]Tallennuksen tuominen epäonnistui: [accent]{0}
|
||||
save.export.fail = [crimson]Tallennuksen vieminen epäonnistui: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Tuo tallennus
|
||||
save.newslot = Tallennuksen nimi:
|
||||
save.rename = Nimeä uudelleen
|
||||
@@ -479,14 +491,6 @@ editor.rules = Säännöt:
|
||||
editor.generation = Generaatio:
|
||||
editor.objectives = Tehtävät
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Siirrä X-akselin suunnassa
|
||||
editor.shifty = Siirrä Y-akselin suunnassa
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Työpaja
|
||||
waves.title = Tasot
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = maksimijoukot
|
||||
waves.guardian = Vartija
|
||||
waves.preview = Esikatselu
|
||||
waves.edit = Muokkaa...
|
||||
waves.random = Random
|
||||
waves.copy = Kopioi leikepöydälle
|
||||
waves.load = Lataa leikepöydältä
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Oletus>
|
||||
details = Yksityiskohdat...
|
||||
edit = Muokkaa...
|
||||
edit.menu = Edit...
|
||||
variables = Muuttujat
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Hyökkää maahan
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Liikkumisnopeus
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Aika laukaisujen välillä
|
||||
stat.shootrange = Kantama
|
||||
stat.size = Koko
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Loputtomat AI:n (punaisen joukkueen) resurssit
|
||||
rules.blockhealthmultiplier = Palikkojen elämäpistekerroin
|
||||
rules.blockdamagemultiplier = Palikkojen vahinkokerroin
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Yksikköjen tuotantonopeuskerroin
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Yksikköjen elämäpistekerroin
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Tuli
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Ampuu ryöpyn ohjuksia ja ammuksia kaikkiin läheisiin
|
||||
unit.minke.description = Ampuu kranaatteja ja normaaleja ammuksia läheisiin maakohteisiin.
|
||||
unit.bryde.description = Ampuu pitkän kantaman tykistötulta ja ohjuksia vihollisiin.
|
||||
unit.sei.description = Ampuu ryöpyn ohjuksia ja haarniskan läpäiseviä ammuksia vihollisiin.
|
||||
unit.omura.description = Ampuu pitkän kantaman lävistävän raidetykin vasaman vihollisiin. Tuottaa Flare-yksiköitä.
|
||||
unit.omura.description = Ampuu pitkän kantaman lävistävän raidetykin vasaman vihollisiin.
|
||||
unit.alpha.description = Puolustaa Siru-ydintä vihollisilta. Rakentaa rakennuksia.
|
||||
unit.beta.description = Puolustaa Pohjaus-ydintä vihollisilta. Rakentaa rakennuksia.
|
||||
unit.gamma.description = Puolustaa Tuma-ydintä vihollisilta. Rakentaa rakennuksia.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Hindi mabuksan ang link!\nKinopya na sa iyong clipboard ang URL.
|
||||
screenshot = Kinunan na ang screenshot sa {0}
|
||||
screenshot.invalid = Masiyadong malaki ang lugar, maaaring kulang ang espasyo para sa screenshot.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Natapos ang laro.
|
||||
gameover.disconnect = Nawalan ka ng koneksyon.
|
||||
gameover.pvp = Ang[accent] {0}[] na pangkat ay nanalo!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Pahina ng mga ipinalabas na bersyon
|
||||
mods.browser.sortdate = Uriin sa pinakabago
|
||||
mods.browser.sortstars = Uriin sa kasikatan
|
||||
|
||||
export.file = Mag-export ng File
|
||||
import.file = Kumuha ng File
|
||||
copy.clipboard = Kopyahin sa Clipboard
|
||||
import.clipboard = Kunin mula sa Clipboard
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Ibahagi sa Workshop
|
||||
|
||||
schematic = Eskematiko
|
||||
schematic.add = I-adya ang Eskematiko...
|
||||
schematics = Mga Eskematiko
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search eskematiko...
|
||||
schematic.replace = Ang eskematiko na ito ay magkaparehas ng pangalan. Gusto mo bang palitan ito?
|
||||
schematic.exists = Ang eskematiko na ito ay magkaparehas ng pangalan.
|
||||
schematic.import = Kunin ang eskematiko...
|
||||
schematic.exportfile = Mag-export ng File
|
||||
schematic.importfile = Kumuha ng File
|
||||
schematic.browseworkshop = Maghanap sa Workshop
|
||||
schematic.copy = Kopyahin sa Clipboard
|
||||
schematic.copy.import = Kunin mula sa Clipboard
|
||||
schematic.shareworkshop = Ibahagi sa Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Baligtarin ang eskematiko
|
||||
schematic.saved = Nabago na ang eskematiko.
|
||||
schematic.delete.confirm = Ang eskematiko na ito ay tuluyang mawawala.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Hindi ma-load ang mod na ito dahil sa di-wa
|
||||
mod.requiresversion = Nangangailangan ng bersyon ng laro: [red]{0}
|
||||
|
||||
mod.errors = May mga pagkamali na naitala habang binubuksan ang nilalaman.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]May mga pangbago kang may pagkamali.[] Maaaring huwag munang paganahin ang mga apektadong pangbago o hindi kaya ay ayusin ang mga pagkamali bago maglaro.
|
||||
mod.enable = Paganahin
|
||||
mod.requiresrestart = Ang laro ay magsasara upang mailagay ang mga pagbabago sa pangbago.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Hindi kayant sumali sa larong ([accent]{0}[]).
|
||||
connecting = [accent]Connecting...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Loading world data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Invalid port number!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Ipamigay ang Save
|
||||
save.import.invalid = [accent]Hindi puwede ang intong save!
|
||||
save.import.fail = [scarlet]Pumalya ang pag-kuha ng save: [accent]{0}
|
||||
save.export.fail = [scarlet]Pumalya ang pag-bigay ng save: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Kumuha ng Save
|
||||
save.newslot = Pangalan ng save:
|
||||
save.rename = Ipangalan ulit
|
||||
@@ -479,14 +491,6 @@ editor.rules = Mga Alintuntunin:
|
||||
editor.generation = Pagbuo:
|
||||
editor.objectives = Mga Gawain
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = Proseso ng Map
|
||||
editor.worldprocessors.editname = Iedit ang pangalan
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift ang X
|
||||
editor.shifty = Shift ang Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Magaatake
|
||||
waves.team = Pangkat
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Preview
|
||||
waves.edit = Edit...
|
||||
waves.random = Random
|
||||
waves.copy = I-Copy to Clipboard
|
||||
waves.load = I-Load mula sa Clipboard
|
||||
@@ -556,6 +628,7 @@ all = Lahat
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Mga Detalya...
|
||||
edit = Edit...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Sigurado ka bang na gusto mo itangal ang lahat na code sa itong processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Tinatarget ng mga Ground
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Bilis ng Pag-galaw
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Oras sa pagitan ng mga launches
|
||||
stat.shootrange = Saklaw
|
||||
stat.size = Laki
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Ce serveur souhaite copier du texte dans votre presse-papiers. V
|
||||
linkfail = L'ouverture du lien a échoué ! \nL'URL a été copiée dans votre presse-papier.
|
||||
screenshot = Capture d'écran sauvegardée dans {0}
|
||||
screenshot.invalid = Carte trop grande, potentiellement pas assez de mémoire pour la capture d'écran.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Partie terminée
|
||||
gameover.disconnect = Déconnecté
|
||||
gameover.pvp = L'équipe[accent] {0}[] a gagné !
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Page Github
|
||||
mods.browser.sortdate = Classer par date
|
||||
mods.browser.sortstars = Classer par étoiles
|
||||
|
||||
export.file = Exporter le fichier
|
||||
import.file = Importer un fichier
|
||||
copy.clipboard = Copier dans le presse-papier
|
||||
import.clipboard = Importer depuis presse-papier
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Partager sur le Steam Workshop
|
||||
|
||||
schematic = Schéma
|
||||
schematic.add = Enregistrer le Schéma
|
||||
schematics = Schémas
|
||||
@@ -64,12 +72,6 @@ schematic.search = Chercher des schémas...
|
||||
schematic.replace = Un schéma avec ce nom existe déjà. Voulez-vous le remplacer ?
|
||||
schematic.exists = Un schéma avec ce nom existe déjà.
|
||||
schematic.import = Importer un schéma
|
||||
schematic.exportfile = Exporter le fichier
|
||||
schematic.importfile = Importer un fichier
|
||||
schematic.browseworkshop = Consulter le Steam Workshop
|
||||
schematic.copy = Copier dans le presse-papier
|
||||
schematic.copy.import = Importer depuis presse-papier
|
||||
schematic.shareworkshop = Partager sur le Steam Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Retourner le schéma
|
||||
schematic.saved = Schéma enregistré.
|
||||
schematic.delete.confirm = Ce schéma sera supprimé définitivement !
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Ce mod ne peut pas être chargé en raison
|
||||
mod.requiresversion = Requiert la version: [red]{0}
|
||||
|
||||
mod.errors = Des erreurs se sont produites lors du chargement du contenu.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Vous avez des mods avec des erreurs.[] Désactivez les mods concernés ou corrigez les erreurs avant de jouer.
|
||||
mod.enable = Activer
|
||||
mod.requiresrestart = Le jeu va maintenant se fermer pour appliquer les modifications du mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Délai d'attente expiré en attendant la reception
|
||||
cantconnect = Impossible de rejoindre ([accent]{0}[]).
|
||||
connecting = [accent]Connexion...
|
||||
reconnecting = [accent]Reconnexion...
|
||||
connecting.data = [accent]Chargement des données du monde...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port :
|
||||
server.invalidport = Numéro de port invalide !
|
||||
server.error.addressinuse = [scarlet]Echec d'ouverture du port 6567.[]\n\nVérifier qu'aucun autre logiciel ne fonctionne sur ce port!
|
||||
@@ -344,6 +352,10 @@ save.export = Exporter une sauvegarde
|
||||
save.import.invalid = [accent]Cette sauvegarde est invalide !
|
||||
save.import.fail = [crimson]L'importation de la sauvegarde\na échoué: [accent]{0}
|
||||
save.export.fail = [crimson]L'exportation de la sauvegarde\na échoué: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importer une sauvegarde
|
||||
save.newslot = Nom de la sauvegarde :
|
||||
save.rename = Renommer
|
||||
@@ -479,14 +491,6 @@ editor.rules = Règles
|
||||
editor.generation = Génération
|
||||
editor.objectives = Objectifs
|
||||
editor.locales = Traductions
|
||||
editor.patches.guide = Guide de patch
|
||||
editor.patches = Ensembles de patchs
|
||||
editor.patch = Ensemble de patchs : {0}
|
||||
editor.patches.none = [lightgray]Aucun ensemble de patchs chargé.
|
||||
editor.patches.errors = Erreurs dans l'ensemble de patchs
|
||||
editor.patches.importerror = Impossible d'importer l'ensemble de patchs
|
||||
editor.patches.delete.confirm = Supprimer cet ensemble de patchs ?
|
||||
editor.patch.fields = {0} champs
|
||||
editor.worldprocessors = Processeurs globaux
|
||||
editor.worldprocessors.editname = Editer le nom
|
||||
editor.worldprocessors.none = [lightgray]Aucun processeur global trouvé !\nAjoutez-en un dans l'éditeur de carte, ou utilisez le bouton \ue813 Ajouter ci-dessous.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Priorité personnalisée
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Décalage X
|
||||
editor.shifty = Décalage Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Ensembles de patchs
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Aucun ensemble de patchs chargé.
|
||||
patch.errors = Erreurs dans l'ensemble de patchs
|
||||
patch.importerror = Impossible d'importer l'ensemble de patchs
|
||||
patch.delete.confirm = Supprimer cet ensemble de patchs ?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} champs
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Steam Workshop
|
||||
waves.title = Vagues
|
||||
waves.team = Équipe
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = unités maximum
|
||||
waves.guardian = Gardien
|
||||
waves.preview = Prévisualiser
|
||||
waves.edit = Modifier...
|
||||
waves.random = Aléatoire
|
||||
waves.copy = Copier dans le presse-papiers
|
||||
waves.load = Coller depuis le presse-papiers
|
||||
@@ -556,6 +628,7 @@ all = Tout
|
||||
editor.default = [lightgray]<par défaut>
|
||||
details = Détails...
|
||||
edit = Modifier...
|
||||
edit.menu = Edit...
|
||||
variables = Variables
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Êtes-vous sûr de vouloir supprimer tout le code de ce processeur?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Cibles Terrestres
|
||||
stat.crushdamage = Dégâts d'écrasement
|
||||
stat.legsplashdamage = Dégâts de zone des jambes
|
||||
stat.itemsmoved = Vitesse de Déplacement
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Temps entre chaque lancement
|
||||
stat.shootrange = Portée de tir
|
||||
stat.size = Taille
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Ressources infinies pour l'IA (équipe rouge)
|
||||
rules.blockhealthmultiplier = Multiplicateur de Santé des Blocs
|
||||
rules.blockdamagemultiplier = Multiplicateur de Dégât des Blocs
|
||||
rules.unitfactoryactivation = Délai d'activation des usines d'unités
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicateur de Vitesse de Construction des Unités
|
||||
rules.unitcostmultiplier = Multiplicateur du coût de fabrication des Unités
|
||||
rules.unithealthmultiplier = Multiplicateur de Santé des Unités
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = L'ennemi peut attaquer vos secteurs
|
||||
rules.legacylaunchpads = Anciennes rampes de lancement
|
||||
rules.legacylaunchpads.info = Permet d'utiliser des rampes de lancement sans plateformes d'atterrissage, comme en 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Désactivé[lightgray] (ancien fonctionnement des rampes de lancement activées)
|
||||
rules.showspawns = Afficher les points d'apparition ennemis
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = IA de vagues imprévisible
|
||||
rules.pauseDisabled = Désactiver la pause
|
||||
rules.fire = Feu
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Tire un barrage de missiles et de balles aux ennemis pr
|
||||
unit.minke.description = Tire des obus et des balles normales aux ennemis proches.
|
||||
unit.bryde.description = Tire des obus d'artillerie à longue portée et des missiles aux ennemis proches.
|
||||
unit.sei.description = Tire un barrage de missiles et de balles perçantes aux ennemis proches.
|
||||
unit.omura.description = Tire avec un canon à rails à longue portée, une puissante balle perçante aux ennemis proches. Possède une usine à flares.
|
||||
unit.omura.description = Tire avec un canon à rails à longue portée, une puissante balle perçante aux ennemis proches.
|
||||
unit.alpha.description = Défend le Noyau fragment contre les ennemis. Peut construire des structures.
|
||||
unit.beta.description = Défend le Noyau fondation contre les ennemis. Peut construire des structures.
|
||||
unit.gamma.description = Défend le Noyau épicentre contre les ennemis. Peut construire des structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Change une propriété d'une unité ou d'un bâtiment.
|
||||
lst.effect = Crée un effet de particules.
|
||||
lst.sync = Synchronise une variable dans le réseau.\nLimité à 20 fois par seconde et par variable.
|
||||
lst.playsound = Joue un son.\nLe volume et le pan peuvent être une valeur globale, ou calculés selon la position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Crée un marqueur dans le monde.\nUn ID pour identifier le marqueur doit être donné.\nLes marqueurs sont limités à 20,000 par monde.
|
||||
lst.setmarker = Change une propriété d'un marqueur.\nL'ID utilisé doit être le même que celui de l'instruction "Make Marker".
|
||||
lst.localeprint = Ajoute la valeur d'une propriété de traduction à la mémoire tampon de texte.\nPour définir des traductions dans l'éditeur de carte, consultez [accent]Infos de carte > Traductions[].\nSi le client est un appareil mobile, essaie d'abord d'imprimer une propriété se terminant par ".mobile".
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Ez a kiszolgáló szöveget szeretne másolni a vágólapra. Biz
|
||||
linkfail = Nem sikerült megnyitni a hivatkozást!\nA webcím a vágólapra lett másolva.
|
||||
screenshot = Képernyőkép mentve ide: {0}
|
||||
screenshot.invalid = A pálya túl nagy és nem áll rendelkezésre elegendő memória a képernyőkép elkészítéséhez.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = A játéknak vége
|
||||
gameover.disconnect = A kapcsolat megszakadt
|
||||
gameover.pvp = A(z)[accent] {0}[] csapat nyert!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Kiadások oldala
|
||||
mods.browser.sortdate = Legutóbbiak
|
||||
mods.browser.sortstars = Legjobbra értékeltek
|
||||
|
||||
export.file = Exportálás fájlba
|
||||
import.file = Importálás fájlból
|
||||
copy.clipboard = Másolás a vágólapra
|
||||
import.clipboard = Importálás a vágólapról
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Megosztás a Steam Műhelyben
|
||||
|
||||
schematic = Vázlat
|
||||
schematic.add = Vázlat mentése…
|
||||
schematics = Vázlatok
|
||||
@@ -64,12 +72,6 @@ schematic.search = Vázlat keresése…
|
||||
schematic.replace = Már létezik ilyen nevű vázlat. Lecseréled?
|
||||
schematic.exists = Már létezik ilyen nevű vázlat.
|
||||
schematic.import = Vázlat importálása…
|
||||
schematic.exportfile = Exportálás fájlba
|
||||
schematic.importfile = Importálás fájlból
|
||||
schematic.browseworkshop = Steam Műhely megtekintése
|
||||
schematic.copy = Másolás a vágólapra
|
||||
schematic.copy.import = Importálás a vágólapról
|
||||
schematic.shareworkshop = Megosztás a Steam Műhelyben
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Vázlat tükrözése
|
||||
schematic.saved = Vázlat mentve.
|
||||
schematic.delete.confirm = Ez a vázlat törölve lesz.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Ez a mod nem tölthető be az érvénytelen
|
||||
mod.requiresversion = Szükséges játékverzió: [red]{0}[]
|
||||
|
||||
mod.errors = Hiba történt a tartalom betöltésekor.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]Hibákkal rendelkező modjaid vannak.[] Kapcsold ki, vagy javítsd ki őket a játék elindítása előtt.
|
||||
mod.enable = Engedélyezés
|
||||
mod.requiresrestart = A játék most kilép, hogy a módosítások érvénybe lépjenek a következő indításkor.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Időtúllépés történt az UDP-pillanatképek fog
|
||||
cantconnect = Nem sikerült kapcsolódni a(z) ([accent]{0}[]) játékhoz.
|
||||
connecting = [accent]Kapcsolódás…
|
||||
reconnecting = [accent]Újrakapcsolódás…
|
||||
connecting.data = [accent]Világadatok betöltése…
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Érvénytelen port!
|
||||
server.error.addressinuse = [scarlet]Nem sikerült megnyitni a kiszolgálót a 6567-es porton.[]\n\nGyőződj meg arról, hogy nem fut más Mindustry kiszolgáló az eszközön vagy a hálózaton!
|
||||
@@ -344,6 +352,10 @@ save.export = Mentés exportálása
|
||||
save.import.invalid = [accent]Ez a mentés érvénytelen!
|
||||
save.import.fail = [scarlet]Nem sikerült importálni a(z) [accent]{0}[] mentést
|
||||
save.export.fail = [scarlet]Nem sikerült exportálni a(z) [accent]{0}[] mentést
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Mentés importálása
|
||||
save.newslot = Mentés neve:
|
||||
save.rename = Átnevezés
|
||||
@@ -479,14 +491,6 @@ editor.rules = Szabályok
|
||||
editor.generation = Előállítás
|
||||
editor.objectives = Célok
|
||||
editor.locales = Nyelvi csomagok
|
||||
editor.patches.guide = Útmutató a javítócsomagokhoz
|
||||
editor.patches = Javítócsomag-adatok
|
||||
editor.patch = Javítócsomagok: {0}
|
||||
editor.patches.none = [lightgray]Nincsenek javítócsomagok betöltve.
|
||||
editor.patches.errors = Javítócsomag-hibák
|
||||
editor.patches.importerror = Nem sikerült importálni a javítócsomagot
|
||||
editor.patches.delete.confirm = Biztosan törölni szeretnéd ezt a javítócsomagot?
|
||||
editor.patch.fields = {0} mező
|
||||
editor.worldprocessors = Világprocesszorok
|
||||
editor.worldprocessors.editname = Név szerkesztése
|
||||
editor.worldprocessors.none = [lightgray]Nem találhatók világprocesszor-blokkok!\nAdj hozzá egyet a pályaszerkesztőben vagy használd az alábbi \ue813 hozzáadás gombot.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Egyéni előnyben részesítés
|
||||
editor.filters.planetselect = Bolygóválasztás
|
||||
editor.shiftx = X-eltolás
|
||||
editor.shifty = Y-eltolás
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Javítócsomag-adatok
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Nincsenek javítócsomagok betöltve.
|
||||
patch.errors = Javítócsomag-hibák
|
||||
patch.importerror = Nem sikerült importálni a javítócsomagot
|
||||
patch.delete.confirm = Biztosan törölni szeretnéd ezt a javítócsomagot?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} mező
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Steam Műhely
|
||||
waves.title = Hullámok
|
||||
waves.team = Csapat
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](első {0})
|
||||
waves.max = egységkorlát
|
||||
waves.guardian = Őrző
|
||||
waves.preview = Előnézet
|
||||
waves.edit = Szerkesztés…
|
||||
waves.random = Véletlenszerű
|
||||
waves.copy = Másolás a vágólapra
|
||||
waves.load = Betöltés a vágólapról
|
||||
@@ -556,6 +628,7 @@ all = Összes
|
||||
editor.default = [lightgray]<Alapértelmezett>
|
||||
details = Részletek…
|
||||
edit = Szerkesztés
|
||||
edit.menu = Edit...
|
||||
variables = Változók
|
||||
logic.error.toolong = A processzorkód túl hosszú (Korlát: {0} tömörített bájt, tényleges hossz: {1} bájt)
|
||||
logic.clear.confirm = Biztosan törölni akarod az összes kódot ebből a processzorból?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Földi célpontok
|
||||
stat.crushdamage = Zúzó sebzés
|
||||
stat.legsplashdamage = Lábbal okozott területi sebzés
|
||||
stat.itemsmoved = Szállítási sebesség
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Kilövések közötti idő
|
||||
stat.shootrange = Hatótávolság
|
||||
stat.size = Méret
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Végtelen ellenséges csapaterőforrások
|
||||
rules.blockhealthmultiplier = Épületek életpontszorzója
|
||||
rules.blockdamagemultiplier = Épületek sebzésszorzója
|
||||
rules.unitfactoryactivation = Egységgyár aktiválásának késleltetése
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Egységek gyártási sebességszorzója
|
||||
rules.unitcostmultiplier = Egységek költségszorzója
|
||||
rules.unithealthmultiplier = Egységek életpontszorzója
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Ellenséges szektorokból érkező inváziók
|
||||
rules.legacylaunchpads = Hagyományos kilövőállás-mechanizmus
|
||||
rules.legacylaunchpads.info = Lehetővé teszi a kilövőállások használatát landolóállások nélkül, mint a v7.0-ban.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Letiltva[lightgray] (Hagyományos kilövőállás engedélyezve)
|
||||
rules.showspawns = Ellenséges kezdőpontok megjelenítése a minitérképen
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Kiszámíthatatlan ellenséges támadások (MI)
|
||||
rules.pauseDisabled = Szüneteltetés letiltása
|
||||
rules.fire = Tűz
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Egy egység vagy épület tulajdonságainak beállítása.
|
||||
lst.effect = Részecskehatás létrehozása.
|
||||
lst.sync = Egy változó szinkronizálása a hálózaton keresztül.\nMásodpercenként legfeljebb 20-szor hívható meg.
|
||||
lst.playsound = Egy hangot játszik le.\nA hangerő és a panoráma lehet globális érték, vagy a pozíció alapján kiszámított érték.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Új logikai jelölő létrehozása a világban.\nMeg kell adni egy azonosítót a jelölő azonosításához.\nA jelölők száma jelenleg világonként 20 000-re van korlátozva.
|
||||
lst.setmarker = Egy jelölő tulajdonságának beállítása.\nA használt azonosítónak meg kell egyeznie a Make Marker utasításban megadottal.\nA [accent]null []értékek figyelmen kívül lesznek hagyva.
|
||||
lst.localeprint = Hozzáadja a pálya nyelvi csomagjainak tulajdonságértékét a szövegpufferhez.\nA pálya nyelvi csomagjainak beállításait a térképszerkesztőben ellenőrizheted: [accent]pályainformációk > nyelvi csomagok[].\nHa a kliens egy hordozható eszköz, akkor először próbáld kiíratni a ".mobile" végződésű tulajdonságot.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Server ini ingin menyalin teks ke papan klip Anda. Apakah Anda y
|
||||
linkfail = Gagal membuka tautan!\nURL disalin ke papan klip.
|
||||
screenshot = Tangkapan layar tersimpan di {0}
|
||||
screenshot.invalid = Peta terlalu besar, tidak cukup memori untuk menangkap layar.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Permainan Selesai
|
||||
gameover.disconnect = Jaringan Terputus
|
||||
gameover.pvp = Tim[accent] {0}[] menang!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Laman Rilis
|
||||
mods.browser.sortdate = Urut berdasarkan waktu
|
||||
mods.browser.sortstars = Urut berdasarkan bintang
|
||||
|
||||
export.file = Ekspor Berkas
|
||||
import.file = Impor Berkas
|
||||
copy.clipboard = Salin ke papan klip
|
||||
import.clipboard = Impor dari papan klip
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Bagikan di Workshop
|
||||
|
||||
schematic = Skematik
|
||||
schematic.add = Menyimpan skematik...
|
||||
schematics = Kumpulan skematik
|
||||
@@ -64,12 +72,6 @@ schematic.search = Cari skematik...
|
||||
schematic.replace = Skematik dengan nama tersebut telah ada. Ganti dengan yang baru?
|
||||
schematic.exists = Skematik dengan nama tersebut telah ada.
|
||||
schematic.import = Mengimpor skematik...
|
||||
schematic.exportfile = Ekspor Berkas
|
||||
schematic.importfile = Impor Berkas
|
||||
schematic.browseworkshop = Cari di Workshop
|
||||
schematic.copy = Salin ke papan klip
|
||||
schematic.copy.import = Impor dari papan klip
|
||||
schematic.shareworkshop = Bagikan di Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Balik Skematik
|
||||
schematic.saved = Skematik telah disimpan.
|
||||
schematic.delete.confirm = Skematik ini akan benar-benar dihapus.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Mod ini gagal memuat karena kekurangan depe
|
||||
mod.requiresversion = Memerlukan versi game: [red]{0}
|
||||
|
||||
mod.errors = Terjadi kesalahan saat memuat konten.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Anda memiliki mod dengan suatu kesalahan.[] Nonaktifkan mod yang bersangkutan atau perbaiki kesalahan tersebut sebelum bermain.
|
||||
mod.enable = Aktifkan
|
||||
mod.requiresrestart = Game akan ditutup untuk mengaktifkan perubahan mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Waktu koneksi habis selama menerima snapshot UDP.\n
|
||||
cantconnect = Gagal bergabung ke permainan ([accent]{0}[]).
|
||||
connecting = [accent]Menghubungkan...
|
||||
reconnecting = [accent]Menghubungkan kembali...
|
||||
connecting.data = [accent]Memuat data dunia...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Nomor port tidak valid!
|
||||
server.error.addressinuse = [scarlet]Gagal membuka server di port 6567.[]\n\nPastikan tidak ada server Mindustry lain yang berjalan di perangkat atau jaringan Anda!
|
||||
@@ -344,6 +352,10 @@ save.export = Ekspor Simpanan
|
||||
save.import.invalid = [accent]Simpanan ini tidak valid!
|
||||
save.import.fail = [crimson]Gagal mengimpor simpanan: [accent]{0}
|
||||
save.export.fail = [crimson]Gagal mengekspor simpanan: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Impor Simpanan
|
||||
save.newslot = Simpan nama:
|
||||
save.rename = Ganti nama
|
||||
@@ -479,14 +491,6 @@ editor.rules = Peraturan:
|
||||
editor.generation = Generasi:
|
||||
editor.objectives = Tujuan Peta
|
||||
editor.locales = Paket Lokal
|
||||
editor.patches.guide = Panduan Patch Data
|
||||
editor.patches = Patch Data
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]Tidak ada patchset yang dimuat.
|
||||
editor.patches.errors = Daftar Patchset Error
|
||||
editor.patches.importerror = Gagal mengimpor patchset
|
||||
editor.patches.delete.confirm = Apakah Anda yakin ingin menghapus patchset ini?
|
||||
editor.patch.fields = {0} bidang
|
||||
editor.worldprocessors = Prosesor Dunia
|
||||
editor.worldprocessors.editname = Sunting Nama
|
||||
editor.worldprocessors.none = [lightgray]Tidak ada blok prosesor dunia yang ditemukan!\nTambahkan satu di penyunting peta, atau gunakan \ue813 tombol Tambah di bawah.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Prioritas Kustom
|
||||
editor.filters.planetselect = Pemilihan Planet
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Patch Data
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Tidak ada patchset yang dimuat.
|
||||
patch.errors = Daftar Patchset Error
|
||||
patch.importerror = Gagal mengimpor patchset
|
||||
patch.delete.confirm = Apakah Anda yakin ingin menghapus patchset ini?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} bidang
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Gelombang
|
||||
waves.team = Tim
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](pertama {0})
|
||||
waves.max = unit maksimum
|
||||
waves.guardian = Penjaga
|
||||
waves.preview = Pratinjau
|
||||
waves.edit = Sunting...
|
||||
waves.random = Acak
|
||||
waves.copy = Salin ke Papan Klip
|
||||
waves.load = Tempel dari Papan Klip
|
||||
@@ -556,6 +628,7 @@ all = Semua
|
||||
editor.default = [lightgray]<Standar>
|
||||
details = Detail...
|
||||
edit = Sunting
|
||||
edit.menu = Edit...
|
||||
variables = Variabel
|
||||
logic.error.toolong = Kode prosesor terlalu panjang (Batas: {0} byte terkompresi, panjang sebenarnya: {1} byte)
|
||||
logic.clear.confirm = Apakah Anda yakin ingin menghapus semua kode dari prosesor ini?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Target Darat
|
||||
stat.crushdamage = Damage Benturan
|
||||
stat.legsplashdamage = Damage Percikan Kaki
|
||||
stat.itemsmoved = Kecepatan Barang
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Selang Waktu Peluncuran
|
||||
stat.shootrange = Jarak
|
||||
stat.size = Ukuran
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Sumber Daya Musuh Tak Terbatas
|
||||
rules.blockhealthmultiplier = Penggandaan Nyawa Blok
|
||||
rules.blockdamagemultiplier = Penggandaan Damage Blok
|
||||
rules.unitfactoryactivation = Penundaan Aktivasi Pabrik Unit
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Penggandaan Kecepatan Produksi Unit
|
||||
rules.unitcostmultiplier = Penggandaan Bahan Produksi Unit
|
||||
rules.unithealthmultiplier = Penggandaan Nyawa Unit
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invasi Sektor Musuh
|
||||
rules.legacylaunchpads = Mekanisme Alas Peluncur Warisan
|
||||
rules.legacylaunchpads.info = Mengizinkan penggunaan alas peluncur tanpa alas pendaratan, seperti pada versi 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Nonaktifkan[lightgray] (Alas Peluncur Warisan diaktifkan)
|
||||
rules.showspawns = Tampilkan Zona Pendaratan Musuh
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Gelombang AI yang Tak Terduga
|
||||
rules.pauseDisabled = Nonaktifkan Jeda
|
||||
rules.fire = Api
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Menetapkan properti unit atau bangunan.
|
||||
lst.effect = Buat efek partikel.
|
||||
lst.sync = Sinkronkan variabel di seluruh jaringan.\nHanya dipanggil paling banyak 10 kali per detik.
|
||||
lst.playsound = Memutar suara. \nVolume dan kontrol suara dapat berupa nilai global, atau dihitung berdasarkan posisi.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Buat penanda logika baru di dunia.\nSebuah ID untuk mengidentifikasi penanda ini harus disediakan.\nPenanda saat ini dibatasi hingga 20.000 per dunia.
|
||||
lst.setmarker = Tetapkan properti untuk penanda.\nID yang digunakan harus sama dengan instruksi Membuat Marker.
|
||||
lst.localeprint = Tambahkan nilai properti peta lokal ke buffer teks.\nUntuk menyetel paket peta lokal di penyunting peta, cek [accent]Info Peta > Paket Lokal[].\nJika klien adalah perangkat seluler, coba cetak properti yang diakhiri dengan ".mobile" terlebih dahulu.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Impossibile aprire il link! L'URL è stato copiato negli appunti.
|
||||
screenshot = Screenshot salvato a {0}
|
||||
screenshot.invalid = Mappa troppo pesante, probabilmente non c'è abbastanza spazio sul disco.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Hai Perso.
|
||||
gameover.disconnect = Disconnetti
|
||||
gameover.pvp = La squadra[accent] {0}[] ha vinto!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Pagina delle versioni di Mindustry
|
||||
mods.browser.sortdate = Ordinato per data
|
||||
mods.browser.sortstars = Ordinato per stelle
|
||||
|
||||
export.file = Esporta File
|
||||
import.file = Importa File
|
||||
copy.clipboard = Copia negli Appunti
|
||||
import.clipboard = Importa dagli Appunti
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Condividi nel Workshop
|
||||
|
||||
schematic = Schematica
|
||||
schematic.add = Salva Schematica...
|
||||
schematics = Schematiche
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Esiste già una schematica con questo nome. Sostituirla?
|
||||
schematic.exists = Esiste già una schematica con questo nome.
|
||||
schematic.import = Importa schematica
|
||||
schematic.exportfile = Esporta File
|
||||
schematic.importfile = Importa File
|
||||
schematic.browseworkshop = Sfoglia il Workshop
|
||||
schematic.copy = Copia negli Appunti
|
||||
schematic.copy.import = Importa dagli Appunti
|
||||
schematic.shareworkshop = Condividi nel Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Ruota Schematica
|
||||
schematic.saved = Schematica salvata.
|
||||
schematic.delete.confirm = Questa schematica sarà cancellata definitivamente.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Questa mod non è in grado di essere carica
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Si sono verificati degli errori durante il caricamento del contenuto.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Sono presenti delle mod con errori.[] Puoi disabilitare le mod affette oppure sistemarle prima di giocare.
|
||||
mod.enable = Abilita
|
||||
mod.requiresrestart = Il gioco verrà chiuso per applicare i cambiamenti.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Impossibile unirsi alla partita ([accent]{0}[]).
|
||||
connecting = [accent]Connessione in corso...
|
||||
reconnecting = [accent]Riconnessione in corso...
|
||||
connecting.data = [accent]Caricamento del mondo...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Porta:
|
||||
server.invalidport = Numero porta non valido!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Esporta Salvataggio
|
||||
save.import.invalid = [accent]Questo salvataggio non è valido!
|
||||
save.import.fail = [scarlet]Impossibile importare il salvataggio: [accent]{0}
|
||||
save.export.fail = [scarlet]Impossibile esportare il salvataggio: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importa Salvataggio
|
||||
save.newslot = Nome:
|
||||
save.rename = Rinomina
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regole:
|
||||
editor.generation = Generazione:
|
||||
editor.objectives = Obiettivi
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Ondate
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = numero massimo unità
|
||||
waves.guardian = Guardiano
|
||||
waves.preview = Anteprima
|
||||
waves.edit = Modifica...
|
||||
waves.random = Random
|
||||
waves.copy = Copia negli Appunti
|
||||
waves.load = Carica dagli Appunti
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Predefinito>
|
||||
details = Dettagli...
|
||||
edit = Modifica...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Attacca Nemici Terreni
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Velocità
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tempo tra Lanci
|
||||
stat.shootrange = Raggio
|
||||
stat.size = Dimensione
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Risorse AI (squadra Rossa) Infinite
|
||||
rules.blockhealthmultiplier = Moltiplicatore Salute Blocco
|
||||
rules.blockdamagemultiplier = Moltiplicatore Danno Blocco
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Moltiplicatore Velocità Costruzione Unità
|
||||
rules.unitcostmultiplier = Moltiplicatore Costo Unità
|
||||
rules.unithealthmultiplier = Moltiplicatore Vita Unità
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fuoco
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Spara una raffica di missili e proiettili ai nemici nel
|
||||
unit.minke.description = Spara proiettili incendiari e standard alle unità terrene.
|
||||
unit.bryde.description = Spara proiettili e missili a lungo raggio ai nemici.
|
||||
unit.sei.description = Spara raffiche di missili e proiettili corazzati e perforanti ai nemici.
|
||||
unit.omura.description = Utilizza un bullone sparatato grazie a due binari a scorrimento accelerati da un campo elettromagnetico. Lunga gittata e perforazione estrema. Costruisce unità flare.
|
||||
unit.omura.description = Utilizza un bullone sparatato grazie a due binari a scorrimento accelerati da un campo elettromagnetico. Lunga gittata e perforazione estrema.
|
||||
unit.alpha.description = Difende il nucleo Frammento dai nemici. Costruisce strutture.
|
||||
unit.beta.description = Difende il nucleo Fondamento dai nemici. Costruisce strutture.
|
||||
unit.gamma.description = Difende il nucleo Kernel dai nemici. Costruisce strutture.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = このサーバーはクリップボードにテキストをコ
|
||||
linkfail = リンクを開けませんでした!\nURLをクリップボードにコピーしました。
|
||||
screenshot = スクリーンショットを {0} に保存しました。
|
||||
screenshot.invalid = マップが広すぎます。スクリーンショットに必要なメモリが足りない可能性があります。
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = ゲームオーバー
|
||||
gameover.disconnect = 切断
|
||||
gameover.pvp = [accent] {0}[] チームの勝利!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = リリースページ
|
||||
mods.browser.sortdate = 新しいものから並べる
|
||||
mods.browser.sortstars = お気に入り数で並べる
|
||||
|
||||
export.file = ファイルに出力する
|
||||
import.file = ファイルから読み込む
|
||||
copy.clipboard = クリップボードにコピーする
|
||||
import.clipboard = クリップボードから読み込む
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = ワークショップで共有する
|
||||
|
||||
schematic = 設計図
|
||||
schematic.add = 設計図を保存
|
||||
schematics = 設計図一覧
|
||||
@@ -64,12 +72,6 @@ schematic.search = 設計図を探す...
|
||||
schematic.replace = その名前の設計図は既に存在しています。上書きしますか?
|
||||
schematic.exists = その名前の設計図は既に存在しています。
|
||||
schematic.import = 設計図をインポート
|
||||
schematic.exportfile = ファイルに出力する
|
||||
schematic.importfile = ファイルから読み込む
|
||||
schematic.browseworkshop = ワークショップを表示する
|
||||
schematic.copy = クリップボードにコピーする
|
||||
schematic.copy.import = クリップボードから読み込む
|
||||
schematic.shareworkshop = ワークショップで共有する
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: 反転
|
||||
schematic.saved = 設計図を保存しました。
|
||||
schematic.delete.confirm = この設計図は完全に削除されます。よろしいですか
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = 依存関係が無効または欠損して
|
||||
mod.requiresversion = ゲームのバージョンが必要です: [red]{0}
|
||||
|
||||
mod.errors = コンテンツの読み込み中にエラーが発生しました。
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]以下のModにエラーがあります。[] Modを無効化するか、エラーを修正してください。
|
||||
mod.enable = 有効化
|
||||
mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = UDPスナップショットの受信中にタイム
|
||||
cantconnect = ゲームに参加できませんでした。 ([accent]{0}[])
|
||||
connecting = [accent]接続中...
|
||||
reconnecting = [accent]再接続中...
|
||||
connecting.data = [accent]ワールドデータを読み込み中...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = ポート:
|
||||
server.invalidport = 無効なポート番号です!
|
||||
server.error.addressinuse = [scarlet]ポート6567でサーバーを開けませんでした。[]\n\nあなたのデバイスまたはネットワーク上で、他のMindustryサーバーが起動していないことを確認してください!
|
||||
@@ -344,6 +352,10 @@ save.export = エクスポート
|
||||
save.import.invalid = [accent]無効なセーブデータです!
|
||||
save.import.fail = [crimson]セーブデータのインポートに失敗しました: [accent]{0}
|
||||
save.export.fail = [crimson]セーブデータのエクスポートに失敗しました: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = インポート
|
||||
save.newslot = セーブ名:
|
||||
save.rename = 名前を変更
|
||||
@@ -479,14 +491,6 @@ editor.rules = ルール:
|
||||
editor.generation = 生成:
|
||||
editor.objectives = オブジェクティブ
|
||||
editor.locales = ロケールバンドル
|
||||
editor.patches.guide = パッチガイド
|
||||
editor.patches = コンテンツパッチ
|
||||
editor.patch = パッチセット: {0}
|
||||
editor.patches.none = [lightgray]パッチセットは読み込みされていません
|
||||
editor.patches.errors = パッチセットのエラー
|
||||
editor.patches.importerror = パッチセットのインポートに失敗しました
|
||||
editor.patches.delete.confirm = このパッチセットを削除しますか?
|
||||
editor.patch.fields = {0} フィールド
|
||||
editor.worldprocessors = ワールドプロセッサー
|
||||
editor.worldprocessors.editname = 名前の変更
|
||||
editor.worldprocessors.none = [lightgray]ワールドプロセッサーが見つかりません!\nマップエディターで追加するか、下の \ue813 追加ボタンを使用してください。
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = カスタムの優先度
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = コンテンツパッチ
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]パッチセットは読み込みされていません
|
||||
patch.errors = パッチセットのエラー
|
||||
patch.importerror = パッチセットのインポートに失敗しました
|
||||
patch.delete.confirm = このパッチセットを削除しますか?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} フィールド
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = ワークショップ
|
||||
waves.title = ウェーブ
|
||||
waves.team = チーム
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = 最大ユニット数
|
||||
waves.guardian = ガーディアン
|
||||
waves.preview = プレビュー
|
||||
waves.edit = 編集...
|
||||
waves.random = ランダム
|
||||
waves.copy = クリップボードにコピー
|
||||
waves.load = クリップボードから読み込む
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<デフォルト>
|
||||
details = 詳細...
|
||||
edit = 編集...
|
||||
edit.menu = Edit...
|
||||
variables = 変数
|
||||
logic.error.toolong = プロセッサのコードが長すぎます(制限: 圧縮後 {0} バイト、実際の長さ: {1} バイト)
|
||||
logic.clear.confirm = このプロセッサからすべてのコードを消去しますか?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = 対地攻撃
|
||||
stat.crushdamage = クラッシュダメージ
|
||||
stat.legsplashdamage = 踏みつぶしダメージ
|
||||
stat.itemsmoved = 輸送速度
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = 発射の待機時間
|
||||
stat.shootrange = 範囲
|
||||
stat.size = 大きさ
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = 敵(赤チーム)の資源の無限化
|
||||
rules.blockhealthmultiplier = ブロック体力倍率
|
||||
rules.blockdamagemultiplier = ブロックダメージ倍率
|
||||
rules.unitfactoryactivation = ユニット工場の起動遅延
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = ユニット製造速度倍率
|
||||
rules.unitcostmultiplier = ユニット製造コスト倍率
|
||||
rules.unithealthmultiplier = ユニット体力倍率
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = 敵セクター侵攻
|
||||
rules.legacylaunchpads = 旧発射台仕様
|
||||
rules.legacylaunchpads.info = 着陸台なしで発射台を使用できるようにします(v7.0仕様)。
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 無効[lightgray](旧発射台は有効)
|
||||
rules.showspawns = 敵発生地表示
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = 不規則なウェーブAI
|
||||
rules.pauseDisabled = 一時停止の無効化
|
||||
rules.fire = 火災
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = 近くの敵にミサイルと弾丸の弾幕を発射
|
||||
unit.minke.description = 近くの地上目標に砲弾と標準的な弾丸を発射します。
|
||||
unit.bryde.description = 敵に長距離砲弾とミサイルを発射します。
|
||||
unit.sei.description = 敵にミサイルと徹甲弾の弾幕を発射します。
|
||||
unit.omura.description = 敵に長距離かつ貫通性能を持つレールガンボルトを発射します。\nフレアユニットを生産します。
|
||||
unit.omura.description = 敵に長距離かつ貫通性能を持つレールガンボルトを発射します。
|
||||
unit.alpha.description = シャードコアを敵から守ります。\n建造物を建築します。
|
||||
unit.beta.description = ファンデーションコアを敵から守ります。\n建造物を建築します。
|
||||
unit.gamma.description = ニュークリアスコアを敵から守ります。\n建造物を建築します。
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = ユニットまたは建物のプロパティを設定します。
|
||||
lst.effect = パーティクルエフェクトを作成します。
|
||||
lst.sync = ネットワーク経由で変数を同期します。\n最大で1秒間に10回まで呼び出されます。
|
||||
lst.playsound = サウンドを再生します。\n音量とパンはグローバル値として設定するか、位置に基づいて計算できます。
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = ワールドに新しいロジックマーカーを作成します。\nこのマーカーを識別するためのIDを指定する必要があります。\nマーカーは現在、1ワールドにつき最大20,000個までです。
|
||||
lst.setmarker = マーカーのプロパティを設定します。\n使用するIDは"Make Marker"命令で指定したものと同じである必要があります。
|
||||
lst.localeprint = マップのロケールプロパティの値をテキストバッファに追加します。\nマップエディタでロケールバンドルを設定するには、[accent]Map Info > Locale Bundles[] を確認してください。\nクライアントがモバイルの場合、末尾が ".mobile" のプロパティを優先して出力します。
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = 이 서버에서 텍스트를 클립보드에 복사하려고
|
||||
linkfail = 링크를 열지 못했습니다!\nURL이 클립보드에 복사되었습니다.
|
||||
screenshot = 스크린샷이 {0} 에 저장되었습니다.
|
||||
screenshot.invalid = 맵이 너무 커서 스크린샷에 사용될 메모리가 부족합니다.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = 게임 오버
|
||||
gameover.disconnect = 연결 끊기
|
||||
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = 릴리즈 페이지
|
||||
mods.browser.sortdate = 최근 업데이트
|
||||
mods.browser.sortstars = 추천(스타) 수
|
||||
|
||||
export.file = 파일 내보내기
|
||||
import.file = 파일 가져오기
|
||||
copy.clipboard = 클립보드에 복사
|
||||
import.clipboard = 클립보드에서 가져오기
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = 창작마당에 공유
|
||||
|
||||
schematic = 설계도
|
||||
schematic.add = 설계도 저장하기
|
||||
schematics = 설계도
|
||||
@@ -64,12 +72,6 @@ schematic.search = 설계도 검색하기
|
||||
schematic.replace = 해당 이름의 설계도가 이미 존재합니다. 교체하시겠습니까?
|
||||
schematic.exists = 해당 이름의 설계도가 이미 존재합니다.
|
||||
schematic.import = 설계도 가져오기
|
||||
schematic.exportfile = 파일 내보내기
|
||||
schematic.importfile = 파일 가져오기
|
||||
schematic.browseworkshop = 창작마당 검색
|
||||
schematic.copy = 클립보드에 복사
|
||||
schematic.copy.import = 클립보드에서 가져오기
|
||||
schematic.shareworkshop = 창작마당에 공유
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: 설계도 뒤집기
|
||||
schematic.saved = 설계도 저장됨
|
||||
schematic.delete.confirm = 이 설계도는 완전히 삭제될 것입니다.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = 잘못되었거나 누락한 종속성으
|
||||
mod.requiresversion = 필요한 게임 버전: [red]{0}
|
||||
|
||||
mod.errors = 콘텐츠를 불러오는 중에 오류가 발생함
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]오류가 있는 모드가 있습니다.[] 영향을 받는 모드를 비활성화하거나 플레이하기 전에 오류를 수정하세요.
|
||||
mod.enable = 활성화
|
||||
mod.requiresrestart = 모드 변경 사항을 적용하기 위해 게임을 종료합니다.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = UDP 스냅샷을 수신하는 동안 시간이 초
|
||||
cantconnect = [accent]{0}[] 게임에 참여할 수 없습니다.
|
||||
connecting = [accent]연결 중...
|
||||
reconnecting = [accent]재접속 중...
|
||||
connecting.data = [accent]맵 데이터 불러오는 중...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = 포트:
|
||||
server.invalidport = 잘못된 포트 번호입니다!
|
||||
server.error.addressinuse = [scarlet]포트 6567에서 서버를 열지 못했습니다.[]\n\n다른 Mindustry 서버가 귀하의 장치나 네트워크에서 실행되고 있지 않은지 확인하세요!
|
||||
@@ -344,6 +352,10 @@ save.export = 저장 내보내기
|
||||
save.import.invalid = [accent]저장 파일이 잘못되었습니다!
|
||||
save.import.fail = [scarlet]저장 파일을 가져오지 못함: [accent]{0}
|
||||
save.export.fail = [scarlet]저장 파일을 내보내지 못함: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = 저장 가져오기
|
||||
save.newslot = 저장 이름:
|
||||
save.rename = 이름 변경
|
||||
@@ -479,14 +491,6 @@ editor.rules = 규칙
|
||||
editor.generation = 지형 생성
|
||||
editor.objectives = 목표
|
||||
editor.locales = 로케일 번들
|
||||
editor.patches.guide = 패치 가이드
|
||||
editor.patches = 데이터 패치
|
||||
editor.patch = 패치셋: {0}
|
||||
editor.patches.none = [lightgray]패치셋이 로드되지 않음.
|
||||
editor.patches.errors = 패치셋 에러
|
||||
editor.patches.importerror = 패치셋을 가져오는데 실패됨
|
||||
editor.patches.delete.confirm = 이 패치셋을 삭제하시겠습니까?
|
||||
editor.patch.fields = {0} 필드
|
||||
editor.worldprocessors = 월드 프로세서
|
||||
editor.worldprocessors.editname = 이름 수정
|
||||
editor.worldprocessors.none = [lightgray]월드 프로세서 블록을 찾을 수 없습니다!\n맵 편집기에서 추가하거나 아래의 \ue813 추가 버튼을 사용하세요.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = 사용자 지정 우선순위
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = X축 밀기
|
||||
editor.shifty = Y축 밀기
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = 데이터 패치
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]패치셋이 로드되지 않음.
|
||||
patch.errors = 패치셋 에러
|
||||
patch.importerror = 패치셋을 가져오는데 실패됨
|
||||
patch.delete.confirm = 이 패치셋을 삭제하시겠습니까?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} 필드
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = 창작마당
|
||||
waves.title = 단계
|
||||
waves.team = 팀
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](처음 {0}개)
|
||||
waves.max = 기까지
|
||||
waves.guardian = 수호자
|
||||
waves.preview = 미리보기
|
||||
waves.edit = 편집
|
||||
waves.random = 무작위
|
||||
waves.copy = 클립보드로 복사하기
|
||||
waves.load = 클립보드에서 불러오기
|
||||
@@ -556,6 +628,7 @@ all = 모두
|
||||
editor.default = [lightgray]<기본값>
|
||||
details = 설명...
|
||||
edit = 편집...
|
||||
edit.menu = Edit...
|
||||
variables = 변수
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = 이 프로세서의 모든 코드를 삭제하시겠습니까?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = 지상 조준
|
||||
stat.crushdamage = 파쇄 피해
|
||||
stat.legsplashdamage = 다리 짓밟기 피해
|
||||
stat.itemsmoved = 이동 속도
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = 출격 간격
|
||||
stat.shootrange = 사거리
|
||||
stat.size = 크기
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = 적 AI 무한자원
|
||||
rules.blockhealthmultiplier = 블록 체력 배수
|
||||
rules.blockdamagemultiplier = 블록 피해량 배수
|
||||
rules.unitfactoryactivation = 유닛 공장 활성화 지연
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = 유닛 생산속도 배수
|
||||
rules.unitcostmultiplier = 유닛 비용 배수
|
||||
rules.unithealthmultiplier = 유닛 체력 배수
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = 적 지역 침공
|
||||
rules.legacylaunchpads = 구 발사 패드 메커니즘
|
||||
rules.legacylaunchpads.info = 7.0에서와 같이 착륙 패드 없이 발사 패드를 사용할 수 있습니다.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 비활성화 됨[lightgray] (구 발사 패드 메커니즘 활성화 상태)
|
||||
rules.showspawns = 적 스폰 표시
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = 무작위 단계 AI
|
||||
rules.pauseDisabled = 일시 중지 비활성화
|
||||
rules.fire = 방화 허용
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = 유닛 혹은 건물의 속성을 설정합니다.
|
||||
lst.effect = 파티클 효과를 만듭니다.
|
||||
lst.sync = 네트워크 전체에서 변수를 동기화합니다.\n1초에 최대 10번만 호출됩니다.
|
||||
lst.playsound = 소리를 재생합니다.\n볼륨과 팬은 전역 값이 될 수도 있고, 위치를 기준으로 계산될 수도 있습니다.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = 월드에 새로운 논리 마커를 만듭니다.\n 이 마커를 식별할 ID를 제공해야 합니다.\n 현재 마커는 월드당 20,000개로 제한되어 있습니다.
|
||||
lst.setmarker = 마커의 속성을 설정합니다.\n사용된 ID는 마커 만들기 지침에서와 동일해야 합니다.
|
||||
lst.localeprint = 텍스트 버퍼에 맵 로케일 번들 속성 값을 추가합니다.\n맵 편집기에서 맵 로케일 번들을 설정하려면 [accent]맵 정보 > 로케일 번들[]을 선택합니다.\n클라이언트가 모바일 기기인 경우 먼저 ".mobile"로 끝나는 속성을 print하려고 시도합니다.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Nepavyko atidaryti nuorodos!\nURL nukopijuotas į jūsų iškarpinę.
|
||||
screenshot = Ekrano kopija išsaugota į {0}
|
||||
screenshot.invalid = Žemėlapis yra per didelis, potencialiai nepakanka vietos išsaugoti ekrano kopiją.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Žaidimas Baigtas
|
||||
gameover.disconnect = Atsijungti
|
||||
gameover.pvp = [accent] {0}[] komanda laimėjo!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Leidimų puslapis
|
||||
mods.browser.sortdate = Rūšioti pagal naujausius
|
||||
mods.browser.sortstars = Rūšiuoti pagal žvaigždes
|
||||
|
||||
export.file = Eksportuoti failą
|
||||
import.file = Importuoti failą
|
||||
copy.clipboard = Kopijuoti į iškarpinę
|
||||
import.clipboard = Importuoti iš iškarpinės
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Dalintis Dirbtuvėje
|
||||
|
||||
schematic = Schema
|
||||
schematic.add = Išsaugoti schemą...
|
||||
schematics = Schemos
|
||||
@@ -64,12 +72,6 @@ schematic.search = Ieškoti schemas...
|
||||
schematic.replace = Schema šiuo pavadinimu jau egzistuoja. Pakeisti?
|
||||
schematic.exists = Schema šiuo pavadinimu jau egzistuoja.
|
||||
schematic.import = Importuoti schemą...
|
||||
schematic.exportfile = Eksportuoti failą
|
||||
schematic.importfile = Importuoti failą
|
||||
schematic.browseworkshop = Naršyti Dirbtuvę
|
||||
schematic.copy = Kopijuoti į iškarpinę
|
||||
schematic.copy.import = Importuoti iš iškarpinės
|
||||
schematic.shareworkshop = Dalintis Dirbtuvėje
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Apversti schemą
|
||||
schematic.saved = Schema išsaugota.
|
||||
schematic.delete.confirm = Ši schema bus negrįžtamai pašalinta.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Šios modifikacijos negalima užkrauti dėl
|
||||
mod.requiresversion = Reikia žaidimo versijos: [red]{0}
|
||||
|
||||
mod.errors = Įvyko klaida kraunant turinį.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Turite modifikacijas su klaidomis.[] Išjunkite modifikacijas su klaidomis arba patasykite jas prieš žaidžiant.
|
||||
mod.enable = Įjungti
|
||||
mod.requiresrestart = Žaidimas dabar išsijungs modifikacijų perkrovimui.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Negalima prisijungti prie žaidimo ([accent]{0}[]).
|
||||
connecting = [accent]Prisijungiama...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Kraunama pasaulio informacija...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Prievadas:
|
||||
server.invalidport = Negaliams prievado numeris!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Eksportuoti Išsaugojimą
|
||||
save.import.invalid = [accent]Šis išsaugojimas yra kalidingas!
|
||||
save.import.fail = [crimson]Nepavyko importuoti išsaugojimo: [accent]{0}
|
||||
save.export.fail = [crimson]Nepavyko exportuoti išsaugojimo: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importuoti išsaugojimą
|
||||
save.newslot = Išsaugojimo pavadinimas:
|
||||
save.rename = Pervadinti
|
||||
@@ -479,14 +491,6 @@ editor.rules = Taisyklės:
|
||||
editor.generation = Generacija:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Dirbtuvė
|
||||
waves.title = Bangos
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Apžiūra
|
||||
waves.edit = Redaguoti...
|
||||
waves.random = Random
|
||||
waves.copy = Kopijuoti į iškarpinę
|
||||
waves.load = Užkrauti iš iškarpinės
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Numatytasis>
|
||||
details = Detaliau...
|
||||
edit = Redaguoti...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Šaudo į žemės taikinius
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Judėjimo Greitis
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Laikas Tarp Paleidimų
|
||||
stat.shootrange = Atstumas
|
||||
stat.size = Dydis
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Neriboti Kompiuterio (Raudonosios Komandos) Resursai
|
||||
rules.blockhealthmultiplier = Blokų Gyvybių Daugiklis
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Vienetų Gamybos Greičio Daugiklis
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Vienetų Gyvybių Daugiklis
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Kon link niet openen!\nDe URL is gekopieerd naar je klembord
|
||||
screenshot = Schermafbeeling opgeslagen in {0}
|
||||
screenshot.invalid = Map is te groot, er is mogelijk niet genoeg geheugen beschikbaar voor een schermafbeelding.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Spel afgelopen
|
||||
gameover.disconnect = Disconnect
|
||||
gameover.pvp = Het[accent] {0}[] team heeft gewonnen!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Pagina
|
||||
mods.browser.sortdate = Sorteer op recentst
|
||||
mods.browser.sortstars = Sorteer op sterren
|
||||
|
||||
export.file = Exporteer bestand
|
||||
import.file = Importeer bestand
|
||||
copy.clipboard = Kopi�ren naar Klembord
|
||||
import.clipboard = Importeren van Klembord
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Delen op de Werkplaats
|
||||
|
||||
schematic = Ontwerp
|
||||
schematic.add = Bewaar ontwerp...
|
||||
schematics = Ontwerpen
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Er bestaat al een ontwerp met die naam. Overschrijven?
|
||||
schematic.exists = Een ontwerp met die naam bestaat al.
|
||||
schematic.import = Importeer ontwerp...
|
||||
schematic.exportfile = Exporteer bestand
|
||||
schematic.importfile = Importeer bestand
|
||||
schematic.browseworkshop = Blader werkplaats
|
||||
schematic.copy = Kopi�ren naar Klembord
|
||||
schematic.copy.import = Importeren van Klembord
|
||||
schematic.shareworkshop = Delen op de Werkplaats
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Spiegel ontwerp
|
||||
schematic.saved = Ontwerp bewaard.
|
||||
schematic.delete.confirm = Dit ontwerp zal in een zwart gat verdwijnen.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Vereist spelversie: [red]{0}
|
||||
|
||||
mod.errors = Er hebben zich fouten voordaan tijdens het laden van de inhoud.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]Je mods bevatten fouten.[] Zet de mods uit of los de problemen op voordat je verder gaat met spelen.
|
||||
mod.enable = Activeer
|
||||
mod.requiresrestart = Het spel zal nu afsluiten om de veranderingen aan de mods door te voeren.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Geen verbinding mogelijk ([accent]{0}[]).
|
||||
connecting = [accent]Aan het verbinden...
|
||||
reconnecting = [accent]Aan het herverbinden...
|
||||
connecting.data = [accent]Wereld aan het laden...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Poort:
|
||||
server.invalidport = Poort is geen geldig getal!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Exporteer Save
|
||||
save.import.invalid = [accent]Deze save is ongeldig!
|
||||
save.import.fail = [crimson]Importeren van save mislukt: [accent]{0}
|
||||
save.export.fail = [crimson]Exporteren van save mislukt: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importeer Save
|
||||
save.newslot = Save naam:
|
||||
save.rename = Hernoem
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regels:
|
||||
editor.generation = Generatie:
|
||||
editor.objectives = Doelen
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Werkplaats
|
||||
waves.title = Rondes
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = maximale eenheden
|
||||
waves.guardian = Bewaker
|
||||
waves.preview = Voorvertoning
|
||||
waves.edit = Bewerk...
|
||||
waves.random = Random
|
||||
waves.copy = Kopieer naar klembord
|
||||
waves.load = Laad van klembord
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Standaard>
|
||||
details = Details...
|
||||
edit = Bewerk...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Gronddoelwitten
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Beweegingssnelheid
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tijd tussen lanceringen
|
||||
stat.shootrange = Bereik
|
||||
stat.size = Formaat
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Oneindige AI Materialen
|
||||
rules.blockhealthmultiplier = Blok Levenspunten Vermenigvuldiger
|
||||
rules.blockdamagemultiplier = Blokschade Vermenigvuldiger
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Eenheid Spawnsnelheid Vermenigvuldiger
|
||||
rules.unitcostmultiplier = Eenheidskosten Vermenigvuldiger
|
||||
rules.unithealthmultiplier = Eenheid Levenspunten Vermenigvuldiger
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Vuur
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Openen van link mislukt!\nDe link is gekopiëerd naar je klembord.
|
||||
screenshot = Locatie screenshot: {0}
|
||||
screenshot.invalid = Kaart te groot, mogelijks te weinig geheugen voor een screenshot te kunnen maken.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Game Over
|
||||
gameover.disconnect = Disconnect
|
||||
gameover.pvp = Het[accent] {0}[] team heeft gewonnen!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Sort by recent
|
||||
mods.browser.sortstars = Sort by stars
|
||||
|
||||
export.file = Exporteer Bestand
|
||||
import.file = Exporteer Bestand
|
||||
copy.clipboard = Kopieer naar Klembord
|
||||
import.clipboard = Importeer vanaf Klembord
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Deel op Workshop
|
||||
|
||||
schematic = Blauwdruk
|
||||
schematic.add = Blauwdruk Opslaan...
|
||||
schematics = Blauwdrukken
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Er bestaat al een blaudruk met deze naam. Vervangen?
|
||||
schematic.exists = A schematic by that name already exists.
|
||||
schematic.import = Importeer Blauwdruk...
|
||||
schematic.exportfile = Exporteer Bestand
|
||||
schematic.importfile = Exporteer Bestand
|
||||
schematic.browseworkshop = Browse Workshop
|
||||
schematic.copy = Kopieer naar Klembord
|
||||
schematic.copy.import = Importeer vanaf Klembord
|
||||
schematic.shareworkshop = Deel op Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||
schematic.saved = Blauwdruk opgeslagen.
|
||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
mod.enable = Schakel in
|
||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Kon niet tot het spel toetreden. ([accent]{0}[]).
|
||||
connecting = [accent]Verbinden...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Laden map data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Poort:
|
||||
server.invalidport = Ongeldige poort!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Exporteer Save
|
||||
save.import.invalid = [accent]Deze save is ongeldig!
|
||||
save.import.fail = [crimson]Save importeren mislukt: [accent]{0}
|
||||
save.export.fail = [crimson]Save exporteren mislukt: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importeer Save
|
||||
save.newslot = Naam van de save:
|
||||
save.rename = Naam wijzigen
|
||||
@@ -479,14 +491,6 @@ editor.rules = Rules:
|
||||
editor.generation = Generation:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Waves
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Preview
|
||||
waves.edit = Edit...
|
||||
waves.random = Random
|
||||
waves.copy = Copy to Clipboard
|
||||
waves.load = Load from Clipboard
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Details...
|
||||
edit = Edit...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Targets Ground
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Move Speed
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Time Between Launches
|
||||
stat.shootrange = Range
|
||||
stat.size = Size
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Ten serwer chce skopiować tekst do schowka. Czy na pewno chcesz
|
||||
linkfail = Nie udało się otworzyć linku!\nURL został skopiowany.
|
||||
screenshot = Zapisano zrzut ekranu w {0}
|
||||
screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Koniec Gry
|
||||
gameover.disconnect = Rozłącz
|
||||
gameover.pvp = Zwyciężyła drużyna [accent]{0}[]!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Strona z wydaniem
|
||||
mods.browser.sortdate = Sortuj wg ostatnich
|
||||
mods.browser.sortstars = Sortuj wg gwiazdek
|
||||
|
||||
export.file = Eksportuj plik
|
||||
import.file = Importuj plik
|
||||
copy.clipboard = Kopiuj do schowka
|
||||
import.clipboard = Importuj ze schowka
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Podziel się na Warsztacie
|
||||
|
||||
schematic = Schemat
|
||||
schematic.add = Zapisz schemat...
|
||||
schematics = Schematy
|
||||
@@ -64,12 +72,6 @@ schematic.search = Wyszukaj schematy...
|
||||
schematic.replace = Schemat o tej nazwie już istnieje. Czy chcesz go zastąpić?
|
||||
schematic.exists = Schemat o tej nazwie już istnieje.
|
||||
schematic.import = Importuj Schemat...
|
||||
schematic.exportfile = Eksportuj plik
|
||||
schematic.importfile = Importuj plik
|
||||
schematic.browseworkshop = Przeglądaj Warsztat
|
||||
schematic.copy = Kopiuj do schowka
|
||||
schematic.copy.import = Importuj ze schowka
|
||||
schematic.shareworkshop = Podziel się na Warsztacie
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Odwróć schemat
|
||||
schematic.saved = Schemat zapisany.
|
||||
schematic.delete.confirm = Ten schemat zostanie usunięty.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Nie można załadować modyfikacji z powodu
|
||||
mod.requiresversion = Wymagana wersja gry: [red]{0}
|
||||
|
||||
mod.errors = Wystąpił błąd podczas ładowania treści.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Twoje modyfikacje zawierają błędy.[] Wyłącz je lub napraw błędy przed rozpoczęciem gry.
|
||||
mod.enable = Włącz
|
||||
mod.requiresrestart = Gra zostanie wyłączona aby wprowadzić zmiany w modyfikacji.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Przekroczono czas oczekiwania na pakiety UDP.\nMoż
|
||||
cantconnect = Nie można dołączyć do gry ([accent]{0}[]).
|
||||
connecting = [accent]Łączenie...
|
||||
reconnecting = [accent]Ponowne łączenie...
|
||||
connecting.data = [accent]Ładowanie danych świata...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Nieprawidłowy numer portu.
|
||||
server.error.addressinuse = [scarlet]Nie udało się uruchomić serwera na porcie 6567.[]\n\nUpewnij się, że żaden inny serwer Mindustry nie działa na twoim urządzeniu ani w sieci!
|
||||
@@ -344,6 +352,10 @@ save.export = Eksportuj
|
||||
save.import.invalid = [accent]Zapis gry jest niepoprawny!
|
||||
save.import.fail = [crimson]Nie udało się zaimportować zapisu: [accent]{0}
|
||||
save.export.fail = [crimson]Nie udało się wyeksportować zapisu: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importuj zapis
|
||||
save.newslot = Zapisz nazwę:
|
||||
save.rename = Zmień nazwę
|
||||
@@ -479,14 +491,6 @@ editor.rules = Zasady:
|
||||
editor.generation = Generacja:
|
||||
editor.objectives = Cele
|
||||
editor.locales = Pakiety regionalne
|
||||
editor.patches.guide = Przewodnik po łatkach
|
||||
editor.patches = Łatki danych
|
||||
editor.patch = Zestaw łatek: {0}
|
||||
editor.patches.none = [lightgray]Brak załadowanych zestawów łatek.
|
||||
editor.patches.errors = Błędy zestawu łatek
|
||||
editor.patches.importerror = Nie udało się zaimportować zestawu łatek
|
||||
editor.patches.delete.confirm = Czy na pewno chcesz usunąć ten zestaw łatek?
|
||||
editor.patch.fields = {0} pola
|
||||
editor.worldprocessors = Procesory Świata
|
||||
editor.worldprocessors.editname = Edytuj nazwę
|
||||
editor.worldprocessors.none = [lightgray]Nie znaleziono bloków procesorów świata!\nDodaj jeden w edytorze map lub użyj przycisku \ue813 Dodaj poniżej.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Własny Priorytet
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Przesunięcie X
|
||||
editor.shifty = Przesunięcie Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Łatki danych
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Brak załadowanych zestawów łatek.
|
||||
patch.errors = Błędy zestawu łatek
|
||||
patch.importerror = Nie udało się zaimportować zestawu łatek
|
||||
patch.delete.confirm = Czy na pewno chcesz usunąć ten zestaw łatek?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} pola
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Warsztat
|
||||
waves.title = Fale
|
||||
waves.team = Drużyna
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = maks. jednostek
|
||||
waves.guardian = Strażnik
|
||||
waves.preview = Podgląd
|
||||
waves.edit = Edytuj...
|
||||
waves.random = Losowe
|
||||
waves.copy = Kopiuj Do Schowka
|
||||
waves.load = Załaduj Ze Schowka
|
||||
@@ -556,6 +628,7 @@ all = Wszystko
|
||||
editor.default = [lightgray]<Domyślne>
|
||||
details = Detale...
|
||||
edit = Edytuj...
|
||||
edit.menu = Edit...
|
||||
variables = Zmienne
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Czy na pewno chcesz wyczyścić cały kod z tego procesora??
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Namierza wrogów lądowych
|
||||
stat.crushdamage = Obrażenia od zmiażdżenia
|
||||
stat.legsplashdamage = Obrażenia od uderzenia nóg
|
||||
stat.itemsmoved = Prędkość poruszania się
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Czas pomiędzy wystrzeleniami
|
||||
stat.shootrange = Zasięg
|
||||
stat.size = Rozmiar
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Nieskończone Zasoby SI (wroga)
|
||||
rules.blockhealthmultiplier = Mnożnik Życia Bloków
|
||||
rules.blockdamagemultiplier = Mnożnik Uszkodzeń Bloków
|
||||
rules.unitfactoryactivation = Opóźnienie aktywacji fabryki jednostek
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Mnożnik Prędkości Tworzenia Jednostek
|
||||
rules.unitcostmultiplier = Mnożnik Kosztu Jednostek
|
||||
rules.unithealthmultiplier = Mnożnik Życia Jednostek
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Inwazje wrogich sektorów
|
||||
rules.legacylaunchpads = Mechanika starszych platform startowych
|
||||
rules.legacylaunchpads.info = Umożliwia korzystanie z platform startowych bez lądowisk, jak w wersji 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Wyłączone[lightgray] (Starsze platformy startowe włączone)
|
||||
rules.showspawns = Pokaż miejsca odrodzenia się wroga
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Nieprzewidywalne AI fal
|
||||
rules.pauseDisabled = Wyłącz pauzę
|
||||
rules.fire = Ogień
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Ustaw właściwość jednostki lub budynku.
|
||||
lst.effect = Stwórz efekt cząsteczki.
|
||||
lst.sync = Synchronizuje zmienną poprzez sieć.\nWywoływane maksymalnie 10 razy na sekundę.
|
||||
lst.playsound = Odtwarza dźwięk.\nGłośność i panorama mogą być wartością globalną lub obliczoną na podstawie pozycji.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Stwórz nowy marker logiki.\nMusisz podać ID, aby móc go później zidentyfikować.\nLimit markerów to 20,000.
|
||||
lst.setmarker = Ustaw właściwości markera.\nID markera musi być takie samo jak podczas jego tworzenia.
|
||||
lst.localeprint = Dodaje wartość właściwości locale mapy do bufora tekstu.\nAby ustawić pakiety locale mapy w edytorze map, sprawdź [accent]Informacje o mapie > Pakiety locale[].\nJeśli klient jest urządzeniem mobilnym, próbuje wydrukować właściwość kończącą się na ".mobile".
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Falha ao abrir o link\nO Url foi copiado para a área de transferência.
|
||||
screenshot = Screenshot salva para {0}
|
||||
screenshot.invalid = Este mapa é grande demais, você pode estar potencialmente sem memória suficiente para captura de tela.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Fim de jogo.
|
||||
gameover.disconnect = Desconectado
|
||||
gameover.pvp = O time[accent] {0}[] ganhou!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Página da versão
|
||||
mods.browser.sortdate = Ordenar por mais recente
|
||||
mods.browser.sortstars = Ordenar por estrelas
|
||||
|
||||
export.file = Exportar Arquivo
|
||||
import.file = Importar Arquivo
|
||||
copy.clipboard = Copiar para a área de transferência
|
||||
import.clipboard = Importar da área de transferência
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Compartilhar na Oficina
|
||||
|
||||
schematic = Esquema
|
||||
schematic.add = Salvar esquema...
|
||||
schematics = Esquemas
|
||||
@@ -64,12 +72,6 @@ schematic.search = Procurar esquemas...
|
||||
schematic.replace = Um esquema com esse nome já existe. Substituí-lo?
|
||||
schematic.exists = Um esquema com esse nome já existe.
|
||||
schematic.import = Importar esquema...
|
||||
schematic.exportfile = Exportar Arquivo
|
||||
schematic.importfile = Importar Arquivo
|
||||
schematic.browseworkshop = Navegar pela Oficina
|
||||
schematic.copy = Copiar para a área de transferência
|
||||
schematic.copy.import = Importar da área de transferência
|
||||
schematic.shareworkshop = Compartilhar na Oficina
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Espelhar Esquema
|
||||
schematic.saved = Esquema salvo.
|
||||
schematic.delete.confirm = Esse esquema será apagado. Tem certeza?
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Este mod não pode ser carregado devido a d
|
||||
mod.requiresversion = Requer a versão do jogo: [red]{0}
|
||||
|
||||
mod.errors = Ocorreram erros ao carregar o conteúdo.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Você tem mods com erros.[] Desative os mods afetados ou conserte os erros antes de jogar.
|
||||
mod.enable = Ativar
|
||||
mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Tempo esgotado ao receber snapshots UDP.\nIsso pode
|
||||
cantconnect = Impossível conectar ([accent]{0}[]).
|
||||
connecting = [accent]Conectando...
|
||||
reconnecting = [accent]Reconectando...
|
||||
connecting.data = [accent]Carregando dados do mundo...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Porta:
|
||||
server.invalidport = Numero de porta inválido!
|
||||
server.error.addressinuse = [scarlet]Falha ao abrir o servidor na porta 6567.[]\n\nCertifique-se de que nenhum outro servidor de Mindustry esteja rodando!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportar Jogo Salvo
|
||||
save.import.invalid = [accent]Este jogo salvo é inválido!
|
||||
save.import.fail = [crimson]Falha ao importar jogo salvo: [accent]{0}
|
||||
save.export.fail = [crimson]Falha ao exportar jogo salvo: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importar jogo salvo
|
||||
save.newslot = Nome do jogo salvo:
|
||||
save.rename = Renomear
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regras:
|
||||
editor.generation = Geração:
|
||||
editor.objectives = Objetivos:
|
||||
editor.locales = Pacotes de Localidade
|
||||
editor.patches.guide = Guia de Patches
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Conjunto de Patches: {0}
|
||||
editor.patches.none = [lightgray]Nenhum conjunto de patches carregado.
|
||||
editor.patches.errors = Erros no Conjunto de Patches
|
||||
editor.patches.importerror = Falha ao importar o conjunto de patches
|
||||
editor.patches.delete.confirm = Tem certeza de que deseja excluir este conjunto de patches?
|
||||
editor.patch.fields = {0} campos
|
||||
editor.worldprocessors = Processadores de Mundo
|
||||
editor.worldprocessors.editname = Editar Nome
|
||||
editor.worldprocessors.none = [lightgray]Nenhum bloco de processador de mundo encontrado!\nAdicione um no editor de mapas ou use o botão \ue813 Adicionar abaixo.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Prioridade Personalizada
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Deslocar X
|
||||
editor.shifty = Deslocar Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Nenhum conjunto de patches carregado.
|
||||
patch.errors = Erros no Conjunto de Patches
|
||||
patch.importerror = Falha ao importar o conjunto de patches
|
||||
patch.delete.confirm = Tem certeza de que deseja excluir este conjunto de patches?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} campos
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Oficina
|
||||
waves.title = Hordas
|
||||
waves.team = Equipe
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = quantidade máxima
|
||||
waves.guardian = Guardião
|
||||
waves.preview = Pré-visualizar
|
||||
waves.edit = Editar...
|
||||
waves.random = Aleatório
|
||||
waves.copy = Copiar para área de transferência
|
||||
waves.load = Carregar da área de transferência
|
||||
@@ -556,6 +628,7 @@ all = Tudo
|
||||
editor.default = [lightgray]<padrão>
|
||||
details = Detalhes...
|
||||
edit = Editar...
|
||||
edit.menu = Edit...
|
||||
variables = Variáveis
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Tem certeza de que deseja limpar todo o código deste processador?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Mira no chão
|
||||
stat.crushdamage = Dano de Esmagamento
|
||||
stat.legsplashdamage = Dano de Área das Pernas
|
||||
stat.itemsmoved = Velocidade de movimento
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tempo entre Disparos
|
||||
stat.shootrange = Alcance
|
||||
stat.size = Tamanho
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Recursos de IA Infinitos
|
||||
rules.blockhealthmultiplier = Multiplicador de vida do bloco
|
||||
rules.blockdamagemultiplier = Multiplicador de dano do bloco
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicador de velocidade de criação de unidade
|
||||
rules.unitcostmultiplier = Multiplicador de Custo de Unidade
|
||||
rules.unithealthmultiplier = Multiplicador de vida de unidade
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invasões de Setores Inimigos
|
||||
rules.legacylaunchpads = Mecânicas Legadas de Plataforma de Lançamento
|
||||
rules.legacylaunchpads.info = Permite usar plataformas de lançamento sem plataformas de pouso, como na v7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Desativado[lightgray] (Plataformas de Lançamento Legadas ativadas)
|
||||
rules.showspawns = Mostrar Spawns Inimigos
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = IA de Horda Imprevisível
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fogo
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Dispara uma barragem de mísseis e projéteis em todos
|
||||
unit.minke.description = Dispara granadas e projéteis padrões em alvos terrestres.
|
||||
unit.bryde.description = Dispara granadas de artilharia de longo alcance e mísseis em todos os inimigos em volta.
|
||||
unit.sei.description = Dispara uma barragem de mísseis e projéteis penetradoras de armadura em inimigos.
|
||||
unit.omura.description = Dispara um raio de longo alcance atravessador em inimigos. Constrói unidades flare.
|
||||
unit.omura.description = Dispara um raio de longo alcance atravessador em inimigos.
|
||||
unit.alpha.description = Defende o Fragmento do Núcleo de inimigos. Constrói estruturas.
|
||||
unit.beta.description = Defende a Fundação do Núcleo de inimigos. Constrói estruturas.
|
||||
unit.gamma.description = Defende o Centro do Núcleo de inimigos. Constrói estruturas.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Define uma propriedade de uma unidade ou edifício.
|
||||
lst.effect = Criar um efeito de partícula.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Toca um som.\nVolume e direção podem ser globais ou calculados por posição.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Cria um novo marcador lógico no mundo.\nLimite de 20.000 por mundo.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Adiciona o valor de uma propriedade de localidade do mapa ao buffer de texto.\nVeja em [accent]Info do Mapa > Pacotes de Localidade[].
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Falha ao abrir a ligação\nO Url foi copiado para a área de transferência
|
||||
screenshot = Captura de ecrã gravada em {0}
|
||||
screenshot.invalid = Mapa grande demais, potencialmente sem memória suficiente para captura.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = O núcleo foi destruído.
|
||||
gameover.disconnect = Desconectar
|
||||
gameover.pvp = A equipa [accent] {0}[] ganhou!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Página da versão
|
||||
mods.browser.sortdate = Ordenar por mais recente
|
||||
mods.browser.sortstars = Ordenar por estrelas
|
||||
|
||||
export.file = Exportar Ficheiro
|
||||
import.file = Importar Ficheiro
|
||||
copy.clipboard = Copiar para a área de transferência
|
||||
import.clipboard = Importar da área de transferência
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Partilhar na Workshop
|
||||
|
||||
schematic = Esquema
|
||||
schematic.add = Guardar Esquema...
|
||||
schematics = Esquemas
|
||||
@@ -64,12 +72,6 @@ schematic.search = Procurar esquemas...
|
||||
schematic.replace = Um esquema com esse nome já existe. Deseja substituí-lo?
|
||||
schematic.exists = Um esquema com esse nome já existe.
|
||||
schematic.import = Importar Esquema...
|
||||
schematic.exportfile = Exportar Ficheiro
|
||||
schematic.importfile = Importar Ficheiro
|
||||
schematic.browseworkshop = Pesquisar no Workshop
|
||||
schematic.copy = Copiar para a área de transferência
|
||||
schematic.copy.import = Importar da área de transferência
|
||||
schematic.shareworkshop = Partilhar na Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Rodar Esquema
|
||||
schematic.saved = Esquema gravado.
|
||||
schematic.delete.confirm = Este esquema irá ser completamente apagado.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Este mod não pôde ser carregado devido a
|
||||
mod.requiresversion = Requer a versão do jogo: [red]{0}
|
||||
|
||||
mod.errors = Ocorreram erros ao carregar o conteúdo.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Tens mods com erros.[] Desativa os mods afetados ou corrije os erros antes de jogar.
|
||||
mod.enable = Ativar
|
||||
mod.requiresrestart = O jogo irá fechar para aplicar as alterações do mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Impossível conectar ([accent]{0}[]).
|
||||
connecting = [accent]A conectar...
|
||||
reconnecting = [accent]A reconectar...
|
||||
connecting.data = [accent]A carregar o dados do mundo...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Porta:
|
||||
server.invalidport = Número de porta inválido!
|
||||
server.error.addressinuse = [scarlet]Falhou ao iniciar o servidor na porta 6567.[]\n\nCertifica-te que não existem outros servidores do Mindustry em funcionamento no teu dispositivo ou rede local!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportar save
|
||||
save.import.invalid = [accent]Este save é inválido!
|
||||
save.import.fail = [crimson]Falha ao importar o save: [accent]{0}
|
||||
save.export.fail = [crimson]Falha ao exportar o save: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importar save
|
||||
save.newslot = Nome do save:
|
||||
save.rename = Renomear
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regras:
|
||||
editor.generation = Geração:
|
||||
editor.objectives = Objectivos
|
||||
editor.locales = Pacotes Locais
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = Processadores Globais
|
||||
editor.worldprocessors.editname = Mudar Nome
|
||||
editor.worldprocessors.none = [lightgray]Nenhum bloco de processadr global encontrado!\nAdiciona um no Editor, ou usa o botão \ue813 Adicionar abaixo.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Mover no eixo X
|
||||
editor.shifty = Mover no eixo Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Hordas
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = quantidade máxima de unidades
|
||||
waves.guardian = Guardião
|
||||
waves.preview = Pré-visualizar
|
||||
waves.edit = Editar...
|
||||
waves.random = Aleatório
|
||||
waves.copy = Copiar para área de transferência
|
||||
waves.load = Carregar da área de transferência
|
||||
@@ -556,6 +628,7 @@ all = Tudo
|
||||
editor.default = [lightgray]<Padrão>
|
||||
details = Detalhes...
|
||||
edit = Editar...
|
||||
edit.menu = Edit...
|
||||
variables = Variáveis
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Tens a certeza que querea apagar todo o código deste procesador?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Mirar no Chão
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Velocidade de movimento
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Tempo entre Tiros
|
||||
stat.shootrange = Alcance de Tiro
|
||||
stat.size = Tamanho
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Recursos Infinitos para a Equipa Inimiga
|
||||
rules.blockhealthmultiplier = Multiplicador de Vida do Bloco
|
||||
rules.blockdamagemultiplier = Multiplicador de Dano do Bloco
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicador de Velocidade de Criação de Unidades
|
||||
rules.unitcostmultiplier = Multiplicador de Custo de Unidades
|
||||
rules.unithealthmultiplier = Multiplicador de Vida de Unidades
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Invasões de Setores Inimigos
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Mostrar Spawn de Inimigos
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = IA de hordas imprevisível
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fogo
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Dispara uma barragem de mísseis e projéteis em todos
|
||||
unit.minke.description = Dispara granadas e projéteis padrões em alvos terrestres.
|
||||
unit.bryde.description = Dispara granadas de artilharia de longo alcance e mísseis em todos os inimigos em volta.
|
||||
unit.sei.description = Dispara uma barragem de mísseis e projéteis penetradoras de armadura em inimigos.
|
||||
unit.omura.description = Dispara um raio de longo alcance atravessador em inimigos. Constrói unidades flare.
|
||||
unit.omura.description = Dispara um raio de longo alcance atravessador em inimigos.
|
||||
unit.alpha.description = Defende o Fragmento do Núcleo de inimigos. Constrói estruturas.
|
||||
unit.beta.description = Defende a Fundação do Núcleo de inimigos. Constrói estruturas.
|
||||
unit.gamma.description = Defende o Centro do Núcleo de inimigos. Constrói estruturas.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Define uma propriedade de uma unidade ou edifício.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Linkul nu a putut fi deschis!\nAdresa URL a fost copiată.
|
||||
screenshot = Captură de ecran salvată la {0}
|
||||
screenshot.invalid = Harta e prea mare. Se poate să nu existe suficientă memorie pentru captura de ecran
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Jocul s-a încheiat
|
||||
gameover.disconnect = Deconectare
|
||||
gameover.pvp = Echipa [accent] {0}[] este câștigătoare!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Cele mai recente
|
||||
mods.browser.sortstars = Cele mai multe stele
|
||||
|
||||
export.file = Exportă Fișier
|
||||
import.file = Importă Fișier
|
||||
copy.clipboard = Copiază în Clipboard
|
||||
import.clipboard = Importă din Clipboard
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Partajează pe Workshop
|
||||
|
||||
schematic = Schemă
|
||||
schematic.add = Salvează Schema...
|
||||
schematics = Scheme
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = O schemă cu acel nume există deja. O înlocuiți?
|
||||
schematic.exists = O schemă cu acel nume există deja.
|
||||
schematic.import = Importă Schema...
|
||||
schematic.exportfile = Exportă Fișier
|
||||
schematic.importfile = Importă Fișier
|
||||
schematic.browseworkshop = Intră pe Workshop
|
||||
schematic.copy = Copiază în Clipboard
|
||||
schematic.copy.import = Importă din Clipboard
|
||||
schematic.shareworkshop = Partajează pe Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Întoarce Schema
|
||||
schematic.saved = Schemă salvată.
|
||||
schematic.delete.confirm = Schema această va fi ștearsă permanent.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Au apărut erori la încărcarea conținutului.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Modurile tale au erori.[] Dezactivează modurile afectate sau repară erorile înainte să joci.
|
||||
mod.enable = Activează
|
||||
mod.requiresrestart = Jocul se va închide acum pt a aplica modificările modurilor.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Nu te-ai putut alătura jocului ([accent]{0}[]).
|
||||
connecting = [accent]Conectare...
|
||||
reconnecting = [accent]Reconectare...
|
||||
connecting.data = [accent]Se încarcă datele hărții...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Număr de port invalid!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportă Salvarea
|
||||
save.import.invalid = [accent]Salvarea aceasta e invalidă!
|
||||
save.import.fail = [scarlet]Importul salvării a eșuat: [accent]{0}
|
||||
save.export.fail = [scarlet]Exportul salvării a eșuat: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importă Salvarea
|
||||
save.newslot = Numele Salvării:
|
||||
save.rename = Redenumire
|
||||
@@ -479,14 +491,6 @@ editor.rules = Reguli:
|
||||
editor.generation = Generare:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Valuri
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = unități maxime
|
||||
waves.guardian = Gardian
|
||||
waves.preview = Previzualizare
|
||||
waves.edit = Editează...
|
||||
waves.random = Random
|
||||
waves.copy = Copiază în Clipboard
|
||||
waves.load = Încarcă din Clipboard
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Prestabilit>
|
||||
details = Detalii...
|
||||
edit = Editează...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Lovește Artilerie
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Viteză de Mișcare a Materialelor
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Timp între Lansări
|
||||
stat.shootrange = Rază
|
||||
stat.size = Mărime
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Resurse infinite pt AI (echipa roșie)
|
||||
rules.blockhealthmultiplier = Multiplicatorul Vieții Blocurilor
|
||||
rules.blockdamagemultiplier = Multiplicatorul Deteriorării Blocurilor
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Multiplicatorul Vitezei de Producere a Unităților
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Multiplicatorul Vieții Unităților
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Foc
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Trage un baraj de rachete și gloanțe către toți ina
|
||||
unit.minke.description = Trage cu capsule și gloanțe standard către artileria inamică din apropiere.
|
||||
unit.bryde.description = Trage cu capsule de artilerie și rachete către inamici pe distanțe lungi.
|
||||
unit.sei.description = Trage cu un baraj de rachete și gloanțe care penetrează scuturile inamicilor.
|
||||
unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scuturile inamice pe distanțe lungi. Construiește unități Flare.
|
||||
unit.omura.description = Trage cu un railgun cu gloanțe care penetrează scuturile inamice pe distanțe lungi.
|
||||
unit.alpha.description = Apără nucleul Shard de inamici. Construiește structuri.
|
||||
unit.beta.description = Apără nucleul Foundation de inamici. Construiește structuri.
|
||||
unit.gamma.description = Apără nucleul Core de inamici. Construiește structuri.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Этот сервер хочет скопировать текс
|
||||
linkfail = Не удалось открыть ссылку!\nURL-адрес был скопирован в буфер обмена.
|
||||
screenshot = Скриншот сохранён в {0}
|
||||
screenshot.invalid = Карта слишком большая, возможно, не хватает памяти для скриншота.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Игра окончена
|
||||
gameover.disconnect = Отключение
|
||||
gameover.pvp = Команда [accent]{0}[] победила!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Страница релиза
|
||||
mods.browser.sortdate = Сортировка по дате изменения
|
||||
mods.browser.sortstars = Сортировка по количеству звёзд
|
||||
|
||||
export.file = Экспортировать файл
|
||||
import.file = Импортировать файл
|
||||
copy.clipboard = Скопировать в буфер обмена
|
||||
import.clipboard = Вставить из буфера обмена
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Поделиться в Мастерской
|
||||
|
||||
schematic = Схема
|
||||
schematic.add = Сохранить схему...
|
||||
schematics = Схемы
|
||||
@@ -64,12 +72,6 @@ schematic.search = Поиск схем...
|
||||
schematic.replace = Схема с таким названием уже существует. Заменить её?
|
||||
schematic.exists = Схема с таким названием уже существует.
|
||||
schematic.import = Импортировать схему...
|
||||
schematic.exportfile = Экспортировать файл
|
||||
schematic.importfile = Импортировать файл
|
||||
schematic.browseworkshop = Просмотр Мастерской
|
||||
schematic.copy = Скопировать в буфер обмена
|
||||
schematic.copy.import = Вставить из буфера обмена
|
||||
schematic.shareworkshop = Поделиться в Мастерской
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Отразить схему
|
||||
schematic.saved = Схема сохранена.
|
||||
schematic.delete.confirm = Эта схема будет поджарена Испепелителем.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Этот мод не может быть з
|
||||
mod.requiresversion = Требуется версия игры: [red]{0}
|
||||
|
||||
mod.errors = Ошибки были вызваны загружаемым содержимым.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]У Вас есть модификации с ошибками.[] Выключите проблемные модификации или исправьте ошибки перед игрой.
|
||||
mod.enable = Вкл.
|
||||
mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Превышено время ожидания пр
|
||||
cantconnect = Не удаётся присоединиться к игре ([accent]{0}[]).
|
||||
connecting = [accent]Подключение...
|
||||
reconnecting = [accent]Переподключение...
|
||||
connecting.data = [accent]Загрузка данных мира...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Порт:
|
||||
server.invalidport = Неверный номер порта!
|
||||
server.error.addressinuse = [scarlet]Не удалось открыть сервер на порте 6567.[]\n\nУбедитесь, что у вас не запущены другие сервера Mindustry!
|
||||
@@ -344,6 +352,10 @@ save.export = Экспортировать сохранение
|
||||
save.import.invalid = [accent]Это сохранение недействительно!
|
||||
save.import.fail = [scarlet]Не удалось импортировать сохранение: [accent]{0}
|
||||
save.export.fail = [scarlet]Не удалось экспортировать сохранение: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Импортировать сохранение
|
||||
save.newslot = Имя сохранения:
|
||||
save.rename = Переименовать
|
||||
@@ -479,14 +491,6 @@ editor.rules = Правила:
|
||||
editor.generation = Генерация:
|
||||
editor.objectives = Цели
|
||||
editor.locales = Наборы локалей
|
||||
editor.patches.guide = Руководство по патчам
|
||||
editor.patches = Патчи контента
|
||||
editor.patch = Набор патчей: {0}
|
||||
editor.patches.none = [lightgray]Ни одного набора патчей не загружено.
|
||||
editor.patches.errors = Ошибки набора патчей
|
||||
editor.patches.importerror = Не удалось импортировать набор патчей
|
||||
editor.patches.delete.confirm = Вы уверены, что хотите удалить этот набор патчей?
|
||||
editor.patch.fields = Параметров: {0}
|
||||
editor.worldprocessors = Мировые процессоры
|
||||
editor.worldprocessors.editname = Изменить название
|
||||
editor.worldprocessors.none = [lightgray]Не найдено ни одного блока мирового процессора\nДобавьте его в редакторе карт или воспользуйтесь кнопкой "\ue813 Добавить" ниже.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Пользовательский приори
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Сдвиг по X
|
||||
editor.shifty = Сдвиг по Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Патчи контента
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Ни одного набора патчей не загружено.
|
||||
patch.errors = Ошибки набора патчей
|
||||
patch.importerror = Не удалось импортировать набор патчей
|
||||
patch.delete.confirm = Вы уверены, что хотите удалить этот набор патчей?
|
||||
patch.path = Path:
|
||||
patch.fields = Параметров: {0}
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Мастерская
|
||||
waves.title = Волны
|
||||
waves.team = Команда
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = максимум единиц
|
||||
waves.guardian = Страж
|
||||
waves.preview = Предварительный просмотр
|
||||
waves.edit = Редактировать...
|
||||
waves.random = Случайно
|
||||
waves.copy = Копировать в буфер обмена
|
||||
waves.load = Загрузить из буфера обмена
|
||||
@@ -556,6 +628,7 @@ all = всего
|
||||
editor.default = [lightgray]<По умолчанию>
|
||||
details = Подробности...
|
||||
edit = Редактировать...
|
||||
edit.menu = Edit...
|
||||
variables = Переменные
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Вы уверены, что хотите удалить весь код из этого процессора?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Наземные цели
|
||||
stat.crushdamage = Урон от падения
|
||||
stat.legsplashdamage = Урон по области от ног
|
||||
stat.itemsmoved = Скорость перемещения
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Интервал запусков
|
||||
stat.shootrange = Радиус действия
|
||||
stat.size = Размер
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Бесконечные ресурсы у ИИ
|
||||
rules.blockhealthmultiplier = Множитель прочности блоков
|
||||
rules.blockdamagemultiplier = Множитель урона блоков
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Множитель скорости производства боев. ед.
|
||||
rules.unitcostmultiplier = Множитель стоимости боев. ед.
|
||||
rules.unithealthmultiplier = Множитель прочности боев. ед.
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Вторжения врагов на сектора
|
||||
rules.legacylaunchpads = Старые пусковые площадки
|
||||
rules.legacylaunchpads.info = Позволяет использовать старые пусковые площадки из версии 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Выключено[lightgray] ("Старые пусковые площадки" включены)
|
||||
rules.showspawns = Показывать появление врагов
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Непредсказуемый ИИ волн
|
||||
rules.pauseDisabled = Отключить паузы
|
||||
rules.fire = Огонь
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Стреляет залпами ракет и пуль
|
||||
unit.minke.description = Стреляет артиллерийскими снарядами и стандартными пулями по наземным целям.
|
||||
unit.bryde.description = Стреляет дальнобойными артиллерийскими снарядами и ракетами по врагам.
|
||||
unit.sei.description = Стреляет залпами ракет и бронебойных пуль по врагам.
|
||||
unit.omura.description = Стреляет дальнобойным пробивающим снарядом из рельсотрона по врагам. Производит единицы «Вспышка».
|
||||
unit.omura.description = Стреляет дальнобойным пробивающим снарядом из рельсотрона по врагам.
|
||||
unit.alpha.description = Защищает ядро «Осколок» от врагов. Основная строительная единица.
|
||||
unit.beta.description = Защищает ядро «Штаб» от врагов. Основная строительная единица.
|
||||
unit.gamma.description = Защищает ядро «Атом» от врагов. Основная строительная единица.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Устанавливает свойство единицы или
|
||||
lst.effect = Создаёт эффект частицы.
|
||||
lst.sync = Синхронизировать переменную в сети.\nМаксимум 10 синхронизаций в секунду.
|
||||
lst.playsound = Проигрывает звук.\nГромкость может быть глобальной, или зависеть от расстояния.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Создать новый логический маркер.\nНужно указать ID маркера.\nМаксимум 20000 маркеров.
|
||||
lst.setmarker = Установить значение маркера.\nID маркера должен соответствовать указанному в строке создания маркера.
|
||||
lst.localeprint = Добавляет данные локалей в текстовый буфер.\nЧтобы добавить локали, зайдите в [accent]Информация о карте > Наборы локалей[].\nЕсли клиент на мобильном устройсте, сначала попытается найти строку с окончанием ".mobile".
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Nemoguće otvoriti link!\nURL adresa je iskopirana
|
||||
screenshot = Snimanje ekrana izvršeno {0}
|
||||
screenshot.invalid = Mapa je prevelika, moguće je da nema dovoljno memorije za snimanje ekrana.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Igra gotova.
|
||||
gameover.disconnect = Prekini vezu
|
||||
gameover.pvp = [accent] {0}[] tim je pobedio!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Otvori Stranicu
|
||||
mods.browser.sortdate = Sortiraj od najnovijeg to najstarijeg
|
||||
mods.browser.sortstars = Sortiraj po broju "zvezdica"
|
||||
|
||||
export.file = Izvezi dokument
|
||||
import.file = Uvezi dokument
|
||||
copy.clipboard = Iskopiraj u privremenu memoriju
|
||||
import.clipboard = Uvezi is privremene memoriju
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Podeli na radionici
|
||||
|
||||
schematic = Šeme
|
||||
schematic.add = Snimi šemu
|
||||
schematics = Šeme
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = Već postoji šema pod ovim imenom. Zameniti?
|
||||
schematic.exists = Šema sa ovimn imenom već postoji.
|
||||
schematic.import = Uvezi šemu.
|
||||
schematic.exportfile = Izvezi dokument
|
||||
schematic.importfile = Uvezi dokument
|
||||
schematic.browseworkshop = Pretraži radionicu
|
||||
schematic.copy = Iskopiraj u privremenu memoriju
|
||||
schematic.copy.import = Uvezi is privremene memoriju
|
||||
schematic.shareworkshop = Podeli na radionici
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Prevrni šemu.
|
||||
schematic.saved = Šema snimljena.
|
||||
schematic.delete.confirm = Šema će biti potpuno uništena.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Greške su nastale tokom učitavanja sadržaja.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Imate modove sa greškama.[] Onemogućite te modove, ili ispravite greške.
|
||||
mod.enable = Omogući
|
||||
mod.requiresrestart = Igra će se zatvoriti da ažurira modove.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Ne može se pridružiti igri ([accent]{0}[]).
|
||||
connecting = [accent]Povezivanje...
|
||||
reconnecting = [accent]Ponovno povezivanje...
|
||||
connecting.data = [accent]Učitavanje podataka...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Invalid port number!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Izvezi Snimak
|
||||
save.import.invalid = [accent]This save is invalid!
|
||||
save.import.fail = [scarlet]Greška u uvozu snimka: [accent]{0}
|
||||
save.export.fail = [scarlet]Greška u izvozu snimka: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Uvezi Snimak
|
||||
save.newslot = Ime snimka:
|
||||
save.rename = Preimenuj
|
||||
@@ -479,14 +491,6 @@ editor.rules = Pravila:
|
||||
editor.generation = Generisanje:
|
||||
editor.objectives = Zadaci
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Pomeri X
|
||||
editor.shifty = Pomeri Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Radionica
|
||||
waves.title = Talasi
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = maksimalno jedinica
|
||||
waves.guardian = Čuvar
|
||||
waves.preview = Prikaz
|
||||
waves.edit = Izmeni...
|
||||
waves.random = Random
|
||||
waves.copy = Kopiraj u Privremenu Memoriju
|
||||
waves.load = Učitaj iz Privremene Memorije
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Detalji...
|
||||
edit = Izmeni...
|
||||
edit.menu = Edit...
|
||||
variables = Varijabla
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Nišani zemlju
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Brzina kretanja
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Vreme između lansiranja
|
||||
stat.shootrange = Domet
|
||||
stat.size = Veličina
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Beskonačnost Neprijateljskih Resursa
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Plamen
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Ispaljuje baraž raketa i metaka na sve obljižnje nepr
|
||||
unit.minke.description = ispaljuje granate i metke na obljižnje zemne mete.
|
||||
unit.bryde.description = Ispaljuje dugo-dometne artiljerijske granate i rakete na neprijatelje.
|
||||
unit.sei.description = Ispaljuje baraž raketa i oklopno-probojnih metaka na neprijatelje.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Gradi balkja jedinice.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Štiti Krhotina jezgro od neprijatelja. Gradi građevine.
|
||||
unit.beta.description = Štiti Fondacija jezgro od neprijatelja. Gradi građevine.
|
||||
unit.gamma.description = Štiti Nukleus jezgro od neprijatelja. Gradi građevine.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Kunde inte öppna länken!\nLänken har kopierats till ditt urklipp.
|
||||
screenshot = Skärmdump har sparats till {0}
|
||||
screenshot.invalid = Karta för stor, potentiellt inte tillräckligt minne för skärmdump.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Spel Slut
|
||||
gameover.disconnect = Frånkoppla
|
||||
gameover.pvp = Laget [accent] {0}[] vann!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Sortera efter senaste
|
||||
mods.browser.sortstars = Sortera efter stjärnor
|
||||
|
||||
export.file = Exportera Fil
|
||||
import.file = Importera Fil
|
||||
copy.clipboard = Kopiera till urklipp
|
||||
import.clipboard = Importera från urklipp
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Dela på Workshoppen
|
||||
|
||||
schematic = Schematic
|
||||
schematic.add = Spara Schematic...
|
||||
schematics = Schematics
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = En schematic med det namnet finns redan. Byt ut den?
|
||||
schematic.exists = En schematic med det namnet finns redan.
|
||||
schematic.import = Importera Schematic...
|
||||
schematic.exportfile = Exportera Fil
|
||||
schematic.importfile = Importera Fil
|
||||
schematic.browseworkshop = Öppna Workshoppen
|
||||
schematic.copy = Kopiera till urklipp
|
||||
schematic.copy.import = Importera från urklipp
|
||||
schematic.shareworkshop = Dela på Workshoppen
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Vänd Schematic
|
||||
schematic.saved = Schematic sparad.
|
||||
schematic.delete.confirm = Den här schematicen kommer bli ytterst borttagen.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Fel har inträffat under laddning av innehåll.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Du har moddar med fel.[] Stäng antingen av de drabbade moddarna eller fixa felen innan du spelar.
|
||||
mod.enable = Aktivera
|
||||
mod.requiresrestart = Spelet kommer nu att stängas av för att tillämpa mod ändringarna.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Unable to join game ([accent]{0}[]).
|
||||
connecting = [accent]Ansluter...
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Loading world data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Ogiltigt portnummer!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Exportera
|
||||
save.import.invalid = [accent]This save is invalid!
|
||||
save.import.fail = [crimson]Failed to import save: [accent]{0}
|
||||
save.export.fail = [crimson]Failed to export save: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Importera
|
||||
save.newslot = Namn:
|
||||
save.rename = Byt namn
|
||||
@@ -479,14 +491,6 @@ editor.rules = Regler:
|
||||
editor.generation = Generering:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Vågor
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Förhandsvisning
|
||||
waves.edit = Ändra...
|
||||
waves.random = Random
|
||||
waves.copy = Kopiera till Urklipp
|
||||
waves.load = Läs från Urklipp
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Details...
|
||||
edit = Redigera...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Targets Ground
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Move Speed
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Time Between Launches
|
||||
stat.shootrange = Range
|
||||
stat.size = Storlek
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = เซิร์ฟเวอร์นี้ต้องการ
|
||||
linkfail = ไม่สามารถเปิดลิ้งค์ได้\nได้ทำการคัดลอก URL ลงในคลิปบอร์ดแล้ว
|
||||
screenshot = ภาพหน้าจอได้ถูกบันทึกไปที่ {0}
|
||||
screenshot.invalid = แมพใหญ่เกินไป หน่วยความจำอาจจะไม่พอสำหรับภาพหน้าจอ
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = จบเกม
|
||||
gameover.disconnect = ออก
|
||||
gameover.pvp = ทีมที่ชนะคือทีม [accent]{0}[]!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = หน้าเวอร์ชั่น
|
||||
mods.browser.sortdate = เรียงตามล่าสุด
|
||||
mods.browser.sortstars = เรียงตามคะแนนดาว
|
||||
|
||||
export.file = ส่งออกไฟล์
|
||||
import.file = นำเข้าไฟล์
|
||||
copy.clipboard = คัดลอกไปที่คลิปบอร์ด
|
||||
import.clipboard = นำเข้าจากคลิปบอร์ด
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = แชร์บนเวิร์กช็อป
|
||||
|
||||
schematic = แผนผัง
|
||||
schematic.add = บันทึกแผนผัง...
|
||||
schematics = แผนผัง
|
||||
@@ -64,12 +72,6 @@ schematic.search = ค้นหาแผนผัง...
|
||||
schematic.replace = มีแผนผังที่ใช้ชื่อนี้แล้ว แทนที่เลยไหม?
|
||||
schematic.exists = มีแผนผังในชื่อนั้นอยู่แล้ว
|
||||
schematic.import = นำเข้าแผนผัง...
|
||||
schematic.exportfile = ส่งออกไฟล์
|
||||
schematic.importfile = นำเข้าไฟล์
|
||||
schematic.browseworkshop = ค้นหาในเวิร์กช็อป
|
||||
schematic.copy = คัดลอกไปที่คลิปบอร์ด
|
||||
schematic.copy.import = นำเข้าจากคลิปบอร์ด
|
||||
schematic.shareworkshop = แชร์บนเวิร์กช็อป
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: กลับแผนผัง
|
||||
schematic.saved = บันทึกแผนผังแล้ว
|
||||
schematic.delete.confirm = แผนผังนี้จะถูกกำจัดให้หมดสิ้นไม่เหลือซาก
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = ม็อดนี้ไม่สามา
|
||||
mod.requiresversion = ต้องการเวอร์ชั่นเกม: [red]{0}
|
||||
|
||||
mod.errors = มีข้อผิดพลาดเกิดขึ้นระหว่างโหลดเนื้อหา
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]คุณมีม็อดที่มีข้อผิดพลาด[] กรุณาปิดม็อดนั้นๆ หรือแก้ไขข้อผิดพลาดก่อนที่จะเล่น
|
||||
mod.enable = เปิดใช้งาน
|
||||
mod.requiresrestart = เกมจะปิดตัวลงเพื่อติดตั้งม็อด
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = หมดเวลาในระหว่างก
|
||||
cantconnect = ไม่สามารถเข้าร่วมเซิร์ฟเวอร์ ([accent]{0}[])
|
||||
connecting = [accent]กำลังเชื่อมต่อ...
|
||||
reconnecting = [accent]กำลังเชื่อมต่อใหม่...
|
||||
connecting.data = [accent]กำลังโหลดข้อมูลของโลก ...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = พอร์ต:
|
||||
server.invalidport = เลขพอร์ตไม่ถูกต้อง!
|
||||
server.error.addressinuse = [scarlet]เกิดข้อผิดพลาดในการเปิดเซิร์ฟเวอร์บนพอร์ต 6567[]\n\nโปรดตรวจสอบให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ Mindustry อื่นทำงานอยู่บนอุปกรณ์หรือเครือข่ายของคุณ!
|
||||
@@ -344,6 +352,10 @@ save.export = ส่งออกเซฟ
|
||||
save.import.invalid = [accent]เซฟนี้ไม่ถูกต้อง!
|
||||
save.import.fail = [crimson]ไม่สามารถนำเข้าเซฟ: [accent]{0}
|
||||
save.export.fail = [crimson]ไม่สามารถส่งออกเซฟ: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = นำเข้าเซฟ
|
||||
save.newslot = ชื่อเซฟ:
|
||||
save.rename = เปลี่ยนชื่อ
|
||||
@@ -479,14 +491,6 @@ editor.rules = กฎ
|
||||
editor.generation = เจนเนอเรชั่น
|
||||
editor.objectives = เป้าหมาย
|
||||
editor.locales = ชุดภาษาท้องถิ่น
|
||||
editor.patches.guide = คู่มือการใช้แพตช์
|
||||
editor.patches = แพตช์เนื้อหา
|
||||
editor.patch = ชุดแพตช์: {0}
|
||||
editor.patches.none = [lightgray]ไม่มีชุดแพตช์ที่โหลดมา
|
||||
editor.patches.errors = ข้อผิดพลาดชุดแพตช์
|
||||
editor.patches.importerror = เกิดข้อผิดพลาดในการนำเข้าชุดแพตช์
|
||||
editor.patches.delete.confirm = คุณแน่ใจหรือว่าจะลบชุดแพตช์นี้?
|
||||
editor.patch.fields = {0} ฟิลด์
|
||||
editor.worldprocessors = ตัวประมวลผลโลก
|
||||
editor.worldprocessors.editname = แก้ไขชื่อ
|
||||
editor.worldprocessors.none = [lightgray]ไม่พบตัวประมวลผลโลกในแมพ!\nสามารถไปเพิ่มในตัวแก้ไขแมพ หรือกดปุ่ม \ue813 เพิ่ม ด้านล่าง
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = กำหนดเองมาก่อน
|
||||
editor.filters.planetselect = เลือกดาวเคราะห์
|
||||
editor.shiftx = เลื่อน X
|
||||
editor.shifty = เลื่อน Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = แพตช์เนื้อหา
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]ไม่มีชุดแพตช์ที่โหลดมา
|
||||
patch.errors = ข้อผิดพลาดชุดแพตช์
|
||||
patch.importerror = เกิดข้อผิดพลาดในการนำเข้าชุดแพตช์
|
||||
patch.delete.confirm = คุณแน่ใจหรือว่าจะลบชุดแพตช์นี้?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} ฟิลด์
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = เวิร์กช็อป
|
||||
waves.title = คลื่น
|
||||
waves.team = ทีม
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray]({0} จุดแรก)
|
||||
waves.max = ยูนิตสูงสุด
|
||||
waves.guardian = ผู้พิทักษ์
|
||||
waves.preview = พรีวิว
|
||||
waves.edit = แก้ไข...
|
||||
waves.random = สุ่ม
|
||||
waves.copy = คัดลอกไปยังคลิปบอร์ด
|
||||
waves.load = โหลดจากคลิปบอร์ด
|
||||
@@ -556,6 +628,7 @@ all = ทั้งหมด
|
||||
editor.default = [lightgray]<ค่าเริ่มต้น>
|
||||
details = รายละเอียด...
|
||||
edit = แก้ไข...
|
||||
edit.menu = Edit...
|
||||
variables = ตัวแปร
|
||||
logic.error.toolong = โค้ดตัวประมวลผลยาวเกินไป (ความยาวจำกัด: {0} ไบต์บีบอัด ความยาวจริง: {1} ไบต์)
|
||||
logic.clear.confirm = คุณแน่ใจหรือว่าจะเคลียร์โค้ดทั้งหมดของตัวประมวลผลนี้?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = ยิงพื้นดิน
|
||||
stat.crushdamage = ดาเมจบดขยี้
|
||||
stat.legsplashdamage = ดาเมจกระจายจากขา
|
||||
stat.itemsmoved = ความเร็วการเคลื่อนย้าย
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = เวลาระหว่างการส่ง
|
||||
stat.shootrange = ระยะยิง
|
||||
stat.size = ขนาด
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = ทีมศัตรูมีทรัพยากรไม
|
||||
rules.blockhealthmultiplier = พหุคูณพลังชีวิตของบล็อก
|
||||
rules.blockdamagemultiplier = พหุคูณดาเมจของบล็อก
|
||||
rules.unitfactoryactivation = ดีเลย์การเปิดใช้งานโรงงานยูนิต
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = พหุคูณความเร็วในการสร้างยูนิต
|
||||
rules.unitcostmultiplier = พหุคูณราคาทรัพยากรของยูนิต
|
||||
rules.unithealthmultiplier = พหุคูณพลังชีวิตของยูนิต
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = การรุกรานของฐานทัพศั
|
||||
rules.legacylaunchpads = กลไกฐานส่งทรัพยากรแบบเก่า
|
||||
rules.legacylaunchpads.info = อนุญาตการใช้ฐานส่งทรัพยากรรุ่นเก่า (เวอร์ชั่น 7.0) โดยไม่ต้องใช้ฐานลงจอดทรัพยากร
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 ปิดใช้งาน[lightgray] (เปิดใช้งานกลไกฐานส่งทรัพยากรแบบเก่าอยู่)
|
||||
rules.showspawns = แสดงจุดเกิดศัตรู
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = AI คลื่นแบบคาดเดาไม่ได้
|
||||
rules.pauseDisabled = ปิดการหยุดชั่วคราว
|
||||
rules.fire = ไฟ
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = ตั้งค่าคุณสมบัติของยูน
|
||||
lst.effect = เสกเอฟเฟกต์อนุภาค
|
||||
lst.sync = ซิงค์หนึ่งตัวแปรทั่วทั้งเครือข่าย\nสามารถเรียกใช้คำสั่งได้แค่ 10 ครั้งต่อวินาทีอย่างมาก
|
||||
lst.playsound = เล่นเสียง\nระดับเสียงและการแพนสามารถใช้เป็นค่าสากลได้ หรือคำนวณเอาจากตำแหน่งก็ได้
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = สร้างเครื่องหมายลอจิกใหม่ขึ้นมาในแมพ\nจะต้องเพิ่ม ID เข้าไปเพื่อบ่งชี้เครื่องหมายนี้\nเครื่องหมายจำกัดได้แค่ 20,000 ต่อแมพในตอนนี้
|
||||
lst.setmarker = ตั้งค่าคุณสมบัติให้กับเครื่องหมาย\nID ของเครื่องหมายที่ใช้จะต้องเป็น ID เดียวกันกับในคำสั่ง Make Marker\nค่า[accent]ว่างเปล่า[]จะถูกข้าม
|
||||
lst.localeprint = เพิ่มค่าชุดภาษาท้องถิ่นของแมพลงไปยังคิวข้อความเพื่อตั้งค่าชุดภาษาของแมพในตัวแก้ไข ให้เปิด [accent]ข้อมูลแมพ > ชุดภาษาท้องถิ่น[].\nถ้าหากผู้เล่นอยู่ในมือถือ ให้ลองปริ้นค่าโดยลงท้ายด้วย ".mobile" ก่อน
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = Link Acilamadi!\nLink sizin icin kopyalandi.
|
||||
screenshot = Screenshot saved to {0}
|
||||
screenshot.invalid = Map too large, potentially not enough memory for screenshot.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Cekirdegin yok edildi.
|
||||
gameover.disconnect = Disconnect
|
||||
gameover.pvp = The[accent] {0}[] team is victorious!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Release Page
|
||||
mods.browser.sortdate = Sort by recent
|
||||
mods.browser.sortstars = Sort by stars
|
||||
|
||||
export.file = Export File
|
||||
import.file = Import File
|
||||
copy.clipboard = Copy to Clipboard
|
||||
import.clipboard = Import from Clipboard
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Share on Workshop
|
||||
|
||||
schematic = Schematic
|
||||
schematic.add = Save Schematic...
|
||||
schematics = Schematics
|
||||
@@ -64,12 +72,6 @@ schematic.search = Search schematics...
|
||||
schematic.replace = A schematic by that name already exists. Replace it?
|
||||
schematic.exists = A schematic by that name already exists.
|
||||
schematic.import = Import Schematic...
|
||||
schematic.exportfile = Export File
|
||||
schematic.importfile = Import File
|
||||
schematic.browseworkshop = Browse Workshop
|
||||
schematic.copy = Copy to Clipboard
|
||||
schematic.copy.import = Import from Clipboard
|
||||
schematic.shareworkshop = Share on Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
|
||||
schematic.saved = Schematic saved.
|
||||
schematic.delete.confirm = This schematic will be utterly eradicated.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = This mod is unable to be loaded due to inva
|
||||
mod.requiresversion = Requires game version: [red]{0}
|
||||
|
||||
mod.errors = Errors have occurred loading content.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
|
||||
mod.enable = Enable
|
||||
mod.requiresrestart = The game will now close to apply the mod changes.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = Unable to join game ([accent]{0}[]).
|
||||
connecting = [accent]Baglaniliyor
|
||||
reconnecting = [accent]Reconnecting...
|
||||
connecting.data = [accent]Loading world data...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Link:
|
||||
server.invalidport = Geçersiz Oyun numarasi!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = Kayiti tasi
|
||||
save.import.invalid = [accent]Kayit gecersiz!
|
||||
save.import.fail = [crimson]Failed to import save: [accent]{0}
|
||||
save.export.fail = [crimson]Failed to export save: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Kayit al
|
||||
save.newslot = Kayit ismi:
|
||||
save.rename = Yeniden adlandir
|
||||
@@ -479,14 +491,6 @@ editor.rules = Rules:
|
||||
editor.generation = Generation:
|
||||
editor.objectives = Objectives
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = Shift X
|
||||
editor.shifty = Shift Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Waves
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = max units
|
||||
waves.guardian = Guardian
|
||||
waves.preview = Preview
|
||||
waves.edit = Edit...
|
||||
waves.random = Random
|
||||
waves.copy = Copy to Clipboard
|
||||
waves.load = Load from Clipboard
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray]<Default>
|
||||
details = Details...
|
||||
edit = Edit...
|
||||
edit.menu = Edit...
|
||||
variables = Vars
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Targets Ground
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = Move Speed
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Time Between Launches
|
||||
stat.shootrange = Menzil
|
||||
stat.size = Buyukluk
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Infinite AI Resources
|
||||
rules.blockhealthmultiplier = Block Health Multiplier
|
||||
rules.blockdamagemultiplier = Block Damage Multiplier
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||
rules.unitcostmultiplier = Unit Cost Multiplier
|
||||
rules.unithealthmultiplier = Unit Health Multiplier
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = Fire
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Fires a barrage of missiles and bullets at all nearby e
|
||||
unit.minke.description = Fires shells and standard bullets at nearby ground targets.
|
||||
unit.bryde.description = Fires long-range artillery shells and missiles at enemies.
|
||||
unit.sei.description = Fires a barrage of missiles and armor-piercing bullets at enemies.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies. Constructs flare units.
|
||||
unit.omura.description = Fires a long-range piercing railgun bolt at enemies.
|
||||
unit.alpha.description = Defends the Shard core from enemies. Builds structures.
|
||||
unit.beta.description = Defends the Foundation core from enemies. Builds structures.
|
||||
unit.gamma.description = Defends the Nucleus core from enemies. Builds structures.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Sunucu Panona metin kopyalamak istiyor. Bunu yapmak istediğine
|
||||
linkfail = Link açılamadı!\nURL kopyalandı.
|
||||
screenshot = Ekran görüntüsü {0} konumuna kaydedildi
|
||||
screenshot.invalid = Harita çok büyük, muhtemelen ekran görüntüsü için yeterli bellek yok.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Oyun Bitti
|
||||
gameover.disconnect = Bağlantı Koptu!
|
||||
gameover.pvp = [accent] {0}[] Takımı kazandı!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Yayım Sayfası
|
||||
mods.browser.sortdate = En yeniye göre sırala
|
||||
mods.browser.sortstars = Yıldız sayısına göre sırala
|
||||
|
||||
export.file = Dışarı Aktar
|
||||
import.file = İçeri Aktar
|
||||
copy.clipboard = Panoya Kopyala
|
||||
import.clipboard = Panodan Yapıştır
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Atölyede paylaş
|
||||
|
||||
schematic = Şema
|
||||
schematic.add = Şemayı Kaydet...
|
||||
schematics = Şemalar
|
||||
@@ -64,12 +72,6 @@ schematic.search = Şema ara...
|
||||
schematic.replace = Aynı adda bir şema zaten var. Üzerine yazılsın mı?
|
||||
schematic.exists = Aynı adda bir şema zaten var.
|
||||
schematic.import = Şemayı İçeri Aktar...
|
||||
schematic.exportfile = Dışarı Aktar
|
||||
schematic.importfile = İçeri Aktar
|
||||
schematic.browseworkshop = Atölyeyi araştır
|
||||
schematic.copy = Panoya Kopyala
|
||||
schematic.copy.import = Panodan Yapıştır
|
||||
schematic.shareworkshop = Atölyede paylaş
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Şemayı döndür
|
||||
schematic.saved = Şema Kaydedildi.
|
||||
schematic.delete.confirm = Bu şema tamamen yok edilecek.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Eksik veya yanlış bağlılıklardan dolay
|
||||
mod.requiresversion = Şu oyun sürümü gerekiyor: [red]{0}
|
||||
|
||||
mod.errors = İçerik yüklenirken bir hata oluştu.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]Hatalı modlarınız var.[] Oynamadan önce bu modları devre dışı bırakın veya dosyadaki hataları düzeltin.
|
||||
mod.enable = Etkinleştir
|
||||
mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = UDP anlık görüntüleri alınırken zaman aşım
|
||||
cantconnect = Oyuna girilemiyor ([accent]{0}[]).
|
||||
connecting = [accent]Bağlanılıyor...
|
||||
reconnecting = [accent]Yeniden Bağlanılıyor...
|
||||
connecting.data = [accent]Dünya verisi yükleniyor...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Port:
|
||||
server.invalidport = Geçersiz port sayısı!
|
||||
server.error.addressinuse = [scarlet]Port 6567 açılamadı.[]\n\nCihaz ve internetinde başka bir Mindustry sunucusu açık olmadığından emin ol!
|
||||
@@ -344,6 +352,10 @@ save.export = Kaydı Dışa Aktar
|
||||
save.import.invalid = [accent]Bu kayıt geçersiz!
|
||||
save.import.fail = [crimson]Kayıt içe aktarılamadı: [accent]{0}
|
||||
save.export.fail = [crimson]Kayıt dışa aktarılamadı: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Kaydı İçe Aktar
|
||||
save.newslot = İsmi kaydet:
|
||||
save.rename = Yeniden isimlendir
|
||||
@@ -479,14 +491,6 @@ editor.rules = Kurallar:
|
||||
editor.generation = Oluşum:
|
||||
editor.objectives = Görevler:
|
||||
editor.locales = Dil Paketleri
|
||||
editor.patches.guide = Yama Haritası
|
||||
editor.patches = İçerik Yamaları
|
||||
editor.patch = Yamalar: {0}
|
||||
editor.patches.none = [lightgray]Yama bulunamadı.
|
||||
editor.patches.errors = Yama Hataları
|
||||
editor.patches.importerror = Yamalar yüklenirken hata oluştu
|
||||
editor.patches.delete.confirm = Bu yamaları silmek istediğine emin misin?
|
||||
editor.patch.fields = {0} alanlar
|
||||
editor.worldprocessors = Evrensel İşlemciler
|
||||
editor.worldprocessors.editname = Adı Düzenle
|
||||
editor.worldprocessors.none = [lightgray]Evrensel İşlemci bloğu bulunamadı!\nHarita düzenleyicisinden ekleyin veya aşağıdaki \ue813 Ekle butonunu kullanın.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Özel Öncelik
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = X Ekseninde Kaydır
|
||||
editor.shifty = Y Ekseninde Kaydır
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = İçerik Yamaları
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Yama bulunamadı.
|
||||
patch.errors = Yama Hataları
|
||||
patch.importerror = Yamalar yüklenirken hata oluştu
|
||||
patch.delete.confirm = Bu yamaları silmek istediğine emin misin?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} alanlar
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Atölye
|
||||
waves.title = Dalgalar
|
||||
waves.team = Takım
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](ilk {0})
|
||||
waves.max = maks birim
|
||||
waves.guardian = Gardiyan
|
||||
waves.preview = Önizleme
|
||||
waves.edit = Düzenle...
|
||||
waves.random = Rastgele
|
||||
waves.copy = Panodan kopyala
|
||||
waves.load = Panodan yükle
|
||||
@@ -556,6 +628,7 @@ all = Tüm
|
||||
editor.default = [lightgray]<Varsayılan>
|
||||
details = Detaylar...
|
||||
edit = Düzenle...
|
||||
edit.menu = Edit...
|
||||
variables = Değişkenler
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Bu işlemciden bütün kodları silmek istediğinize emin misiniz?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Yeri Hedefler Mi
|
||||
stat.crushdamage = Ezme Hasarı
|
||||
stat.legsplashdamage = Ayak Basım Hasarı
|
||||
stat.itemsmoved = Hareket Hızı
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Fırlatmalar Arasındaki Süre
|
||||
stat.shootrange = Menzil
|
||||
stat.size = Boyut
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Sınırsız YZ (Düşman Takım) Kaynakları
|
||||
rules.blockhealthmultiplier = Blok Can Çarpanı
|
||||
rules.blockdamagemultiplier = Blok Hasar Çarpanı
|
||||
rules.unitfactoryactivation = Birim Fabrika Aktifleşme Gecikmesi
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Birim Üretim Hız Çarpanı
|
||||
rules.unitcostmultiplier = Birim Fiyat Çarpanı
|
||||
rules.unithealthmultiplier = Birim Can Çarpanı
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Düşman Sektör Saldırıları
|
||||
rules.legacylaunchpads = Eski Fırlatış Rampası Mekanikleri
|
||||
rules.legacylaunchpads.info = v7den kalma Eski Fırlatış Rampası Mekaniklerini kullanmanı sağlar
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Devre Dışı[lightgray] (Eski Fırltış Rampaları Artık Kullanılamaz)
|
||||
rules.showspawns = Düşman Doğuş Noktalarını Göster
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Tahmin Edilemez Dalgalar
|
||||
rules.pauseDisabled = Duraklatmayı Devre Dışı Bırak (Erkek Adam Oyunu Durdurmaz)
|
||||
rules.fire = Ateş
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Yakındaki düşmanlara Füze atar.
|
||||
unit.minke.description = Yakındaki düşmanlara basit mermi ve toplarla saldırır.
|
||||
unit.bryde.description = Düşmanlara uzun menzil havanıyla saldırır.
|
||||
unit.sei.description = Düşmanlara füze atar ve devasa zırh delici mermilerle saldırır.
|
||||
unit.omura.description = Uzun menzil bir ışın atıcıya sahiptir. Mermisi nerdeyse her bolğu delebilir. Flare üretir.
|
||||
unit.omura.description = Uzun menzil bir ışın atıcıya sahiptir. Mermisi nerdeyse her bolğu delebilir.
|
||||
unit.alpha.description = Çekirdeği korur. Bina inşa eder.
|
||||
unit.beta.description = Çekirdeği korur. Bina inşa eder.
|
||||
unit.gamma.description = Çekirdeği korur. Bina inşa eder.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Bir bina veya birime nitelik atar.
|
||||
lst.effect = Parçacık efekti oluştur.
|
||||
lst.sync = Ağ boyunca bir değişkeni senkronize et.\nSaniyede en fazla 10 kere yapılabilir.
|
||||
lst.playsound = Bir ses çal.\nSes şiddeti bir küresel değer olabilir veya konuma göre belirlenebilir.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Dünyada yeni bir İşlemci İşareti koy.\nBu İşarete bir Kimlik adamalısın.\nDünya başına 20.000 limit bulunmakta.
|
||||
lst.setmarker = Bir İşlemci İşareti için bir arazi seç.\nKimlik, İşaret Koyucudaki ile aynı olmalı.
|
||||
lst.localeprint = Harita yerel paket özellik değerini metin arabelleğine ekleyin.\nHarita düzenleyicide harita yerel ayar paketlerini ayarlamak için şunu işaretleyin: [accent]Harita Bilgisi > Yerel Paketler[].\nİstemci bir mobil cihazsa, önce ".mobile" ile biten bir özelliği yazdırmaya çalışır.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Цей сервер хоче скопіювати текст д
|
||||
linkfail = Не вдалося перейти за посиланням!\nURL-адреса скопійована в буфер обміну.
|
||||
screenshot = Зняток мапи збережено до {0}
|
||||
screenshot.invalid = Мапа занадто велика, тому, мабуть, не вистачає пам’яті для знятку мапи.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Гра завершена
|
||||
gameover.disconnect = Від’єднатися
|
||||
gameover.pvp = [accent]{0}[] перемогли!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Посилання
|
||||
mods.browser.sortdate = Сортувати за давністю
|
||||
mods.browser.sortstars = Сортувати за популярністю
|
||||
|
||||
export.file = Експортувати файл
|
||||
import.file = Імпортувати файл
|
||||
copy.clipboard = Копіювати в буфер обміну
|
||||
import.clipboard = Імпортувати з клавіатури
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Поширити в Майстерню
|
||||
|
||||
schematic = Схема
|
||||
schematic.add = Зберегти схему…
|
||||
schematics = Схеми
|
||||
@@ -64,12 +72,6 @@ schematic.search = Шукати схеми...
|
||||
schematic.replace = Схема з такою назвою вже є. Замінити її?
|
||||
schematic.exists = Схема з такою назвою вже є.
|
||||
schematic.import = Імпортувати схему…
|
||||
schematic.exportfile = Експортувати файл
|
||||
schematic.importfile = Імпортувати файл
|
||||
schematic.browseworkshop = Переглянути в Майстерні
|
||||
schematic.copy = Копіювати в буфер обміну
|
||||
schematic.copy.import = Імпортувати з клавіатури
|
||||
schematic.shareworkshop = Поширити в Майстерню
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Обернути схему
|
||||
schematic.saved = Схема збережена.
|
||||
schematic.delete.confirm = Ви справді хочете видалити цю схему?
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Ця модифікацію неможли
|
||||
mod.requiresversion = Необхідна версія гри: [red]{0}
|
||||
|
||||
mod.errors = Виникли помилки під час завантаження змісту.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]Увімкнено модифікації з помилками.[] Або вимкніть проблемні модифікації, або виправте їх.
|
||||
mod.enable = Увімкнути
|
||||
mod.requiresrestart = А тепер гра закриється, щоби застосувати зміни модифікацій.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Час вийшов під час отриманн
|
||||
cantconnect = Не вдалося під’єднатися до гри ([accent]{0}[]).
|
||||
connecting = [accent]Приєднання…
|
||||
reconnecting = [accent]Повторне з’єднання…
|
||||
connecting.data = [accent]Завантаження даних світу…
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Порт:
|
||||
server.invalidport = Недійсний номер порту!
|
||||
server.error.addressinuse = [scarlet]Помилка запуску сервера за портом 6567.[]\n\nПереконайтеся, що інші сервери Mindustry не запущені на вашому пристрої або мережі!
|
||||
@@ -344,6 +352,10 @@ save.export = Вивантажити збереження
|
||||
save.import.invalid = [accent]Це збереження недійсне!
|
||||
save.import.fail = [crimson]Не вдалося завантажити збереження: [accent]{0}
|
||||
save.export.fail = [crimson]Не вдалося вивантажити збереження: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Імпортувати збереження
|
||||
save.newslot = Ім’я збереження:
|
||||
save.rename = Перейменувати
|
||||
@@ -479,14 +491,6 @@ editor.rules = Правила
|
||||
editor.generation = Генерація
|
||||
editor.objectives = Завдання
|
||||
editor.locales = Мовні пакети
|
||||
editor.patches.guide = Посібник із патчів
|
||||
editor.patches = Набір патчів вмісту
|
||||
editor.patch = Набір патчу: {0}
|
||||
editor.patches.none = [lightgray]Набір патчів вмісту не завантажено.
|
||||
editor.patches.errors = Помилки набору патчу
|
||||
editor.patches.importerror = Помилка імпорту набору патчів
|
||||
editor.patches.delete.confirm = Ви дійсно хочете видалити цей набір патчу?
|
||||
editor.patch.fields = Кількість полів: {0}
|
||||
editor.worldprocessors = Світові процесори
|
||||
editor.worldprocessors.editname = Редагувати назву
|
||||
editor.worldprocessors.none = [lightgray]Блоки світового процесора не знайдено!\nДодайте його у редакторі мапи або скористайтеся кнопкою \ue813 «Додати» нижче.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Власні
|
||||
editor.filters.planetselect = Планети
|
||||
editor.shiftx = Зміщення за віссю X
|
||||
editor.shifty = Зміщення за віссю Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Набір патчів вмісту
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Набір патчів вмісту не завантажено.
|
||||
patch.errors = Помилки набору патчу
|
||||
patch.importerror = Помилка імпорту набору патчів
|
||||
patch.delete.confirm = Ви дійсно хочете видалити цей набір патчу?
|
||||
patch.path = Path:
|
||||
patch.fields = Кількість полів: {0}
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Майстерня
|
||||
waves.title = Хвилі
|
||||
waves.team = Команда
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](Перша {0})
|
||||
waves.max = макс. одиниць
|
||||
waves.guardian = Вартовий
|
||||
waves.preview = Попередній перегляд
|
||||
waves.edit = Редагувати…
|
||||
waves.random = Випадково
|
||||
waves.copy = Копіювати в буфер обміну
|
||||
waves.load = Завантажити з буфера обміну
|
||||
@@ -556,6 +628,7 @@ all = Усе
|
||||
editor.default = [lightgray]<За замовчуванням>
|
||||
details = Подробиці…
|
||||
edit = Змінити…
|
||||
edit.menu = Edit...
|
||||
variables = Змінні
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Ви впевнені, що хочете очистити весь код в цьому процесорі?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Наземні противники
|
||||
stat.crushdamage = Шкода трощенням
|
||||
stat.legsplashdamage = Шкода ніг по ділянці
|
||||
stat.itemsmoved = Швидкість переміщення
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Час між запусками
|
||||
stat.shootrange = Радіус дії
|
||||
stat.size = Розмір
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Нескінченні ресурси для червоної
|
||||
rules.blockhealthmultiplier = Множник здоров’я будівель
|
||||
rules.blockdamagemultiplier = Множник шкоди будівель
|
||||
rules.unitfactoryactivation = Затримка активації заводів одиниць
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Множник швидкості виробництва бойових одиниць
|
||||
rules.unitcostmultiplier = Множник вартості одиниць
|
||||
rules.unithealthmultiplier = Множник здоров’я бойових одиниць
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Наступ ворожих сексторів
|
||||
rules.legacylaunchpads = Класичний пусковий майданчик
|
||||
rules.legacylaunchpads.info = Дозволяє використовувати пусковий майданчик без посадкових майданчиків, як у v7.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Вимкнено[lightgray] (Увімкнено класичний пусковий майданчик)
|
||||
rules.showspawns = Показати точки висадки
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Непередбачувані хвилі з ШІ
|
||||
rules.pauseDisabled = Вимкнути використання паузи
|
||||
rules.fire = Вогонь
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = Англійська назва: Risso\nВистріл
|
||||
unit.minke.description = Англійська назва: Minke\nВистрілює запальними снарядами та стандартними кулями по найближчих наземних цілях.
|
||||
unit.bryde.description = Англійська назва: Bryde\nВистрілює у ворогів артилерійськими снарядами та ракетами великої дальності.
|
||||
unit.sei.description = Англійська назва: Sei\nВистрілює у ворогів шквалом ракет і бронебійних куль.
|
||||
unit.omura.description = Англійська назва: Omura\nВистрілює у ворогів далекобійним болтом, що пробиває броню. Виробляє повітряних спалахів.
|
||||
unit.omura.description = Англійська назва: Omura\nВистрілює у ворогів далекобійним болтом, що пробиває броню.
|
||||
unit.alpha.description = Англійська назва: Alpha\nЗахищає ядро «Уламок» від противників. Будує споруди.
|
||||
unit.beta.description = Англійська назва: Beta\nЗахищає ядро «Штаб» від противників. Будує споруди.
|
||||
unit.gamma.description = Англійська назва: Gamma\nЗахищає ядро «Атом» від противників. Будує споруди.
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Установлює властивість одиниці чи б
|
||||
lst.effect = Створює ефект частинок.
|
||||
lst.sync = Синхронізує змінну по мережі.\nВикликається щонайбільше 10 разів за секунду.
|
||||
lst.playsound = Відтворює звук.\nГучність та панорамування можуть мати глобальне значення або розраховуватися залежно від позиції.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Створює новий логічний маркер у світі.\nПотрібно надати ідентифікатор для ідентифікації цього маркера.\nНаразі кількість маркерів на світ обмежена 20 тисячами.
|
||||
lst.setmarker = Установлює властивість для маркера.\nВикористаний ідентифікатор має збігатися з інструкцією «Створити маркер».
|
||||
lst.localeprint = Додає значення властивості мовного пакету мапи до текстового буфера.\nЩоб встановити мовний пакет мапи в редакторі мапи, перейдіть до [accent]Інформація про мапу > Мовні пакети[].\nЯкщо клієнтом є мобільний пристрій, то спочатку намагається надрукувати властивість, що закінчується на «.mobile».
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = Máy chủ này muốn sao chép văn bản vào bảng tạm c
|
||||
linkfail = Không mở được liên kết!\nURL đã được sao chép vào bộ nhớ tạm.
|
||||
screenshot = Ảnh chụp màn hình được lưu vào {0}
|
||||
screenshot.invalid = Bản đồ quá lớn, có khả năng không đủ bộ nhớ để chụp ảnh màn hình.
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = Trò chơi kết thúc
|
||||
gameover.disconnect = Ngắt kết nối
|
||||
gameover.pvp = Đội[accent] {0}[] chiến thắng!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = Trang phát hành
|
||||
mods.browser.sortdate = Sắp xếp theo gần đây
|
||||
mods.browser.sortstars = Sắp xếp theo sao
|
||||
|
||||
export.file = Xuất tệp
|
||||
import.file = Nhập tệp
|
||||
copy.clipboard = Sao chép vào Bộ nhớ tạm
|
||||
import.clipboard = Thêm từ Bộ nhớ tạm
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = Chia sẻ lên Workshop
|
||||
|
||||
schematic = Bản thiết kế
|
||||
schematic.add = Lưu bản thiết kế...
|
||||
schematics = Các bản thiết kế
|
||||
@@ -64,12 +72,6 @@ schematic.search = Tìm kiếm các bản thiết kế...
|
||||
schematic.replace = Bản thiết kế có tên đó đã tồn tại. Thay thế nó?
|
||||
schematic.exists = Bản thiết kế có tên đó đã tồn tại.
|
||||
schematic.import = Nhập Bản thiết kế...
|
||||
schematic.exportfile = Xuất tệp
|
||||
schematic.importfile = Nhập tệp
|
||||
schematic.browseworkshop = Duyệt qua Workshop
|
||||
schematic.copy = Sao chép vào Bộ nhớ tạm
|
||||
schematic.copy.import = Thêm từ Bộ nhớ tạm
|
||||
schematic.shareworkshop = Chia sẻ lên Workshop
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Lật bản thiết kế
|
||||
schematic.saved = Đã lưu bản thiết kế.
|
||||
schematic.delete.confirm = Bản thiết kế này sẽ bị xóa hoàn toàn.
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = Mod này không thể tải được do kh
|
||||
mod.requiresversion = Yêu cầu phiên bản trò chơi: [red]{0}
|
||||
|
||||
mod.errors = Đã xảy ra lỗi khi tải nội dung.
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]Bạn có mod bị lỗi.[] Tắt các mod bị ảnh hưởng hoặc sửa các lỗi trước khi chơi.
|
||||
mod.enable = Bật
|
||||
mod.requiresrestart = Trò chơi sẽ đóng để áp dụng các thay đổi của mod.
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Đã hết thời gian trong khi nhận ảnh chụ
|
||||
cantconnect = Không thể tham gia trò chơi ([accent]{0}[]).
|
||||
connecting = [accent]Đang kết nối...
|
||||
reconnecting = [accent]Đang kết nối lại...
|
||||
connecting.data = [accent]Đang tải dữ liệu thế giới...
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = Cổng:
|
||||
server.invalidport = Số cổng không hợp lệ!
|
||||
server.error.addressinuse = [scarlet]Mở máy chủ trên cổng 6567 thất bại.[]\n\nChắc rằng không có máy chủ Mindustry nào đang chạy trên thiết bị hoặc mạng của bạn!
|
||||
@@ -344,6 +352,10 @@ save.export = Xuất bản lưu
|
||||
save.import.invalid = [accent]Bản lưu này không hợp lệ!
|
||||
save.import.fail = [scarlet]Không thể nhập bản lưu: [accent]{0}
|
||||
save.export.fail = [scarlet]Không thể xuất bản lưu: [accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = Nhập bản lưu
|
||||
save.newslot = Tên bản lưu:
|
||||
save.rename = Đổi tên
|
||||
@@ -479,14 +491,6 @@ editor.rules = Quy tắc
|
||||
editor.generation = Tạo ra
|
||||
editor.objectives = Mục tiêu nhiệm vụ
|
||||
editor.locales = Gói ngôn ngữ
|
||||
editor.patches.guide = Hướng Dẫn Bản Vá
|
||||
editor.patches = Bản Vá Dữ Liệu
|
||||
editor.patch = Bộ vá: {0}
|
||||
editor.patches.none = [lightgray]Không có bản vá nào được nạp.
|
||||
editor.patches.errors = Lỗi Bộ Vá
|
||||
editor.patches.importerror = Nhập bộ vá thất bại
|
||||
editor.patches.delete.confirm = Bạn có chắc chắn muốn xóa bộ vá này không?
|
||||
editor.patch.fields = {0} trường
|
||||
editor.worldprocessors = Các bộ xử lý thế giới
|
||||
editor.worldprocessors.editname = Sửa tên
|
||||
editor.worldprocessors.none = [lightgray]không tìm thấy khối bộ xử lý thế giới nào!\nThêm một bộ trong trình chỉnh sửa bản đồ, hoặc dùng nút \ue813 Thêm ở dưới.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Ưu Tiên Tùy Chỉnh
|
||||
editor.filters.planetselect = Chọn Hành Tinh
|
||||
editor.shiftx = Dịch theo X
|
||||
editor.shifty = Dịch theo Y
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Bản Vá Dữ Liệu
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]Không có bản vá nào được nạp.
|
||||
patch.errors = Lỗi Bộ Vá
|
||||
patch.importerror = Nhập bộ vá thất bại
|
||||
patch.delete.confirm = Bạn có chắc chắn muốn xóa bộ vá này không?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} trường
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = Workshop
|
||||
waves.title = Đợt
|
||||
waves.team = Đội
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray]({0} điểm đầu tiên)
|
||||
waves.max = đơn vị tối đa
|
||||
waves.guardian = Trùm
|
||||
waves.preview = Xem trước
|
||||
waves.edit = Chỉnh sửa...
|
||||
waves.random = Ngẫu nhiên
|
||||
waves.copy = Sao chép vào Bộ nhớ tạm
|
||||
waves.load = Nạp từ Bộ nhớ tạm
|
||||
@@ -556,6 +628,7 @@ all = Tất cả
|
||||
editor.default = [lightgray]<Mặc định>
|
||||
details = Chi tiết...
|
||||
edit = Chỉnh sửa
|
||||
edit.menu = Edit...
|
||||
variables = Biến số
|
||||
logic.error.toolong = Mã bộ xử lý quá dài (Giới hạn: {0} byte đã nén, độ dài thực sự: {1} byte)
|
||||
logic.clear.confirm = Bạn có muốn xóa sạch tất cả mã khỏi bộ xử lý này?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = Mục tiêu mặt đất
|
||||
stat.crushdamage = Sát thương nghiền nát
|
||||
stat.legsplashdamage = Sát Thương Lan Tỏa Từ Chân
|
||||
stat.itemsmoved = Tốc độ dịch chuyển
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = Thời gian giữa các lần phóng
|
||||
stat.shootrange = Phạm vi
|
||||
stat.size = Kích thước
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = Tài Nguyên Kẻ Địch Vô Hạn
|
||||
rules.blockhealthmultiplier = Hệ Số Độ Bền Khối
|
||||
rules.blockdamagemultiplier = Hệ Số Sát Thương Của Khối
|
||||
rules.unitfactoryactivation = Trễ Kích Hoạt Nhà Máy Chế Tạo Đơn Vị
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = Hệ Số Tốc Độ Sản Xuất Đơn Vị
|
||||
rules.unitcostmultiplier = Hệ Số Chi Phí Sản Xuất Đơn Vị
|
||||
rules.unithealthmultiplier = Hệ Số Độ Bền Của Đơn Vị
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Kẻ Địch Xâm Lược Phân Khu
|
||||
rules.legacylaunchpads = Cơ chế bệ phóng di sản
|
||||
rules.legacylaunchpads.info = Cho phép dùng bệ phóng mà không cần bệ đáp, như trong bản 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Đã tắt[lightgray] (Bệ phóng di sản được bật)
|
||||
rules.showspawns = Hiện Khu Kẻ Địch Xuất Hiện
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Đợt Tấn Công AI Không Đoán Trước
|
||||
rules.pauseDisabled = Tắt Tạm Dừng
|
||||
rules.fire = Lửa
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Thiết đặt một thuộc tính của đơn vị hoặc công t
|
||||
lst.effect = Tạo một phần hiệu ứng nhỏ.
|
||||
lst.sync = Đồng bộ biến số qua mạng.\nChỉ gọi tối đa 20 lần mỗi giây cho mỗi biến.
|
||||
lst.playsound = Phát một âm thanh.\nÂm lượng và hướng xoay có thể là một giá trị toàn cục, hoặc được tính toán dựa vào vị trí.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Tạo mới điểm đánh dấu logic trên thế giới.\nMột định danh cho điểm đánh dấu này phải được cung cấp.\nĐiểm đánh dấu hiện tại bị giới hạn 20,000 trên mỗi thế giới.
|
||||
lst.setmarker = Thiết đặt một thuộc tính cho một điểm đánh dấu.\nĐịnh danh phải giống như định danh ở chỉ lệnh Tạo Điểm đánh dấu (Make Marker).\nGiá trị [accent]null[] sẽ bị phớt lờ.
|
||||
lst.localeprint = Thêm một giá trị thuộc tính ngôn ngữ của bản đồ vào bộ đệm văn bản.\nĐể thiết đặt gói ngôn ngữ trong trình chỉnh sửa bản đồ, xem qua [accent]Thông tin bản đồ > Gói ngôn ngữ[].\nNếu máy khách là một thiết bị di động, sẽ cố in thuộc tính kết thúc bằng ".mobile" trước tiên.
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = 这个服务器想要将文本复制到你的剪贴板。你确
|
||||
linkfail = 无法打开链接!\n链接已复制到你的剪贴板。
|
||||
screenshot = 截图已保存到 {0}
|
||||
screenshot.invalid = 地图太大了,可能没有足够的内存进行截图。
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = 游戏结束
|
||||
gameover.disconnect = 断开连接
|
||||
gameover.pvp = [accent]{0}[] 队获胜!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = 发布页面
|
||||
mods.browser.sortdate = 按最近排序
|
||||
mods.browser.sortstars = 按星标数排序
|
||||
|
||||
export.file = 导出文件
|
||||
import.file = 导入文件
|
||||
copy.clipboard = 复制到剪贴板
|
||||
import.clipboard = 从剪贴板导入
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = 分享到创意工坊
|
||||
|
||||
schematic = 蓝图
|
||||
schematic.add = 保存蓝图
|
||||
schematics = 蓝图
|
||||
@@ -64,12 +72,6 @@ schematic.search = 搜索蓝图
|
||||
schematic.replace = 已有同名蓝图。是否替换?
|
||||
schematic.exists = 已有同名蓝图。
|
||||
schematic.import = 导入蓝图
|
||||
schematic.exportfile = 导出文件
|
||||
schematic.importfile = 导入文件
|
||||
schematic.browseworkshop = 浏览创意工坊
|
||||
schematic.copy = 复制到剪贴板
|
||||
schematic.copy.import = 从剪贴板导入
|
||||
schematic.shareworkshop = 分享到创意工坊
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻转蓝图
|
||||
schematic.saved = 蓝图已保存。
|
||||
schematic.delete.confirm = 确定删除这个蓝图?
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = 此模组无法加载,因为缺少或无
|
||||
mod.requiresversion = 需要游戏版本:[red]{0}
|
||||
|
||||
mod.errors = 加载内容时发生错误。
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [red]你的模组发生了错误。[] 请禁用受影响的模组或修复错误后再进行游戏。
|
||||
mod.enable = 启用
|
||||
mod.requiresrestart = 游戏将关闭以应用模组更改。
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = 接收 UDP 快照超时。\n可能是由于网络
|
||||
cantconnect = 无法加入游戏([accent]{0}[])。
|
||||
connecting = [accent]连接中…
|
||||
reconnecting = [accent]重新连接…
|
||||
connecting.data = [accent]加载世界数据…
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = 端口:
|
||||
server.invalidport = 端口号无效!
|
||||
server.error.addressinuse = [scarlet]无法在端口 6567 上开启服务器。[]\n\n请确保没有其他 Mindustry 服务器在你的设备或网络中运行!
|
||||
@@ -344,6 +352,10 @@ save.export = 导出存档
|
||||
save.import.invalid = [accent]此存档无效!
|
||||
save.import.fail = [scarlet]导入存档失败:[accent]{0}
|
||||
save.export.fail = [scarlet]导出存档失败:[accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = 导入存档
|
||||
save.newslot = 存档名称:
|
||||
save.rename = 重命名
|
||||
@@ -479,14 +491,6 @@ editor.rules = 规则
|
||||
editor.generation = 生成
|
||||
editor.objectives = 目标
|
||||
editor.locales = 本地化语言包
|
||||
editor.patches.guide = 数据包指南
|
||||
editor.patches = 数据包
|
||||
editor.patch = 补丁集: {0}
|
||||
editor.patches.none = [lightgray]未加载补丁集。
|
||||
editor.patches.errors = 补丁集出错
|
||||
editor.patches.importerror = 导入补丁集失败
|
||||
editor.patches.delete.confirm = 您确定要删除此补丁集吗?
|
||||
editor.patch.fields = {0} 处变动
|
||||
editor.worldprocessors = 世界处理器
|
||||
editor.worldprocessors.editname = 命名
|
||||
editor.worldprocessors.none = [lightgray]未找到世界处理器!\n请在地图编辑器中添加或使用下方的 \ue813 添加按钮。
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = 自定义优先
|
||||
editor.filters.planetselect = 选择星球
|
||||
editor.shiftx = X 轴平移
|
||||
editor.shifty = Y 轴平移
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = 数据包
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]未加载补丁集。
|
||||
patch.errors = 补丁集出错
|
||||
patch.importerror = 导入补丁集失败
|
||||
patch.delete.confirm = 您确定要删除此补丁集吗?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} 处变动
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = 创意工坊
|
||||
waves.title = 波次
|
||||
waves.team = 队伍
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](前 {0} 个)
|
||||
waves.max = 最大单位数
|
||||
waves.guardian = Boss
|
||||
waves.preview = 预览
|
||||
waves.edit = 编辑
|
||||
waves.random = 随机
|
||||
waves.copy = 复制到剪贴板
|
||||
waves.load = 从剪贴板读取
|
||||
@@ -556,6 +628,7 @@ all = 所有
|
||||
editor.default = [lightgray]< 默认 >
|
||||
details = 详情
|
||||
edit = 编辑
|
||||
edit.menu = Edit...
|
||||
variables = 变量
|
||||
logic.error.toolong = 处理器代码过长(限制长度:{0} 字节,实际长度:{1} 字节)
|
||||
logic.clear.confirm = 确定要清除此处理器中的所有代码吗?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = 攻击地面单位
|
||||
stat.crushdamage = 碾压伤害
|
||||
stat.legsplashdamage = 践踏伤害
|
||||
stat.itemsmoved = 移动速度
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = 发射间隔
|
||||
stat.shootrange = 范围
|
||||
stat.size = 尺寸
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = 敌人无限资源
|
||||
rules.blockhealthmultiplier = 建筑生命倍率
|
||||
rules.blockdamagemultiplier = 建筑伤害倍率
|
||||
rules.unitfactoryactivation = 单位工厂延迟激活
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = 单位生产速度倍率
|
||||
rules.unitcostmultiplier = 单位生产花费倍率
|
||||
rules.unithealthmultiplier = 单位生命倍率
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = 敌方入侵区块
|
||||
rules.legacylaunchpads = 旧版发射台机制
|
||||
rules.legacylaunchpads.info = 允许使用没有接收台的发射台(与 7.0 版本一致)。
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 禁用[lightgray] (旧版发射台已启用)
|
||||
rules.showspawns = 显示敌方单位出生点
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = 不可预测的 AI 波次
|
||||
rules.pauseDisabled = 禁用暂停
|
||||
rules.fire = 允许火焰产生并蔓延
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = 设置单位或建筑物的属性。
|
||||
lst.effect = 创建一个粒子效果。
|
||||
lst.sync = 在网络中同步一个变量。\n最多每秒调用 10 次。
|
||||
lst.playsound = 播放声音。\n音量和声场位置可以是全局值,也可以根据位置计算得出。
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = 在世界中创建一个新的逻辑标记。\n必须提供一个用于标识该标记的 ID。\n目前每个世界限制最多 20000 个标记。
|
||||
lst.setmarker = 为标记设置属性。\n使用的 ID 必须与制作标记指令中的相同。
|
||||
lst.localeprint = 将地图本地化文本属性值添加到文本缓冲区中。\n要在地图编辑器中设置地图本地化包,请检查 [accent]地图信息 > 本地化包[]。\n如果客户端是移动设备,则尝试首先打印以 “.mobile” 结尾的属性。
|
||||
|
||||
@@ -19,6 +19,7 @@ clipboardcopy = This server wants to copy text to your clipboard. Are you sure y
|
||||
linkfail = 無法打開連結!\n我們已將該網址複製到您的剪貼簿。
|
||||
screenshot = 截圖儲存到{0}
|
||||
screenshot.invalid = 地圖太大了,可能沒有足夠的記憶體用於截圖。
|
||||
screenshot.error = Failed to take screenshot. Your device likely does not support screenshots this large.
|
||||
gameover = 遊戲結束
|
||||
gameover.disconnect = 斷線
|
||||
gameover.pvp = [accent]{0}[]隊獲勝!
|
||||
@@ -57,6 +58,13 @@ mods.github.open-release = 發行網頁
|
||||
mods.browser.sortdate = 以最近篩選
|
||||
mods.browser.sortstars = 以星數篩選
|
||||
|
||||
export.file = 匯出檔案
|
||||
import.file = 匯入檔案
|
||||
copy.clipboard = 複製到剪貼簿
|
||||
import.clipboard = 從剪貼簿匯入
|
||||
workshop.browse = Browse Workshop
|
||||
workshop.share = 分享到工作坊
|
||||
|
||||
schematic = 藍圖
|
||||
schematic.add = 儲存藍圖……
|
||||
schematics = 藍圖
|
||||
@@ -64,12 +72,6 @@ schematic.search = 搜尋藍圖...
|
||||
schematic.replace = 相同名稱的藍圖已經存在。是否取代它?
|
||||
schematic.exists = 相同名稱的藍圖已經存在。
|
||||
schematic.import = 匯入藍圖……
|
||||
schematic.exportfile = 匯出檔案
|
||||
schematic.importfile = 匯入檔案
|
||||
schematic.browseworkshop = 瀏覽工作坊
|
||||
schematic.copy = 複製到剪貼簿
|
||||
schematic.copy.import = 從剪貼簿匯入
|
||||
schematic.shareworkshop = 分享到工作坊
|
||||
schematic.flip = [accent][[{0}][]/[accent][[{1}][]:翻轉藍圖
|
||||
schematic.saved = 藍圖已儲存。
|
||||
schematic.delete.confirm = 該藍圖將被完全清除。
|
||||
@@ -177,6 +179,7 @@ mod.incompletedependencies.details = 由於無效或缺失的依賴項,此模
|
||||
mod.requiresversion = 需要遊戲版本:[red]{0}
|
||||
|
||||
mod.errors = 載入內容時發生錯誤
|
||||
mod.errors.map = [scarlet]Errors have occurred loading map content. All custom content has been disabled.[]\nThis map will likely not function correctly.
|
||||
mod.noerrorplay = [scarlet]您使用了有問題的模組。[] 遊戲前請先停用相關模組或修正問題。
|
||||
mod.enable = 啟用
|
||||
mod.requiresrestart = 遊戲將立即關閉以套用模組變更。
|
||||
@@ -327,7 +330,12 @@ disconnect.snapshottimeout = Timed out while receiving UDP snapshots.\nThis may
|
||||
cantconnect = 無法加入遊戲 ([accent]{0}[]).
|
||||
connecting = [accent]連線中……
|
||||
reconnecting = [accent]重新連接中……
|
||||
connecting.data = [accent]地圖資料載入中……
|
||||
|
||||
connecting.establish = [accent]Establishing connection...
|
||||
receiving.world = [accent]Receiving world data ({0})...
|
||||
receiving.assets = [accent]Receiving assets ({0})...
|
||||
receiving.assets.fail = Error occurred while receiving assets.
|
||||
|
||||
server.port = 連接埠:
|
||||
server.invalidport = 無效的連接埠!
|
||||
server.error.addressinuse = [scarlet]Failed to open server on port 6567.[]\n\nMake sure no other Mindustry servers are running on your device or network!
|
||||
@@ -344,6 +352,10 @@ save.export = 匯出存檔
|
||||
save.import.invalid = [accent]這是個無效的存檔!
|
||||
save.import.fail = [crimson]無法匯入存檔:[accent]{0}
|
||||
save.export.fail = [crimson]無法匯出存檔:[accent]{0}
|
||||
save.export.needsload = [scarlet]⚠ This save contains embedded assets.[]\nLoad into this save before exporting it.
|
||||
save.assets.missing = Missing Assets
|
||||
save.assets.missing.list = Asset List...
|
||||
save.assets.missing.info = [scarlet]⚠ This save contains missing assets![]\n\n[lightgray]This is likely because the save file was not properly exported.\n[lightgray]When sharing saves, only export through the in-game UI. Do not copy save files directly.\n[lightgray]If transferring files is necessary, make sure the [accent]assetCache[] folder is copied as well.
|
||||
save.import = 匯入存檔
|
||||
save.newslot = 存檔名稱:
|
||||
save.rename = 重新命名
|
||||
@@ -479,14 +491,6 @@ editor.rules = 規則:
|
||||
editor.generation = 自動生成:
|
||||
editor.objectives = 目標
|
||||
editor.locales = Locale Bundles
|
||||
editor.patches.guide = Patch Guide
|
||||
editor.patches = Content Patches
|
||||
editor.patch = Patchset: {0}
|
||||
editor.patches.none = [lightgray]No patchsets loaded.
|
||||
editor.patches.errors = Patchset Errors
|
||||
editor.patches.importerror = Failed to import patchset
|
||||
editor.patches.delete.confirm = Are you sure you want to delete this patchset?
|
||||
editor.patch.fields = {0} fields
|
||||
editor.worldprocessors = World Processors
|
||||
editor.worldprocessors.editname = Edit Name
|
||||
editor.worldprocessors.none = [lightgray]No world processor blocks found!\nAdd one in the map editor, or use the \ue813 Add button below.
|
||||
@@ -511,6 +515,75 @@ editor.filters.prioritizecustom = Custom Priority
|
||||
editor.filters.planetselect = Planet Selection
|
||||
editor.shiftx = X位移
|
||||
editor.shifty = Y位移
|
||||
|
||||
asset.patch = Patch
|
||||
asset.content = Content
|
||||
asset.bundle = Translation Bundle
|
||||
asset.image = Image
|
||||
asset.sound = Sound
|
||||
asset.music = Music
|
||||
|
||||
content.unit = Unit
|
||||
content.item = Item
|
||||
content.liquid = Liquid
|
||||
content.block = Block
|
||||
content.planet = Planet
|
||||
content.weather = Weather
|
||||
content.status = Status Effect
|
||||
|
||||
patches = Content Patches
|
||||
patch.set = Patchset: {0}
|
||||
patch.none = [lightgray]No patchsets loaded.
|
||||
patch.errors = Patchset Errors
|
||||
patch.importerror = Failed to import patchset
|
||||
patch.delete.confirm = Are you sure you want to delete this patchset?
|
||||
patch.path = Path:
|
||||
patch.fields = {0} fields
|
||||
|
||||
bundle.lines = {0} lines
|
||||
|
||||
images = Images
|
||||
asset.guide = Usage Guide
|
||||
asset.bundle.exists = A bundle with path '{0}' already exists.
|
||||
asset.importzip = Import Asset Zip
|
||||
asset.exportzip = Export Asset Zip
|
||||
asset.image.importzip = Import Zip
|
||||
asset.image.exportzip = Export Zip
|
||||
asset.clearall = Clear All
|
||||
asset.clearall.confirm = Are you sure that you want to clear [red]all[] assets from this map?\nThis includes images, audio, content, etc.
|
||||
asset.imports = Import Results
|
||||
asset.imported = [accent]{0} assets imported.
|
||||
asset.import.none = No valid asset files found in zip archive.
|
||||
asset.content.errors = Content Errors
|
||||
asset.content.add = Add Content
|
||||
asset.content.type = Type:
|
||||
asset.content.exists = [red]Content with that name already exists!
|
||||
asset.content.badname = [red]Invalid name! Most symbols are not allowed.
|
||||
asset.content.import.file = Import File
|
||||
asset.content.import.clipboard = Import From Clipboard
|
||||
asset.exists = An asset of that type with the same path/name already exists:\n[lightgray]{0}
|
||||
asset.broken = This asset file could not be located.\nThis can be caused by improper import of data, or an incorrectly exported save.
|
||||
asset.audio.invalid = Audio file could not be loaded.\nEnsure that it is a valid OGG or MP3 file.
|
||||
asset.delete.confirm = Are you sure you want to delete this asset?
|
||||
asset.images = Data Patch Images
|
||||
asset.image.imports = Import Results
|
||||
asset.image.imported = [accent]{0} images imported.
|
||||
asset.image.none = No valid PNG files found in zip archive.
|
||||
asset.image.error = [red]The following errors were encountered:[]
|
||||
asset.image.clearall.confirm = Are you certain that you wish to clear all images?
|
||||
asset.image.info = Image Info
|
||||
asset.image.toolarge = Image ([lightgray]{0}x{1}[]) is too large. Maximum size is {2}x{3}.
|
||||
asset.image.exists = An image with that path/name already exists:\n[lightgray]{0}
|
||||
asset.image.delete.confirm = Are you certain that you wish to delete this image?
|
||||
asset.image.name = [accent]File Name: [lightgray]{0}
|
||||
asset.image.region.name = [accent]Region Name: [lightgray]{0}
|
||||
asset.image.path = [accent]Path: [lightgray]{0}
|
||||
asset.image.env = [accent]Uses Environment Atlas: [lightgray]{0}
|
||||
asset.image.size = [accent]Size: [lightgray]{0}x{1}
|
||||
asset.image.filesize = [accent]File Size: [lightgray]{0}
|
||||
asset.image.packfailed = [red]⚠ Failed to pack sprite![]
|
||||
asset.image.packfailed.env = This is likely caused by a lack of space in the environment atlas.\nNote that environment sprites are limited to a 512x512 total area.
|
||||
|
||||
workshop = 工作坊
|
||||
waves.title = 波次
|
||||
waves.team = Team
|
||||
@@ -529,7 +602,6 @@ waves.spawn.first = [lightgray](first {0})
|
||||
waves.max = 最大單位數
|
||||
waves.guardian = 守衛者
|
||||
waves.preview = 預覽
|
||||
waves.edit = 編輯……
|
||||
waves.random = 隨機
|
||||
waves.copy = 複製到剪貼簿
|
||||
waves.load = 從剪貼簿載入
|
||||
@@ -556,6 +628,7 @@ all = All
|
||||
editor.default = [lightgray](預設)
|
||||
details = 詳細資訊……
|
||||
edit = 編輯……
|
||||
edit.menu = Edit...
|
||||
variables = 變數
|
||||
logic.error.toolong = Processor code too long (Limit: {0} compressed bytes, actual length: {1} bytes)
|
||||
logic.clear.confirm = Are you sure you want to clear all code from this processor?
|
||||
@@ -1068,6 +1141,7 @@ stat.targetsground = 攻擊地面目標
|
||||
stat.crushdamage = Crush Damage
|
||||
stat.legsplashdamage = Leg Splash Damage
|
||||
stat.itemsmoved = 移動速度
|
||||
stat.itemsmoved.info = Throughput is often not linear and tied to FPS/TPS.
|
||||
stat.launchtime = 發射間隔
|
||||
stat.shootrange = 範圍
|
||||
stat.size = 大小
|
||||
@@ -1545,6 +1619,7 @@ rules.enemyCheat = 電腦無限資源
|
||||
rules.blockhealthmultiplier = 建築物耐久度加成
|
||||
rules.blockdamagemultiplier = 建築物傷害加成
|
||||
rules.unitfactoryactivation = Unit Factory Activation Delay
|
||||
rules.unitfactoryactivation.objective = Unit Factories Activating: {0}
|
||||
rules.unitbuildspeedmultiplier = 單位建設速度加成
|
||||
rules.unitcostmultiplier = 單位生產花費倍率
|
||||
rules.unithealthmultiplier = 單位血量加成
|
||||
@@ -1586,7 +1661,7 @@ rules.invasions = Enemy Sector Invasions
|
||||
rules.legacylaunchpads = Legacy Launch Pad Mechanics
|
||||
rules.legacylaunchpads.info = Allows using launch pads without landing pads, as in 7.0.
|
||||
landingpad.legacy.disabled = [scarlet]\ue815 Disabled[lightgray] (Legacy Launch Pads enabled)
|
||||
rules.showspawns = Show Enemy Spawns
|
||||
rules.hidespawns = Hide Enemy Spawns
|
||||
rules.randomwaveai = Unpredictable Wave AI
|
||||
rules.pauseDisabled = Disable Pausing
|
||||
rules.fire = 火
|
||||
@@ -2615,7 +2690,7 @@ unit.risso.description = 對附近所有敵人發射大量飛彈和子彈的迷
|
||||
unit.minke.description = 對附近陸上敵人發射大砲和普通子彈的小型迫砲艇。
|
||||
unit.bryde.description = 對敵人發射遠程高射砲彈以及飛彈的巡邏艇。
|
||||
unit.sei.description = 對敵人發射大量飛彈和穿甲彈。
|
||||
unit.omura.description = 對敵人發射遠程穿透型砲彈。建造曳光戰機。
|
||||
unit.omura.description = 對敵人發射遠程穿透型砲彈。
|
||||
unit.alpha.description = 抵禦敵軍對核心:碎片的攻擊。建造建築物。
|
||||
unit.beta.description = 抵禦敵軍對核心:基地的攻擊。建造建築物。
|
||||
unit.gamma.description = 抵禦敵軍對核心:核子的攻擊。建造建築物。
|
||||
@@ -2691,6 +2766,7 @@ lst.setprop = Sets a property of a unit or building.
|
||||
lst.effect = Create a particle effect.
|
||||
lst.sync = Sync a variable across the network.\nOnly invoked 10 times a second at most.
|
||||
lst.playsound = Plays a sound.\nVolume and pan can be a global value, or calculated based on position.
|
||||
lst.playmusic = Plays a music track by name, e.g. [accent]"game1"[].\nIf [accent]interrupt[] is true, the previously playing music will be stopped.\nPlaying with null music and interrupt set to true will stop the current track.\nNote that music from data patches must be prefixed with [accent]dp-[].
|
||||
lst.makemarker = Create a new logic marker in the world.\nAn ID to identify this marker must be provided.\nMarkers currently limited to 20,000 per world.
|
||||
lst.setmarker = Set a property for a marker.\nThe ID used must be the same as in the Make Marker instruction.
|
||||
lst.localeprint = Add map locale property value to the text buffer.\nTo set map locale bundles in map editor, check [accent]Map Info > Locale Bundles[].\nIf client is a mobile device, tries to print a property ending in ".mobile" first.
|
||||
|
||||
@@ -17,6 +17,7 @@ const floatp = method => new Floatp(){get: method}
|
||||
const cons = method => new Cons(){get: method}
|
||||
const prov = method => new Prov(){get: method}
|
||||
const func = method => new Func(){get: method}
|
||||
const getRealClass = value => Vars.mods.getScripts().getClass(value);
|
||||
|
||||
const newEffect = (lifetime, renderer) => new Effect.Effect(lifetime, new Effect.EffectRenderer({render: renderer}))
|
||||
Call = Packages.mindustry.gen.Call
|
||||
|
||||
@@ -19,6 +19,7 @@ const floatp = method => new Floatp(){get: method}
|
||||
const cons = method => new Cons(){get: method}
|
||||
const prov = method => new Prov(){get: method}
|
||||
const func = method => new Func(){get: method}
|
||||
const getRealClass = value => Vars.mods.getScripts().getClass(value);
|
||||
|
||||
const newEffect = (lifetime, renderer) => new Effect.Effect(lifetime, new Effect.EffectRenderer({render: renderer}))
|
||||
Call = Packages.mindustry.gen.Call
|
||||
@@ -75,6 +76,7 @@ importPackage(Packages.mindustry.content)
|
||||
importPackage(Packages.mindustry.core)
|
||||
importPackage(Packages.mindustry.ctype)
|
||||
importPackage(Packages.mindustry.editor)
|
||||
importPackage(Packages.mindustry.editor.data)
|
||||
importPackage(Packages.mindustry.entities)
|
||||
importPackage(Packages.mindustry.entities.abilities)
|
||||
importPackage(Packages.mindustry.entities.bullet)
|
||||
@@ -95,6 +97,7 @@ importPackage(Packages.mindustry.maps.filters)
|
||||
importPackage(Packages.mindustry.maps.generators)
|
||||
importPackage(Packages.mindustry.maps.planet)
|
||||
importPackage(Packages.mindustry.mod)
|
||||
importPackage(Packages.mindustry.mod.data)
|
||||
importPackage(Packages.mindustry.net)
|
||||
importPackage(Packages.mindustry.service)
|
||||
importPackage(Packages.mindustry.type)
|
||||
@@ -113,7 +116,6 @@ importPackage(Packages.mindustry.world.blocks.defense.turrets)
|
||||
importPackage(Packages.mindustry.world.blocks.distribution)
|
||||
importPackage(Packages.mindustry.world.blocks.environment)
|
||||
importPackage(Packages.mindustry.world.blocks.heat)
|
||||
importPackage(Packages.mindustry.world.blocks.legacy)
|
||||
importPackage(Packages.mindustry.world.blocks.liquid)
|
||||
importPackage(Packages.mindustry.world.blocks.logic)
|
||||
importPackage(Packages.mindustry.world.blocks.payloads)
|
||||
@@ -185,7 +187,7 @@ const LaunchItemEvent = Packages.mindustry.game.EventType.LaunchItemEvent
|
||||
const SectorInvasionEvent = Packages.mindustry.game.EventType.SectorInvasionEvent
|
||||
const SectorLoseEvent = Packages.mindustry.game.EventType.SectorLoseEvent
|
||||
const SaveLoadEvent = Packages.mindustry.game.EventType.SaveLoadEvent
|
||||
const ContentPatchLoadEvent = Packages.mindustry.game.EventType.ContentPatchLoadEvent
|
||||
const DataPatchLoadEvent = Packages.mindustry.game.EventType.DataPatchLoadEvent
|
||||
const WorldLoadEndEvent = Packages.mindustry.game.EventType.WorldLoadEndEvent
|
||||
const WorldLoadBeginEvent = Packages.mindustry.game.EventType.WorldLoadBeginEvent
|
||||
const WorldLoadEvent = Packages.mindustry.game.EventType.WorldLoadEvent
|
||||
|
||||
@@ -105,20 +105,12 @@ public abstract class ClientLauncher extends ApplicationCore implements Platform
|
||||
@Override
|
||||
public Sound loadSync(AssetManager manager, String fileName, Fi file, SoundParameter parameter){
|
||||
if(parameter != null && parameter.sound != null){
|
||||
mainExecutor.submit(() -> parameter.sound.load(file));
|
||||
parameter.sound.loadLazy(file);
|
||||
|
||||
return parameter.sound;
|
||||
}else{
|
||||
Sound sound = new Sound();
|
||||
|
||||
mainExecutor.submit(() -> {
|
||||
try{
|
||||
sound.load(file);
|
||||
}catch(Throwable t){
|
||||
Log.err("Error loading sound: " + file, t);
|
||||
}
|
||||
});
|
||||
|
||||
sound.loadLazy(file);
|
||||
return sound;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,6 +232,8 @@ public class Vars implements Loadable{
|
||||
public static Fi customMapDirectory;
|
||||
/** data subdirectory used for custom map previews */
|
||||
public static Fi mapPreviewDirectory;
|
||||
/** directory for extracted assets */
|
||||
public static Fi assetCacheDirectory;
|
||||
/** tmp subdirectory for map conversion */
|
||||
public static Fi tmpDirectory;
|
||||
/** data subdirectory used for saves */
|
||||
@@ -263,7 +265,7 @@ public class Vars implements Loadable{
|
||||
public static Locale[] locales;
|
||||
|
||||
//the main executor will only have at most [cores] number of threads active
|
||||
public static ExecutorService mainExecutor = Threads.executor("Main Executor", OS.cores);
|
||||
public static ExecutorService mainExecutor = Core.executor;
|
||||
|
||||
public static FileTree tree = new FileTree();
|
||||
public static Net net;
|
||||
@@ -280,6 +282,7 @@ public class Vars implements Loadable{
|
||||
public static GlobalVars logicVars;
|
||||
public static MapEditor editor;
|
||||
public static AvoidanceProcess avoidance;
|
||||
public static DataAssetCache assetCache;
|
||||
public static GameService service = new GameService();
|
||||
|
||||
public static Universe universe;
|
||||
@@ -339,6 +342,7 @@ public class Vars implements Loadable{
|
||||
saveDirectory = dataDirectory.child("saves/");
|
||||
tmpDirectory = dataDirectory.child("tmp/");
|
||||
modDirectory = dataDirectory.child("mods/");
|
||||
assetCacheDirectory = dataDirectory.child("assetCache");
|
||||
schematicDirectory = dataDirectory.child("schematics/");
|
||||
bebuildDirectory = dataDirectory.child("be_builds/");
|
||||
serverCacheFile = dataDirectory.child("server_list.json");
|
||||
@@ -364,6 +368,7 @@ public class Vars implements Loadable{
|
||||
fogControl = new FogControl();
|
||||
bases = new BaseRegistry();
|
||||
logicVars = new GlobalVars();
|
||||
assetCache = new DataAssetCache();
|
||||
javaPath =
|
||||
new Fi(OS.prop("java.home")).child("bin/java").exists() ? new Fi(OS.prop("java.home")).child("bin/java").absolutePath() :
|
||||
Core.files.local("jre/bin/java").exists() ? Core.files.local("jre/bin/java").absolutePath() : // Unix
|
||||
@@ -384,6 +389,7 @@ public class Vars implements Loadable{
|
||||
emptyTile = new Tile(Short.MAX_VALUE - 20, Short.MAX_VALUE - 20);
|
||||
});
|
||||
|
||||
assetCache.load();
|
||||
mods.load();
|
||||
maps.load();
|
||||
}
|
||||
|
||||
@@ -99,14 +99,14 @@ public class BlockIndexer{
|
||||
Item drop;
|
||||
int qx = tile.x / quadrantSize, qy = tile.y / quadrantSize;
|
||||
if(tile.block() == Blocks.air){
|
||||
if((drop = tile.drop()) != null){
|
||||
if((drop = tile.drop()) != null && ores.length > drop.id){
|
||||
//add position of quadrant to list
|
||||
if(ores[drop.id] == null) ores[drop.id] = new IntSeq[quadWidth][quadHeight];
|
||||
if(ores[drop.id][qx][qy] == null) ores[drop.id][qx][qy] = new IntSeq(false, 16);
|
||||
ores[drop.id][qx][qy].add(tile.pos());
|
||||
allOres.increment(drop);
|
||||
}
|
||||
}else if((drop = tile.wallDrop()) != null){
|
||||
}else if((drop = tile.wallDrop()) != null && wallOres.length > drop.id){
|
||||
//add position of quadrant to list
|
||||
if(wallOres[drop.id] == null) wallOres[drop.id] = new IntSeq[quadWidth][quadHeight];
|
||||
if(wallOres[drop.id][qx][qy] == null) wallOres[drop.id][qx][qy] = new IntSeq(false, 16);
|
||||
@@ -242,7 +242,7 @@ public class BlockIndexer{
|
||||
int pos = tile.pos();
|
||||
|
||||
if(tile.block() == Blocks.air){
|
||||
if(drop != null){ //floor
|
||||
if(drop != null && ores.length > drop.id){ //floor
|
||||
if(ores[drop.id] == null) ores[drop.id] = new IntSeq[quadWidth][quadHeight];
|
||||
if(ores[drop.id][qx][qy] == null) ores[drop.id][qx][qy] = new IntSeq(false, 16);
|
||||
if(ores[drop.id][qx][qy].addUnique(pos)){
|
||||
@@ -255,7 +255,7 @@ public class BlockIndexer{
|
||||
if(old == 1) updatePresentOres();
|
||||
}
|
||||
}else{
|
||||
if(wallDrop != null){ //wall
|
||||
if(wallDrop != null && wallOres.length > wallDrop.id){ //wall
|
||||
if(wallOres[wallDrop.id] == null) wallOres[wallDrop.id] = new IntSeq[quadWidth][quadHeight];
|
||||
if(wallOres[wallDrop.id][qx][qy] == null) wallOres[wallDrop.id][qx][qy] = new IntSeq(false, 16);
|
||||
if(wallOres[wallDrop.id][qx][qy].addUnique(pos)){
|
||||
@@ -264,7 +264,7 @@ public class BlockIndexer{
|
||||
}
|
||||
}
|
||||
|
||||
if(drop != null && ores != null && ores[drop.id] != null && ores[drop.id][qx][qy] != null && ores[drop.id][qx][qy].removeValue(pos)){ //floor
|
||||
if(drop != null && ores != null && drop.id < ores.length && ores[drop.id] != null && ores[drop.id][qx][qy] != null && ores[drop.id][qx][qy].removeValue(pos)){ //floor
|
||||
int old = allOres.increment(drop, -1);
|
||||
if(old == 1) updatePresentOres();
|
||||
}
|
||||
@@ -274,7 +274,7 @@ public class BlockIndexer{
|
||||
|
||||
/** @return whether a certain block is anywhere on this map. */
|
||||
public boolean isBlockPresent(Block block){
|
||||
return blocksPresent != null && blocksPresent[block.id];
|
||||
return blocksPresent != null && block.id < blocksPresent.length && blocksPresent[block.id];
|
||||
}
|
||||
|
||||
private void clearFlags(){
|
||||
@@ -454,6 +454,10 @@ public class BlockIndexer{
|
||||
}
|
||||
|
||||
public Building findEnemyTile(Team team, float x, float y, float range, BuildingPriorityf priority, Boolf<Building> pred){
|
||||
return findEnemyTile(team, x, y, range, priority, pred, null);
|
||||
}
|
||||
|
||||
public Building findEnemyTile(Team team, float x, float y, float range, BuildingPriorityf priority, Boolf<Building> pred, @Nullable Team source){
|
||||
Building target = null;
|
||||
float targetDist = 0;
|
||||
|
||||
@@ -461,7 +465,7 @@ public class BlockIndexer{
|
||||
Team enemy = activeTeams.items[i];
|
||||
if(enemy == team || (enemy == Team.derelict && !state.rules.coreCapture)) continue;
|
||||
|
||||
Building candidate = indexer.findTile(enemy, x, y, range, b -> pred.get(b) && b.isDiscovered(team), true);
|
||||
Building candidate = findTile(enemy, x, y, range, b -> pred.get(b) && b.isDiscovered(team), true, source);
|
||||
if(candidate == null) continue;
|
||||
|
||||
//if a block has the same priority, the closer one should be targeted
|
||||
@@ -488,6 +492,10 @@ public class BlockIndexer{
|
||||
}
|
||||
|
||||
public Building findTile(Team team, float x, float y, float range, Boolf<Building> pred, boolean usePriority){
|
||||
return findTile(team, x, y, range, pred, usePriority, null);
|
||||
}
|
||||
|
||||
public Building findTile(Team team, float x, float y, float range, Boolf<Building> pred, boolean usePriority, @Nullable Team source){
|
||||
Building closest = null;
|
||||
float dst = 0;
|
||||
var buildings = team.data().buildingTree;
|
||||
@@ -499,7 +507,7 @@ public class BlockIndexer{
|
||||
for(int i = 0; i < breturnArray.size; i++){
|
||||
var next = breturnArray.items[i];
|
||||
|
||||
if(!pred.get(next) || !next.block.targetable) continue;
|
||||
if(!pred.get(next) || (next.team != source && !next.block.targetable)) continue;
|
||||
|
||||
float bdst = next.dst(x, y) - next.hitSize() / 2f;
|
||||
if(bdst < range && (closest == null ||
|
||||
@@ -517,7 +525,7 @@ public class BlockIndexer{
|
||||
|
||||
/** Find the closest ore block relative to a position. */
|
||||
public Tile findClosestOre(float xp, float yp, Item item){
|
||||
if(ores[item.id] != null){
|
||||
if(item.id < ores.length && ores[item.id] != null){
|
||||
float minDst = 0f;
|
||||
Tile closest = null;
|
||||
for(int qx = 0; qx < quadWidth; qx++){
|
||||
@@ -544,7 +552,7 @@ public class BlockIndexer{
|
||||
/** Find the closest ore wall relative to a position. */
|
||||
public Tile findClosestWallOre(float xp, float yp, Item item){
|
||||
//(stolen from foo's client :))))
|
||||
if(wallOres[item.id] != null){
|
||||
if(item.id < wallOres.length && wallOres[item.id] != null){
|
||||
float minDst = 0f;
|
||||
Tile closest = null;
|
||||
for(int qx = 0; qx < quadWidth; qx++){
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package mindustry.audio;
|
||||
|
||||
import arc.audio.*;
|
||||
import arc.util.*;
|
||||
|
||||
/** In serialization contexts, data assets may not be loaded yet. This provides a way to lazily get music from the asset manager on demand. */
|
||||
public class MusicContainer{
|
||||
public String name = "";
|
||||
|
||||
private @Nullable Music cached;
|
||||
private boolean accessed;
|
||||
|
||||
public MusicContainer(String name){
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public MusicContainer(){
|
||||
|
||||
}
|
||||
|
||||
public Music get(){
|
||||
if(accessed) return cached;
|
||||
accessed = true;
|
||||
|
||||
return cached = SoundControl.findMusic(name);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ public class SoundControl{
|
||||
protected long lastPlayed;
|
||||
protected @Nullable Music current;
|
||||
protected float fade;
|
||||
protected boolean silenced;
|
||||
protected boolean silenced, keepSilent;
|
||||
|
||||
protected boolean wasPlaying;
|
||||
protected AudioFilter filter = new BiquadFilter(){{
|
||||
@@ -50,7 +50,7 @@ public class SoundControl{
|
||||
boolean boss = state.rules.spawns.contains(group -> group.getSpawned(state.wave - 2) > 0 && group.effect == StatusEffects.boss);
|
||||
|
||||
if(boss){
|
||||
playOnce(bossMusic.random(lastRandomPlayed));
|
||||
playOnce(getBossMusic().random(lastRandomPlayed));
|
||||
}else if(Mathf.chance(musicWaveChance)){
|
||||
playRandom();
|
||||
}
|
||||
@@ -159,7 +159,10 @@ public class SoundControl{
|
||||
|
||||
Core.audio.setPaused(Core.audio.soundBus.id, state.isPaused());
|
||||
|
||||
if(state.isMenu()){
|
||||
if(keepSilent){
|
||||
keepSilent = false;
|
||||
stop();
|
||||
}else if(state.isMenu()){
|
||||
silenced = false;
|
||||
if(ui.planet.isShown()){
|
||||
play(ui.planet.state.planet.launchMusic);
|
||||
@@ -175,7 +178,7 @@ public class SoundControl{
|
||||
//this just fades out the last track to make way for ingame music
|
||||
silence();
|
||||
|
||||
if(Core.settings.getBool("alwaysmusic")){
|
||||
if(alwaysPlayMusic()){
|
||||
if(current == null){
|
||||
playRandom();
|
||||
}
|
||||
@@ -191,6 +194,10 @@ public class SoundControl{
|
||||
updateLoops();
|
||||
}
|
||||
|
||||
public void keepSilent(){
|
||||
keepSilent = true;
|
||||
}
|
||||
|
||||
protected void updateLoops(){
|
||||
//clear loops when in menu
|
||||
if(!state.isGame()){
|
||||
@@ -233,17 +240,48 @@ public class SoundControl{
|
||||
});
|
||||
}
|
||||
|
||||
public void playMusic(@Nullable Music music, boolean interrupt){
|
||||
if(interrupt && current != null){
|
||||
current.stop();
|
||||
current = null;
|
||||
}
|
||||
playOnce(music);
|
||||
}
|
||||
|
||||
public boolean isPlaying(){
|
||||
return current != null && current.isPlaying();
|
||||
}
|
||||
|
||||
/** Plays a random track.*/
|
||||
public void playRandom(){
|
||||
if(state.boss() != null){
|
||||
playOnce(bossMusic.random(lastRandomPlayed));
|
||||
playOnce(getBossMusic().random(lastRandomPlayed));
|
||||
}else if(isDark()){
|
||||
playOnce(darkMusic.random(lastRandomPlayed));
|
||||
playOnce(getDarkMusic().random(lastRandomPlayed));
|
||||
}else{
|
||||
playOnce(ambientMusic.random(lastRandomPlayed));
|
||||
playOnce(getAmbientMusic().random(lastRandomPlayed));
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean alwaysPlayMusic(){
|
||||
return state.rules.alwaysPlayMusic || Core.settings.getBool("alwaysmusic") || (state.getPlanet() != null && state.getPlanet().alwaysPlayMusic);
|
||||
}
|
||||
|
||||
protected Seq<Music> getBossMusic(){
|
||||
if(state.rules.darkMusic != null) return state.rules.darkMusic.map(MusicContainer::get).removeAll(m -> m == null);
|
||||
return state.getPlanet() != null && state.getPlanet().darkMusic != null ? state.getPlanet().darkMusic : bossMusic;
|
||||
}
|
||||
|
||||
protected Seq<Music> getAmbientMusic(){
|
||||
if(state.rules.ambientMusic != null) return state.rules.ambientMusic.map(MusicContainer::get).removeAll(m -> m == null);
|
||||
return state.getPlanet() != null && state.getPlanet().ambientMusic != null ? state.getPlanet().ambientMusic : ambientMusic;
|
||||
}
|
||||
|
||||
protected Seq<Music> getDarkMusic(){
|
||||
if(state.rules.darkMusic != null) return state.rules.darkMusic.map(MusicContainer::get).removeAll(m -> m == null);
|
||||
return state.getPlanet() != null && state.getPlanet().darkMusic != null ? state.getPlanet().darkMusic : darkMusic;
|
||||
}
|
||||
|
||||
/** Whether to play dark music.*/
|
||||
protected boolean isDark(){
|
||||
if(player.team().data().hasCore() && player.team().data().core().healthf() < 0.85f){
|
||||
@@ -345,4 +383,14 @@ public class SoundControl{
|
||||
int soundID;
|
||||
float curVolume, totalVolume;
|
||||
}
|
||||
|
||||
public static @Nullable Music findMusic(String name){
|
||||
if(name == null) return null;
|
||||
Music cached = Core.assets.getOrNull(name, Music.class);
|
||||
if(cached == null) cached = Core.assets.getOrNull(name + ".ogg", Music.class);
|
||||
if(cached == null) cached = Core.assets.getOrNull(name + ".mp3", Music.class);
|
||||
if(cached == null) cached = Core.assets.getOrNull("music/" + name + ".ogg", Music.class);
|
||||
if(cached == null) cached = Core.assets.getOrNull("music/" + name + ".mp3", Music.class);
|
||||
return cached;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public class SoundPriority{
|
||||
sameGroup(shootArc, shootPulsar);
|
||||
|
||||
for(var sound : Core.assets.getAll(Sound.class, new Seq<>())){
|
||||
sound.setMinConcurrentInterrupt(Math.min(0.25f, sound.getLength() * 0.5f));
|
||||
sound.setMinConcurrentInterruptFraction(0.25f, 0.5f);
|
||||
}
|
||||
|
||||
mechStepSmall.setMinConcurrentInterrupt(0.5f);
|
||||
|
||||
@@ -719,52 +719,52 @@ public class Blocks{
|
||||
sclMax = 100f;
|
||||
}};
|
||||
|
||||
boulder = new Prop("boulder"){{
|
||||
boulder = new StaticProp("boulder"){{
|
||||
variants = 2;
|
||||
stone.asFloor().decoration = craters.asFloor().decoration = charr.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
snowBoulder = new Prop("snow-boulder"){{
|
||||
snowBoulder = new StaticProp("snow-boulder"){{
|
||||
variants = 2;
|
||||
snow.asFloor().decoration = ice.asFloor().decoration = iceSnow.asFloor().decoration = salt.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
shaleBoulder = new Prop("shale-boulder"){{
|
||||
shaleBoulder = new StaticProp("shale-boulder"){{
|
||||
variants = 2;
|
||||
shale.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
sandBoulder = new Prop("sand-boulder"){{
|
||||
sandBoulder = new StaticProp("sand-boulder"){{
|
||||
variants = 2;
|
||||
sand.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
daciteBoulder = new Prop("dacite-boulder"){{
|
||||
daciteBoulder = new StaticProp("dacite-boulder"){{
|
||||
variants = 2;
|
||||
dacite.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
basaltBoulder = new Prop("basalt-boulder"){{
|
||||
basaltBoulder = new StaticProp("basalt-boulder"){{
|
||||
variants = 2;
|
||||
basalt.asFloor().decoration = hotrock.asFloor().decoration = darksand.asFloor().decoration = magmarock.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
carbonBoulder = new Prop("carbon-boulder"){{
|
||||
carbonBoulder = new StaticProp("carbon-boulder"){{
|
||||
variants = 2;
|
||||
carbonStone.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
ferricBoulder = new Prop("ferric-boulder"){{
|
||||
ferricBoulder = new StaticProp("ferric-boulder"){{
|
||||
variants = 2;
|
||||
ferricStone.asFloor().decoration = ferricCraters.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
beryllicBoulder = new Prop("beryllic-boulder"){{
|
||||
beryllicBoulder = new StaticProp("beryllic-boulder"){{
|
||||
variants = 2;
|
||||
beryllicStone.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
yellowStoneBoulder = new Prop("yellow-stone-boulder"){{
|
||||
yellowStoneBoulder = new StaticProp("yellow-stone-boulder"){{
|
||||
variants = 2;
|
||||
yellowStone.asFloor().decoration = regolith.asFloor().decoration = yellowStonePlates.asFloor().decoration = this;
|
||||
}};
|
||||
@@ -801,22 +801,22 @@ public class Blocks{
|
||||
shadowOffset = -2.5f;
|
||||
}};
|
||||
|
||||
crystallineBoulder = new Prop("crystalline-boulder"){{
|
||||
crystallineBoulder = new StaticProp("crystalline-boulder"){{
|
||||
variants = 2;
|
||||
crystallineStone.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
redIceBoulder = new Prop("red-ice-boulder"){{
|
||||
redIceBoulder = new StaticProp("red-ice-boulder"){{
|
||||
variants = 3;
|
||||
redIce.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
rhyoliteBoulder = new Prop("rhyolite-boulder"){{
|
||||
rhyoliteBoulder = new StaticProp("rhyolite-boulder"){{
|
||||
variants = 3;
|
||||
rhyolite.asFloor().decoration = roughRhyolite.asFloor().decoration = this;
|
||||
}};
|
||||
|
||||
redStoneBoulder = new Prop("red-stone-boulder"){{
|
||||
redStoneBoulder = new StaticProp("red-stone-boulder"){{
|
||||
variants = 4;
|
||||
denseRedStone.asFloor().decoration = redStone.asFloor().decoration = this;
|
||||
}};
|
||||
@@ -2091,7 +2091,7 @@ public class Blocks{
|
||||
requirements(Category.distribution, with(Items.copper, 1, Items.lead, 1, Items.titanium, 1));
|
||||
health = 65;
|
||||
speed = 0.08f;
|
||||
displayedSpeed = 11f;
|
||||
displayedSpeed = 10f;
|
||||
}};
|
||||
|
||||
plastaniumConveyor = new StackConveyor("plastanium-conveyor"){{
|
||||
|
||||
@@ -74,7 +74,7 @@ public class Planets{
|
||||
ruleSetter = r -> {
|
||||
r.waveTeam = Team.malis;
|
||||
r.placeRangeCheck = false;
|
||||
r.showSpawns = true;
|
||||
r.hideSpawns = false;
|
||||
r.fog = true;
|
||||
r.staticFog = true;
|
||||
r.lighting = false;
|
||||
@@ -82,7 +82,7 @@ public class Planets{
|
||||
r.onlyDepositCore = true;
|
||||
};
|
||||
campaignRuleDefaults.fog = true;
|
||||
campaignRuleDefaults.showSpawns = true;
|
||||
campaignRuleDefaults.hideSpawns = false;
|
||||
campaignRuleDefaults.rtsAI = true;
|
||||
|
||||
unlockedOnLand.add(Blocks.coreBastion);
|
||||
@@ -141,7 +141,7 @@ public class Planets{
|
||||
ruleSetter = r -> {
|
||||
r.waveTeam = Team.crux;
|
||||
r.placeRangeCheck = false;
|
||||
r.showSpawns = false;
|
||||
r.hideSpawns = true;
|
||||
r.coreDestroyClear = true;
|
||||
};
|
||||
showRtsAIRule = true;
|
||||
|
||||
@@ -85,7 +85,7 @@ public class TechTree{
|
||||
/** For roots only. If true, this needs to be unlocked before it is selectable in the research dialog. Does not apply when you are on the planet itself. */
|
||||
public boolean requiresUnlock = false;
|
||||
/** Requirement node. */
|
||||
public @Nullable TechNode parent;
|
||||
public @Nullable TechNode parent, rootNode;
|
||||
/** Multipliers for research costs on a per-item basis. Inherits from parent. */
|
||||
public @Nullable ObjectFloatMap<Item> researchCostMultipliers;
|
||||
/** Content to be researched. */
|
||||
@@ -104,6 +104,7 @@ public class TechTree{
|
||||
public TechNode(@Nullable TechNode parent, UnlockableContent content, ItemStack[] requirements){
|
||||
if(parent != null){
|
||||
parent.children.add(this);
|
||||
rootNode = parent.rootNode == null ? parent : parent.rootNode;
|
||||
planet = parent.planet;
|
||||
researchCostMultipliers = parent.researchCostMultipliers;
|
||||
}else if(researchCostMultipliers == null){
|
||||
@@ -194,7 +195,9 @@ public class TechTree{
|
||||
|
||||
//save finished requirements by item type
|
||||
for(ItemStack stack : finishedRequirements){
|
||||
Core.settings.put("req-" + content.name + "-" + stack.item.name, stack.amount);
|
||||
String key = "req-" + content.name + "-" + stack.item.name;
|
||||
//don't write a bunch of zeroes to the settings
|
||||
if(Core.settings.getInt(key, 0) != stack.amount) Core.settings.put(key, stack.amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ public class ContentLoader{
|
||||
if(list.size > 0 && list.peek() == content){
|
||||
list.pop();
|
||||
}
|
||||
throw new IllegalArgumentException("Two content objects cannot have the same name! (issue: '" + content.name + "')");
|
||||
throw new IllegalArgumentException("Two content objects defined with the same name: '" + content.name + "'");
|
||||
}
|
||||
if(currentMod != null){
|
||||
content.minfo.mod = currentMod;
|
||||
@@ -266,6 +266,19 @@ public class ContentLoader{
|
||||
return (ObjectMap<String, T>)contentNameMap[type.ordinal()];
|
||||
}
|
||||
|
||||
/** Only use this for modded/data patcher content. */
|
||||
public void remove(@Nullable Content content){
|
||||
if(content == null) return;
|
||||
var type = content.getContentType();
|
||||
getBy(type).remove(content);
|
||||
if(content instanceof MappableContent m){
|
||||
getNamesBy(type).remove(m.name);
|
||||
if(nameMap.get(m.name) == m) nameMap.remove(m.name);
|
||||
}
|
||||
|
||||
content.removeContent();
|
||||
}
|
||||
|
||||
//utility methods, just makes things a bit shorter
|
||||
|
||||
public Seq<Block> blocks(){
|
||||
|
||||
@@ -8,6 +8,7 @@ import mindustry.gen.*;
|
||||
import mindustry.maps.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
@@ -43,8 +44,10 @@ public class GameState{
|
||||
public Attributes envAttrs = new Attributes();
|
||||
/** Team data. Gets reset every new game. */
|
||||
public Teams teams = new Teams();
|
||||
/** Runs liquids in a new thread. */
|
||||
public LiquidManager liquids = new LiquidManager();
|
||||
/** Handles JSON edits of game content. */
|
||||
public DataPatcher patcher = new DataPatcher();
|
||||
public DataManager data = new DataManager();
|
||||
/** Number of enemies in the game; only used clientside in servers. */
|
||||
public int enemies;
|
||||
/** Map being playtested (not edited!) */
|
||||
|
||||
@@ -297,18 +297,19 @@ public class Logic implements ApplicationListener{
|
||||
}
|
||||
|
||||
public void reset(){
|
||||
State prev = state.getState();
|
||||
state.patcher.unapply();
|
||||
//recreate gamestate - sets state to menu
|
||||
state = new GameState();
|
||||
//fire change event, since it was technically changed
|
||||
Events.fire(new StateChangeEvent(prev, State.menu));
|
||||
|
||||
Groups.clear();
|
||||
Time.clear();
|
||||
Events.fire(new ResetEvent());
|
||||
world.tiles = new Tiles(0, 0);
|
||||
|
||||
state.liquids.stop();
|
||||
state.data.unload();
|
||||
State prev = state.getState();
|
||||
//recreate gamestate - sets state to menu
|
||||
state = new GameState();
|
||||
//fire change event, since it was technically changed
|
||||
Events.fire(new StateChangeEvent(prev, State.menu));
|
||||
|
||||
Core.settings.manualSave();
|
||||
}
|
||||
|
||||
@@ -559,6 +560,8 @@ public class Logic implements ApplicationListener{
|
||||
runWave();
|
||||
}
|
||||
|
||||
state.liquids.checkUpdate();
|
||||
|
||||
//apply weather attributes
|
||||
state.envAttrs.clear();
|
||||
state.envAttrs.add(state.rules.attributes);
|
||||
|
||||
@@ -13,6 +13,7 @@ import arc.util.serialization.*;
|
||||
import arc.util.serialization.JsonValue.*;
|
||||
import mindustry.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.audio.*;
|
||||
import mindustry.core.GameState.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
@@ -89,7 +90,7 @@ public class NetClient implements ApplicationListener{
|
||||
}
|
||||
|
||||
ui.loadfrag.hide();
|
||||
ui.loadfrag.show("@connecting.data");
|
||||
ui.loadfrag.show("@connecting.establish");
|
||||
|
||||
ui.loadfrag.setButton(() -> {
|
||||
ui.loadfrag.hide();
|
||||
@@ -146,11 +147,53 @@ public class NetClient implements ApplicationListener{
|
||||
});
|
||||
|
||||
net.handleClient(WorldStream.class, data -> {
|
||||
Log.info("Received world data: @ bytes.", data.stream.available());
|
||||
Log.info("Received world data: @", Strings.formatByteCount(data.stream.available()));
|
||||
NetworkIO.loadWorld(new InflaterInputStream(data.stream));
|
||||
|
||||
finishConnecting();
|
||||
});
|
||||
|
||||
net.handleClient(AssetRequirementStream.class, data -> {
|
||||
Seq<String> required = NetworkIO.readRequiredAssets(new InflaterInputStream(data.stream));
|
||||
ShortSeq missing = new ShortSeq();
|
||||
for(int i = 0; i < required.size; i++){
|
||||
if(!assetCache.has(required.get(i))){
|
||||
missing.add((short)i);
|
||||
}
|
||||
}
|
||||
Log.info("Requesting @ asset(s) from the server.", missing.size);
|
||||
Call.requestAssets(missing.toArray());
|
||||
});
|
||||
|
||||
net.handleClient(StreamBegin.class, data -> {
|
||||
boolean isWorld = data.type == Net.packetIdWorldStream, isAssets = data.type == Net.packetIdAssetStream;
|
||||
|
||||
if(isWorld || isAssets){
|
||||
ui.loadfrag.showProgressBar();
|
||||
ui.loadfrag.setProgress(0f);
|
||||
ui.loadfrag.snapProgress();
|
||||
ui.loadfrag.setText(Core.bundle.format(isWorld ? "receiving.world" : "receiving.assets", Strings.formatByteCount(data.total)));
|
||||
}
|
||||
|
||||
if(isAssets){
|
||||
//make this new thread block as it loads the assets
|
||||
Threads.daemon(() -> {
|
||||
Log.info("Receiving asset data: @", Strings.formatByteCount(data.total));
|
||||
|
||||
try{
|
||||
NetworkIO.loadAssets(data.incrementalStream);
|
||||
|
||||
//after receiving assets, tell the server that the client is ready to handle the world
|
||||
Core.app.post(Call::requestWorld);
|
||||
}catch(Exception e){
|
||||
Core.app.post(() -> {
|
||||
ui.showException("@receiving.assets.fail", e);
|
||||
disconnectQuietly();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void addPacketHandler(String type, Cons<String> handler){
|
||||
@@ -199,6 +242,15 @@ public class NetClient implements ApplicationListener{
|
||||
clientPacketReliable(type, contents);
|
||||
}
|
||||
|
||||
@Remote(variants = Variant.both)
|
||||
public static void playMusic(String musicName, boolean interrupt){
|
||||
if(musicName == null || headless) return;
|
||||
|
||||
//play null = stop music
|
||||
Music music = SoundControl.findMusic(musicName);
|
||||
control.sound.playMusic(music, interrupt);
|
||||
}
|
||||
|
||||
@Remote(variants = Variant.both, unreliable = true, called = Loc.server)
|
||||
public static void sound(Sound sound, float volume, float pitch, float pan){
|
||||
if(sound == null || headless) return;
|
||||
@@ -418,7 +470,7 @@ public class NetClient implements ApplicationListener{
|
||||
|
||||
net.setClientLoaded(false);
|
||||
|
||||
ui.loadfrag.show("@connecting.data");
|
||||
ui.loadfrag.show("@connecting.establish");
|
||||
|
||||
ui.loadfrag.setButton(() -> {
|
||||
ui.loadfrag.hide();
|
||||
|
||||
@@ -21,6 +21,7 @@ import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.io.TypeIO.*;
|
||||
import mindustry.logic.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.net.Administration.*;
|
||||
import mindustry.net.Packets.*;
|
||||
@@ -30,7 +31,6 @@ import mindustry.world.meta.*;
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.nio.*;
|
||||
import java.util.zip.*;
|
||||
|
||||
import static arc.util.Log.*;
|
||||
import static mindustry.Vars.*;
|
||||
@@ -306,7 +306,7 @@ public class NetServer implements ApplicationListener{
|
||||
//playing in pvp mode automatically assigns players to teams
|
||||
player.team(assignTeam(player));
|
||||
|
||||
sendWorldData(player);
|
||||
sendWorldAndAssets(player);
|
||||
|
||||
platform.updateRPC();
|
||||
|
||||
@@ -316,6 +316,17 @@ public class NetServer implements ApplicationListener{
|
||||
registerCommands();
|
||||
}
|
||||
|
||||
public void sendWorldAndAssets(Player player){
|
||||
if(state.data.hasExternalAssets()){
|
||||
player.con.determiningAssets = true;
|
||||
player.con.receivingAssets = false;
|
||||
player.con.hasConnected = false;
|
||||
sendAssetRequirements(player);
|
||||
}else{
|
||||
sendWorldData(player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(){
|
||||
mods.eachClass(mod -> mod.registerClientCommands(clientCommands));
|
||||
@@ -513,15 +524,21 @@ public class NetServer implements ApplicationListener{
|
||||
return assigner.assign(current, players);
|
||||
}
|
||||
|
||||
public void sendWorldData(Player player){
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DeflaterOutputStream def = new FastDeflaterOutputStream(stream);
|
||||
NetworkIO.writeWorld(player, def);
|
||||
WorldStream data = new WorldStream();
|
||||
data.stream = new ByteArrayInputStream(stream.toByteArray());
|
||||
player.con.sendStream(data);
|
||||
public void sendAssetRequirements(Player player){
|
||||
var assets = state.data.getAllExternalAssets();
|
||||
mainExecutor.submit(() -> {
|
||||
var stream = new ByteArrayOutputStream();
|
||||
NetworkIO.writeRequiredAssets(new FastDeflaterOutputStream(stream), assets);
|
||||
player.con.sendStreamAsync(new AssetRequirementStream(), stream);
|
||||
});
|
||||
}
|
||||
|
||||
debug("Packed @ bytes of world data to @ (@ / @)", stream.size(), player.name, player.con.address, player.uuid());
|
||||
public void sendWorldData(Player player){
|
||||
var stream = new ByteArrayOutputStream();
|
||||
NetworkIO.writeWorld(player, new FastDeflaterOutputStream(stream));
|
||||
player.con.sendStream(new WorldStream(), stream);
|
||||
|
||||
debug("Packed @ of world data to @ (@ / @)", Strings.formatByteCount(stream.size()), player.name, player.con.address, player.uuid());
|
||||
}
|
||||
|
||||
public void addPacketHandler(String type, Cons2<Player, String> handler){
|
||||
@@ -889,6 +906,48 @@ public class NetServer implements ApplicationListener{
|
||||
}
|
||||
}
|
||||
|
||||
@Remote(targets = Loc.client, priority = PacketPriority.high)
|
||||
public static void requestWorld(Player player){
|
||||
if(!player.con.hasBegunConnecting || player.con.determiningAssets || !player.con.receivingAssets || player.con.hasConnected) return;
|
||||
|
||||
player.con.receivingAssets = false;
|
||||
netServer.sendWorldData(player);
|
||||
}
|
||||
|
||||
@Remote(targets = Loc.client, priority = PacketPriority.high)
|
||||
public static void requestAssets(Player player, short[] ids){
|
||||
if(!player.con.hasBegunConnecting || !player.con.determiningAssets || player.con.receivingAssets || player.con.hasConnected) return;
|
||||
|
||||
player.con.determiningAssets = false;
|
||||
player.con.receivingAssets = true;
|
||||
|
||||
if(ids.length == 0){ //no assets required, all cached
|
||||
player.con.receivingAssets = false;
|
||||
netServer.sendWorldData(player);
|
||||
}else{
|
||||
Seq<DataAsset> res = new Seq<>();
|
||||
Seq<DataAsset> allAssets = state.data.getAllExternalAssets();
|
||||
for(short id : ids){
|
||||
if(id >= allAssets.size || id < 0) continue;
|
||||
res.add(allAssets.get(id));
|
||||
}
|
||||
|
||||
//packing the data and reading it from disk can be async; it shouldn't need to block the main thread.
|
||||
mainExecutor.submit(() -> {
|
||||
try{
|
||||
var stream = new ByteArrayOutputStream();
|
||||
NetworkIO.writeAssets(stream, res);
|
||||
|
||||
debug("Packed @ of asset data to @ (@ / @)", Strings.formatByteCount(stream.size()), player.name, player.con.address, player.uuid());
|
||||
|
||||
player.con.sendStreamAsync(new AssetStream(), stream);
|
||||
}catch(Exception e){
|
||||
Log.err(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Remote(targets = Loc.client, priority = PacketPriority.high)
|
||||
public static void connectConfirm(Player player){
|
||||
if(player.con.kicked) return;
|
||||
|
||||
@@ -13,8 +13,8 @@ public enum PerfCounter{
|
||||
|
||||
public static final PerfCounter[] all = values();
|
||||
|
||||
static final int meanWindow = 30;
|
||||
static final int refreshTimeMillis = 500;
|
||||
static final int meanWindow = 120;
|
||||
static final int refreshTimeMillis = 100;
|
||||
|
||||
private long valueRefreshTime;
|
||||
private float refreshValue;
|
||||
|
||||
@@ -2,22 +2,18 @@ package mindustry.core;
|
||||
|
||||
import arc.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
import arc.math.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.serialization.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.net.*;
|
||||
import mindustry.net.Net.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
import mindustry.ui.FileChooser.*;
|
||||
import rhino.*;
|
||||
|
||||
import java.net.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public interface Platform{
|
||||
|
||||
/** Dynamically creates a class loader for a jar file. This loader must be child-first. */
|
||||
@@ -106,68 +102,9 @@ public interface Platform{
|
||||
default void shareFile(Fi file){
|
||||
}
|
||||
|
||||
default void export(String name, String extension, FileWriter writer){
|
||||
if(!ios){
|
||||
platform.showFileChooser(false, extension, file -> {
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
writer.write(file);
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
Log.err(e);
|
||||
}
|
||||
});
|
||||
});
|
||||
}else{
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
Fi result = Core.files.local(name + "." + extension);
|
||||
writer.write(result);
|
||||
platform.shareFile(result);
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
Log.err(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a file chooser.
|
||||
* @param cons Selection listener
|
||||
* @param open Whether to open or save files
|
||||
* @param extension File extension to filter
|
||||
* @param title The title of the native dialog
|
||||
*/
|
||||
default void showFileChooser(boolean open, String title, String extension, Cons<Fi> cons){
|
||||
defaultFileDialog(open, title, extension, cons);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a file chooser for multiple file types.
|
||||
* @param cons Selection listener
|
||||
* @param extensions File extensions to filter
|
||||
*/
|
||||
default void showMultiFileChooser(Cons<Fi> cons, String... extensions){
|
||||
defaultMultiFileChooser(cons, extensions);
|
||||
}
|
||||
|
||||
default void showFileChooser(boolean open, String extension, Cons<Fi> cons){
|
||||
showFileChooser(open, open ? "@open": "@save", extension, cons);
|
||||
}
|
||||
|
||||
static void defaultFileDialog(boolean open, String title, String extension, Cons<Fi> cons){
|
||||
new FileChooser(title, file -> file.extEquals(extension), open, file -> {
|
||||
if(!open){
|
||||
cons.get(file.parent().child(file.nameWithoutExtension() + "." + extension));
|
||||
}else{
|
||||
cons.get(file);
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
|
||||
static void defaultMultiFileChooser(Cons<Fi> cons, String... extensions){
|
||||
new FileChooser("@open", file -> Structs.contains(extensions, file.extension().toLowerCase()), true, cons).show();
|
||||
/** Do not call directly; use the builder pattern in {@link mindustry.ui.FileChooser}. */
|
||||
default void showFileChooser(FileChooserParams params){
|
||||
throw new IllegalArgumentException("Not implemented on this platform!");
|
||||
}
|
||||
|
||||
/** Hide the app. Android only. */
|
||||
|
||||
@@ -198,6 +198,8 @@ public class Renderer implements ApplicationListener{
|
||||
camera.width = graphics.getWidth() / camerascale;
|
||||
camera.height = graphics.getHeight() / camerascale;
|
||||
|
||||
Lod.update();
|
||||
|
||||
if(state.isMenu()){
|
||||
landTime = 0f;
|
||||
graphics.clear(Color.black);
|
||||
@@ -580,38 +582,47 @@ public class Renderer implements ApplicationListener{
|
||||
return;
|
||||
}
|
||||
|
||||
FrameBuffer buffer = new FrameBuffer(w, h);
|
||||
try{
|
||||
Lod.disable = true;
|
||||
FrameBuffer buffer = new FrameBuffer(w, h);
|
||||
|
||||
drawWeather = false;
|
||||
float vpW = camera.width, vpH = camera.height, px = camera.position.x, py = camera.position.y;
|
||||
disableUI = true;
|
||||
camera.width = w;
|
||||
camera.height = h;
|
||||
camera.position.x = w / 2f + tilesize / 2f;
|
||||
camera.position.y = h / 2f + tilesize / 2f;
|
||||
buffer.begin(Color.clear);
|
||||
draw();
|
||||
Draw.flush();
|
||||
byte[] lines = ScreenUtils.getFrameBufferPixels(0, 0, w, h, true);
|
||||
buffer.end();
|
||||
disableUI = false;
|
||||
camera.width = vpW;
|
||||
camera.height = vpH;
|
||||
camera.position.set(px, py);
|
||||
drawWeather = true;
|
||||
buffer.dispose();
|
||||
drawWeather = false;
|
||||
float vpW = camera.width, vpH = camera.height, px = camera.position.x, py = camera.position.y;
|
||||
disableUI = true;
|
||||
camera.width = w;
|
||||
camera.height = h;
|
||||
camera.position.x = w / 2f + tilesize / 2f;
|
||||
camera.position.y = h / 2f + tilesize / 2f;
|
||||
buffer.begin(Color.clear);
|
||||
draw();
|
||||
Draw.flush();
|
||||
byte[] lines = ScreenUtils.getFrameBufferPixels(0, 0, w, h, true);
|
||||
buffer.end();
|
||||
disableUI = false;
|
||||
camera.width = vpW;
|
||||
camera.height = vpH;
|
||||
camera.position.set(px, py);
|
||||
drawWeather = true;
|
||||
buffer.dispose();
|
||||
|
||||
mainExecutor.submit(() -> {
|
||||
for(int i = 0; i < lines.length; i += 4){
|
||||
lines[i + 3] = (byte)255;
|
||||
}
|
||||
Pixmap fullPixmap = new Pixmap(w, h);
|
||||
Buffers.copy(lines, 0, fullPixmap.pixels, lines.length);
|
||||
Fi file = screenshotDirectory.child("screenshot-" + Time.millis() + ".png");
|
||||
PixmapIO.writePng(file, fullPixmap);
|
||||
fullPixmap.dispose();
|
||||
app.post(() -> ui.showInfoFade(bundle.format("screenshot", file.toString())));
|
||||
});
|
||||
}catch(Throwable e){
|
||||
Log.err(e);
|
||||
Vars.ui.showException("@screenshot.error", e);
|
||||
}finally{
|
||||
Lod.disable = false;
|
||||
}
|
||||
|
||||
Threads.thread(() -> {
|
||||
for(int i = 0; i < lines.length; i += 4){
|
||||
lines[i + 3] = (byte)255;
|
||||
}
|
||||
Pixmap fullPixmap = new Pixmap(w, h);
|
||||
Buffers.copy(lines, 0, fullPixmap.pixels, lines.length);
|
||||
Fi file = screenshotDirectory.child("screenshot-" + Time.millis() + ".png");
|
||||
PixmapIO.writePng(file, fullPixmap);
|
||||
fullPixmap.dispose();
|
||||
app.post(() -> ui.showInfoFade(bundle.format("screenshot", file.toString())));
|
||||
});
|
||||
}
|
||||
|
||||
public static class EnvRenderer{
|
||||
|
||||
@@ -130,7 +130,7 @@ public class UI implements ApplicationListener, Loadable{
|
||||
Dialog.setHideAction(() -> sequence(fadeOut(0.1f)));
|
||||
|
||||
Tooltips.getInstance().animations = false;
|
||||
Tooltips.getInstance().textProvider = text -> new Tooltip(t -> t.background(Styles.black6).margin(4f).add(text));
|
||||
Tooltips.getInstance().textProvider = text -> new Tooltip(t -> t.background(Styles.black8).margin(4f).add(text));
|
||||
if(mobile){
|
||||
Tooltips.getInstance().offsetY += Scl.scl(60f);
|
||||
}
|
||||
@@ -717,7 +717,12 @@ public class UI implements ApplicationListener, Loadable{
|
||||
/** Shows a menu that hides when another followUp-menu is shown or when nothing is selected.
|
||||
* @see UI#showMenu(String, String, String[][], Intc) */
|
||||
public void showFollowUpMenu(int menuId, String title, String message, String[][] options, Intc callback) {
|
||||
Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> callback.get(option));
|
||||
Dialog dialog = newMenuDialog(title, message, options, (option, myself) -> {
|
||||
callback.get(option);
|
||||
if(!state.isGame()){
|
||||
myself.hide();
|
||||
}
|
||||
});
|
||||
dialog.closeOnBack(() -> {
|
||||
followUpMenus.remove(menuId);
|
||||
callback.get(-1);
|
||||
|
||||
@@ -299,7 +299,6 @@ public class World{
|
||||
private void setSectorRules(Sector sector, boolean saveInfo){
|
||||
state.map = new Map(StringMap.of("name", sector.preset == null ? sector.planet.localizedName + "; Sector " + sector.id : sector.preset.localizedName));
|
||||
state.rules.sector = sector;
|
||||
state.rules.weather.clear();
|
||||
|
||||
sector.planet.generator.addWeather(sector, state.rules);
|
||||
|
||||
|
||||
@@ -3,8 +3,10 @@ package mindustry.ctype;
|
||||
import arc.files.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.mod.Mods.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.mod.data.*;
|
||||
|
||||
/** Base class for a content type that is loaded in {@link mindustry.core.ContentLoader}. */
|
||||
@NoPatch
|
||||
@@ -12,6 +14,8 @@ public abstract class Content implements Comparable<Content>{
|
||||
public short id;
|
||||
/** Info on which mod this content was loaded from. */
|
||||
public ModContentInfo minfo = new ModContentInfo();
|
||||
/** If true, this content is invalid (added in a data patch and then removed). */
|
||||
public boolean removed;
|
||||
|
||||
public Content(){
|
||||
this.id = (short)Vars.content.getBy(getContentType()).size;
|
||||
@@ -24,6 +28,10 @@ public abstract class Content implements Comparable<Content>{
|
||||
*/
|
||||
public abstract ContentType getContentType();
|
||||
|
||||
/** Called when this content is removed in a data patch. */
|
||||
@CallSuper
|
||||
public void removeContent(){}
|
||||
|
||||
/** Called after all content and modules are created. Do not use to load regions or texture data! */
|
||||
public void init(){}
|
||||
|
||||
@@ -76,5 +84,7 @@ public abstract class Content implements Comparable<Content>{
|
||||
public @Nullable String error;
|
||||
/** Base throwable that caused the error. */
|
||||
public @Nullable Throwable baseError;
|
||||
/** If this was loaded as part of a save, this is the associated content asset. Null for mods. */
|
||||
public @Nullable ContentAsset asset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,30 +8,37 @@ import mindustry.world.*;
|
||||
|
||||
/** Do not rearrange, ever! */
|
||||
public enum ContentType{
|
||||
item(Item.class),
|
||||
block(Block.class),
|
||||
mech_UNUSED(null),
|
||||
bullet(BulletType.class),
|
||||
liquid(Liquid.class),
|
||||
status(StatusEffect.class),
|
||||
unit(UnitType.class),
|
||||
weather(Weather.class),
|
||||
effect_UNUSED(null),
|
||||
sector(SectorPreset.class),
|
||||
loadout_UNUSED(null),
|
||||
typeid_UNUSED(null),
|
||||
error(null),
|
||||
planet(Planet.class),
|
||||
ammo_UNUSED(null),
|
||||
team(TeamEntry.class),
|
||||
unitCommand(UnitCommand.class),
|
||||
unitStance(UnitStance.class);
|
||||
item("items", Item.class),
|
||||
block("blocks", Block.class),
|
||||
mech_UNUSED,
|
||||
bullet("bullets", BulletType.class),
|
||||
liquid("liquids", Liquid.class),
|
||||
status("statuses", StatusEffect.class),
|
||||
unit("units", UnitType.class),
|
||||
weather("weather", Weather.class),
|
||||
effect_UNUSED,
|
||||
sector("sectors", SectorPreset.class),
|
||||
loadout_UNUSED,
|
||||
typeid_UNUSED,
|
||||
error,
|
||||
planet("planets", Planet.class),
|
||||
ammo_UNUSED(),
|
||||
team("teams", TeamEntry.class),
|
||||
unitCommand("unitCommands", UnitCommand.class),
|
||||
unitStance("unitStances", UnitStance.class);
|
||||
|
||||
public static final ContentType[] all = values();
|
||||
|
||||
public final @Nullable Class<? extends Content> contentClass;
|
||||
public final String folderName;
|
||||
|
||||
ContentType(Class<? extends Content> contentClass){
|
||||
ContentType(){
|
||||
this.contentClass = null;
|
||||
this.folderName = "unused";
|
||||
}
|
||||
|
||||
ContentType(String folderName, Class<? extends Content> contentClass){
|
||||
this.contentClass = contentClass;
|
||||
this.folderName = folderName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ public abstract class UnlockableContent extends MappableContent{
|
||||
if(!makeNew || !packer.has(name + "-outline")){
|
||||
String regName = name + (makeNew ? "-outline" : "");
|
||||
if(packer.registerOutlined(regName)){
|
||||
PixmapRegion base = Core.atlas.getPixmap(region);
|
||||
PixmapRegion base = packer.get(region);
|
||||
var result = Pixmaps.outline(base, outlineColor, outlineRadius);
|
||||
Drawf.checkBleed(result);
|
||||
packer.add(page, regName, result);
|
||||
@@ -185,7 +185,7 @@ public abstract class UnlockableContent extends MappableContent{
|
||||
|
||||
protected void makeOutline(MultiPacker packer, TextureRegion region, String name, Color outlineColor, int outlineRadius){
|
||||
if(region.found() && packer.registerOutlined(name)){
|
||||
PixmapRegion base = Core.atlas.getPixmap(region);
|
||||
PixmapRegion base = packer.get(region);
|
||||
var result = Pixmaps.outline(base, outlineColor, outlineRadius);
|
||||
Drawf.checkBleed(result);
|
||||
packer.add(PageType.main, name, result);
|
||||
|
||||
@@ -246,7 +246,7 @@ public class EditorRenderer implements Disposable{
|
||||
tmpTiles.clear();
|
||||
|
||||
if(!cache.isEmpty()){
|
||||
cache.build(renderer.blocks.floor.getIndexData());
|
||||
cache.build(SpriteIndices.get());
|
||||
chunks[cx][cy] = cache;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
t.button("@editor.import", Icon.download, () -> createDialog("@editor.import",
|
||||
"@editor.importmap", "@editor.importmap.description", Icon.download, (Runnable)loadDialog::show,
|
||||
"@editor.importfile", "@editor.importfile.description", Icon.file, (Runnable)() ->
|
||||
platform.showFileChooser(true, mapExtension, file -> ui.loadAnd(() -> {
|
||||
FileChooser.open(mapExtension).submit(file -> ui.loadAnd(() -> {
|
||||
maps.tryCatchMapError(() -> {
|
||||
if(MapIO.isImage(file)){
|
||||
ui.showInfo("@editor.errorimage");
|
||||
@@ -105,7 +105,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
})),
|
||||
|
||||
"@editor.importimage", "@editor.importimage.description", Icon.fileImage, (Runnable)() ->
|
||||
platform.showFileChooser(true, "png", file ->
|
||||
FileChooser.open("png").submit(file ->
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
Pixmap pixmap = new Pixmap(file);
|
||||
@@ -124,9 +124,9 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
|
||||
t.button("@editor.export", Icon.upload, () -> createDialog("@editor.export",
|
||||
"@editor.exportfile", "@editor.exportfile.description", Icon.file,
|
||||
(Runnable)() -> platform.export(editor.tags.get("name", "unknown"), mapExtension, file -> MapIO.writeMap(file, editor.createMap(file))),
|
||||
(Runnable)() -> FileChooser.export(editor.tags.get("name", "unknown"), mapExtension, file -> MapIO.writeMap(file, editor.createMap(file))),
|
||||
"@editor.exportimage", "@editor.exportimage.description", Icon.fileImage,
|
||||
(Runnable)() -> platform.export(editor.tags.get("name", "unknown"), "png", file -> {
|
||||
(Runnable)() -> FileChooser.export(editor.tags.get("name", "unknown"), "png", file -> {
|
||||
Pixmap out = MapIO.writeImage(editor.tiles());
|
||||
file.writePng(out);
|
||||
out.dispose();
|
||||
@@ -831,6 +831,10 @@ public class MapEditorDialog extends Dialog implements Disposable{
|
||||
rebuildBlockSelection("");
|
||||
}
|
||||
|
||||
public void rebuildBlockSelection(){
|
||||
rebuildBlockSelection("");
|
||||
}
|
||||
|
||||
private void rebuildBlockSelection(String searchText){
|
||||
blockSelection.clear();
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package mindustry.editor;
|
||||
import arc.scene.ui.*;
|
||||
import arc.struct.*;
|
||||
import mindustry.*;
|
||||
import mindustry.editor.data.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.io.*;
|
||||
@@ -20,7 +21,7 @@ public class MapInfoDialog extends BaseDialog{
|
||||
private MapObjectivesDialog objectives = new MapObjectivesDialog();
|
||||
private MapLocalesDialog locales = new MapLocalesDialog();
|
||||
private MapProcessorsDialog processors = new MapProcessorsDialog();
|
||||
private MapPatchesDialog patches = new MapPatchesDialog();
|
||||
private MapAssetsDialog patches = new MapAssetsDialog();
|
||||
|
||||
public MapInfoDialog(){
|
||||
super("@editor.mapinfo");
|
||||
@@ -117,7 +118,7 @@ public class MapInfoDialog extends BaseDialog{
|
||||
|
||||
r.row();
|
||||
|
||||
r.button("@editor.patches", Icon.file, style, () -> {
|
||||
r.button("@patches", Icon.file, style, () -> {
|
||||
hide();
|
||||
patches.show();
|
||||
}).marginLeft(10f);
|
||||
|
||||
@@ -486,8 +486,8 @@ public class MapObjectivesDialog extends BaseDialog{
|
||||
buttons.defaults().size(160f, 64f).pad(2f);
|
||||
buttons.button("@back", Icon.left, MapObjectivesDialog.this::hide);
|
||||
buttons.button("@add", Icon.add, () -> getProvider(MapObjective.class).get(new TypeInfo(MapObjective.class), canvas::query));
|
||||
buttons.button("@waves.edit", Icon.edit, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@waves.edit");
|
||||
buttons.button("@edit.menu", Icon.edit, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@edit.menu");
|
||||
dialog.addCloseButton();
|
||||
dialog.setFillParent(false);
|
||||
dialog.cont.table(Tex.button, t -> {
|
||||
|
||||
@@ -1,163 +0,0 @@
|
||||
package mindustry.editor;
|
||||
|
||||
import arc.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.serialization.*;
|
||||
import mindustry.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapPatchesDialog extends BaseDialog{
|
||||
private Table list;
|
||||
|
||||
public MapPatchesDialog(){
|
||||
super("@editor.patches");
|
||||
|
||||
shown(this::setup);
|
||||
|
||||
addCloseButton();
|
||||
buttons.button("@editor.patches.guide", Icon.link, () -> Core.app.openURI(patchesGuideURL)).size(200, 64f);
|
||||
|
||||
buttons.button("@add", Icon.add, () -> showImport(this::addPatch)).size(200f, 64f);
|
||||
|
||||
cont.top();
|
||||
getCell(cont).grow();
|
||||
|
||||
cont.pane(t -> list = t);
|
||||
}
|
||||
|
||||
private void setup(){
|
||||
list.clearChildren();
|
||||
var patches = state.patcher.patches;
|
||||
|
||||
if(patches.isEmpty()){
|
||||
list.add("@editor.patches.none");
|
||||
}else{
|
||||
Table t = list;
|
||||
|
||||
t.defaults().pad(4f);
|
||||
float h = 50f;
|
||||
for(var patch : patches){
|
||||
int fields = countFields(patch.json);
|
||||
|
||||
if(patch.warnings.size > 0){
|
||||
t.button(Icon.warning, Styles.graySquarei, iconMed, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@editor.patches.errors");
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
|
||||
for(var warning : patch.warnings){
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(warning.replaceAll("\t", " "), Styles.monoLabel).grow().wrap();
|
||||
}).margin(6f).growX().pad(3f).row();
|
||||
}
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
}else{
|
||||
t.add().size(h);
|
||||
}
|
||||
|
||||
t.button((patch.name.isEmpty() ? "<unnamed>\n" : "[accent]" + patch.name + "\n") + "[lightgray][[" + Core.bundle.format("editor.patch.fields", fields) + "]", Styles.grayt, () -> {
|
||||
BaseDialog dialog = new BaseDialog(Core.bundle.format("editor.patch", patch.name.isEmpty() ? "<unnamed>" : patch.name));
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(patch.patch.replaceAll("\t", " "), Styles.monoLabel).grow().wrap().left().labelAlign(Align.left);
|
||||
}).margin(6f).growX().pad(5f).row();
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(mobile ? 390f : 450f, h).margin(10f).with(b -> {
|
||||
b.getLabel().setAlignment(Align.left, Align.left);
|
||||
});
|
||||
|
||||
t.button(Icon.copy, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
Core.app.setClipboardText(patch.patch);
|
||||
ui.showInfoFade("@copied");
|
||||
}).size(h);
|
||||
|
||||
t.button(Icon.refresh, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
showImport(str -> addPatch(str, patches.indexOf(patch)));
|
||||
}).size(h);
|
||||
|
||||
t.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||
ui.showConfirm("@editor.patches.delete.confirm", () -> {
|
||||
patches.remove(patch);
|
||||
setup();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
t.row();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void showImport(Cons<String> handler){
|
||||
BaseDialog dialog = new BaseDialog("@editor.import");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@schematic.copy.import", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
handler.get(Core.app.getClipboardText());
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
t.button("@schematic.importfile", Icon.download, style, () -> platform.showMultiFileChooser(file -> {
|
||||
dialog.hide();
|
||||
handler.get(file.readString());
|
||||
}, "json", "hjson", "json5")).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
void addPatch(String patch){
|
||||
addPatch(patch, -1);
|
||||
}
|
||||
|
||||
void addPatch(String patch, int replaceIndex){
|
||||
var oldPatches = state.patcher.patches.copy();
|
||||
try{
|
||||
Jval.read(patch); //validation
|
||||
Seq<String> patches = state.patcher.patches.map(p -> p.patch);
|
||||
if(replaceIndex == -1){
|
||||
patches.add(patch);
|
||||
}else{
|
||||
patches.set(replaceIndex, patch);
|
||||
}
|
||||
state.patcher.apply(patches);
|
||||
|
||||
setup();
|
||||
}catch(Exception e){
|
||||
state.patcher.patches.set(oldPatches);
|
||||
ui.showException("@editor.patches.importerror", e);
|
||||
}
|
||||
}
|
||||
|
||||
int countFields(JsonValue value){
|
||||
if(value.isObject() || value.isArray()){
|
||||
int sum = 0;
|
||||
for(var child : value){
|
||||
sum += countFields(child);
|
||||
}
|
||||
return Math.max(sum, 1);
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -49,8 +49,8 @@ public class WaveInfoDialog extends BaseDialog{
|
||||
|
||||
addCloseButton();
|
||||
|
||||
buttons.button("@waves.edit", Icon.edit, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@waves.edit");
|
||||
buttons.button("@edit.menu", Icon.edit, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@edit.menu");
|
||||
dialog.addCloseButton();
|
||||
dialog.setFillParent(false);
|
||||
dialog.cont.table(Tex.button, t -> {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.scene.ui.layout.*;
|
||||
|
||||
public interface AssetView{
|
||||
void build(MapAssetsDialog diag, Table table);
|
||||
void buildButtons(MapAssetsDialog diag, Table buttons);
|
||||
}
|
||||
@@ -0,0 +1,274 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.files.*;
|
||||
import arc.scene.style.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.util.zip.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapAssetsDialog extends BaseDialog{
|
||||
private static final TextureRegionDrawable[] typeIcons = {
|
||||
Icon.fileCode,
|
||||
Icon.box,
|
||||
Icon.fileText,
|
||||
Icon.image,
|
||||
Icon.volumeUp,
|
||||
Icon.music
|
||||
};
|
||||
|
||||
private AssetView[] views = {
|
||||
new MapPatchesView(),
|
||||
new MapContentView(),
|
||||
new MapBundlesView(),
|
||||
new MapImagesView(),
|
||||
new MapAudioView(DataAssetType.sound),
|
||||
new MapAudioView(DataAssetType.music),
|
||||
};
|
||||
|
||||
TextField searchField;
|
||||
@Nullable String searchString;
|
||||
|
||||
private Table list;
|
||||
private DataAssetType currentType = DataAssetType.music;
|
||||
|
||||
public MapAssetsDialog(){
|
||||
super("@patches");
|
||||
|
||||
shown(() -> {
|
||||
searchString = null;
|
||||
searchField.setText("");
|
||||
changeType(DataAssetType.patch);
|
||||
});
|
||||
|
||||
hidden(() -> {
|
||||
list.clearChildren();
|
||||
//in case items are added
|
||||
DataPatcher.fixContentArrays();
|
||||
//show new blocks
|
||||
ui.editor.rebuildBlockSelection();
|
||||
});
|
||||
|
||||
makeButtonOverlay();
|
||||
titleTable.remove();
|
||||
|
||||
Table types = new Table();
|
||||
types.defaults().size(50f).pad(4f);
|
||||
|
||||
types.button(Icon.menu, Styles.graySquarei, this::showEditMenu);
|
||||
|
||||
types.image(Tex.whiteui, Pal.accent).size(4f, 50f);
|
||||
|
||||
for(DataAssetType type : DataAssetType.all){
|
||||
types.button(typeIcons[type.ordinal()], Styles.grayTogglei, () -> changeType(type))
|
||||
.checked(b -> currentType == type).tooltip(type.localized());
|
||||
}
|
||||
types.image(Tex.whiteui, Pal.accent).size(4f, 50f);
|
||||
|
||||
types.table(Styles.grayPanel, t -> {
|
||||
t.margin(8f);
|
||||
t.label(() -> currentType.localized());
|
||||
}).height(50f).width(Float.NEGATIVE_INFINITY);
|
||||
|
||||
types.add().growX();
|
||||
|
||||
types.button("@asset.guide", Icon.link, Styles.grayt, () -> Core.app.openURI(patchesGuideURL)).marginLeft(10f).size(200f, 50f).pad(4f);
|
||||
|
||||
cont.top().left();
|
||||
|
||||
cont.add(types).growX().left().row();
|
||||
|
||||
cont.table(search -> {
|
||||
search.image(Icon.zoom);
|
||||
|
||||
searchField = search.field("", t -> {
|
||||
searchString = t.length() > 0 ? t.toLowerCase() : null;
|
||||
rebuild();
|
||||
}).growX().get();
|
||||
searchField.setMessageText("@search");
|
||||
}).growX().row();
|
||||
|
||||
cont.pane(t -> list = t).grow().top();
|
||||
}
|
||||
|
||||
void changeType(DataAssetType type){
|
||||
currentType = type;
|
||||
|
||||
buttons.clearChildren();
|
||||
addCloseButton();
|
||||
views[currentType.ordinal()].buildButtons(this, buttons);
|
||||
|
||||
//make sure new assets appear correctly when switching to the content view
|
||||
if(type == DataAssetType.content){
|
||||
state.data.reloadContent(false);
|
||||
state.data.regenerateContentSprites(false);
|
||||
}
|
||||
|
||||
rebuild();
|
||||
}
|
||||
|
||||
void rebuild(){
|
||||
list.center().top();
|
||||
list.clearChildren();
|
||||
list.marginBottom(70f);
|
||||
|
||||
views[currentType.ordinal()].build(this, list);
|
||||
}
|
||||
|
||||
void showEditMenu(){
|
||||
BaseDialog dialog = new BaseDialog("@edit.menu");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.button("@asset.importzip", Icon.download, style, () -> FileChooser.open("zip").submit(file -> {
|
||||
|
||||
//Android doesn't allow accessing the file contents outside the callback; other platforms either copy it already, or don't have dumb permission issues
|
||||
Fi targetFile;
|
||||
if(OS.isAndroid){
|
||||
targetFile = tmpDirectory.child(file.name());
|
||||
file.copyTo(targetFile);
|
||||
}else{
|
||||
targetFile = file;
|
||||
}
|
||||
|
||||
dialog.hide();
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
Seq<DataAsset> results = new Seq<>();
|
||||
Fi zipped = new ZipFi(targetFile);
|
||||
Seq<String> errors = new Seq<>();
|
||||
//force regen
|
||||
state.data.clearGeneratedImages();
|
||||
|
||||
for(var type : DataAssetType.all){
|
||||
Fi folder = zipped.child(type.folder);
|
||||
|
||||
//content has sub-dirs based on type, which need to be passed as context to the reader
|
||||
if(type == DataAssetType.content){
|
||||
for(ContentType ctype : ContentAsset.loadableContent){
|
||||
Fi subfolder = folder.child(ctype.folderName);
|
||||
|
||||
Seq<Fi> files = subfolder.findAll(f -> type.extensions.contains(f.extension().toLowerCase(Locale.ROOT)));
|
||||
|
||||
for(Fi cfile : files){
|
||||
String path = cfile.absolutePath().substring(subfolder.absolutePath().length() + 1);
|
||||
if(state.data.hasAssetNameOrPath(type, Strings.getFileNameWithoutExtension(path), path)){
|
||||
errors.add("Asset of type '" + type + "' with name/path '" + path + "' already exists.");
|
||||
continue;
|
||||
}
|
||||
|
||||
try{
|
||||
ContentAsset asset = new ContentAsset(cfile.absolutePath().substring(subfolder.absolutePath().length() + 1), ctype, cfile.readString());
|
||||
results.add(asset);
|
||||
}catch(Throwable e){
|
||||
Log.err(e);
|
||||
errors.add("Error loading content asset: " + cfile + ": " + Strings.getSimpleMessage( e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Seq<Fi> files = folder.findAll(f -> type.extensions.contains(f.extension().toLowerCase(Locale.ROOT)));
|
||||
|
||||
for(Fi cfile : files){
|
||||
String path = cfile.absolutePath().substring(folder.absolutePath().length() + 1);
|
||||
if(state.data.hasAssetNameOrPath(type, Strings.getFileNameWithoutExtension(path), path)){
|
||||
errors.add("Asset of type '" + type + "' with name/path '" + path + "' already exists.");
|
||||
continue;
|
||||
}
|
||||
try{
|
||||
var asset = type.create();
|
||||
asset.readFromZip(path, cfile);
|
||||
results.add(asset);
|
||||
}catch(Throwable e){
|
||||
Log.err(e);
|
||||
errors.add("Error loading data asset: " + cfile + ": " + Strings.getSimpleMessage(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//close zip file contents
|
||||
zipped.delete();
|
||||
|
||||
if(results.size > 0){
|
||||
var prev = state.data.getAllAssets().copy();
|
||||
prev.addAll(results);
|
||||
prev.sort();
|
||||
state.data.load(prev);
|
||||
if(state.data.getContent().size > 0){
|
||||
//TODO: packs twice (bad)
|
||||
state.data.regenerateContentSprites(false);
|
||||
}
|
||||
rebuild();
|
||||
}
|
||||
|
||||
var idiag = new BaseDialog("@asset.image.imports");
|
||||
if(results.size > 0) idiag.cont.add(Core.bundle.format("asset.imported", results.size)).row();
|
||||
if(!errors.isEmpty()){
|
||||
idiag.cont.add("@asset.image.error").padBottom(10f).row();
|
||||
idiag.cont.pane(ep -> {
|
||||
ep.add(Seq.with(errors).toString("\n", s -> "[gray]- []" + s)).labelAlign(Align.left, Align.left).grow();
|
||||
});
|
||||
}else if(results.size == 0){
|
||||
idiag.cont.add("@asset.import.none");
|
||||
}
|
||||
idiag.buttons.button("@ok", Icon.ok, idiag::hide).size(200f, 64f);
|
||||
idiag.show();
|
||||
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
}
|
||||
});
|
||||
})).marginLeft(12f).row();
|
||||
t.button("@asset.exportzip", Icon.upload, style, () -> FileChooser.export("assets", "zip", file -> {
|
||||
dialog.hide();
|
||||
try(OutputStream fos = file.write(false, 8192); ZipOutputStream zos = new ZipOutputStream(fos)){
|
||||
for(var asset : state.data.getAllAssets()){
|
||||
String path = asset.getFullPath();
|
||||
if(asset.isAlwaysEmbedded()){
|
||||
zos.putNextEntry(new ZipEntry(path));
|
||||
zos.write(asset.getData());
|
||||
zos.closeEntry();
|
||||
}else{
|
||||
Fi cacheFile = asset.getCacheFile();
|
||||
if(cacheFile == null) continue;
|
||||
|
||||
zos.putNextEntry(new ZipEntry(path));
|
||||
zos.write(cacheFile.readBytes());
|
||||
zos.closeEntry();
|
||||
}
|
||||
}
|
||||
}
|
||||
})).marginLeft(12f).row();
|
||||
t.button("@asset.clearall", Icon.trash, style, () -> {
|
||||
dialog.hide();
|
||||
ui.showConfirm("@asset.clearall.confirm", () -> {
|
||||
state.data.unload();
|
||||
rebuild();
|
||||
});
|
||||
}).marginLeft(12f).row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.audio.*;
|
||||
import arc.files.*;
|
||||
import arc.scene.*;
|
||||
import arc.scene.event.*;
|
||||
import arc.scene.ui.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapAudioView implements AssetView{
|
||||
public final DataAssetType type;
|
||||
public @Nullable AudioSource lastPlaying;
|
||||
|
||||
public MapAudioView(DataAssetType type){
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build(MapAssetsDialog diag, Table list){
|
||||
var assets = state.data.getAssets(type);
|
||||
|
||||
float h = 50f;
|
||||
|
||||
list.defaults().pad(4f);
|
||||
for(var asset : assets){
|
||||
if(diag.searchString != null && !asset.name.toLowerCase().contains(diag.searchString)) continue;
|
||||
|
||||
Fi file = asset.getCacheFile();
|
||||
var audioSource = (AudioSource)Core.assets.getOrNull(DataAudioLoader.prefix + asset.name, (Class<?>)(type == DataAssetType.music ? Music.class : Sound.class));
|
||||
|
||||
if(file == null || audioSource == null || !audioSource.valid()){
|
||||
list.button(Icon.warning, Styles.graySquarei, iconMed, () -> ui.showInfo(file == null ? "@asset.broken" : "@asset.audio.invalid")).size(h);
|
||||
}else{
|
||||
list.button(Icon.play, Styles.graySquarei, iconMed, () -> {
|
||||
if(lastPlaying != null && lastPlaying.countPlaying() > 0){
|
||||
lastPlaying.stop();
|
||||
if(lastPlaying == audioSource){
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(audioSource instanceof Music m){
|
||||
lastPlaying = m;
|
||||
m.play();
|
||||
}else if(audioSource instanceof Sound s){
|
||||
lastPlaying = s;
|
||||
var bus = s.bus;
|
||||
s.bus = control.sound.uiBus;
|
||||
s.play();
|
||||
s.bus = bus;
|
||||
}
|
||||
}).update(i -> i.getStyle().imageUp = audioSource != null && audioSource.countPlaying() > 0 ? Icon.pause : Icon.play).size(h);
|
||||
}
|
||||
|
||||
list.table(Styles.grayPanel, in -> {
|
||||
in.add("[accent]" + asset.name + "\n" + "[lightgray][[" + (audioSource == null ? "?" : UI.formatTime(audioSource.getLength() * 60f)) + "]").labelAlign(Align.left).grow();
|
||||
if(audioSource instanceof Music m){
|
||||
var slider = new Slider(0f, m.getLength(), 0.1f, false);
|
||||
slider.moved(value -> {
|
||||
if(lastPlaying == m){
|
||||
m.setPosition(value);
|
||||
}
|
||||
});
|
||||
//only ogg can seek
|
||||
slider.touchable = asset.path.endsWith(".ogg") ? Touchable.enabled : Touchable.disabled;
|
||||
slider.visible(() -> {
|
||||
boolean valid = lastPlaying == m && m.isPlaying();
|
||||
if(valid){
|
||||
slider.setValue(m.getPosition(), false);
|
||||
}
|
||||
return valid;
|
||||
});
|
||||
|
||||
Label label = new Label(() -> slider.visible ? UI.formatTime(slider.getValue() * 60f) : "");
|
||||
label.setAlignment(Align.center);
|
||||
label.setStyle(Styles.outlineLabel);
|
||||
label.touchable = Touchable.disabled;
|
||||
|
||||
in.stack(slider, label).growX().height(42f);
|
||||
}
|
||||
}).size(mobile ? 390f : 450f, h).margin(10f);
|
||||
|
||||
list.button(Icon.export, Styles.graySquarei, Vars.iconMed, () -> FileChooser.export(asset.name, Strings.getFileExtension(asset.path), file::copyTo)).size(h).disabled(file == null);
|
||||
|
||||
list.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||
ui.showConfirm("@asset.delete.confirm", () -> {
|
||||
if(audioSource != null){
|
||||
audioSource.dispose();
|
||||
}
|
||||
assets.remove(asset);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
list.row();
|
||||
}
|
||||
|
||||
if(list.getChildren().isEmpty()){
|
||||
list.add("@patch.none");
|
||||
}
|
||||
|
||||
list.add(new Element(){
|
||||
@Override
|
||||
public boolean remove(){
|
||||
if(lastPlaying != null){
|
||||
lastPlaying.stop();
|
||||
}
|
||||
return super.remove();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void act(float delta){
|
||||
if(lastPlaying != null && lastPlaying.countPlaying() > 0){
|
||||
control.sound.keepSilent();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildButtons(MapAssetsDialog diag, Table buttons){
|
||||
|
||||
buttons.button("@add", Icon.add, () -> {
|
||||
FileChooser.open("ogg", "mp3").submitMulti(result -> {
|
||||
var assets = state.data.getAssets(type);
|
||||
|
||||
for(Fi file : result){
|
||||
try{
|
||||
String name = file.nameWithoutExtension();
|
||||
String path = file.name();
|
||||
var other = state.data.getAssets(type).find(p -> (p.path.equalsIgnoreCase(path) || p.name.equalsIgnoreCase(name)));
|
||||
if(other != null){
|
||||
ui.showErrorMessage(Core.bundle.format("asset.exists", other.name + " (" + other.path + ")"));
|
||||
return;
|
||||
}
|
||||
|
||||
DataAsset asset = (type == DataAssetType.music ? new MusicAsset() : new SoundAsset());
|
||||
asset.setPath(path);
|
||||
asset.updateData(file.readBytes());
|
||||
|
||||
assets.add(asset);
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
}
|
||||
}
|
||||
|
||||
assets.sort();
|
||||
state.data.reloadAudio();
|
||||
diag.rebuild();
|
||||
lastPlaying = null;
|
||||
});
|
||||
}).size(190f, 64f);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.files.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapBundlesView implements AssetView{
|
||||
|
||||
@Override
|
||||
public void build(MapAssetsDialog diag, Table list){
|
||||
float h = 50f;
|
||||
|
||||
var bundles = state.data.getBundles();
|
||||
|
||||
list.defaults().pad(4f);
|
||||
for(var bundle : bundles){
|
||||
if(diag.searchString != null && !bundle.name.toLowerCase().contains(diag.searchString)) continue;
|
||||
|
||||
Fi file = bundle.getCacheFile();
|
||||
|
||||
if(file == null){
|
||||
list.button(Icon.warning, Styles.graySquarei, iconMed, () -> ui.showInfo("@asset.broken")).size(h);
|
||||
}else{
|
||||
list.add().size(h);
|
||||
}
|
||||
|
||||
bundle.tryLoadCache();
|
||||
|
||||
list.button(("[accent]" + bundle.name + "\n") + "[lightgray][[" + Core.bundle.format("bundle.lines", (bundle.cachedBundle == null ? null : bundle.cachedBundle.size)) + "]", Styles.grayt, () -> {
|
||||
BaseDialog dialog = new BaseDialog(bundle.name);
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
try{
|
||||
in.add(file.readString().replaceAll("\t", " "), Styles.monoLabel).grow().wrap().left().labelAlign(Align.left);
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
}
|
||||
}).margin(6f).growX().pad(5f).row();
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(mobile ? 390f : 450f, h).margin(10f).with(b -> {
|
||||
b.getLabel().setAlignment(Align.left, Align.left);
|
||||
}).disabled(v -> file == null);
|
||||
|
||||
list.button(Icon.refresh, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
Cons<String> handler = str -> {
|
||||
bundle.updateData(str.getBytes(Strings.utf8));
|
||||
diag.rebuild();
|
||||
};
|
||||
|
||||
BaseDialog dialog = new BaseDialog("@editor.import");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@import.clipboard", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
handler.get(Core.app.getClipboardText());
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
t.button("@import.file", Icon.download, style, () -> FileChooser.open("properties", "txt").submit(f -> {
|
||||
dialog.hide();
|
||||
handler.get(f.readString());
|
||||
})).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
|
||||
list.button(Icon.export, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@editor.export");
|
||||
dialog.addCloseButton();
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@copy.clipboard", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
try{
|
||||
Core.app.setClipboardText(file.readString());
|
||||
ui.showInfoFade("@copied");
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
}
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
t.button("@export.file", Icon.export, style, () -> {
|
||||
dialog.hide();
|
||||
FileChooser.export(bundle.name, "properties", file::copyTo);
|
||||
}).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
dialog.show();
|
||||
}).size(h).disabled(file == null);
|
||||
|
||||
list.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||
ui.showConfirm("@asset.delete.confirm", () -> {
|
||||
bundles.remove(bundle);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
list.row();
|
||||
}
|
||||
|
||||
if(list.getChildren().isEmpty()){
|
||||
list.add("@patch.none");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildButtons(MapAssetsDialog diag, Table buttons){
|
||||
buttons.button("@add", Icon.add, () -> {
|
||||
FileChooser.open("properties", "txt").submitMulti(files -> {
|
||||
for(var file : files){
|
||||
String path = file.name();
|
||||
String text = file.readString();
|
||||
try{
|
||||
if(state.data.hasAssetPath(DataAssetType.bundle, path)){
|
||||
ui.showErrorMessage(Core.bundle.format("asset.bundle.exists", path));
|
||||
continue;
|
||||
}
|
||||
var map = new StringMap();
|
||||
PropertiesUtils.load(map, new StringReader(text));
|
||||
byte[] bytes = text.getBytes(Strings.utf8);
|
||||
BundleAsset bundle = new BundleAsset();
|
||||
bundle.setPath(path);
|
||||
bundle.updateData(bytes);
|
||||
state.data.getBundles().add(bundle);
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
}
|
||||
diag.rebuild();
|
||||
}
|
||||
});
|
||||
}).size(190f, 64f);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,247 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.func.*;
|
||||
import arc.graphics.*;
|
||||
import arc.scene.event.*;
|
||||
import arc.scene.style.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.util.regex.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapContentView implements AssetView{
|
||||
private static final Pattern unsafeNamePattern = Pattern.compile("[\\[\\]{}`!@#$%^&8*();:,]");
|
||||
|
||||
static ObjectMap<ContentType, TextureRegionDrawable> contentIcons = ObjectMap.of(
|
||||
ContentType.item, Icon.box,
|
||||
ContentType.liquid, Icon.liquid,
|
||||
ContentType.unit, Icon.units,
|
||||
ContentType.block, Icon.distribution,
|
||||
ContentType.planet, Icon.planet,
|
||||
ContentType.weather, Icon.drizzle,
|
||||
ContentType.status, Icon.power
|
||||
);
|
||||
|
||||
@Override
|
||||
public void build(MapAssetsDialog diag, Table list){
|
||||
float h = 50f;
|
||||
|
||||
var contents = state.data.getContent();
|
||||
|
||||
ContentType lastType = null;
|
||||
|
||||
list.defaults().pad(4f);
|
||||
for(var content : contents){
|
||||
if(diag.searchString != null && !content.name.toLowerCase().contains(diag.searchString)) continue;
|
||||
|
||||
if(lastType != content.type){
|
||||
lastType = content.type;
|
||||
list.table(t -> {
|
||||
t.left();
|
||||
t.image(contentIcons.get(content.type)).color(Color.lightGray).size(iconSmall);
|
||||
t.add("@content." + content.type.name()).left().color(Color.lightGray).padLeft(12f).padRight(4f);
|
||||
t.image(Tex.whiteui).growX().color(Color.lightGray).height(4f);
|
||||
}).colspan(6).fillX().padBottom(8f).row();
|
||||
}
|
||||
|
||||
if(content.warnings.size > 0){
|
||||
list.button(Icon.warning, Styles.graySquarei, iconMed, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@asset.content.errors");
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
|
||||
var warns = content.warnings;
|
||||
if(content.errored){
|
||||
warns = new Seq<>();
|
||||
warns.add(Iconc.warning + " This content has critical errors, and cannot be used until the errors are fixed.");
|
||||
warns.addAll(content.warnings);
|
||||
}
|
||||
|
||||
for(var warning : warns){
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(warning.replaceAll("\t", " "), Styles.monoLabel).grow().wrap();
|
||||
}).margin(6f).growX().pad(3f).row();
|
||||
}
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
}else{
|
||||
list.add().size(h);
|
||||
}
|
||||
|
||||
list.button(content.content instanceof UnlockableContent u && (u.uiIcon.found() || u.fullIcon.found()) ? new TextureRegionDrawable(u.uiIcon.found() ? u.uiIcon : u.fullIcon) :
|
||||
contentIcons.get(content.type, Icon.warning), Styles.graySquarei, iconMed, () -> {}).touchable(Touchable.disabled).size(h);
|
||||
|
||||
list.button(("[accent]" + content.name + "\n") + "[lightgray]" + Core.bundle.get("content." + content.type), Styles.grayt, () -> {
|
||||
BaseDialog dialog = new BaseDialog(content.name);
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(content.data.replaceAll("\t", " "), Styles.monoLabel).grow().wrap().left().labelAlign(Align.left);
|
||||
}).margin(6f).growX().pad(5f).row();
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(mobile ? 390f : 450f, h).margin(10f).with(b -> {
|
||||
b.getLabel().setAlignment(Align.left, Align.left);
|
||||
});
|
||||
|
||||
list.button(Icon.refresh, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
Cons<String> handler = str -> {
|
||||
content.data = str;
|
||||
ui.loadAnd(() -> {
|
||||
state.data.reloadContent(false);
|
||||
state.data.regenerateContentSprites(false);
|
||||
diag.rebuild();
|
||||
});
|
||||
};
|
||||
|
||||
BaseDialog dialog = new BaseDialog("@editor.import");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@import.clipboard", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
handler.get(Core.app.getClipboardText());
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
t.button("@import.file", Icon.download, style, () -> FileChooser.open("json", "hjson", "json5").submit(file -> {
|
||||
dialog.hide();
|
||||
handler.get(file.readString());
|
||||
})).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
|
||||
list.button(Icon.export, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@editor.export");
|
||||
dialog.addCloseButton();
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@copy.clipboard", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
Core.app.setClipboardText(content.data);
|
||||
ui.showInfoFade("@copied");
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
t.button("@export.file", Icon.export, style, () -> {
|
||||
dialog.hide();
|
||||
FileChooser.export(content.name, "json", file -> file.writeString(content.data));
|
||||
}).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
|
||||
list.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||
ui.showConfirm("@asset.delete.confirm", () -> {
|
||||
contents.remove(content);
|
||||
Vars.content.remove(content.content);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
list.row();
|
||||
}
|
||||
|
||||
if(list.getChildren().isEmpty()){
|
||||
list.add("@patch.none");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buildButtons(MapAssetsDialog diag, Table buttons){
|
||||
buttons.button("@add", Icon.add, () -> showImport(diag)).size(190f, 64f);
|
||||
}
|
||||
|
||||
void addContent(MapAssetsDialog diag, ContentType type, String path, String data){
|
||||
ui.loadAnd(() -> {
|
||||
ContentAsset asset = new ContentAsset(path, type, data);
|
||||
state.data.getContent().add(asset);
|
||||
state.data.reloadContent(false);
|
||||
state.data.regenerateContentSprites(false);
|
||||
diag.rebuild();
|
||||
});
|
||||
}
|
||||
|
||||
void showImport(MapAssetsDialog diag){
|
||||
ContentType[] selected = {ContentType.item};
|
||||
boolean[] invalid = {false};
|
||||
|
||||
BaseDialog choose = new BaseDialog("@asset.content.add");
|
||||
choose.setFillParent(false);
|
||||
choose.closeOnBack();
|
||||
choose.cont.add("@name").padRight(10f);
|
||||
var nameField = choose.cont.field("", text -> {})
|
||||
.with(t -> {
|
||||
t.setFilter((field, c) -> !Character.isWhitespace(c));
|
||||
t.setValidator(MapContentView::isSafeContentName);
|
||||
t.changed(() -> invalid[0] = content.byName(t.getText()) != null || !t.isValid());
|
||||
}).width(400f).get();
|
||||
choose.cont.row();
|
||||
|
||||
choose.cont.add("@asset.content.type").padRight(10f);
|
||||
choose.cont.table(t -> {
|
||||
t.table(Styles.grayPanel, c -> {
|
||||
c.margin(8f);
|
||||
c.label(() -> "@content." + selected[0].name());
|
||||
}).height(50f).pad(4f).marginLeft(5f).marginRight(5f).width(160f);
|
||||
|
||||
t.image(Tex.whiteui, Pal.accent).size(4f, 50f).pad(4f);
|
||||
|
||||
for(ContentType type : ContentAsset.loadableContent){
|
||||
t.button(contentIcons.get(type), Styles.grayTogglei, iconMed, () -> selected[0] = type).checked(b -> selected[0] == type).size(50f).pad(4f).tooltip("@content." + type.name());
|
||||
}
|
||||
});
|
||||
|
||||
choose.cont.row();
|
||||
|
||||
choose.cont.label(() -> !nameField.isValid() ? "@asset.content.badname" : "@asset.content.exists").colspan(2).visible(() -> invalid[0]);
|
||||
|
||||
choose.buttons.button("@cancel", Icon.cancel, choose::hide).size(170f, 64f);
|
||||
|
||||
choose.buttons.button("@asset.content.import.file", Icon.fileText, () -> FileChooser.open("json", "json5", "hjson").submit(file -> {
|
||||
choose.hide();
|
||||
addContent(diag, selected[0], nameField.getText() + ".json", file.readString());
|
||||
diag.rebuild();
|
||||
})).size(200f, 64f).disabled(b -> nameField.getText().isEmpty() || invalid[0]);
|
||||
|
||||
choose.buttons.button("@asset.content.import.clipboard", Icon.copy, () -> {
|
||||
String text = Core.app.getClipboardText();
|
||||
if(text == null) return;
|
||||
|
||||
choose.hide();
|
||||
addContent(diag, selected[0], nameField.getText() + ".json", text);
|
||||
}).size(200f, 64f).disabled(b -> nameField.getText().isEmpty() || invalid[0] || Core.app.getClipboardText() == null);
|
||||
choose.show();
|
||||
}
|
||||
|
||||
static boolean isSafeContentName(String name){
|
||||
return Strings.isSafeFilename(name) && !unsafeNamePattern.matcher(name).find();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,314 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.files.*;
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.g2d.TextureAtlas.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.scene.event.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.mod.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.zip.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
import static mindustry.mod.DataImagePacker.*;
|
||||
|
||||
public class MapImagesView implements AssetView{
|
||||
|
||||
@Override
|
||||
public void buildButtons(MapAssetsDialog diag, Table buttons){
|
||||
|
||||
buttons.button("@add", Icon.add, () -> {
|
||||
FileChooser.open("png", "jpeg", "jpg").submitMulti(results -> {
|
||||
var images = getImages();
|
||||
state.data.clearGeneratedImages();
|
||||
|
||||
for(var result : results){
|
||||
try{
|
||||
Pixmap pix = new Pixmap(result);
|
||||
int width = pix.width;
|
||||
int height = pix.height;
|
||||
Pixmaps.bleed(pix);
|
||||
byte[] bytes = PixmapIO.writePngBytes(pix);
|
||||
pix.dispose();
|
||||
|
||||
if(width > DataPatcher.maxImageSize || height > DataPatcher.maxImageSize){
|
||||
ui.showErrorMessage(Core.bundle.format("asset.image.toolarge", width, height, DataPatcher.maxImageSize, DataPatcher.maxImageSize));
|
||||
return;
|
||||
}
|
||||
|
||||
String name = result.nameWithoutExtension();
|
||||
String path = result.name();
|
||||
var other = images.find(p -> p.path.equalsIgnoreCase(path) || p.name.equalsIgnoreCase(name));
|
||||
if(other != null){
|
||||
ui.showErrorMessage(Core.bundle.format("asset.image.exists", other.name + " (" + other.path + ")"));
|
||||
return;
|
||||
}
|
||||
|
||||
byte[] hash = assetCache.add(bytes);
|
||||
images.add(new ImageAsset(path, hash));
|
||||
}catch(Exception e){
|
||||
ui.showException(e);
|
||||
}
|
||||
}
|
||||
|
||||
images.sort();
|
||||
state.data.regenerateContentSprites(true);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(190f, 64f);
|
||||
|
||||
buttons.button("@edit", Icon.menu, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@edit.menu");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.button("@asset.image.importzip", Icon.download, style, () -> FileChooser.open("zip").submit(file -> {
|
||||
|
||||
//Android doesn't allow accessing the file contents outside the callback; other platforms either copy it already, or don't have dumb permission issues
|
||||
Fi targetFile;
|
||||
if(OS.isAndroid){
|
||||
targetFile = tmpDirectory.child(file.name());
|
||||
file.copyTo(targetFile);
|
||||
}else{
|
||||
targetFile = file;
|
||||
}
|
||||
|
||||
dialog.hide();
|
||||
ui.loadAnd(() -> {
|
||||
try{
|
||||
class Result{
|
||||
int width, height;
|
||||
Fi path;
|
||||
byte[] hash; //null if width/height invalid
|
||||
}
|
||||
|
||||
Seq<Future<?>> images = new Seq<>();
|
||||
var errors = new CopyOnWriteArrayList<String>();
|
||||
|
||||
Fi zipped = new ZipFi(targetFile);
|
||||
zipped.walk(ifile -> {
|
||||
if(ifile.extEquals("png")){
|
||||
images.add(mainExecutor.submit(() -> {
|
||||
try{
|
||||
Result res = new Result();
|
||||
res.path = ifile;
|
||||
byte[] bytes = ifile.readBytes();
|
||||
Pixmap pix = new Pixmap(bytes);
|
||||
res.width = pix.width;
|
||||
res.height = pix.height;
|
||||
|
||||
if(res.width < DataPatcher.maxImageSize && res.height < DataPatcher.maxImageSize){
|
||||
Pixmaps.bleed(pix);
|
||||
bytes = PixmapIO.writePngBytes(pix);
|
||||
res.hash = assetCache.add(bytes);
|
||||
}
|
||||
|
||||
pix.dispose();
|
||||
|
||||
return res;
|
||||
}catch(Throwable error){
|
||||
errors.add("[accent]" + ifile.path() + "[white]: " + Strings.getSimpleMessage(error));
|
||||
return null;
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
Threads.awaitAll(images);
|
||||
zipped.delete(); //closes the zip file
|
||||
int imported = 0;
|
||||
|
||||
state.data.clearGeneratedImages();
|
||||
|
||||
for(var future : images){
|
||||
var image = (Result)future.get();
|
||||
if(image != null){
|
||||
if(image.width > DataPatcher.maxImageSize || image.height > DataPatcher.maxImageSize || image.hash == null){
|
||||
errors.add("[accent]" + image.path + "[white]: " + Core.bundle.format("asset.image.toolarge", image.width, image.height, DataPatcher.maxImageSize, DataPatcher.maxImageSize));
|
||||
continue;
|
||||
}
|
||||
|
||||
String path = image.path.pathWithoutExtension(), name = image.path.nameWithoutExtension();
|
||||
var other = getImages().find(op -> !op.isGenerated() && (op.path.equalsIgnoreCase(path) || op.name.equalsIgnoreCase(name)));
|
||||
if(other != null){
|
||||
errors.add("[accent]" + image.path + "[white]: " + Core.bundle.format("asset.image.exists", other.name + " (" + other.path + ")").replace("\n", " "));
|
||||
continue;
|
||||
}
|
||||
getImages().removeAll(i -> i.isGenerated() && i.name.equals(name));
|
||||
getImages().add(new ImageAsset(path, image.hash));
|
||||
imported ++;
|
||||
}
|
||||
}
|
||||
|
||||
getImages().sort();
|
||||
|
||||
state.data.reloadImages(getImages());
|
||||
state.data.regenerateContentSprites(true);
|
||||
diag.rebuild();
|
||||
|
||||
var idiag = new BaseDialog("@asset.image.imports");
|
||||
if(imported > 0) idiag.cont.add(Core.bundle.format("asset.image.imported", imported)).row();
|
||||
if(!errors.isEmpty()){
|
||||
idiag.cont.add("@asset.image.error").padBottom(10f).row();
|
||||
idiag.cont.pane(ep -> {
|
||||
ep.add(Seq.with(errors).toString("\n", s -> "[gray]- []" + s)).labelAlign(Align.left, Align.left).grow();
|
||||
});
|
||||
}else if(imported == 0){
|
||||
idiag.cont.add("@asset.image.none");
|
||||
}
|
||||
idiag.buttons.button("@ok", Icon.ok, idiag::hide).size(200f, 64f);
|
||||
idiag.show();
|
||||
}catch(Throwable e){
|
||||
ui.showException(e);
|
||||
}
|
||||
});
|
||||
})).marginLeft(12f).row();
|
||||
t.button("@asset.image.exportzip", Icon.upload, style, () -> FileChooser.export("images", "zip", file -> {
|
||||
dialog.hide();
|
||||
try(OutputStream fos = file.write(false, 4096); ZipOutputStream zos = new ZipOutputStream(fos)){
|
||||
for(var image : getImages()){
|
||||
Fi cacheFile = image.getCacheFile();
|
||||
if(cacheFile == null) continue;
|
||||
|
||||
zos.putNextEntry(new ZipEntry(image.path + ".png"));
|
||||
zos.write(cacheFile.readBytes());
|
||||
zos.closeEntry();
|
||||
}
|
||||
}
|
||||
})).marginLeft(12f).row();
|
||||
t.button("@asset.clearall", Icon.trash, style, () -> {
|
||||
dialog.hide();
|
||||
ui.showConfirm("@asset.image.clearall.confirm", () -> {
|
||||
getImages().clear();
|
||||
state.data.reloadImages(getImages());
|
||||
diag.rebuild();
|
||||
});
|
||||
}).marginLeft(12f).row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build(MapAssetsDialog diag, Table inner){
|
||||
inner.clearChildren();
|
||||
inner.top().left();
|
||||
|
||||
float size = 200f;
|
||||
int cols = (int)Math.max(1, Core.graphics.getWidth() / Scl.scl(size + 12f));
|
||||
int i = 0;
|
||||
for(var image : getImages()){
|
||||
//showing generated images is confusing, so don't.
|
||||
if(image.isGenerated()) continue;
|
||||
if(diag.searchString != null && !image.path.toLowerCase().contains(diag.searchString)) continue;
|
||||
|
||||
TextureRegion region = Core.atlas.find(regionPrefix + image.name, "nomap");
|
||||
boolean found = Core.atlas.has(regionPrefix + image.name);
|
||||
@Nullable Fi cacheFile = image.getCacheFile();
|
||||
int iwidth = found ? region.width : 1, iheight = found ? region.height : 1;
|
||||
int ilength = cacheFile != null && cacheFile.exists() ? (int)cacheFile.length() : 0;
|
||||
|
||||
Runnable showInfo = () -> {
|
||||
BaseDialog d = new BaseDialog("@asset.image.info");
|
||||
float maxSize = Math.min(Core.graphics.getHeight(), Core.graphics.getHeight()) / Scl.scl(1f) * 0.8f - Scl.scl(64f + 60f);
|
||||
d.cont.top();
|
||||
d.cont.add(new BorderImage(region, 4f)).scaling(Scaling.fit).with(bi -> bi.drawAlpha = bi.forceNearest = true).size(maxSize).row();
|
||||
d.cont.row().defaults().left();
|
||||
boolean env = image.path.contains("blocks/environment/");
|
||||
if(!found){
|
||||
d.cont.add(Core.bundle.get("asset.image.packfailed") + (env ? "\n" + Core.bundle.get("asset.image.packfailed.env") : "")).row();
|
||||
}
|
||||
d.cont.add(Core.bundle.format("asset.image.name", image.name)).row();
|
||||
d.cont.add(Core.bundle.format("asset.image.region.name", regionPrefix + image.name)).row();
|
||||
d.cont.add(Core.bundle.format("asset.image.path", image.name)).row();
|
||||
d.cont.add(Core.bundle.format("asset.image.env", env)).row();
|
||||
d.cont.add(Core.bundle.format("asset.image.size", iwidth, iheight)).row();
|
||||
d.cont.add(Core.bundle.format("asset.image.filesize", Strings.formatByteCount(ilength)));
|
||||
|
||||
d.addCloseButton();
|
||||
d.show();
|
||||
};
|
||||
|
||||
inner.table(Styles.grayPanel, t -> {
|
||||
t.margin(5f);
|
||||
t.top();
|
||||
t.add(new BorderImage(region, 4f)).scaling(Scaling.fit).with(b -> b.drawAlpha = true).size(size - 10f).with(img -> {
|
||||
img.addListener(new HandCursorListener());
|
||||
img.clicked(showInfo);
|
||||
}).row();
|
||||
t.add((found ? "" : "[red]⚠[] ") + image.name).tooltip(regionPrefix + image.name + "\n[lightgray]" + image.path).ellipsis(true).left().width(size - 10f).growX().row();
|
||||
t.add(iwidth + "x" + iheight).tooltip(Strings.formatByteCount(ilength)).color(Color.lightGray).left().growX().row();
|
||||
t.table(b -> {
|
||||
b.left();
|
||||
b.defaults().size((size - 10f) / 4f);
|
||||
var istyle = Styles.emptyi;
|
||||
b.button(Icon.pencil, istyle, () -> {
|
||||
ui.showTextInput("@save.rename", "@patch.path", image.path, res -> {
|
||||
if(!res.endsWith(".png")) res = res + ".png";
|
||||
|
||||
Fi fi = new Fi(res);
|
||||
String name = fi.nameWithoutExtension();
|
||||
String path = fi.pathWithoutExtension();
|
||||
var other = getImages().find(p -> p != image && !p.isGenerated() && (p.path.equalsIgnoreCase(path) || p.name.equalsIgnoreCase(name)));
|
||||
if(other != null){
|
||||
ui.showErrorMessage(Core.bundle.format("asset.image.exists", other.name + " (" + other.path + ")"));
|
||||
}else{
|
||||
//move and rename associated atlas region
|
||||
if(region instanceof AtlasRegion at && at.name.equals(regionPrefix + image.name)){
|
||||
var map = Core.atlas.getRegionMap();
|
||||
map.remove(regionPrefix + image.name);
|
||||
map.put(regionPrefix + name, at);
|
||||
at.name = regionPrefix + name;
|
||||
}
|
||||
|
||||
image.setPath(fi.path());
|
||||
image.name = name;
|
||||
diag.rebuild();
|
||||
}
|
||||
});
|
||||
});
|
||||
b.button(Icon.info, istyle, showInfo);
|
||||
b.button(Icon.export, istyle, () -> {
|
||||
FileChooser.export(image.name, "png", out -> image.getCacheFileNoNull().copyTo(out));
|
||||
});
|
||||
b.button(Icon.trash, istyle, () -> {
|
||||
ui.showConfirm("@asset.image.delete.confirm", () -> {
|
||||
Core.atlas.getRegionMap().remove(regionPrefix + image.name);
|
||||
getImages().remove(image);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).padTop(2f);
|
||||
}).growX();
|
||||
|
||||
}).pad(4f).width(size).uniformY();
|
||||
if(++i % cols == 0){
|
||||
inner.row();
|
||||
}
|
||||
}
|
||||
|
||||
if(inner.getChildren().isEmpty()){
|
||||
inner.center().add("@none.found").pad(10f);
|
||||
}
|
||||
}
|
||||
|
||||
private Seq<ImageAsset> getImages(){
|
||||
return Vars.state.data.getImages();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
package mindustry.editor.data;
|
||||
|
||||
import arc.*;
|
||||
import arc.func.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import arc.util.serialization.*;
|
||||
import mindustry.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.mod.data.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.ui.dialogs.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
public class MapPatchesView implements AssetView{
|
||||
|
||||
@Override
|
||||
public void buildButtons(MapAssetsDialog diag, Table buttons){
|
||||
buttons.button("@add", Icon.add, () -> showImport(s -> {
|
||||
addPatch(s);
|
||||
diag.rebuild();
|
||||
})).size(190f, 64f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build(MapAssetsDialog diag, Table list){
|
||||
float h = 50f;
|
||||
|
||||
var patches = state.data.getPatches();
|
||||
|
||||
list.defaults().pad(4f);
|
||||
for(var patch : patches){
|
||||
if(diag.searchString != null && !patch.name.toLowerCase().contains(diag.searchString)) continue;
|
||||
|
||||
int fields = countFields(patch.json);
|
||||
|
||||
if(patch.warnings.size > 0){
|
||||
list.button(Icon.warning, Styles.graySquarei, iconMed, () -> {
|
||||
BaseDialog dialog = new BaseDialog("@patch.errors");
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
|
||||
for(var warning : patch.warnings){
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(warning.replaceAll("\t", " "), Styles.monoLabel).grow().wrap();
|
||||
}).margin(6f).growX().pad(3f).row();
|
||||
}
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(h);
|
||||
}else{
|
||||
list.add().size(h);
|
||||
}
|
||||
|
||||
list.button((patch.name.isEmpty() ? "<unnamed>\n" : "[accent]" + patch.name + "\n") + "[lightgray][[" + Core.bundle.format("patch.fields", fields) + "]", Styles.grayt, () -> {
|
||||
BaseDialog dialog = new BaseDialog(Core.bundle.format("patch.set", patch.name.isEmpty() ? "<unnamed>" : patch.name));
|
||||
dialog.cont.top().pane(p -> {
|
||||
p.top();
|
||||
p.table(Styles.grayPanel, in -> {
|
||||
in.add(patch.patch.replaceAll("\t", " "), Styles.monoLabel).grow().wrap().left().labelAlign(Align.left);
|
||||
}).margin(6f).growX().pad(5f).row();
|
||||
}).grow();
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}).size(mobile ? 390f : 450f, h).margin(10f).with(b -> {
|
||||
b.getLabel().setAlignment(Align.left, Align.left);
|
||||
});
|
||||
|
||||
list.button(Icon.copy, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
Core.app.setClipboardText(patch.patch);
|
||||
ui.showInfoFade("@copied");
|
||||
}).size(h);
|
||||
|
||||
list.button(Icon.refresh, Styles.graySquarei, Vars.iconMed, () -> {
|
||||
showImport(str -> {
|
||||
addPatch(str, patches.indexOf(patch));
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
list.button(Icon.trash, Styles.graySquarei, iconMed, () -> {
|
||||
ui.showConfirm("@patch.delete.confirm", () -> {
|
||||
patches.remove(patch);
|
||||
diag.rebuild();
|
||||
});
|
||||
}).size(h);
|
||||
|
||||
list.row();
|
||||
}
|
||||
|
||||
if(list.getChildren().isEmpty()){
|
||||
list.add("@patch.none");
|
||||
}
|
||||
}
|
||||
|
||||
void showImport(Cons<String> handler){
|
||||
BaseDialog dialog = new BaseDialog("@editor.import");
|
||||
dialog.cont.pane(p -> {
|
||||
p.margin(10f);
|
||||
p.table(Tex.button, t -> {
|
||||
TextButtonStyle style = Styles.flatt;
|
||||
t.defaults().size(280f, 60f).left();
|
||||
t.row();
|
||||
t.button("@import.clipboard", Icon.copy, style, () -> {
|
||||
dialog.hide();
|
||||
handler.get(Core.app.getClipboardText());
|
||||
}).marginLeft(12f).disabled(b -> Core.app.getClipboardText() == null);
|
||||
t.row();
|
||||
//currently doesn't allow multi import because it could be replacing exactly 1 patch
|
||||
t.button("@import.file", Icon.download, style, () -> FileChooser.open("json", "hjson", "json5").submit(file -> {
|
||||
dialog.hide();
|
||||
handler.get(file.readString());
|
||||
})).marginLeft(12f);
|
||||
t.row();
|
||||
});
|
||||
});
|
||||
|
||||
dialog.addCloseButton();
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
void addPatch(String patch){
|
||||
addPatch(patch, -1);
|
||||
}
|
||||
|
||||
void addPatch(String patch, int replaceIndex){
|
||||
var patches = state.data.getPatches();
|
||||
var oldPatches = patches.copy();
|
||||
|
||||
try{
|
||||
Jval.read(patch); //validation
|
||||
|
||||
if(replaceIndex == -1){
|
||||
patches.add(new PatchAsset(patch));
|
||||
}else{
|
||||
patches.set(replaceIndex, new PatchAsset(patch));
|
||||
}
|
||||
|
||||
state.data.reloadPatches(patches);
|
||||
|
||||
}catch(Exception e){
|
||||
patches.set(oldPatches);
|
||||
ui.showException("@patch.importerror", e);
|
||||
}
|
||||
}
|
||||
|
||||
int countFields(JsonValue value){
|
||||
if(value.isObject() || value.isArray()){
|
||||
int sum = 0;
|
||||
for(var child : value){
|
||||
sum += countFields(child);
|
||||
}
|
||||
return Math.max(sum, 1);
|
||||
}else{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,11 +4,11 @@ import mindustry.annotations.Annotations.*;
|
||||
import mindustry.gen.*;
|
||||
|
||||
class GroupDefs<G>{
|
||||
@GroupDef(value = Entityc.class) G all;
|
||||
@GroupDef(value = Entityc.class, update = true) G all;
|
||||
@GroupDef(value = Playerc.class, mapping = true) G player;
|
||||
@GroupDef(value = Bulletc.class, spatial = true, collide = true) G bullet;
|
||||
@GroupDef(value = Unitc.class, spatial = true, mapping = true) G unit;
|
||||
@GroupDef(value = Buildingc.class) G build;
|
||||
@GroupDef(value = Buildingc.class, update = true) G build;
|
||||
@GroupDef(value = Syncc.class, mapping = true) G sync;
|
||||
@GroupDef(value = Drawc.class) G draw;
|
||||
@GroupDef(value = Firec.class) G fire;
|
||||
|
||||
@@ -265,13 +265,18 @@ public class Units{
|
||||
|
||||
/** Returns the closest target enemy. First, units are checked, then tile entities. */
|
||||
public static Teamc closestTarget(Team team, float x, float y, float range, Boolf<Unit> unitPred, Boolf<Building> tilePred){
|
||||
return closestTarget(team, x, y, range, null, unitPred, tilePred);
|
||||
}
|
||||
|
||||
/** Returns the closest target enemy. First, units are checked, then tile entities. */
|
||||
public static Teamc closestTarget(Team team, float x, float y, float range, @Nullable Team sourceTeam, Boolf<Unit> unitPred, Boolf<Building> tilePred){
|
||||
if(team == Team.derelict) return null;
|
||||
|
||||
Unit unit = closestEnemy(team, x, y, range, unitPred);
|
||||
if(unit != null){
|
||||
return unit;
|
||||
}else{
|
||||
return findEnemyTile(team, x, y, range, tilePred);
|
||||
return indexer.findEnemyTile(team, x, y, range, UnitSorts.buildingDefault, tilePred, sourceTeam);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package mindustry.entities.abilities;
|
||||
|
||||
public class EmptyDataAbility extends Ability{
|
||||
|
||||
}
|
||||