Added option to set TextField length for showTextInput()

the character length default was 12, and unchangeable afaik, so I added an option to change the character length, as well as suggesting a new character length for save file's name. (I actually have no idea if this PR can be delivered correctly, wish me luck.)
This commit is contained in:
(G_H) 2019-06-23 17:55:12 +08:00 committed by GitHub
parent 6b60147152
commit 6d3a67ae59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 368 additions and 0 deletions

61
SaveDialog.java Normal file
View file

@ -0,0 +1,61 @@
package io.anuke.mindustry.ui.dialogs;
import io.anuke.arc.Core;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.util.Time;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.game.Saves.SaveSlot;
import static io.anuke.mindustry.Vars.*;
public class SaveDialog extends LoadDialog{
public SaveDialog(){
super("$savegame");
update(() -> {
if(state.is(State.menu) && isShown()){
hide();
}
});
}
public void addSetup(){
slots.row();
slots.addImageTextButton("$save.new", "icon-add", 14 * 3, () ->
ui.showTextInput("$save", "$save.newslot", 30, "", text -> {
ui.loadAnd("$saving", () -> {
control.saves.addSave(text);
Core.app.post(() -> Core.app.post(this::setup));
});
})
).fillX().margin(10f).minWidth(300f).height(70f).pad(4f).padRight(-4);
}
@Override
public void modifyButton(TextButton button, SaveSlot slot){
button.clicked(() -> {
if(button.childrenPressed()) return;
ui.showConfirm("$overwrite", "$save.overwrite", () -> save(slot));
});
}
void save(SaveSlot slot){
ui.loadfrag.show("$saveload");
Time.runTask(5f, () -> {
hide();
ui.loadfrag.hide();
try{
slot.save();
}catch(Throwable e){
e.printStackTrace();
ui.showError("[accent]" + Core.bundle.get("savefail"));
}
});
}
}