Files
Mindustry/core/src/mindustry/ui/dialogs/BaseDialog.java
2021-06-02 11:08:08 -04:00

61 lines
1.4 KiB
Java

package mindustry.ui.dialogs;
import arc.*;
import arc.scene.ui.*;
import arc.util.*;
import mindustry.core.GameState.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import static mindustry.Vars.*;
public class BaseDialog extends Dialog{
private boolean wasPaused;
protected boolean shouldPause;
public BaseDialog(String title, DialogStyle style){
super(title, style);
setFillParent(true);
this.title.setAlignment(Align.center);
titleTable.row();
titleTable.image(Tex.whiteui, Pal.accent)
.growX().height(3f).pad(4f);
hidden(() -> {
if(shouldPause && state.isGame()){
if(!wasPaused || net.active()){
state.set(State.playing);
}
}
Sounds.back.play();
});
shown(() -> {
if(shouldPause && state.isGame()){
wasPaused = state.is(State.paused);
state.set(State.paused);
}
});
}
public BaseDialog(String title){
this(title, Core.scene.getStyle(DialogStyle.class));
}
protected void onResize(Runnable run){
resized(run);
}
public void addCloseListener(){
closeOnBack();
}
@Override
public void addCloseButton(){
buttons.defaults().size(210f, 64f);
buttons.button("@back", Icon.left, this::hide).size(210f, 64f);
addCloseListener();
}
}