Added map default rule editing

This commit is contained in:
Anuken
2019-05-13 11:31:25 -04:00
parent c4c4b473e5
commit b2341bf75c
4 changed files with 15 additions and 8 deletions

View File

@@ -199,6 +199,7 @@ editor.mapinfo = Map Info
editor.author = Author: editor.author = Author:
editor.description = Description: editor.description = Description:
editor.waves = Waves: editor.waves = Waves:
editor.rules = Rules:
waves.title = Waves waves.title = Waves
waves.remove = Remove waves.remove = Remove
waves.never = <never> waves.never = <never>

View File

@@ -42,6 +42,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
private MapGenerateDialog generateDialog; private MapGenerateDialog generateDialog;
private ScrollPane pane; private ScrollPane pane;
private FloatingDialog menu; private FloatingDialog menu;
private Rules lastSavedRules;
private boolean saved = false; private boolean saved = false;
private boolean shownWithMap = false; private boolean shownWithMap = false;
private Array<Block> blocksOut = new Array<>(); private Array<Block> blocksOut = new Array<>();
@@ -193,6 +194,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.clearOp(); editor.clearOp();
Core.scene.setScrollFocus(view); Core.scene.setScrollFocus(view);
if(!shownWithMap){ if(!shownWithMap){
state.rules = new Rules();
editor.beginEdit(200, 200); editor.beginEdit(200, 200);
} }
shownWithMap = false; shownWithMap = false;
@@ -216,12 +218,15 @@ public class MapEditorDialog extends Dialog implements Disposable{
state.set(State.menu); state.set(State.menu);
shownWithMap = true; shownWithMap = true;
show(); show();
state.rules = (lastSavedRules == null ? new Rules() : lastSavedRules);
lastSavedRules = null;
editor.renderer().updateAll(); editor.renderer().updateAll();
} }
private void playtest(){ private void playtest(){
menu.hide(); menu.hide();
ui.loadAnd(() -> { ui.loadAnd(() -> {
lastSavedRules = state.rules;
hide(); hide();
//only reset the player; logic.reset() will clear entities, which we do not want //only reset the player; logic.reset() will clear entities, which we do not want
player.reset(); player.reset();

View File

@@ -4,12 +4,16 @@ import io.anuke.arc.Core;
import io.anuke.arc.collection.ObjectMap; import io.anuke.arc.collection.ObjectMap;
import io.anuke.arc.scene.ui.TextArea; import io.anuke.arc.scene.ui.TextArea;
import io.anuke.arc.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.game.Rules;
import io.anuke.mindustry.ui.dialogs.CustomRulesDialog;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
public class MapInfoDialog extends FloatingDialog{ public class MapInfoDialog extends FloatingDialog{
private final MapEditor editor; private final MapEditor editor;
private final WaveInfoDialog waveinfo; private final WaveInfoDialog waveinfo;
private final CustomRulesDialog ruleinfo = new CustomRulesDialog();
public MapInfoDialog(MapEditor editor){ public MapInfoDialog(MapEditor editor){
super("$editor.mapinfo"); super("$editor.mapinfo");
@@ -54,14 +58,13 @@ public class MapInfoDialog extends FloatingDialog{
}).size(400, 55f).get(); }).size(400, 55f).get();
author.setMessageText("$unknown"); author.setMessageText("$unknown");
cont.row();
cont.add("$editor.rules").padRight(8).left();
cont.addButton("$edit", () -> ruleinfo.show(Vars.state.rules, () -> Vars.state.rules = new Rules())).left().width(200f);;
cont.row(); cont.row();
cont.add("$editor.waves").padRight(8).left(); cont.add("$editor.waves").padRight(8).left();
cont.table(t -> { cont.addButton("$edit", waveinfo::show).left().width(200f);
t.add().growX();
t.label(() -> tags.containsKey("waves") ? "" : Core.bundle.get("editor.default")).left();
t.add().growX();
t.addButton("$edit", waveinfo::show).growY().width(200f);
}).size(400, 55f);
name.change(); name.change();
description.change(); description.change();

View File

@@ -8,10 +8,8 @@ public class ServerLauncher{
public static void main(String[] args){ public static void main(String[] args){
try{ try{
Net.setClientProvider(new ArcNetClient()); Net.setClientProvider(new ArcNetClient());
Net.setServerProvider(new ArcNetServer()); Net.setServerProvider(new ArcNetServer());
new HeadlessApplication(new MindustryServer(args), null, throwable -> CrashSender.send(throwable, f -> {})); new HeadlessApplication(new MindustryServer(args), null, throwable -> CrashSender.send(throwable, f -> {}));
}catch(Throwable t){ }catch(Throwable t){
CrashSender.send(t, f -> {}); CrashSender.send(t, f -> {});