Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3bf7031e6a | ||
|
|
503fc980f4 | ||
|
|
efed11eb97 | ||
|
|
330820062f | ||
|
|
45d157fe3f | ||
|
|
812dea385c | ||
|
|
c582bdea46 | ||
|
|
e6c6a9381b | ||
|
|
4b4c0755c6 | ||
|
|
aeb0539c91 | ||
|
|
9feafa45f5 | ||
|
|
927df391f3 | ||
|
|
cbef6adeb1 | ||
|
|
2dee221861 | ||
|
|
0b175cb25d | ||
|
|
0820338b55 | ||
|
|
a2b46eee6f | ||
|
|
09a435320a | ||
|
|
bf56200c06 | ||
|
|
2d18df2011 | ||
|
|
bab87c0da8 | ||
|
|
148f272500 | ||
|
|
6de4af727b | ||
|
|
75946b9d14 | ||
|
|
1c63ee6743 | ||
|
|
efdaf0d986 | ||
|
|
3f6aeac33d | ||
|
|
d9692004cc | ||
|
|
67a12eecad | ||
|
|
37999e0870 | ||
|
|
66dc1e94f5 | ||
|
|
ebcce194a0 | ||
|
|
95eab94c80 | ||
|
|
41a6dbe06c | ||
|
|
fa22b0ec12 | ||
|
|
be60a367e8 | ||
|
|
608de34205 | ||
|
|
0a8f2edb05 | ||
|
|
41b08f38c5 | ||
|
|
a83c0b2e9a | ||
|
|
8f853c8f18 | ||
|
|
b4071f6dcb | ||
|
|
6b70418861 | ||
|
|
de0235ad94 | ||
|
|
c278c632b3 | ||
|
|
6392330e70 | ||
|
|
160ae4e244 | ||
|
|
a6c9bd3182 | ||
|
|
801eadd8a8 | ||
|
|
211dab1297 | ||
|
|
0c3b39ffdc | ||
|
|
c31f88a318 | ||
|
|
e9eb981782 | ||
|
|
83bde8a781 | ||
|
|
52f352bf94 | ||
|
|
b419a96d69 | ||
|
|
eb3d5b62f5 | ||
|
|
1c5f578d88 | ||
|
|
db3aae1388 | ||
|
|
0b08eb72a6 | ||
|
|
cbc81376be | ||
|
|
27e9901d05 | ||
|
|
532c36677c | ||
|
|
0c20c6ecb7 | ||
|
|
fbb3240ebb | ||
|
|
855957b099 |
@@ -3,7 +3,6 @@
|
|||||||
package="io.anuke.mindustry">
|
package="io.anuke.mindustry">
|
||||||
|
|
||||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
||||||
<uses-permission android:name="com.android.vending.BILLING" />
|
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|||||||
@@ -27,9 +27,6 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation project(":core")
|
implementation project(":core")
|
||||||
implementation project(":net")
|
implementation project(":net")
|
||||||
implementation 'com.android.support:support-v4:28.0.0'
|
|
||||||
implementation 'org.sufficientlysecure:donations:2.5'
|
|
||||||
implementation 'com.google.android.gms:play-services-auth:16.0.1'
|
|
||||||
|
|
||||||
implementation arcModule("backends:backend-android")
|
implementation arcModule("backends:backend-android")
|
||||||
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
|
||||||
@@ -47,9 +44,9 @@ dependencies {
|
|||||||
task deploy(type: Copy){
|
task deploy(type: Copy){
|
||||||
dependsOn "assembleRelease"
|
dependsOn "assembleRelease"
|
||||||
|
|
||||||
from "build/outputs/apk/google/release/android-google-release.apk"
|
from "build/outputs/apk/release/android-release.apk"
|
||||||
into "../deploy/"
|
into "../deploy/"
|
||||||
rename ("android-google-release.apk", appName + "-android-" + getVersionString() + ".apk")
|
rename ("android-release.apk", appName + "-android-" + getVersionString() + ".apk")
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
@@ -103,12 +100,6 @@ android {
|
|||||||
|
|
||||||
flavorDimensions "google"
|
flavorDimensions "google"
|
||||||
|
|
||||||
productFlavors {
|
|
||||||
google {
|
|
||||||
buildConfigField "boolean", "DONATIONS_GOOGLE", "true"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
if(project.hasProperty("RELEASE_STORE_FILE")) {
|
if(project.hasProperty("RELEASE_STORE_FILE")) {
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 20 KiB |
@@ -1,32 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="fill_parent"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="#000">
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_gravity="top"
|
|
||||||
android:adjustViewBounds="false"
|
|
||||||
android:contentDescription="background"
|
|
||||||
android:cropToPadding="false"
|
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:src="@drawable/background" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/donations_activity_container"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<string name="app_name">Mindustry</string>
|
|
||||||
<string-array name="donation_google_catalog_values">
|
|
||||||
<item>1 달러</item>
|
|
||||||
<item>2 달러</item>
|
|
||||||
<item>5 달러</item>
|
|
||||||
<item>10 달러</item>
|
|
||||||
<item>15 달러</item>
|
|
||||||
<item>25 달러</item>
|
|
||||||
<item>50 달러</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<string name="app_name">Mindustry</string>
|
|
||||||
<string-array name="donation_google_catalog_values">
|
|
||||||
<item>1 Доллар</item>
|
|
||||||
<item>2 Доллара</item>
|
|
||||||
<item>5 Долларов</item>
|
|
||||||
<item>10 Долларов</item>
|
|
||||||
<item>15 Долларов</item>
|
|
||||||
<item>25 Долларов</item>
|
|
||||||
<item>50 Долларов</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<resources>
|
|
||||||
|
|
||||||
<string name="app_name">Mindustry</string>
|
|
||||||
<string-array name="donation_google_catalog_values">
|
|
||||||
<item>1 Доллар</item>
|
|
||||||
<item>2 Доллара</item>
|
|
||||||
<item>5 Долларів</item>
|
|
||||||
<item>10 Долларів</item>
|
|
||||||
<item>15 Долларів</item>
|
|
||||||
<item>25 Долларів</item>
|
|
||||||
<item>50 Долларів</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
|
||||||
@@ -2,14 +2,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="app_name">Mindustry</string>
|
<string name="app_name">Mindustry</string>
|
||||||
<string-array name="donation_google_catalog_values">
|
|
||||||
<item>1 Dollar</item>
|
|
||||||
<item>2 Dollars</item>
|
|
||||||
<item>5 Dollars</item>
|
|
||||||
<item>10 Dollars</item>
|
|
||||||
<item>15 Dollars</item>
|
|
||||||
<item>25 Dollars</item>
|
|
||||||
<item>50 Dollars</item>
|
|
||||||
</string-array>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -10,11 +10,6 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings.Secure;
|
import android.provider.Settings.Secure;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.util.Log;
|
|
||||||
import com.google.android.gms.common.GoogleApiAvailability;
|
|
||||||
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
|
|
||||||
import com.google.android.gms.common.GooglePlayServicesRepairableException;
|
|
||||||
import com.google.android.gms.security.ProviderInstaller;
|
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
|
import io.anuke.arc.backends.android.surfaceview.AndroidApplication;
|
||||||
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
|
import io.anuke.arc.backends.android.surfaceview.AndroidApplicationConfiguration;
|
||||||
@@ -53,8 +48,8 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
Platform.instance = new Platform(){
|
Platform.instance = new Platform(){
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void openDonations(){
|
public void hide(){
|
||||||
showDonations();
|
moveTaskToBack(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -94,7 +89,7 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
if(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
|
||||||
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
perms.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||||
}
|
}
|
||||||
requestPermissions(perms.toArray(new String[perms.size()]), PERMISSION_REQUEST_CODE);
|
requestPermissions(perms.toArray(new String[0]), PERMISSION_REQUEST_CODE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,17 +109,10 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
try{
|
|
||||||
ProviderInstaller.installIfNeeded(this);
|
|
||||||
}catch(GooglePlayServicesRepairableException e){
|
|
||||||
GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance();
|
|
||||||
apiAvailability.getErrorDialog(this, e.getConnectionStatusCode(), 0).show();
|
|
||||||
}catch(GooglePlayServicesNotAvailableException e){
|
|
||||||
Log.e("SecurityException", "Google Play Services not available.");
|
|
||||||
}
|
|
||||||
if(doubleScaleTablets && isTablet(this.getContext())){
|
if(doubleScaleTablets && isTablet(this.getContext())){
|
||||||
Unit.dp.addition = 0.5f;
|
Unit.dp.addition = 0.5f;
|
||||||
}
|
}
|
||||||
|
|
||||||
config.hideStatusBar = true;
|
config.hideStatusBar = true;
|
||||||
Net.setClientProvider(new KryoClient());
|
Net.setClientProvider(new KryoClient());
|
||||||
Net.setServerProvider(new KryoServer());
|
Net.setServerProvider(new KryoServer());
|
||||||
@@ -195,22 +183,8 @@ public class AndroidLauncher extends AndroidApplication{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isPackageInstalled(String packagename){
|
|
||||||
try{
|
|
||||||
getPackageManager().getPackageInfo(packagename, 0);
|
|
||||||
return true;
|
|
||||||
}catch(Exception e){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isTablet(Context context){
|
private boolean isTablet(Context context){
|
||||||
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
return manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
|
return manager != null && manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE;
|
||||||
}
|
|
||||||
|
|
||||||
private void showDonations(){
|
|
||||||
Intent intent = new Intent(this, DonationsActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
package io.anuke.mindustry;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v4.app.FragmentActivity;
|
|
||||||
import android.support.v4.app.FragmentManager;
|
|
||||||
import android.support.v4.app.FragmentTransaction;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.Button;
|
|
||||||
import org.sufficientlysecure.donations.DonationsFragment;
|
|
||||||
|
|
||||||
public class DonationsActivity extends FragmentActivity{
|
|
||||||
/**
|
|
||||||
* Google
|
|
||||||
*/
|
|
||||||
private static final String GOOGLE_PUBKEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzG93KhpfBPKTo2jF0yxbWkkmMKwsPNM4SsMj1aDq7vv6n3R+mqJVfprOJxFfJh7JchXTflLIgiaKXFAiU70gJbMTniEWnEaFSxAeF09a7U0RjOwN+7rFwjCG91c2CpYxPanBTQP4zasc1ODPVzq4q6/4ByjhenN71V4WmR08NFIAodcfFPrOkDPil7i8y7cgcd1Ky53U0TS+LLYJttAK3XdTK4s7VE3I5IKoeNa4uwCmIM59R67q2k3cXjLk/nP6MP+y++EzHN/PTiR1sVg4dMP8K31RPw/1QNLPQwJz6Wc872oWwb7xo5gkoXbDc5WPPydsi8F3SyKNaYwzN6CDFQIDAQAB";
|
|
||||||
private static final String[] GOOGLE_CATALOG = new String[]{
|
|
||||||
"mindustry.donation.1", "mindustry.donation.2", "mindustry.donation.5",
|
|
||||||
"mindustry.donation.10", "mindustry.donation.15",
|
|
||||||
"mindustry.donation.25", "mindustry.donation.50"};
|
|
||||||
DonationsFragment donationsFragment;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the activity is first created.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState){
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
setTheme(R.style.GdxTheme);
|
|
||||||
|
|
||||||
setContentView(R.layout.donations_activity);
|
|
||||||
|
|
||||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
|
||||||
if(BuildConfig.DONATIONS_GOOGLE){
|
|
||||||
donationsFragment = DonationsFragment.newInstance(BuildConfig.DEBUG, true, GOOGLE_PUBKEY, GOOGLE_CATALOG,
|
|
||||||
getResources().getStringArray(R.array.donation_google_catalog_values), false, null, null,
|
|
||||||
null, false, null, null, false, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ft.replace(R.id.donations_activity_container, donationsFragment, "donationsFragment");
|
|
||||||
ft.commit();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onStart(){
|
|
||||||
super.onStart();
|
|
||||||
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
|
||||||
b.setOnClickListener(view -> {
|
|
||||||
donationsFragment.donateGoogleOnClick(donationsFragment.getView());
|
|
||||||
b.setEnabled(false);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Needed for Google Play In-app Billing. It uses startIntentSenderForResult(). The result is not propagated to
|
|
||||||
* the Fragment like in startActivityForResult(). Thus we need to propagate manually to our Fragment.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data){
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
Button b = findViewById(org.sufficientlysecure.donations.R.id.donations__google_android_market_donate_button);
|
|
||||||
b.setEnabled(true);
|
|
||||||
|
|
||||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
|
||||||
Fragment fragment = fragmentManager.findFragmentByTag("donationsFragment");
|
|
||||||
if(fragment != null){
|
|
||||||
fragment.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -50,8 +50,21 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
classBuilder.addJavadoc(RemoteMethodAnnotationProcessor.autogenWarning);
|
||||||
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
MethodSpec.Builder method = MethodSpec.methodBuilder("init").addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
|
TypeName jsonType = ClassName.bestGuess("io.anuke.arc.util.serialization.Json");
|
||||||
|
TypeName jsonValueType = ClassName.bestGuess("io.anuke.arc.util.serialization.JsonValue");
|
||||||
|
TypeName ubJsonWriterType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonWriter");
|
||||||
|
TypeName ubJsonReaderType = ClassName.bestGuess("io.anuke.arc.util.serialization.UBJsonReader");
|
||||||
|
|
||||||
|
classBuilder.addField(jsonType, "bjson", Modifier.STATIC, Modifier.PRIVATE);
|
||||||
|
classBuilder.addField(ubJsonReaderType, "bjsonReader", Modifier.STATIC, Modifier.PRIVATE);
|
||||||
|
classBuilder.addStaticBlock(CodeBlock.builder()
|
||||||
|
.addStatement("bjson = new " + jsonType + "()")
|
||||||
|
.addStatement("bjsonReader = new " + ubJsonReaderType + "()")
|
||||||
|
.build());
|
||||||
|
|
||||||
for(TypeElement elem : elements){
|
for(TypeElement elem : elements){
|
||||||
TypeName type = TypeName.get(elem.asType());
|
TypeName type = TypeName.get(elem.asType());
|
||||||
|
String simpleTypeName = type.toString().substring(type.toString().lastIndexOf('.') + 1);
|
||||||
|
|
||||||
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
|
||||||
.addSuperinterface(ParameterizedTypeName.get(
|
.addSuperinterface(ParameterizedTypeName.get(
|
||||||
@@ -70,7 +83,19 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
.addException(IOException.class)
|
.addException(IOException.class)
|
||||||
.addModifiers(Modifier.PUBLIC);
|
.addModifiers(Modifier.PUBLIC);
|
||||||
|
|
||||||
|
MethodSpec.Builder jsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "Json")
|
||||||
|
.returns(void.class)
|
||||||
|
.addParameter(jsonType, "json")
|
||||||
|
.addParameter(type, "object")
|
||||||
|
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
|
MethodSpec.Builder jsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "Json")
|
||||||
|
.returns(type)
|
||||||
|
.addParameter(jsonValueType, "value")
|
||||||
|
.addModifiers(Modifier.PUBLIC, Modifier.STATIC);
|
||||||
|
|
||||||
readMethod.addStatement("$L object = new $L()", type, type);
|
readMethod.addStatement("$L object = new $L()", type, type);
|
||||||
|
jsonReadMethod.addStatement("$L object = new $L()", type, type);
|
||||||
|
|
||||||
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
|
List<VariableElement> fields = ElementFilter.fieldsIn(Utils.elementUtils.getAllMembers(elem));
|
||||||
for(VariableElement field : fields){
|
for(VariableElement field : fields){
|
||||||
@@ -83,6 +108,9 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
if(field.asType().getKind().isPrimitive()){
|
if(field.asType().getKind().isPrimitive()){
|
||||||
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
|
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
|
||||||
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
|
readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
|
||||||
|
|
||||||
|
jsonWriteMethod.addStatement("json.writeValue(\"" + name + "\", object." + name +")");
|
||||||
|
jsonReadMethod.addStatement("if(value.has(\"" + name + "\")) object." + name + "= value.get" + capName + "(\"" + name + "\")");
|
||||||
}else{
|
}else{
|
||||||
writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
|
writeMethod.addStatement("io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
|
||||||
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).read(stream)");
|
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.arc.Core.settings.getSerializer(" + typeName+ ".class).read(stream)");
|
||||||
@@ -90,22 +118,47 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
|
|||||||
}
|
}
|
||||||
|
|
||||||
readMethod.addStatement("return object");
|
readMethod.addStatement("return object");
|
||||||
|
jsonReadMethod.addStatement("return object");
|
||||||
|
|
||||||
serializer.addMethod(writeMethod.build());
|
serializer.addMethod(writeMethod.build());
|
||||||
serializer.addMethod(readMethod.build());
|
serializer.addMethod(readMethod.build());
|
||||||
|
|
||||||
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
method.addStatement("io.anuke.arc.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
|
||||||
|
|
||||||
String sname = type.toString().substring(type.toString().lastIndexOf('.') + 1);
|
name(writeMethod, "write" + simpleTypeName);
|
||||||
|
name(readMethod, "read" + simpleTypeName);
|
||||||
name(writeMethod, "write" + sname);
|
|
||||||
name(readMethod, "read" + sname);
|
|
||||||
|
|
||||||
writeMethod.addModifiers(Modifier.STATIC);
|
writeMethod.addModifiers(Modifier.STATIC);
|
||||||
readMethod.addModifiers(Modifier.STATIC);
|
readMethod.addModifiers(Modifier.STATIC);
|
||||||
|
|
||||||
classBuilder.addMethod(writeMethod.build());
|
classBuilder.addMethod(writeMethod.build());
|
||||||
classBuilder.addMethod(readMethod.build());
|
classBuilder.addMethod(readMethod.build());
|
||||||
|
|
||||||
|
classBuilder.addMethod(jsonWriteMethod.build());
|
||||||
|
classBuilder.addMethod(jsonReadMethod.build());
|
||||||
|
|
||||||
|
MethodSpec.Builder binaryJsonWriteMethod = MethodSpec.methodBuilder("write" + simpleTypeName + "StreamJson")
|
||||||
|
.returns(void.class)
|
||||||
|
.addParameter(DataOutput.class, "stream")
|
||||||
|
.addParameter(type, "object")
|
||||||
|
.addException(IOException.class)
|
||||||
|
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||||
|
.addStatement("java.io.StringWriter output = new java.io.StringWriter()")
|
||||||
|
.addStatement("bjson.setWriter(output)")
|
||||||
|
.addStatement("bjson.writeObjectStart(" + type + ".class, " + type + ".class)")
|
||||||
|
.addStatement("write" + simpleTypeName + "Json(bjson, object)")
|
||||||
|
.addStatement("bjson.writeObjectEnd()")
|
||||||
|
.addStatement("stream.writeUTF(output.toString())");
|
||||||
|
|
||||||
|
MethodSpec.Builder binaryJsonReadMethod = MethodSpec.methodBuilder("read" + simpleTypeName + "StreamJson")
|
||||||
|
.returns(type)
|
||||||
|
.addParameter(DataInput.class, "stream")
|
||||||
|
.addException(IOException.class)
|
||||||
|
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
|
||||||
|
.addStatement("return read" + simpleTypeName + "Json(bjson.fromJson(null, stream.readUTF()))");
|
||||||
|
|
||||||
|
classBuilder.addMethod(binaryJsonWriteMethod.build());
|
||||||
|
classBuilder.addMethod(binaryJsonReadMethod.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
classBuilder.addMethod(method.build());
|
classBuilder.addMethod(method.build());
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ project(":core"){
|
|||||||
|
|
||||||
compile arcModule("arc-core")
|
compile arcModule("arc-core")
|
||||||
compile arcModule("extensions:freetype")
|
compile arcModule("extensions:freetype")
|
||||||
|
//compile arcModule("extensions:postprocessing")
|
||||||
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
if(localArc() && debugged()) compile arcModule("extensions:recorder")
|
||||||
|
|
||||||
compileOnly project(":annotations")
|
compileOnly project(":annotations")
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ addplayers = Add/Remove Players
|
|||||||
customgame = Custom Game
|
customgame = Custom Game
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Close
|
close = Close
|
||||||
quit = Quit
|
quit = Quit
|
||||||
maps = Maps
|
maps = Maps
|
||||||
@@ -342,67 +343,50 @@ no = No
|
|||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]An error has occured
|
error.title = [crimson]An error has occured
|
||||||
error.crashtitle = An error has occured
|
error.crashtitle = An error has occured
|
||||||
blocks.outputspeed = Drill Speed: {0}/
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Block Info
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Power Capacity
|
blocks.powercapacity = Power Capacity
|
||||||
blocks.powershot = Power/Shot
|
blocks.powershot = Power/Shot
|
||||||
blocks.targetsair = Targets Air
|
blocks.targetsair = Targets Air
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Range
|
blocks.shootrange = Range
|
||||||
blocks.size = Size
|
blocks.size = Size
|
||||||
blocks.liquidcapacity = Liquid Capacity
|
blocks.liquidcapacity = Liquid Capacity
|
||||||
blocks.maxitemssecond = Max Items
|
|
||||||
blocks.powerrange = Power Range
|
blocks.powerrange = Power Range
|
||||||
blocks.poweruse = Power Use
|
blocks.poweruse = Power Use
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Input Item Capacity
|
|
||||||
blocks.outputitemcapacity = Output Item Capacity
|
|
||||||
blocks.itemcapacity = Item Capacity
|
blocks.itemcapacity = Item Capacity
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Power Transfer
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Production Speed
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Input Liquid
|
|
||||||
blocks.inputliquidaux = Aux Liquid
|
|
||||||
blocks.inputitem = Input Item
|
|
||||||
blocks.inputitems = Input Items
|
|
||||||
blocks.outputitem = Output Item
|
|
||||||
blocks.drilltier = Drillables
|
blocks.drilltier = Drillables
|
||||||
blocks.drillspeed = Base Drill Speed
|
blocks.drillspeed = Base Drill Speed
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Liquid Output
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Liquid Use
|
|
||||||
blocks.coolant = Coolant
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Coolant Use
|
|
||||||
blocks.inputliquidfuel = Fuel Liquid
|
|
||||||
blocks.liquidfueluse = Liquid Fuel Use
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Health
|
blocks.health = Health
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Inaccuracy
|
blocks.inaccuracy = Inaccuracy
|
||||||
blocks.shots = Shots
|
blocks.shots = Shots
|
||||||
blocks.reload = Shots/Second
|
blocks.reload = Shots/Second
|
||||||
blocks.inputfuel = Fuel
|
|
||||||
blocks.fuelburntime = Fuel Burn Time
|
|
||||||
blocks.inputcapacity = Input capacity
|
|
||||||
blocks.outputcapacity = Output capacity
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}/s
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] damage
|
bullet.damage = [stat]{0}[lightgray] damage
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -423,6 +407,9 @@ unit.liquidunits = liquid units
|
|||||||
unit.powerunits = power units
|
unit.powerunits = power units
|
||||||
unit.degrees = degrees
|
unit.degrees = degrees
|
||||||
unit.seconds = seconds
|
unit.seconds = seconds
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = items
|
unit.items = items
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
@@ -434,6 +421,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Enemy/Ally Indicators
|
setting.indicators.name = Enemy/Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -457,6 +445,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Show FPS
|
setting.fps.name = Show FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Show Power Lasers
|
setting.lasers.name = Show Power Lasers
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance, disables animations)
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
setting.musicvol.name = Music Volume
|
setting.musicvol.name = Music Volume
|
||||||
setting.mutemusic.name = Mute Music
|
setting.mutemusic.name = Mute Music
|
||||||
@@ -517,6 +506,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI (Red Team) Resources
|
rules.enemyCheat = Infinite AI (Red Team) Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -565,7 +557,7 @@ liquid.oil.name = Oil
|
|||||||
liquid.cryofluid.name = Cryofluid
|
liquid.cryofluid.name = Cryofluid
|
||||||
mech.alpha-mech.name = Alpha
|
mech.alpha-mech.name = Alpha
|
||||||
mech.alpha-mech.weapon = Heavy Repeater
|
mech.alpha-mech.weapon = Heavy Repeater
|
||||||
mech.alpha-mech.ability = None
|
mech.alpha-mech.ability = Regeneration
|
||||||
mech.alpha-mech.description = The standard mech. Has decent speed and damage output.
|
mech.alpha-mech.description = The standard mech. Has decent speed and damage output.
|
||||||
mech.delta-mech.name = Delta
|
mech.delta-mech.name = Delta
|
||||||
mech.delta-mech.weapon = Arc Generator
|
mech.delta-mech.weapon = Arc Generator
|
||||||
@@ -600,9 +592,10 @@ unit.speed = [LIGHT_GRAY]Speed: {0}
|
|||||||
mech.weapon = [LIGHT_GRAY]Weapon: {0}
|
mech.weapon = [LIGHT_GRAY]Weapon: {0}
|
||||||
mech.health = [LIGHT_GRAY]Health: {0}
|
mech.health = [LIGHT_GRAY]Health: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}%
|
||||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
mech.ability = [LIGHT_GRAY]Ability: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
||||||
@@ -864,7 +857,7 @@ block.silicon-smelter.description = Reduces sand with highly pure coal in order
|
|||||||
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
||||||
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
|
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
|
||||||
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
|
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
|
||||||
block.pulverizer.description = Crushes stone into sand. Useful when there is a lack of natural sand.
|
block.pulverizer.description = Crushes scrap into sand. Useful when there is a lack of natural sand.
|
||||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
||||||
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
|
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
|
||||||
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
|
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Přidat/Odebrat hráče
|
|||||||
customgame = Vlastní hra
|
customgame = Vlastní hra
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Zavřít
|
close = Zavřít
|
||||||
quit = Ukončit
|
quit = Ukončit
|
||||||
maps = Mapy
|
maps = Mapy
|
||||||
@@ -335,66 +336,48 @@ no = Ne
|
|||||||
info.title = Informace
|
info.title = Informace
|
||||||
error.title = [crimson]Objevila se chyba
|
error.title = [crimson]Objevila se chyba
|
||||||
error.crashtitle = Objevila se chyba
|
error.crashtitle = Objevila se chyba
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Informace o bloku
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Kapacita energie
|
blocks.powercapacity = Kapacita energie
|
||||||
blocks.powershot = Energie na výstřel
|
blocks.powershot = Energie na výstřel
|
||||||
blocks.targetsair = Zaměřuje vzdušné jednotky
|
blocks.targetsair = Zaměřuje vzdušné jednotky
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Dostřel
|
blocks.shootrange = Dostřel
|
||||||
blocks.size = velikost
|
blocks.size = velikost
|
||||||
blocks.liquidcapacity = Kapacita tekutin
|
blocks.liquidcapacity = Kapacita tekutin
|
||||||
blocks.maxitemssecond = Max předmětů
|
|
||||||
blocks.powerrange = Rozsah energie
|
blocks.powerrange = Rozsah energie
|
||||||
blocks.poweruse = Spotřebuje energie
|
blocks.poweruse = Spotřebuje energie
|
||||||
blocks.powerdamage = Energie na poškození
|
blocks.powerdamage = Energie na poškození
|
||||||
blocks.inputitemcapacity = Kapacita vstupních předmětů
|
|
||||||
blocks.outputitemcapacity = Kapacita výstupních předmětů
|
|
||||||
blocks.itemcapacity = kapacita předmětů
|
blocks.itemcapacity = kapacita předmětů
|
||||||
blocks.basepowergeneration = Základní generování energie
|
blocks.basepowergeneration = Základní generování energie
|
||||||
blocks.powertransferspeed = Přenos energie
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Rychlost produkce
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Vstupní tekutiny
|
|
||||||
blocks.inputliquidaux = Aux tekutina
|
|
||||||
blocks.inputitem = Vstupní předmět
|
|
||||||
blocks.inputitems = Vstupní předměty
|
|
||||||
blocks.outputitem = Výstupní předmět
|
|
||||||
blocks.drilltier = Vrtatelné
|
blocks.drilltier = Vrtatelné
|
||||||
blocks.drillspeed = Základní rychlost vrtu
|
blocks.drillspeed = Základní rychlost vrtu
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Výstup tekutin
|
|
||||||
blocks.liquidoutputspeed = Rychlost výstupu tekutin
|
|
||||||
blocks.liquiduse = Spotřebuje tekutin
|
|
||||||
blocks.coolant = Chlazení
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Spotřeba chlazení
|
|
||||||
blocks.inputliquidfuel = Palivo-tekutina
|
|
||||||
blocks.liquidfueluse = Spotřeba Paliva-tekutiny
|
|
||||||
blocks.boostitem = Předmět pro zrychlení
|
|
||||||
blocks.boostliquid = Tekutina pro zrychlení
|
|
||||||
blocks.health = Životy
|
blocks.health = Životy
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Nepřesnost/výchylka
|
blocks.inaccuracy = Nepřesnost/výchylka
|
||||||
blocks.shots = Střely
|
blocks.shots = Střely
|
||||||
blocks.reload = Střely za sekundu
|
blocks.reload = Střely za sekundu
|
||||||
blocks.inputfuel = Palivo
|
|
||||||
blocks.fuelburntime = Čas spalování paliva
|
|
||||||
blocks.inputcapacity = Vstupní kapacita
|
|
||||||
blocks.outputcapacity = Výstupní kapacita
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = jednotek tekutin
|
|||||||
unit.powerunits = jednotek energie
|
unit.powerunits = jednotek energie
|
||||||
unit.degrees = úhly
|
unit.degrees = úhly
|
||||||
unit.seconds = sekundy
|
unit.seconds = sekundy
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = předměty
|
unit.items = předměty
|
||||||
category.general = Všeobecné
|
category.general = Všeobecné
|
||||||
category.power = Energie
|
category.power = Energie
|
||||||
@@ -425,6 +411,7 @@ category.optional = Volitelné vylepšení
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Indikátor pro spojence
|
setting.indicators.name = Indikátor pro spojence
|
||||||
setting.autotarget.name = Automaticky zaměřuje
|
setting.autotarget.name = Automaticky zaměřuje
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Ukázat snímky/sekundu
|
setting.fps.name = Ukázat snímky/sekundu
|
||||||
setting.vsync.name = Vertikální synchronizace
|
setting.vsync.name = Vertikální synchronizace
|
||||||
setting.lasers.name = Ukázat laser energie
|
setting.lasers.name = Ukázat laser energie
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Ukázat minimapu
|
setting.minimap.name = Ukázat minimapu
|
||||||
setting.musicvol.name = Hlasitost hudby
|
setting.musicvol.name = Hlasitost hudby
|
||||||
setting.mutemusic.name = Ztišit hudbu
|
setting.mutemusic.name = Ztišit hudbu
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Kapacita předmětů: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0}
|
mech.minespeed = [LIGHT_GRAY]Rychlost těžení: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Síla těžení: {0}
|
mech.minepower = [LIGHT_GRAY]Síla těžení: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Schopnost: {0}
|
mech.ability = [LIGHT_GRAY]Schopnost: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Kapacita teploty: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viskozita: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Teplota: {0}
|
liquid.temperature = [LIGHT_GRAY]Teplota: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Hinzufügen/Entfernen von Spielern
|
|||||||
customgame = Benutzerdefiniertes Spiel
|
customgame = Benutzerdefiniertes Spiel
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <nichts>
|
none = <nichts>
|
||||||
|
minimap = Minimap
|
||||||
close = Schließen
|
close = Schließen
|
||||||
quit = Verlassen
|
quit = Verlassen
|
||||||
maps = Karten
|
maps = Karten
|
||||||
@@ -335,66 +336,48 @@ no = Nein
|
|||||||
info.title = [accent]Info
|
info.title = [accent]Info
|
||||||
error.title = [crimson] Ein Fehler ist aufgetreten
|
error.title = [crimson] Ein Fehler ist aufgetreten
|
||||||
error.crashtitle = Ein Fehler ist aufgetreten!
|
error.crashtitle = Ein Fehler ist aufgetreten!
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Blockinfo:
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Kapazität
|
blocks.powercapacity = Kapazität
|
||||||
blocks.powershot = Stromverbrauch/Schuss
|
blocks.powershot = Stromverbrauch/Schuss
|
||||||
blocks.targetsair = Visiert Luft Einheiten an
|
blocks.targetsair = Visiert Luft Einheiten an
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Reichweite
|
blocks.shootrange = Reichweite
|
||||||
blocks.size = Größe
|
blocks.size = Größe
|
||||||
blocks.liquidcapacity = Flüssigkeitskapazität
|
blocks.liquidcapacity = Flüssigkeitskapazität
|
||||||
blocks.maxitemssecond = Max Materialien
|
|
||||||
blocks.powerrange = Stromreichweite
|
blocks.powerrange = Stromreichweite
|
||||||
blocks.poweruse = Stromverbrauch
|
blocks.poweruse = Stromverbrauch
|
||||||
blocks.powerdamage = Stromverbrauch/Schadenspunkt
|
blocks.powerdamage = Stromverbrauch/Schadenspunkt
|
||||||
blocks.inputitemcapacity = Annahmekapazität
|
|
||||||
blocks.outputitemcapacity = Ausgabekapazität
|
|
||||||
blocks.itemcapacity = Materialkapazität
|
blocks.itemcapacity = Materialkapazität
|
||||||
blocks.basepowergeneration = Basis-Stromerzeugung
|
blocks.basepowergeneration = Basis-Stromerzeugung
|
||||||
blocks.powertransferspeed = Stromübertragung
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Produktionsgeschwindigkeit
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Benötigte Flüssigkeit
|
|
||||||
blocks.inputliquidaux = Optionale Flüssigkeit
|
|
||||||
blocks.inputitem = Akzeptiertes Material
|
|
||||||
blocks.inputitems = Akzeptierte Materialien
|
|
||||||
blocks.outputitem = Erzeugtes Material
|
|
||||||
blocks.drilltier = Abbaubare Erze
|
blocks.drilltier = Abbaubare Erze
|
||||||
blocks.drillspeed = Bohrgeschwindigkeit
|
blocks.drillspeed = Bohrgeschwindigkeit
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Erzeugte Flüssigkeit
|
|
||||||
blocks.liquidoutputspeed = Ausgabegeschwindigkeit
|
|
||||||
blocks.liquiduse = Flüssigkeitsverbrauch
|
|
||||||
blocks.coolant = Kühlmittel
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Kühlmittelverbrauch
|
|
||||||
blocks.inputliquidfuel = Kraftstoff
|
|
||||||
blocks.liquidfueluse = Kraftstoffverbrauch
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Lebenspunkte
|
blocks.health = Lebenspunkte
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Ungenauigkeit
|
blocks.inaccuracy = Ungenauigkeit
|
||||||
blocks.shots = Schüsse
|
blocks.shots = Schüsse
|
||||||
blocks.reload = Schüsse/Sekunde
|
blocks.reload = Schüsse/Sekunde
|
||||||
blocks.inputfuel = Kraftstoff
|
|
||||||
blocks.fuelburntime = Kraftstoff Verbrennungs-Zeit
|
|
||||||
blocks.inputcapacity = Annahmekapazität
|
|
||||||
blocks.outputcapacity = Ausgabekapazität
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = Flüssigkeitseinheiten
|
|||||||
unit.powerunits = Stromeinheiten
|
unit.powerunits = Stromeinheiten
|
||||||
unit.degrees = Grad
|
unit.degrees = Grad
|
||||||
unit.seconds = Sekunden
|
unit.seconds = Sekunden
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = Materialeinheiten
|
unit.items = Materialeinheiten
|
||||||
category.general = Generell
|
category.general = Generell
|
||||||
category.power = Strom
|
category.power = Strom
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Zielauswahl
|
setting.autotarget.name = Auto-Zielauswahl
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Zeige FPS
|
setting.fps.name = Zeige FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Zeige Stromlaser
|
setting.lasers.name = Zeige Stromlaser
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Zeige die Minimap
|
setting.minimap.name = Zeige die Minimap
|
||||||
setting.musicvol.name = Musiklautstärke
|
setting.musicvol.name = Musiklautstärke
|
||||||
setting.mutemusic.name = Musik stummschalten
|
setting.mutemusic.name = Musik stummschalten
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Materialkapazität: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Erzabbaugeschwindigkeit: {0}
|
mech.minespeed = [LIGHT_GRAY]Erzabbaugeschwindigkeit: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Erzabbaukraft: {0}
|
mech.minepower = [LIGHT_GRAY]Erzabbaukraft: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Fähigkeit: {0}
|
mech.ability = [LIGHT_GRAY]Fähigkeit: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Wärmekapazität: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Wärmekapazität: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viskosität: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viskosität: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatur: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatur: {0}
|
||||||
|
|||||||
@@ -1,919 +0,0 @@
|
|||||||
credits.text = Δημιουργία: [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]
|
|
||||||
credits = Επαίνοι
|
|
||||||
contributors = Μεταφραστές και Συνεισφέροντες
|
|
||||||
discord = Συμμετοχή στο discord του Mindustry!
|
|
||||||
link.discord.description = Το επίσημο discord chatroom του Mindustry
|
|
||||||
link.github.description = Πηγαίος κώδικας του Παιχνιδιού
|
|
||||||
link.dev-builds.description = Ασταθείς εκδόσεις παιχνιδιού
|
|
||||||
link.trello.description = Ο επίσημος πίνακας trello του παιχνιδιού για τις προσχεδιασμένες του αλλαγές
|
|
||||||
link.itch.io.description = Η σελίδα itch.io με τις εκδόσεις του παιχνιδιού για τους υπολογιστές και περιηγητές
|
|
||||||
link.google-play.description = Google Play store καταχώριση
|
|
||||||
link.wiki.description = Η επίσημη σελίδα Wiki του Mindustry
|
|
||||||
linkfail = Αποτυχία ανοίγματος συνδέσμου!\nΤο URL αντιγράφτηκε στο πρόχειρο.
|
|
||||||
screenshot = Το στιγμιότυπο αποθηκεύτηκε στο {0}
|
|
||||||
gameover = Τέλος Παιχνιδιού
|
|
||||||
gameover.pvp = Η[accent] {0}[] ομάδα είναι νικήτρια!
|
|
||||||
highscore = [accent]Καινούργιο υψηλότερο σκόρ!
|
|
||||||
stat.wave = Waves Defeated:[accent] {0}
|
|
||||||
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
|
|
||||||
stat.built = Buildings Built:[accent] {0}
|
|
||||||
stat.destroyed = Buildings Destroyed:[accent] {0}
|
|
||||||
stat.deconstructed = Buildings Deconstructed:[accent] {0}
|
|
||||||
stat.delivered = Resources Launched:
|
|
||||||
stat.rank = Final Rank: [accent]{0}
|
|
||||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\n\n[scarlet]DO IT.
|
|
||||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\n\n[scarlet]DO IT.
|
|
||||||
launcheditems = [accent]Launched Items
|
|
||||||
map.delete = Είσαι σίγουρος οτι θέλεις να διαγράψεις τον χάρτη "[accent]{0}[]"?
|
|
||||||
level.highscore = Υψηλότερο σκόρ: [accent]{0}
|
|
||||||
level.select = Level Select
|
|
||||||
level.mode = Είδος Παιχνιδιού:
|
|
||||||
showagain = Μην το ξαναεμφανήσεις στην επόμενη συνεδρία
|
|
||||||
coreattack = < Ο πυρήνας είναι υπό επίθεση! >
|
|
||||||
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
|
|
||||||
outofbounds = [[ OUT OF BOUNDS ]\n[]self-destruct in {0}
|
|
||||||
database = Core Database
|
|
||||||
savegame = Αποθήκευση Παιχνιδιού
|
|
||||||
loadgame = Φόρτωση Παιχνιδιού
|
|
||||||
joingame = Συμμετοχή σε Παιχνίδι
|
|
||||||
addplayers = Προσθήκη/Αφαίρεση Παικτών
|
|
||||||
customgame = Προσαρμοσμένο Παιχνίδι
|
|
||||||
newgame = New Game
|
|
||||||
none = <none>
|
|
||||||
close = Κλείσιμο
|
|
||||||
quit = Έξοδος
|
|
||||||
maps = Χάρτες
|
|
||||||
continue = Συνέχεια
|
|
||||||
maps.none = [LIGHT_GRAY]Δεν βρέθηκαν Χάρτες!
|
|
||||||
about.button = Σχετικά
|
|
||||||
name = Όνομα:
|
|
||||||
noname = Διάλεξε[accent] όνομα παίκτη[] πρώτα.
|
|
||||||
filename = Όνομα Αρχείου:
|
|
||||||
unlocked = Ανακάλυψη Καινούργας Δομής!
|
|
||||||
completed = [accent]Completed
|
|
||||||
techtree = Tech Tree
|
|
||||||
research.list = [LIGHT_GRAY]Research:
|
|
||||||
research = Research
|
|
||||||
researched = [LIGHT_GRAY]{0} researched.
|
|
||||||
players = {0} παίκτες ενεργοί
|
|
||||||
players.single = {0} παίκτης ενεργός
|
|
||||||
server.closing = [accent]Απενεργοποίηση Εξυπηρετητή...
|
|
||||||
server.kicked.kick = Διώχτηκες απο τον server!
|
|
||||||
server.kicked.serverClose = Ο server έκλεισε.
|
|
||||||
server.kicked.clientOutdated = Παλαιομένος client! Αναβάθμησε την έκδοση του παιχνιδιού!
|
|
||||||
server.kicked.serverOutdated = Παλαιομένος server! Ζήτα απο τον οικοδεσπότη να αναβαθμήσει την έκδοσή του!
|
|
||||||
server.kicked.banned = Είσαι μπλοκαρισμένος απο αυτόν τον server.
|
|
||||||
server.kicked.recentKick = Διώχτηκες πρόσφατα.\nΠερίμενε λίγο πριν ξανασυνδεθείς...
|
|
||||||
server.kicked.nameInUse = Υπάρχει ήδη κάποιος με αυτό το όνομα\nστον server.
|
|
||||||
server.kicked.nameEmpty = Το επιλεγμένο σου όνομα είναι άκυρο.
|
|
||||||
server.kicked.idInUse = Βρίσκεσε ήδη σε αυτόν τον server! Η σύνδεση με δύο λογαριασμούς απαγορεύεται.
|
|
||||||
server.kicked.customClient = Αυτός ο server δεν υποστηρίζει προσαρμοσμένες εκδοχές. Κατέβασε μια αυθεντική έκδοση.
|
|
||||||
server.kicked.gameover = Game over!
|
|
||||||
host.info = Το κουμπί [accent]host[] "σερβίρει" εναν server (εξυπηρετητή) στην θύρα [scarlet]6567[]. \nΌλα το άτομα στο ίδιο [LIGHT_GRAY]wifi ή τοπικό δίκτυο[] θα μπορούν να δούν τον server σου στην λίστα server τους.\n\nΑν θέλεις να μπορούν να συνδεθούν σε αυτόν απο οποιαδοίποτε διεύθυνση IP, Το [accent]port forwarding[] είναι απαραίτητο.\n\n[LIGHT_GRAY]Σημείωση: Αν κάποιος αντιμετωπίζει πρόβλημα στην σύνδεση στο παιχνίδι τοπικού δικτύου σου (LAN), σιγουρέψου οτι έχεις επιτρέψει στο Mindustry να ελέγχει το τοπικό σου δίκτυο στις ρυθμίσεις του τείχους προστασίας.
|
|
||||||
join.info = Εδώ, μπορείς να εισάγεις μια [accent]διεύθυνση (IP) server[] για να συνδεθείς σε αυτήν, ή να ανακαλύψεις servers [accent]τοπικού δικτύου[] και να συνδεθείς.\nΥποστηρίζεται και το LAN και το WAN.\n\n[LIGHT_GRAY]Σημείωση: Δεν υπάρχει αυτόματη παγκόσμια λίστα server; Αν θέλεις να συνδεθείς σε κάποιον μέσω IP, πρέπει να ρωτήσεις την διεύθυνσή τους.
|
|
||||||
hostserver = Δημιούργησε Παιχνίδι
|
|
||||||
hostserver.mobile = Δημιούργησε\nΠαιχνίδι
|
|
||||||
host = Δημιουργία
|
|
||||||
hosting = [accent]Άνοιγμα εξυπηρετητή...
|
|
||||||
hosts.refresh = Ανανέωση
|
|
||||||
hosts.discovering = Ανακάλυψη παιχνιδιών LAN
|
|
||||||
server.refreshing = Ανανέωση server
|
|
||||||
hosts.none = [lightgray]Δεν βρέθηκαν τοπικά παιχνίδια!
|
|
||||||
host.invalid = [scarlet]Δεν μπορείς να συνδεθείς στον host.
|
|
||||||
trace = Ανίχνευση Παίκτη
|
|
||||||
trace.playername = Όνομα Παίκτη: [accent]{0}
|
|
||||||
trace.ip = Διεύθυνση: [accent]{0}
|
|
||||||
trace.id = Μοναδική ID: [accent]{0}
|
|
||||||
trace.android = Android Client: [accent]{0}
|
|
||||||
trace.modclient = Προσαρμοσμένος Client: [accent]{0}
|
|
||||||
trace.totalblocksbroken = Συνολικά κατεστραμένα τετράγωνα: [accent]{0}
|
|
||||||
trace.structureblocksbroken = Συνολικές κατεστραμένες δομές: [accent]{0}
|
|
||||||
trace.lastblockbroken = Τελευταίο κατεστραμένο τετράγωνο: [accent]{0}
|
|
||||||
trace.totalblocksplaced = Σύνολο τοποθετημένων τετραγώνων: [accent]{0}
|
|
||||||
trace.lastblockplaced = Τελευταίο τοποθετημένο τετράγωνο: [accent]{0}
|
|
||||||
invalidid = Άκυρο client ID! Υπέβαλε αναφορά σφάλματος.
|
|
||||||
server.bans = Bans
|
|
||||||
server.bans.none = Δεν βρέθηκε κανένας banned παίκτης!
|
|
||||||
server.admins = Διαχειριστές
|
|
||||||
server.admins.none = Δεν βρέθηκαν διαχειριστές!
|
|
||||||
server.add = Προσθήκη Server
|
|
||||||
server.delete = Είσε σίγουρος οτι θέλεις να διαγράψεις αυτόν τον server;
|
|
||||||
server.hostname = Host: {0}
|
|
||||||
server.edit = Προσαρμογή Server
|
|
||||||
server.outdated = [crimson]Παλαιομένος Server![]
|
|
||||||
server.outdated.client = [crimson]Παλαιομένος Client![]
|
|
||||||
server.version = [lightgray]Έκδοση: {0} {1}
|
|
||||||
server.custombuild = [yellow]Προσαρμοσμένο Build
|
|
||||||
confirmban = Είσαι σίγουρος οτι θέλεις να διώξεις μόνιμα αυτόν τον παίκτη;
|
|
||||||
confirmkick = Είσαι σίγουρος οτι θέλεις να διώξεις αυτόν τον παίκτη;
|
|
||||||
confirmunban = Είσαι σίγουρος οτι θέλεις να επιτρέψεις την είσοδο αυτού του παίκτη ξανα;
|
|
||||||
confirmadmin = Είσαι σίγουρος οτι θέλεις να χρήσεις αυτόν τον παίκτη ως διαχειριστή;
|
|
||||||
confirmunadmin = Είσαι σίγουρος οτι θέλεις να αφαιρέσεις αυτόν τον παίκτη απο την λίστα διαχειριστών;
|
|
||||||
joingame.title = Συμμετοχή σε Παιχνίδι
|
|
||||||
joingame.ip = Διεύθυνση IP:
|
|
||||||
disconnect = Αποσυνδεθήκατε.
|
|
||||||
disconnect.data = Αποτυχία φώρτωσης δεδομένων κόσμου!
|
|
||||||
connecting = [accent]Σύνδεση...
|
|
||||||
connecting.data = [accent]Φώρτωση δεδομένων κόσμου...
|
|
||||||
server.port = Θύρα:
|
|
||||||
server.addressinuse = Η διεύθυνση βρήσκεται ήδη σε χρήση!
|
|
||||||
server.invalidport = Άκυρος αριθμός θύρας!
|
|
||||||
server.error = [crimson]Αποτυχία εκκίνησης εξυπηρετητή: [accent]{0}
|
|
||||||
save.old = Αυτά τα δεδομένα ανήκουν σε μια παλιότερη έκδοση του παιχνιδιού, και δεν μπορούν πλέον να χρησιμοποιηθούν.\n\n[LIGHT_GRAY]Η υποστήριξη ανάδρομης αποθήκευσης θα ενσωματωθεί στην πλήρη έκδοση 4.0.
|
|
||||||
save.new = Νέα αποθήκευση
|
|
||||||
save.overwrite = Είσαι σίγουρος οτι θέλεις να πανωγράψεις αυτήν την\nθέση αποθήκευσης;
|
|
||||||
overwrite = Πανώγραψε
|
|
||||||
save.none = Δεν βρέθηκαν δεδομένα!
|
|
||||||
saveload = [accent]Αποθήκευση...
|
|
||||||
savefail = Αποτυχία Αποθήκευσης!
|
|
||||||
save.delete.confirm = Είσαι σίγουρος οτι θέλεις να διαγράψεις αυτήν την αποθήκη;
|
|
||||||
save.delete = Διαγραφή
|
|
||||||
save.export = Εξαγωγή Δεδομένων
|
|
||||||
save.import.invalid = [accent]Αυτά τα δεδομένα είναι άκυρα!
|
|
||||||
save.import.fail = [crimson]Αποτυχία εισαγωγής δεδομένων: [accent]{0}
|
|
||||||
save.export.fail = [crimson]Αποτυχία εξαγωγής δεδομένων: [accent]{0}
|
|
||||||
save.import = Εισαγωγή Δεδομένων
|
|
||||||
save.newslot = Όνομα Αποθήκευσης:
|
|
||||||
save.rename = Μετονομασία
|
|
||||||
save.rename.text = Νέο Όνομα:
|
|
||||||
selectslot = Επιλογή Αποθήκης.
|
|
||||||
slot = [accent]Κελί {0}
|
|
||||||
save.corrupted = [accent]Το αρχείο αποθήκευσης είναι κατεστραμένο ή άκυρο!\nΑν είχες πρόσφατα αναβαθμίσει το παιχνίδι, τότε είναι πιθανώς εξ' αιτίας αλλαγής στον τρόπο αποθήκευσης και [scarlet]όχι[] προβλήματος.
|
|
||||||
empty = <καινό>
|
|
||||||
on = Ανοικτό
|
|
||||||
off = Κλειστό
|
|
||||||
save.autosave = Αυτόματη Αποθήκευση: {0}
|
|
||||||
save.map = Χάρτης: {0}
|
|
||||||
save.wave = Κύμα {0}
|
|
||||||
save.difficulty = Δυσκολία: {0}
|
|
||||||
save.date = Τελευταία Αποθήκευση: {0}
|
|
||||||
save.playtime = Χρόνος Παιχνιδιού: {0}
|
|
||||||
warning = Warning.
|
|
||||||
confirm = Επιβεβαίωση
|
|
||||||
delete = Διαγραφή
|
|
||||||
ok = OK
|
|
||||||
open = Άνοιγμα
|
|
||||||
cancel = Ακύρωση
|
|
||||||
openlink = Άνοιγμα Συνδέσμου
|
|
||||||
copylink = Αντιγραφή Συνδέσμου
|
|
||||||
back = Πίσω
|
|
||||||
quit.confirm = Είσαι σίγουρος οτι θέλεις να εγκαταλήψεις;
|
|
||||||
changelog.title = Αρχείο Αλλαγών
|
|
||||||
changelog.loading = Getting changelog...
|
|
||||||
changelog.error.android = [accent]Note that the changelog sometimes does not work on Android 4.4 and below!\nThis is due to an internal Android bug.
|
|
||||||
changelog.error.ios = [accent]The changelog is currently not supported in iOS.
|
|
||||||
changelog.error = [scarlet]Error getting changelog!\nCheck your internet connection.
|
|
||||||
changelog.current = [yellow][[Current version]
|
|
||||||
changelog.latest = [accent][[Latest version]
|
|
||||||
loading = [accent]Loading...
|
|
||||||
saving = [accent]Saving...
|
|
||||||
wave = [accent]Wave {0}
|
|
||||||
wave.waiting = [LIGHT_GRAY]Wave in {0}
|
|
||||||
waiting = [LIGHT_GRAY]Waiting...
|
|
||||||
waiting.players = Waiting for players...
|
|
||||||
wave.enemies = [LIGHT_GRAY]{0} Enemies Remaining
|
|
||||||
wave.enemy = [LIGHT_GRAY]{0} Enemy Remaining
|
|
||||||
loadimage = Load Image
|
|
||||||
saveimage = Save Image
|
|
||||||
unknown = Unknown
|
|
||||||
custom = Custom
|
|
||||||
builtin = Built-In
|
|
||||||
map.delete.confirm = Are you sure you want to delete this map? This action cannot be undone!
|
|
||||||
map.random = [accent]Random Map
|
|
||||||
map.nospawn = This map does not have any cores for the player to spawn in! Add a[ROYAL] blue[] core to this map in the editor.
|
|
||||||
map.nospawn.pvp = This map does not have any enemy cores for player to spawn into! Add[SCARLET] red[] cores to this map in the editor.
|
|
||||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
|
||||||
map.invalid = Error loading map: corrupted or invalid map file.
|
|
||||||
editor.brush = Brush
|
|
||||||
editor.openin = Open In Editor
|
|
||||||
editor.oregen = Ore Generation
|
|
||||||
editor.oregen.info = Ore Generation:
|
|
||||||
editor.mapinfo = Map Info
|
|
||||||
editor.author = Author:
|
|
||||||
editor.description = Description:
|
|
||||||
editor.waves = Waves:
|
|
||||||
waves.title = Waves
|
|
||||||
waves.remove = Remove
|
|
||||||
waves.never = <never>
|
|
||||||
waves.every = every
|
|
||||||
waves.waves = wave(s)
|
|
||||||
waves.perspawn = per spawn
|
|
||||||
waves.to = to
|
|
||||||
waves.boss = Boss
|
|
||||||
waves.preview = Preview
|
|
||||||
waves.edit = Edit...
|
|
||||||
waves.copy = Copy to Clipboard
|
|
||||||
waves.load = Load from Clipboard
|
|
||||||
waves.invalid = Invalid waves in clipboard.
|
|
||||||
waves.copied = Waves copied.
|
|
||||||
editor.default = [LIGHT_GRAY]<Default>
|
|
||||||
edit = Edit...
|
|
||||||
editor.name = Name:
|
|
||||||
editor.teams = Teams
|
|
||||||
editor.elevation = Elevation
|
|
||||||
editor.errorload = Error loading file:\n[accent]{0}
|
|
||||||
editor.errorsave = Error saving file:\n[accent]{0}
|
|
||||||
editor.errorname = Map has no name defined.
|
|
||||||
editor.update = Update
|
|
||||||
editor.randomize = Randomize
|
|
||||||
editor.apply = Apply
|
|
||||||
editor.generate = Generate
|
|
||||||
editor.resize = Resize
|
|
||||||
editor.loadmap = Load Map
|
|
||||||
editor.savemap = Save Map
|
|
||||||
editor.saved = Saved!
|
|
||||||
editor.save.noname = Your map does not have a name! Set one in the 'map info' menu.
|
|
||||||
editor.save.overwrite = Your map overwrites a built-in map! Pick a different name in the 'map info' menu.
|
|
||||||
editor.import.exists = [scarlet]Unable to import:[] a built-in map named '{0}' already exists!
|
|
||||||
editor.import = Import...
|
|
||||||
editor.importmap = Import Map
|
|
||||||
editor.importmap.description = Import an already existing map
|
|
||||||
editor.importfile = Import File
|
|
||||||
editor.importfile.description = Import an external map file
|
|
||||||
editor.importimage = Import Legacy Image
|
|
||||||
editor.importimage.description = Import an external map image file
|
|
||||||
editor.export = Export...
|
|
||||||
editor.exportfile = Export File
|
|
||||||
editor.exportfile.description = Export a map file
|
|
||||||
editor.exportimage = Export Terrain Image
|
|
||||||
editor.exportimage.description = Export a map image file
|
|
||||||
editor.loadimage = Import Terrain
|
|
||||||
editor.saveimage = Export Terrain
|
|
||||||
editor.unsaved = [scarlet]You have unsaved changes![]\nAre you sure you want to exit?
|
|
||||||
editor.resizemap = Resize Map
|
|
||||||
editor.mapname = Map Name:
|
|
||||||
editor.overwrite = [accent]Warning!\nThis overwrites an existing map.
|
|
||||||
editor.overwrite.confirm = [scarlet]Warning![] A map with this name already exists. Are you sure you want to overwrite it?
|
|
||||||
editor.selectmap = Select a map to load:
|
|
||||||
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
|
|
||||||
filter.distort = Distort
|
|
||||||
filter.noise = Noise
|
|
||||||
filter.ore = Ore
|
|
||||||
filter.rivernoise = River Noise
|
|
||||||
filter.scatter = Scatter
|
|
||||||
filter.terrain = Terrain
|
|
||||||
filter.option.scale = Scale
|
|
||||||
filter.option.chance = Chance
|
|
||||||
filter.option.mag = Magnitude
|
|
||||||
filter.option.threshold = Threshold
|
|
||||||
filter.option.circle-scale = Circle Scale
|
|
||||||
filter.option.octaves = Octaves
|
|
||||||
filter.option.falloff = Falloff
|
|
||||||
filter.option.block = Block
|
|
||||||
filter.option.floor = Floor
|
|
||||||
filter.option.wall = Wall
|
|
||||||
filter.option.ore = Ore
|
|
||||||
filter.option.floor2 = Secondary Floor
|
|
||||||
filter.option.threshold2 = Secondary Threshold
|
|
||||||
width = Width:
|
|
||||||
height = Height:
|
|
||||||
menu = Menu
|
|
||||||
play = Play
|
|
||||||
load = Load
|
|
||||||
save = Save
|
|
||||||
fps = FPS: {0}
|
|
||||||
tps = TPS: {0}
|
|
||||||
ping = Ping: {0}ms
|
|
||||||
language.restart = Please restart your game for the language settings to take effect.
|
|
||||||
settings = Settings
|
|
||||||
tutorial = Tutorial
|
|
||||||
editor = Editor
|
|
||||||
mapeditor = Map Editor
|
|
||||||
donate = Donate
|
|
||||||
abandon = Abandon
|
|
||||||
abandon.text = This zone and all its resources will be lost to the enemy.
|
|
||||||
locked = Locked
|
|
||||||
complete = [LIGHT_GRAY]Reach:
|
|
||||||
zone.requirement = Wave {0} in zone {1}
|
|
||||||
resume = Resume Zone:\n[LIGHT_GRAY]{0}
|
|
||||||
bestwave = [LIGHT_GRAY]Best Wave: {0}
|
|
||||||
launch = < LAUNCH >
|
|
||||||
launch.title = Launch Successful
|
|
||||||
launch.next = [LIGHT_GRAY]next opportunity at wave {0}
|
|
||||||
launch.unable = [scarlet]Unable to LAUNCH.[] {0} Enemies.
|
|
||||||
launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
|
|
||||||
uncover = Uncover
|
|
||||||
configure = Configure Loadout
|
|
||||||
configure.locked = [LIGHT_GRAY]Unlock configuring loadout:\nWave {0}.
|
|
||||||
zone.unlocked = [LIGHT_GRAY]{0} unlocked.
|
|
||||||
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
|
|
||||||
zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
|
|
||||||
zone.resources = Resources Detected:
|
|
||||||
add = Add...
|
|
||||||
boss.health = Boss Health
|
|
||||||
connectfail = [crimson]Failed to connect to server:\n\n[accent]{0}
|
|
||||||
error.unreachable = Server unreachable.\nIs the address spelled correctly?
|
|
||||||
error.invalidaddress = Invalid address.
|
|
||||||
error.timedout = Timed out!\nMake sure the host has port forwarding set up, and that the address is correct!
|
|
||||||
error.mismatch = Packet error:\npossible client/server version mismatch.\nMake sure you and the host have the latest version of Mindustry!
|
|
||||||
error.alreadyconnected = Already connected.
|
|
||||||
error.mapnotfound = Map file not found!
|
|
||||||
error.io = Network I/O error.
|
|
||||||
error.any = Unknown network error.
|
|
||||||
zone.groundZero.name = Ground Zero
|
|
||||||
zone.craters.name = The Craters
|
|
||||||
zone.frozenForest.name = Frozen Forest
|
|
||||||
zone.ruinousShores.name = Ruinous Shores
|
|
||||||
zone.stainedMountains.name = Stained Mountains
|
|
||||||
zone.desolateRift.name = Desolate Rift
|
|
||||||
zone.nuclearComplex.name = Nuclear Production Complex
|
|
||||||
settings.language = Language
|
|
||||||
settings.reset = Reset to Defaults
|
|
||||||
settings.rebind = Rebind
|
|
||||||
settings.controls = Controls
|
|
||||||
settings.game = Game
|
|
||||||
settings.sound = Sound
|
|
||||||
settings.graphics = Graphics
|
|
||||||
settings.cleardata = Clear Game Data...
|
|
||||||
settings.clear.confirm = Are you sure you want to clear this data?\nWhat is done cannot be undone!
|
|
||||||
settings.clearall.confirm = [scarlet]WARNING![]\nThis will clear all data, including saves, maps, unlocks and keybinds.\nOnce you press 'ok' the game will wipe all data and automatically exit.
|
|
||||||
settings.clearunlocks = Clear Unlocks
|
|
||||||
settings.clearall = Clear All
|
|
||||||
paused = [accent]< Paused >
|
|
||||||
yes = Yes
|
|
||||||
no = No
|
|
||||||
info.title = Info
|
|
||||||
error.title = [crimson]An error has occured
|
|
||||||
error.crashtitle = An error has occured
|
|
||||||
blocks.outputspeed = Drill Speed: {0}/
|
|
||||||
blocks.efficiency = Efficiency: {0}%
|
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
|
||||||
blocks.blockinfo = Block Info
|
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Power Capacity
|
|
||||||
blocks.powershot = Power/Shot
|
|
||||||
blocks.targetsair = Targets Air
|
|
||||||
blocks.targetsground = Targets Ground
|
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
|
||||||
blocks.launchtime = Time Between Launches
|
|
||||||
blocks.shootrange = Range
|
|
||||||
blocks.size = Size
|
|
||||||
blocks.liquidcapacity = Liquid Capacity
|
|
||||||
blocks.maxitemssecond = Max Items
|
|
||||||
blocks.powerrange = Power Range
|
|
||||||
blocks.poweruse = Power Use
|
|
||||||
blocks.powerdamage = Power/Damage
|
|
||||||
blocks.inputitemcapacity = Input Item Capacity
|
|
||||||
blocks.outputitemcapacity = Output Item Capacity
|
|
||||||
blocks.itemcapacity = Item Capacity
|
|
||||||
blocks.basepowergeneration = Base Power Generation
|
|
||||||
blocks.powertransferspeed = Power Transfer
|
|
||||||
blocks.craftspeed = Production Speed
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
|
||||||
blocks.range = Range
|
|
||||||
blocks.inputliquid = Input Liquid
|
|
||||||
blocks.inputliquidaux = Aux Liquid
|
|
||||||
blocks.inputitem = Input Item
|
|
||||||
blocks.inputitems = Input Items
|
|
||||||
blocks.outputitem = Output Item
|
|
||||||
blocks.drilltier = Drillables
|
|
||||||
blocks.drillspeed = Base Drill Speed
|
|
||||||
blocks.maxunits = Max Active Units
|
|
||||||
blocks.liquidoutput = Liquid Output
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Liquid Use
|
|
||||||
blocks.coolant = Coolant
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Coolant Use
|
|
||||||
blocks.inputliquidfuel = Fuel Liquid
|
|
||||||
blocks.liquidfueluse = Liquid Fuel Use
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Health
|
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Inaccuracy
|
|
||||||
blocks.shots = Shots
|
|
||||||
blocks.reload = Shots/Second
|
|
||||||
blocks.inputfuel = Fuel
|
|
||||||
blocks.fuelburntime = Fuel Burn Time
|
|
||||||
blocks.inputcapacity = Input capacity
|
|
||||||
blocks.outputcapacity = Output capacity
|
|
||||||
blocks.ammo = Ammo
|
|
||||||
bullet.damage = [stat]{0}[lightgray] damage
|
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
|
||||||
bullet.incendiary = [stat]incendiary
|
|
||||||
bullet.homing = [stat]homing
|
|
||||||
bullet.shock = [stat]shock
|
|
||||||
bullet.frag = [stat]frag
|
|
||||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
|
||||||
bullet.freezing = [stat]freezing
|
|
||||||
bullet.tarred = [stat]tarred
|
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
|
||||||
bullet.reload = [stat]{0}[lightgray]x fire rate
|
|
||||||
unit.blocks = blocks
|
|
||||||
unit.powersecond = power units/second
|
|
||||||
unit.liquidsecond = liquid units/second
|
|
||||||
unit.itemssecond = items/second
|
|
||||||
unit.liquidunits = liquid units
|
|
||||||
unit.powerunits = power units
|
|
||||||
unit.degrees = degrees
|
|
||||||
unit.seconds = seconds
|
|
||||||
unit.items = items
|
|
||||||
category.general = General
|
|
||||||
category.power = Power
|
|
||||||
category.liquids = Liquids
|
|
||||||
category.items = Items
|
|
||||||
category.crafting = Crafting
|
|
||||||
category.shooting = Shooting
|
|
||||||
category.optional = Optional Enhancements
|
|
||||||
setting.landscape.name = Lock Landscape
|
|
||||||
setting.shadows.name = Shadows
|
|
||||||
setting.animatedwater.name = Animated Water
|
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
|
||||||
setting.indicators.name = Ally Indicators
|
|
||||||
setting.autotarget.name = Auto-Target
|
|
||||||
setting.fpscap.name = Max FPS
|
|
||||||
setting.fpscap.none = None
|
|
||||||
setting.fpscap.text = {0} FPS
|
|
||||||
setting.swapdiagonal.name = Always Diagonal Placement
|
|
||||||
setting.difficulty.training = training
|
|
||||||
setting.difficulty.easy = easy
|
|
||||||
setting.difficulty.normal = normal
|
|
||||||
setting.difficulty.hard = hard
|
|
||||||
setting.difficulty.insane = insane
|
|
||||||
setting.difficulty.name = Difficulty:
|
|
||||||
setting.screenshake.name = Screen Shake
|
|
||||||
setting.effects.name = Display Effects
|
|
||||||
setting.sensitivity.name = Controller Sensitivity
|
|
||||||
setting.saveinterval.name = Autosave Interval
|
|
||||||
setting.seconds = {0} Seconds
|
|
||||||
setting.fullscreen.name = Fullscreen
|
|
||||||
setting.borderless.name = Borderless Window
|
|
||||||
setting.fps.name = Show FPS
|
|
||||||
setting.vsync.name = VSync
|
|
||||||
setting.lasers.name = Show Power Lasers
|
|
||||||
setting.minimap.name = Show Minimap
|
|
||||||
setting.musicvol.name = Music Volume
|
|
||||||
setting.mutemusic.name = Mute Music
|
|
||||||
setting.sfxvol.name = SFX Volume
|
|
||||||
setting.mutesound.name = Mute Sound
|
|
||||||
setting.crashreport.name = Send Anonymous Crash Reports
|
|
||||||
keybind.title = Rebind Keys
|
|
||||||
category.general.name = General
|
|
||||||
category.view.name = View
|
|
||||||
category.multiplayer.name = Multiplayer
|
|
||||||
command.attack = Attack
|
|
||||||
command.retreat = Retreat
|
|
||||||
command.patrol = Patrol
|
|
||||||
keybind.gridMode.name = Block Select
|
|
||||||
keybind.gridModeShift.name = Category Select
|
|
||||||
keybind.press = Press a key...
|
|
||||||
keybind.press.axis = Press an axis or key...
|
|
||||||
keybind.screenshot.name = Map Screenshot
|
|
||||||
keybind.move_x.name = Move x
|
|
||||||
keybind.move_y.name = Move y
|
|
||||||
keybind.select.name = Select/Shoot
|
|
||||||
keybind.diagonal_placement.name = Diagonal Placement
|
|
||||||
keybind.pick.name = Pick Block
|
|
||||||
keybind.break_block.name = Break Block
|
|
||||||
keybind.deselect.name = Deselect
|
|
||||||
keybind.shoot.name = Shoot
|
|
||||||
keybind.zoom_hold.name = Zoom Hold
|
|
||||||
keybind.zoom.name = Zoom
|
|
||||||
keybind.menu.name = Menu
|
|
||||||
keybind.pause.name = Pause
|
|
||||||
keybind.dash.name = Dash
|
|
||||||
keybind.chat.name = Chat
|
|
||||||
keybind.player_list.name = Player list
|
|
||||||
keybind.console.name = Console
|
|
||||||
keybind.rotate.name = Rotate
|
|
||||||
keybind.toggle_menus.name = Toggle menus
|
|
||||||
keybind.chat_history_prev.name = Chat history prev
|
|
||||||
keybind.chat_history_next.name = Chat history next
|
|
||||||
keybind.chat_scroll.name = Chat scroll
|
|
||||||
keybind.drop_unit.name = drop unit
|
|
||||||
keybind.zoom_minimap.name = Zoom minimap
|
|
||||||
mode.help.title = Description of modes
|
|
||||||
mode.survival.name = Survival
|
|
||||||
mode.survival.description = The normal mode. Limited resources and automatic incoming waves.
|
|
||||||
mode.sandbox.name = sandbox
|
|
||||||
mode.sandbox.description = infinite resources and no timer for waves.
|
|
||||||
mode.freebuild.name = freebuild
|
|
||||||
mode.freebuild.description = limited resources and no timer for waves.
|
|
||||||
mode.pvp.name = PvP
|
|
||||||
mode.pvp.description = fight against other players locally.
|
|
||||||
mode.attack.name = Attack
|
|
||||||
mode.attack.description = No waves, with the goal to destroy the enemy base.
|
|
||||||
mode.custom = Custom Rules
|
|
||||||
rules.infiniteresources = Infinite Resources
|
|
||||||
rules.wavetimer = Wave Timer
|
|
||||||
rules.waves = Waves
|
|
||||||
rules.enemyCheat = Infinite AI (Red Team) Resources
|
|
||||||
rules.pvp = PvP
|
|
||||||
rules.unitdrops = Unit Drops
|
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
|
||||||
rules.buildcostmultiplier = Build Cost Multiplier
|
|
||||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
|
||||||
content.item.name = Items
|
|
||||||
content.liquid.name = Liquids
|
|
||||||
content.unit.name = Units
|
|
||||||
content.block.name = Blocks
|
|
||||||
content.mech.name = Mechs
|
|
||||||
item.copper.name = Copper
|
|
||||||
item.copper.description = A useful structure material. Used extensively in all types of blocks.
|
|
||||||
item.lead.name = Lead
|
|
||||||
item.lead.description = A basic starter material. Used extensively in electronics and liquid transportation blocks.
|
|
||||||
item.coal.name = Coal
|
|
||||||
item.coal.description = A common and readily available fuel.
|
|
||||||
item.graphite.name = Graphite
|
|
||||||
item.titanium.name = Titanium
|
|
||||||
item.titanium.description = A rare super-light metal used extensively in liquid transportation, drills and aircraft.
|
|
||||||
item.thorium.name = Thorium
|
|
||||||
item.thorium.description = A dense, radioactive metal used as structural support and nuclear fuel.
|
|
||||||
item.silicon.name = Silicon
|
|
||||||
item.silicon.description = An extremely useful semiconductor, with applications in solar panels and many complex electronics.
|
|
||||||
item.plastanium.name = Plastanium
|
|
||||||
item.plastanium.description = A light, ductile material used in advanced aircraft and fragmentation ammunition.
|
|
||||||
item.phase-fabric.name = Phase Fabric
|
|
||||||
item.phase-fabric.description = A near-weightless substance used in advanced electronics and self-repairing technology.
|
|
||||||
item.surge-alloy.name = Surge Alloy
|
|
||||||
item.surge-alloy.description = An advanced alloy with unique electrical properties.
|
|
||||||
item.spore-pod.name = Spore Pod
|
|
||||||
item.spore-pod.description = Used for conversion into oil, explosives and fuel.
|
|
||||||
item.sand.name = Sand
|
|
||||||
item.sand.description = A common material that is used extensively in smelting, both in alloying and as a flux.
|
|
||||||
item.blast-compound.name = Blast Compound
|
|
||||||
item.blast-compound.description = A volatile compound used in bombs and explosives. While it can burned as fuel, this is not advised.
|
|
||||||
item.pyratite.name = Pyratite
|
|
||||||
item.pyratite.description = An extremely flammable substance used in incendiary weapons.
|
|
||||||
item.metaglass.name = Metaglass
|
|
||||||
item.metaglass.description = A super-tough glass compound. Extensively used for liquid distribution and storage.
|
|
||||||
item.scrap.name = Scrap
|
|
||||||
item.scrap.description = Leftover remnants of old structures and units. Contains trace amounts of many different metals.
|
|
||||||
liquid.water.name = Water
|
|
||||||
liquid.slag.name = Slag
|
|
||||||
liquid.oil.name = Oil
|
|
||||||
liquid.cryofluid.name = Cryofluid
|
|
||||||
mech.alpha-mech.name = Alpha
|
|
||||||
mech.alpha-mech.weapon = Heavy Repeater
|
|
||||||
mech.alpha-mech.ability = Drone Swarm
|
|
||||||
mech.alpha-mech.description = The standard mech. Has decent speed and damage output; can create up to 3 drones for increased offensive capability.
|
|
||||||
mech.delta-mech.name = Delta
|
|
||||||
mech.delta-mech.weapon = Arc Generator
|
|
||||||
mech.delta-mech.ability = Discharge
|
|
||||||
mech.delta-mech.description = A fast, lightly-armored mech made for hit-and-run attacks. Does little damage against structures, but can kill large groups of enemy units very quickly with its arc lightning weapons.
|
|
||||||
mech.tau-mech.name = Tau
|
|
||||||
mech.tau-mech.weapon = Restruct Laser
|
|
||||||
mech.tau-mech.ability = Repair Burst
|
|
||||||
mech.tau-mech.description = The support mech. Heals allied blocks by shooting at them. Can heal allies in a radius with its repair ability.
|
|
||||||
mech.omega-mech.name = Omega
|
|
||||||
mech.omega-mech.weapon = Swarm Missiles
|
|
||||||
mech.omega-mech.ability = Armored Configuration
|
|
||||||
mech.omega-mech.description = A bulky and well-armored mech, made for front-line assaults. Its armor ability can block up to 90% of incoming damage.
|
|
||||||
mech.dart-ship.name = Dart
|
|
||||||
mech.dart-ship.weapon = Repeater
|
|
||||||
mech.dart-ship.description = The standard ship. Reasonably fast and light, but has little offensive capability and low mining speed.
|
|
||||||
mech.javelin-ship.name = Javelin
|
|
||||||
mech.javelin-ship.description = A hit-and-run strike ship. While initially slow, it can accelerate to great speeds and fly by enemy outposts, dealing large amounts of damage with its lightning ability and missiles.
|
|
||||||
mech.javelin-ship.weapon = Burst Missiles
|
|
||||||
mech.javelin-ship.ability = Discharge Booster
|
|
||||||
mech.trident-ship.name = Trident
|
|
||||||
mech.trident-ship.description = A heavy bomber. Reasonably well armored.
|
|
||||||
mech.trident-ship.weapon = Bomb Bay
|
|
||||||
mech.glaive-ship.name = Glaive
|
|
||||||
mech.glaive-ship.description = A large, well-armored gunship. Equipped with an incendiary repeater. Good acceleration and maximum speed.
|
|
||||||
mech.glaive-ship.weapon = Flame Repeater
|
|
||||||
item.explosiveness = [LIGHT_GRAY]Explosiveness: {0}%
|
|
||||||
item.flammability = [LIGHT_GRAY]Flammability: {0}%
|
|
||||||
item.radioactivity = [LIGHT_GRAY]Radioactivity: {0}%
|
|
||||||
unit.health = [LIGHT_GRAY]Health: {0}
|
|
||||||
unit.speed = [LIGHT_GRAY]Speed: {0}
|
|
||||||
mech.weapon = [LIGHT_GRAY]Weapon: {0}
|
|
||||||
mech.health = [LIGHT_GRAY]Health: {0}
|
|
||||||
mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
|
||||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
|
||||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
|
||||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
|
||||||
block.grass.name = Grass
|
|
||||||
block.salt.name = Salt
|
|
||||||
block.sandrocks.name = Sand Rocks
|
|
||||||
block.spore-pine.name = Spore Pine
|
|
||||||
block.sporerocks.name = Spore Rocks
|
|
||||||
block.rock.name = Rock
|
|
||||||
block.snowrock.name = Snow Rock
|
|
||||||
block.shale.name = Shale
|
|
||||||
block.shale-boulder.name = Shale Boulder
|
|
||||||
block.moss.name = Moss
|
|
||||||
block.spore-moss.name = Spore Moss
|
|
||||||
block.shalerocks.name = Shale Rocks
|
|
||||||
block.scrap-wall.name = Scrap Wall
|
|
||||||
block.scrap-wall-large.name = Large Scrap Wall
|
|
||||||
block.scrap-wall-huge.name = Huge Scrap Wall
|
|
||||||
block.scrap-wall-gigantic.name = Gigantic Scrap Wall
|
|
||||||
block.thruster.name = Thruster
|
|
||||||
block.kiln.name = Kiln
|
|
||||||
block.kiln.description = Smelts sand and lead into metaglass. Requires small amounts of power.
|
|
||||||
block.graphite-press.name = Graphite Press
|
|
||||||
block.multi-press.name = Multi-Press
|
|
||||||
block.constructing = {0} [LIGHT_GRAY](Constructing)
|
|
||||||
block.spawn.name = Enemy Spawn
|
|
||||||
block.core-shard.name = Core: Shard
|
|
||||||
block.core-foundation.name = Core: Foundation
|
|
||||||
block.core-nucleus.name = Core: Nucleus
|
|
||||||
block.deepwater.name = deepwater
|
|
||||||
block.water.name = water
|
|
||||||
block.tainted-water.name = Tainted Water
|
|
||||||
block.darksand-tainted-water.name = Dark Sand Tainted Water
|
|
||||||
block.tar.name = Tar
|
|
||||||
block.stone.name = Stone
|
|
||||||
block.sand.name = Sand
|
|
||||||
block.darksand.name = Dark Sand
|
|
||||||
block.ice.name = Ice
|
|
||||||
block.snow.name = Snow
|
|
||||||
block.craters.name = Craters
|
|
||||||
block.sand-water.name = Sand water
|
|
||||||
block.darksand-water.name = Dark Sand Water
|
|
||||||
block.char.name = Char
|
|
||||||
block.holostone.name = Holo stone
|
|
||||||
block.ice-snow.name = Ice Snow
|
|
||||||
block.rocks.name = Rocks
|
|
||||||
block.icerocks.name = Ice rocks
|
|
||||||
block.snowrocks.name = Snow Rocks
|
|
||||||
block.dunerocks.name = Dune Rocks
|
|
||||||
block.pine.name = Pine
|
|
||||||
block.white-tree-dead.name = White Tree Dead
|
|
||||||
block.white-tree.name = White Tree
|
|
||||||
block.spore-cluster.name = Spore Cluster
|
|
||||||
block.metal-floor.name = Metal Floor 1
|
|
||||||
block.metal-floor-2.name = Metal Floor 2
|
|
||||||
block.metal-floor-3.name = Metal Floor 3
|
|
||||||
block.metal-floor-5.name = Metal Floor 4
|
|
||||||
block.metal-floor-damaged.name = Metal Floor Damaged
|
|
||||||
block.ignarock.name = Igna Rock
|
|
||||||
block.hotrock.name = Hot Rock
|
|
||||||
block.magmarock.name = Magma Rock
|
|
||||||
block.cliffs.name = Cliffs
|
|
||||||
block.copper-wall.name = Copper Wall
|
|
||||||
block.copper-wall-large.name = Large Copper Wall
|
|
||||||
block.titanium-wall.name = Titanium Wall
|
|
||||||
block.titanium-wall-large.name = Large Titanium Wall
|
|
||||||
block.phase-wall.name = Phase Wall
|
|
||||||
block.phase-wall-large.name = Large Phase Wall
|
|
||||||
block.thorium-wall.name = Thorium Wall
|
|
||||||
block.thorium-wall-large.name = Large Thorium Wall
|
|
||||||
block.door.name = Door
|
|
||||||
block.door-large.name = Large Door
|
|
||||||
block.duo.name = Duo
|
|
||||||
block.scorch.name = Scorch
|
|
||||||
block.scatter.name = Scatter
|
|
||||||
block.hail.name = Hail
|
|
||||||
block.lancer.name = Lancer
|
|
||||||
block.conveyor.name = Conveyor
|
|
||||||
block.titanium-conveyor.name = Titanium Conveyor
|
|
||||||
block.junction.name = Junction
|
|
||||||
block.router.name = Router
|
|
||||||
block.distributor.name = Distributor
|
|
||||||
block.sorter.name = Sorter
|
|
||||||
block.sorter.description = Sorts items. If an item matches the selection, it is allowed to pass. Otherwise, the item is outputted to the left and right.
|
|
||||||
block.overflow-gate.name = Overflow Gate
|
|
||||||
block.overflow-gate.description = A combination splitter and router that only outputs to the left and right if the front path is blocked.
|
|
||||||
block.silicon-smelter.name = Silicon Smelter
|
|
||||||
block.phase-weaver.name = Phase Weaver
|
|
||||||
block.pulverizer.name = Pulverizer
|
|
||||||
block.cryofluidmixer.name = Cryofluid Mixer
|
|
||||||
block.melter.name = Melter
|
|
||||||
block.incinerator.name = Incinerator
|
|
||||||
block.spore-press.name = Spore Press
|
|
||||||
block.separator.name = Separator
|
|
||||||
block.power-node.name = Power Node
|
|
||||||
block.power-node-large.name = Large Power Node
|
|
||||||
block.surge-tower.name = Surge Tower
|
|
||||||
block.battery.name = Battery
|
|
||||||
block.battery-large.name = Large Battery
|
|
||||||
block.combustion-generator.name = Combustion Generator
|
|
||||||
block.turbine-generator.name = Turbine Generator
|
|
||||||
block.differential-generator.name = Differential Generator
|
|
||||||
block.impact-reactor.name = Impact Reactor
|
|
||||||
block.mechanical-drill.name = Mechanical Drill
|
|
||||||
block.pneumatic-drill.name = Pneumatic Drill
|
|
||||||
block.laser-drill.name = Laser Drill
|
|
||||||
block.water-extractor.name = Water Extractor
|
|
||||||
block.cultivator.name = Cultivator
|
|
||||||
block.alpha-dart-mech-pad.name = Alpha-Dart Mech Pad
|
|
||||||
block.delta-mech-pad.name = Delta Mech Pad
|
|
||||||
block.javelin-ship-pad.name = Javelin Ship Pad
|
|
||||||
block.trident-ship-pad.name = Trident Ship Pad
|
|
||||||
block.glaive-ship-pad.name = Glaive Ship Pad
|
|
||||||
block.omega-mech-pad.name = Omega Mech Pad
|
|
||||||
block.tau-mech-pad.name = Tau Mech Pad
|
|
||||||
block.conduit.name = Conduit
|
|
||||||
block.mechanical-pump.name = Mechanical Pump
|
|
||||||
block.item-source.name = Item Source
|
|
||||||
block.item-void.name = Item Void
|
|
||||||
block.liquid-source.name = Liquid Source
|
|
||||||
block.power-void.name = Power Void
|
|
||||||
block.power-source.name = Power Infinite
|
|
||||||
block.unloader.name = Unloader
|
|
||||||
block.vault.name = Vault
|
|
||||||
block.wave.name = Wave
|
|
||||||
block.swarmer.name = Swarmer
|
|
||||||
block.salvo.name = Salvo
|
|
||||||
block.ripple.name = Ripple
|
|
||||||
block.phase-conveyor.name = Phase Conveyor
|
|
||||||
block.bridge-conveyor.name = Bridge Conveyor
|
|
||||||
block.plastanium-compressor.name = Plastanium Compressor
|
|
||||||
block.pyratite-mixer.name = Pyratite Mixer
|
|
||||||
block.blast-mixer.name = Blast Mixer
|
|
||||||
block.solar-panel.name = Solar Panel
|
|
||||||
block.solar-panel-large.name = Large Solar Panel
|
|
||||||
block.oil-extractor.name = Oil Extractor
|
|
||||||
block.spirit-factory.name = Spirit Drone Factory
|
|
||||||
block.phantom-factory.name = Phantom Drone Factory
|
|
||||||
block.wraith-factory.name = Wraith Fighter Factory
|
|
||||||
block.ghoul-factory.name = Ghoul Bomber Factory
|
|
||||||
block.dagger-factory.name = Dagger Mech Factory
|
|
||||||
block.crawler-factory.name = Crawler Mech Factory
|
|
||||||
block.titan-factory.name = Titan Mech Factory
|
|
||||||
block.fortress-factory.name = Fortress Mech Factory
|
|
||||||
block.revenant-factory.name = Revenant Fighter Factory
|
|
||||||
block.repair-point.name = Repair Point
|
|
||||||
block.pulse-conduit.name = Pulse Conduit
|
|
||||||
block.phase-conduit.name = Phase Conduit
|
|
||||||
block.liquid-router.name = Liquid Router
|
|
||||||
block.liquid-tank.name = Liquid Tank
|
|
||||||
block.liquid-junction.name = Liquid Junction
|
|
||||||
block.bridge-conduit.name = Bridge Conduit
|
|
||||||
block.rotary-pump.name = Rotary Pump
|
|
||||||
block.thorium-reactor.name = Thorium Reactor
|
|
||||||
block.mass-driver.name = Mass Driver
|
|
||||||
block.blast-drill.name = Airblast Drill
|
|
||||||
block.thermal-pump.name = Thermal Pump
|
|
||||||
block.thermal-generator.name = Thermal Generator
|
|
||||||
block.alloy-smelter.name = Alloy Smelter
|
|
||||||
block.mender.name = Mender
|
|
||||||
block.mend-projector.name = Mend Projector
|
|
||||||
block.surge-wall.name = Surge Wall
|
|
||||||
block.surge-wall-large.name = Large Surge Wall
|
|
||||||
block.cyclone.name = Cyclone
|
|
||||||
block.fuse.name = Fuse
|
|
||||||
block.shock-mine.name = Shock Mine
|
|
||||||
block.overdrive-projector.name = Overdrive Projector
|
|
||||||
block.force-projector.name = Force Projector
|
|
||||||
block.arc.name = Arc
|
|
||||||
block.rtg-generator.name = RTG Generator
|
|
||||||
block.spectre.name = Spectre
|
|
||||||
block.meltdown.name = Meltdown
|
|
||||||
block.container.name = Container
|
|
||||||
block.launch-pad.name = Launch Pad
|
|
||||||
block.launch-pad.description = Launches batches of items without any need for a core launch. Unfinished.
|
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
|
||||||
team.blue.name = blue
|
|
||||||
team.red.name = red
|
|
||||||
team.orange.name = orange
|
|
||||||
team.none.name = gray
|
|
||||||
team.green.name = green
|
|
||||||
team.purple.name = purple
|
|
||||||
unit.spirit.name = Spirit Drone
|
|
||||||
unit.spirit.description = The starter drone unit. Spawns in the core by default. Automatically mines ores and repairs blocks.
|
|
||||||
unit.phantom.name = Phantom Drone
|
|
||||||
unit.phantom.description = An advanced drone unit. Automatically mines ores and repairs blocks. Significantly more effective than a spirit drone.
|
|
||||||
unit.dagger.name = Dagger
|
|
||||||
unit.dagger.description = A basic ground unit. Useful in swarms.
|
|
||||||
unit.crawler.name = Crawler
|
|
||||||
unit.titan.name = Titan
|
|
||||||
unit.titan.description = An advanced, armored ground unit. Attacks both ground and air targets.
|
|
||||||
unit.ghoul.name = Ghoul Bomber
|
|
||||||
unit.ghoul.description = A heavy carpet bomber.
|
|
||||||
unit.wraith.name = Wraith Fighter
|
|
||||||
unit.wraith.description = A fast, hit-and-run interceptor unit.
|
|
||||||
unit.fortress.name = Fortress
|
|
||||||
unit.fortress.description = A heavy artillery ground unit.
|
|
||||||
unit.revenant.name = Revenant
|
|
||||||
unit.eruptor.name = Eruptor
|
|
||||||
unit.chaos-array.name = Chaos Array
|
|
||||||
unit.eradicator.name = Eradicator
|
|
||||||
unit.lich.name = Lich
|
|
||||||
unit.reaper.name = Reaper
|
|
||||||
tutorial.begin = Your mission here is to eradicate the[LIGHT_GRAY] enemy[].\n\nBegin by[accent] mining copper[]. Tap a copper ore vein near your core to do this.
|
|
||||||
tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nPlace one on a copper vein.
|
|
||||||
tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.
|
|
||||||
tutorial.morecopper = More copper is required.\n\nEither mine it manually, or place more drills.
|
|
||||||
tutorial.turret = Defensive structures must be built to repel the[LIGHT_GRAY] enemy[].\nBuild a duo turret near your base.
|
|
||||||
tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill next to the turret to supply it with mined copper.
|
|
||||||
tutorial.waves = The[LIGHT_GRAY] enemy[] approaches.\n\nDefend your core for 2 waves. Build more turrets.
|
|
||||||
tutorial.lead = More ores are available. Explore and mine[accent] lead[].\n\nDrag from your unit to the core to transfer resources.
|
|
||||||
tutorial.smelter = Copper and lead are weak metals.\nSuperior[accent] Dense Alloy[] can be created in a smelter.\n\nBuild one.
|
|
||||||
tutorial.densealloy = The smelter will now produce alloy.\nGet some.\nImprove the production if necessary.
|
|
||||||
tutorial.siliconsmelter = The core will now create a[accent] spirit drone[] for mining and repairing blocks.\n\nFactories for other units can be created with [accent] silicon.\nMake a silicon smelter.
|
|
||||||
tutorial.silicondrill = Silicon requires[accent] coal[] and[accent] sand[].\nStart by making drills.
|
|
||||||
tutorial.generator = This technology requires power.\nCreate a[accent] combustion generator[] for it.
|
|
||||||
tutorial.generatordrill = Combustion generators need fuel.\nFuel it with coal from a drill.
|
|
||||||
tutorial.node = Power requires transport.\nCreate a[accent] power node[] next to your combustion generator to transfer its power.
|
|
||||||
tutorial.nodelink = Power can be transferred through contacting power blocks and generators, or by linked power nodes.\n\nLink power by tapping the node and selecting the generator and silicon smelter.
|
|
||||||
tutorial.silicon = Silicon is being produced. Get some.\n\nImproving the production system is advised.
|
|
||||||
tutorial.daggerfactory = Construct a[accent] dagger mech factory.[]\n\nThis will be used to create attack mechs.
|
|
||||||
tutorial.router = Factories need resources to function.\nCreate a router to split conveyor resources.
|
|
||||||
tutorial.dagger = Link power nodes to the factory.\nOnce requirements are met, a mech will be created.\n\nCreate more drills, generators and conveyors as necessary.
|
|
||||||
tutorial.battle = The[LIGHT_GRAY] enemy[] has revealed their core.\nDestroy it with your unit and dagger mechs.
|
|
||||||
block.copper-wall.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.
|
|
||||||
block.copper-wall-large.description = A cheap defensive block.\nUseful for protecting the core and turrets in the first few waves.\nSpans multiple tiles.
|
|
||||||
block.thorium-wall.description = A strong defensive block.\nGood protection from enemies.
|
|
||||||
block.thorium-wall-large.description = A strong defensive block.\nGood protection from enemies.\nSpans multiple tiles.
|
|
||||||
block.phase-wall.description = Not as strong as a thorium wall but will deflect bullets unless they are too powerful.
|
|
||||||
block.phase-wall-large.description = Not as strong as a thorium wall but will deflect bullets unless they are too powerful.\nSpans multiple tiles.
|
|
||||||
block.surge-wall.description = The strongest defensive block.\nHas a small chance of triggering lightning towards the attacker.
|
|
||||||
block.surge-wall-large.description = The strongest defensive block.\nHas a small chance of triggering lightning towards the attacker.\nSpans multiple tiles.
|
|
||||||
block.door.description = A small door that can be opened and closed by tapping on it.\nIf opened, enemies can shoot and move through.
|
|
||||||
block.door-large.description = A large door that can be opened and closed by tapping on it.\nIf opened, enemies can shoot and move through.\nSpans multiple tiles.
|
|
||||||
block.mend-projector.description = Periodically heals blocks in its vicinity.
|
|
||||||
block.overdrive-projector.description = Increases the speed of nearby buildings like drills and conveyors.
|
|
||||||
block.force-projector.description = Creates a hexagonal force field around itself, protecting buildings and units inside from damage through bullets.
|
|
||||||
block.shock-mine.description = Damages enemies stepping on the mine. Nearly invisible to the enemy.
|
|
||||||
block.duo.description = A small, cheap turret.
|
|
||||||
block.scatter.description = A medium-sized anti-air turret. Sprays clumps of lead or scrap flak at enemy units.
|
|
||||||
block.arc.description = A small turret which shoots electricity in a random arc towards the enemy.
|
|
||||||
block.hail.description = A small artillery turret.
|
|
||||||
block.lancer.description = A medium-sized turret which shoots charged electricity beams.
|
|
||||||
block.wave.description = A medium-sized rapid-fire turret which shoots liquid bubbles.
|
|
||||||
block.salvo.description = A medium-sized turret which fires shots in salvos.
|
|
||||||
block.swarmer.description = A medium-sized turret which shoots burst missiles.
|
|
||||||
block.ripple.description = A large artillery turret which fires several shots simultaneously.
|
|
||||||
block.cyclone.description = A large rapid fire turret.
|
|
||||||
block.fuse.description = A large turret which shoots powerful short-range beams.
|
|
||||||
block.spectre.description = A large turret which shoots two powerful bullets at once.
|
|
||||||
block.meltdown.description = A large turret which shoots powerful long-range beams.
|
|
||||||
block.conveyor.description = Basic item transport block. Moved items forward and automatically deposits them into turrets or crafters. Rotatable.
|
|
||||||
block.titanium-conveyor.description = Advanced item transport block. Moves items faster than standard conveyors.
|
|
||||||
block.phase-conveyor.description = Advanced item transport block. Uses power to teleport items to a connected phase conveyor over several tiles.
|
|
||||||
block.junction.description = Acts as a bridge for two crossing conveyor belts. Useful in situations with two different conveyors carrying different materials to different locations.
|
|
||||||
block.mass-driver.description = Ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range.
|
|
||||||
block.silicon-smelter.description = Reduces sand with highly pure coke in order to produce silicon.
|
|
||||||
block.plastanium-compressor.description = Produces plastanium from oil and titanium.
|
|
||||||
block.phase-weaver.description = Produces phase fabric from radioactive thorium and high amounts of sand.
|
|
||||||
block.alloy-smelter.description = Produces surge alloy from titanium, lead, silicon and copper.
|
|
||||||
block.pulverizer.description = Crushes stone into sand. Useful when there is a lack of natural sand.
|
|
||||||
block.pyratite-mixer.description = Mixes coal, lead and sand into highly flammable pyratite.
|
|
||||||
block.blast-mixer.description = Uses oil for transforming pyratite into the less flammable but more explosive blast compound.
|
|
||||||
block.cryofluidmixer.description = Combines water and titanium into cryofluid which is much more efficient for cooling.
|
|
||||||
block.melter.description = Heats up stone to very high temperatures to obtain lava.
|
|
||||||
block.incinerator.description = Gets rid of any excess item or liquid.
|
|
||||||
block.spore-press.description = Compresses spore pods into oil.
|
|
||||||
block.separator.description = Exposes stone to water pressure in order to obtain various minerals contained in the stone.
|
|
||||||
block.power-node.description = Transmits power to connected nodes. Up to four power sources, sinks or nodes can be connected. The node will receive power from or supply power to any adjacent blocks.
|
|
||||||
block.power-node-large.description = Has a larger radius than the power node and connects to up to six power sources, sinks or nodes.
|
|
||||||
block.battery.description = Stores power whenever there is an abundance and provides power whenever there is a shortage, as long as there is capacity left.
|
|
||||||
block.battery-large.description = Stores much more power than a regular battery.
|
|
||||||
block.combustion-generator.description = Generates power by burning oil or flammable materials.
|
|
||||||
block.turbine-generator.description = More efficient than a combustion generator, but requires additional water.
|
|
||||||
block.thermal-generator.description = Generates a large amount of power from lava.
|
|
||||||
block.solar-panel.description = Provides a small amount of power from the sun.
|
|
||||||
block.solar-panel-large.description = Provides much better power supply than a standard solar panel, but is also much more expensive to build.
|
|
||||||
block.thorium-reactor.description = Generates huge amounts of power from highly radioactive thorium. Requires constant cooling. Will explode violently if insufficient amounts of coolant are supplied. Power output depends on fullness, with base power generated at half capacity.
|
|
||||||
block.rtg-generator.description = A radioisotope thermoelectric generator which does not require cooling but provides less power than a thorium reactor.
|
|
||||||
block.unloader.description = Unloads items from a container, vault or core onto a conveyor or directly into an adjacent block. The type of item to be unloaded can be changed by tapping on the unloader.
|
|
||||||
block.container.description = Stores a small amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the container.
|
|
||||||
block.vault.description = Stores a large amount of items of each type. Adjacent containers, vaults and cores will be treated as a single storage unit. An[LIGHT_GRAY] unloader[] can be used to retrieve items from the vault.
|
|
||||||
block.mechanical-drill.description = A cheap drill. When placed on appropriate tiles, outputs items at a slow pace indefinitely.
|
|
||||||
block.pneumatic-drill.description = An improved drill which is faster and able to process harder materials by making use of air pressure.
|
|
||||||
block.laser-drill.description = Allows drilling even faster through laser technology, but requires power. Additionally, radioactive thorium can be retrieved with this drill.
|
|
||||||
block.blast-drill.description = The ultimate drill. Requires large amounts of power.
|
|
||||||
block.water-extractor.description = Extracts water from the ground. Use it when there is no lake nearby.
|
|
||||||
block.cultivator.description = Cultivates the soil with water in order to obtain biomatter.
|
|
||||||
block.oil-extractor.description = Uses large amounts of power in order to extract oil from sand. Use it when there is no direct source of oil nearby.
|
|
||||||
block.trident-ship-pad.description = Leave your current vessel and change into a reasonably well armored heavy bomber.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.javelin-ship-pad.description = Leave your current vessel and change into a strong and fast interceptor with lightning weapons.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.glaive-ship-pad.description = Leave your current vessel and change into a large, well-armored gunship.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.tau-mech-pad.description = Leave your current vessel and change into a support mech which can heal friendly buildings and units.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.delta-mech-pad.description = Leave your current vessel and change into a fast, lightly-armored mech made for hit-and-run attacks.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.omega-mech-pad.description = Leave your current vessel and change into a bulky and well-armored mech, made for front-line assaults.\nUse the pad by double tapping while standing on it.
|
|
||||||
block.spirit-factory.description = Produces light drones which mine ore and repair blocks.
|
|
||||||
block.phantom-factory.description = Produces advanced drone units which are significantly more effective than a spirit drone.
|
|
||||||
block.wraith-factory.description = Produces fast, hit-and-run interceptor units.
|
|
||||||
block.ghoul-factory.description = Produces heavy carpet bombers.
|
|
||||||
block.dagger-factory.description = Produces basic ground units.
|
|
||||||
block.titan-factory.description = Produces advanced, armored ground units.
|
|
||||||
block.fortress-factory.description = Produces heavy artillery ground units.
|
|
||||||
block.revenant-factory.description = Produces heavy laser air units.
|
|
||||||
block.repair-point.description = Continuously heals the closest damaged unit in its vicinity.
|
|
||||||
block.conduit.description = Basic liquid transport block. Works like a conveyor, but with liquids. Best used with extractors, pumps or other conduits.
|
|
||||||
block.pulse-conduit.description = Advanced liquid transport block. Transports liquids faster and stores more than standard conduits.
|
|
||||||
block.phase-conduit.description = Advanced liquid transport block. Uses power to teleport liquids to a connected phase conduit over several tiles.
|
|
||||||
block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. Useful for splitting the liquids from one source to multiple targets.
|
|
||||||
block.liquid-tank.description = Stores a large amount of liquids. Use it for creating buffers when there is a non-constant demand of materials or as a safeguard for cooling vital blocks.
|
|
||||||
block.liquid-junction.description = Acts as a bridge for two crossing conduits. Useful in situations with two different conduits carrying different liquids to different locations.
|
|
||||||
block.bridge-conduit.description = Advanced liquid transport block. Allows transporting liquids over up to 3 tiles of any terrain or building.
|
|
||||||
block.mechanical-pump.description = A cheap pump with slow output, but no power consumption.
|
|
||||||
block.rotary-pump.description = An advanced pump which doubles up speed by using power.
|
|
||||||
block.thermal-pump.description = The ultimate pump. Three times as fast as a mechanical pump and the only pump which is able to retrieve lava.
|
|
||||||
block.router.description = Accepts items from one direction and outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.
|
|
||||||
block.distributor.description = An advanced router which splits items to up to 7 other directions equally.
|
|
||||||
block.bridge-conveyor.description = Advanced item transport block. Allows transporting items over up to 3 tiles of any terrain or building.
|
|
||||||
block.item-source.description = Infinitely outputs items. Sandbox only.
|
|
||||||
block.liquid-source.description = Infinitely outputs liquids. Sandbox only.
|
|
||||||
block.item-void.description = Destroys any items which go into it without using power. Sandbox only.
|
|
||||||
block.power-source.description = Infinitely outputs power. Sandbox only.
|
|
||||||
block.power-void.description = Voids all power inputted into it. Sandbox only.
|
|
||||||
liquid.water.description = Commonly used for cooling machines and waste processing.
|
|
||||||
liquid.oil.description = Can be burnt, exploded or used as a coolant.
|
|
||||||
liquid.cryofluid.description = The most efficient liquid for cooling things down.
|
|
||||||
@@ -40,6 +40,7 @@ addplayers = Agregar/Quitar Jugadores
|
|||||||
customgame = Partida personalizada
|
customgame = Partida personalizada
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <no hay>
|
none = <no hay>
|
||||||
|
minimap = Minimap
|
||||||
close = Cerrar
|
close = Cerrar
|
||||||
quit = Salir
|
quit = Salir
|
||||||
maps = Mapas
|
maps = Mapas
|
||||||
@@ -335,66 +336,48 @@ no = No
|
|||||||
info.title = [accent]Información
|
info.title = [accent]Información
|
||||||
error.title = [crimson]Un error ha ocurrido.
|
error.title = [crimson]Un error ha ocurrido.
|
||||||
error.crashtitle = Un error ha ocurrido.
|
error.crashtitle = Un error ha ocurrido.
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Información del Bloque
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Capacidad de Energía
|
blocks.powercapacity = Capacidad de Energía
|
||||||
blocks.powershot = Energía/Disparo
|
blocks.powershot = Energía/Disparo
|
||||||
blocks.targetsair = Apunta al Aire
|
blocks.targetsair = Apunta al Aire
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Rango
|
blocks.shootrange = Rango
|
||||||
blocks.size = Tamaño
|
blocks.size = Tamaño
|
||||||
blocks.liquidcapacity = Capacidad de Líquidos
|
blocks.liquidcapacity = Capacidad de Líquidos
|
||||||
blocks.maxitemssecond = Máximo de Objetos
|
|
||||||
blocks.powerrange = Rango de Energía
|
blocks.powerrange = Rango de Energía
|
||||||
blocks.poweruse = Consumo de Energía
|
blocks.poweruse = Consumo de Energía
|
||||||
blocks.powerdamage = Energía/Daño
|
blocks.powerdamage = Energía/Daño
|
||||||
blocks.inputitemcapacity = Capacidad de Entrada de los Objetos
|
|
||||||
blocks.outputitemcapacity = Capacidad de Salida de los Objetos
|
|
||||||
blocks.itemcapacity = Capacidad de Objetos
|
blocks.itemcapacity = Capacidad de Objetos
|
||||||
blocks.basepowergeneration = Generación de energía base
|
blocks.basepowergeneration = Generación de energía base
|
||||||
blocks.powertransferspeed = Transferencia de Energía
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Velocidad de Producción
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Líquidos de Entrada
|
|
||||||
blocks.inputliquidaux = Líquido Auxiliar
|
|
||||||
blocks.inputitem = Objeto de Entrada
|
|
||||||
blocks.inputitems = Objetos de Entrada
|
|
||||||
blocks.outputitem = Objeto de Salida
|
|
||||||
blocks.drilltier = Taladrables
|
blocks.drilltier = Taladrables
|
||||||
blocks.drillspeed = Velocidad Base del Taladro
|
blocks.drillspeed = Velocidad Base del Taladro
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Líquido de Salida
|
|
||||||
blocks.liquidoutputspeed = Velocidad de Salida del Líquido
|
|
||||||
blocks.liquiduse = Uso de Líquido
|
|
||||||
blocks.coolant = Refrigerante
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Uso del Refrigerante
|
|
||||||
blocks.inputliquidfuel = Combustible Líquido
|
|
||||||
blocks.liquidfueluse = Uso del Combustible Líquido
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Vida
|
blocks.health = Vida
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Imprecisión
|
blocks.inaccuracy = Imprecisión
|
||||||
blocks.shots = Disparos
|
blocks.shots = Disparos
|
||||||
blocks.reload = Recarga
|
blocks.reload = Recarga
|
||||||
blocks.inputfuel = Combustible
|
|
||||||
blocks.fuelburntime = Tiempo de Quemado del Combustible
|
|
||||||
blocks.inputcapacity = Capacidad de entrada
|
|
||||||
blocks.outputcapacity = Capacidad de salida
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = unidades de líquido
|
|||||||
unit.powerunits = unidades de energía
|
unit.powerunits = unidades de energía
|
||||||
unit.degrees = grados
|
unit.degrees = grados
|
||||||
unit.seconds = segundos
|
unit.seconds = segundos
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = objetos
|
unit.items = objetos
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Energía
|
category.power = Energía
|
||||||
@@ -425,6 +411,7 @@ category.optional = Mejoras Opcionales
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto apuntado
|
setting.autotarget.name = Auto apuntado
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Mostrar FPS
|
setting.fps.name = Mostrar FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Mostrar Energía de los Láseres
|
setting.lasers.name = Mostrar Energía de los Láseres
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Mostrar Minimapa
|
setting.minimap.name = Mostrar Minimapa
|
||||||
setting.musicvol.name = Volumen de la Música
|
setting.musicvol.name = Volumen de la Música
|
||||||
setting.mutemusic.name = Silenciar Musica
|
setting.mutemusic.name = Silenciar Musica
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacidad de objetos: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Velocidad de minado: {0}
|
mech.minespeed = [LIGHT_GRAY]Velocidad de minado: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Potencia de minado: {0}
|
mech.minepower = [LIGHT_GRAY]Potencia de minado: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Hablidad: {0}
|
mech.ability = [LIGHT_GRAY]Hablidad: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacidad Térmica: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosidad: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
||||||
|
|||||||
@@ -1,45 +1,46 @@
|
|||||||
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
||||||
credits = Crédits
|
credits = Crédits
|
||||||
contributors = Translators and Contributors
|
contributors = Traducteurs et contributeurs
|
||||||
discord = Rejoignez le discord de Mindustry
|
discord = Rejoignez le discord de Mindustry
|
||||||
link.discord.description = Le discord officiel de mindustry
|
link.discord.description = Le discord officiel de Mindustry!
|
||||||
link.github.description = Code source du jeu
|
link.github.description = Code source du jeu.
|
||||||
link.dev-builds.description = Versions instables du jeu
|
link.dev-builds.description = Versions instables du jeu.
|
||||||
link.trello.description = Trello officiel pour les futurs ajouts .
|
link.trello.description = Trello officiel pour les futurs ajouts .
|
||||||
link.itch.io.description = Page itch.io avec le lien du téléchargement pour PC et la version web .
|
link.itch.io.description = Page itch.io avec le lien du téléchargement pour PC et la version web .
|
||||||
link.google-play.description = Listing par le Google Play Store
|
link.google-play.description = Accès à la version android du Google Play Store.
|
||||||
link.wiki.description = Wiki officiel de mindustry .
|
link.wiki.description = Wiki officiel de mindustry .
|
||||||
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copié avec succès.
|
linkfail = Erreur lors de l'ouverture du lien !\nL'URL a été copié avec succès.
|
||||||
screenshot = Screenshot saved to {0}
|
screenshot = Capture d'écran sauvegardée à {0}
|
||||||
gameover = Partie terminée.
|
gameover = Partie terminée.
|
||||||
gameover.pvp = L'équipe [accent] {0}[] a gagnée !
|
gameover.pvp = L'équipe [accent] {0}[] a gagnée !
|
||||||
highscore = [YELLOW]Nouveau meilleur score!
|
highscore = [YELLOW]Nouveau meilleur score!
|
||||||
stat.wave = Waves Defeated:[accent] {0}
|
stat.wave = Vagues vaincues:[accent] {0}
|
||||||
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
|
stat.enemiesDestroyed = Ennemies détruits:[accent] {0}
|
||||||
stat.built = Buildings Built:[accent] {0}
|
stat.built = Bâtiments construits:[accent] {0}
|
||||||
stat.destroyed = Buildings Destroyed:[accent] {0}
|
stat.destroyed = Bâtiments détruits:[accent] {0}
|
||||||
stat.deconstructed = Buildings Deconstructed:[accent] {0}
|
stat.deconstructed = Bâtiments déconstruits:[accent] {0}
|
||||||
stat.delivered = Resources Launched:
|
stat.delivered = Ressources transférées:
|
||||||
stat.rank = Final Rank: [accent]{0}
|
stat.rank = Rang Final: [accent]{0}
|
||||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
|
placeline = Tu as sélectionné un bloc.\nTu peux les[accent] placer en rangée[] en[accent] maintenant ton doigt sur l'écran pendant quelques secondes[] et en le glissant vers n'importe qu'elle direction.\nEssaye!
|
||||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it.
|
removearea = Tu as sélectionné le mode de suppression.\nTu peux[accent] supprimer les blocs en rectangle[] en[accent] maintenant ton doigt sur l'écran pendant quelques secondes[] et en le glissant.\nEssaye!
|
||||||
launcheditems = [accent]Launched Items
|
launcheditems = [accent]ressources transférées
|
||||||
map.delete = Êtes-vous sûr de supprimer cette carte"[accent]{0}[]"?
|
map.delete = Êtes-vous sûr de supprimer cette carte"[accent]{0}[]"?
|
||||||
level.highscore = Meilleur score: [accent]{0}
|
level.highscore = Meilleur score: [accent]{0}
|
||||||
level.select = Sélection de niveau
|
level.select = Sélection de niveau
|
||||||
level.mode = Mode de jeu :
|
level.mode = Mode de jeu :
|
||||||
showagain = Ne pas montrer la prochaine fois
|
showagain = Ne pas montrer la prochaine fois
|
||||||
coreattack = [scarlet]<La base est sous les feux ennemis>
|
coreattack = [scarlet]<La base est sous les feux ennemis>
|
||||||
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
|
nearpoint = [[ [scarlet]QUITTEZ LE POINT D'APPARITION ENNEMI IMMÉDIATEMENT[] ]\nannihilation imminente
|
||||||
outofbounds = [[ OUT OF BOUNDS ]\n[]self-destruct in {0}
|
outofbounds = [[ HORS LIMITES ]\n[]auto-destruction dans {0}
|
||||||
database = Core Database
|
database = Base de données
|
||||||
savegame = Sauvegarder la partie
|
savegame = Sauvegarder la partie
|
||||||
loadgame = Charger la partie
|
loadgame = Charger la partie
|
||||||
joingame = Rejoindre une partie
|
joingame = Rejoindre une partie
|
||||||
addplayers = Ajouter/Enlever des joueurs
|
addplayers = Ajouter/Enlever des joueurs
|
||||||
customgame = Partie personnalisée
|
customgame = Partie customisée
|
||||||
newgame = New Game
|
newgame = Nouvelle partie
|
||||||
none = <vide>
|
none = <vide>
|
||||||
|
minimap = Minimap
|
||||||
close = Fermer
|
close = Fermer
|
||||||
quit = Quitter
|
quit = Quitter
|
||||||
maps = Cartes
|
maps = Cartes
|
||||||
@@ -47,16 +48,16 @@ continue = Continuer
|
|||||||
maps.none = [LIGHT_GRAY]Aucune carte trouvée!
|
maps.none = [LIGHT_GRAY]Aucune carte trouvée!
|
||||||
about.button = À propos
|
about.button = À propos
|
||||||
name = Nom:
|
name = Nom:
|
||||||
noname = Pick a[accent] player name[] first.
|
noname = Commencer par choisir un[accent] nom de joueur[].
|
||||||
filename = Nom du fichier:
|
filename = Nom du fichier:
|
||||||
unlocked = Nouveau bloc débloqué!
|
unlocked = Nouveau bloc débloqué!
|
||||||
completed = [accent]Completed
|
completed = [accent]Complété
|
||||||
techtree = Tech Tree
|
techtree = Arbre technologique
|
||||||
research.list = [LIGHT_GRAY]Research:
|
research.list = [LIGHT_GRAY]Recherche:
|
||||||
research = Research
|
research = Rechercher
|
||||||
researched = [LIGHT_GRAY]{0} researched.
|
researched = [LIGHT_GRAY]{0} recherché(e).
|
||||||
players = {0} joueurs en ligne
|
players = {0} joueurs en ligne
|
||||||
players.single = {0} joueur en ligne
|
players.single = {0} joueurs en ligne
|
||||||
server.closing = [accent]Fermeture du serveur...
|
server.closing = [accent]Fermeture du serveur...
|
||||||
server.kicked.kick = Vous avez été expulsé du serveur!
|
server.kicked.kick = Vous avez été expulsé du serveur!
|
||||||
server.kicked.serverClose = Serveur fermé.
|
server.kicked.serverClose = Serveur fermé.
|
||||||
@@ -148,7 +149,7 @@ save.wave = Vague {0}
|
|||||||
save.difficulty = Difficulté: {0}
|
save.difficulty = Difficulté: {0}
|
||||||
save.date = Dernière sauvegarde: {0}
|
save.date = Dernière sauvegarde: {0}
|
||||||
save.playtime = Temps de jeu: {0}
|
save.playtime = Temps de jeu: {0}
|
||||||
warning = Warning.
|
warning = Avertissement.
|
||||||
confirm = Confirmer
|
confirm = Confirmer
|
||||||
delete = Supprimer
|
delete = Supprimer
|
||||||
ok = OK
|
ok = OK
|
||||||
@@ -191,32 +192,32 @@ editor.oregen.info = Génération de minerais:
|
|||||||
editor.mapinfo = Infos sur la carte
|
editor.mapinfo = Infos sur la carte
|
||||||
editor.author = Auteur:
|
editor.author = Auteur:
|
||||||
editor.description = Description:
|
editor.description = Description:
|
||||||
editor.waves = Waves:
|
editor.waves = Vagues:
|
||||||
waves.title = Waves
|
waves.title = Vagues
|
||||||
waves.remove = Remove
|
waves.remove = Remove
|
||||||
waves.never = <never>
|
waves.never = jamais
|
||||||
waves.every = every
|
waves.every = tous les
|
||||||
waves.waves = wave(s)
|
waves.waves = vague(s)
|
||||||
waves.perspawn = per spawn
|
waves.perspawn = par apparition
|
||||||
waves.to = to
|
waves.to = à
|
||||||
waves.boss = Boss
|
waves.boss = Boss
|
||||||
waves.preview = Preview
|
waves.preview = Prévisualiser
|
||||||
waves.edit = Edit...
|
waves.edit = Modifier...
|
||||||
waves.copy = Copy to Clipboard
|
waves.copy = Copier dans le Presse-papiers
|
||||||
waves.load = Load from Clipboard
|
waves.load = Coller depuis le Presse-papiers
|
||||||
waves.invalid = Invalid waves in clipboard.
|
waves.invalid = Vagues invalides dans le Presse-papiers.
|
||||||
waves.copied = Waves copied.
|
waves.copied = Vagues copiées
|
||||||
editor.default = [LIGHT_GRAY]<Default>
|
editor.default = [LIGHT_GRAY]<par défaut>
|
||||||
edit = Edit...
|
edit = Modifier...
|
||||||
editor.name = Nom:
|
editor.name = Nom:
|
||||||
editor.teams = Équipe
|
editor.teams = Équipe
|
||||||
editor.elevation = Élevation
|
editor.elevation = Élevation
|
||||||
editor.errorload = Error loading file:\n[accent]{0}
|
editor.errorload = Erreur lors du chargement du fichier:\n[accent]{0}
|
||||||
editor.errorsave = Error saving file:\n[accent]{0}
|
editor.errorsave = Erreur lors de la sauvegarde du fichier:\n[accent]{0}
|
||||||
editor.errorname = Map has no name defined.
|
editor.errorname = La carte n'a pas de nom!
|
||||||
editor.update = Update
|
editor.update = Mettre à jour
|
||||||
editor.randomize = Randomize
|
editor.randomize = Randomiser
|
||||||
editor.apply = Apply
|
editor.apply = Appliquer
|
||||||
editor.generate = Générer
|
editor.generate = Générer
|
||||||
editor.resize = Redimensionner
|
editor.resize = Redimensionner
|
||||||
editor.loadmap = Charger une carte
|
editor.loadmap = Charger une carte
|
||||||
@@ -245,26 +246,26 @@ editor.mapname = Nom de la carte²:
|
|||||||
editor.overwrite = [accent]Attention !\nCeci réécrit une carte existante .
|
editor.overwrite = [accent]Attention !\nCeci réécrit une carte existante .
|
||||||
editor.overwrite.confirm = [scarlet]Attention ![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir la réécrire?
|
editor.overwrite.confirm = [scarlet]Attention ![] Une carte avec ce nom existe déjà. Êtes-vous sûr de vouloir la réécrire?
|
||||||
editor.selectmap = Séléctionnez une carte:
|
editor.selectmap = Séléctionnez une carte:
|
||||||
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
|
filters.empty = [LIGHT_GRAY]Aucun filtre! Ajoutez-en un avec les boutons ci-dessous.
|
||||||
filter.distort = Distort
|
filter.distort = Déformation
|
||||||
filter.noise = Noise
|
filter.noise = Bruit
|
||||||
filter.ore = Ore
|
filter.ore = Minerai
|
||||||
filter.rivernoise = River Noise
|
filter.rivernoise = Bruit des rivières
|
||||||
filter.scatter = Scatter
|
filter.scatter = Dispersement
|
||||||
filter.terrain = Terrain
|
filter.terrain = Terrain
|
||||||
filter.option.scale = Scale
|
filter.option.scale = Gamme
|
||||||
filter.option.chance = Chance
|
filter.option.chance = Chance
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = Magnitude
|
||||||
filter.option.threshold = Threshold
|
filter.option.threshold = Seuil
|
||||||
filter.option.circle-scale = Circle Scale
|
filter.option.circle-scale = Gamme du cercle
|
||||||
filter.option.octaves = Octaves
|
filter.option.octaves = Octaves
|
||||||
filter.option.falloff = Falloff
|
filter.option.falloff = Diminution
|
||||||
filter.option.block = Block
|
filter.option.block = Bloc
|
||||||
filter.option.floor = Floor
|
filter.option.floor = Sol
|
||||||
filter.option.wall = Wall
|
filter.option.wall = Mur
|
||||||
filter.option.ore = Ore
|
filter.option.ore = Minerai
|
||||||
filter.option.floor2 = Secondary Floor
|
filter.option.floor2 = Sol secondaire
|
||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = Seuil secondaire
|
||||||
width = Largeur:
|
width = Largeur:
|
||||||
height = Hauteur:
|
height = Hauteur:
|
||||||
menu = Menu
|
menu = Menu
|
||||||
@@ -281,49 +282,49 @@ editor = Éditeur
|
|||||||
mapeditor = Éditeur de carte
|
mapeditor = Éditeur de carte
|
||||||
donate = Faire un\ndon
|
donate = Faire un\ndon
|
||||||
abandon = Abandon
|
abandon = Abandon
|
||||||
abandon.text = This zone and all its resources will be lost to the enemy.
|
abandon.text = Cette zone et tous ses ressources vont être perdues.
|
||||||
locked = Locked
|
locked = Verrouillé
|
||||||
complete = [LIGHT_GRAY]Complete:
|
complete = [LIGHT_GRAY]Compléter:
|
||||||
zone.requirement = Wave {0} in zone {1}
|
zone.requirement = Vague {0} dans la zone {1}
|
||||||
resume = Resume Zone:\n[LIGHT_GRAY]{0}
|
resume = Reprendre la partie en cours:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]Best: {0}
|
bestwave = [LIGHT_GRAY]Meilleur: {0}
|
||||||
launch = Launch
|
launch = Lancement
|
||||||
launch.title = Launch Successful
|
launch.title = Lancement réussi
|
||||||
launch.next = [LIGHT_GRAY]next opportunity at wave {0}
|
launch.next = [LIGHT_GRAY] Prochaine opportunité à la vague {0}
|
||||||
launch.unable = [scarlet]Unable to LAUNCH.[] Enemies.
|
launch.unable = [scarlet]Impossible d'effectuer le lancement.[] Ennemis.
|
||||||
launch.confirm = This will launch all resources in your core.\nYou will not be able to return to this base.
|
launch.confirm = Cela va transférer tous tes ressources dans votre coeur.\nTu ne vas pas pouvoir retourner à cette base.
|
||||||
uncover = Uncover
|
uncover = Découvrir
|
||||||
configure = Configure Loadout
|
configure = Configurer le transfert des ressources.
|
||||||
configure.locked = [LIGHT_GRAY]Reach wave {0}\nto configure loadout.
|
configure.locked = [LIGHT_GRAY]Atteigner la vague {0}\npour configurer le transfert des ressources
|
||||||
zone.unlocked = [LIGHT_GRAY]{0} unlocked.
|
zone.unlocked = [LIGHT_GRAY]{0} Débloquée.
|
||||||
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
|
zone.requirement.complete = Vague {0} atteinte:\n{1} Exigences de la zone complétées
|
||||||
zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
|
zone.config.complete = Vague {0} atteinte:\nConfiguration du transfert débloquée.
|
||||||
zone.resources = Resources Detected:
|
zone.resources = Ressources détectées:
|
||||||
add = Add...
|
add = Ajouter...
|
||||||
boss.health = Boss Health
|
boss.health = Vie du BOSS
|
||||||
connectfail = [crimson]Échec de la connexion au serveur : [accent]{0}
|
connectfail = [crimson]Échec de la connexion au serveur : [accent]{0}
|
||||||
error.unreachable = Server injoignable.
|
error.unreachable = Serveur injoignable.
|
||||||
error.invalidaddress = Adresse invalide.
|
error.invalidaddress = Adresse invalide.
|
||||||
error.timedout = Délai de connexion dépassé!\nAssurez-vous que l'hôte a autorisé l'accès au port, et que l'adresse soit correcte!
|
error.timedout = Délai de connexion dépassé!\nAssurez-vous que l'hôte a autorisé l'accès au port, et que l'adresse soit correcte!
|
||||||
error.mismatch = Erreur de paquet:\nPossible différence de verison entre le client et le serveur .\nVérifiez que vous et l'hôte avez la plus récente version de Mindustry !
|
error.mismatch = Erreur de paquet:\nPossible différence de verison entre le client et le serveur .\nVérifiez que vous et l'hôte avez la plus récente version de Mindustry !
|
||||||
error.alreadyconnected = Déjà connecté.
|
error.alreadyconnected = Déjà connecté.
|
||||||
error.mapnotfound = Fichier de la carte introuvable!
|
error.mapnotfound = Fichier de la carte introuvable!
|
||||||
error.io = Network I/O error.
|
error.io = Erreur de Réseau (I/O)
|
||||||
error.any = Erreur réseau inconnue.
|
error.any = Erreur réseau inconnue.
|
||||||
zone.groundZero.name = Ground Zero
|
zone.groundZero.name = Première Bataille
|
||||||
zone.craters.name = The Craters
|
zone.craters.name = Les Cratères
|
||||||
zone.frozenForest.name = Frozen Forest
|
zone.frozenForest.name = Forêt Glaciale
|
||||||
zone.ruinousShores.name = Ruinous Shores
|
zone.ruinousShores.name = Rives en Ruine
|
||||||
zone.stainedMountains.name = Stained Mountains
|
zone.stainedMountains.name = Montagnes Tâchetées
|
||||||
zone.desolateRift.name = Desolate Rift
|
zone.desolateRift.name = Fissure abandonnée
|
||||||
zone.nuclearComplex.name = Nuclear Production Complex
|
zone.nuclearComplex.name = Complexe nucléaire
|
||||||
settings.language = Langage
|
settings.language = Langage
|
||||||
settings.reset = Valeur par défaut.
|
settings.reset = Valeur par défaut.
|
||||||
settings.rebind = Réatttribuer
|
settings.rebind = Réatttribuer
|
||||||
settings.controls = Contrôles
|
settings.controls = Contrôles
|
||||||
settings.game = Jeu
|
settings.game = Jeu
|
||||||
settings.sound = Son
|
settings.sound = Son
|
||||||
settings.graphics = Graphiques
|
settings.graphics = Graphismes
|
||||||
settings.cleardata = Effacer les données du jeu...
|
settings.cleardata = Effacer les données du jeu...
|
||||||
settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nCe qui est fait ne peut être défait !
|
settings.clear.confirm = Êtes-vous sûr d'effacer ces données ?\nCe qui est fait ne peut être défait !
|
||||||
settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'ok' le jeu effacera toutes les données et se fermera.
|
settings.clearall.confirm = [scarlet]ATTENTION![]\nCet action effacera toutes les données , incluant les sauvegarges, les cartes, les déblocages et la configuration des touches.\nUne fois que vous aurez pressé 'ok' le jeu effacera toutes les données et se fermera.
|
||||||
@@ -335,34 +336,31 @@ no = Non
|
|||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]Une erreur s'est produite
|
error.title = [crimson]Une erreur s'est produite
|
||||||
error.crashtitle = Une erreur s'est produite
|
error.crashtitle = Une erreur s'est produite
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
bar.drillspeed = Vitesse de forage: {0}/s
|
||||||
blocks.efficiency = Efficiency: {0}%
|
bar.efficiency = Efficacité: {0}%
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.blockinfo = Info sur le bloc
|
blocks.blockinfo = Info sur le bloc
|
||||||
blocks.powerbalance = Power: {0}
|
bar.powerbalance = Énergie: {0}
|
||||||
blocks.poweroutput = Power Output: {0}
|
bar.poweroutput = Énergie en sortie: {0}
|
||||||
blocks.powercapacity = capacité d'énergie
|
blocks.powercapacity = Capacité d'énergie
|
||||||
blocks.powershot = Énergie/Tir
|
blocks.powershot = Énergie/Tir
|
||||||
blocks.targetsair = Cible les unités aériennes
|
blocks.targetsair = Cible les unités aériennes
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Cible les unités terrestres
|
||||||
blocks.items = Items: {0}
|
bar.items = Objets: {0}
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Vitesse de Déplacement
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Temps entre chaque lancement
|
||||||
blocks.shootrange = Portée
|
blocks.shootrange = Portée
|
||||||
blocks.size = Taille
|
blocks.size = Taille
|
||||||
blocks.liquidcapacity = Capacité en liquide
|
blocks.liquidcapacity = Capacité en liquide
|
||||||
blocks.maxitemssecond = Production maximale
|
|
||||||
blocks.powerrange = Distance de transmission
|
blocks.powerrange = Distance de transmission
|
||||||
blocks.poweruse = Énergie utilisée
|
blocks.poweruse = Énergie utilisée
|
||||||
blocks.powerdamage = Énergie/Dégâts
|
blocks.powerdamage = Énergie/Dégâts
|
||||||
blocks.inputitemcapacity = Capacité d'entrée
|
|
||||||
blocks.outputitemcapacity = Capacité de sortie
|
|
||||||
blocks.itemcapacity = Stockage
|
blocks.itemcapacity = Stockage
|
||||||
blocks.basepowergeneration = Generation d'énergie minimale
|
blocks.basepowergeneration = Génération d'énergie minimale
|
||||||
blocks.powertransferspeed = Vitesse de transfert d'énergie
|
blocks.powertransferspeed = Vitesse de transfert d'énergie
|
||||||
blocks.craftspeed = Vitesse de production
|
blocks.craftspeed = Vitesse de production
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Temps pour la Réparation Totale du Bloc
|
||||||
blocks.range = Range
|
blocks.range = Portée
|
||||||
blocks.inputliquid = Liquide requis
|
blocks.inputliquid = Liquide requis
|
||||||
blocks.inputliquidaux = Liquide optionnel
|
blocks.inputliquidaux = Liquide optionnel
|
||||||
blocks.inputitem = Objets en entrée
|
blocks.inputitem = Objets en entrée
|
||||||
@@ -370,23 +368,23 @@ blocks.inputitems = Objets utilisés
|
|||||||
blocks.outputitem = Objet produit
|
blocks.outputitem = Objet produit
|
||||||
blocks.drilltier = Forable
|
blocks.drilltier = Forable
|
||||||
blocks.drillspeed = Vitesse de forage de base
|
blocks.drillspeed = Vitesse de forage de base
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Nombre d'unité actives maximal
|
||||||
blocks.liquidoutput = Liquide en sortie
|
blocks.liquidoutput = Liquide en sortie
|
||||||
blocks.liquidoutputspeed = Vitesse de production de liquide
|
blocks.liquidoutputspeed = Vitesse de production de liquide
|
||||||
blocks.liquiduse = Quantité de liquide utilisée
|
blocks.liquiduse = Quantité de liquide utilisée
|
||||||
blocks.coolant = Liquide de refroidissement
|
blocks.coolant = Liquide de refroidissement
|
||||||
blocks.liquid = Liquid
|
bar.liquid = Liquide
|
||||||
blocks.coolantuse = Quantité de liquide de refroidissement utilisée
|
blocks.coolantuse = Quantité de liquide de refroidissement utilisée
|
||||||
blocks.inputliquidfuel = Carburant liquide
|
blocks.inputliquidfuel = Carburant liquide
|
||||||
blocks.liquidfueluse = Quantité de carburant liquide utilisé
|
blocks.liquidfueluse = Quantité de carburant liquide utilisé
|
||||||
blocks.boostitem = Boost Item
|
blocks.boostitem = Objets boosters
|
||||||
blocks.boostliquid = Boost Liquid
|
blocks.boostliquid = Liquides boosters
|
||||||
blocks.health = Santé
|
blocks.health = Santé
|
||||||
blocks.heat = Heat
|
bar.heat = Chaleur
|
||||||
blocks.power = Power
|
bar.power = Énergie
|
||||||
blocks.progress = Build Progress
|
bar.progress = Progression de la construction
|
||||||
blocks.spawned = Units: {0}/{1}
|
bar.spawned = Unités: {0}/{1}
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
blocks.power.satisfaction = Énergie minimum nécessaire
|
||||||
blocks.inaccuracy = Précision
|
blocks.inaccuracy = Précision
|
||||||
blocks.shots = Tir
|
blocks.shots = Tir
|
||||||
blocks.reload = Tirs/Seconde
|
blocks.reload = Tirs/Seconde
|
||||||
@@ -394,18 +392,18 @@ blocks.inputfuel = Carburant
|
|||||||
blocks.fuelburntime = Durée du carburant
|
blocks.fuelburntime = Durée du carburant
|
||||||
blocks.inputcapacity = Capacité d'entrée
|
blocks.inputcapacity = Capacité d'entrée
|
||||||
blocks.outputcapacity = Capacité de production
|
blocks.outputcapacity = Capacité de production
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Munitions
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] dmg de zone ~[stat] {1}[lightgray] tuiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiaire
|
||||||
bullet.homing = [stat]homing
|
bullet.homing = [stat]autoguidage
|
||||||
bullet.shock = [stat]shock
|
bullet.shock = [stat]choc
|
||||||
bullet.frag = [stat]frag
|
bullet.frag = [stat]frag
|
||||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
bullet.knockback = [stat]{0}[lightgray] recul
|
||||||
bullet.freezing = [stat]freezing
|
bullet.freezing = [stat]gel
|
||||||
bullet.tarred = [stat]tarred
|
bullet.tarred = [stat]tarred
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
bullet.multiplier = [stat]{0}[lightgray]x multiplicateur de munitions
|
||||||
bullet.reload = [stat]{0}[lightgray]x reload
|
bullet.reload = [stat]{0}[lightgray]x rechargement
|
||||||
unit.blocks = blocs
|
unit.blocks = blocs
|
||||||
unit.powersecond = Énergie/seconde
|
unit.powersecond = Énergie/seconde
|
||||||
unit.liquidsecond = Liquides/seconde
|
unit.liquidsecond = Liquides/seconde
|
||||||
@@ -414,6 +412,9 @@ unit.liquidunits = Unité de liquide
|
|||||||
unit.powerunits = Unité d'énergie
|
unit.powerunits = Unité d'énergie
|
||||||
unit.degrees = degrés
|
unit.degrees = degrés
|
||||||
unit.seconds = secondes
|
unit.seconds = secondes
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = Objets
|
unit.items = Objets
|
||||||
category.general = Général
|
category.general = Général
|
||||||
category.power = Énergie
|
category.power = Énergie
|
||||||
@@ -421,22 +422,22 @@ category.liquids = Liquides
|
|||||||
category.items = Objets
|
category.items = Objets
|
||||||
category.crafting = Fabrication
|
category.crafting = Fabrication
|
||||||
category.shooting = Défense
|
category.shooting = Défense
|
||||||
category.optional = Optional Enhancements
|
category.optional = Améliorations optionnelles
|
||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Verrouiller la rotation en mode paysage
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Ombres
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Eau animée
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (demande le redémarrage de l'appareil)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Indicateurs pour les alliés
|
||||||
setting.autotarget.name = Visée automatique
|
setting.autotarget.name = Visée automatique
|
||||||
setting.fpscap.name = Max FPS
|
setting.fpscap.name = Max FPS
|
||||||
setting.fpscap.none = None
|
setting.fpscap.none = None
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.swapdiagonal.name = Always Diagonal Placement
|
setting.swapdiagonal.name = Autoriser le placement des blocs en diagonal
|
||||||
setting.difficulty.training = entraînement
|
setting.difficulty.training = entraînement
|
||||||
setting.difficulty.easy = facile
|
setting.difficulty.easy = Facile
|
||||||
setting.difficulty.normal = normal
|
setting.difficulty.normal = Normal
|
||||||
setting.difficulty.hard = difficile
|
setting.difficulty.hard = Difficile
|
||||||
setting.difficulty.insane = Extreme
|
setting.difficulty.insane = Extrème
|
||||||
setting.difficulty.name = Difficulté:
|
setting.difficulty.name = Difficulté:
|
||||||
setting.screenshake.name = Tremblement de l'écran
|
setting.screenshake.name = Tremblement de l'écran
|
||||||
setting.effects.name = Montrer les effets
|
setting.effects.name = Montrer les effets
|
||||||
@@ -444,37 +445,37 @@ setting.sensitivity.name = Sensibilité de la manette
|
|||||||
setting.saveinterval.name = Intervalle des sauvegardes auto
|
setting.saveinterval.name = Intervalle des sauvegardes auto
|
||||||
setting.seconds = {0} secondes
|
setting.seconds = {0} secondes
|
||||||
setting.fullscreen.name = Plein écran
|
setting.fullscreen.name = Plein écran
|
||||||
setting.borderless.name = Borderless Window
|
setting.borderless.name = Fenêtre sans contour
|
||||||
setting.fps.name = Afficher FPS
|
setting.fps.name = Afficher FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Afficher les rayons des lasers
|
setting.lasers.name = Afficher les rayons des lasers
|
||||||
setting.minimap.name = montrer la minimap
|
setting.minimap.name = Montrer la minimap
|
||||||
setting.musicvol.name = volume de la musique
|
setting.musicvol.name = Volume de la musique
|
||||||
setting.mutemusic.name = Couper la musique
|
setting.mutemusic.name = Couper la musique
|
||||||
setting.sfxvol.name = Volume des SFX
|
setting.sfxvol.name = Volume des SFX
|
||||||
setting.mutesound.name = Couper les SFX
|
setting.mutesound.name = Couper les SFX
|
||||||
setting.crashreport.name = Send Anonymous Crash Reports
|
setting.crashreport.name = Envoyer un rapport de crash anonyme
|
||||||
keybind.title = Paramétrer les touches
|
keybind.title = Paramétrer les touches
|
||||||
category.general.name = General
|
category.general.name = Général
|
||||||
category.view.name = Voir
|
category.view.name = Voir
|
||||||
category.multiplayer.name = Multijoueur
|
category.multiplayer.name = Multijoueur
|
||||||
command.attack = Attaque
|
command.attack = Attaque
|
||||||
command.retreat = Retraite
|
command.retreat = Retraite
|
||||||
command.patrol = Patrouille
|
command.patrol = Patrouille
|
||||||
keybind.gridMode.name = Block Select
|
keybind.gridMode.name = Sélection des blocs
|
||||||
keybind.gridModeShift.name = Category Select
|
keybind.gridModeShift.name = Sélection des catégories
|
||||||
keybind.press = Appuyer sur une touche...
|
keybind.press = Appuyer sur une touche...
|
||||||
keybind.press.axis = Appuyer sur un axe ou une touche...
|
keybind.press.axis = Appuyer sur un axe ou une touche...
|
||||||
keybind.screenshot.name = Map Screenshot
|
keybind.screenshot.name = Capture d'écran
|
||||||
keybind.move_x.name = mouvement x
|
keybind.move_x.name = mouvement x
|
||||||
keybind.move_y.name = mouvement y
|
keybind.move_y.name = mouvement y
|
||||||
keybind.select.name = sélectionner
|
keybind.select.name = sélectionner
|
||||||
keybind.diagonal_placement.name = Diagonal Placement
|
keybind.diagonal_placement.name = Placement en diagonal
|
||||||
keybind.pick.name = Pick Block
|
keybind.pick.name = Choisir un bloc
|
||||||
keybind.break_block.name = Break Block
|
keybind.break_block.name = Suppprimer un bloc
|
||||||
keybind.deselect.name = Déselectionner
|
keybind.deselect.name = Désélectionner
|
||||||
keybind.shoot.name = tirer
|
keybind.shoot.name = tirer
|
||||||
keybind.zoom_hold.name = tenir le zoom
|
keybind.zoom_hold.name = maintenir le zoom
|
||||||
keybind.zoom.name = zoom
|
keybind.zoom.name = zoom
|
||||||
keybind.menu.name = menu
|
keybind.menu.name = menu
|
||||||
keybind.pause.name = Pause
|
keybind.pause.name = Pause
|
||||||
@@ -507,6 +508,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +596,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacité de stockage: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
|
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
|
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Compétence: {0}
|
mech.ability = [LIGHT_GRAY]Compétence: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Ajouter/Enlever des joueurs
|
|||||||
customgame = Partie personnalisée
|
customgame = Partie personnalisée
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <Vide>
|
none = <Vide>
|
||||||
|
minimap = Minimap
|
||||||
close = Fermer
|
close = Fermer
|
||||||
quit = Quitter
|
quit = Quitter
|
||||||
maps = Cartes
|
maps = Cartes
|
||||||
@@ -335,66 +336,48 @@ no = Non
|
|||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]Une erreur s'est produite
|
error.title = [crimson]Une erreur s'est produite
|
||||||
error.crashtitle = Une erreur s'est produite
|
error.crashtitle = Une erreur s'est produite
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Info sur le bloc
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Capacité d'énergie
|
blocks.powercapacity = Capacité d'énergie
|
||||||
blocks.powershot = Énergie/Tir
|
blocks.powershot = Énergie/Tir
|
||||||
blocks.targetsair = Cible les unités aériennes
|
blocks.targetsair = Cible les unités aériennes
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Portée
|
blocks.shootrange = Portée
|
||||||
blocks.size = Taille
|
blocks.size = Taille
|
||||||
blocks.liquidcapacity = Capacité en liquide
|
blocks.liquidcapacity = Capacité en liquide
|
||||||
blocks.maxitemssecond = Production maximale
|
|
||||||
blocks.powerrange = Distance de transmission
|
blocks.powerrange = Distance de transmission
|
||||||
blocks.poweruse = Énergie utilisée
|
blocks.poweruse = Énergie utilisée
|
||||||
blocks.powerdamage = Énergie/Dégâts
|
blocks.powerdamage = Énergie/Dégâts
|
||||||
blocks.inputitemcapacity = Capacité d'entrée
|
|
||||||
blocks.outputitemcapacity = Capacité de sortie
|
|
||||||
blocks.itemcapacity = Stockage
|
blocks.itemcapacity = Stockage
|
||||||
blocks.basepowergeneration = Production d'énergie de base
|
blocks.basepowergeneration = Production d'énergie de base
|
||||||
blocks.powertransferspeed = Vitesse de transfert d'énergie
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Vitesse de production
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Liquide requis
|
|
||||||
blocks.inputliquidaux = Liquide optionnel
|
|
||||||
blocks.inputitem = Objet utilisé
|
|
||||||
blocks.inputitems = Objets utilisés
|
|
||||||
blocks.outputitem = Objet produit
|
|
||||||
blocks.drilltier = Forable
|
blocks.drilltier = Forable
|
||||||
blocks.drillspeed = Vitesse de forage de base
|
blocks.drillspeed = Vitesse de forage de base
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Liquide en sortie
|
|
||||||
blocks.liquidoutputspeed = Vitesse de sortie du liquide
|
|
||||||
blocks.liquiduse = Quantité de liquide utilisé
|
|
||||||
blocks.coolant = Liquide de refroidissement
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Quantité de liquide de refroidissement utilisé
|
|
||||||
blocks.inputliquidfuel = Carburant liquide
|
|
||||||
blocks.liquidfueluse = Quantité de carburant liquide utilisé
|
|
||||||
blocks.boostitem = Objet boostant la production
|
|
||||||
blocks.boostliquid = Liquide boostant la production
|
|
||||||
blocks.health = Santé
|
blocks.health = Santé
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Précision
|
blocks.inaccuracy = Précision
|
||||||
blocks.shots = Tirs
|
blocks.shots = Tirs
|
||||||
blocks.reload = Tirs/Seconde
|
blocks.reload = Tirs/Seconde
|
||||||
blocks.inputfuel = Carburant
|
|
||||||
blocks.fuelburntime = Durée du carburant
|
|
||||||
blocks.inputcapacity = Capacité d'entrée
|
|
||||||
blocks.outputcapacity = Capacité de sortie
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = Unité de liquide
|
|||||||
unit.powerunits = Unité d'énergie
|
unit.powerunits = Unité d'énergie
|
||||||
unit.degrees = degrés
|
unit.degrees = degrés
|
||||||
unit.seconds = secondes
|
unit.seconds = secondes
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = Objets
|
unit.items = Objets
|
||||||
category.general = Général
|
category.general = Général
|
||||||
category.power = Énergie
|
category.power = Énergie
|
||||||
@@ -425,6 +411,7 @@ category.optional = Améliorations facultatives
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Indicateurs d'alliés
|
setting.indicators.name = Indicateurs d'alliés
|
||||||
setting.autotarget.name = Visée automatique
|
setting.autotarget.name = Visée automatique
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Afficher FPS
|
setting.fps.name = Afficher FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Afficher les rayons des lasers
|
setting.lasers.name = Afficher les rayons des lasers
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Montrer la minimap
|
setting.minimap.name = Montrer la minimap
|
||||||
setting.musicvol.name = Volume de la musique
|
setting.musicvol.name = Volume de la musique
|
||||||
setting.mutemusic.name = Couper la musique
|
setting.mutemusic.name = Couper la musique
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacité de stockage: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
|
mech.minespeed = [LIGHT_GRAY]Vitesse de minage: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
|
mech.minepower = [LIGHT_GRAY]Puissance du minage: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Compétence: {0}
|
mech.ability = [LIGHT_GRAY]Compétence: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacité Thermique {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosité: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
liquid.temperature = [LIGHT_GRAY]Température: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Tambah/Hapus Pemain
|
|||||||
customgame = Game Bebas
|
customgame = Game Bebas
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <kosong>
|
none = <kosong>
|
||||||
|
minimap = Minimap
|
||||||
close = Tutup
|
close = Tutup
|
||||||
quit = Keluar
|
quit = Keluar
|
||||||
maps = Peta
|
maps = Peta
|
||||||
@@ -335,66 +336,48 @@ no = No
|
|||||||
info.title = [accent]Info
|
info.title = [accent]Info
|
||||||
error.title = [crimson]Telah terjadi kesalahan
|
error.title = [crimson]Telah terjadi kesalahan
|
||||||
error.crashtitle = Telah terjadi kesalahan
|
error.crashtitle = Telah terjadi kesalahan
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Info Blok
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Kapasitas Tenaga
|
blocks.powercapacity = Kapasitas Tenaga
|
||||||
blocks.powershot = Tenaga/tembakan
|
blocks.powershot = Tenaga/tembakan
|
||||||
blocks.targetsair = Targets Air
|
blocks.targetsair = Targets Air
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Range
|
blocks.shootrange = Range
|
||||||
blocks.size = Ukuran
|
blocks.size = Ukuran
|
||||||
blocks.liquidcapacity = Kapasitas cairan
|
blocks.liquidcapacity = Kapasitas cairan
|
||||||
blocks.maxitemssecond = Batas barang/detik
|
|
||||||
blocks.powerrange = Jangkauan tenaga
|
blocks.powerrange = Jangkauan tenaga
|
||||||
blocks.poweruse = Power Use
|
blocks.poweruse = Power Use
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Input Item Capacity
|
|
||||||
blocks.outputitemcapacity = Input Item Capacity
|
|
||||||
blocks.itemcapacity = Kapasitas Barang
|
blocks.itemcapacity = Kapasitas Barang
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Power Transfer
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Production Speed
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Cairan yang Masuk
|
|
||||||
blocks.inputliquidaux = Aux Liquid
|
|
||||||
blocks.inputitem = Barang yang Masuk
|
|
||||||
blocks.inputitems = Input Items
|
|
||||||
blocks.outputitem = Output Item
|
|
||||||
blocks.drilltier = Drillables
|
blocks.drilltier = Drillables
|
||||||
blocks.drillspeed = Base Drill Speed
|
blocks.drillspeed = Base Drill Speed
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Liquid Output
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Liquid Use
|
|
||||||
blocks.coolant = Coolant
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Coolant Use
|
|
||||||
blocks.inputliquidfuel = Fuel Liquid
|
|
||||||
blocks.liquidfueluse = Liquid Fuel Use
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Darah
|
blocks.health = Darah
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Ketidaktelitian
|
blocks.inaccuracy = Ketidaktelitian
|
||||||
blocks.shots = Tembakan
|
blocks.shots = Tembakan
|
||||||
blocks.reload = Reload
|
blocks.reload = Reload
|
||||||
blocks.inputfuel = Fuel
|
|
||||||
blocks.fuelburntime = Fuel Burn Time
|
|
||||||
blocks.inputcapacity = Kapasitas masuk
|
|
||||||
blocks.outputcapacity = Kapasitas keluar
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
|
|||||||
unit.powerunits = power units
|
unit.powerunits = power units
|
||||||
unit.degrees = degrees
|
unit.degrees = degrees
|
||||||
unit.seconds = seconds
|
unit.seconds = seconds
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = items
|
unit.items = items
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Tunjukkan FPS
|
setting.fps.name = Tunjukkan FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Tampilkan Laser Tenaga
|
setting.lasers.name = Tampilkan Laser Tenaga
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
setting.musicvol.name = Volume Musik
|
setting.musicvol.name = Volume Musik
|
||||||
setting.mutemusic.name = Bisukan Musik
|
setting.mutemusic.name = Bisukan Musik
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
mech.ability = [LIGHT_GRAY]Ability: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Aggiungi/rimuovi giocatori
|
|||||||
customgame = Gioco personalizzato
|
customgame = Gioco personalizzato
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <Niente . . . >
|
none = <Niente . . . >
|
||||||
|
minimap = Minimap
|
||||||
close = Chiuso
|
close = Chiuso
|
||||||
quit = Esci
|
quit = Esci
|
||||||
maps = Mappe
|
maps = Mappe
|
||||||
@@ -335,66 +336,48 @@ no = No
|
|||||||
info.title = [accent] Info
|
info.title = [accent] Info
|
||||||
error.title = [crimson]Si è verificato un errore
|
error.title = [crimson]Si è verificato un errore
|
||||||
error.crashtitle = Si è verificato un errore
|
error.crashtitle = Si è verificato un errore
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = info sul blocco
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Capacità Energetica
|
blocks.powercapacity = Capacità Energetica
|
||||||
blocks.powershot = Danno/Colpo
|
blocks.powershot = Danno/Colpo
|
||||||
blocks.targetsair = Attacca nemici aerei
|
blocks.targetsair = Attacca nemici aerei
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Raggio
|
blocks.shootrange = Raggio
|
||||||
blocks.size = Grandezza
|
blocks.size = Grandezza
|
||||||
blocks.liquidcapacity = Capacità del liquido
|
blocks.liquidcapacity = Capacità del liquido
|
||||||
blocks.maxitemssecond = Oggetti massimi/secondo
|
|
||||||
blocks.powerrange = Raggio Energia
|
blocks.powerrange = Raggio Energia
|
||||||
blocks.poweruse = Utilizzo energia
|
blocks.poweruse = Utilizzo energia
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Capacità oggetti in entrata
|
|
||||||
blocks.outputitemcapacity = Capacità oggetti in uscità
|
|
||||||
blocks.itemcapacity = Capacità
|
blocks.itemcapacity = Capacità
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Velocità trasferimento energia
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Velocità produzione
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Input del liquido
|
|
||||||
blocks.inputliquidaux = Liquidi extra
|
|
||||||
blocks.inputitem = Input Oggetto
|
|
||||||
blocks.inputitems = Oggetti in entrata
|
|
||||||
blocks.outputitem = Oggetti in uscita
|
|
||||||
blocks.drilltier = Scavabili
|
blocks.drilltier = Scavabili
|
||||||
blocks.drillspeed = Velocità scavo stbile
|
blocks.drillspeed = Velocità scavo stbile
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Uscita liquidi
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Uso liquidi
|
|
||||||
blocks.coolant = Refrigerante
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = uso refrigerante
|
|
||||||
blocks.inputliquidfuel = carburante liquido
|
|
||||||
blocks.liquidfueluse = Utilizzo carburante liquido
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Salute
|
blocks.health = Salute
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Inaccuratezza
|
blocks.inaccuracy = Inaccuratezza
|
||||||
blocks.shots = Colpi
|
blocks.shots = Colpi
|
||||||
blocks.reload = Ricarica
|
blocks.reload = Ricarica
|
||||||
blocks.inputfuel = Carburante
|
|
||||||
blocks.fuelburntime = Tempo combustione carburante
|
|
||||||
blocks.inputcapacity = Capacità di ingresso
|
|
||||||
blocks.outputcapacity = Capacità di uscita
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = unità liquidi
|
|||||||
unit.powerunits = unità energia
|
unit.powerunits = unità energia
|
||||||
unit.degrees = gradi
|
unit.degrees = gradi
|
||||||
unit.seconds = secondi
|
unit.seconds = secondi
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = oggetti
|
unit.items = oggetti
|
||||||
category.general = Generali
|
category.general = Generali
|
||||||
category.power = Energia
|
category.power = Energia
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Mostra FPS
|
setting.fps.name = Mostra FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Mostra Laser Energetici
|
setting.lasers.name = Mostra Laser Energetici
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Mostra minimappa
|
setting.minimap.name = Mostra minimappa
|
||||||
setting.musicvol.name = Volume Musica
|
setting.musicvol.name = Volume Musica
|
||||||
setting.mutemusic.name = Silenzia musica
|
setting.mutemusic.name = Silenzia musica
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacità oggetti: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Velocità di scavo: {0}
|
mech.minespeed = [LIGHT_GRAY]Velocità di scavo: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Potenza di scavo: {0}
|
mech.minepower = [LIGHT_GRAY]Potenza di scavo: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Abilità: {0}
|
mech.ability = [LIGHT_GRAY]Abilità: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacità calorifica: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacità calorifica: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosità: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosità: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = プレイヤーを追加/削除
|
|||||||
customgame = カスタムゲーム
|
customgame = カスタムゲーム
|
||||||
newgame = 新しいゲーム
|
newgame = 新しいゲーム
|
||||||
none = <なし>
|
none = <なし>
|
||||||
|
minimap = Minimap
|
||||||
close = 閉じる
|
close = 閉じる
|
||||||
quit = 終了
|
quit = 終了
|
||||||
maps = マップ
|
maps = マップ
|
||||||
@@ -335,66 +336,48 @@ no = いいえ
|
|||||||
info.title = 情報
|
info.title = 情報
|
||||||
error.title = [crimson]エラーが発生しました
|
error.title = [crimson]エラーが発生しました
|
||||||
error.crashtitle = エラーが発生しました
|
error.crashtitle = エラーが発生しました
|
||||||
blocks.outputspeed = 採掘速度: {0}/秒
|
blocks.input = Input
|
||||||
blocks.efficiency = 効率: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = ブロック情報
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = 電力: {0}
|
|
||||||
blocks.poweroutput = 電力発電量: {0}
|
|
||||||
blocks.powercapacity = 電力容量
|
blocks.powercapacity = 電力容量
|
||||||
blocks.powershot = 電力/ショット
|
blocks.powershot = 電力/ショット
|
||||||
blocks.targetsair = 対空攻撃
|
blocks.targetsair = 対空攻撃
|
||||||
blocks.targetsground = 対地攻撃
|
blocks.targetsground = 対地攻撃
|
||||||
blocks.items = アイテム: {0}
|
|
||||||
blocks.itemsmoved = 輸送速度
|
blocks.itemsmoved = 輸送速度
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = 範囲
|
blocks.shootrange = 範囲
|
||||||
blocks.size = 大きさ
|
blocks.size = 大きさ
|
||||||
blocks.liquidcapacity = 液体容量
|
blocks.liquidcapacity = 液体容量
|
||||||
blocks.maxitemssecond = 最大アイテム量
|
|
||||||
blocks.powerrange = 電力範囲
|
blocks.powerrange = 電力範囲
|
||||||
blocks.poweruse = 電力使用量
|
blocks.poweruse = 電力使用量
|
||||||
blocks.powerdamage = 電力/ダメージ
|
blocks.powerdamage = 電力/ダメージ
|
||||||
blocks.inputitemcapacity = 搬入アイテム容量
|
|
||||||
blocks.outputitemcapacity = 搬出アイテム容量
|
|
||||||
blocks.itemcapacity = アイテム容量
|
blocks.itemcapacity = アイテム容量
|
||||||
blocks.basepowergeneration = 基本発電量
|
blocks.basepowergeneration = 基本発電量
|
||||||
blocks.powertransferspeed = 電力伝送量
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = 生産速度
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = 必要な液体
|
|
||||||
blocks.inputliquidaux = 補助液
|
|
||||||
blocks.inputitem = 必要なアイテム
|
|
||||||
blocks.inputitems = 必要なアイテム
|
|
||||||
blocks.outputitem = 搬出アイテム
|
|
||||||
blocks.drilltier = ドリル
|
blocks.drilltier = ドリル
|
||||||
blocks.drillspeed = 基本採掘速度
|
blocks.drillspeed = 基本採掘速度
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = 最大ユニット数
|
blocks.maxunits = 最大ユニット数
|
||||||
blocks.liquidoutput = 搬出液体
|
|
||||||
blocks.liquidoutputspeed = 液体搬出速度
|
|
||||||
blocks.liquiduse = 液体使用量
|
|
||||||
blocks.coolant = 冷却
|
|
||||||
blocks.liquid = 液体
|
|
||||||
blocks.coolantuse = 冷却使用量
|
|
||||||
blocks.inputliquidfuel = 液体燃料
|
|
||||||
blocks.liquidfueluse = 液体燃料使用量
|
|
||||||
blocks.boostitem = 加速アイテム
|
|
||||||
blocks.boostliquid = 加速液体
|
|
||||||
blocks.health = 耐久値
|
blocks.health = 耐久値
|
||||||
blocks.heat = 熱
|
|
||||||
blocks.power = 電力
|
|
||||||
blocks.progress = 建設状況
|
|
||||||
blocks.spawned = ユニット数: {0}/{1}
|
|
||||||
blocks.power.satisfaction = 電力需要
|
|
||||||
blocks.inaccuracy = 精度のずれ
|
blocks.inaccuracy = 精度のずれ
|
||||||
blocks.shots = ショット
|
blocks.shots = ショット
|
||||||
blocks.reload = ショット/秒
|
blocks.reload = ショット/秒
|
||||||
blocks.inputfuel = 燃料
|
|
||||||
blocks.fuelburntime = 燃焼時間
|
|
||||||
blocks.inputcapacity = 搬入容量
|
|
||||||
blocks.outputcapacity = 搬出容量
|
|
||||||
blocks.ammo = 弾薬
|
blocks.ammo = 弾薬
|
||||||
|
bar.drillspeed = 採掘速度: {0}/秒
|
||||||
|
bar.efficiency = 効率: {0}%
|
||||||
|
bar.powerbalance = 電力: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = 電力発電量: {0}
|
||||||
|
bar.items = アイテム: {0}
|
||||||
|
bar.liquid = 液体
|
||||||
|
bar.heat = 熱
|
||||||
|
bar.power = 電力
|
||||||
|
bar.progress = 建設状況
|
||||||
|
bar.spawned = ユニット数: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = 液体
|
|||||||
unit.powerunits = 電力
|
unit.powerunits = 電力
|
||||||
unit.degrees = 度
|
unit.degrees = 度
|
||||||
unit.seconds = 秒
|
unit.seconds = 秒
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = アイテム
|
unit.items = アイテム
|
||||||
category.general = 一般
|
category.general = 一般
|
||||||
category.power = 電力
|
category.power = 電力
|
||||||
@@ -425,6 +411,7 @@ category.optional = 機能強化オプション
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = 水のアニメーション
|
setting.animatedwater.name = 水のアニメーション
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = 味方の方角表示
|
setting.indicators.name = 味方の方角表示
|
||||||
setting.autotarget.name = 自動ターゲット
|
setting.autotarget.name = 自動ターゲット
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = FPSを表示
|
setting.fps.name = FPSを表示
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = 電力レーザーを表示
|
setting.lasers.name = 電力レーザーを表示
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = ミニマップを表示
|
setting.minimap.name = ミニマップを表示
|
||||||
setting.musicvol.name = 音楽 音量
|
setting.musicvol.name = 音楽 音量
|
||||||
setting.mutemusic.name = 音楽をミュート
|
setting.mutemusic.name = 音楽をミュート
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]アイテム容量: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]採掘速度: {0}
|
mech.minespeed = [LIGHT_GRAY]採掘速度: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]採掘性能: {0}
|
mech.minepower = [LIGHT_GRAY]採掘性能: {0}
|
||||||
mech.ability = [LIGHT_GRAY]能力: {0}
|
mech.ability = [LIGHT_GRAY]能力: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]熱容量: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]粘度: {0}
|
liquid.viscosity = [LIGHT_GRAY]粘度: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]温度: {0}
|
liquid.temperature = [LIGHT_GRAY]温度: {0}
|
||||||
|
|||||||
@@ -14,24 +14,27 @@ screenshot = 화면 캡쳐가 {0} 경로에 저장되었습니다.
|
|||||||
gameover = 게임 오버
|
gameover = 게임 오버
|
||||||
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
gameover.pvp = [accent]{0}[] 팀이 승리했습니다!
|
||||||
highscore = [accent]최고점수 달성!
|
highscore = [accent]최고점수 달성!
|
||||||
|
|
||||||
stat.wave = 웨이브 성공:[accent]{0}
|
stat.wave = 웨이브 성공:[accent]{0}
|
||||||
stat.enemiesDestroyed = 파괴한 적 수:[accent]{0}
|
stat.enemiesDestroyed = 파괴한 적 수:[accent]{0}
|
||||||
stat.built = 건설한 건물 수:[accent]{0}
|
stat.built = 건설한 건물 수:[accent]{0}
|
||||||
stat.destroyed = 파괴된 건물 수:[accent]{0}
|
stat.destroyed = 파괴된 건물 수:[accent]{0}
|
||||||
stat.deconstructed = 해체한 건물 수:[accent]{0}
|
stat.deconstructed = 파괴한 건물 수:[accent]{0}
|
||||||
stat.delivered = 획득한 자원:
|
stat.delivered = 획득한 자원:
|
||||||
stat.rank = 최종 기록: [accent]{0}
|
stat.rank = 최종 기록: [accent]{0}
|
||||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
|
|
||||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it.
|
placeline = 블록을 선택하셨습니다.\n][accent]몇초간 설치 시작지점을 누르고[] 원하는 방향을 향해 드래그 하면 [accent]일렬로[] 설치할 수 있습니다.\n한번 해 보세요.
|
||||||
launcheditems = [accent]Launched Items
|
removearea = 블록 제거모드를 선택하셨습니다.\n[accent]몇초간 제거 시작지점을 누르고[] 원하는 구역 끝을 향해 드래그 하면 [accent]직사각형[] 안에 있는 모든 건물을 제거할 수 있습니다.\n한번 해 보세요.
|
||||||
|
|
||||||
|
launcheditems = [accent]출격 아이템
|
||||||
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?\n
|
map.delete = 정말로 "[accent]{0}[]" 맵을 삭제하시겠습니까?\n
|
||||||
level.highscore = 최고 점수: [accent]{0}
|
level.highscore = 최고 점수: [accent]{0}
|
||||||
level.select = 맵 선택
|
level.select = 맵 선택
|
||||||
level.mode = 게임 모드 :
|
level.mode = 게임 모드 :
|
||||||
showagain = 다음 세션에서 이 메세지를 표시하지 않습니다
|
showagain = 다음 세션에서 이 메세지를 표시하지 않습니다
|
||||||
coreattack = < 코어가 공격받고 있습니다! >
|
coreattack = < 코어가 공격받고 있습니다! >
|
||||||
nearpoint = [[ [scarlet]드롭 지점에서 나가세요[] ]\n모든 유닛 및 건물 파괴 임박
|
nearpoint = [[ [scarlet]드롭 지점에서 나가세요[] ]\n적 스폰시 건물 및 유닛 파괴
|
||||||
outofbounds = [[ 출입 금지 구역 ]\n[]{0}초후 건물이 해체됩니다.
|
outofbounds = [[ 출입 금지 구역 ]\n[]{0}초후 유닛이 파괴됩니다.
|
||||||
database = 코어 데이터베이스
|
database = 코어 데이터베이스
|
||||||
savegame = 게임 저장
|
savegame = 게임 저장
|
||||||
loadgame = 게임 불러오기
|
loadgame = 게임 불러오기
|
||||||
@@ -40,6 +43,7 @@ addplayers = 플레이어 추가/제거
|
|||||||
customgame = 커스텀 게임
|
customgame = 커스텀 게임
|
||||||
newgame = 새 게임
|
newgame = 새 게임
|
||||||
none = <없음>
|
none = <없음>
|
||||||
|
minimap = 미니맵
|
||||||
close = 닫기
|
close = 닫기
|
||||||
quit = 나가기
|
quit = 나가기
|
||||||
maps = 맵
|
maps = 맵
|
||||||
@@ -280,11 +284,12 @@ tutorial = 게임 방법
|
|||||||
editor = 편집기
|
editor = 편집기
|
||||||
mapeditor = 맵 편집기
|
mapeditor = 맵 편집기
|
||||||
donate = 기부
|
donate = 기부
|
||||||
abandon = 버리기
|
|
||||||
|
abandon = 포기
|
||||||
abandon.text = 이 구역과 모든 자원이 적에게 빼앗길 것입니다.
|
abandon.text = 이 구역과 모든 자원이 적에게 빼앗길 것입니다.
|
||||||
locked = 잠김
|
locked = 잠김
|
||||||
complete = [LIGHT_GRAY]완료:
|
complete = [LIGHT_GRAY]완료:
|
||||||
zone.requirement = Wave {0} in zone {1}
|
zone.requirement = 지역 {1} 에서 웨이브 {0} 달성
|
||||||
resume = 지역 계속 플레이:\n[LIGHT_GRAY]{0}
|
resume = 지역 계속 플레이:\n[LIGHT_GRAY]{0}
|
||||||
bestwave = [LIGHT_GRAY]최고 점수: {0}
|
bestwave = [LIGHT_GRAY]최고 점수: {0}
|
||||||
launch = < 출격 >
|
launch = < 출격 >
|
||||||
@@ -296,11 +301,12 @@ uncover = 털어넣기
|
|||||||
configure = 로드아웃 설정
|
configure = 로드아웃 설정
|
||||||
configure.locked = {0} 단계에서 로드아웃을 설정할 수 있음.
|
configure.locked = {0} 단계에서 로드아웃을 설정할 수 있음.
|
||||||
zone.unlocked = [LIGHT_GRAY] 잠금 해제됨.
|
zone.unlocked = [LIGHT_GRAY] 잠금 해제됨.
|
||||||
zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
|
zone.requirement.complete = 웨이브 {0} 달성:\n{1} 지역 요구사항이 충족됨.
|
||||||
zone.config.complete = 웨이브 {0} 달성:\n로드아웃 설정 잠금 해제됨.
|
zone.config.complete = 웨이브 {0} 달성:\n로드아웃 설정 잠금 해제됨.
|
||||||
zone.resources = 자원 감지됨:
|
zone.resources = 자원 감지됨:
|
||||||
add = 추가...
|
add = 추가...
|
||||||
boss.health = 보스 체력
|
boss.health = 보스 체력
|
||||||
|
|
||||||
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
|
connectfail = [crimson]{0}[accent] 서버에 연결하지 못했습니다.[]
|
||||||
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
error.unreachable = 서버에 연결하지 못했습니다.\n서버 주소가 정확히 입력되었나요?
|
||||||
error.invalidaddress = 잘못된 주소입니다.
|
error.invalidaddress = 잘못된 주소입니다.
|
||||||
@@ -310,6 +316,7 @@ error.alreadyconnected = 이미 접속중입니다.
|
|||||||
error.mapnotfound = 맵 파일을 찾을 수 없습니다!
|
error.mapnotfound = 맵 파일을 찾을 수 없습니다!
|
||||||
error.io = 네트워크 I/O 오류.
|
error.io = 네트워크 I/O 오류.
|
||||||
error.any = 알 수 없는 네트워크 오류.
|
error.any = 알 수 없는 네트워크 오류.
|
||||||
|
|
||||||
zone.groundZero.name = 그라운드 제로
|
zone.groundZero.name = 그라운드 제로
|
||||||
zone.craters.name = 분화구
|
zone.craters.name = 분화구
|
||||||
zone.frozenForest.name = 얼어붙은 숲
|
zone.frozenForest.name = 얼어붙은 숲
|
||||||
@@ -317,6 +324,7 @@ zone.ruinousShores.name = 파멸의 기슭
|
|||||||
zone.stainedMountains.name = 얼룩진 산맥
|
zone.stainedMountains.name = 얼룩진 산맥
|
||||||
zone.desolateRift.name = 황량한 강
|
zone.desolateRift.name = 황량한 강
|
||||||
zone.nuclearComplex.name = 핵 생산 단지
|
zone.nuclearComplex.name = 핵 생산 단지
|
||||||
|
|
||||||
settings.language = 언어
|
settings.language = 언어
|
||||||
settings.reset = 설정 초기화
|
settings.reset = 설정 초기화
|
||||||
settings.rebind = 키 재설정
|
settings.rebind = 키 재설정
|
||||||
@@ -335,66 +343,48 @@ no = 아니오
|
|||||||
info.title = [accent]정보
|
info.title = [accent]정보
|
||||||
error.title = [crimson]오류가 발생했습니다.
|
error.title = [crimson]오류가 발생했습니다.
|
||||||
error.crashtitle = 오류가 발생했습니다.
|
error.crashtitle = 오류가 발생했습니다.
|
||||||
blocks.outputspeed = 채광 속도: {0}/s
|
blocks.input = 입력
|
||||||
blocks.efficiency = 효율성: {0}%
|
blocks.output = 출력
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = 가속
|
||||||
blocks.blockinfo = 블록 정보
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = 전력: {0}
|
|
||||||
blocks.poweroutput = 전력 출력: {0}
|
|
||||||
blocks.powercapacity = 전력 용량
|
blocks.powercapacity = 전력 용량
|
||||||
blocks.powershot = 1발당 전력 소모량
|
blocks.powershot = 1발당 전력 소모량
|
||||||
blocks.targetsair = 공중공격 가능
|
blocks.targetsair = 공중공격 가능
|
||||||
blocks.targetsground = 지상공격 가능
|
blocks.targetsground = 지상공격 가능
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = 이동 속도
|
blocks.itemsmoved = 이동 속도
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = 출격 시간
|
||||||
blocks.shootrange = 사거리
|
blocks.shootrange = 사거리
|
||||||
blocks.size = 크기
|
blocks.size = 크기
|
||||||
blocks.liquidcapacity = 액체 용량
|
blocks.liquidcapacity = 액체 용량
|
||||||
blocks.maxitemssecond = 아이템 보관량
|
|
||||||
blocks.powerrange = 전력 범위
|
blocks.powerrange = 전력 범위
|
||||||
blocks.poweruse = 전력 사용
|
blocks.poweruse = 전력 사용
|
||||||
blocks.powerdamage = 전력/데미지
|
blocks.powerdamage = 전력/데미지
|
||||||
blocks.inputitemcapacity = 입력 아이템 용량
|
|
||||||
blocks.outputitemcapacity = 출력 아이템 용량
|
|
||||||
blocks.itemcapacity = 저장 용량
|
blocks.itemcapacity = 저장 용량
|
||||||
blocks.basepowergeneration = 기지 전력 생성기
|
blocks.basepowergeneration = 기본 전력 생성량
|
||||||
blocks.powertransferspeed = 전력 전송량
|
blocks.productiontime = 제작 시간
|
||||||
blocks.craftspeed = 생산 속도
|
blocks.repairtime = 전체 블록 수리시간
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.speedincrease = 속도 증가
|
||||||
blocks.range = Range
|
blocks.range = 사거리
|
||||||
blocks.inputliquid = 사용되는 액체
|
|
||||||
blocks.inputliquidaux = 보조 액체
|
|
||||||
blocks.inputitem = 사용되는 아이템
|
|
||||||
blocks.inputitems = 사용되는 아이템들
|
|
||||||
blocks.outputitem = 출력 아이템
|
|
||||||
blocks.drilltier = 드릴
|
blocks.drilltier = 드릴
|
||||||
blocks.drillspeed = 기본 드릴 속도
|
blocks.drillspeed = 기본 드릴 속도
|
||||||
|
blocks.boosteffect = 가속 효과
|
||||||
blocks.maxunits = 최대 활성유닛
|
blocks.maxunits = 최대 활성유닛
|
||||||
blocks.liquidoutput = 액체 출력
|
|
||||||
blocks.liquidoutputspeed = 액체 출력속도
|
|
||||||
blocks.liquiduse = 액체 사용량
|
|
||||||
blocks.coolant = 냉각제
|
|
||||||
blocks.liquid = 액체
|
|
||||||
blocks.coolantuse = 냉각제 사용
|
|
||||||
blocks.inputliquidfuel = 연료 액
|
|
||||||
blocks.liquidfueluse = 액체 연료 사용
|
|
||||||
blocks.boostitem = 가속 아이템
|
|
||||||
blocks.boostliquid = 가속 액체
|
|
||||||
blocks.health = 체력
|
blocks.health = 체력
|
||||||
blocks.heat = 발열
|
|
||||||
blocks.power = 전력
|
|
||||||
blocks.progress = 건설 진행
|
|
||||||
blocks.spawned = 유닛: {0}/{1}
|
|
||||||
blocks.power.satisfaction = 전력 만족도
|
|
||||||
blocks.inaccuracy = 오차각
|
blocks.inaccuracy = 오차각
|
||||||
blocks.shots = 발포 횟수
|
blocks.shots = 발포 횟수
|
||||||
blocks.reload = 재장전
|
blocks.reload = 재장전
|
||||||
blocks.inputfuel = 연료
|
|
||||||
blocks.fuelburntime = 연료 연소 시간
|
|
||||||
blocks.inputcapacity = 입력 용량
|
|
||||||
blocks.outputcapacity = 출력 용량
|
|
||||||
blocks.ammo = 탄약
|
blocks.ammo = 탄약
|
||||||
|
bar.outputspeed = 채광 속도: {0}/s
|
||||||
|
bar.efficiency = 효율성: {0}%
|
||||||
|
bar.powerbalance = 전력: {0}/s
|
||||||
|
bar.poweroutput = 전력 출력: {0}
|
||||||
|
bar.items = 아이템: {0}
|
||||||
|
bar.liquid = 액체
|
||||||
|
bar.heat = 발열
|
||||||
|
bar.power = 전력
|
||||||
|
bar.progress = 건설 진행
|
||||||
|
bar.spawned = 유닛: {0}/{1}
|
||||||
|
|
||||||
bullet.damage = [stat]{0}[lightgray] 데미지
|
bullet.damage = [stat]{0}[lightgray] 데미지
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area 데미지 ~[stat] {1}[lightgray] 타일
|
bullet.splashdamage = [stat]{0}[lightgray] area 데미지 ~[stat] {1}[lightgray] 타일
|
||||||
bullet.incendiary = [stat]방화
|
bullet.incendiary = [stat]방화
|
||||||
@@ -406,6 +396,7 @@ bullet.freezing = [stat]동결
|
|||||||
bullet.tarred = [stat]타르
|
bullet.tarred = [stat]타르
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x 탄약 배율
|
bullet.multiplier = [stat]{0}[lightgray]x 탄약 배율
|
||||||
bullet.reload = [stat]{0}[lightgray]x 사격 속도
|
bullet.reload = [stat]{0}[lightgray]x 사격 속도
|
||||||
|
|
||||||
unit.blocks = 블록
|
unit.blocks = 블록
|
||||||
unit.powersecond = 전력/초
|
unit.powersecond = 전력/초
|
||||||
unit.liquidsecond = 액체/초
|
unit.liquidsecond = 액체/초
|
||||||
@@ -414,6 +405,9 @@ unit.liquidunits = 액체
|
|||||||
unit.powerunits = 전력
|
unit.powerunits = 전력
|
||||||
unit.degrees = 도
|
unit.degrees = 도
|
||||||
unit.seconds = 초
|
unit.seconds = 초
|
||||||
|
unit.persecond = /초
|
||||||
|
unit.timesspeed = x 배
|
||||||
|
unit.percent = %
|
||||||
unit.items = 아이템
|
unit.items = 아이템
|
||||||
category.general = 일반
|
category.general = 일반
|
||||||
category.power = 전력
|
category.power = 전력
|
||||||
@@ -425,6 +419,7 @@ category.optional = 보조 아이템
|
|||||||
setting.landscape.name = 가로화면으로 고정
|
setting.landscape.name = 가로화면으로 고정
|
||||||
setting.shadows.name = 그림자
|
setting.shadows.name = 그림자
|
||||||
setting.animatedwater.name = 움직이는 물
|
setting.animatedwater.name = 움직이는 물
|
||||||
|
setting.animatedshields.name = 움직이는 보호막
|
||||||
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
|
setting.antialias.name = 안티 에일리어싱[LIGHT_GRAY] (재시작 필요)[]
|
||||||
setting.indicators.name = 아군/적 인디게이터 표시
|
setting.indicators.name = 아군/적 인디게이터 표시
|
||||||
setting.autotarget.name = 자동 조준
|
setting.autotarget.name = 자동 조준
|
||||||
@@ -448,6 +443,7 @@ setting.borderless.name = 테두리 없는 창모드
|
|||||||
setting.fps.name = FPS 표시
|
setting.fps.name = FPS 표시
|
||||||
setting.vsync.name = VSync 활성화
|
setting.vsync.name = VSync 활성화
|
||||||
setting.lasers.name = 전력 노드 레이저 표시
|
setting.lasers.name = 전력 노드 레이저 표시
|
||||||
|
setting.pixelate.name = 픽셀화 [LIGHT_GRAY](게임 성능이 감소할 수 있습니다)
|
||||||
setting.minimap.name = 미니맵 보기
|
setting.minimap.name = 미니맵 보기
|
||||||
setting.musicvol.name = 음악 크기
|
setting.musicvol.name = 음악 크기
|
||||||
setting.mutemusic.name = 음소거
|
setting.mutemusic.name = 음소거
|
||||||
@@ -500,18 +496,23 @@ mode.pvp.name = PvP
|
|||||||
mode.pvp.description = 실제 플레이어와 PvP를 합니다.
|
mode.pvp.description = 실제 플레이어와 PvP를 합니다.
|
||||||
mode.attack.name = 공격
|
mode.attack.name = 공격
|
||||||
mode.attack.description = 일정 시간마다 적이 오는 단계가 없으며, 적의 기지를 파괴하는 것을 목표로 합니다.
|
mode.attack.description = 일정 시간마다 적이 오는 단계가 없으며, 적의 기지를 파괴하는 것을 목표로 합니다.
|
||||||
mode.custom = Custom Rules
|
mode.custom = 커스텀 규칙
|
||||||
|
|
||||||
rules.infiniteresources = 무한 자원
|
rules.infiniteresources = 무한 자원
|
||||||
rules.wavetimer = 웨이브 타이머
|
rules.wavetimer = 웨이브 타이머
|
||||||
rules.waves = 웨이브
|
rules.waves = 웨이브
|
||||||
rules.enemyCheat = 무한 AI 자원
|
rules.enemyCheat = 무한 AI 자원
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = 유닛 드롭
|
rules.unitdrops = 유닛 드롭
|
||||||
|
rules.unitbuildspeedmultiplier = 유닛 생산속도 배수
|
||||||
|
rules.unithealthmultiplier = 유닛 체력 배수
|
||||||
|
rules.playerdamagemultiplier = 플레이어 공격력 배수
|
||||||
rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일)
|
rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일)
|
||||||
rules.respawntime = 리스폰 시간:[LIGHT_GRAY] (초)
|
rules.respawntime = 리스폰 시간:[LIGHT_GRAY] (초)
|
||||||
rules.wavespacing = 웨이브 간격:[LIGHT_GRAY] (초)
|
rules.wavespacing = 웨이브 간격:[LIGHT_GRAY] (초)
|
||||||
rules.buildcostmultiplier = 건설 소모 배율
|
rules.buildcostmultiplier = 건설 소모 배율
|
||||||
rules.buildspeedmultiplier = 건설 속도 배율
|
rules.buildspeedmultiplier = 건설 속도 배율
|
||||||
|
|
||||||
content.item.name = 아이템
|
content.item.name = 아이템
|
||||||
content.liquid.name = 액체
|
content.liquid.name = 액체
|
||||||
content.unit.name = 유닛
|
content.unit.name = 유닛
|
||||||
@@ -554,7 +555,7 @@ liquid.oil.name = 석유
|
|||||||
liquid.cryofluid.name = 냉각유체
|
liquid.cryofluid.name = 냉각유체
|
||||||
mech.alpha-mech.name = 알파
|
mech.alpha-mech.name = 알파
|
||||||
mech.alpha-mech.weapon = 중무장 소총
|
mech.alpha-mech.weapon = 중무장 소총
|
||||||
mech.alpha-mech.ability = 없음
|
mech.alpha-mech.ability = 회복
|
||||||
mech.alpha-mech.description = 표준 기체.\n적절한 속도와 공격력을 갖추고 있습니다.
|
mech.alpha-mech.description = 표준 기체.\n적절한 속도와 공격력을 갖추고 있습니다.
|
||||||
mech.delta-mech.name = 델타
|
mech.delta-mech.name = 델타
|
||||||
mech.delta-mech.weapon = 전격 생산기
|
mech.delta-mech.weapon = 전격 생산기
|
||||||
@@ -589,12 +590,14 @@ unit.speed = [LIGHT_GRAY]속도: {0}
|
|||||||
mech.weapon = [LIGHT_GRAY]무기: {0}
|
mech.weapon = [LIGHT_GRAY]무기: {0}
|
||||||
mech.health = [LIGHT_GRAY]체력: {0}
|
mech.health = [LIGHT_GRAY]체력: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]아이템 수용 용량: {0}
|
mech.itemcapacity = [LIGHT_GRAY]아이템 수용 용량: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]채광 속도: {0}
|
mech.minespeed = [LIGHT_GRAY]채광 속도: {0}%
|
||||||
mech.minepower = [LIGHT_GRAY]채광 레벨: {0}
|
mech.minepower = [LIGHT_GRAY]채광 레벨: {0}
|
||||||
mech.ability = [LIGHT_GRAY]능력: {0}
|
mech.ability = [LIGHT_GRAY]능력: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]건설 속도: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]발열 용량: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]발열 용량: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]점도: {0}
|
liquid.viscosity = [LIGHT_GRAY]점도: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]온도: {0}
|
liquid.temperature = [LIGHT_GRAY]온도: {0}
|
||||||
|
|
||||||
block.grass.name = 잔디
|
block.grass.name = 잔디
|
||||||
block.salt.name = 소금
|
block.salt.name = 소금
|
||||||
block.sandrocks.name = 모래 바위
|
block.sandrocks.name = 모래 바위
|
||||||
@@ -694,7 +697,7 @@ block.battery-large.name = 대형 배터리
|
|||||||
block.combustion-generator.name = 화력 발전기
|
block.combustion-generator.name = 화력 발전기
|
||||||
block.turbine-generator.name = 터빈 발전기
|
block.turbine-generator.name = 터빈 발전기
|
||||||
block.differential-generator.name = 차동 발전기
|
block.differential-generator.name = 차동 발전기
|
||||||
block.impact-reactor.name = 충격 반응기
|
block.impact-reactor.name = 핵융합로
|
||||||
block.mechanical-drill.name = 기계 드릴
|
block.mechanical-drill.name = 기계 드릴
|
||||||
block.pneumatic-drill.name = 강철 드릴
|
block.pneumatic-drill.name = 강철 드릴
|
||||||
block.laser-drill.name = 레이저 드릴
|
block.laser-drill.name = 레이저 드릴
|
||||||
@@ -751,7 +754,7 @@ block.blast-drill.name = 압축 공기분사 드릴
|
|||||||
block.thermal-pump.name = 화력 펌프
|
block.thermal-pump.name = 화력 펌프
|
||||||
block.thermal-generator.name = 열발전기
|
block.thermal-generator.name = 열발전기
|
||||||
block.alloy-smelter.name = 서지 합금 제련소
|
block.alloy-smelter.name = 서지 합금 제련소
|
||||||
block.mender.name = Mender
|
block.mender.name = 멘더
|
||||||
block.mend-projector.name = 수리 프로젝터
|
block.mend-projector.name = 수리 프로젝터
|
||||||
block.surge-wall.name = 서지 합금벽
|
block.surge-wall.name = 서지 합금벽
|
||||||
block.surge-wall-large.name = 큰 서지 합금벽
|
block.surge-wall-large.name = 큰 서지 합금벽
|
||||||
@@ -767,7 +770,7 @@ block.meltdown.name = 멜트다운
|
|||||||
block.container.name = 컨테이너
|
block.container.name = 컨테이너
|
||||||
block.launch-pad.name = 발사대
|
block.launch-pad.name = 발사대
|
||||||
block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다. 미완성.
|
block.launch-pad.description = 출격할 필요 없이 아이템을 수송시킵시다. 미완성.
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
block.launch-pad-large.name = 큰 출격 패드
|
||||||
team.blue.name = 블루팀
|
team.blue.name = 블루팀
|
||||||
team.red.name = 레드팀
|
team.red.name = 레드팀
|
||||||
team.orange.name = 오렌지팀
|
team.orange.name = 오렌지팀
|
||||||
@@ -852,7 +855,7 @@ block.silicon-smelter.description = 고순도 석탄으로 모래를 줄여 실
|
|||||||
block.plastanium-compressor.description = 석유와 티타늄으로 플라스타늄을 생산합니다.
|
block.plastanium-compressor.description = 석유와 티타늄으로 플라스타늄을 생산합니다.
|
||||||
block.phase-weaver.description = 방사능 토륨과 많은 량의 모래에서 상직물을 생산합니다.
|
block.phase-weaver.description = 방사능 토륨과 많은 량의 모래에서 상직물을 생산합니다.
|
||||||
block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로부터 서지 합금을 생산합니다.
|
block.alloy-smelter.description = 티타늄, 납, 실리콘, 구리로부터 서지 합금을 생산합니다.
|
||||||
block.pulverizer.description = 모래로 돌을 부숩니다. 천연 모래가 부족할 때 유용합니다.
|
block.pulverizer.description = 모래로 을 부숩니다. 천연 모래가 부족할 때 유용합니다.
|
||||||
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다.
|
block.pyratite-mixer.description = 석탄, 납, 모래를 가연성이 높은 피라타이트로 만듭니다.
|
||||||
block.blast-mixer.description = 기름을 사용하여 피라타이트를 인화성은 떨어지지만 폭발성은 높은 폭발성 화합물로 변환시킵니다.
|
block.blast-mixer.description = 기름을 사용하여 피라타이트를 인화성은 떨어지지만 폭발성은 높은 폭발성 화합물로 변환시킵니다.
|
||||||
block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효과적인 냉동액으로 결합시킵니다.
|
block.cryofluidmixer.description = 물과 티타늄을 냉각에 훨씬 더 효과적인 냉동액으로 결합시킵니다.
|
||||||
@@ -872,7 +875,7 @@ block.solar-panel-large.description = 일반 태양 전지판보다 훨씬 나
|
|||||||
block.thorium-reactor.description = 고방사능 토륨으로부터 막대한 양의 전력을 발생시킵니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다. 전력 출력은 최대 용량에서 기본 전력을 발생시키는 완전성에 따라 결정됩니다.
|
block.thorium-reactor.description = 고방사능 토륨으로부터 막대한 양의 전력을 발생시킵니다. 지속적인 냉각이 필요하며 냉각제의 양이 부족하면 크게 폭발합니다. 전력 출력은 최대 용량에서 기본 전력을 발생시키는 완전성에 따라 결정됩니다.
|
||||||
block.rtg-generator.description = 냉각은 필요 없지만 토륨 원자로에 비해 전력을 적게 공급하는 방사성 동위원소 열전 발생기.
|
block.rtg-generator.description = 냉각은 필요 없지만 토륨 원자로에 비해 전력을 적게 공급하는 방사성 동위원소 열전 발생기.
|
||||||
block.unloader.description = 컨테이너, 금고 또는 코어에서 인접한 블록으로 아이템을 출하합니다. 출하시킬 아이템의 종류는 언로더를 눌러 지정할 수 있습니다.
|
block.unloader.description = 컨테이너, 금고 또는 코어에서 인접한 블록으로 아이템을 출하합니다. 출하시킬 아이템의 종류는 언로더를 눌러 지정할 수 있습니다.
|
||||||
block.container.description = 각종 소량의 자원을 저장할 수 있습니다.[LIGHT_GRAY언로더[]를 사용하여 컨테이너에서 물건을 회수할 수 있습니다.
|
block.container.description = 각종 소량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 컨테이너에서 물건을 회수할 수 있습니다.
|
||||||
block.vault.description = 각종 대량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 금고에서 물건을 회수할 수 있습니다.
|
block.vault.description = 각종 대량의 자원을 저장할 수 있습니다.[LIGHT_GRAY]언로더[]를 사용하여 금고에서 물건을 회수할 수 있습니다.
|
||||||
block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 놓였을때 매우 느린 속도로 계속 출력합니다.
|
block.mechanical-drill.description = 싸구려 드릴. 적절한 타일 위에 놓였을때 매우 느린 속도로 계속 출력합니다.
|
||||||
block.pneumatic-drill.description = 기압을 이용하여 보다 빠르고 단단한 물질을 채광할 수 있는 향상된 드릴.
|
block.pneumatic-drill.description = 기압을 이용하여 보다 빠르고 단단한 물질을 채광할 수 있는 향상된 드릴.
|
||||||
@@ -893,6 +896,7 @@ block.wraith-factory.description = 빠른 뺑소니 요격기 유닛을 생산
|
|||||||
block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.
|
block.ghoul-factory.description = 중탄두 폭격기를 생산합니다.
|
||||||
block.dagger-factory.description = 기본 지상 유닛을 생산합니다.
|
block.dagger-factory.description = 기본 지상 유닛을 생산합니다.
|
||||||
block.titan-factory.description = 첨단 장갑 지상부대를 생산합니다.
|
block.titan-factory.description = 첨단 장갑 지상부대를 생산합니다.
|
||||||
|
|
||||||
block.fortress-factory.description = 중대포 지상부대를 생산합니다.
|
block.fortress-factory.description = 중대포 지상부대를 생산합니다.
|
||||||
block.revenant-factory.description = 중량의 레이저 포대를 가진 공중부대를 생산합니다.
|
block.revenant-factory.description = 중량의 레이저 포대를 가진 공중부대를 생산합니다.
|
||||||
block.repair-point.description = 주변에서 가장 가까운 손상된 유닛을 지속적으로 치료합니다.
|
block.repair-point.description = 주변에서 가장 가까운 손상된 유닛을 지속적으로 치료합니다.
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Add/Remove Players
|
|||||||
customgame = Custom Game
|
customgame = Custom Game
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Close
|
close = Close
|
||||||
quit = Quit
|
quit = Quit
|
||||||
maps = Maps
|
maps = Maps
|
||||||
@@ -335,66 +336,48 @@ no = No
|
|||||||
info.title = Info
|
info.title = Info
|
||||||
error.title = [crimson]An error has occured
|
error.title = [crimson]An error has occured
|
||||||
error.crashtitle = An error has occured
|
error.crashtitle = An error has occured
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Block Info
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Power Capacity
|
blocks.powercapacity = Power Capacity
|
||||||
blocks.powershot = Power/Shot
|
blocks.powershot = Power/Shot
|
||||||
blocks.targetsair = Targets Air
|
blocks.targetsair = Targets Air
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Range
|
blocks.shootrange = Range
|
||||||
blocks.size = Size
|
blocks.size = Size
|
||||||
blocks.liquidcapacity = Liquid Capacity
|
blocks.liquidcapacity = Liquid Capacity
|
||||||
blocks.maxitemssecond = Max Items
|
|
||||||
blocks.powerrange = Power Range
|
blocks.powerrange = Power Range
|
||||||
blocks.poweruse = Power Use
|
blocks.poweruse = Power Use
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Input Item Capacity
|
|
||||||
blocks.outputitemcapacity = Output Item Capacity
|
|
||||||
blocks.itemcapacity = Item Capacity
|
blocks.itemcapacity = Item Capacity
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Power Transfer
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Production Speed
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Input Liquid
|
|
||||||
blocks.inputliquidaux = Aux Liquid
|
|
||||||
blocks.inputitem = Input Item
|
|
||||||
blocks.inputitems = Input Items
|
|
||||||
blocks.outputitem = Output Item
|
|
||||||
blocks.drilltier = Drillables
|
blocks.drilltier = Drillables
|
||||||
blocks.drillspeed = Base Drill Speed
|
blocks.drillspeed = Base Drill Speed
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Liquid Output
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Liquid Use
|
|
||||||
blocks.coolant = Coolant
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Coolant Use
|
|
||||||
blocks.inputliquidfuel = Fuel Liquid
|
|
||||||
blocks.liquidfueluse = Liquid Fuel Use
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Health
|
blocks.health = Health
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Inaccuracy
|
blocks.inaccuracy = Inaccuracy
|
||||||
blocks.shots = Shots
|
blocks.shots = Shots
|
||||||
blocks.reload = Shots/Second
|
blocks.reload = Shots/Second
|
||||||
blocks.inputfuel = Fuel
|
|
||||||
blocks.fuelburntime = Fuel Burn Time
|
|
||||||
blocks.inputcapacity = Input capacity
|
|
||||||
blocks.outputcapacity = Output capacity
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
|
|||||||
unit.powerunits = power units
|
unit.powerunits = power units
|
||||||
unit.degrees = degrees
|
unit.degrees = degrees
|
||||||
unit.seconds = seconds
|
unit.seconds = seconds
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = items
|
unit.items = items
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Show FPS
|
setting.fps.name = Show FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Show Power Lasers
|
setting.lasers.name = Show Power Lasers
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
setting.musicvol.name = Music Volume
|
setting.musicvol.name = Music Volume
|
||||||
setting.mutemusic.name = Mute Music
|
setting.mutemusic.name = Mute Music
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
mech.ability = [LIGHT_GRAY]Ability: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Dodaj/Usuń graczy
|
|||||||
customgame = Własna Gra
|
customgame = Własna Gra
|
||||||
newgame = Nowa Gra
|
newgame = Nowa Gra
|
||||||
none = <żadne>
|
none = <żadne>
|
||||||
|
minimap = Minimap
|
||||||
close = Zamknij
|
close = Zamknij
|
||||||
quit = Wyjdź
|
quit = Wyjdź
|
||||||
maps = Mapy
|
maps = Mapy
|
||||||
@@ -335,66 +336,48 @@ no = Nie ma mowy!
|
|||||||
info.title = [accent]Informacje
|
info.title = [accent]Informacje
|
||||||
error.title = [crimson]Wystąpił błąd
|
error.title = [crimson]Wystąpił błąd
|
||||||
error.crashtitle = Wystąpił błąd
|
error.crashtitle = Wystąpił błąd
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Informacje o bloku
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Pojemność mocy
|
blocks.powercapacity = Pojemność mocy
|
||||||
blocks.powershot = moc/strzał
|
blocks.powershot = moc/strzał
|
||||||
blocks.targetsair = Może namierzać wrogów powietrznych
|
blocks.targetsair = Może namierzać wrogów powietrznych
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Zasięg
|
blocks.shootrange = Zasięg
|
||||||
blocks.size = Rozmiar
|
blocks.size = Rozmiar
|
||||||
blocks.liquidcapacity = Pojemność cieczy
|
blocks.liquidcapacity = Pojemność cieczy
|
||||||
blocks.maxitemssecond = Maksymalna liczba przedmiotów/sekundę
|
|
||||||
blocks.powerrange = Zakres mocy
|
blocks.powerrange = Zakres mocy
|
||||||
blocks.poweruse = Zużycie prądu
|
blocks.poweruse = Zużycie prądu
|
||||||
blocks.powerdamage = Moc/Zniszczenia
|
blocks.powerdamage = Moc/Zniszczenia
|
||||||
blocks.inputitemcapacity = Pojemność materiałów
|
|
||||||
blocks.outputitemcapacity = Pojemność produktów
|
|
||||||
blocks.itemcapacity = Pojemność przedmiotów
|
blocks.itemcapacity = Pojemność przedmiotów
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Szybość przesyłu prądu
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Szybkość produkcji
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Potrzebna ciecz
|
|
||||||
blocks.inputliquidaux = Płyny do produkcji
|
|
||||||
blocks.inputitem = Potrzebne przedmioty
|
|
||||||
blocks.inputitems = Materiały do produkcji
|
|
||||||
blocks.outputitem = Produkty
|
|
||||||
blocks.drilltier = Co może wykopać
|
blocks.drilltier = Co może wykopać
|
||||||
blocks.drillspeed = Postawowa szybkość kopania
|
blocks.drillspeed = Postawowa szybkość kopania
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Wyprodukowany płyn
|
|
||||||
blocks.liquidoutputspeed = Prędkość odpływu cieczy
|
|
||||||
blocks.liquiduse = Zużycie płynów
|
|
||||||
blocks.coolant = Płyn chłodzący
|
|
||||||
blocks.liquid = Płyn
|
|
||||||
blocks.coolantuse = Zużycie płynu chłodzącego
|
|
||||||
blocks.inputliquidfuel = Paliwo
|
|
||||||
blocks.liquidfueluse = Zużycie paliwa
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Zdrowie
|
blocks.health = Zdrowie
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Prąd
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Zapotrzebowanie Prądu
|
|
||||||
blocks.inaccuracy = Niedokładność
|
blocks.inaccuracy = Niedokładność
|
||||||
blocks.shots = Strzały
|
blocks.shots = Strzały
|
||||||
blocks.reload = Przeładowanie
|
blocks.reload = Przeładowanie
|
||||||
blocks.inputfuel = Paliwo
|
|
||||||
blocks.fuelburntime = Płonięcie paliwa
|
|
||||||
blocks.inputcapacity = Pojemność wejściowa
|
|
||||||
blocks.outputcapacity = Wydajność wyjściowa
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Płyn
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Prąd
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = jednostek płynów
|
|||||||
unit.powerunits = jednostek prądu
|
unit.powerunits = jednostek prądu
|
||||||
unit.degrees = stopnie
|
unit.degrees = stopnie
|
||||||
unit.seconds = sekundy
|
unit.seconds = sekundy
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = Przedmioty
|
unit.items = Przedmioty
|
||||||
category.general = Główne
|
category.general = Główne
|
||||||
category.power = Prąd
|
category.power = Prąd
|
||||||
@@ -425,6 +411,7 @@ category.optional = Ulepszenia Nieobowiąskowe
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Wskaźniki Przyjaciół
|
setting.indicators.name = Wskaźniki Przyjaciół
|
||||||
setting.autotarget.name = Automatyczne Celowanie
|
setting.autotarget.name = Automatyczne Celowanie
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Widoczny licznik FPS
|
setting.fps.name = Widoczny licznik FPS
|
||||||
setting.vsync.name = Synchronizacja pionowa
|
setting.vsync.name = Synchronizacja pionowa
|
||||||
setting.lasers.name = Pokaż lasery zasilające
|
setting.lasers.name = Pokaż lasery zasilające
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Pokaż Minimapę
|
setting.minimap.name = Pokaż Minimapę
|
||||||
setting.musicvol.name = Głośność muzyki
|
setting.musicvol.name = Głośność muzyki
|
||||||
setting.mutemusic.name = Wycisz muzykę
|
setting.mutemusic.name = Wycisz muzykę
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Pojemność przedmiotów: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0}
|
mech.minespeed = [LIGHT_GRAY]Prędkość kopania: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Moc kopania: {0}
|
mech.minepower = [LIGHT_GRAY]Moc kopania: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Umiejętność: {0}
|
mech.ability = [LIGHT_GRAY]Umiejętność: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Wytrzymałość na przegrzewanie: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Lepkość: {0}
|
liquid.viscosity = [LIGHT_GRAY]Lepkość: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Adicionar/Remover Jogador
|
|||||||
customgame = Jogo Customizado
|
customgame = Jogo Customizado
|
||||||
newgame = Novo Jogo
|
newgame = Novo Jogo
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Fechar
|
close = Fechar
|
||||||
quit = Sair
|
quit = Sair
|
||||||
maps = Mapas
|
maps = Mapas
|
||||||
@@ -335,66 +336,48 @@ no = Não
|
|||||||
info.title = [accent]Informação
|
info.title = [accent]Informação
|
||||||
error.title = [crimson]Ocorreu um Erro.
|
error.title = [crimson]Ocorreu um Erro.
|
||||||
error.crashtitle = Ocorreu um Erro
|
error.crashtitle = Ocorreu um Erro
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Informação do Bloco
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Capacidade de Energia
|
blocks.powercapacity = Capacidade de Energia
|
||||||
blocks.powershot = Energia/tiro
|
blocks.powershot = Energia/tiro
|
||||||
blocks.targetsair = Mirar no ar
|
blocks.targetsair = Mirar no ar
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Alcance
|
blocks.shootrange = Alcance
|
||||||
blocks.size = Tamanho
|
blocks.size = Tamanho
|
||||||
blocks.liquidcapacity = Capacidade de Líquido
|
blocks.liquidcapacity = Capacidade de Líquido
|
||||||
blocks.maxitemssecond = Máximo de itens/segundo
|
|
||||||
blocks.powerrange = Alcance da Energia
|
blocks.powerrange = Alcance da Energia
|
||||||
blocks.poweruse = Uso de energia
|
blocks.poweruse = Uso de energia
|
||||||
blocks.powerdamage = Dano/Poder
|
blocks.powerdamage = Dano/Poder
|
||||||
blocks.inputitemcapacity = Configurar capacidade de itens
|
|
||||||
blocks.outputitemcapacity = Configurar capacidade de itens
|
|
||||||
blocks.itemcapacity = Capacidade de Itens
|
blocks.itemcapacity = Capacidade de Itens
|
||||||
blocks.basepowergeneration = Geração de poder base
|
blocks.basepowergeneration = Geração de poder base
|
||||||
blocks.powertransferspeed = Transferência de energia
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Velocidade de produção
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Líquido de entrada
|
|
||||||
blocks.inputliquidaux = Líquido auxiliar
|
|
||||||
blocks.inputitem = Item de entrada
|
|
||||||
blocks.inputitems = Itens de entrada
|
|
||||||
blocks.outputitem = Itens de saida
|
|
||||||
blocks.drilltier = Furaveis
|
blocks.drilltier = Furaveis
|
||||||
blocks.drillspeed = Velocidade da furadeira base
|
blocks.drillspeed = Velocidade da furadeira base
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Saida de liquido
|
|
||||||
blocks.liquidoutputspeed = Velocidade da saida de líquido
|
|
||||||
blocks.liquiduse = Uso de liquido
|
|
||||||
blocks.coolant = Esfriador
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Uso do esfriador
|
|
||||||
blocks.inputliquidfuel = Liquido de combustivel
|
|
||||||
blocks.liquidfueluse = Uso do liquido de combustivel
|
|
||||||
blocks.boostitem = Acelerar item
|
|
||||||
blocks.boostliquid = Acelerar líquido
|
|
||||||
blocks.health = Saúde
|
blocks.health = Saúde
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Poder
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = Imprecisão
|
blocks.inaccuracy = Imprecisão
|
||||||
blocks.shots = Tiros
|
blocks.shots = Tiros
|
||||||
blocks.reload = Recarregar
|
blocks.reload = Recarregar
|
||||||
blocks.inputfuel = Combustivel
|
|
||||||
blocks.fuelburntime = Tempo de queima de combustivel
|
|
||||||
blocks.inputcapacity = Capacidade de entrada
|
|
||||||
blocks.outputcapacity = Capacidade de saída
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Poder
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = Unidades de liquido
|
|||||||
unit.powerunits = Unidades de energia
|
unit.powerunits = Unidades de energia
|
||||||
unit.degrees = Graus
|
unit.degrees = Graus
|
||||||
unit.seconds = segundos
|
unit.seconds = segundos
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = itens
|
unit.items = itens
|
||||||
category.general = Geral
|
category.general = Geral
|
||||||
category.power = Poder
|
category.power = Poder
|
||||||
@@ -425,6 +411,7 @@ category.optional = Melhoras opcionais
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Alvo automatico
|
setting.autotarget.name = Alvo automatico
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Mostrar FPS
|
setting.fps.name = Mostrar FPS
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Mostrar lasers
|
setting.lasers.name = Mostrar lasers
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Mostrar minimapa
|
setting.minimap.name = Mostrar minimapa
|
||||||
setting.musicvol.name = Volume da Música
|
setting.musicvol.name = Volume da Música
|
||||||
setting.mutemusic.name = Desligar Música
|
setting.mutemusic.name = Desligar Música
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Capacidade de itens: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Velocidade de mineração: {0}
|
mech.minespeed = [LIGHT_GRAY]Velocidade de mineração: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Poder de mineração: {0}
|
mech.minepower = [LIGHT_GRAY]Poder de mineração: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Habilidade: {0}
|
mech.ability = [LIGHT_GRAY]Habilidade: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Capacidade de aquecimento: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosidade: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperatura: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Доб/удалить игроков
|
|||||||
customgame = Пользовательская игра
|
customgame = Пользовательская игра
|
||||||
newgame = Новая игра
|
newgame = Новая игра
|
||||||
none = <нет>
|
none = <нет>
|
||||||
|
minimap = Minimap
|
||||||
close = Закрыть
|
close = Закрыть
|
||||||
quit = Выход
|
quit = Выход
|
||||||
maps = Карты
|
maps = Карты
|
||||||
@@ -182,7 +183,7 @@ map.delete.confirm = Вы действительно хотите удалить
|
|||||||
map.random = [accent]Случайная карта
|
map.random = [accent]Случайная карта
|
||||||
map.nospawn = Эта карта не имеет ядер, в которых игрок может появиться! Добавьте[ROYAL] синее[] ядро на эту карту в редакторе карт.
|
map.nospawn = Эта карта не имеет ядер, в которых игрок может появиться! Добавьте[ROYAL] синее[] ядро на эту карту в редакторе карт.
|
||||||
map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[SCARLET] красные[] ядра к этой карте в редакторе.
|
map.nospawn.pvp = У этой карты нет вражеских ядер, в которых игрок может появиться! Добавьте[SCARLET] красные[] ядра к этой карте в редакторе.
|
||||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
map.nospawn.attack = У этой карты нету вражеских ядер! Добавьте [scarlet] красные[] ядра в эту карте в редакторе.
|
||||||
map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты.
|
map.invalid = Ошибка загрузки карты: повреждённый или недопустимый файл карты.
|
||||||
editor.brush = Кисть
|
editor.brush = Кисть
|
||||||
editor.openin = Открыть в редакторе
|
editor.openin = Открыть в редакторе
|
||||||
@@ -335,77 +336,61 @@ no = Нет
|
|||||||
info.title = Информация
|
info.title = Информация
|
||||||
error.title = [crimson]Произошла ошибка
|
error.title = [crimson]Произошла ошибка
|
||||||
error.crashtitle = Произошла ошибка
|
error.crashtitle = Произошла ошибка
|
||||||
blocks.outputspeed = Скорость сверления: {0}/с
|
blocks.input = Вход
|
||||||
blocks.efficiency = Эффективность: {0}%
|
blocks.output = Выход
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Ускоритель
|
||||||
blocks.blockinfo = Информация о блоке
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Энергия: {0}
|
|
||||||
blocks.poweroutput = Выходная энергия: {0}
|
|
||||||
blocks.powercapacity = Вместимость энергии
|
blocks.powercapacity = Вместимость энергии
|
||||||
blocks.powershot = Энергия/выстрел
|
blocks.powershot = Энергия/выстрел
|
||||||
blocks.targetsair = Воздушные цели
|
blocks.targetsair = Воздушные цели
|
||||||
blocks.targetsground = Наземные цели
|
blocks.targetsground = Наземные цели
|
||||||
blocks.items = Предметы: {0}
|
|
||||||
blocks.itemsmoved = Скорость перемещения
|
blocks.itemsmoved = Скорость перемещения
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Интервал запусков
|
||||||
blocks.shootrange = Радиус действия
|
blocks.shootrange = Радиус действия
|
||||||
blocks.size = Размер
|
blocks.size = Размер
|
||||||
blocks.liquidcapacity = Вместимость жидкости
|
blocks.liquidcapacity = Вместимость жидкости
|
||||||
blocks.maxitemssecond = Макс. количество предметов/секунду
|
|
||||||
blocks.powerrange = Диапазон передачи энергии
|
blocks.powerrange = Диапазон передачи энергии
|
||||||
blocks.poweruse = Потребляет энергии
|
blocks.poweruse = Потребляет энергии
|
||||||
blocks.powerdamage = Энергия/урон
|
blocks.powerdamage = Энергия/урон
|
||||||
blocks.inputitemcapacity = Вместимость входящих предметов
|
|
||||||
blocks.outputitemcapacity = Вместимость выходящих предметов
|
|
||||||
blocks.itemcapacity = Вместимость предметов
|
blocks.itemcapacity = Вместимость предметов
|
||||||
blocks.basepowergeneration = Базовая генерация энергии
|
blocks.basepowergeneration = Базовая генерация энергии
|
||||||
blocks.powertransferspeed = Скорость передачи энергии
|
blocks.productiontime = Время производства
|
||||||
blocks.craftspeed = Скорость производства
|
blocks.craftspeed = Скорость производства
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Время полной регенерации
|
||||||
blocks.range = Range
|
blocks.speedincrease = Увеличение скорости
|
||||||
|
blocks.range = Радиус действия
|
||||||
blocks.inputliquid = Прием жидкости
|
blocks.inputliquid = Прием жидкости
|
||||||
blocks.inputliquidaux = Вспом. жидкость
|
|
||||||
blocks.inputitem = Входящий предмет
|
|
||||||
blocks.inputitems = Входящие предметы
|
|
||||||
blocks.outputitem = Выходящий предмет
|
|
||||||
blocks.drilltier = Добывает
|
blocks.drilltier = Добывает
|
||||||
blocks.drillspeed = Базовая скорость сверления
|
blocks.drillspeed = Базовая скорость сверления
|
||||||
|
blocks.boosteffect = Ускоряющий эффект
|
||||||
blocks.maxunits = Максимальное количество активных единиц
|
blocks.maxunits = Максимальное количество активных единиц
|
||||||
blocks.liquidoutput = Выходящая жидкость
|
|
||||||
blocks.liquidoutputspeed = Выходная скорость жидкости
|
|
||||||
blocks.liquiduse = Используется жидкости
|
|
||||||
blocks.coolant = Охлаждающая жидкость
|
|
||||||
blocks.liquid = Жидкость
|
|
||||||
blocks.coolantuse = Охлажд. жидкости используется
|
|
||||||
blocks.inputliquidfuel = Жидкое топливо
|
|
||||||
blocks.liquidfueluse = Жидкого топлива используется
|
|
||||||
blocks.boostitem = Ускоряющий предмет
|
|
||||||
blocks.boostliquid = Ускоряющая жидкость
|
|
||||||
blocks.health = Здоровье
|
blocks.health = Здоровье
|
||||||
blocks.heat = Температура
|
|
||||||
blocks.power = Энергия
|
|
||||||
blocks.progress = Строительство продолжается
|
|
||||||
blocks.spawned = Бой. ед.: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Энергия
|
|
||||||
blocks.inaccuracy = Разброс
|
blocks.inaccuracy = Разброс
|
||||||
blocks.shots = Выстрелы
|
blocks.shots = Выстрелы
|
||||||
blocks.reload = Выстрелы/секунду
|
blocks.reload = Выстрелы/секунду
|
||||||
blocks.inputfuel = Входящее топливо
|
|
||||||
blocks.fuelburntime = Время горения топлива
|
|
||||||
blocks.inputcapacity = Макс. вместимость входящих предметов
|
|
||||||
blocks.outputcapacity = Макс. вместимость выходящих предметов
|
|
||||||
blocks.ammo = Боеприпасы
|
blocks.ammo = Боеприпасы
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bar.drillspeed = Скорость свердления: {0}/s
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bar.efficiency = Эффективность: {0}%
|
||||||
bullet.incendiary = [stat]incendiary
|
bar.powerbalance = Энергия: {0}/с
|
||||||
bullet.homing = [stat]homing
|
bar.poweramount = Энергия: {0}
|
||||||
bullet.shock = [stat]shock
|
bar.poweroutput = Выходная энергия: {0}
|
||||||
bullet.frag = [stat]frag
|
bar.items = Предметы: {0}
|
||||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
bar.liquid = Жидкости
|
||||||
bullet.freezing = [stat]freezing
|
bar.heat = Нагревание
|
||||||
bullet.tarred = [stat]tarred
|
bar.power = Энергия
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
bar.progress = Прогресс Строительство
|
||||||
bullet.reload = [stat]{0}[lightgray]x reload
|
bar.spawned = Боев. ед. : {0}/{1}
|
||||||
|
bullet.damage = [stat]{0}[lightgray] урона
|
||||||
|
bullet.splashdamage = [stat]{0}[lightgray] урона в радиусе ~[stat] {1}[lightgray] БЛОКОВ
|
||||||
|
bullet.incendiary = [stat]поджигающий
|
||||||
|
bullet.homing = [stat]самонаводящийся
|
||||||
|
bullet.shock = [stat]ЭМИ
|
||||||
|
bullet.frag = [stat]взрывоопасный
|
||||||
|
bullet.knockback = [stat]{0}[lightgray] отдачи
|
||||||
|
bullet.freezing = [stat]замораживающий
|
||||||
|
bullet.tarred = [stat]горючий
|
||||||
|
bullet.multiplier = [stat]{0}[lightgray]x снарядов
|
||||||
|
bullet.reload = [stat]{0}[lightgray]x скорость перезарядки
|
||||||
unit.blocks = блоки
|
unit.blocks = блоки
|
||||||
unit.powersecond = единиц энергии/секунду
|
unit.powersecond = единиц энергии/секунду
|
||||||
unit.liquidsecond = жидкостных единиц/секунду
|
unit.liquidsecond = жидкостных единиц/секунду
|
||||||
@@ -414,6 +399,9 @@ unit.liquidunits = жидкостных единиц
|
|||||||
unit.powerunits = энерг. единиц
|
unit.powerunits = энерг. единиц
|
||||||
unit.degrees = град.
|
unit.degrees = град.
|
||||||
unit.seconds = сек.
|
unit.seconds = сек.
|
||||||
|
unit.persecond = /сек
|
||||||
|
unit.timesspeed = x скорость
|
||||||
|
unit.percent = %
|
||||||
unit.items = единиц
|
unit.items = единиц
|
||||||
category.general = Основные
|
category.general = Основные
|
||||||
category.power = Энергия
|
category.power = Энергия
|
||||||
@@ -422,14 +410,16 @@ category.items = Предметы
|
|||||||
category.crafting = Ввод/вывод
|
category.crafting = Ввод/вывод
|
||||||
category.shooting = Cтрельба
|
category.shooting = Cтрельба
|
||||||
category.optional = Дополнительные улучшения
|
category.optional = Дополнительные улучшения
|
||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Сохранить ландшафт
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Тени
|
||||||
setting.animatedwater.name = Анимированная вода
|
setting.animatedwater.name = Анимированная вода
|
||||||
|
setting.animatedshields.name = Анимированные щиты
|
||||||
setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[]
|
setting.antialias.name = Сглаживание[LIGHT_GRAY] (требует перезапуска)[]
|
||||||
setting.indicators.name = Показывать в сторону союзников и врагов
|
setting.indicators.name = Показывать в сторону союзников и врагов
|
||||||
setting.autotarget.name = Авто-стрельба
|
setting.autotarget.name = Авто-стрельба
|
||||||
setting.fpscap.name = Макс. FPS
|
setting.fpscap.name = Макс. FPS
|
||||||
setting.fpscap.none = Неограниченный
|
setting.fpscap.none = Неограниченный
|
||||||
|
minimap = Мини-карта
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.swapdiagonal.name = Всегда Диагональное Размещение
|
setting.swapdiagonal.name = Всегда Диагональное Размещение
|
||||||
setting.difficulty.training = обучение
|
setting.difficulty.training = обучение
|
||||||
@@ -496,22 +486,25 @@ mode.sandbox.name = Песочница
|
|||||||
mode.sandbox.description = Бесконечные ресурсы и нет таймера для волн, но можно самим вызвать волну.
|
mode.sandbox.description = Бесконечные ресурсы и нет таймера для волн, но можно самим вызвать волну.
|
||||||
mode.freebuild.name = Cвободная\nстройка
|
mode.freebuild.name = Cвободная\nстройка
|
||||||
mode.freebuild.description = Ограниченные ресурсы и нет таймера для волн.
|
mode.freebuild.description = Ограниченные ресурсы и нет таймера для волн.
|
||||||
mode.pvp.name = Противо-\nстояние
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = боритесь против других игроков.
|
mode.pvp.description = боритесь против других игроков.
|
||||||
mode.attack.name = Атака
|
mode.attack.name = Атака
|
||||||
mode.attack.description = Нет волн, цель - уничтожить базу противника.
|
mode.attack.description = Нет волн, цель - уничтожить базу противника.
|
||||||
mode.custom = Custom Rules
|
mode.custom = Настройки правил
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = Бескон. Ресурсы (Игрок)
|
||||||
rules.wavetimer = Wave Timer
|
rules.wavetimer = Интервал волн
|
||||||
rules.waves = Waves
|
rules.waves = Волны
|
||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Бескон. Ресурсы (ИИ)
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Ресурсы Боев. Ед.
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.unitbuildspeedmultiplier = Множитель Скорости Создания Боев. Ед.
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.unithealthmultiplier = Множитель Здоровья Боев. Ед.
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.playerdamagemultiplier = Множитель Урона Игрока
|
||||||
rules.buildcostmultiplier = Build Cost Multiplier
|
rules.enemycorebuildradius = Радиус защиты враж. ядер: [LIGHT_GRAY] {0} (блоков)
|
||||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
rules.respawntime = Интервал возрождения: [LIGHT_GRAY] (сек)
|
||||||
|
rules.wavespacing = Интервал волн: [LIGHT_GRAY] (sec)
|
||||||
|
rules.buildcostmultiplier = Множитель затрат на строительство
|
||||||
|
rules.buildspeedmultiplier = Множитель скорости строительства
|
||||||
content.item.name = Предметы
|
content.item.name = Предметы
|
||||||
content.liquid.name = Жидкости
|
content.liquid.name = Жидкости
|
||||||
content.unit.name = Боевые единицы
|
content.unit.name = Боевые единицы
|
||||||
@@ -540,7 +533,7 @@ item.spore-pod.name = Споровой стручок
|
|||||||
item.spore-pod.description = Используется для превращения в нефть, взрывчатые вещества и топливо.
|
item.spore-pod.description = Используется для превращения в нефть, взрывчатые вещества и топливо.
|
||||||
item.sand.name = Песок
|
item.sand.name = Песок
|
||||||
item.sand.description = Обычный материал, который широко используется при плавке как в сплаве, так и в виде шлака.
|
item.sand.description = Обычный материал, который широко используется при плавке как в сплаве, так и в виде шлака.
|
||||||
item.blast-compound.name = Взрывоопасное соединение
|
item.blast-compound.name = Взрывная смесь
|
||||||
item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать.
|
item.blast-compound.description = Летучее соединение, используемое в бомбах и взрывчатых веществах. Также может гореть в качестве топлива, но не рекомендуется этого делать.
|
||||||
item.pyratite.name = Пиротит
|
item.pyratite.name = Пиротит
|
||||||
item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии.
|
item.pyratite.description = Очень огнеопасное вещество, используемое в зажигательном оружии.
|
||||||
@@ -554,7 +547,7 @@ liquid.oil.name = Нефть
|
|||||||
liquid.cryofluid.name = Криогенная жидкость
|
liquid.cryofluid.name = Криогенная жидкость
|
||||||
mech.alpha-mech.name = Альфа
|
mech.alpha-mech.name = Альфа
|
||||||
mech.alpha-mech.weapon = Тяжёлый пулемёт
|
mech.alpha-mech.weapon = Тяжёлый пулемёт
|
||||||
mech.alpha-mech.ability = Нет
|
mech.alpha-mech.ability = Регенерация
|
||||||
mech.alpha-mech.description = Стандартный мех для настольных устройств. Имеет приличную скорость и урон.
|
mech.alpha-mech.description = Стандартный мех для настольных устройств. Имеет приличную скорость и урон.
|
||||||
mech.delta-mech.name = Дельта
|
mech.delta-mech.name = Дельта
|
||||||
mech.delta-mech.weapon = Дуговой генератор
|
mech.delta-mech.weapon = Дуговой генератор
|
||||||
@@ -589,9 +582,10 @@ unit.speed = [LIGHT_GRAY]Скорость: {0}
|
|||||||
mech.weapon = [LIGHT_GRAY]Оружие: {0}
|
mech.weapon = [LIGHT_GRAY]Оружие: {0}
|
||||||
mech.health = [LIGHT_GRAY]Здоровье: {0}
|
mech.health = [LIGHT_GRAY]Здоровье: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY]Вместимость предметов: {0}
|
mech.itemcapacity = [LIGHT_GRAY]Вместимость предметов: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]Скорость добычи: {0}
|
mech.minespeed = [LIGHT_GRAY]Скорость добычи: {0}%
|
||||||
mech.minepower = [LIGHT_GRAY]Мощность добычи: {0}
|
mech.minepower = [LIGHT_GRAY]Мощность добычи: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Способность: {0}
|
mech.ability = [LIGHT_GRAY]Способность: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Скорость строительства: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Теплоёмкость: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Теплоёмкость: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Вязкость: {0}
|
liquid.viscosity = [LIGHT_GRAY]Вязкость: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Температура: {0}
|
liquid.temperature = [LIGHT_GRAY]Температура: {0}
|
||||||
@@ -698,7 +692,7 @@ block.impact-reactor.name = Импульсный реактор
|
|||||||
block.mechanical-drill.name = Механический бур
|
block.mechanical-drill.name = Механический бур
|
||||||
block.pneumatic-drill.name = Пневматический бур
|
block.pneumatic-drill.name = Пневматический бур
|
||||||
block.laser-drill.name = Лазерный бур
|
block.laser-drill.name = Лазерный бур
|
||||||
block.water-extractor.name = Экстрактор воды
|
block.water-extractor.name = Гидроконденсатор
|
||||||
block.cultivator.name = Культиватор
|
block.cultivator.name = Культиватор
|
||||||
block.alpha-dart-mech-pad.name = Реконструктор мехов "Альфа-Дротик"
|
block.alpha-dart-mech-pad.name = Реконструктор мехов "Альфа-Дротик"
|
||||||
block.delta-mech-pad.name = Реконструктор "Дельта"
|
block.delta-mech-pad.name = Реконструктор "Дельта"
|
||||||
@@ -727,7 +721,7 @@ block.pyratite-mixer.name = Мешалка пиротита
|
|||||||
block.blast-mixer.name = Мешалка взрывоопасного соединения
|
block.blast-mixer.name = Мешалка взрывоопасного соединения
|
||||||
block.solar-panel.name = Солнечная панель
|
block.solar-panel.name = Солнечная панель
|
||||||
block.solar-panel-large.name = Большая солнечная панель
|
block.solar-panel-large.name = Большая солнечная панель
|
||||||
block.oil-extractor.name = Нефтяной экстрактор
|
block.oil-extractor.name = Нефтяная вышка
|
||||||
block.spirit-factory.name = Завод дронов "Призрак"
|
block.spirit-factory.name = Завод дронов "Призрак"
|
||||||
block.phantom-factory.name = Завод дронов "Фантом"
|
block.phantom-factory.name = Завод дронов "Фантом"
|
||||||
block.wraith-factory.name = Завод призрачных истребителей
|
block.wraith-factory.name = Завод призрачных истребителей
|
||||||
@@ -767,7 +761,7 @@ block.meltdown.name = Катастрофа
|
|||||||
block.container.name = Склад
|
block.container.name = Склад
|
||||||
block.launch-pad.name = Стартовая площадка
|
block.launch-pad.name = Стартовая площадка
|
||||||
block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра. Незавершённое.
|
block.launch-pad.description = Запускает партии предметов без необходимости запуска ядра. Незавершённое.
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
block.launch-pad-large.name = Большая Стартовая площадка
|
||||||
team.blue.name = Синяя
|
team.blue.name = Синяя
|
||||||
team.red.name = Красная
|
team.red.name = Красная
|
||||||
team.orange.name = Оранжевая
|
team.orange.name = Оранжевая
|
||||||
@@ -852,7 +846,7 @@ block.silicon-smelter.description = С помощью песка, угля и э
|
|||||||
block.plastanium-compressor.description = Создаёт пластиний из титана и нефти. Требует энергии. Для ускорения производства можно добавить в компрессор песок.
|
block.plastanium-compressor.description = Создаёт пластиний из титана и нефти. Требует энергии. Для ускорения производства можно добавить в компрессор песок.
|
||||||
block.phase-weaver.description = Производит фазовую материю из тория и песка. Требует большего количества энергии.
|
block.phase-weaver.description = Производит фазовую материю из тория и песка. Требует большего количества энергии.
|
||||||
block.alloy-smelter.description = Создаёт кинетический сплав из титана, кремния, меди и свинца. Требует энергию.
|
block.alloy-smelter.description = Создаёт кинетический сплав из титана, кремния, меди и свинца. Требует энергию.
|
||||||
block.pulverizer.description = Измельчает камень в песок. Требует энергию.
|
block.pulverizer.description = Измельчает металлолом в песок. Требует энергию.
|
||||||
block.pyratite-mixer.description = Создаёт пиротит из угля, свинца и песка. Требует энергии.
|
block.pyratite-mixer.description = Создаёт пиротит из угля, свинца и песка. Требует энергии.
|
||||||
block.blast-mixer.description = Создаёт взрывоопасное соединение из нефти и пиротита. Для ускорения производства можно добавить в мешалку песок.
|
block.blast-mixer.description = Создаёт взрывоопасное соединение из нефти и пиротита. Для ускорения производства можно добавить в мешалку песок.
|
||||||
block.cryofluidmixer.description = Производит криогенную жидкость из воды и титана. Требует энергии.
|
block.cryofluidmixer.description = Производит криогенную жидкость из воды и титана. Требует энергии.
|
||||||
@@ -896,7 +890,7 @@ block.titan-factory.description = Производит продвинутые з
|
|||||||
block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы.
|
block.fortress-factory.description = Производит тяжёлые артиллерийские боевые единицы.
|
||||||
block.revenant-factory.description = Производит тяжёлые летающие боевые единицы.
|
block.revenant-factory.description = Производит тяжёлые летающие боевые единицы.
|
||||||
block.repair-point.description = Может ремонтировать вас и ваши боевые единицы
|
block.repair-point.description = Может ремонтировать вас и ваши боевые единицы
|
||||||
block.conduit.description = Основной блок транспортировки жидкости. Работает как конвейер, но с жидкостями. Лучше всего использовать экстракторы, насосы или т.п..
|
block.conduit.description = Основной блок транспортировки жидкости. Работает как конвейер, но с жидкостями.
|
||||||
block.pulse-conduit.description = Улучшенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные.
|
block.pulse-conduit.description = Улучшенный блок транспортировки жидкости. Транспортирует жидкости быстрее и хранит больше, чем стандартные.
|
||||||
block.phase-conduit.description = Улучшенный блок транспортировки жидкости. Использует энергию для передачи жидкостей на подключенный фазовый канал на несколько плиток.
|
block.phase-conduit.description = Улучшенный блок транспортировки жидкости. Использует энергию для передачи жидкостей на подключенный фазовый канал на несколько плиток.
|
||||||
block.liquid-router.description = Принимает жидкости с одного направления и равномерно выводит их до трех других направлений. Может также хранить определенное количество жидкости. Полезно для разделения жидкостей из одного источника на несколько целей.
|
block.liquid-router.description = Принимает жидкости с одного направления и равномерно выводит их до трех других направлений. Может также хранить определенное количество жидкости. Полезно для разделения жидкостей из одного источника на несколько целей.
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Oyuncu ekle/cikar
|
|||||||
customgame = Ozel oyun
|
customgame = Ozel oyun
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Kapat
|
close = Kapat
|
||||||
quit = Cik
|
quit = Cik
|
||||||
maps = Haritalar
|
maps = Haritalar
|
||||||
@@ -335,66 +336,48 @@ no = Hayir
|
|||||||
info.title = [accent]Bilgi
|
info.title = [accent]Bilgi
|
||||||
error.title = [crimson]Bir hata olustu
|
error.title = [crimson]Bir hata olustu
|
||||||
error.crashtitle = Bir hata olustu
|
error.crashtitle = Bir hata olustu
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Yapi bilgisi
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Guc kapasitesi
|
blocks.powercapacity = Guc kapasitesi
|
||||||
blocks.powershot = Guc/Saldiri hizi
|
blocks.powershot = Guc/Saldiri hizi
|
||||||
blocks.targetsair = Havayi hedef alir mi?
|
blocks.targetsair = Havayi hedef alir mi?
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Menzil
|
blocks.shootrange = Menzil
|
||||||
blocks.size = Buyukluk
|
blocks.size = Buyukluk
|
||||||
blocks.liquidcapacity = Sivi kapasitesi
|
blocks.liquidcapacity = Sivi kapasitesi
|
||||||
blocks.maxitemssecond = Esya limiti
|
|
||||||
blocks.powerrange = Menzil
|
blocks.powerrange = Menzil
|
||||||
blocks.poweruse = Guc kullanimi
|
blocks.poweruse = Guc kullanimi
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Giris esya kapasitesi
|
|
||||||
blocks.outputitemcapacity = Cikis esya kapasitesi
|
|
||||||
blocks.itemcapacity = Esya kapasitesi
|
blocks.itemcapacity = Esya kapasitesi
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Guc transfer hizi
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Yapilma hizi
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Giris sivi
|
|
||||||
blocks.inputliquidaux = Yardimci sivi
|
|
||||||
blocks.inputitem = Giris esyasi
|
|
||||||
blocks.inputitems = Giris esyalari
|
|
||||||
blocks.outputitem = Sonuc
|
|
||||||
blocks.drilltier = Kazilabilirler
|
blocks.drilltier = Kazilabilirler
|
||||||
blocks.drillspeed = Ana kazma hizi
|
blocks.drillspeed = Ana kazma hizi
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Sivi cikisi
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Sivi kullanimi
|
|
||||||
blocks.coolant = Sogutma sivisi
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Sogutma sivi kullanimi
|
|
||||||
blocks.inputliquidfuel = Yakit sivisi
|
|
||||||
blocks.liquidfueluse = Sivi yakit kullanimi
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Can
|
blocks.health = Can
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = sekme
|
blocks.inaccuracy = sekme
|
||||||
blocks.shots = vuruslar
|
blocks.shots = vuruslar
|
||||||
blocks.reload = Yeniden doldurma
|
blocks.reload = Yeniden doldurma
|
||||||
blocks.inputfuel = Yakit
|
|
||||||
blocks.fuelburntime = Yakit yakilma suresi
|
|
||||||
blocks.inputcapacity = Giris kapasitesi
|
|
||||||
blocks.outputcapacity = Cikis kapasitesi
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = Litre
|
|||||||
unit.powerunits = Volt
|
unit.powerunits = Volt
|
||||||
unit.degrees = derece
|
unit.degrees = derece
|
||||||
unit.seconds = saniye
|
unit.seconds = saniye
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = esya
|
unit.items = esya
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Guc
|
category.power = Guc
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = FPS'i goster
|
setting.fps.name = FPS'i goster
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Guc lazerlerini goster
|
setting.lasers.name = Guc lazerlerini goster
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Haritayi goster
|
setting.minimap.name = Haritayi goster
|
||||||
setting.musicvol.name = Ses yuksekligi
|
setting.musicvol.name = Ses yuksekligi
|
||||||
setting.mutemusic.name = Sesi kapat
|
setting.mutemusic.name = Sesi kapat
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]esya kapasitesi: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]kazma hizi: {0}
|
mech.minespeed = [LIGHT_GRAY]kazma hizi: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]kazma gucu: {0}
|
mech.minepower = [LIGHT_GRAY]kazma gucu: {0}
|
||||||
mech.ability = [LIGHT_GRAY]yetenek gucu: {0}
|
mech.ability = [LIGHT_GRAY]yetenek gucu: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]isinma kapasitesi: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0}
|
liquid.viscosity = [LIGHT_GRAY]Yari sivilik: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]isi: {0}
|
liquid.temperature = [LIGHT_GRAY]isi: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Oyuncu ekle/cikar
|
|||||||
customgame = Ozel oyun
|
customgame = Ozel oyun
|
||||||
newgame = New Game
|
newgame = New Game
|
||||||
none = <none>
|
none = <none>
|
||||||
|
minimap = Minimap
|
||||||
close = Kapat
|
close = Kapat
|
||||||
quit = Çık
|
quit = Çık
|
||||||
maps = Haritalar
|
maps = Haritalar
|
||||||
@@ -335,66 +336,48 @@ no = No
|
|||||||
info.title = [Vurgu] Bilgi
|
info.title = [Vurgu] Bilgi
|
||||||
error.title = [crimson] Bir hata oluştu
|
error.title = [crimson] Bir hata oluştu
|
||||||
error.crashtitle = Bir hata oluştu
|
error.crashtitle = Bir hata oluştu
|
||||||
blocks.outputspeed = Drill Speed: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = Efficiency: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = Blok Bilgisi
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Power: {0}
|
|
||||||
blocks.poweroutput = Power Output: {0}
|
|
||||||
blocks.powercapacity = Güç kapasitesi
|
blocks.powercapacity = Güç kapasitesi
|
||||||
blocks.powershot = Güç / atış
|
blocks.powershot = Güç / atış
|
||||||
blocks.targetsair = Targets Air
|
blocks.targetsair = Targets Air
|
||||||
blocks.targetsground = Targets Ground
|
blocks.targetsground = Targets Ground
|
||||||
blocks.items = Items: {0}
|
|
||||||
blocks.itemsmoved = Move Speed
|
blocks.itemsmoved = Move Speed
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = Range
|
blocks.shootrange = Range
|
||||||
blocks.size = Boyut
|
blocks.size = Boyut
|
||||||
blocks.liquidcapacity = Sıvı kapasitesi
|
blocks.liquidcapacity = Sıvı kapasitesi
|
||||||
blocks.maxitemssecond = Maksimum öğe / saniye
|
|
||||||
blocks.powerrange = Güç aralığı
|
blocks.powerrange = Güç aralığı
|
||||||
blocks.poweruse = Power Use
|
blocks.poweruse = Power Use
|
||||||
blocks.powerdamage = Power/Damage
|
blocks.powerdamage = Power/Damage
|
||||||
blocks.inputitemcapacity = Input Item Capacity
|
|
||||||
blocks.outputitemcapacity = Input Item Capacity
|
|
||||||
blocks.itemcapacity = Ürün kapasitesi
|
blocks.itemcapacity = Ürün kapasitesi
|
||||||
blocks.basepowergeneration = Base Power Generation
|
blocks.basepowergeneration = Base Power Generation
|
||||||
blocks.powertransferspeed = Power Transfer
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = Production Speed
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = Giriş sıvı
|
|
||||||
blocks.inputliquidaux = Aux Liquid
|
|
||||||
blocks.inputitem = Giriş öğesi
|
|
||||||
blocks.inputitems = Input Items
|
|
||||||
blocks.outputitem = Output Item
|
|
||||||
blocks.drilltier = Drillables
|
blocks.drilltier = Drillables
|
||||||
blocks.drillspeed = Base Drill Speed
|
blocks.drillspeed = Base Drill Speed
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = Max Active Units
|
blocks.maxunits = Max Active Units
|
||||||
blocks.liquidoutput = Liquid Output
|
|
||||||
blocks.liquidoutputspeed = Liquid Output Speed
|
|
||||||
blocks.liquiduse = Liquid Use
|
|
||||||
blocks.coolant = Coolant
|
|
||||||
blocks.liquid = Liquid
|
|
||||||
blocks.coolantuse = Coolant Use
|
|
||||||
blocks.inputliquidfuel = Fuel Liquid
|
|
||||||
blocks.liquidfueluse = Liquid Fuel Use
|
|
||||||
blocks.boostitem = Boost Item
|
|
||||||
blocks.boostliquid = Boost Liquid
|
|
||||||
blocks.health = Can
|
blocks.health = Can
|
||||||
blocks.heat = Heat
|
|
||||||
blocks.power = Power
|
|
||||||
blocks.progress = Build Progress
|
|
||||||
blocks.spawned = Units: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Power Satisfaction
|
|
||||||
blocks.inaccuracy = yanlışlık
|
blocks.inaccuracy = yanlışlık
|
||||||
blocks.shots = atışlar
|
blocks.shots = atışlar
|
||||||
blocks.reload = Reload
|
blocks.reload = Reload
|
||||||
blocks.inputfuel = Fuel
|
|
||||||
blocks.fuelburntime = Fuel Burn Time
|
|
||||||
blocks.inputcapacity = Giriş kapasitesi
|
|
||||||
blocks.outputcapacity = Çıkış kapasitesi
|
|
||||||
blocks.ammo = Ammo
|
blocks.ammo = Ammo
|
||||||
|
bar.drillspeed = Drill Speed: {0}/s
|
||||||
|
bar.efficiency = Efficiency: {0}%
|
||||||
|
bar.powerbalance = Power: {0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = Power Output: {0}
|
||||||
|
bar.items = Items: {0}
|
||||||
|
bar.liquid = Liquid
|
||||||
|
bar.heat = Heat
|
||||||
|
bar.power = Power
|
||||||
|
bar.progress = Build Progress
|
||||||
|
bar.spawned = Units: {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = liquid units
|
|||||||
unit.powerunits = power units
|
unit.powerunits = power units
|
||||||
unit.degrees = degrees
|
unit.degrees = degrees
|
||||||
unit.seconds = seconds
|
unit.seconds = seconds
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = items
|
unit.items = items
|
||||||
category.general = General
|
category.general = General
|
||||||
category.power = Power
|
category.power = Power
|
||||||
@@ -425,6 +411,7 @@ category.optional = Optional Enhancements
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = Animated Water
|
setting.animatedwater.name = Animated Water
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
||||||
setting.indicators.name = Ally Indicators
|
setting.indicators.name = Ally Indicators
|
||||||
setting.autotarget.name = Auto-Target
|
setting.autotarget.name = Auto-Target
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = Borderless Window
|
|||||||
setting.fps.name = Saniyede ... Kare göstermek
|
setting.fps.name = Saniyede ... Kare göstermek
|
||||||
setting.vsync.name = VSync
|
setting.vsync.name = VSync
|
||||||
setting.lasers.name = Güç Lazerleri Göster
|
setting.lasers.name = Güç Lazerleri Göster
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = Show Minimap
|
setting.minimap.name = Show Minimap
|
||||||
setting.musicvol.name = Müzik sesi
|
setting.musicvol.name = Müzik sesi
|
||||||
setting.mutemusic.name = Müziği Kapat
|
setting.mutemusic.name = Müziği Kapat
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]Item Capacity: {0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
mech.minespeed = [LIGHT_GRAY]Mining Speed: {0}
|
||||||
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
mech.minepower = [LIGHT_GRAY]Mining Power: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Ability: {0}
|
mech.ability = [LIGHT_GRAY]Ability: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
liquid.viscosity = [LIGHT_GRAY]Viscosity: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
liquid.temperature = [LIGHT_GRAY]Temperature: {0}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = Дод/Видалити гравців
|
|||||||
customgame = Користувальницька гра
|
customgame = Користувальницька гра
|
||||||
newgame = Нова гра
|
newgame = Нова гра
|
||||||
none = <нічого>
|
none = <нічого>
|
||||||
|
minimap = Minimap
|
||||||
close = Закрити
|
close = Закрити
|
||||||
quit = Вийти
|
quit = Вийти
|
||||||
maps = Мапи
|
maps = Мапи
|
||||||
@@ -335,66 +336,50 @@ no = Ні
|
|||||||
info.title = Інформація
|
info.title = Інформація
|
||||||
error.title = [crimson]Виникла помилка
|
error.title = [crimson]Виникла помилка
|
||||||
error.crashtitle = Виникла помилка
|
error.crashtitle = Виникла помилка
|
||||||
blocks.outputspeed = Швидкість свердління: {0}/с
|
blocks.input = Вхід
|
||||||
blocks.efficiency = Ефективність: {0}%
|
blocks.output = Вихід
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Прискорювач
|
||||||
blocks.blockinfo = Інформація про блок
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = Енергія: {0}
|
|
||||||
blocks.poweroutput = Вихідна енергія: {0}
|
|
||||||
blocks.powercapacity = Місткість енергії
|
blocks.powercapacity = Місткість енергії
|
||||||
blocks.powershot = Енергія/постріл
|
blocks.powershot = Енергія/постріл
|
||||||
blocks.targetsair = Повітряні мішені
|
blocks.targetsair = Повітряні мішені
|
||||||
blocks.targetsground = Наземні мішені
|
blocks.targetsground = Наземні мішені
|
||||||
blocks.items = Предмети: {0}
|
|
||||||
blocks.itemsmoved = Швидкість переміщення
|
blocks.itemsmoved = Швидкість переміщення
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Час між запусками
|
||||||
blocks.shootrange = Діапазон дії
|
blocks.shootrange = Діапазон дії
|
||||||
blocks.size = Розмір
|
blocks.size = Розмір
|
||||||
blocks.liquidcapacity = Місткість рідини
|
blocks.liquidcapacity = Місткість рідини
|
||||||
blocks.maxitemssecond = Макс. кількість предметів/секунду
|
|
||||||
blocks.powerrange = Діапазон передачі енергії
|
blocks.powerrange = Діапазон передачі енергії
|
||||||
blocks.poweruse = Енергії використовує
|
blocks.poweruse = Енергії використовує
|
||||||
blocks.powerdamage = Енергія/урон
|
blocks.powerdamage = Енергія/урон
|
||||||
blocks.inputitemcapacity = Ємність вхідних елементів
|
|
||||||
blocks.outputitemcapacity = Ємність вихідних елементів
|
|
||||||
blocks.itemcapacity = Місткість предметів
|
blocks.itemcapacity = Місткість предметів
|
||||||
blocks.basepowergeneration = Базова генерація енергії
|
blocks.basepowergeneration = Базова генерація енергії
|
||||||
blocks.powertransferspeed = Швидкість передачі енергії
|
|
||||||
blocks.craftspeed = Швидкість виробництва
|
blocks.craftspeed = Швидкість виробництва
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.productiontime = Час виробництва
|
||||||
blocks.range = Range
|
blocks.repairtime = Час повного відновлення блоку
|
||||||
|
blocks.speedincrease = Збільшення швидкості
|
||||||
|
blocks.range = Радіус дії
|
||||||
blocks.inputliquid = Прийом рідини
|
blocks.inputliquid = Прийом рідини
|
||||||
blocks.inputliquidaux = Допоміжна рідина
|
|
||||||
blocks.inputitem = Вхідний предмет
|
|
||||||
blocks.inputitems = Вхідні предмети
|
|
||||||
blocks.outputitem = Вихідний предмет
|
|
||||||
blocks.drilltier = Видобуває
|
blocks.drilltier = Видобуває
|
||||||
blocks.drillspeed = Базова швидкість свердління
|
blocks.drillspeed = Базова швидкість свердління
|
||||||
|
blocks.boosteffect = Прискорювальний ефект
|
||||||
blocks.maxunits = Максимальна кількість активних одиниць
|
blocks.maxunits = Максимальна кількість активних одиниць
|
||||||
blocks.liquidoutput = Вихідна рідина
|
|
||||||
blocks.liquidoutputspeed = Швидкість вихідної рідини
|
|
||||||
blocks.liquiduse = Використовуеться рідин
|
|
||||||
blocks.coolant = Охолоджуюча рідина
|
|
||||||
blocks.liquid = Рідина
|
|
||||||
blocks.coolantuse = Охолодж. рідини використовуеться
|
|
||||||
blocks.inputliquidfuel = Рідке паливо
|
|
||||||
blocks.liquidfueluse = Рідкого палива використовуеться
|
|
||||||
blocks.boostitem = Прискорюючий предмет
|
|
||||||
blocks.boostliquid = Прискорююча рідина
|
|
||||||
blocks.health = Здоров'я
|
blocks.health = Здоров'я
|
||||||
blocks.heat = Температура
|
|
||||||
blocks.power = Енергія
|
|
||||||
blocks.progress = Будівництво триває
|
|
||||||
blocks.spawned = Бой. од.: {0}/{1}
|
|
||||||
blocks.power.satisfaction = Енергія
|
|
||||||
blocks.inaccuracy = Розкид
|
blocks.inaccuracy = Розкид
|
||||||
blocks.shots = Постріли
|
blocks.shots = Постріли
|
||||||
blocks.reload = Постріли/секунду
|
blocks.reload = Постріли/секунду
|
||||||
blocks.inputfuel = Паливо
|
|
||||||
blocks.fuelburntime = Час горіння топлива
|
|
||||||
blocks.inputcapacity = Макс. місткість вхідних предметів
|
|
||||||
blocks.outputcapacity = Макс. місткість вихідних предметів
|
|
||||||
blocks.ammo = Боєприпаси
|
blocks.ammo = Боєприпаси
|
||||||
|
bar.drillspeed = Швидкість сверрдління: {0}/s
|
||||||
|
bar.efficiency = Ефективність: {0}%
|
||||||
|
bar.powerbalance = Енергія: {0}/с
|
||||||
|
bar.poweramount = Енергія: {0}
|
||||||
|
bar.poweroutput = Вихідна енергія: {0}
|
||||||
|
bar.items = Предмети: {0}
|
||||||
|
bar.liquid = Рідина
|
||||||
|
bar.heat = Нагрівання
|
||||||
|
bar.power = Енергія
|
||||||
|
bar.progress = Хід Будівництва
|
||||||
|
bar.spawned = Бойов. од. : {0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] шкода
|
bullet.damage = [stat]{0}[lightgray] шкода
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плитк.
|
bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] плитк.
|
||||||
bullet.incendiary = [stat]запальний
|
bullet.incendiary = [stat]запальний
|
||||||
@@ -404,8 +389,8 @@ bullet.frag = [stat]осколкова граната
|
|||||||
bullet.knockback = [stat]{0}[lightgray] відкидання
|
bullet.knockback = [stat]{0}[lightgray] відкидання
|
||||||
bullet.freezing = [stat]заморожування
|
bullet.freezing = [stat]заморожування
|
||||||
bullet.tarred = [stat]дьогтьовий
|
bullet.tarred = [stat]дьогтьовий
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x множник патронів
|
bullet.multiplier = [stat]{0}[lightgray]x патронів
|
||||||
bullet.reload = [stat]{0}[lightgray]x перезаряджання
|
bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання
|
||||||
unit.blocks = блоки
|
unit.blocks = блоки
|
||||||
unit.powersecond = одиниць енергії/секунду
|
unit.powersecond = одиниць енергії/секунду
|
||||||
unit.liquidsecond = рідких одиниць/секунду
|
unit.liquidsecond = рідких одиниць/секунду
|
||||||
@@ -414,6 +399,9 @@ unit.liquidunits = рідинних одиниць
|
|||||||
unit.powerunits = енергетичних одиниць
|
unit.powerunits = енергетичних одиниць
|
||||||
unit.degrees = град.
|
unit.degrees = град.
|
||||||
unit.seconds = сек.
|
unit.seconds = сек.
|
||||||
|
unit.persecond = /сек
|
||||||
|
unit.timesspeed = x швидкість
|
||||||
|
unit.percent = %
|
||||||
unit.items = предм.
|
unit.items = предм.
|
||||||
category.general = Загальні
|
category.general = Загальні
|
||||||
category.power = Енергетичні
|
category.power = Енергетичні
|
||||||
@@ -422,14 +410,16 @@ category.items = Предмети
|
|||||||
category.crafting = Введення/виведення
|
category.crafting = Введення/виведення
|
||||||
category.shooting = Стрільба
|
category.shooting = Стрільба
|
||||||
category.optional = Додаткові поліпшення
|
category.optional = Додаткові поліпшення
|
||||||
setting.landscape.name = Заблокований пейхаж
|
setting.landscape.name = Зберегти пейхаж
|
||||||
setting.shadows.name = Тіні
|
setting.shadows.name = Тіні
|
||||||
setting.animatedwater.name = Анімована вода
|
setting.animatedwater.name = Анімована вода
|
||||||
|
setting.animatedshields.name = Анімовані щити
|
||||||
setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[]
|
setting.antialias.name = Згладжування[LIGHT_GRAY] (потребує перезапуску)[]
|
||||||
setting.indicators.name = Показувати у сторону ворогів та союзників
|
setting.indicators.name = Показувати у сторону ворогів та союзників
|
||||||
setting.autotarget.name = Авто-стрільба
|
setting.autotarget.name = Авто-стрільба
|
||||||
setting.fpscap.name = Макс. FPS
|
setting.fpscap.name = Макс. FPS
|
||||||
setting.fpscap.none = Необмежений
|
setting.fpscap.none = Необмежений
|
||||||
|
minimap = Міні-мапа
|
||||||
setting.fpscap.text = {0} FPS
|
setting.fpscap.text = {0} FPS
|
||||||
setting.swapdiagonal.name = Завжди Діагональне Розміщення
|
setting.swapdiagonal.name = Завжди Діагональне Розміщення
|
||||||
setting.difficulty.training = навчання
|
setting.difficulty.training = навчання
|
||||||
@@ -448,7 +438,8 @@ setting.borderless.name = Вікно без полів
|
|||||||
setting.fps.name = Показувати FPS
|
setting.fps.name = Показувати FPS
|
||||||
setting.vsync.name = Вертикальна синхронізація
|
setting.vsync.name = Вертикальна синхронізація
|
||||||
setting.lasers.name = Показувати енергію лазерів
|
setting.lasers.name = Показувати енергію лазерів
|
||||||
setting.minimap.name = Показати мінімапу
|
setting.pixelate.name = Пікселізація [LIGHT_GRAY](може знизити продуктивність)
|
||||||
|
setting.minimap.name = Показати міні-мапу
|
||||||
setting.musicvol.name = Гучність музики
|
setting.musicvol.name = Гучність музики
|
||||||
setting.mutemusic.name = Заглушити музику
|
setting.mutemusic.name = Заглушити музику
|
||||||
setting.sfxvol.name = Гучність звукових ефектів
|
setting.sfxvol.name = Гучність звукових ефектів
|
||||||
@@ -506,7 +497,10 @@ rules.wavetimer = Таймер Хвиль
|
|||||||
rules.waves = Хвилі
|
rules.waves = Хвилі
|
||||||
rules.enemyCheat = Нескінченні ресурси для ШІ
|
rules.enemyCheat = Нескінченні ресурси для ШІ
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Падіння бойових одиниць
|
rules.unitdrops = Ресурс бойових одиниць
|
||||||
|
rules.unitbuildspeedmultiplier = Множник Швидкості Створювання Бойов. Од.
|
||||||
|
rules.unithealthmultiplier = Множник Здоров'я Створювання Бойов. Од.
|
||||||
|
rules.playerdamagemultiplier = Множник Шкоди Гравця
|
||||||
rules.enemycorebuildradius = Радіус заборони будування для Ворожого Ядра:[LIGHT_GRAY] (плитки)
|
rules.enemycorebuildradius = Радіус заборони будування для Ворожого Ядра:[LIGHT_GRAY] (плитки)
|
||||||
rules.respawntime = Час відродження:[LIGHT_GRAY] (sec)
|
rules.respawntime = Час відродження:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Інтервал хвиль:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Інтервал хвиль:[LIGHT_GRAY] (sec)
|
||||||
@@ -540,7 +534,7 @@ item.spore-pod.name = Споровий стручок
|
|||||||
item.spore-pod.description = Використовується для перетворення на нафту, вибухові речовини та паливо.
|
item.spore-pod.description = Використовується для перетворення на нафту, вибухові речовини та паливо.
|
||||||
item.sand.name = Пісок
|
item.sand.name = Пісок
|
||||||
item.sand.description = Загальний матеріал, який широко використовується при плавленні, як у процесі плавки, так і у вигляді шлака.
|
item.sand.description = Загальний матеріал, який широко використовується при плавленні, як у процесі плавки, так і у вигляді шлака.
|
||||||
item.blast-compound.name = Вибухонебезпечне з'єднання
|
item.blast-compound.name = Вибухова суміш
|
||||||
item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується.
|
item.blast-compound.description = Нестійке з'єднання, що використовується в бомбах та вибухових речовинах. Хоча воно може спалюватися як паливо, та це не рекомендується.
|
||||||
item.pyratite.name = Піротит
|
item.pyratite.name = Піротит
|
||||||
item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї.
|
item.pyratite.description = Вкрай легкозаймиста речовина, що використовується у запальній зброї.
|
||||||
@@ -554,7 +548,7 @@ liquid.oil.name = Нафта
|
|||||||
liquid.cryofluid.name = Кріогенна рідина
|
liquid.cryofluid.name = Кріогенна рідина
|
||||||
mech.alpha-mech.name = Альфа
|
mech.alpha-mech.name = Альфа
|
||||||
mech.alpha-mech.weapon = Тяжкий кулемет
|
mech.alpha-mech.weapon = Тяжкий кулемет
|
||||||
mech.alpha-mech.ability = Нема
|
mech.alpha-mech.ability = Регенерація
|
||||||
mech.alpha-mech.description = Стандартний мех для настільних пристроїв. Має пристойну швидкість і урон.
|
mech.alpha-mech.description = Стандартний мех для настільних пристроїв. Має пристойну швидкість і урон.
|
||||||
mech.delta-mech.name = Дельта
|
mech.delta-mech.name = Дельта
|
||||||
mech.delta-mech.weapon = Генератор дуг
|
mech.delta-mech.weapon = Генератор дуг
|
||||||
@@ -589,9 +583,10 @@ unit.speed = [LIGHT_GRAY]Швидкість: {0}
|
|||||||
mech.weapon = [LIGHT_GRAY]Зброя: {0}
|
mech.weapon = [LIGHT_GRAY]Зброя: {0}
|
||||||
mech.health = [LIGHT_GRAY]Здоров'я: {0}
|
mech.health = [LIGHT_GRAY]Здоров'я: {0}
|
||||||
mech.itemcapacity = [LIGHT_GRAY] Ємність елементів: {0}
|
mech.itemcapacity = [LIGHT_GRAY] Ємність елементів: {0}
|
||||||
mech.minespeed = [LIGHT_GRAY]Швидкість видобутку: {0}
|
mech.minespeed = [LIGHT_GRAY]Швидкість видобутку: {0}%
|
||||||
mech.minepower = [LIGHT_GRAY]Потужність видобутку: {0}
|
mech.minepower = [LIGHT_GRAY]Потужність видобутку: {0}
|
||||||
mech.ability = [LIGHT_GRAY]Здібність: {0}
|
mech.ability = [LIGHT_GRAY]Здібність: {0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Швидкість будування: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]Теплоємність: {0}
|
liquid.heatcapacity = [LIGHT_GRAY]Теплоємність: {0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]В'язкість: {0}
|
liquid.viscosity = [LIGHT_GRAY]В'язкість: {0}
|
||||||
liquid.temperature = [LIGHT_GRAY]Температура: {0}
|
liquid.temperature = [LIGHT_GRAY]Температура: {0}
|
||||||
@@ -698,7 +693,7 @@ block.impact-reactor.name = Імпульсний реактор
|
|||||||
block.mechanical-drill.name = Механічний дриль
|
block.mechanical-drill.name = Механічний дриль
|
||||||
block.pneumatic-drill.name = Пневматичний дриль
|
block.pneumatic-drill.name = Пневматичний дриль
|
||||||
block.laser-drill.name = Лазерний дриль
|
block.laser-drill.name = Лазерний дриль
|
||||||
block.water-extractor.name = Екстрактор води
|
block.water-extractor.name = Гідроконденсатор
|
||||||
block.cultivator.name = Культиватор
|
block.cultivator.name = Культиватор
|
||||||
block.alpha-dart-mech-pad.name = Реконструктор "Альфа-Дротик"
|
block.alpha-dart-mech-pad.name = Реконструктор "Альфа-Дротик"
|
||||||
block.delta-mech-pad.name = Реконструктор "Дельта"
|
block.delta-mech-pad.name = Реконструктор "Дельта"
|
||||||
@@ -727,7 +722,7 @@ block.pyratite-mixer.name = Змішувач піротиту
|
|||||||
block.blast-mixer.name = Доменний змішувач
|
block.blast-mixer.name = Доменний змішувач
|
||||||
block.solar-panel.name = Сонячна панель
|
block.solar-panel.name = Сонячна панель
|
||||||
block.solar-panel-large.name = Велика сонячна панель
|
block.solar-panel-large.name = Велика сонячна панель
|
||||||
block.oil-extractor.name = Екстрактор нафти
|
block.oil-extractor.name = Нафтова вежа
|
||||||
block.spirit-factory.name = Завод дронов "Призрак"
|
block.spirit-factory.name = Завод дронов "Призрак"
|
||||||
block.phantom-factory.name = Завод дронов "Фантом"
|
block.phantom-factory.name = Завод дронов "Фантом"
|
||||||
block.wraith-factory.name = Завод винищувачів "Примара"
|
block.wraith-factory.name = Завод винищувачів "Примара"
|
||||||
@@ -767,7 +762,7 @@ block.meltdown.name = Розтоплення
|
|||||||
block.container.name = Склад
|
block.container.name = Склад
|
||||||
block.launch-pad.name = Стартовий майданчик
|
block.launch-pad.name = Стартовий майданчик
|
||||||
block.launch-pad.description = Запускає партії елементів без необхідності запуску ядра. Незакінчено.
|
block.launch-pad.description = Запускає партії елементів без необхідності запуску ядра. Незакінчено.
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
block.launch-pad-large.name = Великий Стартовий майданчик
|
||||||
team.blue.name = Синя
|
team.blue.name = Синя
|
||||||
team.red.name = Червона
|
team.red.name = Червона
|
||||||
team.orange.name = Помаренчева
|
team.orange.name = Помаренчева
|
||||||
@@ -852,7 +847,7 @@ block.silicon-smelter.description = За допомогою піску, вугі
|
|||||||
block.plastanium-compressor.description = Створює пластинійи з титану і нафти. Вимагає енергії. Для прискорення виробництва можна додати в компресор пісок.
|
block.plastanium-compressor.description = Створює пластинійи з титану і нафти. Вимагає енергії. Для прискорення виробництва можна додати в компресор пісок.
|
||||||
block.phase-weaver.description = Виробляє фазову тканину торію і піску. Вимагає багато енергії.
|
block.phase-weaver.description = Виробляє фазову тканину торію і піску. Вимагає багато енергії.
|
||||||
block.alloy-smelter.description = Створює кінетичний сплав з титану, кременя, міді і свинця. Вимагає енергію.
|
block.alloy-smelter.description = Створює кінетичний сплав з титану, кременя, міді і свинця. Вимагає енергію.
|
||||||
block.pulverizer.description = Подрібнює камінь в пісок. Вимагає енергії.
|
block.pulverizer.description = Подрібнює металобрухт в пісок. Вимагає енергії.
|
||||||
block.pyratite-mixer.description = Створює піротит з вугілля, свинцю і піску. Вимагає енергії.
|
block.pyratite-mixer.description = Створює піротит з вугілля, свинцю і піску. Вимагає енергії.
|
||||||
block.blast-mixer.description = Створює вибухонебезпечне з'єднання з нафти і піротіта. Для прискорення виробництва можна додати в мішалку пісок.
|
block.blast-mixer.description = Створює вибухонебезпечне з'єднання з нафти і піротіта. Для прискорення виробництва можна додати в мішалку пісок.
|
||||||
block.cryofluidmixer.description = Виробляє криогенну рідину з води і титану. Вимагає енергії.
|
block.cryofluidmixer.description = Виробляє криогенну рідину з води і титану. Вимагає енергії.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
credits.text = 由[ROYAL]Anuken[]开发 - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!)
|
||||||
credits = 致谢
|
credits = 致谢
|
||||||
contributors = 译者和贡献者
|
contributors = 译者和贡献者
|
||||||
discord = 加入 Mindustry 的 Discord!
|
discord = 加入 Mindustry 的 Discord!
|
||||||
@@ -12,65 +12,66 @@ link.wiki.description = 官方 Mindustry 维基
|
|||||||
linkfail = 打开链接失败!\nURL 已经复制到剪贴板。
|
linkfail = 打开链接失败!\nURL 已经复制到剪贴板。
|
||||||
screenshot = 荧幕截图已放在 {0}
|
screenshot = 荧幕截图已放在 {0}
|
||||||
gameover = 你的核心被摧毁了!
|
gameover = 你的核心被摧毁了!
|
||||||
gameover.pvp = accent] {0}[] 队获胜!
|
gameover.pvp = [accent] {0}[] 队获胜!
|
||||||
highscore = [accent]新纪录!
|
highscore = [accent]新纪录!
|
||||||
stat.wave = 战胜的波数:[accent]{0}
|
stat.wave = 战胜的波数:[accent]{0}
|
||||||
stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
|
stat.enemiesDestroyed = 消灭的敌人:[accent]{0}
|
||||||
stat.built = Buildings Built:[accent] {0}
|
stat.built = 建造的建筑:[accent]{0}
|
||||||
stat.destroyed = Buildings Destroyed:[accent] {0}
|
stat.destroyed = 摧毁的建筑:[accent]{0}
|
||||||
stat.deconstructed = Buildings Deconstructed:[accent] {0}
|
stat.deconstructed = 拆除的建筑:[accent]{0}
|
||||||
stat.delivered = Resources Launched:
|
stat.delivered = 发射的资源:
|
||||||
stat.rank = Final Rank: [accent]{0}
|
stat.rank = 最终排名:[accent]{0}
|
||||||
placeline = You have selected a block.\nYou can[accent] place in a line[] by[accent] holding down your finger for a few seconds[] and dragging in a direction.\nTry it.
|
placeline = 你选择了一个方块。\n你能通过[accent]长按几秒钟[]并向一个方向拖动来[accent]直线放置方块[]。\n试试看吧。
|
||||||
removearea = You have selected removal mode.\nYou can[accent] remove blocks in a rectangle[] by[accent] holding down your finger for a few seconds[] and dragging.\nTry it.
|
removearea = 你选择了拆除模式。\n你能通过[accent]长按几秒钟[]并拖动来[accent]删除矩形内的方块[]。\n试试看吧。
|
||||||
launcheditems = [accent]Launched Items
|
launcheditems = [accent]发射的资源
|
||||||
map.delete = 确定要删除 "[accent]{0}[]" 地图吗?
|
map.delete = 确定要删除 "[accent]{0}[]" 地图吗?
|
||||||
level.highscore = 最高分:[accent]{0}
|
level.highscore = 最高分:[accent]{0}
|
||||||
level.select = 选择关卡
|
level.select = 选择关卡(?Level Select)
|
||||||
level.mode = 游戏模式:
|
level.mode = 游戏模式:
|
||||||
showagain = 不再显示
|
showagain = 下次不再显示
|
||||||
coreattack = < 核心正在受到攻击! >
|
coreattack = < 核心正在受到攻击! >
|
||||||
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
|
nearpoint = [[ [scarlet]立即离开敌人出生点[] ]\n将被清理
|
||||||
outofbounds = [[ OUT OF BOUNDS ]\n[]self-destruct in {0}
|
outofbounds = [[ 超出边界 ]\n[]{0}秒后自毁
|
||||||
database = 核心数据
|
database = 核心数据库
|
||||||
savegame = 保存游戏
|
savegame = 保存游戏
|
||||||
loadgame = 载入游戏
|
loadgame = 载入游戏
|
||||||
joingame = 加入游戏
|
joingame = 加入游戏
|
||||||
addplayers = 增加/删除玩家
|
addplayers = 添加/删除玩家
|
||||||
customgame = 自定义游戏
|
customgame = 自定义游戏
|
||||||
newgame = 新游戏
|
newgame = 新游戏
|
||||||
none = <无>
|
none = <无>
|
||||||
|
minimap = Minimap
|
||||||
close = 关闭
|
close = 关闭
|
||||||
quit = 退出
|
quit = 退出
|
||||||
maps = 地图
|
maps = 地图
|
||||||
continue = 继续
|
continue = 继续
|
||||||
maps.none = [LIGHT_GRAY]未发现地图!
|
maps.none = [LIGHT_GRAY]没有找到地图!
|
||||||
about.button = 关于
|
about.button = 关于
|
||||||
name = 名字:
|
name = 名字:
|
||||||
noname = Pick a[accent] player name[] first.
|
noname = 先取一个[accent] 玩家名[]。
|
||||||
filename = 文件名:
|
filename = 文件名:
|
||||||
unlocked = 新方块已解锁!
|
unlocked = 新方块已解锁!
|
||||||
completed = [accent]Completed
|
completed = [accent]完成的
|
||||||
techtree = 科技树
|
techtree = 科技树
|
||||||
research.list = [LIGHT_GRAY]Research:
|
research.list = [LIGHT_GRAY]研究:
|
||||||
research = Research
|
research = 研究
|
||||||
researched = [LIGHT_GRAY]{0} researched.
|
researched = [LIGHT_GRAY]{0} 己研究。
|
||||||
players = {0} 玩家在线
|
players = {0} 玩家在线
|
||||||
players.single = {0} 玩家在线
|
players.single = {0} 玩家在线
|
||||||
server.closing = [accent]正在关闭服务器……
|
server.closing = [accent]正在关闭服务器……
|
||||||
server.kicked.kick = 你被踢出服务器了!
|
server.kicked.kick = 你被踢出服务器了!
|
||||||
server.kicked.serverClose = 服务器已关闭。
|
server.kicked.serverClose = 服务器已关闭。
|
||||||
server.kicked.clientOutdated = 客户端版本过旧!请升级!
|
server.kicked.clientOutdated = 过旧的客户端!更新你的游戏!
|
||||||
server.kicked.serverOutdated = 服务器版本过旧!请联系房主升级!
|
server.kicked.serverOutdated = 过旧的服务器!联系房主升级!
|
||||||
server.kicked.banned = 你被这个服务器拉黑了。
|
server.kicked.banned = 你在这个服务器上被禁了。
|
||||||
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接!
|
server.kicked.recentKick = 你刚刚被踢出服务器。\n请稍后重新连接!
|
||||||
server.kicked.nameInUse = 服务器中已经\n有人有相同的名字了。
|
server.kicked.nameInUse = 服务器中已经\n有人有相同的名字了。
|
||||||
server.kicked.nameEmpty = 你的名字必须至少包含一个字母或数字。
|
server.kicked.nameEmpty = 你选择的名字是无效的。
|
||||||
server.kicked.idInUse = 你已经在服务器中!不允许用两个账号。
|
server.kicked.idInUse = 你已在这个服务器上!不允许用两个账号连接。
|
||||||
server.kicked.customClient = 这个服务器不支持修改版客户端,请下载官方版本。
|
server.kicked.customClient = 这个服务器不支持定制版本。下载官方版本。
|
||||||
server.kicked.gameover = !
|
server.kicked.gameover = 游戏结束!
|
||||||
host.info = [accent]创建局域网游戏[]按钮会在[scarlet]6567[]端口运行一个服务器。[]\n任何在同一个[LIGHT_GRAY]网络或本地网络[]下的人都将在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过IP地址连接,你需要设定[accent]端口转发[]。\n\n[LIGHT_GRAY]请注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了Mindustry连接本地网络。
|
host.info = [accent]创建局域网游戏[]按钮会在[scarlet]6567[]端口运行一个服务器。[]\n任何在同一个[LIGHT_GRAY]wifi或本地网络[]下的人都应该可以在服务器列表中看到你的服务器。\n\n如果你想让别人在任何地方都能通过IP地址连接,你需要设定[accent]端口转发[]。\n\n[LIGHT_GRAY]注意:如果某人无法连接到你的局域网游戏,请确保你在防火墙设置里允许了Mindustry访问本地网络。
|
||||||
join.info = 你可以在这里输入[accent]服务器的IP地址[]以连接,或寻找[accent]本地网络[]中的服务器以连接。\n目前支持局域网或广域网多人游戏。\n\n[LIGHT_GRAY]请注意:没有全球服务器列表;如果你想通过IP地址连接某个服务器,你需要向房主询问IP地址。
|
join.info = 此时,可以输入[accent]服务器的IP地址[]来连接,或寻找[accent]本地网络[]中的服务器来连接。\n局域网或广域网多人游戏都被支持。\n\n[LIGHT_GRAY]注意:没有全球服务器列表;如果你想通过IP地址连接某个服务器,你需要向房主询问IP地址。
|
||||||
hostserver = 创建服务器
|
hostserver = 创建服务器
|
||||||
hostserver.mobile = 创建\n服务器
|
hostserver.mobile = 创建\n服务器
|
||||||
host = 创建
|
host = 创建
|
||||||
@@ -81,190 +82,190 @@ server.refreshing = 正在刷新服务器
|
|||||||
hosts.none = [lightgray]未发现局域网游戏!
|
hosts.none = [lightgray]未发现局域网游戏!
|
||||||
host.invalid = [scarlet]无法连接服务器。
|
host.invalid = [scarlet]无法连接服务器。
|
||||||
trace = 跟踪玩家
|
trace = 跟踪玩家
|
||||||
trace.playername = 玩家名字: [accent]{0}
|
trace.playername = 玩家名称:[accent]{0}
|
||||||
trace.ip = IP地址:[accent]{0}
|
trace.ip = IP地址:[accent]{0}
|
||||||
trace.id = ID︰[accent]{0}
|
trace.id = 唯一的ID:[accent]{0}
|
||||||
trace.android = 安卓客户端:[accent]{0}
|
trace.android = 安卓客户端:[accent]{0}
|
||||||
trace.modclient = 修改版客户端: [accent]{0}
|
trace.modclient = 定制版客户端:[accent]{0}
|
||||||
trace.totalblocksbroken = 总共破坏了 [accent]{0} 个方块。
|
trace.totalblocksbroken = 总共破坏了 [accent]{0} 个方块。
|
||||||
trace.structureblocksbroken = 总共破坏了[accent]{0}个方块。
|
trace.structureblocksbroken = 总共破坏了 [accent]{0} 个建筑物方块。
|
||||||
trace.lastblockbroken = 最后破坏的方块:[accent]{0}
|
trace.lastblockbroken = 最后破坏的方块:[accent]{0}
|
||||||
trace.totalblocksplaced = 总共放置了 [accent]{0} 个方块。
|
trace.totalblocksplaced = 总共放置了 [accent]{0} 个方块。
|
||||||
trace.lastblockplaced = 最后放置的方块:[accent]{0}
|
trace.lastblockplaced = 最后放置的方块:[accent]{0}
|
||||||
invalidid = 无效的客户端ID!请提交错误报告。
|
invalidid = 无效的客户端ID!提交一个错误报告。
|
||||||
server.bans = 黑名单
|
server.bans = 黑名单
|
||||||
server.bans.none = 没有被拉黑的玩家!
|
server.bans.none = 没有找到被拉黑的玩家!
|
||||||
server.admins = 管理员
|
server.admins = 管理员
|
||||||
server.admins.none = 没有管理员!
|
server.admins.none = 没有找到管理员!
|
||||||
server.add = 添加服务器
|
server.add = 添加服务器
|
||||||
server.delete = 确定要删除这个服务器吗?
|
server.delete = 你确定要删除这个服务器吗?
|
||||||
server.hostname = 主机︰{0}
|
server.hostname = 主机:{0}
|
||||||
server.edit = 编辑服务器
|
server.edit = 编辑服务器
|
||||||
server.outdated = [crimson]服务器过旧![]
|
server.outdated = [crimson]过旧的服务器![]
|
||||||
server.outdated.client = [crimson]客户端过旧![]
|
server.outdated.client = [crimson]过旧的客户端![]
|
||||||
server.version = [lightgray]版本: {0}
|
server.version = [lightgray]版本:{0} {1}
|
||||||
server.custombuild = [yellow]修改版
|
server.custombuild = [yellow]定制版
|
||||||
confirmban = 确认拉黑这个玩家吗?
|
confirmban = 你确认你想拉黑这名玩家吗?
|
||||||
confirmkick = 您确定要踢出这个玩家吗?
|
confirmkick = 你确定你想要踢走这名玩家吗?
|
||||||
confirmunban = 确认要取消拉黑这个玩家吗?
|
confirmunban = 你确定你想要取消拉黑这名玩家吗?
|
||||||
confirmadmin = 确认要添加这个玩家为管理员吗?
|
confirmadmin = 你确定你想要使这名玩家成为一个管理员吗?
|
||||||
confirmunadmin = 确认要取消这个玩家的管理员身份吗?
|
confirmunadmin = 你确定你想要删除这名玩家的管理员地位吗?
|
||||||
joingame.title = 加入游戏
|
joingame.title = 加入游戏
|
||||||
joingame.ip = IP:
|
joingame.ip = 地址:
|
||||||
disconnect = 已断开
|
disconnect = 已断开
|
||||||
disconnect.data = 载入世界失败!
|
disconnect.data = 读取世界数据失败!
|
||||||
connecting = [accent]连接中……
|
connecting = [accent]正在连接...
|
||||||
connecting.data = [accent]加载世界中……
|
connecting.data = [accent]正在加载世界数据...
|
||||||
server.port = 端口︰
|
server.port = 端口:
|
||||||
server.addressinuse = 地址已经使用!
|
server.addressinuse = 地址已经在使用中!
|
||||||
server.invalidport = 无效的端口!
|
server.invalidport = 无效的端口号!
|
||||||
server.error = [crimson]创建服务器错误:[accent]{0}
|
server.error = [crimson]创建服务器错误:[accent]{0}
|
||||||
save.old = 这个存档属于旧版本游戏,无法继续使用了。\n\n[LIGHT_GRAY]存档向下兼容将在 4.0 版本中实现。
|
save.old = 这个存档属于旧版本游戏,不再被使用。\n\n[LIGHT_GRAY]存档向下兼容将在完整的 4.0 版本中被实现。
|
||||||
save.new = 新存档
|
save.new = 新存档
|
||||||
save.overwrite = 确认要覆盖这个存档吗?
|
save.overwrite = 你确定你要覆盖这个存档位吗?
|
||||||
overwrite = 覆盖
|
overwrite = 覆盖
|
||||||
save.none = 没有存档!
|
save.none = 没有存档被找到!
|
||||||
saveload = [accent]保存中……
|
saveload = [accent]正在保存...
|
||||||
savefail = 保存失败!
|
savefail = 保存失败!
|
||||||
save.delete.confirm = 确认要删除这个存档吗?
|
save.delete.confirm = 你确定你要删除这个存档吗?
|
||||||
save.delete = 删除
|
save.delete = 删除
|
||||||
save.export = 导出存档
|
save.export = 导出存档
|
||||||
save.import.invalid = [accent]存档无效!
|
save.import.invalid = [accent]这个存档是无效的!
|
||||||
save.import.fail = [crimson]导入存档失败:[accent]{0}
|
save.import.fail = [crimson]导入存档失败:[accent]{0}
|
||||||
save.export.fail = [crimson]导出存档失败:[accent]{0}
|
save.export.fail = [crimson]导出存档失败:[accent]{0}
|
||||||
save.import = 导入存档
|
save.import = 导入存档
|
||||||
save.newslot = 保存游戏:
|
save.newslot = 保存的名称:
|
||||||
save.rename = 重命名
|
save.rename = 重命名
|
||||||
save.rename.text = 新名字:
|
save.rename.text = 新名称:
|
||||||
selectslot = 选择一个存档。
|
selectslot = 选择一个存档。
|
||||||
slot = [accent]存档 {0}
|
slot = [accent]存档位 {0}
|
||||||
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[]bug 。
|
save.corrupted = [accent]存档损坏或无效!\n如果你刚刚升级了游戏,那么这可能是因为存档格式改变了,而[scarlet]不是[]bug 。
|
||||||
empty = <空>
|
empty = <空>
|
||||||
on = 开
|
on = 开
|
||||||
off = 关
|
off = 关
|
||||||
save.autosave = 自动保存:{0}
|
save.autosave = 自动保存:{0}
|
||||||
save.map = 地图:{0}
|
save.map = 地图:{0}
|
||||||
save.wave = 第 {0} 波
|
save.wave = 波次 {0}
|
||||||
save.difficulty = 难度:{0}
|
save.difficulty = 难度:{0}
|
||||||
save.date = 最后保存日期:{0}
|
save.date = 最后保存过:{0}
|
||||||
save.playtime = 游戏时间:{0}
|
save.playtime = 游戏时间:{0}
|
||||||
warning = Warning.
|
warning = 警告。
|
||||||
confirm = 确认
|
confirm = 确认
|
||||||
delete = 删除
|
delete = 删除
|
||||||
ok = 好的
|
ok = 好的
|
||||||
open = 打开
|
open = 打开
|
||||||
cancel = 取消
|
cancel = 取消
|
||||||
openlink = 打开链接
|
openlink = 打开链接
|
||||||
copylink = 删除链接
|
copylink = 复制链接
|
||||||
back = 返回
|
back = 返回
|
||||||
quit.confirm = 确认要退出?
|
quit.confirm = 你确定你想要退出?
|
||||||
changelog.title = 更新日志
|
changelog.title = 更新日志
|
||||||
changelog.loading = 正在获取更新日志...
|
changelog.loading = 正在获取更新日志...
|
||||||
changelog.error.android = [accent]请注意更新日志有时在安卓 4.4 以下不工作。\n这是因为安卓系统的一个 bug 。
|
changelog.error.android = [accent]注意更新日志有时在安卓 4.4 以下不工作。\n这是安卓系统内部的一个bug。
|
||||||
changelog.error.ios = [accent]iOS还不支持更新日志。
|
changelog.error.ios = [accent]更新日志当前在iOS中不被支持。
|
||||||
changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。
|
changelog.error = [scarlet]获取更新日志失败!\n请检查你的网络。
|
||||||
changelog.current = [yellow][[Current version]
|
changelog.current = [yellow][[当前版本]
|
||||||
changelog.latest = [accent][[Latest version]
|
changelog.latest = [accent][[最新版本]
|
||||||
loading = [accent]加载中……
|
loading = [accent]正在加载...
|
||||||
saving = [accent]保存中……
|
saving = [accent]正在保存...
|
||||||
wave = [accent]第 {0} 波
|
wave = [accent]波次 {0}
|
||||||
wave.waiting = 下一波将在 {0} 秒后到来
|
wave.waiting = [LIGHT_GRAY]下一波将在{0}秒后到来
|
||||||
waiting = 等待中……
|
|
||||||
waiting.players = 等待玩家中……
|
waiting.players = 等待玩家中……
|
||||||
wave.enemies = 剩下 [LIGHT_GRAY]{0} 敌人
|
waiting = [LIGHT_GRAY]正在等待...
|
||||||
wave.enemy = 剩下 [LIGHT_GRAY]{0} 敌人
|
wave.enemies = [LIGHT_GRAY]剩余 {0} 个敌人
|
||||||
|
wave.enemy = [LIGHT_GRAY]剩余 {0} 个敌人
|
||||||
loadimage = 加载图片
|
loadimage = 加载图片
|
||||||
saveimage = 保存图片
|
saveimage = 保存图片
|
||||||
unknown = 未知
|
unknown = 未知
|
||||||
custom = 自定义
|
custom = 自定义
|
||||||
builtin = 内建的
|
builtin = 内建的
|
||||||
map.delete.confirm = 确认要删除地图吗?这个操作无法撤销!
|
map.delete.confirm = 你确定你想要删除这张地图吗?这个操作无法取消!
|
||||||
map.random = [accent]随机地图
|
map.random = [accent]随机地图
|
||||||
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]蓝色[]的核心。
|
map.nospawn = 这个地图没有核心!请在编辑器中添加一个[ROYAL]蓝色[]的核心。
|
||||||
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]红色[]的核心。
|
map.nospawn.pvp = 这个地图没有敌人的核心!请在编辑器中添加一个[ROYAL]红色[]的核心。
|
||||||
map.nospawn.attack = This map does not have any enemy cores for player to attack! Add[SCARLET] red[] cores to this map in the editor.
|
map.nospawn.attack = 这个地图没有敌人的核心!请在编辑中向地图添加一个[SCARLET]红色[]的核心。
|
||||||
map.invalid = 地图载入错误:地图文件可能已经损坏。
|
map.invalid = 地图载入错误:地图文件可能已经损坏。
|
||||||
editor.brush = 笔刷
|
editor.brush = 笔刷
|
||||||
editor.openin = 在编辑器中打开
|
editor.openin = 在编辑器中打开
|
||||||
editor.oregen = 生成矿石
|
editor.oregen = 矿石的生成
|
||||||
editor.oregen.info = 生成矿石:
|
editor.oregen.info = 矿石的生成:
|
||||||
editor.mapinfo = 地图详情
|
editor.mapinfo = 地图信息
|
||||||
editor.author = 作者:
|
editor.author = 作者:
|
||||||
editor.description = 描述:
|
editor.description = 描述:
|
||||||
editor.waves = Waves:
|
editor.waves = 波数:
|
||||||
waves.title = Waves
|
waves.title = 波数
|
||||||
waves.remove = Remove
|
waves.remove = 去除
|
||||||
waves.never = <never>
|
waves.never = <never>
|
||||||
waves.every = every
|
waves.every = 每
|
||||||
waves.waves = wave(s)
|
waves.waves = 波
|
||||||
waves.perspawn = per spawn
|
waves.perspawn = 每次生成
|
||||||
waves.to = to
|
waves.to = 至
|
||||||
waves.boss = Boss
|
waves.boss = 首领(Boos)
|
||||||
waves.preview = Preview
|
waves.preview = 预览
|
||||||
waves.edit = Edit...
|
waves.edit = 编辑...
|
||||||
waves.copy = Copy to Clipboard
|
waves.copy = 复制到剪贴板
|
||||||
waves.load = Load from Clipboard
|
waves.load = 从剪贴板读取
|
||||||
waves.invalid = Invalid waves in clipboard.
|
waves.invalid = 剪贴板中无效的波次信息。
|
||||||
waves.copied = Waves copied.
|
waves.copied = 波次信息已复制。
|
||||||
editor.default = [LIGHT_GRAY]<Default>
|
editor.default = [LIGHT_GRAY]<默认>
|
||||||
edit = Edit...
|
edit = 编辑...
|
||||||
editor.name = 名字:
|
editor.name = 名称:
|
||||||
editor.teams = 团队
|
editor.teams = 队伍
|
||||||
editor.elevation = 高度
|
editor.elevation = 高度
|
||||||
editor.errorload = Error loading file:\n[accent]{0}
|
editor.errorload = 读取文件时出现错误:\n[accent]{0}
|
||||||
editor.errorsave = Error saving file:\n[accent]{0}
|
editor.errorsave = 保存文件时出现错误:\n[accent]{0}
|
||||||
editor.errorname = Map has no name defined.
|
editor.errorname = 地图没有被定义的名称。
|
||||||
editor.update = Update
|
editor.update = 更新(Update)
|
||||||
editor.randomize = Randomize
|
editor.randomize = 随机化
|
||||||
editor.apply = Apply
|
editor.apply = 应用
|
||||||
editor.generate = 生成
|
editor.generate = 生成
|
||||||
editor.resize = 调整
|
editor.resize = 调整大小
|
||||||
editor.loadmap = 载入地图
|
editor.loadmap = 载入地图
|
||||||
editor.savemap = 保存地图
|
editor.savemap = 保存地图
|
||||||
editor.saved = 已保存!
|
editor.saved = 已保存!
|
||||||
editor.save.noname = 你的地图还没有名字!在“地图信息”菜单里设置一个名字。
|
editor.save.noname = 你的地图没有名字!在“地图信息”菜单里设置一个。
|
||||||
editor.save.overwrite = 你的地图覆盖了一个内建的地图!在“地图信息”菜单里重新设置一个新的名字。
|
editor.save.overwrite = 你的地图覆盖了一个内建的地图!在“地图信息”菜单里重新设置一个不同的名称。
|
||||||
editor.import.exists = [scarlet]无法导入:[] 已经有一个叫 '{0}' 的内建地图存在。
|
editor.import.exists = [scarlet]无法导入:[]名为‘{0}’的内建地图已存在!
|
||||||
editor.import = 导入……
|
editor.import = 导入...
|
||||||
editor.importmap = 导入地图
|
editor.importmap = 导入地图
|
||||||
editor.importmap.description = 导入一个已经存在的地图
|
editor.importmap.description = 导入一个已经存在的地图
|
||||||
editor.importfile = 导入文件
|
editor.importfile = 导入文件
|
||||||
editor.importfile.description = 导入一个外置的地图文件
|
editor.importfile.description = 导入一个外置的地图文件
|
||||||
editor.importimage = 导入地形图像
|
editor.importimage = 导入地形图像
|
||||||
editor.importimage.description = 导入外置地图图像文件
|
editor.importimage.description = 导入一个外置的地图图像文件
|
||||||
editor.export = 导出……
|
editor.export = 导出...
|
||||||
editor.exportfile = 导出文件
|
editor.exportfile = 导出文件
|
||||||
editor.exportfile.description = 导出一个地图文件
|
editor.exportfile.description = 导出一个地图文件
|
||||||
editor.exportimage = 导出一个地形文件
|
editor.exportimage = 导出一个地形文件
|
||||||
editor.exportimage.description = 导出一个地图图像文件
|
editor.exportimage.description = 导出一个地图图像文件
|
||||||
editor.loadimage = 导入地形
|
editor.loadimage = 导入地形
|
||||||
editor.saveimage = 导出地形
|
editor.saveimage = 导出地形
|
||||||
editor.unsaved = [scarlet]你有未保存的更改![]\n确定要退出?
|
editor.unsaved = [scarlet]你有未保存的更改![]\n你确定你想要要退出?
|
||||||
editor.resizemap = 调整地图
|
editor.resizemap = 调整地图大小
|
||||||
editor.mapname = 地图名字:
|
editor.mapname = 地图名称:
|
||||||
editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图。
|
editor.overwrite = [accent]警告!\n这将会覆盖一个已经存在的地图。
|
||||||
editor.overwrite.confirm = [scarlet]警告![] 存在同名地图,确定要覆盖?
|
editor.overwrite.confirm = [scarlet]警告![]存在同名地图。你确定你想要覆盖?
|
||||||
editor.selectmap = 选择一个地图加载:
|
editor.selectmap = 选择一个地图加载:
|
||||||
filters.empty = [LIGHT_GRAY]No filters! Add one with the button below.
|
filters.empty = [LIGHT_GRAY]没有过滤器(filters)!用下方的按钮添加一个。
|
||||||
filter.distort = Distort
|
filter.distort = 扭曲?(Distort)
|
||||||
filter.noise = Noise
|
filter.noise = 噪音(Noise)
|
||||||
filter.ore = Ore
|
filter.ore = 矿石(Ore)
|
||||||
filter.rivernoise = River Noise
|
filter.rivernoise = 河流噪音(River Noise)
|
||||||
filter.scatter = Scatter
|
filter.scatter = 散播(Scatter)
|
||||||
filter.terrain = Terrain
|
filter.terrain = 地形(Terrain)
|
||||||
filter.option.scale = Scale
|
filter.option.scale = 规模?(Scale)
|
||||||
filter.option.chance = Chance
|
filter.option.chance = 机会(Chance)
|
||||||
filter.option.mag = Magnitude
|
filter.option.mag = 大小?(Magnitude)
|
||||||
filter.option.threshold = Threshold
|
filter.option.threshold = 门槛?(Threshold)
|
||||||
filter.option.circle-scale = Circle Scale
|
filter.option.circle-scale = 圈规模?(Circle Scale)
|
||||||
filter.option.octaves = Octaves
|
filter.option.octaves = 八度?(Octaves)
|
||||||
filter.option.falloff = Falloff
|
filter.option.falloff = 减少?(Falloff)
|
||||||
filter.option.block = Block
|
filter.option.block = 方块
|
||||||
filter.option.floor = Floor
|
filter.option.floor = 地面
|
||||||
filter.option.wall = Wall
|
filter.option.wall = 墙
|
||||||
filter.option.ore = Ore
|
filter.option.ore = 矿石
|
||||||
filter.option.floor2 = Secondary Floor
|
filter.option.floor2 = 第二地面?(Secondary Floor)
|
||||||
filter.option.threshold2 = Secondary Threshold
|
filter.option.threshold2 = 第二门槛?(Secondary Threshold)
|
||||||
width = 宽度:
|
width = 宽度:
|
||||||
height = 高度:
|
height = 高度:
|
||||||
menu = 菜单
|
menu = 菜单
|
||||||
@@ -280,7 +281,7 @@ tutorial = 教程
|
|||||||
editor = 编辑器
|
editor = 编辑器
|
||||||
mapeditor = 地图编辑器
|
mapeditor = 地图编辑器
|
||||||
donate = 捐赠
|
donate = 捐赠
|
||||||
abandon = Abandon
|
abandon = 放弃
|
||||||
abandon.text = 这个区域和它的所有资源会被敌人没收.
|
abandon.text = 这个区域和它的所有资源会被敌人没收.
|
||||||
locked = 已被锁定
|
locked = 已被锁定
|
||||||
complete = [LIGHT_GRAY]完成:
|
complete = [LIGHT_GRAY]完成:
|
||||||
@@ -300,7 +301,7 @@ zone.requirement.complete = Wave {0} reached:\n{1} zone requirements met.
|
|||||||
zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
|
zone.config.complete = Wave {0} reached:\nLoadout config unlocked.
|
||||||
zone.resources = 已被发现的资源:
|
zone.resources = 已被发现的资源:
|
||||||
add = Add...
|
add = Add...
|
||||||
boss.health = Boss Health
|
boss.health = Boss 生命值
|
||||||
connectfail = [crimson]服务器连接失败: [accent]{0}
|
connectfail = [crimson]服务器连接失败: [accent]{0}
|
||||||
error.unreachable = 服务器无法访问。
|
error.unreachable = 服务器无法访问。
|
||||||
error.invalidaddress = 地址无效。
|
error.invalidaddress = 地址无效。
|
||||||
@@ -335,34 +336,30 @@ no = 不
|
|||||||
info.title = [accent]详情
|
info.title = [accent]详情
|
||||||
error.title = [crimson]发生了一个错误
|
error.title = [crimson]发生了一个错误
|
||||||
error.crashtitle = 发生了一个错误
|
error.crashtitle = 发生了一个错误
|
||||||
blocks.outputspeed = 挖掘速度: {0}/s
|
blocks.input = Input
|
||||||
blocks.efficiency = 效率: {0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = 方块详情
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = 能量: {0}
|
|
||||||
blocks.poweroutput = 能量输出: {0}
|
|
||||||
blocks.powercapacity = 能量容量
|
blocks.powercapacity = 能量容量
|
||||||
blocks.powershot = 能量/发射
|
blocks.powershot = 能量/发射
|
||||||
blocks.targetsair = 攻击空中单位
|
blocks.targetsair = 攻击空中单位
|
||||||
blocks.targetsground = 攻击地面单位
|
blocks.targetsground = 攻击地面单位
|
||||||
blocks.items = 物体: {0}
|
|
||||||
blocks.itemsmoved = 移动速度
|
blocks.itemsmoved = 移动速度
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = 发射间隔时间
|
||||||
blocks.shootrange = 范围
|
blocks.shootrange = 范围
|
||||||
blocks.size = 尺寸
|
blocks.size = 尺寸
|
||||||
blocks.liquidcapacity = 液体容量
|
blocks.liquidcapacity = 液体容量
|
||||||
blocks.maxitemssecond = 最大物品数量
|
|
||||||
blocks.powerrange = 能量范围
|
blocks.powerrange = 能量范围
|
||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 能量使用
|
||||||
blocks.powerdamage = 功率/损伤
|
blocks.powerdamage = 功率/损伤
|
||||||
blocks.inputitemcapacity = 最大输入
|
|
||||||
blocks.outputitemcapacity = 最大输出
|
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
blocks.basepowergeneration = 基础能源输出
|
blocks.basepowergeneration = 基础能源输出
|
||||||
blocks.powertransferspeed = 能量传输
|
blocks.powertransferspeed = 能量传输
|
||||||
blocks.craftspeed = 生产速度
|
blocks.craftspeed = 生产速度
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.productiontime = 生产时间
|
||||||
blocks.range = Range
|
blocks.repairtime = 方块完全修复时间
|
||||||
|
blocks.speedincrease = 提速
|
||||||
|
blocks.range = 范围
|
||||||
blocks.inputliquid = 液体输入
|
blocks.inputliquid = 液体输入
|
||||||
blocks.inputliquidaux = 辅助液体
|
blocks.inputliquidaux = 辅助液体
|
||||||
blocks.inputitem = 物品输入
|
blocks.inputitem = 物品输入
|
||||||
@@ -370,19 +367,10 @@ blocks.inputitems = 物品输入
|
|||||||
blocks.outputitem = 物品输出
|
blocks.outputitem = 物品输出
|
||||||
blocks.drilltier = 可钻探矿物
|
blocks.drilltier = 可钻探矿物
|
||||||
blocks.drillspeed = 基础钻探速度
|
blocks.drillspeed = 基础钻探速度
|
||||||
|
blocks.boosteffect = 加成影响
|
||||||
blocks.maxunits = 最大单位数量
|
blocks.maxunits = 最大单位数量
|
||||||
blocks.liquidoutput = 液体输出
|
|
||||||
blocks.liquidoutputspeed = 液体输出速度
|
|
||||||
blocks.liquiduse = 液体使用速度
|
|
||||||
blocks.coolant = 冷却剂
|
|
||||||
blocks.liquid = 液体
|
|
||||||
blocks.coolantuse = 冷却剂使用速度
|
|
||||||
blocks.inputliquidfuel = 液体燃料输入
|
|
||||||
blocks.liquidfueluse = 液体燃料使用速度
|
|
||||||
blocks.boostitem = 强化物件
|
|
||||||
blocks.boostliquid = 强化液体
|
|
||||||
blocks.health = 生命值
|
blocks.health = 生命值
|
||||||
blocks.heat = Heat
|
blocks.heat = 热量
|
||||||
blocks.power = 电力
|
blocks.power = 电力
|
||||||
blocks.progress = 制造进度
|
blocks.progress = 制造进度
|
||||||
blocks.spawned = 单位数量: {0}/{1}
|
blocks.spawned = 单位数量: {0}/{1}
|
||||||
@@ -390,22 +378,29 @@ blocks.power.satisfaction = 电力输入
|
|||||||
blocks.inaccuracy = 误差
|
blocks.inaccuracy = 误差
|
||||||
blocks.shots = 发射数
|
blocks.shots = 发射数
|
||||||
blocks.reload = 重新装弹
|
blocks.reload = 重新装弹
|
||||||
blocks.inputfuel = 燃料
|
|
||||||
blocks.fuelburntime = 燃料燃烧时间
|
|
||||||
blocks.inputcapacity = 输入容量
|
|
||||||
blocks.outputcapacity = 输出容量
|
|
||||||
blocks.ammo = 子弹
|
blocks.ammo = 子弹
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bar.drillspeed = 挖掘速度: {0}/s
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bar.efficiency = 效率: {0}%
|
||||||
bullet.incendiary = [stat]incendiary
|
bar.powerbalance = 能量: {0}
|
||||||
bullet.homing = [stat]homing
|
bar.poweramount = Power: {0}
|
||||||
bullet.shock = [stat]shock
|
bar.poweroutput = 能量输出: {0}
|
||||||
bullet.frag = [stat]frag
|
bar.items = 物体: {0}
|
||||||
bullet.knockback = [stat]{0}[lightgray] knockback
|
bar.liquid = 液体
|
||||||
bullet.freezing = [stat]freezing
|
bar.heat = Heat
|
||||||
bullet.tarred = [stat]tarred
|
bar.power = 电力
|
||||||
bullet.multiplier = [stat]{0}[lightgray]x ammo multiplier
|
bar.progress = 制造进度
|
||||||
bullet.reload = [stat]{0}[lightgray]x reload
|
bar.spawned = 单位数量: {0}/{1}
|
||||||
|
bullet.damage = [stat]{0}[lightgray] 伤害
|
||||||
|
bullet.splashdamage = [stat]{0}[lightgray] 范围伤害 ~[stat] {1}[lightgray] 格
|
||||||
|
bullet.incendiary = [stat] 燃烧
|
||||||
|
bullet.homing = [stat] 追踪
|
||||||
|
bullet.shock = [stat] 击晕
|
||||||
|
bullet.frag = [stat] 分裂
|
||||||
|
bullet.knockback = [stat]{0}[lightgray] 击退
|
||||||
|
bullet.freezing = [stat] 冰冻
|
||||||
|
bullet.tarred = [stat] 减速
|
||||||
|
bullet.multiplier = [stat]{0}[lightgray]x 子弹数量
|
||||||
|
bullet.reload = [stat]{0}[lightgray]x 装弹
|
||||||
unit.blocks = 方块
|
unit.blocks = 方块
|
||||||
unit.powersecond = 能量单位/秒
|
unit.powersecond = 能量单位/秒
|
||||||
unit.liquidsecond = 液体单位/秒
|
unit.liquidsecond = 液体单位/秒
|
||||||
@@ -414,6 +409,9 @@ unit.liquidunits = 液体单位
|
|||||||
unit.powerunits = 能量单位
|
unit.powerunits = 能量单位
|
||||||
unit.degrees = 度
|
unit.degrees = 度
|
||||||
unit.seconds = 秒
|
unit.seconds = 秒
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = 物品
|
unit.items = 物品
|
||||||
category.general = 普通
|
category.general = 普通
|
||||||
category.power = 能量
|
category.power = 能量
|
||||||
@@ -422,10 +420,10 @@ category.items = 物品
|
|||||||
category.crafting = 制造
|
category.crafting = 制造
|
||||||
category.shooting = 发射
|
category.shooting = 发射
|
||||||
category.optional = 可选的增强物品
|
category.optional = 可选的增强物品
|
||||||
setting.landscape.name = 锁定地形
|
setting.landscape.name = 锁定横屏
|
||||||
setting.shadows.name = 影子
|
setting.shadows.name = 影子
|
||||||
setting.animatedwater.name = 流动的水
|
setting.animatedwater.name = 流动的水
|
||||||
setting.antialias.name = Antialias[LIGHT_GRAY] (requires restart)[]
|
setting.antialias.name = 抗锯齿[LIGHT_GRAY] (需要重新启动)[]
|
||||||
setting.indicators.name = 队友指示器
|
setting.indicators.name = 队友指示器
|
||||||
setting.autotarget.name = 自动发射
|
setting.autotarget.name = 自动发射
|
||||||
setting.fpscap.name = 最高 FPS
|
setting.fpscap.name = 最高 FPS
|
||||||
@@ -444,10 +442,11 @@ setting.sensitivity.name = 控制器灵敏度
|
|||||||
setting.saveinterval.name = 自动保存间隔
|
setting.saveinterval.name = 自动保存间隔
|
||||||
setting.seconds = {0} 秒
|
setting.seconds = {0} 秒
|
||||||
setting.fullscreen.name = 全屏
|
setting.fullscreen.name = 全屏
|
||||||
setting.borderless.name = Borderless Window
|
setting.borderless.name = 无边界
|
||||||
setting.fps.name = 显示 FPS
|
setting.fps.name = 显示 FPS
|
||||||
setting.vsync.name = 帧同步
|
setting.vsync.name = 帧同步
|
||||||
setting.lasers.name = 显示能量射线
|
setting.lasers.name = 显示能量射线
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = 显示小地图
|
setting.minimap.name = 显示小地图
|
||||||
setting.musicvol.name = 音乐音量
|
setting.musicvol.name = 音乐音量
|
||||||
setting.mutemusic.name = 静音
|
setting.mutemusic.name = 静音
|
||||||
@@ -491,7 +490,7 @@ keybind.drop_unit.name = 掉落单位
|
|||||||
keybind.zoom_minimap.name = 小地图缩放
|
keybind.zoom_minimap.name = 小地图缩放
|
||||||
mode.help.title = 模式说明
|
mode.help.title = 模式说明
|
||||||
mode.survival.name = 生存
|
mode.survival.name = 生存
|
||||||
mode.survival.description = 正常的游戏模式,有限的资源和自动入射波。
|
mode.survival.description = 正常的游戏模式,有限的资源和自动波次。
|
||||||
mode.sandbox.name = 沙盒
|
mode.sandbox.name = 沙盒
|
||||||
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
mode.sandbox.description = 无限的资源,不会自动生成敌人。
|
||||||
mode.freebuild.name = 自由建造
|
mode.freebuild.name = 自由建造
|
||||||
@@ -499,19 +498,19 @@ mode.freebuild.description = 有限的资源,不会自动生成敌人。
|
|||||||
mode.pvp.name = PvP
|
mode.pvp.name = PvP
|
||||||
mode.pvp.description = 和本地玩家对战.
|
mode.pvp.description = 和本地玩家对战.
|
||||||
mode.attack.name = 攻击
|
mode.attack.name = 攻击
|
||||||
mode.attack.description = 没有波数,但是有吹毁敌人基地的任务.
|
mode.attack.description = 没有波数,但是有摧毁敌人基地的任务.
|
||||||
mode.custom = Custom Rules
|
mode.custom = 自定义模式
|
||||||
rules.infiniteresources = Infinite Resources
|
rules.infiniteresources = 无限资源
|
||||||
rules.wavetimer = Wave Timer
|
rules.wavetimer = 波次计时器
|
||||||
rules.waves = Waves
|
rules.waves = 波次
|
||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = AI无限资源
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = 敌人出生点
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = 敌对核心非建设区半径:[LIGHT_GRAY](格)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = 重生时间:[LIGHT_GRAY](秒)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = 波次间隔时间:[LIGHT_GRAY](秒)
|
||||||
rules.buildcostmultiplier = Build Cost Multiplier
|
rules.buildcostmultiplier = 建设花费倍数
|
||||||
rules.buildspeedmultiplier = Build Speed Multiplier
|
rules.buildspeedmultiplier = 建设时间倍数
|
||||||
content.item.name = 物品
|
content.item.name = 物品
|
||||||
content.liquid.name = 液体
|
content.liquid.name = 液体
|
||||||
content.unit.name = 部队
|
content.unit.name = 部队
|
||||||
@@ -568,7 +567,7 @@ mech.omega-mech.name = 欧米茄
|
|||||||
mech.omega-mech.weapon = 导弹群
|
mech.omega-mech.weapon = 导弹群
|
||||||
mech.omega-mech.ability = 配置装甲
|
mech.omega-mech.ability = 配置装甲
|
||||||
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达 90% 的伤害。
|
mech.omega-mech.description = 一种装甲厚重的机甲,用于在前线攻击。它的护甲可以阻挡高达 90% 的伤害。
|
||||||
mech.dart-ship.name = 沉思者
|
mech.dart-ship.name = 飞镖
|
||||||
mech.dart-ship.weapon = 机枪
|
mech.dart-ship.weapon = 机枪
|
||||||
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度快。
|
mech.dart-ship.description = 标准飞船。快速轻便,但攻击能力低,采矿速度快。
|
||||||
mech.javelin-ship.name = 标枪
|
mech.javelin-ship.name = 标枪
|
||||||
@@ -592,6 +591,7 @@ mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]采矿速度:{0}
|
mech.minespeed = [LIGHT_GRAY]采矿速度:{0}
|
||||||
mech.minepower = [LIGHT_GRAY]采矿力量:{0}
|
mech.minepower = [LIGHT_GRAY]采矿力量:{0}
|
||||||
mech.ability = [LIGHT_GRAY]能力:{0}
|
mech.ability = [LIGHT_GRAY]能力:{0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]建造速度:{0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]热容量:{0}
|
liquid.heatcapacity = [LIGHT_GRAY]热容量:{0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]粘度:{0}
|
liquid.viscosity = [LIGHT_GRAY]粘度:{0}
|
||||||
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
||||||
@@ -616,7 +616,7 @@ block.kiln.name = 熔炉
|
|||||||
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
|
block.kiln.description = 将铅和沙子熔炼成钢化玻璃,需要少量电力。
|
||||||
block.graphite-press.name = 石墨压缩机
|
block.graphite-press.name = 石墨压缩机
|
||||||
block.multi-press.name = 大型石墨压缩机
|
block.multi-press.name = 大型石墨压缩机
|
||||||
block.constructing = {0}\n[LIGHT_GRAY](Constructing)
|
block.constructing = {0}\n[LIGHT_GRAY](建造中)
|
||||||
block.spawn.name = 敌人出生点
|
block.spawn.name = 敌人出生点
|
||||||
block.core-shard.name = 小型核心
|
block.core-shard.name = 小型核心
|
||||||
block.core-foundation.name = 中型核心
|
block.core-foundation.name = 中型核心
|
||||||
@@ -700,7 +700,7 @@ block.pneumatic-drill.name = 气动钻头
|
|||||||
block.laser-drill.name = 激光钻头
|
block.laser-drill.name = 激光钻头
|
||||||
block.water-extractor.name = 抽水机
|
block.water-extractor.name = 抽水机
|
||||||
block.cultivator.name = 耕种机
|
block.cultivator.name = 耕种机
|
||||||
block.alpha-dart-mech-pad.name = 阿尔法-沉思者 机甲平台
|
block.alpha-dart-mech-pad.name = 阿尔法-飞镖 机甲平台
|
||||||
block.delta-mech-pad.name = 德尔塔 机甲平台
|
block.delta-mech-pad.name = 德尔塔 机甲平台
|
||||||
block.javelin-ship-pad.name = 标枪 机甲平台
|
block.javelin-ship-pad.name = 标枪 机甲平台
|
||||||
block.trident-ship-pad.name = 三叉戟 机甲平台
|
block.trident-ship-pad.name = 三叉戟 机甲平台
|
||||||
@@ -767,7 +767,7 @@ block.meltdown.name = 熔毁
|
|||||||
block.container.name = 容器
|
block.container.name = 容器
|
||||||
block.launch-pad.name = 发射台
|
block.launch-pad.name = 发射台
|
||||||
block.launch-pad.description = 不通过核心发射物体。尚未完成。
|
block.launch-pad.description = 不通过核心发射物体。尚未完成。
|
||||||
block.launch-pad-large.name = Large Launch Pad
|
block.launch-pad-large.name = 大型发射台
|
||||||
team.blue.name = 蓝
|
team.blue.name = 蓝
|
||||||
team.red.name = 红
|
team.red.name = 红
|
||||||
team.orange.name = 橙
|
team.orange.name = 橙
|
||||||
@@ -790,7 +790,7 @@ unit.wraith.description = 一种快速,打了就跑的截击机。
|
|||||||
unit.fortress.name = 堡垒
|
unit.fortress.name = 堡垒
|
||||||
unit.fortress.description = 一种重炮地面部队。
|
unit.fortress.description = 一种重炮地面部队。
|
||||||
unit.revenant.name = 亡魂
|
unit.revenant.name = 亡魂
|
||||||
unit.eruptor.name = 爆发者
|
unit.eruptor.name = 暴君
|
||||||
unit.chaos-array.name = 混沌者
|
unit.chaos-array.name = 混沌者
|
||||||
unit.eradicator.name = 根除者
|
unit.eradicator.name = 根除者
|
||||||
unit.lich.name = 尸鬼
|
unit.lich.name = 尸鬼
|
||||||
@@ -831,7 +831,7 @@ block.overdrive-projector.description = 提高附近建筑物的速度,如钻
|
|||||||
block.force-projector.description = 自身周围创建一个六边形力场,保护建筑物和内部单位免受子弹的伤害。
|
block.force-projector.description = 自身周围创建一个六边形力场,保护建筑物和内部单位免受子弹的伤害。
|
||||||
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
block.shock-mine.description = 伤害踩到它的敌人。敌人几乎看不到它。
|
||||||
block.duo.description = 小而便宜的炮塔。
|
block.duo.description = 小而便宜的炮塔。
|
||||||
block.scatter.description = 中型防空炮塔,向空中单位发射铅或废料。.
|
block.scatter.description = 中型防空炮塔,向空中单位发射铅或废料。
|
||||||
block.arc.description = 小型炮塔,发射电弧。
|
block.arc.description = 小型炮塔,发射电弧。
|
||||||
block.hail.description = 小型炮兵炮台。
|
block.hail.description = 小型炮兵炮台。
|
||||||
block.lancer.description = 中型炮塔,发射带电的电子束。
|
block.lancer.description = 中型炮塔,发射带电的电子束。
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ addplayers = 增加/移除玩家
|
|||||||
customgame = 自訂遊戲
|
customgame = 自訂遊戲
|
||||||
newgame = 新遊戲
|
newgame = 新遊戲
|
||||||
none = 〈沒有〉
|
none = 〈沒有〉
|
||||||
|
minimap = Minimap
|
||||||
close = 關閉
|
close = 關閉
|
||||||
quit = 退出
|
quit = 退出
|
||||||
maps = 地圖
|
maps = 地圖
|
||||||
@@ -335,66 +336,48 @@ no = 否
|
|||||||
info.title = [accent]資訊
|
info.title = [accent]資訊
|
||||||
error.title = [crimson]發生錯誤
|
error.title = [crimson]發生錯誤
|
||||||
error.crashtitle = 發生錯誤
|
error.crashtitle = 發生錯誤
|
||||||
blocks.outputspeed = 鑽頭速度:{0}/秒
|
blocks.input = Input
|
||||||
blocks.efficiency = 效率:{0}%
|
blocks.output = Output
|
||||||
blocks.unknown = [LIGHT_GRAY]???
|
blocks.booster = Booster
|
||||||
blocks.blockinfo = 方塊資訊
|
block.unknown = [LIGHT_GRAY]???
|
||||||
blocks.powerbalance = 能量變化:{0}
|
|
||||||
blocks.poweroutput = 能量輸出:{0}
|
|
||||||
blocks.powercapacity = 蓄電量
|
blocks.powercapacity = 蓄電量
|
||||||
blocks.powershot = 能量/射擊
|
blocks.powershot = 能量/射擊
|
||||||
blocks.targetsair = 攻擊空中目標
|
blocks.targetsair = 攻擊空中目標
|
||||||
blocks.targetsground = 攻擊地面
|
blocks.targetsground = 攻擊地面
|
||||||
blocks.items = 物品:{0}
|
|
||||||
blocks.itemsmoved = 移動速度
|
blocks.itemsmoved = 移動速度
|
||||||
blocks.launchtime = Time Between Launches
|
blocks.launchtime = Time Between Launches
|
||||||
blocks.shootrange = 範圍
|
blocks.shootrange = 範圍
|
||||||
blocks.size = 尺寸
|
blocks.size = 尺寸
|
||||||
blocks.liquidcapacity = 液體容量
|
blocks.liquidcapacity = 液體容量
|
||||||
blocks.maxitemssecond = 最高產量
|
|
||||||
blocks.powerrange = 輸出範圍
|
blocks.powerrange = 輸出範圍
|
||||||
blocks.poweruse = 能量使用
|
blocks.poweruse = 能量使用
|
||||||
blocks.powerdamage = 能量/傷害
|
blocks.powerdamage = 能量/傷害
|
||||||
blocks.inputitemcapacity = 最大輸入
|
|
||||||
blocks.outputitemcapacity = 最大輸出
|
|
||||||
blocks.itemcapacity = 物品容量
|
blocks.itemcapacity = 物品容量
|
||||||
blocks.basepowergeneration = 基本能量生产
|
blocks.basepowergeneration = 基本能量生产
|
||||||
blocks.powertransferspeed = 能量傳輸
|
blocks.productiontime = Production Time
|
||||||
blocks.craftspeed = 產生速度
|
|
||||||
blocks.repairtime = Block Full Repair Time
|
blocks.repairtime = Block Full Repair Time
|
||||||
|
blocks.speedincrease = Speed Increase
|
||||||
blocks.range = Range
|
blocks.range = Range
|
||||||
blocks.inputliquid = 輸入液體
|
|
||||||
blocks.inputliquidaux = 輔助液體
|
|
||||||
blocks.inputitem = 輸入物品
|
|
||||||
blocks.inputitems = 輸入物品
|
|
||||||
blocks.outputitem = 輸出物品
|
|
||||||
blocks.drilltier = 可鑽取礦物
|
blocks.drilltier = 可鑽取礦物
|
||||||
blocks.drillspeed = 基本鑽取速度
|
blocks.drillspeed = 基本鑽取速度
|
||||||
|
blocks.boosteffect = Boost Effect
|
||||||
blocks.maxunits = 最大活躍單位
|
blocks.maxunits = 最大活躍單位
|
||||||
blocks.liquidoutput = 輸出液體
|
|
||||||
blocks.liquidoutputspeed = 輸出液體速度
|
|
||||||
blocks.liquiduse = 使用液體速度
|
|
||||||
blocks.coolant = 冷卻劑
|
|
||||||
blocks.liquid = 液體
|
|
||||||
blocks.coolantuse = 使用冷卻劑
|
|
||||||
blocks.inputliquidfuel = 輸入液體燃料
|
|
||||||
blocks.liquidfueluse = 使用液體燃料速度
|
|
||||||
blocks.boostitem = 強化物品
|
|
||||||
blocks.boostliquid = 強化液體
|
|
||||||
blocks.health = 耐久度
|
blocks.health = 耐久度
|
||||||
blocks.heat = 熱
|
|
||||||
blocks.power = 能量
|
|
||||||
blocks.progress = 建造進度
|
|
||||||
blocks.spawned = 單位:{0}/{1}
|
|
||||||
blocks.power.satisfaction = 能量滿意度
|
|
||||||
blocks.inaccuracy = 誤差
|
blocks.inaccuracy = 誤差
|
||||||
blocks.shots = 射擊數
|
blocks.shots = 射擊數
|
||||||
blocks.reload = 重裝彈藥
|
blocks.reload = 重裝彈藥
|
||||||
blocks.inputfuel = 燃料
|
|
||||||
blocks.fuelburntime = 燃燒燃料時間
|
|
||||||
blocks.inputcapacity = 輸入容量
|
|
||||||
blocks.outputcapacity = 輸出容量
|
|
||||||
blocks.ammo = 彈藥
|
blocks.ammo = 彈藥
|
||||||
|
bar.drillspeed = 鑽頭速度:{0}/秒
|
||||||
|
bar.efficiency = 效率:{0}%
|
||||||
|
bar.powerbalance = 能量變化:{0}
|
||||||
|
bar.poweramount = Power: {0}
|
||||||
|
bar.poweroutput = 能量輸出:{0}
|
||||||
|
bar.items = 物品:{0}
|
||||||
|
bar.liquid = 液體
|
||||||
|
bar.heat = 熱
|
||||||
|
bar.power = 能量
|
||||||
|
bar.progress = 建造進度
|
||||||
|
bar.spawned = 單位:{0}/{1}
|
||||||
bullet.damage = [stat]{0}[lightgray] dmg
|
bullet.damage = [stat]{0}[lightgray] dmg
|
||||||
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles
|
||||||
bullet.incendiary = [stat]incendiary
|
bullet.incendiary = [stat]incendiary
|
||||||
@@ -414,6 +397,9 @@ unit.liquidunits = 液體單位
|
|||||||
unit.powerunits = 能量單位
|
unit.powerunits = 能量單位
|
||||||
unit.degrees = 度
|
unit.degrees = 度
|
||||||
unit.seconds = 秒
|
unit.seconds = 秒
|
||||||
|
unit.persecond = /sec
|
||||||
|
unit.timesspeed = x speed
|
||||||
|
unit.percent = %
|
||||||
unit.items = 物品
|
unit.items = 物品
|
||||||
category.general = 一般
|
category.general = 一般
|
||||||
category.power = 能量
|
category.power = 能量
|
||||||
@@ -425,6 +411,7 @@ category.optional = 可選的強化
|
|||||||
setting.landscape.name = Lock Landscape
|
setting.landscape.name = Lock Landscape
|
||||||
setting.shadows.name = Shadows
|
setting.shadows.name = Shadows
|
||||||
setting.animatedwater.name = 動畫水
|
setting.animatedwater.name = 動畫水
|
||||||
|
setting.animatedshields.name = Animated Shields
|
||||||
setting.antialias.name = 消除鋸齒[LIGHT_GRAY](需要重啟)[]
|
setting.antialias.name = 消除鋸齒[LIGHT_GRAY](需要重啟)[]
|
||||||
setting.indicators.name = 盟友指標
|
setting.indicators.name = 盟友指標
|
||||||
setting.autotarget.name = 自動射擊
|
setting.autotarget.name = 自動射擊
|
||||||
@@ -448,6 +435,7 @@ setting.borderless.name = 無邊框窗口
|
|||||||
setting.fps.name = 顯示FPS
|
setting.fps.name = 顯示FPS
|
||||||
setting.vsync.name = 垂直同步
|
setting.vsync.name = 垂直同步
|
||||||
setting.lasers.name = 顯示雷射光束
|
setting.lasers.name = 顯示雷射光束
|
||||||
|
setting.pixelate.name = Pixelate [LIGHT_GRAY](may decrease performance)
|
||||||
setting.minimap.name = 顯示小地圖
|
setting.minimap.name = 顯示小地圖
|
||||||
setting.musicvol.name = 音樂音量
|
setting.musicvol.name = 音樂音量
|
||||||
setting.mutemusic.name = 靜音
|
setting.mutemusic.name = 靜音
|
||||||
@@ -507,6 +495,9 @@ rules.waves = Waves
|
|||||||
rules.enemyCheat = Infinite AI Resources
|
rules.enemyCheat = Infinite AI Resources
|
||||||
rules.pvp = PvP
|
rules.pvp = PvP
|
||||||
rules.unitdrops = Unit Drops
|
rules.unitdrops = Unit Drops
|
||||||
|
rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier
|
||||||
|
rules.unithealthmultiplier = Unit Health Multiplier
|
||||||
|
rules.playerdamagemultiplier = Player Damage Multiplier
|
||||||
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles)
|
||||||
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec)
|
||||||
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec)
|
||||||
@@ -592,6 +583,7 @@ mech.itemcapacity = [LIGHT_GRAY]物品容量:{0}
|
|||||||
mech.minespeed = [LIGHT_GRAY]採礦速度:{0}
|
mech.minespeed = [LIGHT_GRAY]採礦速度:{0}
|
||||||
mech.minepower = [LIGHT_GRAY]採礦力度:{0}
|
mech.minepower = [LIGHT_GRAY]採礦力度:{0}
|
||||||
mech.ability = [LIGHT_GRAY]能力:{0}
|
mech.ability = [LIGHT_GRAY]能力:{0}
|
||||||
|
mech.buildspeed = [LIGHT_GRAY]Building Speed: {0}%
|
||||||
liquid.heatcapacity = [LIGHT_GRAY]熱容量:{0}
|
liquid.heatcapacity = [LIGHT_GRAY]熱容量:{0}
|
||||||
liquid.viscosity = [LIGHT_GRAY]粘性:{0}
|
liquid.viscosity = [LIGHT_GRAY]粘性:{0}
|
||||||
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
liquid.temperature = [LIGHT_GRAY]温度:{0}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 244 KiB |
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 283 KiB After Width: | Height: | Size: 283 KiB |
|
Before Width: | Height: | Size: 535 KiB After Width: | Height: | Size: 535 KiB |
@@ -36,6 +36,8 @@ public class Vars{
|
|||||||
public static final Charset charset = Charset.forName("UTF-8");
|
public static final Charset charset = Charset.forName("UTF-8");
|
||||||
/**main application name, capitalized*/
|
/**main application name, capitalized*/
|
||||||
public static final String appName = "Mindustry";
|
public static final String appName = "Mindustry";
|
||||||
|
/**URL for itch.io donations.*/
|
||||||
|
public static final String donationURL = "https://anuke.itch.io/mindustry/purchase";
|
||||||
/**URL for discord invite.*/
|
/**URL for discord invite.*/
|
||||||
public static final String discordURL = "https://discord.gg/mindustry";
|
public static final String discordURL = "https://discord.gg/mindustry";
|
||||||
/**URL for Github API for releases*/
|
/**URL for Github API for releases*/
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ public class WaveSpawner{
|
|||||||
}
|
}
|
||||||
Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawn.x * tilesize, spawn.y * tilesize));
|
Time.run(20f, () -> Effects.effect(Fx.spawnShockwave, spawn.x * tilesize, spawn.y * tilesize));
|
||||||
//would be interesting to see player structures survive this without hacks
|
//would be interesting to see player structures survive this without hacks
|
||||||
Time.run(40f, () -> Damage.damage(waveTeam, spawn.x * tilesize, spawn.y * tilesize, shockwaveBase + Mathf.random(shockwaveRand), 99999999f));
|
Time.run(40f, () -> Damage.damage(waveTeam, spawn.x * tilesize, spawn.y * tilesize, shockwaveBase + Mathf.random(shockwaveRand), 99999999f, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,17 @@ package io.anuke.mindustry.content;
|
|||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
import io.anuke.arc.graphics.Color;
|
import io.anuke.arc.graphics.Color;
|
||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
|
import io.anuke.arc.graphics.g2d.Lines;
|
||||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||||
|
import io.anuke.arc.math.Mathf;
|
||||||
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.game.ContentList;
|
import io.anuke.mindustry.game.ContentList;
|
||||||
import io.anuke.mindustry.graphics.CacheLayer;
|
import io.anuke.mindustry.graphics.CacheLayer;
|
||||||
|
import io.anuke.mindustry.graphics.Pal;
|
||||||
|
import io.anuke.mindustry.graphics.Shaders;
|
||||||
import io.anuke.mindustry.type.Category;
|
import io.anuke.mindustry.type.Category;
|
||||||
import io.anuke.mindustry.type.ItemStack;
|
import io.anuke.mindustry.type.ItemStack;
|
||||||
|
import io.anuke.mindustry.type.LiquidStack;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.blocks.*;
|
import io.anuke.mindustry.world.blocks.*;
|
||||||
@@ -24,9 +30,9 @@ import io.anuke.mindustry.world.blocks.storage.Vault;
|
|||||||
import io.anuke.mindustry.world.blocks.units.MechPad;
|
import io.anuke.mindustry.world.blocks.units.MechPad;
|
||||||
import io.anuke.mindustry.world.blocks.units.RepairPoint;
|
import io.anuke.mindustry.world.blocks.units.RepairPoint;
|
||||||
import io.anuke.mindustry.world.blocks.units.UnitFactory;
|
import io.anuke.mindustry.world.blocks.units.UnitFactory;
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeItemFilter;
|
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
|
import io.anuke.mindustry.world.consumers.ConsumeLiquidFilter;
|
||||||
import io.anuke.mindustry.world.meta.Attribute;
|
import io.anuke.mindustry.world.meta.Attribute;
|
||||||
|
import io.anuke.mindustry.world.modules.LiquidModule;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.state;
|
import static io.anuke.mindustry.Vars.state;
|
||||||
import static io.anuke.mindustry.Vars.world;
|
import static io.anuke.mindustry.Vars.world;
|
||||||
@@ -87,6 +93,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
air = new Floor("air"){{
|
air = new Floor("air"){{
|
||||||
alwaysReplace = true;
|
alwaysReplace = true;
|
||||||
|
hasShadow = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(Tile tile){}
|
public void draw(Tile tile){}
|
||||||
@@ -370,7 +377,7 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 150, Items.lead, 60));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 150, Items.lead, 60));
|
||||||
|
|
||||||
craftEffect = Fx.pulverizeMedium;
|
craftEffect = Fx.pulverizeMedium;
|
||||||
output = Items.graphite;
|
outputItem = new ItemStack(Items.graphite, 1);
|
||||||
craftTime = 90f;
|
craftTime = 90f;
|
||||||
size = 2;
|
size = 2;
|
||||||
hasItems = true;
|
hasItems = true;
|
||||||
@@ -382,7 +389,7 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.crafting, ItemStack.with(Items.titanium, 200, Items.silicon, 50, Items.lead, 200, Items.graphite, 100));
|
requirements(Category.crafting, ItemStack.with(Items.titanium, 200, Items.silicon, 50, Items.lead, 200, Items.graphite, 100));
|
||||||
|
|
||||||
craftEffect = Fx.pulverizeMedium;
|
craftEffect = Fx.pulverizeMedium;
|
||||||
output = Items.graphite;
|
outputItem = new ItemStack(Items.graphite, 2);
|
||||||
craftTime = 30f;
|
craftTime = 30f;
|
||||||
size = 3;
|
size = 3;
|
||||||
hasItems = true;
|
hasItems = true;
|
||||||
@@ -390,16 +397,17 @@ public class Blocks implements ContentList{
|
|||||||
hasPower = true;
|
hasPower = true;
|
||||||
|
|
||||||
consumes.power(2f);
|
consumes.power(2f);
|
||||||
consumes.item(Items.coal, 2);
|
consumes.item(Items.coal, 4);
|
||||||
consumes.liquid(Liquids.water, 0.1f);
|
consumes.liquid(Liquids.water, 0.1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
siliconSmelter = new PowerSmelter("silicon-smelter"){{
|
siliconSmelter = new GenericSmelter("silicon-smelter"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50));
|
||||||
craftEffect = Fx.smeltsmoke;
|
craftEffect = Fx.smeltsmoke;
|
||||||
output = Items.silicon;
|
outputItem = new ItemStack(Items.silicon, 1);
|
||||||
craftTime = 40f;
|
craftTime = 40f;
|
||||||
size = 2;
|
size = 2;
|
||||||
|
hasPower = true;
|
||||||
hasLiquids = false;
|
hasLiquids = false;
|
||||||
flameColor = Color.valueOf("ffef99");
|
flameColor = Color.valueOf("ffef99");
|
||||||
|
|
||||||
@@ -407,10 +415,10 @@ public class Blocks implements ContentList{
|
|||||||
consumes.power(0.50f);
|
consumes.power(0.50f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
kiln = new PowerSmelter("kiln"){{
|
kiln = new GenericSmelter("kiln"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 120, Items.graphite, 60, Items.lead, 60));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 120, Items.graphite, 60, Items.lead, 60));
|
||||||
craftEffect = Fx.smeltsmoke;
|
craftEffect = Fx.smeltsmoke;
|
||||||
output = Items.metaglass;
|
outputItem = new ItemStack(Items.metaglass, 1);
|
||||||
craftTime = 30f;
|
craftTime = 30f;
|
||||||
size = 2;
|
size = 2;
|
||||||
hasPower = hasItems = true;
|
hasPower = hasItems = true;
|
||||||
@@ -420,12 +428,12 @@ public class Blocks implements ContentList{
|
|||||||
consumes.power(0.60f);
|
consumes.power(0.60f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
plastaniumCompressor = new PlastaniumCompressor("plastanium-compressor"){{
|
plastaniumCompressor = new GenericCrafter("plastanium-compressor"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160));
|
requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160));
|
||||||
hasItems = true;
|
hasItems = true;
|
||||||
liquidCapacity = 60f;
|
liquidCapacity = 60f;
|
||||||
craftTime = 60f;
|
craftTime = 60f;
|
||||||
output = Items.plastanium;
|
outputItem = new ItemStack(Items.plastanium, 1);
|
||||||
size = 2;
|
size = 2;
|
||||||
health = 320;
|
health = 320;
|
||||||
hasPower = hasLiquids = true;
|
hasPower = hasLiquids = true;
|
||||||
@@ -435,59 +443,135 @@ public class Blocks implements ContentList{
|
|||||||
consumes.liquid(Liquids.oil, 0.25f);
|
consumes.liquid(Liquids.oil, 0.25f);
|
||||||
consumes.power(3f);
|
consumes.power(3f);
|
||||||
consumes.item(Items.titanium, 2);
|
consumes.item(Items.titanium, 2);
|
||||||
|
|
||||||
|
int topRegion = reg("-top");
|
||||||
|
|
||||||
|
drawer = tile -> {
|
||||||
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
|
||||||
|
GenericCrafterEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Draw.alpha(Mathf.absin(entity.totalProgress, 3f, 0.9f) * entity.warmup);
|
||||||
|
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
|
||||||
|
Draw.reset();
|
||||||
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
phaseWeaver = new PhaseWeaver("phase-weaver"){{
|
phaseWeaver = new GenericCrafter("phase-weaver"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.silicon, 260, Items.lead, 240, Items.thorium, 150));
|
requirements(Category.crafting, ItemStack.with(Items.silicon, 260, Items.lead, 240, Items.thorium, 150));
|
||||||
craftEffect = Fx.smeltsmoke;
|
craftEffect = Fx.smeltsmoke;
|
||||||
output = Items.phasefabric;
|
outputItem = new ItemStack(Items.phasefabric, 1);
|
||||||
craftTime = 120f;
|
craftTime = 120f;
|
||||||
size = 2;
|
size = 2;
|
||||||
|
hasPower = true;
|
||||||
|
|
||||||
consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10));
|
consumes.items(new ItemStack(Items.thorium, 4), new ItemStack(Items.sand, 10));
|
||||||
consumes.power(5f);
|
consumes.power(5f);
|
||||||
|
|
||||||
|
int bottomRegion = reg("-bottom"), weaveRegion = reg("-weave");
|
||||||
|
|
||||||
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name)};
|
||||||
|
|
||||||
|
drawer = tile -> {
|
||||||
|
GenericCrafterEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Draw.rect(reg(bottomRegion), tile.drawx(), tile.drawy());
|
||||||
|
|
||||||
|
float progress = 0.5f;
|
||||||
|
|
||||||
|
Shaders.build.region = reg(weaveRegion);
|
||||||
|
Shaders.build.progress = progress;
|
||||||
|
Shaders.build.color.set(Pal.accent);
|
||||||
|
Shaders.build.color.a = entity.warmup;
|
||||||
|
Shaders.build.time = -entity.totalProgress / 10f;
|
||||||
|
|
||||||
|
Draw.shader(Shaders.build, false);
|
||||||
|
Shaders.build.apply();
|
||||||
|
Draw.rect(reg(weaveRegion), tile.drawx(), tile.drawy(), entity.totalProgress);
|
||||||
|
Draw.shader();
|
||||||
|
|
||||||
|
Draw.color(Pal.accent);
|
||||||
|
Draw.alpha(entity.warmup);
|
||||||
|
|
||||||
|
Lines.lineAngleCenter(
|
||||||
|
tile.drawx() + Mathf.sin(entity.totalProgress, 6f, Vars.tilesize / 3f * size),
|
||||||
|
tile.drawy(),
|
||||||
|
90,
|
||||||
|
size * Vars.tilesize / 2f);
|
||||||
|
|
||||||
|
Draw.reset();
|
||||||
|
|
||||||
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
surgeSmelter = new PowerSmelter("alloy-smelter"){{
|
surgeSmelter = new GenericSmelter("alloy-smelter"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 160, Items.thorium, 140));
|
requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 160, Items.thorium, 140));
|
||||||
craftEffect = Fx.smeltsmoke;
|
craftEffect = Fx.smeltsmoke;
|
||||||
output = Items.surgealloy;
|
outputItem = new ItemStack(Items.surgealloy, 1);
|
||||||
craftTime = 75f;
|
craftTime = 75f;
|
||||||
size = 3;
|
size = 3;
|
||||||
|
hasPower = true;
|
||||||
|
|
||||||
consumes.power(4f);
|
consumes.power(4f);
|
||||||
consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3));
|
consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
cryofluidMixer = new LiquidMixer("cryofluidmixer"){{
|
cryofluidMixer = new LiquidConverter("cryofluidmixer"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90));
|
requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90));
|
||||||
outputLiquid = Liquids.cryofluid;
|
outputLiquid = new LiquidStack(Liquids.cryofluid, 0.1f);
|
||||||
liquidPerItem = 50f;
|
craftTime = 60f;
|
||||||
size = 2;
|
size = 2;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
|
hasItems = true;
|
||||||
|
hasLiquids = true;
|
||||||
|
rotate = false;
|
||||||
|
solid = true;
|
||||||
|
outputsLiquid = true;
|
||||||
|
|
||||||
consumes.power(1f);
|
consumes.power(1f);
|
||||||
consumes.item(Items.titanium);
|
consumes.item(Items.titanium);
|
||||||
consumes.liquid(Liquids.water, 0.3f);
|
consumes.liquid(Liquids.water, 0.1f);
|
||||||
|
|
||||||
|
int liquidRegion = reg("-liquid"), topRegion = reg("-top"), bottomRegion = reg("-bottom");
|
||||||
|
|
||||||
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name + "-top")};
|
||||||
|
|
||||||
|
drawer = tile -> {
|
||||||
|
LiquidModule mod = tile.entity.liquids;
|
||||||
|
|
||||||
|
int rotation = rotate ? tile.getRotation() * 90 : 0;
|
||||||
|
|
||||||
|
Draw.rect(reg(bottomRegion), tile.drawx(), tile.drawy(), rotation);
|
||||||
|
|
||||||
|
if(mod.total() > 0.001f){
|
||||||
|
Draw.color(outputLiquid.liquid.color);
|
||||||
|
Draw.alpha(mod.get(outputLiquid.liquid) / liquidCapacity);
|
||||||
|
Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy(), rotation);
|
||||||
|
Draw.color();
|
||||||
|
}
|
||||||
|
|
||||||
|
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy(), rotation);
|
||||||
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
blastMixer = new GenericCrafter("blast-mixer"){{
|
blastMixer = new GenericCrafter("blast-mixer"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.lead, 60, Items.titanium, 40));
|
requirements(Category.crafting, ItemStack.with(Items.lead, 60, Items.titanium, 40));
|
||||||
hasItems = true;
|
hasItems = true;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
output = Items.blastCompound;
|
outputItem = new ItemStack(Items.blastCompound, 1);
|
||||||
size = 2;
|
size = 2;
|
||||||
|
|
||||||
consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.sporePod, 1));
|
consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.sporePod, 1));
|
||||||
consumes.power(0.40f);
|
consumes.power(0.40f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
pyratiteMixer = new PowerSmelter("pyratite-mixer"){{
|
pyratiteMixer = new GenericSmelter("pyratite-mixer"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 100, Items.lead, 50));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 100, Items.lead, 50));
|
||||||
flameColor = Color.CLEAR;
|
flameColor = Color.CLEAR;
|
||||||
hasItems = true;
|
hasItems = true;
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
output = Items.pyratite;
|
outputItem = new ItemStack(Items.pyratite, 1);
|
||||||
|
|
||||||
size = 2;
|
size = 2;
|
||||||
|
|
||||||
@@ -495,11 +579,10 @@ public class Blocks implements ContentList{
|
|||||||
consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2));
|
consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
melter = new PowerCrafter("melter"){{
|
melter = new GenericCrafter("melter"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 70, Items.graphite, 90));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 70, Items.graphite, 90));
|
||||||
health = 200;
|
health = 200;
|
||||||
outputLiquid = Liquids.slag;
|
outputLiquid = new LiquidStack(Liquids.slag, 2f);
|
||||||
outputLiquidAmount = 2f;
|
|
||||||
craftTime = 10f;
|
craftTime = 10f;
|
||||||
hasLiquids = hasPower = true;
|
hasLiquids = hasPower = true;
|
||||||
|
|
||||||
@@ -516,7 +599,7 @@ public class Blocks implements ContentList{
|
|||||||
Items.titanium, 2
|
Items.titanium, 2
|
||||||
);
|
);
|
||||||
hasPower = true;
|
hasPower = true;
|
||||||
filterTime = 35f;
|
craftTime = 35f;
|
||||||
spinnerLength = 1.5f;
|
spinnerLength = 1.5f;
|
||||||
spinnerRadius = 3.5f;
|
spinnerRadius = 3.5f;
|
||||||
spinnerThickness = 1.5f;
|
spinnerThickness = 1.5f;
|
||||||
@@ -529,7 +612,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
cultivator = new Cultivator("cultivator"){{
|
cultivator = new Cultivator("cultivator"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 20, Items.lead, 50, Items.silicon, 20));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 20, Items.lead, 50, Items.silicon, 20));
|
||||||
output = Items.sporePod;
|
outputItem = new ItemStack(Items.sporePod, 1);
|
||||||
craftTime = 160;
|
craftTime = 160;
|
||||||
size = 2;
|
size = 2;
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
@@ -540,23 +623,45 @@ public class Blocks implements ContentList{
|
|||||||
consumes.liquid(Liquids.water, 0.15f);
|
consumes.liquid(Liquids.water, 0.15f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sporePress = new Compressor("spore-press"){{
|
sporePress = new GenericCrafter("spore-press"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.lead, 70, Items.silicon, 60));
|
requirements(Category.crafting, ItemStack.with(Items.lead, 70, Items.silicon, 60));
|
||||||
liquidCapacity = 60f;
|
liquidCapacity = 60f;
|
||||||
craftTime = 20f;
|
craftTime = 20f;
|
||||||
outputLiquid = Liquids.oil;
|
outputLiquid = new LiquidStack(Liquids.oil, 6f);
|
||||||
outputLiquidAmount = 4f;
|
|
||||||
size = 2;
|
size = 2;
|
||||||
health = 320;
|
health = 320;
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
|
hasPower = true;
|
||||||
|
craftEffect = Fx.none;
|
||||||
|
|
||||||
consumes.item(Items.sporePod, 1);
|
consumes.item(Items.sporePod, 1);
|
||||||
consumes.power(0.60f);
|
consumes.power(0.60f);
|
||||||
|
|
||||||
|
int[] frameRegions = new int[3];
|
||||||
|
for(int i = 0; i < 3; i++){
|
||||||
|
frameRegions[i] = reg("-frame" + i);
|
||||||
|
}
|
||||||
|
|
||||||
|
int liquidRegion = reg("-liquid");
|
||||||
|
int topRegion =reg("-top");
|
||||||
|
|
||||||
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-top")};
|
||||||
|
|
||||||
|
drawer = tile -> {
|
||||||
|
GenericCrafterEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
Draw.rect(reg(frameRegions[(int) Mathf.absin(entity.totalProgress, 5f, 2.999f)]), tile.drawx(), tile.drawy());
|
||||||
|
Draw.color(Color.CLEAR, tile.entity.liquids.current().color, tile.entity.liquids.total() / liquidCapacity);
|
||||||
|
Draw.rect(reg(liquidRegion), tile.drawx(), tile.drawy());
|
||||||
|
Draw.color();
|
||||||
|
Draw.rect(reg(topRegion), tile.drawx(), tile.drawy());
|
||||||
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
pulverizer = new Pulverizer("pulverizer"){{
|
pulverizer = new GenericCrafter("pulverizer"){{
|
||||||
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50));
|
requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50));
|
||||||
output = Items.sand;
|
outputItem = new ItemStack(Items.sand, 1);
|
||||||
craftEffect = Fx.pulverize;
|
craftEffect = Fx.pulverize;
|
||||||
craftTime = 40f;
|
craftTime = 40f;
|
||||||
updateEffect = Fx.pulverizeSmall;
|
updateEffect = Fx.pulverizeSmall;
|
||||||
@@ -564,6 +669,17 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
consumes.item(Items.scrap, 1);
|
consumes.item(Items.scrap, 1);
|
||||||
consumes.power(0.50f);
|
consumes.power(0.50f);
|
||||||
|
|
||||||
|
int rotatorRegion = reg("-rotator");
|
||||||
|
|
||||||
|
drawIcons = () -> new TextureRegion[]{Core.atlas.find(name), Core.atlas.find(name + "-rotator")};
|
||||||
|
|
||||||
|
drawer = tile -> {
|
||||||
|
GenericCrafterEntity entity = tile.entity();
|
||||||
|
|
||||||
|
Draw.rect(region, tile.drawx(), tile.drawy());
|
||||||
|
Draw.rect(reg(rotatorRegion), tile.drawx(), tile.drawy(), entity.totalProgress * 2f);
|
||||||
|
};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
incinerator = new Incinerator("incinerator"){{
|
incinerator = new Incinerator("incinerator"){{
|
||||||
@@ -698,7 +814,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
mender = new MendProjector("mender"){{
|
mender = new MendProjector("mender"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50));
|
requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50));
|
||||||
consumes.power(0.7f);
|
consumes.power(0.3f);
|
||||||
size = 1;
|
size = 1;
|
||||||
reload = 200f;
|
reload = 200f;
|
||||||
range = 40f;
|
range = 40f;
|
||||||
@@ -711,7 +827,7 @@ public class Blocks implements ContentList{
|
|||||||
|
|
||||||
mendProjector = new MendProjector("mend-projector"){{
|
mendProjector = new MendProjector("mend-projector"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80));
|
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80));
|
||||||
consumes.power(1.8f);
|
consumes.power(1.5f);
|
||||||
size = 2;
|
size = 2;
|
||||||
reload = 250f;
|
reload = 250f;
|
||||||
range = 85f;
|
range = 85f;
|
||||||
@@ -724,17 +840,18 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 150, Items.plastanium, 60));
|
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 150, Items.plastanium, 60));
|
||||||
consumes.power(3.50f);
|
consumes.power(3.50f);
|
||||||
size = 2;
|
size = 2;
|
||||||
consumes.item(Items.phasefabric).optional(true).boost(true);
|
consumes.item(Items.phasefabric).optional(true);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
forceProjector = new ForceProjector("force-projector"){{
|
forceProjector = new ForceProjector("force-projector"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 250));
|
requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 250));
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.item(Items.phasefabric).optional(true).boost(true);
|
consumes.item(Items.phasefabric).optional(true);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
shockMine = new ShockMine("shock-mine"){{
|
shockMine = new ShockMine("shock-mine"){{
|
||||||
requirements(Category.effect, ItemStack.with(Items.lead, 50, Items.silicon, 25));
|
requirements(Category.effect, ItemStack.with(Items.lead, 50, Items.silicon, 25));
|
||||||
|
hasShadow = false;
|
||||||
health = 40;
|
health = 40;
|
||||||
damage = 11;
|
damage = 11;
|
||||||
tileDamage = 7f;
|
tileDamage = 7f;
|
||||||
@@ -896,20 +1013,20 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
battery = new Battery("battery"){{
|
battery = new Battery("battery"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 30, Items.silicon, 4));
|
requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 40));
|
||||||
consumes.powerBuffered(3200f, 1f);
|
consumes.powerBuffered(4000f, 1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
batteryLarge = new Battery("battery-large"){{
|
batteryLarge = new Battery("battery-large"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 30));
|
requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 40));
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.powerBuffered(37440f, 1f);
|
consumes.powerBuffered(50000f, 1f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
combustionGenerator = new BurnerGenerator("combustion-generator"){{
|
combustionGenerator = new BurnerGenerator("combustion-generator"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30));
|
requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30));
|
||||||
powerProduction = 1f;
|
powerProduction = 1f;
|
||||||
itemDuration = 40f;
|
itemDuration = 60f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
thermalGenerator = new ThermalGenerator("thermal-generator"){{
|
thermalGenerator = new ThermalGenerator("thermal-generator"){{
|
||||||
@@ -919,24 +1036,24 @@ public class Blocks implements ContentList{
|
|||||||
size = 2;
|
size = 2;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
turbineGenerator = new TurbineGenerator("turbine-generator"){{
|
turbineGenerator = new BurnerGenerator("turbine-generator"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60));
|
requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60));
|
||||||
powerProduction = 6f;
|
powerProduction = 6f;
|
||||||
itemDuration = 30f;
|
itemDuration = 40f;
|
||||||
consumes.liquid(Liquids.water, 0.05f);
|
consumes.liquid(Liquids.water, 0.05f);
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
size = 2;
|
size = 2;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
differentialGenerator = new DifferentialGenerator("differential-generator"){{
|
differentialGenerator = new ItemLiquidGenerator(true, true, "differential-generator"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.copper, 140, Items.titanium, 100, Items.lead, 200, Items.silicon, 130, Items.metaglass, 100));
|
requirements(Category.power, ItemStack.with(Items.copper, 140, Items.titanium, 100, Items.lead, 200, Items.silicon, 130, Items.metaglass, 100));
|
||||||
powerProduction = 13f;
|
powerProduction = 16f;
|
||||||
itemDuration = 50f;
|
itemDuration = 50f;
|
||||||
consumes.remove(ConsumeItemFilter.class);
|
hasLiquids = true;
|
||||||
consumes.remove(ConsumeLiquidFilter.class);
|
size = 3;
|
||||||
|
|
||||||
consumes.item(Items.pyratite);
|
consumes.item(Items.pyratite);
|
||||||
consumes.liquid(Liquids.cryofluid, 0.2f);
|
consumes.liquid(Liquids.cryofluid, 0.2f);
|
||||||
size = 3;
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
rtgGenerator = new DecayGenerator("rtg-generator"){{
|
rtgGenerator = new DecayGenerator("rtg-generator"){{
|
||||||
@@ -963,16 +1080,17 @@ public class Blocks implements ContentList{
|
|||||||
health = 700;
|
health = 700;
|
||||||
powerProduction = 14f;
|
powerProduction = 14f;
|
||||||
consumes.item(Items.thorium);
|
consumes.item(Items.thorium);
|
||||||
consumes.liquid(Liquids.cryofluid, 0.1f);
|
heating = 0.02f;
|
||||||
|
consumes.liquid(Liquids.cryofluid, 0.1f).update(false);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
impactReactor = new ImpactReactor("impact-reactor"){{
|
impactReactor = new ImpactReactor("impact-reactor"){{
|
||||||
requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500));
|
requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500));
|
||||||
size = 4;
|
size = 4;
|
||||||
health = 900;
|
health = 900;
|
||||||
powerProduction = 80f;
|
powerProduction = 100f;
|
||||||
useTime = 40f;
|
itemDuration = 40f;
|
||||||
consumes.power(23f);
|
consumes.power(25f);
|
||||||
consumes.item(Items.blastCompound);
|
consumes.item(Items.blastCompound);
|
||||||
consumes.liquid(Liquids.cryofluid, 0.8f);
|
consumes.liquid(Liquids.cryofluid, 0.8f);
|
||||||
}};
|
}};
|
||||||
@@ -986,6 +1104,7 @@ public class Blocks implements ContentList{
|
|||||||
drillTime = 600;
|
drillTime = 600;
|
||||||
size = 2;
|
size = 2;
|
||||||
drawMineItem = true;
|
drawMineItem = true;
|
||||||
|
consumes.liquid(Liquids.water, 0.05f).optional(true);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
pneumaticDrill = new Drill("pneumatic-drill"){{
|
pneumaticDrill = new Drill("pneumatic-drill"){{
|
||||||
@@ -1096,7 +1215,7 @@ public class Blocks implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
unloader = new Unloader("unloader"){{
|
unloader = new Unloader("unloader"){{
|
||||||
requirements(Category.distribution, ItemStack.with(Items.titanium, 50, Items.silicon, 60));
|
requirements(Category.effect, ItemStack.with(Items.titanium, 50, Items.silicon, 60));
|
||||||
speed = 7f;
|
speed = 7f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -1146,7 +1265,7 @@ public class Blocks implements ContentList{
|
|||||||
Items.scrap, Bullets.flakScrap,
|
Items.scrap, Bullets.flakScrap,
|
||||||
Items.lead, Bullets.flakLead
|
Items.lead, Bullets.flakLead
|
||||||
);
|
);
|
||||||
reload = 20f;
|
reload = 15f;
|
||||||
range = 180f;
|
range = 180f;
|
||||||
size = 2;
|
size = 2;
|
||||||
burstSpacing = 5f;
|
burstSpacing = 5f;
|
||||||
@@ -1332,12 +1451,12 @@ public class Blocks implements ContentList{
|
|||||||
Items.surgealloy, Bullets.flakSurge
|
Items.surgealloy, Bullets.flakSurge
|
||||||
);
|
);
|
||||||
xRand = 4f;
|
xRand = 4f;
|
||||||
reload = 7f;
|
reload = 6f;
|
||||||
range = 170f;
|
range = 200f;
|
||||||
size = 3;
|
size = 3;
|
||||||
recoil = 3f;
|
recoil = 3f;
|
||||||
rotatespeed = 10f;
|
rotatespeed = 10f;
|
||||||
inaccuracy = 13f;
|
inaccuracy = 10f;
|
||||||
shootCone = 30f;
|
shootCone = 30f;
|
||||||
|
|
||||||
health = 145 * size * size;
|
health = 145 * size * size;
|
||||||
@@ -1365,7 +1484,6 @@ public class Blocks implements ContentList{
|
|||||||
);
|
);
|
||||||
reload = 6f;
|
reload = 6f;
|
||||||
coolantMultiplier = 0.5f;
|
coolantMultiplier = 0.5f;
|
||||||
maxCoolantUsed = 1.5f;
|
|
||||||
restitution = 0.1f;
|
restitution = 0.1f;
|
||||||
ammoUseEffect = Fx.shellEjectBig;
|
ammoUseEffect = Fx.shellEjectBig;
|
||||||
range = 200f;
|
range = 200f;
|
||||||
@@ -1379,6 +1497,7 @@ public class Blocks implements ContentList{
|
|||||||
shootCone = 24f;
|
shootCone = 24f;
|
||||||
|
|
||||||
health = 155 * size * size;
|
health = 155 * size * size;
|
||||||
|
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
meltdown = new LaserTurret("meltdown"){{
|
meltdown = new LaserTurret("meltdown"){{
|
||||||
@@ -1391,12 +1510,13 @@ public class Blocks implements ContentList{
|
|||||||
shootShake = 2f;
|
shootShake = 2f;
|
||||||
powerUsed = 0.5f;
|
powerUsed = 0.5f;
|
||||||
consumes.powerBuffered(1200f);
|
consumes.powerBuffered(1200f);
|
||||||
range = 160f;
|
range = 190f;
|
||||||
reload = 170f;
|
reload = 50f;
|
||||||
firingMoveFract = 0.1f;
|
firingMoveFract = 0.5f;
|
||||||
shootDuration = 220f;
|
shootDuration = 220f;
|
||||||
|
|
||||||
health = 165 * size * size;
|
health = 200 * size * size;
|
||||||
|
consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.5f)).update(false);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
@@ -1407,6 +1527,7 @@ public class Blocks implements ContentList{
|
|||||||
type = UnitTypes.spirit;
|
type = UnitTypes.spirit;
|
||||||
produceTime = 5700;
|
produceTime = 5700;
|
||||||
size = 2;
|
size = 2;
|
||||||
|
maxSpawn = 2;
|
||||||
consumes.power(0.80f);
|
consumes.power(0.80f);
|
||||||
consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30));
|
consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30));
|
||||||
}};
|
}};
|
||||||
@@ -1416,6 +1537,7 @@ public class Blocks implements ContentList{
|
|||||||
type = UnitTypes.phantom;
|
type = UnitTypes.phantom;
|
||||||
produceTime = 7300;
|
produceTime = 7300;
|
||||||
size = 2;
|
size = 2;
|
||||||
|
maxSpawn = 2;
|
||||||
consumes.power(2f);
|
consumes.power(2f);
|
||||||
consumes.items(new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80));
|
consumes.items(new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80));
|
||||||
}};
|
}};
|
||||||
@@ -1479,6 +1601,7 @@ public class Blocks implements ContentList{
|
|||||||
type = UnitTypes.fortress;
|
type = UnitTypes.fortress;
|
||||||
produceTime = 5000;
|
produceTime = 5000;
|
||||||
size = 3;
|
size = 3;
|
||||||
|
maxSpawn = 3;
|
||||||
consumes.power(2f);
|
consumes.power(2f);
|
||||||
consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.thorium, 50));
|
consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.thorium, 50));
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ public class Bullets implements ContentList{
|
|||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
splashDamageRadius = 25f;
|
splashDamageRadius = 25f;
|
||||||
splashDamage = 10f;
|
splashDamage = 10f;
|
||||||
lifetime = 80f;
|
lifetime = 50f;
|
||||||
trailColor = Pal.unitBack;
|
trailColor = Pal.unitBack;
|
||||||
backColor = Pal.unitBack;
|
backColor = Pal.unitBack;
|
||||||
frontColor = Pal.unitFront;
|
frontColor = Pal.unitFront;
|
||||||
@@ -533,13 +533,13 @@ public class Bullets implements ContentList{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
meltdownLaser = new BulletType(0.001f, 35){
|
meltdownLaser = new BulletType(0.001f, 70){
|
||||||
Color tmpColor = new Color();
|
Color tmpColor = new Color();
|
||||||
Color[] colors = {Color.valueOf("ec745855"), Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.WHITE};
|
Color[] colors = {Color.valueOf("ec745855"), Color.valueOf("ec7458aa"), Color.valueOf("ff9c5a"), Color.WHITE};
|
||||||
float[] tscales = {1f, 0.7f, 0.5f, 0.2f};
|
float[] tscales = {1f, 0.7f, 0.5f, 0.2f};
|
||||||
float[] strokes = {2f, 1.5f, 1f, 0.3f};
|
float[] strokes = {2f, 1.5f, 1f, 0.3f};
|
||||||
float[] lenscales = {1f, 1.12f, 1.15f, 1.17f};
|
float[] lenscales = {1f, 1.12f, 1.15f, 1.17f};
|
||||||
float length = 200f;
|
float length = 220f;
|
||||||
|
|
||||||
{
|
{
|
||||||
hitEffect = Fx.hitMeltdown;
|
hitEffect = Fx.hitMeltdown;
|
||||||
@@ -626,7 +626,6 @@ public class Bullets implements ContentList{
|
|||||||
|
|
||||||
slagShot = new LiquidBulletType(Liquids.slag){{
|
slagShot = new LiquidBulletType(Liquids.slag){{
|
||||||
damage = 4;
|
damage = 4;
|
||||||
speed = 1.9f;
|
|
||||||
drag = 0.03f;
|
drag = 0.03f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
@@ -644,6 +643,8 @@ public class Bullets implements ContentList{
|
|||||||
lightning = new BulletType(0.001f, 12f){
|
lightning = new BulletType(0.001f, 12f){
|
||||||
{
|
{
|
||||||
lifetime = 1f;
|
lifetime = 1f;
|
||||||
|
shootEffect = Fx.hitLancer;
|
||||||
|
smokeEffect = Fx.none;
|
||||||
despawnEffect = Fx.none;
|
despawnEffect = Fx.none;
|
||||||
hitEffect = Fx.hitLancer;
|
hitEffect = Fx.hitLancer;
|
||||||
keepVelocity = false;
|
keepVelocity = false;
|
||||||
@@ -730,7 +731,7 @@ public class Bullets implements ContentList{
|
|||||||
lifetime = 23f;
|
lifetime = 23f;
|
||||||
speed = 1f;
|
speed = 1f;
|
||||||
splashDamageRadius = 50f;
|
splashDamageRadius = 50f;
|
||||||
splashDamage = 20f;
|
splashDamage = 28f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ public class Items implements ContentList{
|
|||||||
cost = 1f;
|
cost = 1f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
sand = new Item("sand", Color.valueOf("f7cba4")){{
|
||||||
|
|
||||||
|
}};
|
||||||
|
|
||||||
coal = new Item("coal", Color.valueOf("272727")){{
|
coal = new Item("coal", Color.valueOf("272727")){{
|
||||||
explosiveness = 0.4f;
|
explosiveness = 0.4f;
|
||||||
flammability = 1f;
|
flammability = 1f;
|
||||||
@@ -65,7 +69,7 @@ public class Items implements ContentList{
|
|||||||
|
|
||||||
plastanium = new Item("plastanium", Color.valueOf("cbd97f")){{
|
plastanium = new Item("plastanium", Color.valueOf("cbd97f")){{
|
||||||
type = ItemType.material;
|
type = ItemType.material;
|
||||||
flammability = 0.2f;
|
flammability = 0.1f;
|
||||||
explosiveness = 0.2f;
|
explosiveness = 0.2f;
|
||||||
cost = 1.3f;
|
cost = 1.3f;
|
||||||
}};
|
}};
|
||||||
@@ -84,10 +88,6 @@ public class Items implements ContentList{
|
|||||||
flammability = 1.05f;
|
flammability = 1.05f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
sand = new Item("sand", Color.valueOf("f7cba4")){{
|
|
||||||
|
|
||||||
}};
|
|
||||||
|
|
||||||
blastCompound = new Item("blast-compound", Color.valueOf("ff795e")){{
|
blastCompound = new Item("blast-compound", Color.valueOf("ff795e")){{
|
||||||
flammability = 0.4f;
|
flammability = 0.4f;
|
||||||
explosiveness = 1.2f;
|
explosiveness = 1.2f;
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public class Mechs implements ContentList{
|
|||||||
mass = 1.2f;
|
mass = 1.2f;
|
||||||
speed = 0.5f;
|
speed = 0.5f;
|
||||||
boostSpeed = 0.85f;
|
boostSpeed = 0.85f;
|
||||||
|
buildPower = 1.2f;
|
||||||
engineColor = Color.valueOf("ffd37f");
|
engineColor = Color.valueOf("ffd37f");
|
||||||
health = 300f;
|
health = 300f;
|
||||||
|
|
||||||
@@ -47,6 +48,11 @@ public class Mechs implements ContentList{
|
|||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAlt(Player player){
|
||||||
|
player.healBy(Time.delta() * 0.4f);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean alwaysUnlocked(){
|
public boolean alwaysUnlocked(){
|
||||||
return true;
|
return true;
|
||||||
@@ -63,15 +69,18 @@ public class Mechs implements ContentList{
|
|||||||
itemCapacity = 15;
|
itemCapacity = 15;
|
||||||
mass = 0.9f;
|
mass = 0.9f;
|
||||||
health = 250f;
|
health = 250f;
|
||||||
|
buildPower = 0.9f;
|
||||||
weaponOffsetX = -1;
|
weaponOffsetX = -1;
|
||||||
weaponOffsetY = -1;
|
weaponOffsetY = -1;
|
||||||
engineColor = Color.valueOf("d3ddff");
|
engineColor = Color.valueOf("d3ddff");
|
||||||
|
|
||||||
weapon = new Weapon("shockgun"){{
|
weapon = new Weapon("shockgun"){{
|
||||||
|
shake = 2f;
|
||||||
length = 1f;
|
length = 1f;
|
||||||
reload = 40f;
|
reload = 40f;
|
||||||
|
shotDelay = 3f;
|
||||||
roundrobin = true;
|
roundrobin = true;
|
||||||
shots = 1;
|
shots = 3;
|
||||||
inaccuracy = 0f;
|
inaccuracy = 0f;
|
||||||
velocityRnd = 0.2f;
|
velocityRnd = 0.2f;
|
||||||
ejectEffect = Fx.none;
|
ejectEffect = Fx.none;
|
||||||
@@ -110,6 +119,7 @@ public class Mechs implements ContentList{
|
|||||||
boostSpeed = 0.8f;
|
boostSpeed = 0.8f;
|
||||||
canHeal = true;
|
canHeal = true;
|
||||||
health = 200f;
|
health = 200f;
|
||||||
|
buildPower = 1.6f;
|
||||||
engineColor = Pal.heal;
|
engineColor = Pal.heal;
|
||||||
|
|
||||||
weapon = new Weapon("heal-blaster"){{
|
weapon = new Weapon("heal-blaster"){{
|
||||||
@@ -161,6 +171,7 @@ public class Mechs implements ContentList{
|
|||||||
weaponOffsetY = 0;
|
weaponOffsetY = 0;
|
||||||
engineColor = Color.valueOf("feb380");
|
engineColor = Color.valueOf("feb380");
|
||||||
health = 300f;
|
health = 300f;
|
||||||
|
buildPower = 1.5f;
|
||||||
weapon = new Weapon("swarmer"){{
|
weapon = new Weapon("swarmer"){{
|
||||||
length = 1.5f;
|
length = 1.5f;
|
||||||
recoil = 4f;
|
recoil = 4f;
|
||||||
@@ -227,6 +238,7 @@ public class Mechs implements ContentList{
|
|||||||
weaponOffsetY = -1;
|
weaponOffsetY = -1;
|
||||||
engineColor = Pal.lightTrail;
|
engineColor = Pal.lightTrail;
|
||||||
cellTrnsY = 1f;
|
cellTrnsY = 1f;
|
||||||
|
buildPower = 1.1f;
|
||||||
weapon = new Weapon("blaster"){{
|
weapon = new Weapon("blaster"){{
|
||||||
length = 1.5f;
|
length = 1.5f;
|
||||||
reload = 20f;
|
reload = 20f;
|
||||||
@@ -315,6 +327,7 @@ public class Mechs implements ContentList{
|
|||||||
itemCapacity = 30;
|
itemCapacity = 30;
|
||||||
engineColor = Color.valueOf("84f491");
|
engineColor = Color.valueOf("84f491");
|
||||||
cellTrnsY = 1f;
|
cellTrnsY = 1f;
|
||||||
|
buildPower = 2f;
|
||||||
weapon = new Weapon("bomber"){{
|
weapon = new Weapon("bomber"){{
|
||||||
length = 0f;
|
length = 0f;
|
||||||
width = 2f;
|
width = 2f;
|
||||||
@@ -346,6 +359,7 @@ public class Mechs implements ContentList{
|
|||||||
itemCapacity = 60;
|
itemCapacity = 60;
|
||||||
engineColor = Color.valueOf("feb380");
|
engineColor = Color.valueOf("feb380");
|
||||||
cellTrnsY = 1f;
|
cellTrnsY = 1f;
|
||||||
|
buildPower = 1.2f;
|
||||||
|
|
||||||
weapon = new Weapon("bomber"){{
|
weapon = new Weapon("bomber"){{
|
||||||
length = 1.5f;
|
length = 1.5f;
|
||||||
|
|||||||
@@ -199,12 +199,14 @@ public class TechTree implements ContentList{
|
|||||||
node(combustionGenerator, () -> {
|
node(combustionGenerator, () -> {
|
||||||
node(powerNode, () -> {
|
node(powerNode, () -> {
|
||||||
node(powerNodeLarge, () -> {
|
node(powerNodeLarge, () -> {
|
||||||
node(battery, () -> {
|
|
||||||
node(batteryLarge, () -> {
|
|
||||||
node(surgeTower, () -> {
|
node(surgeTower, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(battery, () -> {
|
||||||
|
node(batteryLarge, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -243,12 +245,13 @@ public class TechTree implements ContentList{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(alphaDartPad, () -> {
|
|
||||||
node(deltaPad, () -> {
|
|
||||||
node(spiritFactory, () -> {
|
node(spiritFactory, () -> {
|
||||||
node(phantomFactory);
|
node(phantomFactory);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(alphaDartPad, () -> {
|
||||||
|
node(deltaPad, () -> {
|
||||||
|
|
||||||
node(javelinPad, () -> {
|
node(javelinPad, () -> {
|
||||||
node(tridentPad, () -> {
|
node(tridentPad, () -> {
|
||||||
node(glaivePad);
|
node(glaivePad);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class Zones implements ContentList{
|
|||||||
rules = () -> new Rules(){{
|
rules = () -> new Rules(){{
|
||||||
waves = true;
|
waves = true;
|
||||||
waveTimer = true;
|
waveTimer = true;
|
||||||
waveSpacing = 60 * 60 * 1f;
|
waveSpacing = 60 * 60 * 1.5f;
|
||||||
}};
|
}};
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,9 @@ import io.anuke.arc.graphics.GL20;
|
|||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
import io.anuke.arc.graphics.g2d.TextureAtlas;
|
import io.anuke.arc.graphics.g2d.TextureAtlas;
|
||||||
import io.anuke.arc.input.KeyCode;
|
import io.anuke.arc.input.KeyCode;
|
||||||
import io.anuke.arc.util.BufferUtils;
|
import io.anuke.arc.scene.ui.Dialog;
|
||||||
import io.anuke.arc.util.Interval;
|
import io.anuke.arc.scene.ui.TextField;
|
||||||
import io.anuke.arc.util.Strings;
|
import io.anuke.arc.util.*;
|
||||||
import io.anuke.arc.util.Time;
|
|
||||||
import io.anuke.mindustry.content.Mechs;
|
import io.anuke.mindustry.content.Mechs;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.entities.Effects;
|
import io.anuke.mindustry.entities.Effects;
|
||||||
@@ -100,7 +99,7 @@ public class Control implements ApplicationListener{
|
|||||||
});
|
});
|
||||||
|
|
||||||
Events.on(WorldLoadEvent.class, event -> {
|
Events.on(WorldLoadEvent.class, event -> {
|
||||||
Core.app.post(() -> Core.camera.position.set(player));
|
Core.app.post(() -> Core.app.post(() -> Core.camera.position.set(player)));
|
||||||
});
|
});
|
||||||
|
|
||||||
Events.on(ResetEvent.class, event -> {
|
Events.on(ResetEvent.class, event -> {
|
||||||
@@ -301,10 +300,18 @@ public class Control implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!mobile && Core.input.keyTap(Binding.screenshot) && !(scene.getKeyboardFocus() instanceof TextField) && !ui.chatfrag.chatOpen()){
|
||||||
|
renderer.takeMapScreenshot();
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
if(!state.isPaused()){
|
if(!state.isPaused()){
|
||||||
Time.update();
|
Time.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!scene.hasDialog() && !(scene.root.getChildren().peek() instanceof Dialog) &&Core.input.keyTap(KeyCode.BACK)){
|
||||||
|
Platform.instance.hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ public class NetClient implements ApplicationListener{
|
|||||||
public NetClient(){
|
public NetClient(){
|
||||||
|
|
||||||
Net.handleClient(Connect.class, packet -> {
|
Net.handleClient(Connect.class, packet -> {
|
||||||
|
Log.info("Connecting to server: {0}", packet.addressTCP);
|
||||||
|
|
||||||
player.isAdmin = false;
|
player.isAdmin = false;
|
||||||
|
|
||||||
@@ -212,6 +213,11 @@ public class NetClient implements ApplicationListener{
|
|||||||
SyncTrait entity = (SyncTrait) group.getByID(id);
|
SyncTrait entity = (SyncTrait) group.getByID(id);
|
||||||
boolean add = false;
|
boolean add = false;
|
||||||
|
|
||||||
|
if(entity == null && id == player.id){
|
||||||
|
entity = player;
|
||||||
|
add = true;
|
||||||
|
}
|
||||||
|
|
||||||
//entity must not be added yet, so create it
|
//entity must not be added yet, so create it
|
||||||
if(entity == null){
|
if(entity == null){
|
||||||
entity = (SyncTrait) TypeTrait.getTypeByID(typeID).get(); //create entity from supplier
|
entity = (SyncTrait) TypeTrait.getTypeByID(typeID).get(); //create entity from supplier
|
||||||
|
|||||||
@@ -190,20 +190,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
|
|
||||||
//playing in pvp mode automatically assigns players to teams
|
//playing in pvp mode automatically assigns players to teams
|
||||||
if(state.rules.pvp){
|
if(state.rules.pvp){
|
||||||
//find team with minimum amount of players and auto-assign player to that.
|
player.setTeam(assignTeam(playerGroup.all()));
|
||||||
Team min = Structs.findMin(Team.all, team -> {
|
|
||||||
if(state.teams.isActive(team)){
|
|
||||||
int count = 0;
|
|
||||||
for(Player other : playerGroup.all()){
|
|
||||||
if(other.getTeam() == team){
|
|
||||||
count ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
return Integer.MAX_VALUE;
|
|
||||||
});
|
|
||||||
player.setTeam(min);
|
|
||||||
Log.info("Auto-assigned player {0} to team {1}.", player.name, player.getTeam());
|
Log.info("Auto-assigned player {0} to team {1}.", player.name, player.getTeam());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,6 +208,22 @@ public class NetServer implements ApplicationListener{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Team assignTeam(Iterable<Player> players){
|
||||||
|
//find team with minimum amount of players and auto-assign player to that.
|
||||||
|
return Structs.findMin(Team.all, team -> {
|
||||||
|
if(state.teams.isActive(team)){
|
||||||
|
int count = 0;
|
||||||
|
for(Player other : players){
|
||||||
|
if(other.getTeam() == team){
|
||||||
|
count ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
return Integer.MAX_VALUE;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void sendWorldData(Player player, int clientID){
|
public void sendWorldData(Player player, int clientID){
|
||||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||||
DeflaterOutputStream def = new DeflaterOutputStream(stream);
|
DeflaterOutputStream def = new DeflaterOutputStream(stream);
|
||||||
@@ -294,10 +297,12 @@ public class NetServer implements ApplicationListener{
|
|||||||
player.isShooting = shooting;
|
player.isShooting = shooting;
|
||||||
player.getPlaceQueue().clear();
|
player.getPlaceQueue().clear();
|
||||||
for(BuildRequest req : requests){
|
for(BuildRequest req : requests){
|
||||||
|
Tile tile = world.tile(req.x, req.y);
|
||||||
|
if(tile == null) continue;
|
||||||
//auto-skip done requests
|
//auto-skip done requests
|
||||||
if(req.breaking && world.tile(req.x, req.y).block() == Blocks.air){
|
if(req.breaking && tile.block() == Blocks.air){
|
||||||
continue;
|
continue;
|
||||||
}else if(!req.breaking && world.tile(req.x, req.y).block() == req.block && (!req.block.rotate || world.tile(req.x, req.y).getRotation() == req.rotation)){
|
}else if(!req.breaking && tile.block() == req.block && (!req.block.rotate || tile.getRotation() == req.rotation)){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
player.getPlaceQueue().addLast(req);
|
player.getPlaceQueue().addLast(req);
|
||||||
@@ -425,7 +430,7 @@ public class NetServer implements ApplicationListener{
|
|||||||
Log.err("Cannot kick unknown player!");
|
Log.err("Cannot kick unknown player!");
|
||||||
return;
|
return;
|
||||||
}else{
|
}else{
|
||||||
Log.info("Kicking connection #{0} / IP: {1}. Reason: {2}", connection, con.address, reason);
|
Log.info("Kicking connection #{0} / IP: {1}. Reason: {2}", connection, con.address, reason.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = connections.get(con.id);
|
Player player = connections.get(con.id);
|
||||||
|
|||||||
@@ -37,8 +37,6 @@ public abstract class Platform {
|
|||||||
}
|
}
|
||||||
/**Update discord RPC.*/
|
/**Update discord RPC.*/
|
||||||
public void updateRPC(){}
|
public void updateRPC(){}
|
||||||
/**Open donation dialog. Currently android only.*/
|
|
||||||
public void openDonations(){}
|
|
||||||
/**Whether donating is supported.*/
|
/**Whether donating is supported.*/
|
||||||
public boolean canDonate(){
|
public boolean canDonate(){
|
||||||
return false;
|
return false;
|
||||||
@@ -69,6 +67,9 @@ public abstract class Platform {
|
|||||||
*/
|
*/
|
||||||
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){}
|
public void showFileChooser(String text, String content, Consumer<FileHandle> cons, boolean open, String filetype){}
|
||||||
|
|
||||||
|
/**Hide the app. Android only.*/
|
||||||
|
public void hide(){}
|
||||||
|
|
||||||
/**Forces the app into landscape mode. Currently Android only.*/
|
/**Forces the app into landscape mode. Currently Android only.*/
|
||||||
public void beginForceLandscape(){}
|
public void beginForceLandscape(){}
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package io.anuke.mindustry.core;
|
|||||||
|
|
||||||
import io.anuke.arc.ApplicationListener;
|
import io.anuke.arc.ApplicationListener;
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
|
import io.anuke.arc.files.FileHandle;
|
||||||
import io.anuke.arc.function.Consumer;
|
import io.anuke.arc.function.Consumer;
|
||||||
import io.anuke.arc.function.Predicate;
|
import io.anuke.arc.function.Predicate;
|
||||||
import io.anuke.arc.graphics.Camera;
|
import io.anuke.arc.graphics.Camera;
|
||||||
import io.anuke.arc.graphics.Color;
|
import io.anuke.arc.graphics.Color;
|
||||||
|
import io.anuke.arc.graphics.Pixmap;
|
||||||
|
import io.anuke.arc.graphics.PixmapIO;
|
||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
import io.anuke.arc.graphics.g2d.Lines;
|
import io.anuke.arc.graphics.g2d.Lines;
|
||||||
import io.anuke.arc.graphics.g2d.SpriteBatch;
|
import io.anuke.arc.graphics.g2d.SpriteBatch;
|
||||||
@@ -13,6 +16,8 @@ import io.anuke.arc.graphics.glutils.FrameBuffer;
|
|||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Rectangle;
|
import io.anuke.arc.math.geom.Rectangle;
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
import io.anuke.arc.math.geom.Vector2;
|
||||||
|
import io.anuke.arc.util.BufferUtils;
|
||||||
|
import io.anuke.arc.util.ScreenUtils;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.arc.util.Tmp;
|
import io.anuke.arc.util.Tmp;
|
||||||
import io.anuke.arc.util.pooling.Pools;
|
import io.anuke.arc.util.pooling.Pools;
|
||||||
@@ -42,6 +47,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
public final BlockRenderer blocks = new BlockRenderer();
|
public final BlockRenderer blocks = new BlockRenderer();
|
||||||
public final MinimapRenderer minimap = new MinimapRenderer();
|
public final MinimapRenderer minimap = new MinimapRenderer();
|
||||||
public final OverlayRenderer overlays = new OverlayRenderer();
|
public final OverlayRenderer overlays = new OverlayRenderer();
|
||||||
|
public final Pixelator pixelator = new Pixelator();
|
||||||
|
|
||||||
public FrameBuffer shieldBuffer = new FrameBuffer(2, 2);
|
public FrameBuffer shieldBuffer = new FrameBuffer(2, 2);
|
||||||
private Color clearColor;
|
private Color clearColor;
|
||||||
@@ -127,10 +133,13 @@ public class Renderer implements ApplicationListener{
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateShake(0.75f);
|
updateShake(0.75f);
|
||||||
|
if(pixelator.enabled()){
|
||||||
|
pixelator.drawPixelate();
|
||||||
|
}else{
|
||||||
draw();
|
draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void updateShake(float scale){
|
void updateShake(float scale){
|
||||||
if(shaketime > 0){
|
if(shaketime > 0){
|
||||||
@@ -154,7 +163,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
|
|
||||||
graphics.clear(clearColor);
|
graphics.clear(clearColor);
|
||||||
|
|
||||||
if(graphics.getWidth() >= 2 && graphics.getHeight() >= 2 && (shieldBuffer.getWidth() != graphics.getWidth() || shieldBuffer.getHeight() != graphics.getHeight())){
|
if(!graphics.isHidden() && (Core.settings.getBool("animatedwater") || Core.settings.getBool("animatedshields")) && (shieldBuffer.getWidth() != graphics.getWidth() || shieldBuffer.getHeight() != graphics.getHeight())){
|
||||||
shieldBuffer.resize(graphics.getWidth(), graphics.getHeight());
|
shieldBuffer.resize(graphics.getWidth(), graphics.getHeight());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,6 +211,7 @@ public class Renderer implements ApplicationListener{
|
|||||||
drawAndInterpolate(playerGroup, p -> true, Player::drawBuildRequests);
|
drawAndInterpolate(playerGroup, p -> true, Player::drawBuildRequests);
|
||||||
|
|
||||||
if(EntityDraw.countInBounds(shieldGroup) > 0){
|
if(EntityDraw.countInBounds(shieldGroup) > 0){
|
||||||
|
if(settings.getBool("animatedshields")){
|
||||||
Draw.flush();
|
Draw.flush();
|
||||||
shieldBuffer.begin();
|
shieldBuffer.begin();
|
||||||
graphics.clear(Color.CLEAR);
|
graphics.clear(Color.CLEAR);
|
||||||
@@ -214,13 +224,14 @@ public class Renderer implements ApplicationListener{
|
|||||||
Draw.rect(Draw.wrap(shieldBuffer.getTexture()), camera.position.x, camera.position.y, camera.width, -camera.height);
|
Draw.rect(Draw.wrap(shieldBuffer.getTexture()), camera.position.x, camera.position.y, camera.width, -camera.height);
|
||||||
Draw.color();
|
Draw.color();
|
||||||
Draw.shader();
|
Draw.shader();
|
||||||
|
}else{
|
||||||
|
EntityDraw.drawWith(shieldGroup, shield -> true, shield -> ((ShieldEntity)shield).drawSimple());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
overlays.drawTop();
|
overlays.drawTop();
|
||||||
|
|
||||||
EntityDraw.setClip(false);
|
|
||||||
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
||||||
EntityDraw.setClip(true);
|
|
||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
Draw.flush();
|
Draw.flush();
|
||||||
@@ -296,10 +307,6 @@ public class Renderer implements ApplicationListener{
|
|||||||
EntityDraw.drawWith(group, toDraw, drawer);
|
EntityDraw.drawWith(group, toDraw, drawer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float cameraScale(){
|
|
||||||
return camerascale;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void scaleCamera(float amount){
|
public void scaleCamera(float amount){
|
||||||
targetscale += amount;
|
targetscale += amount;
|
||||||
clampScale();
|
clampScale();
|
||||||
@@ -310,4 +317,59 @@ public class Renderer implements ApplicationListener{
|
|||||||
targetscale = Mathf.clamp(targetscale, s * 1.5f, Math.round(s * 6));
|
targetscale = Mathf.clamp(targetscale, s * 1.5f, Math.round(s * 6));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getScale(){
|
||||||
|
return targetscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScale(float scl){
|
||||||
|
targetscale = scl;
|
||||||
|
clampScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void takeMapScreenshot(){
|
||||||
|
drawGroundShadows();
|
||||||
|
|
||||||
|
int w = world.width()*tilesize, h = world.height()*tilesize;
|
||||||
|
|
||||||
|
boolean hadShields = Core.settings.getBool("animatedshields");
|
||||||
|
boolean hadWater = Core.settings.getBool("animatedwater");
|
||||||
|
Core.settings.put("animatedwater", false);
|
||||||
|
Core.settings.put("animatedshields", false);
|
||||||
|
|
||||||
|
FrameBuffer buffer = new FrameBuffer(w, h);
|
||||||
|
|
||||||
|
float vpW = camera.width, vpH = camera.height, px = camera.position.x, py = camera.position.y;
|
||||||
|
disableUI = true;
|
||||||
|
camera.width = w;
|
||||||
|
camera.height = h;
|
||||||
|
camera.position.x = w/2f + tilesize/2f;
|
||||||
|
camera.position.y = h/2f + tilesize/2f;
|
||||||
|
Draw.flush();
|
||||||
|
buffer.begin();
|
||||||
|
draw();
|
||||||
|
Draw.flush();
|
||||||
|
buffer.end();
|
||||||
|
disableUI = false;
|
||||||
|
camera.width = vpW;
|
||||||
|
camera.height = vpH;
|
||||||
|
camera.position.set(px, py);
|
||||||
|
buffer.begin();
|
||||||
|
byte[] lines = ScreenUtils.getFrameBufferPixels(0, 0, w, h, true);
|
||||||
|
for(int i = 0; i < lines.length; i+= 4){
|
||||||
|
lines[i + 3] = (byte)255;
|
||||||
|
}
|
||||||
|
buffer.end();
|
||||||
|
Pixmap fullPixmap = new Pixmap(w, h, Pixmap.Format.RGBA8888);
|
||||||
|
BufferUtils.copy(lines, 0, fullPixmap.getPixels(), lines.length);
|
||||||
|
FileHandle file = screenshotDirectory.child("screenshot-" + Time.millis() + ".png");
|
||||||
|
PixmapIO.writePNG(file, fullPixmap);
|
||||||
|
fullPixmap.dispose();
|
||||||
|
ui.showInfoFade(Core.bundle.format("screenshot", file.toString()));
|
||||||
|
|
||||||
|
buffer.dispose();
|
||||||
|
|
||||||
|
Core.settings.put("animatedwater", hadWater);
|
||||||
|
Core.settings.put("animatedshields", hadShields);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ public class UI implements ApplicationListener{
|
|||||||
public ContentInfoDialog content;
|
public ContentInfoDialog content;
|
||||||
public DeployDialog deploy;
|
public DeployDialog deploy;
|
||||||
public TechTreeDialog tech;
|
public TechTreeDialog tech;
|
||||||
|
public MinimapDialog minimap;
|
||||||
|
|
||||||
public Cursor drillCursor, unloadCursor;
|
public Cursor drillCursor, unloadCursor;
|
||||||
|
|
||||||
@@ -178,6 +179,7 @@ public class UI implements ApplicationListener{
|
|||||||
content = new ContentInfoDialog();
|
content = new ContentInfoDialog();
|
||||||
deploy = new DeployDialog();
|
deploy = new DeployDialog();
|
||||||
tech = new TechTreeDialog();
|
tech = new TechTreeDialog();
|
||||||
|
minimap = new MinimapDialog();
|
||||||
|
|
||||||
Group group = Core.scene.root;
|
Group group = Core.scene.root;
|
||||||
|
|
||||||
@@ -287,11 +289,11 @@ public class UI implements ApplicationListener{
|
|||||||
|
|
||||||
public String formatAmount(int number){
|
public String formatAmount(int number){
|
||||||
if(number >= 1000000){
|
if(number >= 1000000){
|
||||||
return Strings.toFixed(number / 1000000f, 1) + "[gray]mil[]";
|
return Strings.fixed(number / 1000000f, 1) + "[gray]mil[]";
|
||||||
}else if(number >= 10000){
|
}else if(number >= 10000){
|
||||||
return number / 1000 + "[gray]k[]";
|
return number / 1000 + "[gray]k[]";
|
||||||
}else if(number >= 1000){
|
}else if(number >= 1000){
|
||||||
return Strings.toFixed(number / 1000f, 1) + "[gray]k[]";
|
return Strings.fixed(number / 1000f, 1) + "[gray]k[]";
|
||||||
}else{
|
}else{
|
||||||
return number + "";
|
return number + "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ public class WaveInfoDialog extends FloatingDialog{
|
|||||||
}).width(80f);
|
}).width(80f);
|
||||||
|
|
||||||
a.add(" + ");
|
a.add(" + ");
|
||||||
a.addField(Strings.toFixed(Math.max((Mathf.isZero(group.unitScaling) ? 0 : 1f/group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> {
|
a.addField(Strings.fixed(Math.max((Mathf.isZero(group.unitScaling) ? 0 : 1f/group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> {
|
||||||
if(Strings.canParsePositiveFloat(text)){
|
if(Strings.canParsePositiveFloat(text)){
|
||||||
group.unitScaling = 1f / Strings.parseFloat(text);
|
group.unitScaling = 1f / Strings.parseFloat(text);
|
||||||
updateWaves();
|
updateWaves();
|
||||||
|
|||||||
@@ -1,22 +1,27 @@
|
|||||||
package io.anuke.mindustry.entities;
|
package io.anuke.mindustry.entities;
|
||||||
|
|
||||||
import io.anuke.mindustry.entities.Effects.Effect;
|
import io.anuke.annotations.Annotations.Struct;
|
||||||
|
import io.anuke.arc.collection.GridBits;
|
||||||
|
import io.anuke.arc.collection.IntQueue;
|
||||||
import io.anuke.arc.function.Consumer;
|
import io.anuke.arc.function.Consumer;
|
||||||
import io.anuke.arc.function.Predicate;
|
import io.anuke.arc.function.Predicate;
|
||||||
import io.anuke.arc.graphics.Color;
|
import io.anuke.arc.graphics.Color;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Geometry;
|
import io.anuke.arc.math.geom.Geometry;
|
||||||
|
import io.anuke.arc.math.geom.Point2;
|
||||||
import io.anuke.arc.math.geom.Rectangle;
|
import io.anuke.arc.math.geom.Rectangle;
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
import io.anuke.arc.math.geom.Vector2;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.mindustry.content.Bullets;
|
import io.anuke.mindustry.content.Bullets;
|
||||||
import io.anuke.mindustry.content.Fx;
|
import io.anuke.mindustry.content.Fx;
|
||||||
|
import io.anuke.mindustry.entities.Effects.Effect;
|
||||||
import io.anuke.mindustry.entities.bullet.Bullet;
|
import io.anuke.mindustry.entities.bullet.Bullet;
|
||||||
import io.anuke.mindustry.entities.effect.Fire;
|
import io.anuke.mindustry.entities.effect.Fire;
|
||||||
import io.anuke.mindustry.entities.effect.Lightning;
|
import io.anuke.mindustry.entities.effect.Lightning;
|
||||||
import io.anuke.mindustry.entities.type.Unit;
|
import io.anuke.mindustry.entities.type.Unit;
|
||||||
import io.anuke.mindustry.game.Team;
|
import io.anuke.mindustry.game.Team;
|
||||||
import io.anuke.mindustry.gen.Call;
|
import io.anuke.mindustry.gen.Call;
|
||||||
|
import io.anuke.mindustry.gen.PropCell;
|
||||||
import io.anuke.mindustry.graphics.Pal;
|
import io.anuke.mindustry.graphics.Pal;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
|
|
||||||
@@ -27,6 +32,8 @@ public class Damage{
|
|||||||
private static Rectangle rect = new Rectangle();
|
private static Rectangle rect = new Rectangle();
|
||||||
private static Rectangle hitrect = new Rectangle();
|
private static Rectangle hitrect = new Rectangle();
|
||||||
private static Vector2 tr = new Vector2();
|
private static Vector2 tr = new Vector2();
|
||||||
|
private static GridBits bits = new GridBits(30, 30);
|
||||||
|
private static IntQueue propagation = new IntQueue();
|
||||||
|
|
||||||
/**Creates a dynamic explosion based on specified parameters.*/
|
/**Creates a dynamic explosion based on specified parameters.*/
|
||||||
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){
|
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){
|
||||||
@@ -152,11 +159,16 @@ public class Damage{
|
|||||||
|
|
||||||
/**Damages everything in a radius.*/
|
/**Damages everything in a radius.*/
|
||||||
public static void damage(float x, float y, float radius, float damage){
|
public static void damage(float x, float y, float radius, float damage){
|
||||||
damage(null, x, y, radius, damage);
|
damage(null, x, y, radius, damage, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Damages all entities and blocks in a radius that are enemies of the team.*/
|
/**Damages all entities and blocks in a radius that are enemies of the team.*/
|
||||||
public static void damage(Team team, float x, float y, float radius, float damage){
|
public static void damage(Team team, float x, float y, float radius, float damage){
|
||||||
|
damage(team, x, y, radius, damage, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Damages all entities and blocks in a radius that are enemies of the team.*/
|
||||||
|
public static void damage(Team team, float x, float y, float radius, float damage, boolean complete){
|
||||||
Consumer<Unit> cons = entity -> {
|
Consumer<Unit> cons = entity -> {
|
||||||
if(entity.getTeam() == team || entity.dst(x, y) > radius){
|
if(entity.getTeam() == team || entity.dst(x, y) > radius){
|
||||||
return;
|
return;
|
||||||
@@ -175,17 +187,70 @@ public class Damage{
|
|||||||
Units.getNearby(rect, cons);
|
Units.getNearby(rect, cons);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!complete){
|
||||||
int trad = (int)(radius / tilesize);
|
int trad = (int)(radius / tilesize);
|
||||||
for(int dx = -trad; dx <= trad; dx++){
|
Tile tile = world.tileWorld(x, y);
|
||||||
for(int dy = -trad; dy <= trad; dy++){
|
if(tile != null){
|
||||||
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy);
|
tileDamage(team, tile.x, tile.y, trad, damage);
|
||||||
if(tile != null && tile.entity != null && (team == null || state.teams.areEnemies(team, tile.getTeam())) && Mathf.dst(dx, dy, 0, 0) <= trad){
|
}
|
||||||
float amount = calculateDamage(x, y, tile.worldx(), tile.worldy(), radius, damage);
|
}else{
|
||||||
tile.entity.damage(amount);
|
completeDamage(team, x, y, radius, damage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tileDamage(Team team, int startx, int starty, int radius, float baseDamage){
|
||||||
|
bits.clear();
|
||||||
|
propagation.clear();
|
||||||
|
int bitOffset = bits.width()/2;
|
||||||
|
|
||||||
|
propagation.addFirst(PropCell.get((byte)0, (byte)0, (short)baseDamage));
|
||||||
|
//clamp radius to fit bits
|
||||||
|
radius = Math.min(radius, bits.width()/2);
|
||||||
|
|
||||||
|
while(!propagation.isEmpty()){
|
||||||
|
int prop = propagation.removeLast();
|
||||||
|
int x = PropCell.x(prop);
|
||||||
|
int y = PropCell.y(prop);
|
||||||
|
int damage = PropCell.damage(prop);
|
||||||
|
//manhattan distance used for calculating falloff, results in a diamond pattern
|
||||||
|
int dst = Math.abs(x) + Math.abs(y);
|
||||||
|
|
||||||
|
int scaledDamage = (int)(damage * (1f - (float)dst / radius));
|
||||||
|
|
||||||
|
bits.set(bitOffset + x, bitOffset + y);
|
||||||
|
Tile tile = world.tile(startx + x, starty + y);
|
||||||
|
|
||||||
|
if(scaledDamage <= 0 || tile == null) continue;
|
||||||
|
|
||||||
|
tile = tile.target();
|
||||||
|
|
||||||
|
//apply damage to entity if needed
|
||||||
|
if(tile.entity != null && tile.getTeam() != team){
|
||||||
|
int health = (int)tile.entity.health;
|
||||||
|
tile.entity.damage(scaledDamage);
|
||||||
|
scaledDamage -= health;
|
||||||
|
|
||||||
|
if(scaledDamage <= 0) continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(Point2 p : Geometry.d4){
|
||||||
|
if(!bits.get(bitOffset + x + p.x, bitOffset + y + p.y)){
|
||||||
|
propagation.addFirst(PropCell.get((byte)(x + p.x), (byte)(y + p.y), (short)scaledDamage));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void completeDamage(Team team, float x, float y, float radius, float damage){
|
||||||
|
int trad = (int) (radius / tilesize);
|
||||||
|
for(int dx = -trad; dx <= trad; dx++){
|
||||||
|
for(int dy = -trad; dy <= trad; dy++){
|
||||||
|
Tile tile = world.tile(Math.round(x / tilesize) + dx, Math.round(y / tilesize) + dy);
|
||||||
|
if(tile != null && tile.entity != null && (team == null || state.teams.areEnemies(team, tile.getTeam())) && Mathf.dst(dx, dy) <= trad){
|
||||||
|
tile.entity.damage(damage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float calculateDamage(float x, float y, float tx, float ty, float radius, float damage){
|
private static float calculateDamage(float x, float y, float tx, float ty, float radius, float damage){
|
||||||
@@ -194,4 +259,11 @@ public class Damage{
|
|||||||
float scaled = Mathf.lerp(1f - dist / radius, 1f, falloff);
|
float scaled = Mathf.lerp(1f - dist / radius, 1f, falloff);
|
||||||
return damage * scaled;
|
return damage * scaled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Struct
|
||||||
|
class PropCellStruct{
|
||||||
|
byte x;
|
||||||
|
byte y;
|
||||||
|
short damage;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import io.anuke.mindustry.entities.traits.SolidTrait;
|
|||||||
|
|
||||||
public class EntityCollisions{
|
public class EntityCollisions{
|
||||||
//range for tile collision scanning
|
//range for tile collision scanning
|
||||||
private static final int r = 2;
|
private static final int r = 1;
|
||||||
//move in 1-unit chunks
|
//move in 1-unit chunks
|
||||||
private static final float seg = 1f;
|
private static final float seg = 1f;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import io.anuke.arc.function.Predicate;
|
|||||||
import io.anuke.arc.graphics.Camera;
|
import io.anuke.arc.graphics.Camera;
|
||||||
import io.anuke.arc.math.geom.Rectangle;
|
import io.anuke.arc.math.geom.Rectangle;
|
||||||
import io.anuke.mindustry.entities.traits.DrawTrait;
|
import io.anuke.mindustry.entities.traits.DrawTrait;
|
||||||
|
import io.anuke.mindustry.entities.traits.Entity;
|
||||||
|
|
||||||
public class EntityDraw{
|
public class EntityDraw{
|
||||||
private static final Rectangle viewport = new Rectangle();
|
private static final Rectangle viewport = new Rectangle();
|
||||||
@@ -42,15 +43,12 @@ public class EntityDraw{
|
|||||||
viewport.set(cam.position.x - cam.width / 2, cam.position.y - cam.height / 2, cam.width, cam.height);
|
viewport.set(cam.position.x - cam.width / 2, cam.position.y - cam.height / 2, cam.width, cam.height);
|
||||||
}
|
}
|
||||||
|
|
||||||
group.forEach(e -> {
|
for(Entity e : group.all()){
|
||||||
if(!(e instanceof DrawTrait)) return;
|
if(!(e instanceof DrawTrait) || !toDraw.test((T)e) || !e.isAdded()) continue;
|
||||||
T t = (T) e;
|
|
||||||
|
|
||||||
if(!toDraw.test(t) || !e.isAdded()) return;
|
|
||||||
|
|
||||||
if(!clip || rect.setSize(((DrawTrait) e).drawSize()).setCenter(e.getX(), e.getY()).overlaps(viewport)){
|
if(!clip || rect.setSize(((DrawTrait) e).drawSize()).setCenter(e.getX(), e.getY()).overlaps(viewport)){
|
||||||
cons.accept(t);
|
cons.accept((T)e);
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,6 +131,13 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
|
|||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float damageMultiplier(){
|
||||||
|
if(owner instanceof Unit){
|
||||||
|
return ((Unit) owner).getDamageMultipler();
|
||||||
|
}
|
||||||
|
return 1f;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void absorb(){
|
public void absorb(){
|
||||||
supressCollision = true;
|
supressCollision = true;
|
||||||
@@ -144,16 +151,10 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float damage(){
|
public float damage(){
|
||||||
//todo hacky way to get damage, refactor
|
|
||||||
if(owner instanceof Unit){
|
|
||||||
return type.damage * ((Unit) owner).getDamageMultipler();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(owner instanceof Lightning && data instanceof Float){
|
if(owner instanceof Lightning && data instanceof Float){
|
||||||
return (Float)data;
|
return (Float)data;
|
||||||
}
|
}
|
||||||
|
return type.damage * damageMultiplier();
|
||||||
return type.damage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ public abstract class BulletType extends Content{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(splashDamageRadius > 0){
|
if(splashDamageRadius > 0){
|
||||||
Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage);
|
Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage * b.damageMultiplier());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,9 +202,9 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
|
|
||||||
if(!(tile.block() instanceof BuildBlock)){
|
if(!(tile.block() instanceof BuildBlock)){
|
||||||
if(canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){
|
if(canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){
|
||||||
Build.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation);
|
Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation);
|
||||||
}else if(canCreateBlocks() && current.breaking && Build.validBreak(getTeam(), current.x, current.y)){
|
}else if(canCreateBlocks() && current.breaking && Build.validBreak(getTeam(), current.x, current.y)){
|
||||||
Build.beginBreak(getTeam(), current.x, current.y);
|
Call.beginBreak(getTeam(), current.x, current.y);
|
||||||
}else{
|
}else{
|
||||||
getPlaceQueue().removeFirst();
|
getPlaceQueue().removeFirst();
|
||||||
return;
|
return;
|
||||||
@@ -213,8 +213,8 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
|
|
||||||
TileEntity core = unit.getClosestCore();
|
TileEntity core = unit.getClosestCore();
|
||||||
|
|
||||||
//if there is no core to build with, stop building!
|
//if there is no core to build with or no build entity, stop building!
|
||||||
if(core == null){
|
if(core == null || !(tile.entity instanceof BuildEntity)){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +222,6 @@ public interface BuilderTrait extends Entity, TeamTrait{
|
|||||||
BuildEntity entity = tile.entity();
|
BuildEntity entity = tile.entity();
|
||||||
|
|
||||||
if(entity == null){
|
if(entity == null){
|
||||||
getPlaceQueue().removeFirst();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,16 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
|
|||||||
|
|
||||||
unit.onSuperDeath();
|
unit.onSuperDeath();
|
||||||
|
|
||||||
|
//visual only.
|
||||||
|
if(Net.client()){
|
||||||
|
Tile tile = world.tile(unit.spawner);
|
||||||
|
if(tile != null && !Net.client()){
|
||||||
|
tile.block().unitRemoved(tile, unit);
|
||||||
|
}
|
||||||
|
|
||||||
|
unit.spawner = noSpawner;
|
||||||
|
}
|
||||||
|
|
||||||
//must run afterwards so the unit's group is not null when sending the removal packet
|
//must run afterwards so the unit's group is not null when sending the removal packet
|
||||||
Core.app.post(unit::remove);
|
Core.app.post(unit::remove);
|
||||||
}
|
}
|
||||||
@@ -217,7 +227,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float maxHealth(){
|
public float maxHealth(){
|
||||||
return type.health;
|
return type.health * Vars.state.rules.unitHealthMultiplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -278,8 +288,9 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed(){
|
public void removed(){
|
||||||
|
super.removed();
|
||||||
Tile tile = world.tile(spawner);
|
Tile tile = world.tile(spawner);
|
||||||
if(tile != null){
|
if(tile != null && !Net.client()){
|
||||||
tile.block().unitRemoved(tile, this);
|
tile.block().unitRemoved(tile, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,6 +367,8 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
|
|||||||
|
|
||||||
interpolator.read(lastx, lasty, x, y, rotation);
|
interpolator.read(lastx, lasty, x, y, rotation);
|
||||||
rotation = lastrot;
|
rotation = lastrot;
|
||||||
|
x = lastx;
|
||||||
|
y = lasty;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSuperDeath(){
|
public void onSuperDeath(){
|
||||||
|
|||||||
@@ -211,11 +211,9 @@ public abstract class GroundUnit extends BaseUnit{
|
|||||||
|
|
||||||
if(tile == targetTile) return;
|
if(tile == targetTile) return;
|
||||||
|
|
||||||
float angle = angleTo(targetTile);
|
|
||||||
|
|
||||||
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
|
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
|
||||||
if(Units.invalidateTarget(target, this)){
|
if(Units.invalidateTarget(target, this)){
|
||||||
rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
|
rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,9 +235,7 @@ public abstract class GroundUnit extends BaseUnit{
|
|||||||
|
|
||||||
if(tile == targetTile || core == null || dst(core) < 90f) return;
|
if(tile == targetTile || core == null || dst(core) < 90f) return;
|
||||||
|
|
||||||
float angle = angleTo(targetTile);
|
|
||||||
|
|
||||||
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
|
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
|
||||||
rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
|
rotation = Mathf.slerpDelta(rotation, baseRotation, type.rotatespeed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,6 +91,11 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
|
|||||||
player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop);
|
player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getDamageMultipler(){
|
||||||
|
return status.getDamageMultiplier() * state.rules.playerDamageMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void hitbox(Rectangle rectangle){
|
public void hitbox(Rectangle rectangle){
|
||||||
rectangle.setSize(mech.hitsize).setCenter(x, y);
|
rectangle.setSize(mech.hitsize).setCenter(x, y);
|
||||||
@@ -874,10 +879,10 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
|
|||||||
|
|
||||||
interpolator.read(lastx, lasty, x, y, rotation, baseRotation);
|
interpolator.read(lastx, lasty, x, y, rotation, baseRotation);
|
||||||
rotation = lastrot;
|
rotation = lastrot;
|
||||||
|
|
||||||
if(isLocal){
|
|
||||||
x = lastx;
|
x = lastx;
|
||||||
y = lasty;
|
y = lasty;
|
||||||
|
|
||||||
|
if(isLocal){
|
||||||
velocity.x = lastvx;
|
velocity.x = lastvx;
|
||||||
velocity.y = lastvy;
|
velocity.y = lastvy;
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -5,17 +5,17 @@ import io.anuke.annotations.Annotations.Remote;
|
|||||||
import io.anuke.arc.Events;
|
import io.anuke.arc.Events;
|
||||||
import io.anuke.arc.collection.Array;
|
import io.anuke.arc.collection.Array;
|
||||||
import io.anuke.arc.collection.ObjectSet;
|
import io.anuke.arc.collection.ObjectSet;
|
||||||
import io.anuke.mindustry.entities.Effects;
|
|
||||||
import io.anuke.mindustry.entities.EntityGroup;
|
|
||||||
import io.anuke.mindustry.entities.impl.BaseEntity;
|
|
||||||
import io.anuke.mindustry.entities.traits.HealthTrait;
|
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Point2;
|
import io.anuke.arc.math.geom.Point2;
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
import io.anuke.arc.math.geom.Vector2;
|
||||||
import io.anuke.arc.util.Interval;
|
import io.anuke.arc.util.Interval;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.mindustry.content.Fx;
|
import io.anuke.mindustry.content.Fx;
|
||||||
|
import io.anuke.mindustry.entities.Effects;
|
||||||
|
import io.anuke.mindustry.entities.EntityGroup;
|
||||||
import io.anuke.mindustry.entities.bullet.Bullet;
|
import io.anuke.mindustry.entities.bullet.Bullet;
|
||||||
|
import io.anuke.mindustry.entities.impl.BaseEntity;
|
||||||
|
import io.anuke.mindustry.entities.traits.HealthTrait;
|
||||||
import io.anuke.mindustry.entities.traits.TargetTrait;
|
import io.anuke.mindustry.entities.traits.TargetTrait;
|
||||||
import io.anuke.mindustry.game.EventType.BlockDestroyEvent;
|
import io.anuke.mindustry.game.EventType.BlockDestroyEvent;
|
||||||
import io.anuke.mindustry.game.Team;
|
import io.anuke.mindustry.game.Team;
|
||||||
@@ -24,7 +24,6 @@ import io.anuke.mindustry.world.Block;
|
|||||||
import io.anuke.mindustry.world.Edges;
|
import io.anuke.mindustry.world.Edges;
|
||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.mindustry.world.blocks.defense.Wall;
|
import io.anuke.mindustry.world.blocks.defense.Wall;
|
||||||
import io.anuke.mindustry.world.consumers.Consume;
|
|
||||||
import io.anuke.mindustry.world.modules.ConsumeModule;
|
import io.anuke.mindustry.world.modules.ConsumeModule;
|
||||||
import io.anuke.mindustry.world.modules.ItemModule;
|
import io.anuke.mindustry.world.modules.ItemModule;
|
||||||
import io.anuke.mindustry.world.modules.LiquidModule;
|
import io.anuke.mindustry.world.modules.LiquidModule;
|
||||||
@@ -44,6 +43,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
public static int sleepingEntities = 0;
|
public static int sleepingEntities = 0;
|
||||||
|
|
||||||
public Tile tile;
|
public Tile tile;
|
||||||
|
public Block block;
|
||||||
public Interval timer;
|
public Interval timer;
|
||||||
public float health;
|
public float health;
|
||||||
public float timeScale = 1f, timeScaleDuration;
|
public float timeScale = 1f, timeScaleDuration;
|
||||||
@@ -81,10 +81,10 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
this.tile = tile;
|
this.tile = tile;
|
||||||
x = tile.drawx();
|
x = tile.drawx();
|
||||||
y = tile.drawy();
|
y = tile.drawy();
|
||||||
|
block = tile.block();
|
||||||
|
|
||||||
health = tile.block().health;
|
health = block.health;
|
||||||
|
timer = new Interval(block.timers);
|
||||||
timer = new Interval(tile.block().timers);
|
|
||||||
|
|
||||||
if(shouldAdd){
|
if(shouldAdd){
|
||||||
add();
|
add();
|
||||||
@@ -139,7 +139,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void collision(Bullet other){
|
public void collision(Bullet other){
|
||||||
tile.block().handleBulletHit(this, other);
|
block.handleBulletHit(this, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void kill(){
|
public void kill(){
|
||||||
@@ -151,7 +151,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
|
|
||||||
float preHealth = health;
|
float preHealth = health;
|
||||||
|
|
||||||
Call.onTileDamage(tile, health - tile.block().handleDamage(tile, damage));
|
Call.onTileDamage(tile, health - block.handleDamage(tile, damage));
|
||||||
|
|
||||||
if(health <= 0){
|
if(health <= 0){
|
||||||
Call.onTileDestroyed(tile);
|
Call.onTileDestroyed(tile);
|
||||||
@@ -170,14 +170,10 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
return tile;
|
return tile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean consumed(Class<? extends Consume> type){
|
|
||||||
return tile.block().consumes.get(type).valid(tile.block(), this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void removeFromProximity(){
|
public void removeFromProximity(){
|
||||||
tile.block().onProximityRemoved(tile);
|
block.onProximityRemoved(tile);
|
||||||
|
|
||||||
Point2[] nearby = Edges.getEdges(tile.block().size);
|
Point2[] nearby = Edges.getEdges(block.size);
|
||||||
for(Point2 point : nearby){
|
for(Point2 point : nearby){
|
||||||
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
|
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
|
||||||
//remove this tile from all nearby tile's proximities
|
//remove this tile from all nearby tile's proximities
|
||||||
@@ -195,7 +191,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
tmpTiles.clear();
|
tmpTiles.clear();
|
||||||
proximity.clear();
|
proximity.clear();
|
||||||
|
|
||||||
Point2[] nearby = Edges.getEdges(tile.block().size);
|
Point2[] nearby = Edges.getEdges(block.size);
|
||||||
for(Point2 point : nearby){
|
for(Point2 point : nearby){
|
||||||
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
|
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
|
||||||
|
|
||||||
@@ -218,8 +214,8 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
proximity.add(tile);
|
proximity.add(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
tile.block().onProximityAdded(tile);
|
block.onProximityAdded(tile);
|
||||||
tile.block().onProximityUpdate(tile);
|
block.onProximityUpdate(tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Array<Tile> proximity(){
|
public Array<Tile> proximity(){
|
||||||
@@ -238,7 +234,7 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float maxHealth(){
|
public float maxHealth(){
|
||||||
return tile.block().health;
|
return block.health;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -250,7 +246,6 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
public void onDeath(){
|
public void onDeath(){
|
||||||
if(!dead){
|
if(!dead){
|
||||||
dead = true;
|
dead = true;
|
||||||
Block block = tile.block();
|
|
||||||
|
|
||||||
Events.fire(new BlockDestroyEvent(tile));
|
Events.fire(new BlockDestroyEvent(tile));
|
||||||
block.onDestroyed(tile);
|
block.onDestroyed(tile);
|
||||||
@@ -273,24 +268,30 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
|
|||||||
@Override
|
@Override
|
||||||
public void update(){
|
public void update(){
|
||||||
//TODO better smoke effect, this one is awful
|
//TODO better smoke effect, this one is awful
|
||||||
if(health != 0 && health < tile.block().health && !(tile.block() instanceof Wall) &&
|
if(health != 0 && health < block.health && !(block instanceof Wall) &&
|
||||||
Mathf.chance(0.009f * Time.delta() * (1f - health / tile.block().health))){
|
Mathf.chance(0.009f * Time.delta() * (1f - health / block.health))){
|
||||||
Effects.effect(Fx.smoke, x + Mathf.range(4), y + Mathf.range(4));
|
Effects.effect(Fx.smoke, x + Mathf.range(4), y + Mathf.range(4));
|
||||||
}
|
}
|
||||||
|
|
||||||
timeScaleDuration -= Time.delta();
|
timeScaleDuration -= Time.delta();
|
||||||
if(timeScaleDuration <= 0f || !tile.block().canOverdrive){
|
if(timeScaleDuration <= 0f || !block.canOverdrive){
|
||||||
timeScale = 1f;
|
timeScale = 1f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(health <= 0){
|
if(health <= 0){
|
||||||
onDeath();
|
onDeath();
|
||||||
|
return; //no need to update anymore
|
||||||
}
|
}
|
||||||
Block previous = tile.block();
|
|
||||||
tile.block().update(tile);
|
Block previous = block;
|
||||||
if(tile.block() == previous && cons != null){
|
block.update(tile);
|
||||||
|
if(block == previous && cons != null){
|
||||||
cons.update();
|
cons.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(block == previous && power != null){
|
||||||
|
power.graph.update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import io.anuke.arc.graphics.g2d.Draw;
|
|||||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Geometry;
|
import io.anuke.arc.math.geom.Geometry;
|
||||||
import io.anuke.arc.math.geom.Rectangle;
|
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
import io.anuke.arc.math.geom.Vector2;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.arc.util.Tmp;
|
import io.anuke.arc.util.Tmp;
|
||||||
@@ -15,7 +14,6 @@ import io.anuke.mindustry.content.Blocks;
|
|||||||
import io.anuke.mindustry.content.Fx;
|
import io.anuke.mindustry.content.Fx;
|
||||||
import io.anuke.mindustry.entities.Damage;
|
import io.anuke.mindustry.entities.Damage;
|
||||||
import io.anuke.mindustry.entities.Effects;
|
import io.anuke.mindustry.entities.Effects;
|
||||||
import io.anuke.mindustry.entities.Units;
|
|
||||||
import io.anuke.mindustry.entities.effect.ScorchDecal;
|
import io.anuke.mindustry.entities.effect.ScorchDecal;
|
||||||
import io.anuke.mindustry.entities.impl.DestructibleEntity;
|
import io.anuke.mindustry.entities.impl.DestructibleEntity;
|
||||||
import io.anuke.mindustry.entities.traits.*;
|
import io.anuke.mindustry.entities.traits.*;
|
||||||
@@ -49,9 +47,11 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
public static final float maxAbsVelocity = 127f / velocityPercision;
|
public static final float maxAbsVelocity = 127f / velocityPercision;
|
||||||
public static final int noSpawner = Pos.get(-1, 1);
|
public static final int noSpawner = Pos.get(-1, 1);
|
||||||
|
|
||||||
private static final Rectangle queryRect = new Rectangle();
|
|
||||||
private static final Vector2 moveVector = new Vector2();
|
private static final Vector2 moveVector = new Vector2();
|
||||||
|
|
||||||
|
private int lastWeightTile = Pos.invalid, lastWeightDelta;
|
||||||
|
private boolean wasFlying = false;
|
||||||
|
|
||||||
public float rotation;
|
public float rotation;
|
||||||
|
|
||||||
protected final Interpolator interpolator = new Interpolator();
|
protected final Interpolator interpolator = new Interpolator();
|
||||||
@@ -95,7 +95,9 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void damage(float amount){
|
public void damage(float amount){
|
||||||
|
if(!Net.client()){
|
||||||
super.damage(calculateDamage(amount));
|
super.damage(calculateDamage(amount));
|
||||||
|
}
|
||||||
hitTime = hitDuration;
|
hitTime = hitDuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,6 +142,22 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removed(){
|
||||||
|
if(lastWeightTile != Pos.invalid){
|
||||||
|
Tile tile = world.tile(lastWeightTile);
|
||||||
|
|
||||||
|
if(tile != null){
|
||||||
|
int dec = Math.min(lastWeightDelta, wasFlying ? tile.airWeight : tile.weight);
|
||||||
|
if(!wasFlying){
|
||||||
|
tile.weight -= dec;
|
||||||
|
}else{
|
||||||
|
tile.airWeight -= dec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isValid(){
|
public boolean isValid(){
|
||||||
return !isDead() && isAdded();
|
return !isDead() && isAdded();
|
||||||
@@ -190,8 +208,8 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void clampPosition(){
|
protected void clampPosition(){
|
||||||
x = Mathf.clamp(x, tilesize, world.width() * tilesize - tilesize);
|
x = Mathf.clamp(x, 0, world.width() * tilesize - tilesize);
|
||||||
y = Mathf.clamp(y, tilesize, world.height() * tilesize - tilesize);
|
y = Mathf.clamp(y, 0, world.height() * tilesize - tilesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void kill(){
|
public void kill(){
|
||||||
@@ -219,17 +237,55 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
|
|||||||
return status.hasEffect(effect);
|
return status.hasEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO optimize
|
|
||||||
public void avoidOthers(float scaling){
|
public void avoidOthers(float scaling){
|
||||||
hitbox(queryRect);
|
boolean flying = isFlying();
|
||||||
queryRect.setSize(queryRect.getWidth() * scaling);
|
|
||||||
|
|
||||||
Units.getNearby(queryRect, t -> {
|
if(lastWeightTile != Pos.invalid){
|
||||||
if(t == this || t.isFlying() != isFlying()) return;
|
Tile tile = world.tile(lastWeightTile);
|
||||||
float dst = dst(t);
|
|
||||||
moveVector.set(x, y).sub(t.getX(), t.getY()).setLength(1f * (1f - (dst / queryRect.getWidth())));
|
if(tile != null){
|
||||||
applyImpulse(moveVector.x, moveVector.y);
|
int dec = Math.min(lastWeightDelta, wasFlying ? tile.airWeight : tile.weight);
|
||||||
});
|
if(!wasFlying){
|
||||||
|
tile.weight -= dec;
|
||||||
|
}else{
|
||||||
|
tile.airWeight -= dec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final int rad = 2;
|
||||||
|
|
||||||
|
moveVector.setZero();
|
||||||
|
for(int cx = -rad; cx <= rad; cx++){
|
||||||
|
for(int cy = -rad; cy <= rad; cy++){
|
||||||
|
Tile tile = world.tileWorld(x + cx*tilesize, y + cy*tilesize);
|
||||||
|
if(tile == null) continue;
|
||||||
|
int weight = flying ? tile.airWeight : tile.weight;
|
||||||
|
float scl = (rad - Mathf.dst(tile.worldx(), tile.worldy(), x, y)/(8f * 1.2f * Mathf.sqrt2)) * 0.1f;
|
||||||
|
|
||||||
|
moveVector.add(Mathf.sign(x - tile.worldx()) * scaling * weight * scl, Mathf.sign(y - tile.worldy()) * scaling * weight * scl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
moveVector.limit(flying ? 0.1f : 0.2f);
|
||||||
|
|
||||||
|
velocity.add(moveVector.x / mass() * Time.delta(), moveVector.y / mass() * Time.delta());
|
||||||
|
|
||||||
|
Tile tile = world.tileWorld(x, y);
|
||||||
|
|
||||||
|
if(tile != null){
|
||||||
|
int tw = flying ? tile.airWeight : tile.weight;
|
||||||
|
lastWeightDelta = Math.min((int)(mass()), 127 - tw);
|
||||||
|
lastWeightTile = tile.pos();
|
||||||
|
if(!flying){
|
||||||
|
tile.weight += lastWeightDelta;
|
||||||
|
}else{
|
||||||
|
tile.airWeight += lastWeightDelta;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
lastWeightTile = Pos.invalid;
|
||||||
|
}
|
||||||
|
wasFlying = flying;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TileEntity getClosestCore(){
|
public TileEntity getClosestCore(){
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
|
|||||||
|
|
||||||
if(core == null) return;
|
if(core == null) return;
|
||||||
|
|
||||||
if((entity.progress() < 1f || entity.progress() > 0f) && entity.tile.block() instanceof BuildBlock){ //building is valid
|
if((entity.progress() < 1f || entity.progress() > 0f) && entity.block instanceof BuildBlock){ //building is valid
|
||||||
if(!isBuilding() && dst(target) < placeDistance * 0.9f){ //within distance, begin placing
|
if(!isBuilding() && dst(target) < placeDistance * 0.9f){ //within distance, begin placing
|
||||||
if(isBreaking){
|
if(isBreaking){
|
||||||
getPlaceQueue().addLast(new BuildRequest(entity.tile.x, entity.tile.y));
|
getPlaceQueue().addLast(new BuildRequest(entity.tile.x, entity.tile.y));
|
||||||
@@ -127,7 +127,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//core full
|
//core full
|
||||||
if(targetItem != null && entity.tile.block().acceptStack(targetItem, 1, entity.tile, Drone.this) == 0){
|
if(targetItem != null && entity.block.acceptStack(targetItem, 1, entity.tile, Drone.this) == 0){
|
||||||
setState(repair);
|
setState(repair);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ public enum RulePreset{
|
|||||||
infiniteResources = true;
|
infiniteResources = true;
|
||||||
waves = true;
|
waves = true;
|
||||||
waveTimer = false;
|
waveTimer = false;
|
||||||
|
respawnTime = 0f;
|
||||||
spawns = DefaultWaves.get();
|
spawns = DefaultWaves.get();
|
||||||
}}),
|
}}),
|
||||||
attack(() -> new Rules(){{
|
attack(() -> new Rules(){{
|
||||||
@@ -27,6 +28,9 @@ public enum RulePreset{
|
|||||||
respawnTime = 60 * 10;
|
respawnTime = 60 * 10;
|
||||||
buildCostMultiplier = 0.5f;
|
buildCostMultiplier = 0.5f;
|
||||||
buildSpeedMultiplier = 2f;
|
buildSpeedMultiplier = 2f;
|
||||||
|
playerDamageMultiplier = 0.5f;
|
||||||
|
unitBuildSpeedMultiplier = 3f;
|
||||||
|
unitHealthMultiplier = 2f;
|
||||||
}});
|
}});
|
||||||
|
|
||||||
private final Supplier<Rules> rules;
|
private final Supplier<Rules> rules;
|
||||||
|
|||||||
@@ -19,6 +19,12 @@ public class Rules{
|
|||||||
public boolean pvp;
|
public boolean pvp;
|
||||||
/**Whether enemy units drop random items on death.*/
|
/**Whether enemy units drop random items on death.*/
|
||||||
public boolean unitDrops;
|
public boolean unitDrops;
|
||||||
|
/**How fast unit pads build units.*/
|
||||||
|
public float unitBuildSpeedMultiplier = 1f;
|
||||||
|
/**How much health units start with.*/
|
||||||
|
public float unitHealthMultiplier = 1f;
|
||||||
|
/**How much damage player mechs deal.*/
|
||||||
|
public float playerDamageMultiplier = 1f;
|
||||||
/**Multiplier for buildings for the player.*/
|
/**Multiplier for buildings for the player.*/
|
||||||
public float buildCostMultiplier = 1f;
|
public float buildCostMultiplier = 1f;
|
||||||
/**Multiplier for building speed.*/
|
/**Multiplier for building speed.*/
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class SpawnGroup implements Serializable{
|
|||||||
}
|
}
|
||||||
float scaling = this.unitScaling;
|
float scaling = this.unitScaling;
|
||||||
|
|
||||||
return Math.min(unitAmount - 1 + Math.max((int) (((wave - begin) / spacing) / scaling), 1), max);
|
return Math.min(unitAmount - 1 + Math.max((int) (((wave - begin + 1) / spacing) / scaling), 1), max);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class BlockRenderer{
|
|||||||
for(int x = 0; x < world.width(); x++){
|
for(int x = 0; x < world.width(); x++){
|
||||||
for(int y = 0; y < world.height(); y++){
|
for(int y = 0; y < world.height(); y++){
|
||||||
Tile tile = world.rawTile(x, y);
|
Tile tile = world.rawTile(x, y);
|
||||||
if(tile.block() != Blocks.air){
|
if(tile.block().hasShadow){
|
||||||
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
|
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,11 +121,16 @@ public class BlockRenderer{
|
|||||||
public void drawShadows(){
|
public void drawShadows(){
|
||||||
if(!shadowEvents.isEmpty()){
|
if(!shadowEvents.isEmpty()){
|
||||||
Draw.flush();
|
Draw.flush();
|
||||||
|
|
||||||
shadows.begin();
|
shadows.begin();
|
||||||
Draw.proj().setOrtho(0, 0, shadows.getWidth(), shadows.getHeight());
|
Draw.proj().setOrtho(0, 0, shadows.getWidth(), shadows.getHeight());
|
||||||
|
|
||||||
for(Tile tile : shadowEvents){
|
for(Tile tile : shadowEvents){
|
||||||
Draw.color(tile.block() == Blocks.air ? Color.WHITE : shadowColor);
|
//clear it first
|
||||||
|
Draw.color(Color.WHITE);
|
||||||
|
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
|
||||||
|
//then draw the shadow
|
||||||
|
Draw.color(!tile.block().hasShadow ? Color.WHITE : shadowColor);
|
||||||
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
|
Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,6 +140,7 @@ public class BlockRenderer{
|
|||||||
shadowEvents.clear();
|
shadowEvents.clear();
|
||||||
|
|
||||||
Draw.proj(camera.projection());
|
Draw.proj(camera.projection());
|
||||||
|
renderer.pixelator.rebind();
|
||||||
}
|
}
|
||||||
|
|
||||||
float ww = world.width() * tilesize, wh = world.height() * tilesize;
|
float ww = world.width() * tilesize, wh = world.height() * tilesize;
|
||||||
@@ -186,7 +192,6 @@ public class BlockRenderer{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(block.expanded || !expanded){
|
if(block.expanded || !expanded){
|
||||||
addRequest(tile, Layer.shadow);
|
|
||||||
|
|
||||||
if(block.layer != null && block.isLayer(tile)){
|
if(block.layer != null && block.isLayer(tile)){
|
||||||
addRequest(tile, block.layer);
|
addRequest(tile, block.layer);
|
||||||
@@ -227,9 +232,7 @@ public class BlockRenderer{
|
|||||||
BlockRequest req = requests.get(iterateidx);
|
BlockRequest req = requests.get(iterateidx);
|
||||||
Block block = req.tile.block();
|
Block block = req.tile.block();
|
||||||
|
|
||||||
if(req.layer == Layer.shadow){
|
if(req.layer == Layer.block){
|
||||||
block.drawShadow(req.tile);
|
|
||||||
}else if(req.layer == Layer.block){
|
|
||||||
block.draw(req.tile);
|
block.draw(req.tile);
|
||||||
if(block.synthetic() && req.tile.getTeam() != player.getTeam()){
|
if(block.synthetic() && req.tile.getTeam() != player.getTeam()){
|
||||||
block.drawTeam(req.tile);
|
block.drawTeam(req.tile);
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package io.anuke.mindustry.graphics;
|
package io.anuke.mindustry.graphics;
|
||||||
|
|
||||||
public enum Layer{
|
public enum Layer{
|
||||||
/**Drawn under everything.*/
|
|
||||||
shadow,
|
|
||||||
/**Base block layer.*/
|
/**Base block layer.*/
|
||||||
block,
|
block,
|
||||||
/**for placement*/
|
/**for placement*/
|
||||||
|
|||||||
@@ -9,13 +9,12 @@ import io.anuke.arc.graphics.Pixmaps;
|
|||||||
import io.anuke.arc.graphics.Texture;
|
import io.anuke.arc.graphics.Texture;
|
||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
import io.anuke.arc.graphics.g2d.Fill;
|
import io.anuke.arc.graphics.g2d.Fill;
|
||||||
import io.anuke.arc.graphics.g2d.ScissorStack;
|
|
||||||
import io.anuke.arc.graphics.g2d.TextureRegion;
|
import io.anuke.arc.graphics.g2d.TextureRegion;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Rectangle;
|
import io.anuke.arc.math.geom.Rectangle;
|
||||||
import io.anuke.arc.util.Disposable;
|
import io.anuke.arc.util.Disposable;
|
||||||
import io.anuke.mindustry.entities.type.Unit;
|
|
||||||
import io.anuke.mindustry.entities.Units;
|
import io.anuke.mindustry.entities.Units;
|
||||||
|
import io.anuke.mindustry.entities.type.Unit;
|
||||||
import io.anuke.mindustry.game.EventType.TileChangeEvent;
|
import io.anuke.mindustry.game.EventType.TileChangeEvent;
|
||||||
import io.anuke.mindustry.game.EventType.WorldLoadEvent;
|
import io.anuke.mindustry.game.EventType.WorldLoadEvent;
|
||||||
import io.anuke.mindustry.io.MapIO;
|
import io.anuke.mindustry.io.MapIO;
|
||||||
@@ -25,13 +24,13 @@ import static io.anuke.mindustry.Vars.tilesize;
|
|||||||
import static io.anuke.mindustry.Vars.world;
|
import static io.anuke.mindustry.Vars.world;
|
||||||
|
|
||||||
public class MinimapRenderer implements Disposable{
|
public class MinimapRenderer implements Disposable{
|
||||||
private static final int baseSize = 16;
|
private static final float baseSize = 16f;
|
||||||
private final Array<Unit> units = new Array<>();
|
private final Array<Unit> units = new Array<>();
|
||||||
private Pixmap pixmap;
|
private Pixmap pixmap;
|
||||||
private Texture texture;
|
private Texture texture;
|
||||||
private TextureRegion region;
|
private TextureRegion region;
|
||||||
private Rectangle rect = new Rectangle(), scissor = new Rectangle();
|
private Rectangle rect = new Rectangle(), scissor = new Rectangle();
|
||||||
private int zoom = 4;
|
private float zoom = 4;
|
||||||
|
|
||||||
public MinimapRenderer(){
|
public MinimapRenderer(){
|
||||||
Events.on(WorldLoadEvent.class, event -> {
|
Events.on(WorldLoadEvent.class, event -> {
|
||||||
@@ -49,7 +48,11 @@ public class MinimapRenderer implements Disposable{
|
|||||||
|
|
||||||
public void zoomBy(float amount){
|
public void zoomBy(float amount){
|
||||||
zoom += amount;
|
zoom += amount;
|
||||||
zoom = Mathf.clamp(zoom, 1, Math.min(world.width(), world.height()) / baseSize / 2);
|
setZoom(zoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZoom(float amount){
|
||||||
|
zoom = Mathf.clamp(amount, 1f, Math.min(world.width(), world.height()) / baseSize / 2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getZoom(){
|
public float getZoom(){
|
||||||
@@ -69,33 +72,27 @@ public class MinimapRenderer implements Disposable{
|
|||||||
public void drawEntities(float x, float y, float w, float h){
|
public void drawEntities(float x, float y, float w, float h){
|
||||||
updateUnitArray();
|
updateUnitArray();
|
||||||
|
|
||||||
int sz = baseSize * zoom;
|
float sz = baseSize * zoom;
|
||||||
float dx = (Core.camera.position.x / tilesize);
|
float dx = (Core.camera.position.x / tilesize);
|
||||||
float dy = (Core.camera.position.y / tilesize);
|
float dy = (Core.camera.position.y / tilesize);
|
||||||
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
||||||
dy = Mathf.clamp(dy, sz, world.height() - sz);
|
dy = Mathf.clamp(dy, sz, world.height() - sz);
|
||||||
|
|
||||||
if(!ScissorStack.pushScissors(scissor.set(x, y, w, h))){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rect.set((dx - sz) * tilesize, (dy - sz) * tilesize, sz * 2 * tilesize, sz * 2 * tilesize);
|
rect.set((dx - sz) * tilesize, (dy - sz) * tilesize, sz * 2 * tilesize, sz * 2 * tilesize);
|
||||||
|
|
||||||
for(Unit unit : units){
|
for(Unit unit : units){
|
||||||
float rx = (unit.x - rect.x) / rect.width * w, ry = (unit.y - rect.y) / rect.width * h;
|
float rx = (unit.x - rect.x) / rect.width * w, ry = (unit.y - rect.y) / rect.width * h;
|
||||||
Draw.color(unit.getTeam().color);
|
Draw.color(unit.getTeam().color);
|
||||||
Fill.crect(x + rx, y + ry, w / (sz * 2), h / (sz * 2));
|
Fill.rect(x + rx, y + ry, baseSize/2f, baseSize/2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
Draw.color();
|
Draw.color();
|
||||||
|
|
||||||
ScissorStack.popScissors();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TextureRegion getRegion(){
|
public TextureRegion getRegion(){
|
||||||
if(texture == null) return null;
|
if(texture == null) return null;
|
||||||
|
|
||||||
int sz = Mathf.clamp(baseSize * zoom, baseSize, Math.min(world.width(), world.height()));
|
float sz = Mathf.clamp(baseSize * zoom, baseSize, Math.min(world.width(), world.height()));
|
||||||
float dx = (Core.camera.position.x / tilesize);
|
float dx = (Core.camera.position.x / tilesize);
|
||||||
float dy = (Core.camera.position.y / tilesize);
|
float dy = (Core.camera.position.y / tilesize);
|
||||||
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
||||||
@@ -124,7 +121,7 @@ public class MinimapRenderer implements Disposable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateUnitArray(){
|
public void updateUnitArray(){
|
||||||
int sz = baseSize * zoom;
|
float sz = baseSize * zoom;
|
||||||
float dx = (Core.camera.position.x / tilesize);
|
float dx = (Core.camera.position.x / tilesize);
|
||||||
float dy = (Core.camera.position.y / tilesize);
|
float dy = (Core.camera.position.y / tilesize);
|
||||||
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
dx = Mathf.clamp(dx, sz, world.width() - sz);
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import io.anuke.arc.math.geom.Rectangle;
|
|||||||
import io.anuke.arc.math.geom.Vector2;
|
import io.anuke.arc.math.geom.Vector2;
|
||||||
import io.anuke.arc.util.Time;
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.arc.util.Tmp;
|
import io.anuke.arc.util.Tmp;
|
||||||
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.content.Blocks;
|
import io.anuke.mindustry.content.Blocks;
|
||||||
import io.anuke.mindustry.entities.Units;
|
import io.anuke.mindustry.entities.Units;
|
||||||
import io.anuke.mindustry.entities.type.Player;
|
import io.anuke.mindustry.entities.type.Player;
|
||||||
@@ -36,7 +37,7 @@ public class OverlayRenderer{
|
|||||||
|
|
||||||
if(Core.settings.getBool("indicators")){
|
if(Core.settings.getBool("indicators")){
|
||||||
for(Player player : playerGroup.all()){
|
for(Player player : playerGroup.all()){
|
||||||
if(player != player && player.getTeam() == player.getTeam()){
|
if(Vars.player != player && Vars.player.getTeam() == player.getTeam()){
|
||||||
if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f)
|
if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f)
|
||||||
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x, player.y)){
|
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x, player.y)){
|
||||||
|
|
||||||
|
|||||||
75
core/src/io/anuke/mindustry/graphics/Pixelator.java
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
package io.anuke.mindustry.graphics;
|
||||||
|
|
||||||
|
import io.anuke.arc.Core;
|
||||||
|
import io.anuke.arc.graphics.Blending;
|
||||||
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
|
import io.anuke.arc.graphics.glutils.FrameBuffer;
|
||||||
|
import io.anuke.arc.util.Disposable;
|
||||||
|
import io.anuke.mindustry.entities.type.Player;
|
||||||
|
|
||||||
|
import static io.anuke.arc.Core.camera;
|
||||||
|
import static io.anuke.arc.Core.graphics;
|
||||||
|
import static io.anuke.mindustry.Vars.playerGroup;
|
||||||
|
import static io.anuke.mindustry.Vars.renderer;
|
||||||
|
|
||||||
|
public class Pixelator implements Disposable{
|
||||||
|
private FrameBuffer buffer = new FrameBuffer(2, 2);
|
||||||
|
|
||||||
|
public void drawPixelate(){
|
||||||
|
float pre = renderer.getScale();
|
||||||
|
float scale = renderer.getScale();
|
||||||
|
scale = (int)scale;
|
||||||
|
renderer.setScale(scale);
|
||||||
|
camera.width = (int)camera.width;
|
||||||
|
camera.height = (int)camera.height;
|
||||||
|
|
||||||
|
boolean hadShields = Core.settings.getBool("animatedshields");
|
||||||
|
boolean hadWater = Core.settings.getBool("animatedwater");
|
||||||
|
Core.settings.put("animatedwater", false);
|
||||||
|
Core.settings.put("animatedshields", false);
|
||||||
|
graphics.clear(0f, 0f, 0f, 1f);
|
||||||
|
|
||||||
|
float px = Core.camera.position.x, py = Core.camera.position.y;
|
||||||
|
Core.camera.position.set((int)px + ((int)(camera.width) % 2 == 0 ? 0 : 0.5f), (int)py + ((int)(camera.height) % 2 == 0 ? 0 : 0.5f));
|
||||||
|
|
||||||
|
int w = (int)(Core.camera.width);
|
||||||
|
int h = (int)(Core.camera.height);
|
||||||
|
|
||||||
|
if(!graphics.isHidden() && (buffer.getWidth() != w || buffer.getHeight() != h)){
|
||||||
|
buffer.resize(w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
Draw.flush();
|
||||||
|
buffer.begin();
|
||||||
|
renderer.draw();
|
||||||
|
|
||||||
|
Draw.flush();
|
||||||
|
buffer.end();
|
||||||
|
|
||||||
|
Draw.blend(Blending.disabled);
|
||||||
|
Draw.rect(Draw.wrap(buffer.getTexture()), Core.camera.position.x, Core.camera.position.y, Core.camera.width, -Core.camera.height);
|
||||||
|
Draw.blend();
|
||||||
|
|
||||||
|
renderer.drawAndInterpolate(playerGroup, p -> !p.isDead() && !p.isLocal, Player::drawName);
|
||||||
|
|
||||||
|
Core.camera.position.set(px, py);
|
||||||
|
Core.settings.put("animatedwater", hadWater);
|
||||||
|
Core.settings.put("animatedshields", hadShields);
|
||||||
|
renderer.setScale(pre);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void rebind(){
|
||||||
|
if(enabled()){
|
||||||
|
buffer.begin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean enabled(){
|
||||||
|
return Core.settings.getBool("pixelate");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dispose(){
|
||||||
|
buffer.dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ public enum Binding implements KeyBind{
|
|||||||
menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE),
|
menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE),
|
||||||
pause(KeyCode.SPACE),
|
pause(KeyCode.SPACE),
|
||||||
toggle_menus(KeyCode.C),
|
toggle_menus(KeyCode.C),
|
||||||
|
screenshot(KeyCode.P),
|
||||||
player_list(KeyCode.TAB, "multiplayer"),
|
player_list(KeyCode.TAB, "multiplayer"),
|
||||||
chat(KeyCode.ENTER),
|
chat(KeyCode.ENTER),
|
||||||
chat_history_prev(KeyCode.UP),
|
chat_history_prev(KeyCode.UP),
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ import io.anuke.arc.graphics.Color;
|
|||||||
import io.anuke.arc.graphics.Pixmap;
|
import io.anuke.arc.graphics.Pixmap;
|
||||||
import io.anuke.arc.graphics.Pixmap.Format;
|
import io.anuke.arc.graphics.Pixmap.Format;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.util.*;
|
import io.anuke.arc.util.Pack;
|
||||||
|
import io.anuke.arc.util.Strings;
|
||||||
|
import io.anuke.arc.util.Structs;
|
||||||
|
import io.anuke.arc.util.Time;
|
||||||
import io.anuke.mindustry.content.Blocks;
|
import io.anuke.mindustry.content.Blocks;
|
||||||
import io.anuke.mindustry.game.MappableContent;
|
import io.anuke.mindustry.game.MappableContent;
|
||||||
import io.anuke.mindustry.game.Team;
|
import io.anuke.mindustry.game.Team;
|
||||||
@@ -72,6 +75,7 @@ public class MapIO{
|
|||||||
Pixmap floors = new Pixmap(map.width, map.height, Format.RGBA8888);
|
Pixmap floors = new Pixmap(map.width, map.height, Format.RGBA8888);
|
||||||
Pixmap walls = new Pixmap(map.width, map.height, Format.RGBA8888);
|
Pixmap walls = new Pixmap(map.width, map.height, Format.RGBA8888);
|
||||||
int black = Color.rgba8888(Color.BLACK);
|
int black = Color.rgba8888(Color.BLACK);
|
||||||
|
int shade = Color.rgba8888(0f, 0f, 0f, 0.5f);
|
||||||
CachedTile tile = new CachedTile(){
|
CachedTile tile = new CachedTile(){
|
||||||
@Override
|
@Override
|
||||||
public void setFloor(Floor type){
|
public void setFloor(Floor type){
|
||||||
@@ -87,7 +91,10 @@ public class MapIO{
|
|||||||
protected void changed(){
|
protected void changed(){
|
||||||
super.changed();
|
super.changed();
|
||||||
int c = colorFor(Blocks.air, block(), Blocks.air, getTeam());
|
int c = colorFor(Blocks.air, block(), Blocks.air, getTeam());
|
||||||
if(c != black) walls.drawPixel(x, floors.getHeight() - 1 - y, c);
|
if(c != black){
|
||||||
|
walls.drawPixel(x, floors.getHeight() - 1 - y, c);
|
||||||
|
floors.drawPixel(x, floors.getHeight() - 1 - y + 1, shade);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
readTiles(map, (x, y) -> {
|
readTiles(map, (x, y) -> {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public abstract class SaveFileVersion{
|
|||||||
long playtime = stream.readLong();
|
long playtime = stream.readLong();
|
||||||
int build = stream.readInt();
|
int build = stream.readInt();
|
||||||
|
|
||||||
Rules rules = Serialization.readRules(stream);
|
Rules rules = Serialization.readRulesStreamJson(stream);
|
||||||
String map = stream.readUTF();
|
String map = stream.readUTF();
|
||||||
int wave = stream.readInt();
|
int wave = stream.readInt();
|
||||||
return new SaveMeta(version, time, playtime, build, map, wave, rules);
|
return new SaveMeta(version, time, playtime, build, map, wave, rules);
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class Save16 extends SaveFileVersion{
|
|||||||
stream.readInt(); //build
|
stream.readInt(); //build
|
||||||
|
|
||||||
//general state
|
//general state
|
||||||
state.rules = Serialization.readRules(stream);
|
state.rules = Serialization.readRulesStreamJson(stream);
|
||||||
String mapname = stream.readUTF();
|
String mapname = stream.readUTF();
|
||||||
Map map = world.maps.all().find(m -> m.name().equals(mapname));
|
Map map = world.maps.all().find(m -> m.name().equals(mapname));
|
||||||
if(map == null) map = new Map(customMapDirectory.child(mapname), 1, 1, new ObjectMap<>(), true);
|
if(map == null) map = new Map(customMapDirectory.child(mapname), 1, 1, new ObjectMap<>(), true);
|
||||||
@@ -56,7 +56,7 @@ public class Save16 extends SaveFileVersion{
|
|||||||
stream.writeInt(Version.build); //build
|
stream.writeInt(Version.build); //build
|
||||||
|
|
||||||
//--GENERAL STATE--
|
//--GENERAL STATE--
|
||||||
Serialization.writeRules(stream, state.rules);
|
Serialization.writeRulesStreamJson(stream, state.rules);
|
||||||
stream.writeUTF(world.getMap().name()); //map name
|
stream.writeUTF(world.getMap().name()); //map name
|
||||||
|
|
||||||
stream.writeInt(state.wave); //wave
|
stream.writeInt(state.wave); //wave
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ public class Administration{
|
|||||||
public boolean adminPlayer(String id, String usid){
|
public boolean adminPlayer(String id, String usid){
|
||||||
PlayerInfo info = getCreateInfo(id);
|
PlayerInfo info = getCreateInfo(id);
|
||||||
|
|
||||||
if(info.admin)
|
if(info.admin && info.adminUsid != null && info.adminUsid.equals(usid))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
info.adminUsid = usid;
|
info.adminUsid = usid;
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ public class Interpolator{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
|
|
||||||
if(lastUpdated != 0 && updateSpacing != 0){
|
if(lastUpdated != 0 && updateSpacing != 0){
|
||||||
float timeSinceUpdate = Time.timeSinceMillis(lastUpdated);
|
float timeSinceUpdate = Time.timeSinceMillis(lastUpdated);
|
||||||
float alpha = Math.min(timeSinceUpdate / updateSpacing, 2f);
|
float alpha = Math.min(timeSinceUpdate / updateSpacing, 2f);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class Item extends UnlockableContent implements Comparable<Item>{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextureRegion getContentIcon(){
|
public TextureRegion getContentIcon(){
|
||||||
return icon(Icon.large);
|
return icon(Icon.xlarge);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
19
core/src/io/anuke/mindustry/type/LiquidStack.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package io.anuke.mindustry.type;
|
||||||
|
|
||||||
|
public class LiquidStack{
|
||||||
|
public Liquid liquid;
|
||||||
|
public float amount;
|
||||||
|
|
||||||
|
public LiquidStack(Liquid liquid, float amount){
|
||||||
|
this.liquid = liquid;
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(){
|
||||||
|
return "LiquidStack{" +
|
||||||
|
"liquid=" + liquid +
|
||||||
|
", amount=" + amount +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package io.anuke.mindustry.ui;
|
package io.anuke.mindustry.ui;
|
||||||
|
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
|
import io.anuke.arc.collection.Array;
|
||||||
import io.anuke.arc.collection.OrderedMap;
|
import io.anuke.arc.collection.OrderedMap;
|
||||||
import io.anuke.arc.graphics.Color;
|
import io.anuke.arc.graphics.Color;
|
||||||
import io.anuke.arc.scene.ui.layout.Table;
|
import io.anuke.arc.scene.ui.layout.Table;
|
||||||
@@ -45,7 +46,7 @@ public class ContentDisplay{
|
|||||||
BlockStats stats = block.stats;
|
BlockStats stats = block.stats;
|
||||||
|
|
||||||
for(StatCategory cat : stats.toMap().keys()){
|
for(StatCategory cat : stats.toMap().keys()){
|
||||||
OrderedMap<BlockStat, StatValue> map = stats.toMap().get(cat);
|
OrderedMap<BlockStat, Array<StatValue>> map = stats.toMap().get(cat);
|
||||||
|
|
||||||
if(map.size == 0) continue;
|
if(map.size == 0) continue;
|
||||||
|
|
||||||
@@ -56,7 +57,13 @@ public class ContentDisplay{
|
|||||||
table.table(inset -> {
|
table.table(inset -> {
|
||||||
inset.left();
|
inset.left();
|
||||||
inset.add("[LIGHT_GRAY]" + stat.localized() + ":[] ");
|
inset.add("[LIGHT_GRAY]" + stat.localized() + ":[] ");
|
||||||
map.get(stat).display(inset);
|
Array<StatValue> arr = map.get(stat);
|
||||||
|
for(StatValue value : arr){
|
||||||
|
value.display(inset);
|
||||||
|
inset.add().size(10f);
|
||||||
|
}
|
||||||
|
|
||||||
|
//map.get(stat).display(inset);
|
||||||
}).fillX().padLeft(10);
|
}).fillX().padLeft(10);
|
||||||
table.row();
|
table.row();
|
||||||
}
|
}
|
||||||
@@ -134,6 +141,7 @@ public class ContentDisplay{
|
|||||||
title.addImage(mech.getContentIcon()).size(8 * 6);
|
title.addImage(mech.getContentIcon()).size(8 * 6);
|
||||||
title.add("[accent]" + mech.localizedName()).padLeft(5);
|
title.add("[accent]" + mech.localizedName()).padLeft(5);
|
||||||
});
|
});
|
||||||
|
table.left().defaults().left();
|
||||||
|
|
||||||
table.row();
|
table.row();
|
||||||
|
|
||||||
@@ -159,13 +167,17 @@ public class ContentDisplay{
|
|||||||
table.add(Core.bundle.format("mech.ability", Core.bundle.get("mech." + mech.name + ".ability")));
|
table.add(Core.bundle.format("mech.ability", Core.bundle.get("mech." + mech.name + ".ability")));
|
||||||
table.row();
|
table.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
table.add(Core.bundle.format("mech.buildspeed", (int)(mech.buildPower * 100f)));
|
||||||
|
table.row();
|
||||||
|
|
||||||
table.add(Core.bundle.format("mech.health", (int)mech.health));
|
table.add(Core.bundle.format("mech.health", (int)mech.health));
|
||||||
table.row();
|
table.row();
|
||||||
table.add(Core.bundle.format("mech.itemcapacity", mech.itemCapacity));
|
table.add(Core.bundle.format("mech.itemcapacity", mech.itemCapacity));
|
||||||
table.row();
|
table.row();
|
||||||
|
|
||||||
if(mech.drillPower > 0){
|
if(mech.drillPower > 0){
|
||||||
table.add(Core.bundle.format("mech.minespeed", (int) (mech.mineSpeed * 10)));
|
table.add(Core.bundle.format("mech.minespeed", (int)(mech.mineSpeed * 100f)));
|
||||||
table.row();
|
table.row();
|
||||||
table.add(Core.bundle.format("mech.minepower", mech.drillPower));
|
table.add(Core.bundle.format("mech.minepower", mech.drillPower));
|
||||||
table.row();
|
table.row();
|
||||||
@@ -196,7 +208,7 @@ public class ContentDisplay{
|
|||||||
|
|
||||||
table.add(Core.bundle.format("unit.health", unit.health));
|
table.add(Core.bundle.format("unit.health", unit.health));
|
||||||
table.row();
|
table.row();
|
||||||
table.add(Core.bundle.format("unit.speed", Strings.toFixed(unit.speed, 1)));
|
table.add(Core.bundle.format("unit.speed", Strings.fixed(unit.speed, 1)));
|
||||||
table.row();
|
table.row();
|
||||||
table.row();
|
table.row();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class ItemDisplay extends Table{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ItemDisplay(Item item, int amount){
|
public ItemDisplay(Item item, int amount){
|
||||||
add(new ItemImage(new ItemStack(item, amount))).size(8*3);
|
add(new ItemImage(new ItemStack(item, amount))).size(8*4);
|
||||||
add(item.localizedName()).padLeft(4);
|
add(item.localizedName()).padLeft(4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class ItemImage extends Stack{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ItemImage(ItemStack stack){
|
public ItemImage(ItemStack stack){
|
||||||
add(new Image(stack.item.icon(Icon.medium)));
|
add(new Image(stack.item.icon(Icon.large)));
|
||||||
|
|
||||||
if(stack.amount != 0){
|
if(stack.amount != 0){
|
||||||
Table t = new Table().left().bottom();
|
Table t = new Table().left().bottom();
|
||||||
|
|||||||
@@ -1,14 +1,31 @@
|
|||||||
package io.anuke.mindustry.ui;
|
package io.anuke.mindustry.ui;
|
||||||
|
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.arc.graphics.Color;
|
||||||
import io.anuke.arc.scene.ui.Image;
|
import io.anuke.arc.scene.ui.Image;
|
||||||
|
import io.anuke.arc.scene.ui.layout.Stack;
|
||||||
import io.anuke.arc.scene.ui.layout.Table;
|
import io.anuke.arc.scene.ui.layout.Table;
|
||||||
|
import io.anuke.arc.util.Strings;
|
||||||
|
import io.anuke.mindustry.type.Liquid;
|
||||||
|
import io.anuke.mindustry.world.meta.StatUnit;
|
||||||
|
|
||||||
/**An ItemDisplay, but for liquids.*/
|
/**An ItemDisplay, but for liquids.*/
|
||||||
public class LiquidDisplay extends Table{
|
public class LiquidDisplay extends Table{
|
||||||
|
|
||||||
public LiquidDisplay(Liquid liquid){
|
public LiquidDisplay(Liquid liquid, float amount, boolean perSecond){
|
||||||
add(new Image(liquid.getContentIcon())).size(8*3);
|
add(new Stack(){{
|
||||||
add(liquid.localizedName()).padLeft(3);
|
add(new Image(liquid.getContentIcon()));
|
||||||
|
|
||||||
|
if(amount != 0){
|
||||||
|
Table t = new Table().left().bottom();
|
||||||
|
t.add(Strings.autoFixed(amount, 1));
|
||||||
|
add(t);
|
||||||
|
}
|
||||||
|
}}).size(8*4).padRight(3);
|
||||||
|
|
||||||
|
if(perSecond){
|
||||||
|
add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.LIGHT_GRAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
add(liquid.localizedName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,35 @@ package io.anuke.mindustry.ui;
|
|||||||
|
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
import io.anuke.arc.graphics.g2d.Draw;
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
|
import io.anuke.arc.input.KeyCode;
|
||||||
import io.anuke.arc.scene.Element;
|
import io.anuke.arc.scene.Element;
|
||||||
|
import io.anuke.arc.scene.event.ClickListener;
|
||||||
import io.anuke.arc.scene.event.InputEvent;
|
import io.anuke.arc.scene.event.InputEvent;
|
||||||
import io.anuke.arc.scene.event.InputListener;
|
import io.anuke.arc.scene.event.InputListener;
|
||||||
|
import io.anuke.arc.scene.event.Touchable;
|
||||||
import io.anuke.arc.scene.ui.layout.Container;
|
import io.anuke.arc.scene.ui.layout.Container;
|
||||||
|
import io.anuke.arc.scene.ui.layout.Unit;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.renderer;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
|
|
||||||
public class Minimap extends Container<Element>{
|
public class Minimap extends Container<Element>{
|
||||||
|
|
||||||
public Minimap(){
|
public Minimap(){
|
||||||
super(new Element(){
|
background("pane");
|
||||||
|
float margin = 5f;
|
||||||
|
touchable(Touchable.enabled);
|
||||||
|
|
||||||
|
addChild(new Element(){
|
||||||
|
{
|
||||||
|
setSize(Unit.dp.scl(140f));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void act(float delta){
|
||||||
|
setPosition(margin, margin);
|
||||||
|
|
||||||
|
super.act(delta);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
@@ -26,10 +44,8 @@ public class Minimap extends Container<Element>{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
background("pane");
|
|
||||||
|
|
||||||
size(140f);
|
size(140f);
|
||||||
margin(5f);
|
margin(margin);
|
||||||
|
|
||||||
addListener(new InputListener(){
|
addListener(new InputListener(){
|
||||||
@Override
|
@Override
|
||||||
@@ -39,6 +55,42 @@ public class Minimap extends Container<Element>{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addListener(new ClickListener(){
|
||||||
|
{
|
||||||
|
tapSquareSize = Unit.dp.scl(11f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void touchUp(InputEvent event, float x, float y, int pointer, KeyCode button){
|
||||||
|
if(inTapSquare()){
|
||||||
|
super.touchUp(event, x, y, pointer, button);
|
||||||
|
}else{
|
||||||
|
pressed = false;
|
||||||
|
pressedPointer = -1;
|
||||||
|
pressedButton = null;
|
||||||
|
cancelled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void touchDragged(InputEvent event, float x, float y, int pointer){
|
||||||
|
if(!inTapSquare(x, y)){
|
||||||
|
invalidateTapSquare();
|
||||||
|
}
|
||||||
|
super.touchDragged(event, x, y, pointer);
|
||||||
|
|
||||||
|
if(mobile){
|
||||||
|
float max = Math.min(world.width(), world.height()) / 16f / 2f;
|
||||||
|
renderer.minimap.setZoom(1f + y / height * (max - 1f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clicked(InputEvent event, float x, float y){
|
||||||
|
ui.minimap.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
update(() -> {
|
update(() -> {
|
||||||
|
|
||||||
Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
|
Element e = Core.scene.hit(Core.input.mouseX(), Core.input.mouseY(), true);
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ public class CustomRulesDialog extends FloatingDialog{
|
|||||||
main.row();
|
main.row();
|
||||||
number("$rules.buildcostmultiplier", f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier);
|
number("$rules.buildcostmultiplier", f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier);
|
||||||
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier);
|
||||||
|
number("$rules.unitbuildspeedmultiplier", f -> rules.unitBuildSpeedMultiplier = f, () -> rules.unitBuildSpeedMultiplier);
|
||||||
|
number("$rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier);
|
||||||
|
number("$rules.playerdamagemultiplier", f -> rules.playerDamageMultiplier = f, () -> rules.playerDamageMultiplier);
|
||||||
number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f*tilesize, () -> Math.min(rules.enemyCoreBuildRadius/tilesize, 200));
|
number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f*tilesize, () -> Math.min(rules.enemyCoreBuildRadius/tilesize, 200));
|
||||||
number("$rules.respawntime", f -> rules.respawnTime = f*60f, () -> rules.respawnTime/60f);
|
number("$rules.respawntime", f -> rules.respawnTime = f*60f, () -> rules.respawnTime/60f);
|
||||||
number("$rules.wavespacing", f -> rules.waveSpacing = f*60f, () -> rules.waveSpacing/60f);
|
number("$rules.wavespacing", f -> rules.waveSpacing = f*60f, () -> rules.waveSpacing/60f);
|
||||||
|
|||||||
64
core/src/io/anuke/mindustry/ui/dialogs/MinimapDialog.java
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
package io.anuke.mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import io.anuke.arc.Core;
|
||||||
|
import io.anuke.arc.graphics.Color;
|
||||||
|
import io.anuke.arc.graphics.g2d.Draw;
|
||||||
|
import io.anuke.arc.input.KeyCode;
|
||||||
|
import io.anuke.arc.scene.event.InputEvent;
|
||||||
|
import io.anuke.arc.scene.event.InputListener;
|
||||||
|
import io.anuke.arc.scene.ui.layout.Unit;
|
||||||
|
|
||||||
|
import static io.anuke.mindustry.Vars.mobile;
|
||||||
|
import static io.anuke.mindustry.Vars.renderer;
|
||||||
|
|
||||||
|
public class MinimapDialog extends FloatingDialog{
|
||||||
|
|
||||||
|
public MinimapDialog(){
|
||||||
|
super("$minimap");
|
||||||
|
setFillParent(false);
|
||||||
|
|
||||||
|
shown(this::setup);
|
||||||
|
|
||||||
|
addCloseButton();
|
||||||
|
shouldPause = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup(){
|
||||||
|
cont.clear();
|
||||||
|
float size = Math.min(Core.graphics.getWidth(), Core.graphics.getHeight()) / Unit.dp.scl(1f) / 1.3f;
|
||||||
|
|
||||||
|
cont.table("pane", t -> {
|
||||||
|
t.addRect((x, y, width, height) -> {
|
||||||
|
if(renderer.minimap.getRegion() == null) return;
|
||||||
|
Draw.color(Color.WHITE);
|
||||||
|
Draw.rect(renderer.minimap.getRegion(), x + width/2f, y + height/2f, width, height);
|
||||||
|
|
||||||
|
if(renderer.minimap.getTexture() != null){
|
||||||
|
renderer.minimap.drawEntities(x, y, width, height);
|
||||||
|
}
|
||||||
|
}).grow();
|
||||||
|
}).size(size);
|
||||||
|
|
||||||
|
cont.addListener(new InputListener(){
|
||||||
|
@Override
|
||||||
|
public boolean scrolled(InputEvent event, float x, float y, float amountx, float amounty){
|
||||||
|
renderer.minimap.zoomBy(amounty);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean touchDown(InputEvent event, float x, float y, int pointer, KeyCode button){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void touchDragged(InputEvent event, float x, float y, int pointer){
|
||||||
|
if(mobile){
|
||||||
|
renderer.minimap.zoomBy(Core.input.deltaY(pointer) / 30f / Unit.dp.scl(1f));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Core.app.post(() -> Core.scene.setScrollFocus(cont));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -209,10 +209,13 @@ public class SettingsMenuDialog extends SettingsDialog{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
graphics.checkPref("minimap", !mobile);
|
||||||
graphics.checkPref("fps", false);
|
graphics.checkPref("fps", false);
|
||||||
graphics.checkPref("indicators", true);
|
graphics.checkPref("indicators", true);
|
||||||
graphics.checkPref("animatedwater", !mobile);
|
graphics.checkPref("animatedwater", false);
|
||||||
|
graphics.checkPref("animatedshields", !mobile);
|
||||||
graphics.checkPref("lasers", true);
|
graphics.checkPref("lasers", true);
|
||||||
|
graphics.checkPref("pixelate", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void back(){
|
private void back(){
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ import io.anuke.mindustry.world.Tile;
|
|||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
|
|
||||||
public class BlockInventoryFragment extends Fragment{
|
public class BlockInventoryFragment extends Fragment{
|
||||||
private final static float holdWithdraw = 40f;
|
private final static float holdWithdraw = 20f;
|
||||||
|
|
||||||
private Table table;
|
private Table table;
|
||||||
private Tile tile;
|
private Tile tile;
|
||||||
@@ -187,9 +187,9 @@ public class BlockInventoryFragment extends Fragment{
|
|||||||
private String round(float f){
|
private String round(float f){
|
||||||
f = (int) f;
|
f = (int) f;
|
||||||
if(f >= 1000000){
|
if(f >= 1000000){
|
||||||
return Strings.toFixed(f / 1000000f, 1) + "[gray]mil[]";
|
return Strings.fixed(f / 1000000f, 1) + "[gray]mil[]";
|
||||||
}else if(f >= 1000){
|
}else if(f >= 1000){
|
||||||
return Strings.toFixed(f / 1000, 1) + "k";
|
return Strings.fixed(f / 1000, 1) + "k";
|
||||||
}else{
|
}else{
|
||||||
return (int) f + "";
|
return (int) f + "";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import io.anuke.mindustry.net.Net;
|
|||||||
import io.anuke.mindustry.net.Packets.AdminAction;
|
import io.anuke.mindustry.net.Packets.AdminAction;
|
||||||
import io.anuke.mindustry.ui.Bar;
|
import io.anuke.mindustry.ui.Bar;
|
||||||
import io.anuke.mindustry.ui.IntFormat;
|
import io.anuke.mindustry.ui.IntFormat;
|
||||||
|
import io.anuke.mindustry.ui.Minimap;
|
||||||
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.*;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
@@ -154,19 +155,23 @@ public class HudFragment extends Fragment{
|
|||||||
.grow()).fillX().visible(() -> state.rules.waves && state.boss() != null).height(60f).get();
|
.grow()).fillX().visible(() -> state.rules.waves && state.boss() != null).height(60f).get();
|
||||||
stuff.row();
|
stuff.row();
|
||||||
}).visible(() -> shown);
|
}).visible(() -> shown);
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//fps display
|
//fps display
|
||||||
parent.fill(info -> {
|
cont.table(info -> {
|
||||||
info.top().right().margin(4).visible(() -> Core.settings.getBool("fps") && !state.is(State.menu));
|
info.top().left().margin(4).visible(() -> Core.settings.getBool("fps"));
|
||||||
|
info.update(() -> info.setTranslation(state.rules.waves ? 0f : -Unit.dp.scl(dsize*4 + 3), 0));
|
||||||
IntFormat fps = new IntFormat("fps");
|
IntFormat fps = new IntFormat("fps");
|
||||||
IntFormat ping = new IntFormat("ping");
|
IntFormat ping = new IntFormat("ping");
|
||||||
info.label(() -> fps.get(Core.graphics.getFramesPerSecond())).right();
|
|
||||||
|
info.label(() -> fps.get(Core.graphics.getFramesPerSecond())).left();
|
||||||
info.row();
|
info.row();
|
||||||
info.label(() -> ping.get(Net.getPing())).visible(Net::client).right();
|
info.label(() -> ping.get(Net.getPing())).visible(Net::client).left();
|
||||||
|
}).top().left();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//minimap
|
||||||
|
parent.fill(t -> t.top().right().add(new Minimap()).visible(() -> !state.is(State.menu) && Core.settings.getBool("minimap")));
|
||||||
|
|
||||||
//spawner warning
|
//spawner warning
|
||||||
parent.fill(t -> {
|
parent.fill(t -> {
|
||||||
t.touchable(Touchable.disabled);
|
t.touchable(Touchable.disabled);
|
||||||
@@ -262,6 +267,7 @@ public class HudFragment extends Fragment{
|
|||||||
testb[0] = button;
|
testb[0] = button;
|
||||||
|
|
||||||
button.getStyle().disabledFontColor = Color.WHITE;
|
button.getStyle().disabledFontColor = Color.WHITE;
|
||||||
|
button.margin(16f);
|
||||||
button.visible(() ->
|
button.visible(() ->
|
||||||
world.isZone() &&
|
world.isZone() &&
|
||||||
world.getZone().metCondition() &&
|
world.getZone().metCondition() &&
|
||||||
@@ -277,8 +283,8 @@ public class HudFragment extends Fragment{
|
|||||||
button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" +
|
button.setText(state.enemies() > 0 ? Core.bundle.format("launch.unable", state.enemies()) : Core.bundle.get("launch") + "\n" +
|
||||||
Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod));
|
Core.bundle.format("launch.next", state.wave + world.getZone().launchPeriod));
|
||||||
|
|
||||||
button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Pal.accent,
|
button.getLabel().setColor(Tmp.c1.set(Color.WHITE).lerp(state.enemies() > 0 ? Color.WHITE : Color.SCARLET,
|
||||||
Mathf.absin(Time.time(), 7f, 1f)));
|
Mathf.absin(Time.time(), 2f, 1f)));
|
||||||
});
|
});
|
||||||
|
|
||||||
button.setDisabled(() -> state.enemies() > 0);
|
button.setDisabled(() -> state.enemies() > 0);
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class MenuFragment extends Fragment{
|
|||||||
join = new MobileButton("icon-add", isize, "$joingame", ui.join::show),
|
join = new MobileButton("icon-add", isize, "$joingame", ui.join::show),
|
||||||
editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)),
|
editor = new MobileButton("icon-editor", isize, "$editor", () -> ui.loadAnd(ui.editor::show)),
|
||||||
tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show),
|
tools = new MobileButton("icon-tools", isize, "$settings", ui.settings::show),
|
||||||
donate = new MobileButton("icon-donate", isize, "$donate", Platform.instance::openDonations);
|
donate = new MobileButton("icon-donate", isize, "$donate", () -> Core.net.openURI(donationURL));
|
||||||
|
|
||||||
if(Core.graphics.getWidth() > Core.graphics.getHeight()){
|
if(Core.graphics.getWidth() > Core.graphics.getHeight()){
|
||||||
container.add(play);
|
container.add(play);
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ public class PlacementFragment extends Fragment{
|
|||||||
topTable.table(header -> {
|
topTable.table(header -> {
|
||||||
header.left();
|
header.left();
|
||||||
header.add(new Image(lastDisplay.icon(Icon.medium))).size(8 * 4);
|
header.add(new Image(lastDisplay.icon(Icon.medium))).size(8 * 4);
|
||||||
header.labelWrap(() -> !unlocked(lastDisplay) ? Core.bundle.get("blocks.unknown") : lastDisplay.localizedName)
|
header.labelWrap(() -> !unlocked(lastDisplay) ? Core.bundle.get("block.unknown") : lastDisplay.localizedName)
|
||||||
.left().width(190f).padLeft(5);
|
.left().width(190f).padLeft(5);
|
||||||
header.add().growX();
|
header.add().growX();
|
||||||
if(unlocked(lastDisplay)){
|
if(unlocked(lastDisplay)){
|
||||||
|
|||||||
@@ -69,10 +69,10 @@ public class PlayerListFragment extends Fragment{
|
|||||||
|
|
||||||
playerGroup.all().sort((p1, p2) -> p1.getTeam().compareTo(p2.getTeam()));
|
playerGroup.all().sort((p1, p2) -> p1.getTeam().compareTo(p2.getTeam()));
|
||||||
|
|
||||||
playerGroup.forEach(player -> {
|
playerGroup.forEach(user -> {
|
||||||
NetConnection connection = player.con;
|
NetConnection connection = user.con;
|
||||||
|
|
||||||
if(connection == null && Net.server() && !player.isLocal) return;
|
if(connection == null && Net.server() && !user.isLocal) return;
|
||||||
|
|
||||||
Table button = new Table();
|
Table button = new Table();
|
||||||
button.left();
|
button.left();
|
||||||
@@ -90,15 +90,15 @@ public class PlayerListFragment extends Fragment{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
table.margin(8);
|
table.margin(8);
|
||||||
table.add(new Image(player.mech.iconRegion)).grow();
|
table.add(new Image(user.mech.iconRegion)).grow();
|
||||||
|
|
||||||
button.add(table).size(h);
|
button.add(table).size(h);
|
||||||
button.labelWrap("[#" + player.color.toString().toUpperCase() + "]" + player.name).width(170f).pad(10);
|
button.labelWrap("[#" + user.color.toString().toUpperCase() + "]" + user.name).width(170f).pad(10);
|
||||||
button.add().grow();
|
button.add().grow();
|
||||||
|
|
||||||
button.addImage("icon-admin").size(14 * 2).visible(() -> player.isAdmin && !(!player.isLocal && Net.server())).padRight(5).get().updateVisibility();
|
button.addImage("icon-admin").size(14 * 2).visible(() -> user.isAdmin && !(!user.isLocal && Net.server())).padRight(5).get().updateVisibility();
|
||||||
|
|
||||||
if((Net.server() || player.isAdmin) && !player.isLocal && (!player.isAdmin || Net.server())){
|
if((Net.server() || player.isAdmin) && !user.isLocal && (!user.isAdmin || Net.server())){
|
||||||
button.add().growY();
|
button.add().growY();
|
||||||
|
|
||||||
float bs = (h) / 2f;
|
float bs = (h) / 2f;
|
||||||
@@ -107,36 +107,36 @@ public class PlayerListFragment extends Fragment{
|
|||||||
t.defaults().size(bs);
|
t.defaults().size(bs);
|
||||||
|
|
||||||
t.addImageButton("icon-ban", "clear-partial", 14 * 2,
|
t.addImageButton("icon-ban", "clear-partial", 14 * 2,
|
||||||
() -> ui.showConfirm("$confirm", "$confirmban", () -> Call.onAdminRequest(player, AdminAction.ban)));
|
() -> ui.showConfirm("$confirm", "$confirmban", () -> Call.onAdminRequest(user, AdminAction.ban)));
|
||||||
t.addImageButton("icon-cancel", "clear-partial", 16 * 2,
|
t.addImageButton("icon-cancel", "clear-partial", 16 * 2,
|
||||||
() -> ui.showConfirm("$confirm", "$confirmkick", () -> Call.onAdminRequest(player, AdminAction.kick)));
|
() -> ui.showConfirm("$confirm", "$confirmkick", () -> Call.onAdminRequest(user, AdminAction.kick)));
|
||||||
|
|
||||||
t.row();
|
t.row();
|
||||||
|
|
||||||
t.addImageButton("icon-admin", "clear-toggle-partial", 14 * 2, () -> {
|
t.addImageButton("icon-admin", "clear-toggle-partial", 14 * 2, () -> {
|
||||||
if(Net.client()) return;
|
if(Net.client()) return;
|
||||||
|
|
||||||
String id = player.uuid;
|
String id = user.uuid;
|
||||||
|
|
||||||
if(netServer.admins.isAdmin(id, connection.address)){
|
if(netServer.admins.isAdmin(id, connection.address)){
|
||||||
ui.showConfirm("$confirm", "$confirmunadmin", () -> netServer.admins.unAdminPlayer(id));
|
ui.showConfirm("$confirm", "$confirmunadmin", () -> netServer.admins.unAdminPlayer(id));
|
||||||
}else{
|
}else{
|
||||||
ui.showConfirm("$confirm", "$confirmadmin", () -> netServer.admins.adminPlayer(id, player.usid));
|
ui.showConfirm("$confirm", "$confirmadmin", () -> netServer.admins.adminPlayer(id, user.usid));
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.update(b -> b.setChecked(player.isAdmin))
|
.update(b -> b.setChecked(user.isAdmin))
|
||||||
.disabled(b -> Net.client())
|
.disabled(b -> Net.client())
|
||||||
.touchable(() -> Net.client() ? Touchable.disabled : Touchable.enabled)
|
.touchable(() -> Net.client() ? Touchable.disabled : Touchable.enabled)
|
||||||
.checked(player.isAdmin);
|
.checked(user.isAdmin);
|
||||||
|
|
||||||
t.addImageButton("icon-zoom-small", "clear-partial", 14 * 2, () -> ui.showError("Currently unimplemented.")/*Call.onAdminRequest(player, AdminAction.trace)*/);
|
t.addImageButton("icon-zoom-small", "clear-partial", 14 * 2, () -> ui.showError("Currently unimplemented.")/*Call.onAdminRequest(user, AdminAction.trace)*/);
|
||||||
|
|
||||||
}).padRight(12).size(bs + 10f, bs);
|
}).padRight(12).size(bs + 10f, bs);
|
||||||
}
|
}
|
||||||
|
|
||||||
content.add(button).padBottom(-6).width(350f).maxHeight(h + 14);
|
content.add(button).padBottom(-6).width(350f).maxHeight(h + 14);
|
||||||
content.row();
|
content.row();
|
||||||
content.addImage("blank").height(3f).color(state.rules.pvp ? player.getTeam().color : Pal.accent).growX();
|
content.addImage("blank").height(3f).color(state.rules.pvp ? user.getTeam().color : Pal.accent).growX();
|
||||||
content.row();
|
content.row();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import io.anuke.mindustry.ui.Bar;
|
|||||||
import io.anuke.mindustry.ui.ContentDisplay;
|
import io.anuke.mindustry.ui.ContentDisplay;
|
||||||
import io.anuke.mindustry.world.consumers.Consume;
|
import io.anuke.mindustry.world.consumers.Consume;
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeLiquid;
|
import io.anuke.mindustry.world.consumers.ConsumeLiquid;
|
||||||
import io.anuke.mindustry.world.consumers.ConsumePower;
|
import io.anuke.mindustry.world.consumers.ConsumeType;
|
||||||
import io.anuke.mindustry.world.meta.*;
|
import io.anuke.mindustry.world.meta.*;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -95,6 +95,8 @@ public class Block extends BlockStorage{
|
|||||||
public boolean canOverdrive = true;
|
public boolean canOverdrive = true;
|
||||||
/**Whether the icon region has an outline added.*/
|
/**Whether the icon region has an outline added.*/
|
||||||
public boolean outlineIcon = false;
|
public boolean outlineIcon = false;
|
||||||
|
/**Whether this block has a shadow under it.*/
|
||||||
|
public boolean hasShadow = true;
|
||||||
|
|
||||||
/**Cost of constructing this block.*/
|
/**Cost of constructing this block.*/
|
||||||
public ItemStack[] buildRequirements = new ItemStack[]{};
|
public ItemStack[] buildRequirements = new ItemStack[]{};
|
||||||
@@ -106,6 +108,9 @@ public class Block extends BlockStorage{
|
|||||||
public BooleanProvider buildVisibility = () -> false;
|
public BooleanProvider buildVisibility = () -> false;
|
||||||
public boolean alwaysUnlocked = false;
|
public boolean alwaysUnlocked = false;
|
||||||
|
|
||||||
|
protected TextureRegion[] cacheRegions = {};
|
||||||
|
protected Array<String> cacheRegionStrings = new Array<>();
|
||||||
|
|
||||||
protected Array<Tile> tempTiles = new Array<>();
|
protected Array<Tile> tempTiles = new Array<>();
|
||||||
protected TextureRegion[] icons = new TextureRegion[Icon.values().length];
|
protected TextureRegion[] icons = new TextureRegion[Icon.values().length];
|
||||||
protected TextureRegion[] generatedIcons;
|
protected TextureRegion[] generatedIcons;
|
||||||
@@ -161,7 +166,7 @@ public class Block extends BlockStorage{
|
|||||||
if(tile == null || tile.entity == null || tile.entity.power == null) return out;
|
if(tile == null || tile.entity == null || tile.entity.power == null) return out;
|
||||||
|
|
||||||
for(Tile other : tile.entity.proximity()){
|
for(Tile other : tile.entity.proximity()){
|
||||||
if(other.entity.power != null && !(consumesPower && other.block().consumesPower && !outputsPower && !other.block().outputsPower)
|
if(other != null && other.entity != null && other.entity.power != null && !(consumesPower && other.block().consumesPower && !outputsPower && !other.block().outputsPower)
|
||||||
&& !tile.entity.power.links.contains(other.pos())){
|
&& !tile.entity.power.links.contains(other.pos())){
|
||||||
out.add(other);
|
out.add(other);
|
||||||
}
|
}
|
||||||
@@ -205,6 +210,8 @@ public class Block extends BlockStorage{
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void drawPlaceText(String text, int x, int y, boolean valid){
|
protected void drawPlaceText(String text, int x, int y, boolean valid){
|
||||||
|
if(renderer.pixelator.enabled()) return;
|
||||||
|
|
||||||
Color color = valid ? Pal.accent : Pal.remove;
|
Color color = valid ? Pal.accent : Pal.remove;
|
||||||
BitmapFont font = Core.scene.skin.getFont("default-font");
|
BitmapFont font = Core.scene.skin.getFont("default-font");
|
||||||
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
|
GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new);
|
||||||
@@ -230,10 +237,6 @@ public class Block extends BlockStorage{
|
|||||||
Draw.rect(region, tile.drawx(), tile.drawy(), rotate ? tile.getRotation() * 90 : 0);
|
Draw.rect(region, tile.drawx(), tile.drawy(), rotate ? tile.getRotation() * 90 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawShadow(Tile tile){
|
|
||||||
draw(tile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void drawTeam(Tile tile){
|
public void drawTeam(Tile tile){
|
||||||
Draw.color(tile.getTeam().color);
|
Draw.color(tile.getTeam().color);
|
||||||
Draw.rect("block-border", tile.drawx() - size * tilesize/2f + 4, tile.drawy() - size * tilesize/2f + 4);
|
Draw.rect("block-border", tile.drawx() - size * tilesize/2f + 4, tile.drawy() - size * tilesize/2f + 4);
|
||||||
@@ -289,7 +292,7 @@ public class Block extends BlockStorage{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TextureRegion getContentIcon(){
|
public TextureRegion getContentIcon(){
|
||||||
return icon(Icon.medium);
|
return icon(Icon.large);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -318,12 +321,28 @@ public class Block extends BlockStorage{
|
|||||||
setStats();
|
setStats();
|
||||||
setBars();
|
setBars();
|
||||||
|
|
||||||
consumes.checkRequired(this);
|
consumes.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(){
|
public void load(){
|
||||||
region = Core.atlas.find(name);
|
region = Core.atlas.find(name);
|
||||||
|
|
||||||
|
cacheRegions = new TextureRegion[cacheRegionStrings.size];
|
||||||
|
for(int i = 0; i < cacheRegions.length; i++){
|
||||||
|
cacheRegions[i] = Core.atlas.find(cacheRegionStrings.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Adds a region by name to be loaded, with the final name "{name}-suffix". Returns an ID to looks this region up by in {@link #reg(int)}.*/
|
||||||
|
protected int reg(String suffix){
|
||||||
|
cacheRegionStrings.add(name + suffix);
|
||||||
|
return cacheRegionStrings.size - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**Returns an internally cached region by ID.*/
|
||||||
|
protected TextureRegion reg(int id){
|
||||||
|
return cacheRegions[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when the block is tapped. */
|
/** Called when the block is tapped. */
|
||||||
@@ -376,7 +395,7 @@ public class Block extends BlockStorage{
|
|||||||
stats.add(BlockStat.size, "{0}x{0}", size);
|
stats.add(BlockStat.size, "{0}x{0}", size);
|
||||||
stats.add(BlockStat.health, health, StatUnit.none);
|
stats.add(BlockStat.health, health, StatUnit.none);
|
||||||
|
|
||||||
consumes.forEach(cons -> cons.display(stats));
|
consumes.display(stats);
|
||||||
|
|
||||||
// Note: Power stats are added by the consumers.
|
// Note: Power stats are added by the consumers.
|
||||||
if(hasLiquids) stats.add(BlockStat.liquidCapacity, liquidCapacity, StatUnit.liquidUnits);
|
if(hasLiquids) stats.add(BlockStat.liquidCapacity, liquidCapacity, StatUnit.liquidUnits);
|
||||||
@@ -388,25 +407,25 @@ public class Block extends BlockStorage{
|
|||||||
|
|
||||||
if(hasLiquids){
|
if(hasLiquids){
|
||||||
Function<TileEntity, Liquid> current;
|
Function<TileEntity, Liquid> current;
|
||||||
if(consumes.has(ConsumeLiquid.class)){
|
if(consumes.has(ConsumeType.liquid) && consumes.get(ConsumeType.liquid) instanceof ConsumeLiquid){
|
||||||
Liquid liquid = consumes.liquid();
|
Liquid liquid = consumes.<ConsumeLiquid>get(ConsumeType.liquid).liquid;
|
||||||
current = entity -> liquid;
|
current = entity -> liquid;
|
||||||
}else{
|
}else{
|
||||||
current = entity -> entity.liquids.current();
|
current = entity -> entity.liquids.current();
|
||||||
}
|
}
|
||||||
bars.add("liquid", entity -> new Bar(() -> entity.liquids.get(current.get(entity)) <= 0.001f ? Core.bundle.get("blocks.liquid") : current.get(entity).localizedName(), () -> current.get(entity).color, () -> entity.liquids.get(current.get(entity)) / liquidCapacity));
|
bars.add("liquid", entity -> new Bar(() -> entity.liquids.get(current.get(entity)) <= 0.001f ? Core.bundle.get("bar.liquid") : current.get(entity).localizedName(), () -> current.get(entity).color, () -> entity.liquids.get(current.get(entity)) / liquidCapacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hasPower && consumes.has(ConsumePower.class)){
|
if(hasPower && consumes.hasPower()){
|
||||||
boolean buffered = consumes.get(ConsumePower.class).isBuffered;
|
boolean buffered = consumes.getPower().isBuffered;
|
||||||
float capacity = consumes.get(ConsumePower.class).powerCapacity;
|
float capacity = consumes.getPower().powerCapacity;
|
||||||
|
|
||||||
bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("blocks.powerbalance", Float.isNaN(entity.power.satisfaction * capacity) ? "<ERROR>" : (int)(entity.power.satisfaction * capacity)) :
|
bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.satisfaction * capacity) ? "<ERROR>" : (int)(entity.power.satisfaction * capacity)) :
|
||||||
Core.bundle.get("blocks.power"), () -> Pal.powerBar, () -> entity.power.satisfaction));
|
Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> entity.power.satisfaction));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hasItems && configurable){
|
if(hasItems && configurable){
|
||||||
bars.add("items", entity -> new Bar(() -> Core.bundle.format("blocks.items", entity.items.total()), () -> Pal.items, () -> (float)entity.items.total() / itemCapacity));
|
bars.add("items", entity -> new Bar(() -> Core.bundle.format("bar.items", entity.items.total()), () -> Pal.items, () -> (float)entity.items.total() / itemCapacity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -458,8 +477,8 @@ public class Block extends BlockStorage{
|
|||||||
explosiveness += tile.entity.liquids.sum((liquid, amount) -> liquid.flammability * amount / 2f);
|
explosiveness += tile.entity.liquids.sum((liquid, amount) -> liquid.flammability * amount / 2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(consumes.has(ConsumePower.class) && consumes.get(ConsumePower.class).isBuffered){
|
if(consumes.hasPower() && consumes.getPower().isBuffered){
|
||||||
power += tile.entity.power.satisfaction * consumes.get(ConsumePower.class).powerCapacity;
|
power += tile.entity.power.satisfaction * consumes.getPower().powerCapacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hasLiquids){
|
if(hasLiquids){
|
||||||
|
|||||||
@@ -12,15 +12,10 @@ import io.anuke.mindustry.entities.type.TileEntity;
|
|||||||
import io.anuke.mindustry.entities.type.Unit;
|
import io.anuke.mindustry.entities.type.Unit;
|
||||||
import io.anuke.mindustry.game.UnlockableContent;
|
import io.anuke.mindustry.game.UnlockableContent;
|
||||||
import io.anuke.mindustry.type.Item;
|
import io.anuke.mindustry.type.Item;
|
||||||
import io.anuke.mindustry.type.ItemStack;
|
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.mindustry.type.Liquid;
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeItem;
|
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeItems;
|
|
||||||
import io.anuke.mindustry.world.consumers.ConsumeLiquid;
|
|
||||||
import io.anuke.mindustry.world.consumers.Consumers;
|
import io.anuke.mindustry.world.consumers.Consumers;
|
||||||
import io.anuke.mindustry.world.meta.BlockBars;
|
import io.anuke.mindustry.world.meta.BlockBars;
|
||||||
import io.anuke.mindustry.world.meta.BlockStats;
|
import io.anuke.mindustry.world.meta.BlockStats;
|
||||||
import io.anuke.mindustry.world.meta.Producers;
|
|
||||||
|
|
||||||
public abstract class BlockStorage extends UnlockableContent{
|
public abstract class BlockStorage extends UnlockableContent{
|
||||||
public boolean hasItems;
|
public boolean hasItems;
|
||||||
@@ -28,7 +23,6 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
public boolean hasPower;
|
public boolean hasPower;
|
||||||
|
|
||||||
public boolean outputsLiquid = false;
|
public boolean outputsLiquid = false;
|
||||||
public boolean singleLiquid = true;
|
|
||||||
public boolean consumesPower = true;
|
public boolean consumesPower = true;
|
||||||
public boolean outputsPower = false;
|
public boolean outputsPower = false;
|
||||||
|
|
||||||
@@ -39,7 +33,6 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
public final BlockStats stats = new BlockStats();
|
public final BlockStats stats = new BlockStats();
|
||||||
public final BlockBars bars = new BlockBars();
|
public final BlockBars bars = new BlockBars();
|
||||||
public final Consumers consumes = new Consumers();
|
public final Consumers consumes = new Consumers();
|
||||||
public final Producers produces = new Producers();
|
|
||||||
|
|
||||||
public BlockStorage(String name){
|
public BlockStorage(String name){
|
||||||
super(name);
|
super(name);
|
||||||
@@ -68,6 +61,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
|
|
||||||
/**Remove a stack from this inventory, and return the amount removed.*/
|
/**Remove a stack from this inventory, and return the amount removed.*/
|
||||||
public int removeStack(Tile tile, Item item, int amount){
|
public int removeStack(Tile tile, Item item, int amount){
|
||||||
|
if(tile.entity == null || tile.entity.items == null) return 0;
|
||||||
amount = Math.min(amount, tile.entity.items.get(item));
|
amount = Math.min(amount, tile.entity.items.get(item));
|
||||||
tile.entity.noSleep();
|
tile.entity.noSleep();
|
||||||
tile.entity.items.remove(item, amount);
|
tile.entity.items.remove(item, amount);
|
||||||
@@ -98,21 +92,11 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean acceptItem(Item item, Tile tile, Tile source){
|
public boolean acceptItem(Item item, Tile tile, Tile source){
|
||||||
if(tile.entity != null && consumes.has(ConsumeItems.class)){
|
return consumes.itemFilters[item.id] && tile.entity.items.get(item) < getMaximumAccepted(tile, item);
|
||||||
for(ItemStack stack : consumes.items()){
|
|
||||||
if(stack.item == item){
|
|
||||||
return tile.entity.items.get(item) < getMaximumAccepted(tile, item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tile.entity != null && consumes.has(ConsumeItem.class) && consumes.item() == item &&
|
|
||||||
tile.entity.items.get(item) < getMaximumAccepted(tile, item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
||||||
return hasLiquids && tile.entity.liquids.get(liquid) + amount < liquidCapacity &&
|
return hasLiquids && tile.entity.liquids.get(liquid) + amount < liquidCapacity && consumes.liquidfilters[liquid.id];
|
||||||
(!singleLiquid || (tile.entity.liquids.current() == liquid || tile.entity.liquids.get(tile.entity.liquids.current()) < 0.2f)) &&
|
|
||||||
(!consumes.has(ConsumeLiquid.class) || consumes.liquid() == liquid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){
|
||||||
@@ -128,7 +112,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
Tile other = proximity.get((i + dump) % proximity.size);
|
Tile other = proximity.get((i + dump) % proximity.size);
|
||||||
Tile in = Edges.getFacingEdge(tile, other);
|
Tile in = Edges.getFacingEdge(tile, other);
|
||||||
|
|
||||||
if(other.getTeamID() == tile.getTeamID() && other.block().hasLiquids && canDumpLiquid(tile, other, liquid)){
|
if(other.getTeam() == tile.getTeam() && other.block().hasLiquids && canDumpLiquid(tile, other, liquid)){
|
||||||
float ofract = other.entity.liquids.get(liquid) / other.block().liquidCapacity;
|
float ofract = other.entity.liquids.get(liquid) / other.block().liquidCapacity;
|
||||||
float fract = tile.entity.liquids.get(liquid) / liquidCapacity;
|
float fract = tile.entity.liquids.get(liquid) / liquidCapacity;
|
||||||
|
|
||||||
@@ -156,7 +140,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
|
|
||||||
next = next.target();
|
next = next.target();
|
||||||
|
|
||||||
if(next.getTeamID() == tile.getTeamID() && next.block().hasLiquids && tile.entity.liquids.get(liquid) > 0f){
|
if(next.getTeam() == tile.getTeam() && next.block().hasLiquids && tile.entity.liquids.get(liquid) > 0f){
|
||||||
|
|
||||||
if(next.block().acceptLiquid(next, tile, liquid, 0f)){
|
if(next.block().acceptLiquid(next, tile, liquid, 0f)){
|
||||||
float ofract = next.entity.liquids.get(liquid) / next.block().liquidCapacity;
|
float ofract = next.entity.liquids.get(liquid) / next.block().liquidCapacity;
|
||||||
@@ -206,7 +190,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
incrementDump(tile, proximity.size);
|
incrementDump(tile, proximity.size);
|
||||||
Tile other = proximity.get((i + dump) % proximity.size);
|
Tile other = proximity.get((i + dump) % proximity.size);
|
||||||
Tile in = Edges.getFacingEdge(tile, other);
|
Tile in = Edges.getFacingEdge(tile, other);
|
||||||
if(other.getTeamID() == tile.getTeamID() && other.block().acceptItem(item, other, in) && canDump(tile, other, item)){
|
if(other.getTeam() == tile.getTeam() && other.block().acceptItem(item, other, in) && canDump(tile, other, item)){
|
||||||
other.block().handleItem(item, other, in);
|
other.block().handleItem(item, other, in);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -215,9 +199,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
handleItem(item, tile, tile);
|
handleItem(item, tile, tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**Try dumping any item near the tile.*/
|
||||||
* Try dumping any item near the tile.
|
|
||||||
*/
|
|
||||||
public boolean tryDump(Tile tile){
|
public boolean tryDump(Tile tile){
|
||||||
return tryDump(tile, null);
|
return tryDump(tile, null);
|
||||||
}
|
}
|
||||||
@@ -246,7 +228,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
for(int ii = 0; ii < Vars.content.items().size; ii++){
|
for(int ii = 0; ii < Vars.content.items().size; ii++){
|
||||||
Item item = Vars.content.item(ii);
|
Item item = Vars.content.item(ii);
|
||||||
|
|
||||||
if(other.getTeamID() == tile.getTeamID() && entity.items.has(item) && other.block().acceptItem(item, other, in) && canDump(tile, other, item)){
|
if(other.getTeam() == tile.getTeam() && entity.items.has(item) && other.block().acceptItem(item, other, in) && canDump(tile, other, item)){
|
||||||
other.block().handleItem(item, other, in);
|
other.block().handleItem(item, other, in);
|
||||||
tile.entity.items.remove(item, 1);
|
tile.entity.items.remove(item, 1);
|
||||||
incrementDump(tile, proximity.size);
|
incrementDump(tile, proximity.size);
|
||||||
@@ -255,7 +237,7 @@ public abstract class BlockStorage extends UnlockableContent{
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
if(other.getTeamID() == tile.getTeamID() && other.block().acceptItem(todump, other, in) && canDump(tile, other, todump)){
|
if(other.getTeam() == tile.getTeam() && other.block().acceptItem(todump, other, in) && canDump(tile, other, todump)){
|
||||||
other.block().handleItem(todump, other, in);
|
other.block().handleItem(todump, other, in);
|
||||||
tile.entity.items.remove(todump, 1);
|
tile.entity.items.remove(todump, 1);
|
||||||
incrementDump(tile, proximity.size);
|
incrementDump(tile, proximity.size);
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package io.anuke.mindustry.world;
|
package io.anuke.mindustry.world;
|
||||||
|
|
||||||
|
import io.anuke.annotations.Annotations.Loc;
|
||||||
|
import io.anuke.annotations.Annotations.Remote;
|
||||||
import io.anuke.arc.Core;
|
import io.anuke.arc.Core;
|
||||||
import io.anuke.arc.Events;
|
import io.anuke.arc.Events;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
@@ -19,6 +21,7 @@ public class Build{
|
|||||||
private static final Rectangle rect = new Rectangle();
|
private static final Rectangle rect = new Rectangle();
|
||||||
|
|
||||||
/**Returns block type that was broken, or null if unsuccesful.*/
|
/**Returns block type that was broken, or null if unsuccesful.*/
|
||||||
|
@Remote(called = Loc.server)
|
||||||
public static void beginBreak(Team team, int x, int y){
|
public static void beginBreak(Team team, int x, int y){
|
||||||
if(!validBreak(team, x, y)){
|
if(!validBreak(team, x, y)){
|
||||||
return;
|
return;
|
||||||
@@ -69,6 +72,7 @@ public class Build{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**Places a BuildBlock at this location.*/
|
/**Places a BuildBlock at this location.*/
|
||||||
|
@Remote(called = Loc.server)
|
||||||
public static void beginPlace(Team team, int x, int y, Block result, int rotation){
|
public static void beginPlace(Team team, int x, int y, Block result, int rotation){
|
||||||
if(!validPlace(team, x, y, result, rotation)){
|
if(!validPlace(team, x, y, result, rotation)){
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -3,10 +3,7 @@ package io.anuke.mindustry.world;
|
|||||||
import io.anuke.arc.collection.Array;
|
import io.anuke.arc.collection.Array;
|
||||||
import io.anuke.arc.function.Consumer;
|
import io.anuke.arc.function.Consumer;
|
||||||
import io.anuke.arc.math.Mathf;
|
import io.anuke.arc.math.Mathf;
|
||||||
import io.anuke.arc.math.geom.Geometry;
|
import io.anuke.arc.math.geom.*;
|
||||||
import io.anuke.arc.math.geom.Point2;
|
|
||||||
import io.anuke.arc.math.geom.Position;
|
|
||||||
import io.anuke.arc.math.geom.Vector2;
|
|
||||||
import io.anuke.arc.util.Pack;
|
import io.anuke.arc.util.Pack;
|
||||||
import io.anuke.mindustry.content.Blocks;
|
import io.anuke.mindustry.content.Blocks;
|
||||||
import io.anuke.mindustry.entities.traits.TargetTrait;
|
import io.anuke.mindustry.entities.traits.TargetTrait;
|
||||||
@@ -31,6 +28,8 @@ public class Tile implements Position, TargetTrait{
|
|||||||
public byte link = 0;
|
public byte link = 0;
|
||||||
/** Tile traversal cost. */
|
/** Tile traversal cost. */
|
||||||
public byte cost = 1;
|
public byte cost = 1;
|
||||||
|
/** Weight of [ground] units on this tile.*/
|
||||||
|
public byte weight, airWeight = 0;
|
||||||
/** Tile entity, usually null. */
|
/** Tile entity, usually null. */
|
||||||
public TileEntity entity;
|
public TileEntity entity;
|
||||||
public short x, y;
|
public short x, y;
|
||||||
@@ -140,6 +139,11 @@ public class Tile implements Position, TargetTrait{
|
|||||||
return wall;
|
return wall;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public <T extends Block> T cblock(){
|
||||||
|
return (T)wall;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Team getTeam(){
|
public Team getTeam(){
|
||||||
return Team.all[target().team];
|
return Team.all[target().team];
|
||||||
@@ -325,6 +329,10 @@ public class Tile implements Position, TargetTrait{
|
|||||||
return link == null ? this : link;
|
return link == null ? this : link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Rectangle getHitbox(Rectangle rect){
|
||||||
|
return rect.setSize(block().size * tilesize).setCenter(drawx(), drawy());
|
||||||
|
}
|
||||||
|
|
||||||
public Tile getNearby(Point2 relative){
|
public Tile getNearby(Point2 relative){
|
||||||
return world.tile(x + relative.x, y + relative.y);
|
return world.tile(x + relative.x, y + relative.y);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,11 +38,6 @@ public class BlockPart extends Block{
|
|||||||
//do nothing
|
//do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawShadow(Tile tile){
|
|
||||||
//also do nothing
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSolidFor(Tile tile){
|
public boolean isSolidFor(Tile tile){
|
||||||
return tile.getLinked() == null
|
return tile.getLinked() == null
|
||||||
|
|||||||
@@ -158,12 +158,6 @@ public class BuildBlock extends Block{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawShadow(Tile tile){
|
|
||||||
//don't
|
|
||||||
//TODO maybe do
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity newEntity(){
|
public TileEntity newEntity(){
|
||||||
return new BuildEntity();
|
return new BuildEntity();
|
||||||
|
|||||||