From ed59e7c7cbce7af0f43ce8d748baa3dc050d21f6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 19 Dec 2017 18:01:16 -0500 Subject: [PATCH] Finish all editor features --- android/AndroidManifest.xml | 2 + .../res/layout-v14/gdxdialogs_inputtext.xml | 22 + android/res/layout/gdxdialogs_inputtext.xml | 43 ++ .../io/anuke/mindustry/AndroidLauncher.java | 6 + .../mindustry/AndroidTextFieldDialog.java | 135 +++++ .../mindustry/TextFieldDialogListener.java | 71 +++ build.gradle | 2 +- core/assets-raw/sprites/ui/icon-file-text.png | Bin 0 -> 199 bytes core/assets-raw/sprites/ui/icon-file.png | Bin 0 -> 231 bytes .../sprites/ui/icon-folder-parent.png | Bin 0 -> 231 bytes core/assets-raw/sprites/ui/icon-folder.png | Bin 0 -> 214 bytes core/assets-raw/sprites/ui/icon-home.png | Bin 0 -> 220 bytes core/assets/sprites/sprites.atlas | 473 ++++++++++-------- core/assets/sprites/sprites.png | Bin 81351 -> 81849 bytes core/src/io/anuke/mindustry/Mindustry.java | 2 + core/src/io/anuke/mindustry/core/UI.java | 13 + .../anuke/mindustry/input/AndroidInput.java | 1 + .../io/anuke/mindustry/input/PlaceMode.java | 2 +- .../anuke/mindustry/io/PlatformFunction.java | 3 + .../anuke/mindustry/mapeditor/EditorTool.java | 9 + .../anuke/mindustry/mapeditor/MapEditor.java | 23 +- .../mindustry/mapeditor/MapEditorDialog.java | 103 +++- .../mapeditor/MapGenerateDialog.java | 13 +- .../mindustry/mapeditor/MapResizeDialog.java | 3 +- .../mindustry/mapeditor/MapSaveDialog.java | 7 +- .../io/anuke/mindustry/mapeditor/MapView.java | 45 +- .../io/anuke/mindustry/ui/FileChooser.java | 337 +++++++++++++ .../io/anuke/mindustry/ui/LevelDialog.java | 22 +- core/src/io/anuke/mindustry/world/Maps.java | 14 + .../types/production/NuclearReactor.java | 2 +- desktop/mindustry-maps/desert2.png | Bin 0 -> 3249 bytes desktop/mindustry-maps/desert23.png | Bin 0 -> 3249 bytes desktop/mindustry-maps/desert2asd.png | Bin 0 -> 3249 bytes desktop/mindustry-maps/island2.png | Bin 0 -> 3249 bytes desktop/mindustry-maps/maps.json | 2 +- desktop/mindustry-maps/maze2.png | Bin 0 -> 4597 bytes desktop/mindustry-maps/sadfa.png | Bin 0 -> 2648 bytes desktop/mindustry-maps/spiral12.png | Bin 0 -> 2648 bytes desktop/mindustry-maps/trash.png | Bin 856 -> 1379 bytes desktop/mindustry-maps/tundra213123.png | Bin 0 -> 5371 bytes .../mindustry/desktop/DesktopLauncher.java | 6 + .../anuke/mindustry/client/HtmlLauncher.java | 6 + 42 files changed, 1097 insertions(+), 270 deletions(-) create mode 100755 android/res/layout-v14/gdxdialogs_inputtext.xml create mode 100755 android/res/layout/gdxdialogs_inputtext.xml create mode 100644 android/src/io/anuke/mindustry/AndroidTextFieldDialog.java create mode 100644 android/src/io/anuke/mindustry/TextFieldDialogListener.java create mode 100755 core/assets-raw/sprites/ui/icon-file-text.png create mode 100644 core/assets-raw/sprites/ui/icon-file.png create mode 100755 core/assets-raw/sprites/ui/icon-folder-parent.png create mode 100755 core/assets-raw/sprites/ui/icon-folder.png create mode 100755 core/assets-raw/sprites/ui/icon-home.png create mode 100644 core/src/io/anuke/mindustry/ui/FileChooser.java create mode 100644 desktop/mindustry-maps/desert2.png create mode 100644 desktop/mindustry-maps/desert23.png create mode 100644 desktop/mindustry-maps/desert2asd.png create mode 100644 desktop/mindustry-maps/island2.png create mode 100644 desktop/mindustry-maps/maze2.png create mode 100644 desktop/mindustry-maps/sadfa.png create mode 100644 desktop/mindustry-maps/spiral12.png create mode 100644 desktop/mindustry-maps/tundra213123.png diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 8c14141445..7ff5d633b3 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -6,6 +6,8 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/res/layout/gdxdialogs_inputtext.xml b/android/res/layout/gdxdialogs_inputtext.xml new file mode 100755 index 0000000000..656600a753 --- /dev/null +++ b/android/res/layout/gdxdialogs_inputtext.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/src/io/anuke/mindustry/AndroidLauncher.java b/android/src/io/anuke/mindustry/AndroidLauncher.java index 698b5697f9..18b98c3c97 100644 --- a/android/src/io/anuke/mindustry/AndroidLauncher.java +++ b/android/src/io/anuke/mindustry/AndroidLauncher.java @@ -15,6 +15,7 @@ import android.os.Bundle; import android.telephony.TelephonyManager; import io.anuke.mindustry.io.PlatformFunction; import io.anuke.ucore.function.Callable; +import io.anuke.ucore.scene.ui.TextField; import io.anuke.ucore.scene.ui.layout.Unit; public class AndroidLauncher extends AndroidApplication{ @@ -47,6 +48,11 @@ public class AndroidLauncher extends AndroidApplication{ Intent intent = new Intent( Intent.ACTION_VIEW, marketUri ); startActivity(intent); } + + @Override + public void addDialog(TextField field){ + TextFieldDialogListener.add(field); + } }; Mindustry.donationsCallable = new Callable(){ @Override public void run(){ showDonations(); } }; diff --git a/android/src/io/anuke/mindustry/AndroidTextFieldDialog.java b/android/src/io/anuke/mindustry/AndroidTextFieldDialog.java new file mode 100644 index 0000000000..6d1a2a83a4 --- /dev/null +++ b/android/src/io/anuke/mindustry/AndroidTextFieldDialog.java @@ -0,0 +1,135 @@ +package io.anuke.mindustry; + + +import com.badlogic.gdx.Gdx; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.text.InputFilter; +import android.view.LayoutInflater; +import android.view.View; +import android.view.WindowManager.LayoutParams; +import android.widget.EditText; + +public class AndroidTextFieldDialog{ + private Activity activity; + private EditText userInput; + private AlertDialog.Builder builder; + private TextPromptListener listener; + private boolean isBuild; + + public AndroidTextFieldDialog() { + this.activity = (Activity)Gdx.app; + load(); + } + + public AndroidTextFieldDialog show() { + + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + Gdx.app.error("Android Dialogs", AndroidTextFieldDialog.class.getSimpleName() + " now shown."); + AlertDialog dialog = builder.create(); + + dialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE); + + dialog.show(); + + } + }); + + return this; + } + + private AndroidTextFieldDialog load() { + + activity.runOnUiThread(new Runnable() { + + @Override + public void run() { + + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(activity); + LayoutInflater li = LayoutInflater.from(activity); + + View promptsView = li.inflate(getResourceId("gdxdialogs_inputtext", "layout"), null); + + alertDialogBuilder.setView(promptsView); + + userInput = (EditText) promptsView.findViewById(getResourceId("gdxDialogsEditTextInput", "id")); + + alertDialogBuilder.setCancelable(false); + builder = alertDialogBuilder; + + isBuild = true; + } + }); + + // Wait till TextPrompt is built. + while (!isBuild) { + try { + Thread.sleep(10); + } catch (InterruptedException e) { + } + } + + return this; + } + + public int getResourceId(String pVariableName, String pVariableType) { + try { + return activity.getResources().getIdentifier(pVariableName, pVariableType, activity.getPackageName()); + } catch (Exception e) { + Gdx.app.error("Android Dialogs", "Cannot find resouce with name: " + pVariableName + + " Did you copy the layouts to /res/layouts and /res/layouts_v14 ?"); + e.printStackTrace(); + return -1; + } + } + + public AndroidTextFieldDialog setText(CharSequence value) { + userInput.append(value); + return this; + } + + public AndroidTextFieldDialog setCancelButtonLabel(CharSequence label) { + builder.setNegativeButton(label, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + } + }); + return this; + } + + public AndroidTextFieldDialog setConfirmButtonLabel(CharSequence label) { + builder.setPositiveButton(label, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (listener != null && !userInput.getText().toString().isEmpty()) { + listener.confirm(userInput.getText().toString()); + } + + } + }); + return this; + } + + public AndroidTextFieldDialog setTextPromptListener(TextPromptListener listener) { + this.listener = listener; + return this; + } + + public AndroidTextFieldDialog setInputType(int type) { + userInput.setInputType(type); + return this; + } + + public AndroidTextFieldDialog setMaxLength(int length) { + userInput.setFilters(new InputFilter[] { new InputFilter.LengthFilter(length) }); + return this; + } + + public static interface TextPromptListener{ + public void confirm(String text); + } + +} diff --git a/android/src/io/anuke/mindustry/TextFieldDialogListener.java b/android/src/io/anuke/mindustry/TextFieldDialogListener.java new file mode 100644 index 0000000000..bb2e935d59 --- /dev/null +++ b/android/src/io/anuke/mindustry/TextFieldDialogListener.java @@ -0,0 +1,71 @@ +package io.anuke.mindustry; + + +import com.badlogic.gdx.Application.ApplicationType; +import com.badlogic.gdx.Gdx; + +import android.text.InputType; +import io.anuke.mindustry.AndroidTextFieldDialog.TextPromptListener; +import io.anuke.ucore.scene.event.InputEvent; +import io.anuke.ucore.scene.event.InputListener; +import io.anuke.ucore.scene.ui.TextField; +import io.anuke.ucore.scene.utils.ChangeListener; +import io.anuke.ucore.scene.utils.ClickListener; + +public class TextFieldDialogListener extends ClickListener{ + private TextField field; + private int type; + private int max; + + public static void add(TextField field, int type, int max){ + field.addListener(new TextFieldDialogListener(field, type, max)); + field.addListener(new InputListener(){ + public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { + Gdx.input.setOnscreenKeyboardVisible(false); + return false; + } + }); + } + + public static void add(TextField field){ + add(field, 0, 15); + } + + //type - 0 is text, 1 is numbers, 2 is decimals + public TextFieldDialogListener(TextField field, int type, int max){ + this.field = field; + this.type = type; + this.max = max; + } + + public void clicked(final InputEvent event, float x, float y){ + + if(Gdx.app.getType() == ApplicationType.Desktop) return; + + AndroidTextFieldDialog dialog = new AndroidTextFieldDialog(); + + dialog.setTextPromptListener(new TextPromptListener(){ + public void confirm(String text){ + field.clearText(); + field.appendText(text); + field.fire(new ChangeListener.ChangeEvent()); + Gdx.graphics.requestRendering(); + } + }); + + if(type == 0){ + dialog.setInputType(InputType.TYPE_CLASS_TEXT); + }else if(type == 1){ + dialog.setInputType(InputType.TYPE_CLASS_NUMBER); + }else if(type == 2){ + dialog.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); + } + + dialog.setConfirmButtonLabel("OK").setText(field.getText()); + dialog.setCancelButtonLabel("Cancel"); + dialog.setMaxLength(max); + dialog.show(); + event.cancel(); + + } +} diff --git a/build.gradle b/build.gradle index 41c2c5e07b..b9a26c5ee0 100644 --- a/build.gradle +++ b/build.gradle @@ -79,7 +79,7 @@ project(":core") { apply plugin: "java" dependencies { - compile 'com.github.anuken:ucore:9c523c4' + compile 'com.github.anuken:ucore:a525ad2043' compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx-ai:1.8.1" } diff --git a/core/assets-raw/sprites/ui/icon-file-text.png b/core/assets-raw/sprites/ui/icon-file-text.png new file mode 100755 index 0000000000000000000000000000000000000000..3aea932bbb2e86fec4fc7d6e1ad1c098c24c5649 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xawj^(N7ltZ^H4LwA&3RJ{6yYrJ zhy>Ey!XV7ZFl&wkP>{XE)7O>#AuETFwt}BZ{&JvDh^LEVh{pM&6CJr26gXJI1%Lf7 zwr-I%*4)VPN$uT>RR>Zh_=cE@U7parIx~%d;e(rto6qXDnhlp&yqThIeNW&m%bs|3 oQZ2jup1yp?Kdh?N|I#lqI)!p6-ZI~^4ro4ur>mdKI;Vst06n)n5dZ)H literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/ui/icon-file.png b/core/assets-raw/sprites/ui/icon-file.png new file mode 100644 index 0000000000000000000000000000000000000000..8ebd7eba642359e981db1bbb2f930118bdd13a4b GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xawj^(N7ltZ^H4LwA&3RJ{6yYrJ zhy>Ey!XV7ZFl&wkP>{XE)7O>#AuETFmZfpXH#MM;WQl7;iF1B#Zfaf$gL6@8Vo7R> zLV0FMhJw4NZ$Nk>pEyvFzo(01h{pM|6Abwd7;rH2i)j9@&zrW(yS>XJ^U=zA0xvc& z`mi=EG1h1btBR7`Gj+CF(LqkX@0MSWF@9OTFD#+-&F;)w?u%^X9_0Oz&v?yd6vCkz Tt2m1pXf%VTtDnm{r-UW|TR27# literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/ui/icon-folder-parent.png b/core/assets-raw/sprites/ui/icon-folder-parent.png new file mode 100755 index 0000000000000000000000000000000000000000..82b70ca8312ecc27956cb86f479b5672aa9a5958 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xawj^(N7ltZ^H4LwA&3RJ{6yYrJ zhy>Ey!XV7ZFl&wkP>{XE)7O>#AuETFme%%H+kXIsBuiW)N}Tg^b5rw57@Uhz6H8K4 z6v{J8G8EiBeFMT9`NV;W{5@S9Lp09so#e=Mz=4NJ_U8Zkn{m^fbYi`1)uaNIYI{|@ zjNV;$+p{^N{jSe!Ey!XV7ZFl&wkP>{XE)7O>#AuETFmfW;BXJ4R@WQl7;iF1B#Zfaf$gL6@8Vo7R> zLV0FMhJw4NZ$Nk>pEyvFou`Xqh{pN1lMMM73^BW|2d6V;ktc`!JL`b`3NN{N1f7J;ziNVv=&t;ucLK6Vw Cr$8zI literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/ui/icon-home.png b/core/assets-raw/sprites/ui/icon-home.png new file mode 100755 index 0000000000000000000000000000000000000000..087443880f7495d738b648f503fc8a74f3ea64d0 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xawj^(N7ltZ^H4LwA&3RJ{6yYrJ zhy>Ey!XV7ZFl&wkP>{XE)7O>#AuETFhJ-J7%P*jiWQl7;iF1B#Zfaf$gL6@8Vo7R> zLV0FMhJw4NZ$Nk>pEyvFi>HfYh{pNkgau|l_*r*6ku1z~3OsV+ghzm~Ui1Z1W1+>I zv(wy?Oc!RSskjPnN>eLxo||L8NkGz9f^E{gTe~ HDWM4f!-zcH literal 0 HcmV?d00001 diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 5d792246a9..84e0e16d12 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -34,56 +34,56 @@ blocks/blackrockshadow1 index: -1 blocks/blackstone1 rotate: false - xy: 635, 222 + xy: 716, 267 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstone2 rotate: false - xy: 625, 174 + xy: 716, 257 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstone3 rotate: false - xy: 733, 264 + xy: 726, 269 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstoneblock1 rotate: false - xy: 728, 254 + xy: 726, 259 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstoneblock2 rotate: false - xy: 728, 244 + xy: 736, 264 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstoneblock3 rotate: false - xy: 728, 234 + xy: 716, 247 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/blackstoneedge rotate: false - xy: 519, 201 + xy: 521, 153 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/block rotate: false - xy: 738, 244 + xy: 736, 254 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -118,112 +118,112 @@ blocks/chainturret-icon index: -1 blocks/coal1 rotate: false - xy: 743, 264 + xy: 726, 239 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coal2 rotate: false - xy: 748, 254 + xy: 736, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coal3 rotate: false - xy: 748, 244 + xy: 333, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coaldrill rotate: false - xy: 748, 234 + xy: 343, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalgenerator rotate: false - xy: 801, 454 + xy: 353, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalgenerator-top rotate: false - xy: 801, 444 + xy: 363, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/coalpurifier rotate: false - xy: 801, 434 + xy: 373, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/combustiongenerator rotate: false - xy: 801, 424 + xy: 383, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/compositewall rotate: false - xy: 797, 410 + xy: 393, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduit rotate: false - xy: 797, 400 + xy: 403, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitbottom rotate: false - xy: 333, 91 + xy: 413, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduitliquid rotate: false - xy: 343, 91 + xy: 423, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conduittop rotate: false - xy: 353, 91 + xy: 433, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyor rotate: false - xy: 363, 91 + xy: 443, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyormove rotate: false - xy: 373, 91 + xy: 453, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/conveyortunnel rotate: false - xy: 383, 91 + xy: 463, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -237,56 +237,56 @@ blocks/core index: -1 blocks/cross rotate: false - xy: 393, 95 + xy: 473, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/crucible rotate: false - xy: 403, 95 + xy: 483, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/deepwater rotate: false - xy: 413, 95 + xy: 813, 449 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt1 rotate: false - xy: 423, 95 + xy: 813, 439 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt2 rotate: false - xy: 433, 95 + xy: 813, 429 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirt3 rotate: false - xy: 443, 95 + xy: 813, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/dirtedge rotate: false - xy: 519, 187 + xy: 537, 169 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/door rotate: false - xy: 453, 95 + xy: 592, 219 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -300,7 +300,7 @@ blocks/door-large index: -1 blocks/door-large-icon rotate: false - xy: 463, 95 + xy: 602, 222 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -314,21 +314,21 @@ blocks/door-large-open index: -1 blocks/door-open rotate: false - xy: 473, 95 + xy: 612, 222 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/doubleturret rotate: false - xy: 709, 279 + xy: 833, 487 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/duriumwall rotate: false - xy: 483, 95 + xy: 622, 222 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -342,266 +342,266 @@ blocks/duriumwall-large index: -1 blocks/duriumwall-large-icon rotate: false - xy: 656, 222 + xy: 632, 222 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/enemyspawn rotate: false - xy: 666, 222 + xy: 269, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/flameturret rotate: false - xy: 721, 281 + xy: 845, 487 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/fluxpump rotate: false - xy: 649, 202 + xy: 289, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass1 rotate: false - xy: 659, 212 + xy: 299, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass2 rotate: false - xy: 649, 192 + xy: 309, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grass3 rotate: false - xy: 659, 202 + xy: 319, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock1 rotate: false - xy: 659, 192 + xy: 393, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassblock2 rotate: false - xy: 669, 212 + xy: 403, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/grassedge rotate: false - xy: 547, 201 + xy: 709, 277 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/ice1 rotate: false - xy: 669, 202 + xy: 413, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/ice2 rotate: false - xy: 669, 192 + xy: 423, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/ice3 rotate: false - xy: 676, 222 + xy: 433, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iceedge rotate: false - xy: 547, 187 + xy: 656, 230 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/icerock1 rotate: false - xy: 679, 212 + xy: 443, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/icerock2 rotate: false - xy: 679, 202 + xy: 453, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/icerockshadow1 rotate: false - xy: 679, 192 + xy: 463, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rockshadow1 rotate: false - xy: 679, 192 + xy: 463, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/icerockshadow2 rotate: false - xy: 649, 182 + xy: 473, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rockshadow2 rotate: false - xy: 649, 182 + xy: 473, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron1 rotate: false - xy: 309, 87 + xy: 531, 129 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron2 rotate: false - xy: 319, 87 + xy: 529, 119 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/iron3 rotate: false - xy: 393, 85 + xy: 527, 109 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/irondrill rotate: false - xy: 403, 85 + xy: 881, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/ironwall rotate: false - xy: 413, 85 + xy: 891, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/junction rotate: false - xy: 423, 85 + xy: 901, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/laserturret rotate: false - xy: 613, 184 + xy: 749, 277 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/lava rotate: false - xy: 433, 85 + xy: 911, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/lavaedge rotate: false - xy: 568, 213 + xy: 670, 230 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/lavasmelter rotate: false - xy: 443, 85 + xy: 921, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/liquiditemjunction rotate: false - xy: 453, 85 + xy: 931, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/liquidjunction rotate: false - xy: 463, 85 + xy: 941, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/liquidrouter rotate: false - xy: 473, 85 + xy: 951, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/machineturret rotate: false - xy: 625, 184 + xy: 575, 203 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/megarepairturret rotate: false - xy: 637, 210 + xy: 575, 191 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mortarturret rotate: false - xy: 637, 198 + xy: 575, 179 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/mossblock rotate: false - xy: 493, 88 + xy: 971, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/mossstone rotate: false - xy: 493, 88 + xy: 971, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -622,7 +622,7 @@ blocks/nuclearreactor-center index: -1 blocks/nuclearreactor-icon rotate: false - xy: 513, 90 + xy: 991, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -643,329 +643,329 @@ blocks/nuclearreactor-small index: -1 blocks/oil rotate: false - xy: 523, 90 + xy: 1001, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/oiledge rotate: false - xy: 561, 199 + xy: 723, 279 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/oilrefinery rotate: false - xy: 747, 291 + xy: 749, 267 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/omnidrill rotate: false - xy: 745, 281 + xy: 801, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/plasmaturret rotate: false - xy: 637, 186 + xy: 575, 167 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/playerspawn rotate: false - xy: 757, 291 + xy: 800, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerbooster rotate: false - xy: 755, 281 + xy: 811, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/poweredconveyor rotate: false - xy: 493, 78 + xy: 810, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/poweredconveyormove rotate: false - xy: 503, 78 + xy: 602, 212 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerlaser rotate: false - xy: 513, 80 + xy: 612, 212 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerlasercorner rotate: false - xy: 523, 80 + xy: 622, 212 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/powerlaserrouter rotate: false - xy: 753, 271 + xy: 632, 212 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/pulseconduit rotate: false - xy: 683, 233 + xy: 599, 202 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/pulseconduitbottom rotate: false - xy: 693, 233 + xy: 599, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/pulseconduittop rotate: false - xy: 686, 223 + xy: 609, 202 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/pump rotate: false - xy: 696, 223 + xy: 599, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/repairturret rotate: false - xy: 733, 274 + xy: 580, 215 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/rock1 rotate: false - xy: 689, 213 + xy: 619, 202 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rock2 rotate: false - xy: 689, 203 + xy: 599, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/router rotate: false - xy: 689, 193 + xy: 609, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rtgenerator rotate: false - xy: 689, 183 + xy: 619, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/rtgenerator-top rotate: false - xy: 699, 213 + xy: 629, 202 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sand1 rotate: false - xy: 699, 203 + xy: 609, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sand2 rotate: false - xy: 699, 193 + xy: 619, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sand3 rotate: false - xy: 699, 183 + xy: 629, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sandblock1 rotate: false - xy: 716, 223 + xy: 619, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sandblock2 rotate: false - xy: 709, 213 + xy: 629, 182 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sandblock3 rotate: false - xy: 709, 203 + xy: 629, 172 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sandedge rotate: false - xy: 561, 185 + xy: 698, 229 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/shadow rotate: false - xy: 721, 269 + xy: 704, 263 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/shieldgenerator rotate: false - xy: 709, 183 + xy: 642, 208 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/shotgunturret rotate: false - xy: 716, 257 + xy: 704, 251 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/shrub rotate: false - xy: 719, 193 + xy: 639, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/shrubshadow rotate: false - xy: 719, 183 + xy: 639, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/smelter rotate: false - xy: 726, 223 + xy: 599, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/sniperturret rotate: false - xy: 716, 245 + xy: 587, 203 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/snow1 rotate: false - xy: 736, 224 + xy: 609, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snow2 rotate: false - xy: 746, 224 + xy: 619, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snow3 rotate: false - xy: 729, 213 + xy: 629, 162 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snowblock1 rotate: false - xy: 729, 203 + xy: 639, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snowblock2 rotate: false - xy: 729, 193 + xy: 652, 218 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snowblock3 rotate: false - xy: 729, 183 + xy: 652, 208 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/snowedge rotate: false - xy: 575, 199 + xy: 805, 485 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/sorter rotate: false - xy: 739, 214 + xy: 649, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelconveyor rotate: false - xy: 739, 204 + xy: 649, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelconveyormove rotate: false - xy: 739, 194 + xy: 649, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/steelwall rotate: false - xy: 739, 184 + xy: 649, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -979,98 +979,98 @@ blocks/steelwall-large index: -1 blocks/steelwall-large-icon rotate: false - xy: 749, 214 + xy: 649, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone1 rotate: false - xy: 749, 204 + xy: 662, 220 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone2 rotate: false - xy: 749, 194 + xy: 662, 210 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stone3 rotate: false - xy: 749, 184 + xy: 672, 220 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock1 rotate: false - xy: 756, 224 + xy: 672, 210 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock2 rotate: false - xy: 759, 214 + xy: 682, 219 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneblock3 rotate: false - xy: 759, 204 + xy: 692, 219 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stonedrill rotate: false - xy: 759, 194 + xy: 702, 219 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stoneedge rotate: false - xy: 575, 185 + xy: 805, 471 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/stoneformer rotate: false - xy: 759, 184 + xy: 682, 209 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/stonewall rotate: false - xy: 519, 126 + xy: 692, 209 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/teleporter rotate: false - xy: 519, 116 + xy: 702, 209 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/teleporter-top rotate: false - xy: 625, 164 + xy: 493, 78 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/thermalgenerator rotate: false - xy: 637, 176 + xy: 503, 78 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1084,56 +1084,56 @@ blocks/titancannon index: -1 blocks/titancannon-icon rotate: false - xy: 716, 233 + xy: 587, 191 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/titanium1 rotate: false - xy: 635, 166 + xy: 513, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium2 rotate: false - xy: 647, 172 + xy: 523, 80 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titanium3 rotate: false - xy: 657, 172 + xy: 1011, 479 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumdrill rotate: false - xy: 667, 172 + xy: 746, 254 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumpurifier rotate: false - xy: 677, 172 + xy: 746, 244 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumshieldwall rotate: false - xy: 645, 162 + xy: 746, 234 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/titaniumwall rotate: false - xy: 655, 162 + xy: 659, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1147,70 +1147,70 @@ blocks/titaniumwall-large index: -1 blocks/titaniumwall-large-icon rotate: false - xy: 665, 162 + xy: 659, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/turret rotate: false - xy: 601, 172 + xy: 587, 179 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 blocks/uranium1 rotate: false - xy: 645, 152 + xy: 659, 158 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uranium2 rotate: false - xy: 655, 152 + xy: 669, 200 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uranium3 rotate: false - xy: 665, 152 + xy: 669, 190 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/uraniumdrill rotate: false - xy: 675, 152 + xy: 669, 180 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/water rotate: false - xy: 513, 70 + xy: 669, 170 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blocks/wateredge rotate: false - xy: 513, 100 + xy: 819, 485 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 blocks/waveturret rotate: false - xy: 613, 172 + xy: 587, 167 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 bullet rotate: false - xy: 738, 234 + xy: 736, 244 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1294,14 +1294,14 @@ enemies/targetenemy-t1 index: -1 enemies/enemy-t2 rotate: false - xy: 533, 201 + xy: 521, 139 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 enemies/enemy-t3 rotate: false - xy: 533, 187 + xy: 513, 100 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -1392,63 +1392,63 @@ enemies/healerenemy-t3 index: -1 enemies/mortarenemy-t1 rotate: false - xy: 189, 89 + xy: 731, 298 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/mortarenemy-t2 rotate: false - xy: 205, 89 + xy: 747, 301 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/mortarenemy-t3 rotate: false - xy: 221, 89 + xy: 524, 215 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t1 rotate: false - xy: 237, 89 + xy: 540, 215 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t2 rotate: false - xy: 253, 89 + xy: 519, 199 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/rapidenemy-t3 rotate: false - xy: 731, 298 + xy: 519, 183 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t1 rotate: false - xy: 747, 301 + xy: 535, 199 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t2 rotate: false - xy: 524, 215 + xy: 535, 183 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 enemies/tankenemy-t3 rotate: false - xy: 540, 215 + xy: 521, 167 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -1483,56 +1483,56 @@ enemyarrow index: -1 icon-coal rotate: false - xy: 659, 182 + xy: 483, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-dirium rotate: false - xy: 669, 182 + xy: 493, 88 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-iron rotate: false - xy: 679, 182 + xy: 503, 88 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-steel rotate: false - xy: 269, 87 + xy: 513, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-stone rotate: false - xy: 279, 87 + xy: 523, 90 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-titanium rotate: false - xy: 289, 87 + xy: 521, 129 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-uranium rotate: false - xy: 299, 87 + xy: 519, 119 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laser rotate: false - xy: 596, 215 + xy: 797, 406 size: 1, 12 orig: 1, 12 offset: 0, 0 @@ -1553,35 +1553,35 @@ laserfull index: -1 mechs/mech-standard rotate: false - xy: 582, 215 + xy: 684, 229 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shell rotate: false - xy: 709, 193 + xy: 642, 218 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shot rotate: false - xy: 719, 213 + xy: 639, 198 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shot-long rotate: false - xy: 719, 203 + xy: 639, 188 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanshell rotate: false - xy: 675, 162 + xy: 659, 178 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1673,21 +1673,21 @@ ui/check-over index: -1 ui/clear rotate: false - xy: 556, 215 + xy: 819, 473 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/cursor rotate: false - xy: 645, 222 + xy: 92, 88 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 ui/icon-areaDelete rotate: false - xy: 733, 286 + xy: 857, 487 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1701,14 +1701,14 @@ ui/icon-arrow index: -1 ui/icon-arrow-left rotate: false - xy: 656, 232 + xy: 869, 487 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-arrow-right rotate: false - xy: 668, 232 + xy: 805, 459 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1750,21 +1750,21 @@ ui/icon-close-over index: -1 ui/icon-crafting rotate: false - xy: 1012, 489 + xy: 801, 447 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-cursor rotate: false - xy: 704, 263 + xy: 801, 435 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-defense rotate: false - xy: 704, 251 + xy: 801, 423 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1778,7 +1778,7 @@ ui/icon-discord index: -1 ui/icon-distribution rotate: false - xy: 704, 239 + xy: 1012, 489 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1790,6 +1790,20 @@ ui/icon-donate orig: 14, 14 offset: 0, 0 index: -1 +ui/icon-file + rotate: false + xy: 640, 248 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +ui/icon-file-text + rotate: false + xy: 598, 232 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 ui/icon-fill rotate: false xy: 742, 349 @@ -1797,30 +1811,51 @@ ui/icon-fill orig: 16, 16 offset: 0, 0 index: -1 +ui/icon-folder + rotate: false + xy: 614, 232 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 +ui/icon-folder-parent + rotate: false + xy: 630, 232 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 ui/icon-hold rotate: false - xy: 589, 203 + xy: 551, 203 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-holdDelete rotate: false - xy: 589, 191 + xy: 551, 191 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 +ui/icon-home + rotate: false + xy: 693, 275 + size: 14, 14 + orig: 14, 14 + offset: 0, 0 + index: -1 ui/icon-info rotate: false - xy: 599, 220 + xy: 551, 179 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-load rotate: false - xy: 640, 248 + xy: 656, 260 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -1834,21 +1869,21 @@ ui/icon-loading index: -1 ui/icon-menu rotate: false - xy: 611, 220 + xy: 556, 215 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-none rotate: false - xy: 623, 220 + xy: 568, 215 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-pause rotate: false - xy: 601, 208 + xy: 563, 203 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1869,35 +1904,35 @@ ui/icon-pick index: -1 ui/icon-play rotate: false - xy: 601, 196 + xy: 563, 191 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-play-2 rotate: false - xy: 598, 232 + xy: 672, 260 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-power rotate: false - xy: 613, 208 + xy: 563, 179 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-production rotate: false - xy: 613, 196 + xy: 551, 167 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-quit rotate: false - xy: 614, 232 + xy: 656, 244 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -1911,77 +1946,77 @@ ui/icon-redo index: -1 ui/icon-rotate rotate: false - xy: 630, 232 + xy: 672, 244 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-rotate-arrow rotate: false - xy: 693, 275 + xy: 688, 259 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-rotate-left rotate: false - xy: 656, 260 + xy: 688, 243 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-rotate-right rotate: false - xy: 672, 260 + xy: 189, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-save rotate: false - xy: 656, 244 + xy: 205, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-settings rotate: false - xy: 625, 208 + xy: 563, 167 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-terrain rotate: false - xy: 672, 244 + xy: 221, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-tools rotate: false - xy: 688, 259 + xy: 237, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 ui/icon-touch rotate: false - xy: 625, 196 + xy: 737, 286 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-touchDelete rotate: false - xy: 589, 179 + xy: 749, 289 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 ui/icon-tutorial rotate: false - xy: 688, 243 + xy: 253, 89 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -1995,7 +2030,7 @@ ui/icon-undo index: -1 ui/icon-weapon rotate: false - xy: 601, 184 + xy: 737, 274 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2079,7 +2114,7 @@ ui/selection index: -1 ui/slider rotate: false - xy: 680, 234 + xy: 746, 264 size: 1, 8 orig: 1, 8 offset: 0, 0 @@ -2107,7 +2142,7 @@ ui/slider-knob-over index: -1 ui/slider-vertical rotate: false - xy: 706, 226 + xy: 592, 216 size: 8, 1 orig: 8, 1 offset: 0, 0 @@ -2216,42 +2251,42 @@ ui/window-empty index: -1 weapons/blaster rotate: false - xy: 738, 254 + xy: 726, 249 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/flamer rotate: false - xy: 649, 212 + xy: 279, 87 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/mortar rotate: false - xy: 483, 85 + xy: 961, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/multigun rotate: false - xy: 503, 88 + xy: 981, 485 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/railgun rotate: false - xy: 706, 229 + xy: 609, 192 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 weapons/triblaster rotate: false - xy: 635, 156 + xy: 659, 168 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index ddfb6297efb2c7f82f920f70456a34d57b5de80d..eced6084b0be0bfa9378f105d38f46792ce1448a 100644 GIT binary patch literal 81849 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 A&j0`b literal 81351 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 ABme*a diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index c5aa9ff0ff..91722e269e 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -13,6 +13,7 @@ import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Timers; import io.anuke.ucore.function.Callable; import io.anuke.ucore.modules.ModuleCore; +import io.anuke.ucore.scene.ui.TextField; public class Mindustry extends ModuleCore { public static Callable donationsCallable; @@ -22,6 +23,7 @@ public class Mindustry extends ModuleCore { @Override public String format(Date date){ return "invalid date"; } @Override public String format(int number){ return number + ""; } @Override public void openLink(String link){ } + @Override public void addDialog(TextField field){} }; //always initialize blocks in this order, otherwise there are ID errors diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 3475b4d695..dc1d181fec 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -23,6 +23,7 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.types.Configurable; import io.anuke.ucore.core.*; +import io.anuke.ucore.function.Listenable; import io.anuke.ucore.function.VisibilityProvider; import io.anuke.ucore.modules.SceneModule; import io.anuke.ucore.scene.Element; @@ -469,4 +470,16 @@ public class UI extends SceneModule{ ((HudFragment)hudfrag).updateItems(); } + public void showConfirm(String title, String text, Listenable confirmed){ + FloatingDialog dialog = new FloatingDialog(title); + dialog.content().add(text).pad(4f).units(Unit.dp); + dialog.buttons().defaults().size(200f, 54f).pad(2f).units(Unit.dp); + dialog.buttons().addButton("Cancel", dialog::hide); + dialog.buttons().addButton("OK", () -> { + dialog.hide(); + confirmed.listen(); + }); + dialog.show(); + } + } diff --git a/core/src/io/anuke/mindustry/input/AndroidInput.java b/core/src/io/anuke/mindustry/input/AndroidInput.java index fb5185d0f8..cdf661ab46 100644 --- a/core/src/io/anuke/mindustry/input/AndroidInput.java +++ b/core/src/io/anuke/mindustry/input/AndroidInput.java @@ -119,6 +119,7 @@ public class AndroidInput extends InputHandler{ @Override public void update(){ + enableHold = player.breakMode == PlaceMode.holdDelete; if(enableHold && player.recipe != null && Gdx.input.isTouched(0) && Mathf.near2d(lmousex, lmousey, Gdx.input.getX(0), Gdx.input.getY(0), Unit.dp.inPixels(50)) && !ui.hasMouse()){ diff --git a/core/src/io/anuke/mindustry/input/PlaceMode.java b/core/src/io/anuke/mindustry/input/PlaceMode.java index 64fbb35a0a..666b9cbab8 100644 --- a/core/src/io/anuke/mindustry/input/PlaceMode.java +++ b/core/src/io/anuke/mindustry/input/PlaceMode.java @@ -82,7 +82,7 @@ public enum PlaceMode{ holdDelete{ { delete = true; - shown = false; + shown = true; } public void draw(int tilex, int tiley, int endx, int endy){ diff --git a/core/src/io/anuke/mindustry/io/PlatformFunction.java b/core/src/io/anuke/mindustry/io/PlatformFunction.java index 28a142b34c..32e19363cd 100644 --- a/core/src/io/anuke/mindustry/io/PlatformFunction.java +++ b/core/src/io/anuke/mindustry/io/PlatformFunction.java @@ -2,8 +2,11 @@ package io.anuke.mindustry.io; import java.util.Date; +import io.anuke.ucore.scene.ui.TextField; + public interface PlatformFunction{ public String format(Date date); public String format(int number); public void openLink(String link); + public void addDialog(TextField field); } diff --git a/core/src/io/anuke/mindustry/mapeditor/EditorTool.java b/core/src/io/anuke/mindustry/mapeditor/EditorTool.java index edd1be18fc..15a59562d2 100644 --- a/core/src/io/anuke/mindustry/mapeditor/EditorTool.java +++ b/core/src/io/anuke/mindustry/mapeditor/EditorTool.java @@ -12,11 +12,19 @@ import io.anuke.mindustry.world.ColorMapper; public enum EditorTool{ pencil{ + { + edit = true; + } + public void touched(MapEditor editor, int x, int y){ editor.draw(x, y); } }, fill{ + { + edit = true; + } + public void touched(MapEditor editor, int x, int y){ Pixmap pix = editor.pixmap(); @@ -63,6 +71,7 @@ public enum EditorTool{ } }, zoom; + boolean edit; public void touched(MapEditor editor, int x, int y){ diff --git a/core/src/io/anuke/mindustry/mapeditor/MapEditor.java b/core/src/io/anuke/mindustry/mapeditor/MapEditor.java index 99021f5e35..b18831f1f6 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapEditor.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapEditor.java @@ -84,13 +84,13 @@ public class MapEditor{ this.brushSize = 1; if(map.pixmap == null){ pixmap = new Pixmap(256, 256, Format.RGB888); - pixmap.setColor(ColorMapper.getColor(Blocks.stone)); + pixmap.setColor(ColorMapper.getColor(drawBlock)); pixmap.fill(); texture = new Texture(pixmap); }else{ pixmap = map.pixmap; - pixmap.setColor(ColorMapper.getColor(Blocks.stone)); texture = map.texture; + pixmap.setColor(ColorMapper.getColor(drawBlock)); } } @@ -161,8 +161,24 @@ public class MapEditor{ return pixmap; } + public void setPixmap(Pixmap out){ + if(pixmap.getWidth() == out.getWidth() && pixmap.getHeight() == out.getHeight()){ + pixmap.dispose(); + pixmap = out; + texture.draw(out, 0, 0); + }else{ + pixmap.dispose(); + texture.dispose(); + pixmap = out; + texture = new Texture(out); + } + pixmap.setColor(ColorMapper.getColor(drawBlock)); + map.pixmap = pixmap; + map.texture = texture; + } + public void resize(int width, int height){ - Pixmap out = Pixmaps.resize(pixmap, width, height); + Pixmap out = Pixmaps.resize(pixmap, width, height, ColorMapper.getColor(Blocks.stone)); pixmap.dispose(); pixmap = out; texture.dispose(); @@ -174,5 +190,6 @@ public class MapEditor{ filterPixmap = null; filterTexture = null; } + pixmap.setColor(ColorMapper.getColor(drawBlock)); } } diff --git a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java index 55e7bc36a2..8ba595d51b 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java @@ -1,8 +1,13 @@ package io.anuke.mindustry.mapeditor; +import java.util.Arrays; + +import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.Texture; import io.anuke.mindustry.Vars; +import io.anuke.mindustry.ui.FileChooser; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.ColorMapper; import io.anuke.mindustry.world.ColorMapper.BlockPair; @@ -12,6 +17,7 @@ import io.anuke.mindustry.world.blocks.SpecialBlocks; import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Pixmaps; import io.anuke.ucore.scene.builders.*; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Table; @@ -24,6 +30,8 @@ public class MapEditorDialog extends Dialog{ private MapLoadDialog loadDialog; private MapSaveDialog saveDialog; private MapResizeDialog resizeDialog; + private FileChooser openFile, saveFile; + private boolean saved = false; private ButtonGroup blockgroup; @@ -33,8 +41,54 @@ public class MapEditorDialog extends Dialog{ dialog = new MapGenerateDialog(editor); view = new MapView(editor); + openFile = new FileChooser("Load Image", FileChooser.pngFilter, true, file -> { + Vars.ui.showLoading(); + Timers.run(3f, () -> { + try{ + Pixmap pixmap = new Pixmap(file); + if(verifySize(pixmap)){ + editor.setPixmap(pixmap); + }else{ + Vars.ui.showError("[orange]Invalid image dimensions![]\nValid map dimensions: " + Arrays.toString(MapEditor.validMapSizes)); + } + }catch (Exception e){ + Vars.ui.showError("Error loading image file!"); + e.printStackTrace(); + } + Vars.ui.hideLoading(); + }); + }); + + saveFile = new FileChooser("Save Image", false, file -> { + if(!file.extension().toLowerCase().equals(".png")){ + file = file.parent().child(file.nameWithoutExtension() + ".png"); + } + FileHandle result = file; + Vars.ui.showLoading(); + Timers.run(3f, () -> { + try{ + Pixmaps.write(editor.pixmap(), result); + }catch (Exception e){ + Vars.ui.showError("Error saving image file!"); + e.printStackTrace(); + } + Vars.ui.hideLoading(); + }); + }); + loadDialog = new MapLoadDialog(map -> { - editor.beginEdit(map); + saveDialog.setFieldText(map.name); + Vars.ui.showLoading(); + + Timers.run(3f, () -> { + Map copy = new Map(); + copy.name = map.name; + copy.id = -1; + copy.pixmap = Pixmaps.copy(map.pixmap); + copy.texture = new Texture(copy.pixmap); + editor.beginEdit(copy); + Vars.ui.hideLoading(); + }); }); resizeDialog = new MapResizeDialog(editor, (x, y) -> { @@ -51,6 +105,7 @@ public class MapEditorDialog extends Dialog{ saveDialog = new MapSaveDialog(name -> { Vars.ui.showLoading(); if(verifyMap()){ + saved = true; editor.getMap().name = name; Timers.run(10f, () -> { Vars.world.maps().saveAndReload(editor.getMap(), editor.pixmap()); @@ -70,11 +125,16 @@ public class MapEditorDialog extends Dialog{ build.end(); shown(() -> { + saved = true; editor.beginEdit(new Map()); Core.scene.setScrollFocus(view); }); } + public void resetSaved(){ + saved = false; + } + public void updateSelectedBlock(){ Block block = editor.getDrawBlock(); int i = 0; @@ -103,6 +163,12 @@ public class MapEditorDialog extends Dialog{ row(); + new imagebutton("icon-cursor", 10f*3f, () -> { + resizeDialog.show(); + }).text("resize").padTop(4f); + + row(); + new imagebutton("icon-load", isize, () -> { loadDialog.show(); }).text("load map"); @@ -116,25 +182,23 @@ public class MapEditorDialog extends Dialog{ row(); new imagebutton("icon-load", isize, () -> { - + openFile.show(); }).text("load image"); row(); new imagebutton("icon-save", isize, () -> { - + saveFile.show(); }).text("save image"); row(); - new imagebutton("icon-cursor", 10f*3f, () -> { - resizeDialog.show(); - }).text("resize").padTop(4f); - - row(); - new imagebutton("icon-arrow-left", isize, () -> { - hide(); + if(!saved){ + Vars.ui.showConfirm("Confirm Exit", "[scarlet]You have unsaved changes![]\nAre you sure you want to exit?", () -> hide()); + }else{ + hide(); + } }).padBottom(0).text("back"); }}.left().growY().end(); @@ -186,6 +250,18 @@ public class MapEditorDialog extends Dialog{ }}.grow().end(); } + private boolean verifySize(Pixmap pix){ + boolean w = false, h = false; + for(int i : MapEditor.validMapSizes){ + if(pix.getWidth() == i) + w = true; + if(pix.getHeight() == i) + h = true; + } + + return w && h; + } + private boolean verifyMap(){ int psc = ColorMapper.getColor(SpecialBlocks.playerSpawn); int esc = ColorMapper.getColor(SpecialBlocks.enemySpawn); @@ -221,6 +297,7 @@ public class MapEditorDialog extends Dialog{ private void addBlockSelection(Table table){ Table content = new Table(); ScrollPane pane = new ScrollPane(content, "volume"); + pane.setScrollingDisabled(true, false); pane.setFadeScrollBars(false); pane.setOverscroll(true, false); ButtonGroup group = new ButtonGroup<>(); @@ -242,10 +319,12 @@ public class MapEditorDialog extends Dialog{ } } - group.getButtons().get(3).setChecked(true); + content.padLeft(Unit.dp.inPixels(-5f)); + + group.getButtons().get(2).setChecked(true); Table extra = new Table("button"); - extra.addWrap(() -> editor.getDrawBlock().name).width(120f).center(); + extra.labelWrap(() -> editor.getDrawBlock().name).width(120f).center(); table.add(extra).growX(); table.row(); table.add(pane).growY().fillX(); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java index cf3865018b..7b91138b85 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapGenerateDialog.java @@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Scaling; +import io.anuke.mindustry.Vars; import io.anuke.mindustry.mapeditor.MapFilter.GenPref; import io.anuke.mindustry.ui.BorderImage; import io.anuke.mindustry.ui.FloatingDialog; @@ -70,9 +71,15 @@ public class MapGenerateDialog extends FloatingDialog{ buttons().addButton("Update", () ->{ apply(); }); - buttons().addButton("Apply", () ->{ - editor.applyFilter(); - hide(); + buttons().addButton("Apply", () ->{ + Vars.ui.showLoading(); + + Timers.run(3f, () ->{ + editor.applyFilter(); + Vars.ui.hideLoading(); + Vars.ui.getEditorDialog().resetSaved(); + hide(); + }); }); shown(() ->{ diff --git a/core/src/io/anuke/mindustry/mapeditor/MapResizeDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapResizeDialog.java index 82244f6db5..ef054b379c 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapResizeDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapResizeDialog.java @@ -16,6 +16,7 @@ public class MapResizeDialog extends FloatingDialog{ public MapResizeDialog(MapEditor editor, BiConsumer cons){ super("resize map"); shown(() -> { + content().clear(); Pixmap pix = editor.pixmap(); width = pix.getWidth(); height = pix.getHeight(); @@ -48,7 +49,7 @@ public class MapResizeDialog extends FloatingDialog{ table.row(); } - content().add(() -> + content().label(() -> width + height > 512 ? "[scarlet]Warning!\n[]Maps larger than 256 units may be laggy and unstable." : "" ).get().setAlignment(Align.center, Align.center); content().row(); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapSaveDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapSaveDialog.java index b54f05600b..3b366b8adc 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapSaveDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapSaveDialog.java @@ -17,7 +17,7 @@ public class MapSaveDialog extends FloatingDialog{ shown(() -> { content().clear(); - content().add(() ->{ + content().label(() ->{ Map map = Vars.world.maps().getMap(field.getText()); if(map != null){ if(map.custom){ @@ -47,6 +47,11 @@ public class MapSaveDialog extends FloatingDialog{ buttons().add(button); } + public void setFieldText(String text){ + field.setText(text); + } + + private boolean invalid(){ if(field.getText().isEmpty()){ return true; diff --git a/core/src/io/anuke/mindustry/mapeditor/MapView.java b/core/src/io/anuke/mindustry/mapeditor/MapView.java index 87b764af07..8cc03e1733 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapView.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapView.java @@ -11,12 +11,11 @@ import com.badlogic.gdx.scenes.scene2d.utils.ScissorStack; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.Vars; -import io.anuke.ucore.core.Core; -import io.anuke.ucore.core.Draw; -import io.anuke.ucore.core.Inputs; +import io.anuke.ucore.core.*; import io.anuke.ucore.scene.Element; import io.anuke.ucore.scene.event.InputEvent; import io.anuke.ucore.scene.event.InputListener; +import io.anuke.ucore.scene.event.Touchable; import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Tmp; @@ -36,6 +35,7 @@ public class MapView extends Element implements GestureListener{ this.editor = editor; Inputs.addProcessor(0, new GestureDetector(20, 0.5f, 2, 0.15f, this)); + setTouchable(Touchable.enabled); addListener(new InputListener(){ int lastx, lasty; @@ -48,6 +48,10 @@ public class MapView extends Element implements GestureListener{ lasty = p.y; tool.touched(editor, p.x, p.y); + if(tool.edit){ + Vars.ui.getEditorDialog().resetSaved(); + } + drawing = true; return true; } @@ -62,6 +66,7 @@ public class MapView extends Element implements GestureListener{ GridPoint2 p = project(x, y); if(drawing && tool == EditorTool.pencil){ + Vars.ui.getEditorDialog().resetSaved(); Array points = br.line(lastx, lasty, p.x, p.y); for(GridPoint2 point : points){ editor.draw(point.x, point.y); @@ -71,20 +76,6 @@ public class MapView extends Element implements GestureListener{ lasty = p.y; } }); - - addListener(new InputListener(){ - @Override - public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { - return tool == EditorTool.zoom; - } - - - @Override - public void touchDragged (InputEvent event, float x, float y, int pointer) { - //offsetx += Gdx.input.getDeltaX(pointer) / zoom; - //offsety -= Gdx.input.getDeltaY(pointer) / zoom; - } - }); } @Override @@ -106,23 +97,28 @@ public class MapView extends Element implements GestureListener{ } private GridPoint2 project(float x, float y){ - float size = Math.min(width, height)*zoom; - x = (x - getWidth()/2 + size/2 - offsetx*zoom) / size * editor.texture().getWidth(); - y = (y - getHeight()/2 + size/2 - offsety*zoom) / size * editor.texture().getHeight(); + float ratio = 1f / ((float)editor.pixmap().getWidth() / editor.pixmap().getHeight()); + float size = Math.min(width, height); + float sclwidth = size * zoom; + float sclheight = size * zoom * ratio; + x = (x - getWidth()/2 + sclwidth/2 - offsetx*zoom) / sclwidth * editor.texture().getWidth(); + y = (y - getHeight()/2 + sclheight/2 - offsety*zoom) / sclheight * editor.texture().getHeight(); return Tmp.g1.set((int)x, editor.texture().getHeight() - 1 - (int)y); } @Override public void draw(Batch batch, float alpha){ + float ratio = 1f / ((float)editor.pixmap().getWidth() / editor.pixmap().getHeight()); float size = Math.min(width, height); - float sclsize = size * zoom; + float sclwidth = size * zoom; + float sclheight = size * zoom * ratio; float centerx = x + width/2 + offsetx * zoom; float centery = y + height/2 + offsety * zoom; batch.flush(); boolean pop = ScissorStack.pushScissors(Tmp.r1.set(x + width/2 - size/2, y + height/2 - size/2, size, size)); - batch.draw(editor.texture(), centerx - sclsize/2, centery - sclsize/2, sclsize, sclsize); + batch.draw(editor.texture(), centerx - sclwidth/2, centery - sclheight/2, sclwidth, sclheight); batch.flush(); if(pop) ScissorStack.popScissors(); @@ -134,7 +130,10 @@ public class MapView extends Element implements GestureListener{ } private boolean active(){ - return Core.scene.getKeyboardFocus() != null && Core.scene.getKeyboardFocus().isDescendantOf(Vars.ui.getEditorDialog()) && Vars.ui.isEditing() && tool == EditorTool.zoom; + return Core.scene.getKeyboardFocus() != null + && Core.scene.getKeyboardFocus().isDescendantOf(Vars.ui.getEditorDialog()) + && Vars.ui.isEditing() && tool == EditorTool.zoom && + Core.scene.hit(Graphics.mouse().x, Graphics.mouse().y, true) == this; } @Override diff --git a/core/src/io/anuke/mindustry/ui/FileChooser.java b/core/src/io/anuke/mindustry/ui/FileChooser.java new file mode 100644 index 0000000000..4a063f85ab --- /dev/null +++ b/core/src/io/anuke/mindustry/ui/FileChooser.java @@ -0,0 +1,337 @@ +package io.anuke.mindustry.ui; + +import java.io.File; +import java.io.FileFilter; +import java.util.Arrays; +import java.util.Comparator; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.graphics.g2d.GlyphLayout; +import com.badlogic.gdx.utils.Align; +import com.badlogic.gdx.utils.Array; +import com.badlogic.gdx.utils.Pools; + +import io.anuke.mindustry.Mindustry; +import io.anuke.ucore.core.Core; +import io.anuke.ucore.function.Consumer; +import io.anuke.ucore.function.Predicate; +import io.anuke.ucore.scene.event.Touchable; +import io.anuke.ucore.scene.ui.*; +import io.anuke.ucore.scene.ui.layout.Table; +import io.anuke.ucore.scene.ui.layout.Unit; + +public class FileChooser extends FloatingDialog{ + + private Table files; + private FileHandle homeDirectory = Gdx.files.local(Gdx.files.getExternalStoragePath()); + private FileHandle directory = homeDirectory; + private ScrollPane pane; + private TextField navigation, filefield; + private TextButton ok; + private FileHistory stack = new FileHistory(); + private Predicate filter; + private Consumer selectListener; + private boolean open; + + public FileChooser(String title, boolean open, Consumer result){ + this(title, defaultFilter, open, result); + } + + public FileChooser(String title, Predicate filter, boolean open, Consumer result){ + super(title); + this.open = open; + this.filter = filter; + this.selectListener = result; + setupWidgets(); + } + + private void setupWidgets(){ + getCell(content()).maxWidth(Gdx.graphics.getWidth()/2); + content().pad(-Unit.dp.inPixels(10)); + + Table content = new Table(); + + filefield = new TextField(); + if(!open) Mindustry.platforms.addDialog(filefield); + filefield.setDisabled(open); + + ok = new TextButton(open ? "Open" : "Save"); + + ok.clicked(() -> { + if(ok.isDisabled()) return; + if(selectListener != null) + selectListener.accept(directory.child(filefield.getText())); + hide(); + }); + + filefield.changed(() -> { + ok.setDisabled(filefield.getText().replace(" ", "").isEmpty()); + }); + + filefield.change(); + + TextButton cancel = new TextButton("Cancel"); + cancel.clicked(() -> hide()); + + navigation = new TextField(""); + navigation.setTouchable(Touchable.disabled); + + files = new Table(); + + pane = new ScrollPane(files){ + public float getPrefHeight(){ + return Gdx.graphics.getHeight(); + } + }; + pane.setOverscroll(false, false); + pane.setFadeScrollBars(false); + + updateFiles(true); + + Table icontable = new Table(); + + float isize = Unit.dp.inPixels(14*2); + + ImageButton up = new ImageButton("icon-folder-parent"); + up.resizeImage(isize); + up.clicked(()->{ + directory = directory.parent(); + updateFiles(true); + }); + + ImageButton back = new ImageButton("icon-arrow-left"); + back.resizeImage(isize); + + ImageButton forward = new ImageButton("icon-arrow-right"); + forward.resizeImage(isize); + + forward.clicked(()-> stack.forward()); + + back.clicked(()-> stack.back()); + + ImageButton home = new ImageButton("icon-home"); + home.resizeImage(isize); + home.clicked(()->{ + directory = homeDirectory; + updateFiles(true); + }); + + icontable.defaults().height(50).growX().uniform(); + icontable.add(home); + icontable.add(back); + icontable.add(forward); + icontable.add(up); + + Table fieldcontent = new Table(); + fieldcontent.bottom().left().add(new Label("File Name:")); + fieldcontent.add(filefield).height(40f).fillX().expandX().padLeft(10f); + + Table buttons = new Table(); + buttons.defaults().growX().height(50); + buttons.add(cancel); + buttons.add(ok); + + content.top().left(); + content.add(icontable).expandX().fillX(); + content.row(); + + //content.add(navigation).colspan(3).left().padBottom(10f).expandX().fillX().height(40f); + //content.row(); + + content.center().add(pane).width(Gdx.graphics.getWidth()/2).colspan(3).units(Unit.px).grow(); + content.row(); + + if(!open){ + content.bottom().left().add(fieldcontent).colspan(3).grow().padTop(-2).padBottom(2); + content.row(); + } + + content.add(buttons).growX(); + + content().add(content); + //content().add(icontable).expandY().top(); + } + + private void updateFileFieldStatus(){ + if(!open){ + ok.setDisabled(filefield.getText().replace(" ", "").isEmpty()); + }else{ + ok.setDisabled(!directory.child(filefield.getText()).exists() || directory.child(filefield.getText()).isDirectory()); + } + } + + private FileHandle[] getFileNames(){ + FileHandle[] handles = directory.list(new FileFilter(){ + @Override + public boolean accept(File file){ + return !file.getName().startsWith("."); + } + }); + + Arrays.sort(handles, new Comparator(){ + @Override + public int compare(FileHandle a, FileHandle b){ + if(a.isDirectory() && !b.isDirectory()) return -1; + if( !a.isDirectory() && b.isDirectory()) return 1; + return a.name().compareTo(b.name()); + } + }); + return handles; + } + + private void updateFiles(boolean push){ + if(push) stack.push(directory); + navigation.setText(directory.toString()); + + GlyphLayout layout = Pools.obtain(GlyphLayout.class); + + layout.setText(Core.font, navigation.getText()); + + if(layout.width < navigation.getWidth()){ + navigation.setCursorPosition(0); + }else{ + navigation.setCursorPosition(navigation.getText().length()); + } + + Pools.free(layout); + + files.clearChildren(); + FileHandle[] names = getFileNames(); + + Image upimage = new Image("icon-folder-parent"); + + TextButton upbutton = new TextButton(".." + directory.toString()); + upbutton.clicked(()->{ + directory = directory.parent(); + updateFiles(true); + }); + + upbutton.left().add(upimage).padRight(4f).size(14*2); + upbutton.getCells().reverse(); + + files.top().left().add(upbutton).align(Align.topLeft).fillX().expandX().height(50).pad(2).colspan(2); + upbutton.getLabel().setAlignment(Align.left); + + files.row(); + + ButtonGroup group = new ButtonGroup(); + group.setMinCheckCount(0); + + for(FileHandle file : names){ + if( !file.isDirectory() && !filter.test(file)) continue; //skip non-filtered files + + String filename = file.name(); + + TextButton button = new TextButton(shorten(filename), "toggle"); + group.add(button); + + button.clicked(()->{ + if( !file.isDirectory()){ + filefield.setText(filename); + updateFileFieldStatus(); + }else{ + directory = directory.child(filename); + updateFiles(true); + } + }); + + filefield.changed(()->{ + button.setChecked(filename.equals(filefield.getText())); + }); + + Image image = new Image(file.isDirectory() ? "icon-folder" : "icon-file-text"); + + button.add(image).padRight(4f).size(14*2f); + button.getCells().reverse(); + files.top().left().add(button).align(Align.topLeft).fillX().expandX() + .height(50).pad(2).padTop(0).padBottom(0).colspan(2); + button.getLabel().setAlignment(Align.left); + files.row(); + } + + pane.setScrollY(0f); + updateFileFieldStatus(); + + if(open) filefield.clearText(); + } + + private String shorten(String string){ + int max = 30; + if(string.length() <= max){ + return string; + }else{ + return string.substring(0, max - 3).concat("..."); + } + } + + @Override + public Dialog show(){ + super.show(); + Core.scene.setScrollFocus(pane); + return this; + } + + public void fileSelected(Consumer listener){ + this.selectListener = listener; + } + + public class FileHistory{ + private Array history = new Array(); + private int index; + + public FileHistory(){ + + } + + public void push(FileHandle file){ + if(index != history.size) history.truncate(index); + history.add(file); + index ++; + } + + public void back(){ + if( !canBack()) return; + index --; + directory = history.get(index - 1); + updateFiles(false); + } + + public void forward(){ + if( !canForward()) return; + directory = history.get(index); + index ++; + updateFiles(false); + } + + public boolean canForward(){ + return !(index >= history.size); + } + + public boolean canBack(){ + return !(index == 1) && index > 0; + } + + void print(){ + + System.out.println("\n\n\n\n\n\n"); + int i = 0; + for(FileHandle file : history){ + i ++; + if(index == i){ + System.out.println("[[" + file.toString() + "]]"); + }else{ + System.out.println("--" + file.toString() + "--"); + } + } + } + } + + public static interface FileHandleFilter{ + public boolean accept(FileHandle file); + } + + public static Predicate pngFilter = file -> file.extension().equalsIgnoreCase("png"); + public static Predicate jpegFilter = file -> file.extension().equalsIgnoreCase("png") || file.extension().equalsIgnoreCase("jpg") || file.extension().equalsIgnoreCase("jpeg"); + public static Predicate defaultFilter = file -> true; +} diff --git a/core/src/io/anuke/mindustry/ui/LevelDialog.java b/core/src/io/anuke/mindustry/ui/LevelDialog.java index 837d6f8531..45d732e393 100644 --- a/core/src/io/anuke/mindustry/ui/LevelDialog.java +++ b/core/src/io/anuke/mindustry/ui/LevelDialog.java @@ -8,7 +8,6 @@ import io.anuke.mindustry.world.Map; import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Timers; -import io.anuke.ucore.function.StringSupplier; import io.anuke.ucore.scene.ui.*; import io.anuke.ucore.scene.ui.layout.Stack; import io.anuke.ucore.scene.ui.layout.Table; @@ -18,6 +17,7 @@ import io.anuke.ucore.scene.utils.Elements; public class LevelDialog extends FloatingDialog{ private Map selectedMap = Vars.world.maps().getMap(0); private TextureRegion region = new TextureRegion(); + private ScrollPane pane; public LevelDialog(){ super("Level Select"); @@ -34,7 +34,7 @@ public class LevelDialog extends FloatingDialog{ void setup(){ Table maps = new Table(); - ScrollPane pane = new ScrollPane(maps); + pane = new ScrollPane(maps); pane.setFadeScrollBars(false); int maxwidth = 4; @@ -66,7 +66,7 @@ public class LevelDialog extends FloatingDialog{ Table inset = new Table("pane-button"); inset.add("[accent]"+map.name).pad(3f).units(Unit.dp); inset.row(); - inset.add((StringSupplier)(()->"High Score: [accent]" + Settings.getInt("hiscore" + map.name))) + inset.label((() -> "High Score: [accent]" + Settings.getInt("hiscore" + map.name))) .pad(3f).units(Unit.dp); inset.pack(); @@ -80,7 +80,21 @@ public class LevelDialog extends FloatingDialog{ ImageButton image = new ImageButton(new TextureRegion(map.texture), "togglemap"); image.row(); image.add(inset).width(images+6).units(Unit.dp); + TextButton[] delete = new TextButton[1]; + if(map.custom){ + image.row(); + delete[0] = image.addButton("Delete", () -> { + Vars.ui.showConfirm("Confirm Delete", "Are you sure you want to delete\nthe map \"[orange]" + map.name + "[]\"?", () -> { + Vars.world.maps().removeMap(map); + reload(); + Core.scene.setScrollFocus(pane); + }); + }).width(images+16).units(Unit.dp).padBottom(-10f).grow().get(); + } image.clicked(()->{ + if(delete[0] != null && delete[0].getClickListener().isOver()){ + return; + } selectedMap = map; hide(); Vars.control.playMap(selectedMap); @@ -90,7 +104,7 @@ public class LevelDialog extends FloatingDialog{ stack.add(back); stack.add(image); - maps.add(stack).width(170).pad(4f).units(Unit.dp); + maps.add(stack).width(170).top().pad(4f).units(Unit.dp); maps.padRight(Unit.dp.inPixels(26)); diff --git a/core/src/io/anuke/mindustry/world/Maps.java b/core/src/io/anuke/mindustry/world/Maps.java index d9b3cb5599..0fc6f0644d 100644 --- a/core/src/io/anuke/mindustry/world/Maps.java +++ b/core/src/io/anuke/mindustry/world/Maps.java @@ -51,6 +51,18 @@ public class Maps implements Disposable{ } } + public void removeMap(Map map){ + maps.remove(map.id); + mapNames.remove(map.name); + Array out = new Array<>(); + for(Map m : maps.values()){ + if(m.custom){ + out.add(m); + } + } + saveMaps(out, Vars.customMapDirectory.child("maps.json")); + } + public void saveAndReload(Map map, Pixmap out){ if(map.pixmap != null && out != map.pixmap && map.texture != null){ map.texture.dispose(); @@ -58,6 +70,7 @@ public class Maps implements Disposable{ }else if (out == map.pixmap){ map.texture.draw(out, 0, 0); } + map.pixmap = out; if(map.texture == null) map.texture = new Texture(map.pixmap); @@ -90,6 +103,7 @@ public class Maps implements Disposable{ if(map.custom){ if(map.name.equals(toSave.name)){ out.add(toSave); + toSave.id = map.id; added = true; }else{ out.add(map); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java index 2ae2f53b9a..da112bf3a3 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java @@ -26,7 +26,7 @@ public class NuclearReactor extends LiquidItemPowerGenerator{ protected Color coolColor = new Color(1, 1, 1, 0f); protected Color hotColor = Color.valueOf("ff9575a3"); protected int fuelUseTime = 120; //time to consume 1 fuel - protected float powerMultiplier = 0.2f; //power per frame, depends on full capacity + protected float powerMultiplier = 0.3f; //power per frame, depends on full capacity protected float heating = 0.007f; //heating per frame protected float coolantPower = 0.007f; //how much heat decreases per coolant unit protected float smokeThreshold = 0.3f; //threshold at which block starts smoking diff --git a/desktop/mindustry-maps/desert2.png b/desktop/mindustry-maps/desert2.png new file mode 100644 index 0000000000000000000000000000000000000000..12ded3b5745050b9fba115d9325255d3e1c7a8dd GIT binary patch literal 3249 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 literal 0 HcmV?d00001 diff --git a/desktop/mindustry-maps/desert23.png b/desktop/mindustry-maps/desert23.png new file mode 100644 index 0000000000000000000000000000000000000000..12ded3b5745050b9fba115d9325255d3e1c7a8dd GIT binary patch literal 3249 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 literal 0 HcmV?d00001 diff --git a/desktop/mindustry-maps/desert2asd.png b/desktop/mindustry-maps/desert2asd.png new file mode 100644 index 0000000000000000000000000000000000000000..12ded3b5745050b9fba115d9325255d3e1c7a8dd GIT binary patch literal 3249 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 literal 0 HcmV?d00001 diff --git a/desktop/mindustry-maps/island2.png b/desktop/mindustry-maps/island2.png new file mode 100644 index 0000000000000000000000000000000000000000..12ded3b5745050b9fba115d9325255d3e1c7a8dd GIT binary patch literal 3249 zcmbW2dpwle8pqc=Gt9V8a?fS#QpqKSgc|nNqvJNF{Icv=RQ=**8bS(GpEXj#&4bL@wZY6&QlBCXj<;@ErhQ$?fJ1SCnra6 z5=2Z_aUd|20)X;n02mlR--Q4XY5%LaX)DO{9<6I9S0N3HLIKBMV_rFVkk#wzUcCW*9n{DjL;&W zps6a`dR7<%2sYX?w{aEH2o%6+%PehQ-y~`!0wI9oZp**KaWX>x!Srs3?H#+RiUqNs zW~STf1s_TAZ8WIf2^_d1g3fxfdNDEc**3k@RH;3&d#H&pAD{!w2}bC>UUYduT_c1#zej!4LaR> zZ&_y+jRi;MI#%Z`oL7&g{@%!e-GIVFMOb#l=2@=C6e1CeP;wQO29m?M^Ma~AhOxbR zL1djC#CmlWJHoFYPawKd5AQ?JOCnx&IX?sEn%wc#ytoJT06|Y+&;%sYHbqL<<4mYz z%YF*T9_pbNvBFH)h%FmHlf`pEMCAAO*QYBl&RtlmneAqVXc7R1=Cqpd>bllb`OG7( z_;${`EdW=)a2y7c38}gi0HoVj(ohJXcc@+r2PiM!C;e3XtNTp=gbQk9a6eHZVgrrD zev5+sdZJ#27wo?d5;9{3zN+hiyz_^6_<1!rs^qJt8%|Mq7^js8^R5t{71g8KzI{SqJk&)`7;wlxd@{e1TX+}SFF`r#p+O9r9P6q%DGX-`iBn58S9%k;K^JC>Zjh<}K|48r zvk?k`0B^YqoP1ppkIxKF#ZQnDJaZuWidx~-?!Az@k^rFoFI5D3*Qpk^9D2c!N9h_EY79j+}*4Fxja1CWSyx~*{Q&u7_e z-6Bk{TkEJv&dwp>)&Y01?u6Id)-q@RV`UdfebV>|W`Vjrjr=Esgw1^cf_3OB+*Tn7 zMD?*G&Hcp;2~O`pPcKAabmv4bzi1aSMqZK>fF;bor+!;9SS<(wG78hoiH zYPPBfP%M**PoA9hu3F{p08OcGAx8~n8+=Ac-^&)#iBZPQ;XN`c^q!mw-I<;dz5WWL z8|$SQ_NSlq4ZA2BVP3)*&;JEbGOh9tWHRvaAdMeDG`nAFrWE7hMd++@|1QH?d72_c zQBD&2+W!us|5LR(NztPHho*M;BL@{=A4tRdK(^L737Jnt0Ku+vdC7%FZrv4jI57ue zjk;4b0?4=bdI+aE?$bz> zAm#gO9GzMPCT(tDH=$n4CU=eVjP(b|zAsj=#>g8SV|LFNgLIxGu&|XQcN#(&A$|NF zf9^jE<(2BhSVMTbqzJdpS2gzy^~%%|P( z4SCU3ORtKbi1aLHglCUZGoiX>a`dI{mC*7L(j!So1l~>Gz;^hoBLS5R;A1g>>IEjN zRT+ch(Vw103_#uduF~@hJ9BlATWn@mtw&?kgy<*af!l=7&?H~QxoLYTGTTRyK8w$9 zXzJfoDm5aQq|W3I|3lRPAC8L?A!?xZ3SB8|>Q^c>)}MNx74h`qve(is+nq?eRQ#e+ zb~%FL56arS&{;P=_tjLq5P#adO(HBB(DF94gbA3gN%!+JeE0J7eJ(eexC!4r^VBv9 zy4&1Xc4>?T3NI6G#8zU|yRF~ciV2uH8JddU79Wko6|E_1qWV`i*`HCb)s4R%IWm6K zFGU6LAkGwGP{F^fNG5;M5Hf6T%)>Zj0sUF@yLNu0A_3D<=``gtWYPHLqRh0@jJ8qK zfhVYHWkkkfyt*U9X|$G0%kZMOT+|Sv7u!Q6W8NQ)tuXg!CN3eV#ZiogJt!ygnK$2e zW|&fXG7;`MBpE@h9b@8~FK(`~A*LsNsY|v&vBe!@V^U96=9IPbU0(ZeIsI{``Uf7< zjmas!554_`C`HbftRKrhT#etM7!xRu{O$P{m+NKwS;btB%dXLAqB&|ipLC&}Z#b?! z5$k*szc{aBJihb28Luixgc$5x;s27xuPuyDEKzCf9rrHfcFD{`X}@dkHI)k7_TaVi zk%iY}=3pY;BjC1;CZ8taw0M<}MA#&E4bRD2J!vO8U{{-?Rb=`^6xj11)$0*1zDZ-Y z1DJQmq(3_4|9W&7!XgMB861Tx+7KqeqRcZ#uSwgx@W(WvZQ5x%K|Aa zb;=%|O0QbXwr3(i(?3{;GQ(H;HVwrgBZP~1K=a^E*>0s;`P6(N){g>hRZ@t3d8Jll zYq))ul(0IgH_d6a#(|}>Z%Wd@M5lzQ-GDoy0s5tijqDcYD}Ov+Eh-$ZT8Y4RQ0rXT zz$}^IId1!4c_2rn@yl8sdU{Ms`%H0&1L~1I0VwT;a)e=K=F;_#l!B zeOCRZpO$tAn%SaGtov&JKv&~}EV+Bavfv&p4S#LW@YMWbpuM!bSa8~P7aph!y?C8C zFAer}rWoJolL(S5;Cj|E!|`(@>Vz&~M)YOg_Ch#&m0o(uSTA%a1uQGt1C5>7!K zRc2<|m2q#3Ns_8Z6KrU|SGd#zzoE7Q`0Drazj~sYnNlg3~`XGF5 literal 0 HcmV?d00001 diff --git a/desktop/mindustry-maps/maps.json b/desktop/mindustry-maps/maps.json index ff76b43a3c..52840a2510 100644 --- a/desktop/mindustry-maps/maps.json +++ b/desktop/mindustry-maps/maps.json @@ -1 +1 @@ -{"maps":[{"id":13,"name":"custom","custom":true},{"id":14,"name":"wowmap","custom":true},{"id":15,"name":"moremap","custom":true},{"id":16,"name":"trash","custom":true},{"id":17,"name":"wonderifthisworks","custom":true}]} \ No newline at end of file +{"maps":[]} \ No newline at end of file diff --git a/desktop/mindustry-maps/maze2.png b/desktop/mindustry-maps/maze2.png new file mode 100644 index 0000000000000000000000000000000000000000..4ed536eef2ce44252e99151e072b1d86efb4133f GIT binary patch literal 4597 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 b{(PW=mt+Vk>opArr{jvDg~4BXnDGAry-F~~ literal 0 HcmV?d00001 diff --git a/desktop/mindustry-maps/sadfa.png b/desktop/mindustry-maps/sadfa.png new file mode 100644 index 0000000000000000000000000000000000000000..8223292cf46645a927e9b64752cf5a6511493172 GIT binary patch literal 2648 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 HDWM4f45Y)6 literal 856 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJD{c~2L|kcv5PuNX2iDDWIG z=+m54pRdroxU(s4?%loY9<%N<9$JwZAD#en41=eupUXO@ GgeCxBBZ52t diff --git a/desktop/mindustry-maps/tundra213123.png b/desktop/mindustry-maps/tundra213123.png new file mode 100644 index 0000000000000000000000000000000000000000..09aa83745cbd471b5071d0606e0e2f5b5d4d55b9 GIT binary patch literal 5371 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 literal 0 HcmV?d00001 diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 5a21731502..1569cd0ba7 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -14,6 +14,7 @@ import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.Vars; import io.anuke.mindustry.io.PlatformFunction; +import io.anuke.ucore.scene.ui.TextField; public class DesktopLauncher { @@ -47,6 +48,11 @@ public class DesktopLauncher { Vars.ui.showError("Error opening link."); } } + + @Override + public void addDialog(TextField field){ + + } }; Mindustry.args = Array.with(arg); diff --git a/html/src/io/anuke/mindustry/client/HtmlLauncher.java b/html/src/io/anuke/mindustry/client/HtmlLauncher.java index 613cc30abe..36039cf4c8 100644 --- a/html/src/io/anuke/mindustry/client/HtmlLauncher.java +++ b/html/src/io/anuke/mindustry/client/HtmlLauncher.java @@ -17,6 +17,7 @@ import com.google.gwt.user.client.ui.*; import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.io.PlatformFunction; +import io.anuke.ucore.scene.ui.TextField; public class HtmlLauncher extends GwtApplication { static final int WIDTH = 800; @@ -106,6 +107,11 @@ public class HtmlLauncher extends GwtApplication { public void openLink(String link){ Window.open(link, "_blank", ""); } + + @Override + public void addDialog(TextField field){ + + } }; return new Mindustry();