loading gui + converter

This commit is contained in:
Sen 2025-03-16 21:58:55 +01:00
parent 90de256e04
commit 987ed4059e
2 changed files with 205 additions and 0 deletions

View file

@ -0,0 +1,120 @@
package game.gui;
import game.Game;
import game.Server;
import game.gui.element.Bar;
import game.gui.element.Label;
public class GuiLoading extends Gui {
public static interface Callback {
void poll(Game gm, GuiLoading gui);
}
private final String message;
private final Callback callback;
private Label headerLabel;
private Label taskLabel;
private Bar progressBar1;
private Bar progressBar2;
public static GuiLoading makeLoadTask(final Server server) {
return new GuiLoading("Lade Welt ...", new Callback() {
public void poll(Game gm, GuiLoading gui) {
if(server.isStarted()) {
gm.displayGuiScreen(null);
return;
}
}
});
}
public static GuiLoading makeSaveTask(final Server server) {
return new GuiLoading("Speichere Welt ...", new Callback() {
public void poll(Game gm, GuiLoading gui) {
if(server.isStopped()) {
gm.displayGuiScreen(GuiMenu.INSTANCE);
return;
}
}
});
}
public GuiLoading(String message, Callback callback) {
this.message = message;
this.callback = callback;
}
public void init(int width, int height) {
this.taskLabel = this.add(new Label(0, 40, 500, 20, ""));
this.progressBar1 = this.add(new Bar(0, 80, 500, 20));
this.progressBar2 = this.add(new Bar(0, 120, 500, 20));
this.shift();
this.headerLabel = this.add(new Label(0, 40, width, 20, this.message));
this.progressBar1.visible = false;
this.progressBar2.visible = false;
}
public String getTitle() {
return this.message;
}
public void setTask(String task) {
this.taskLabel.setText(task);
}
public void setBar(String desc) {
this.progressBar1.visible = true;
this.progressBar1.setDescription(desc);
}
public void setBar(String desc, String unit, int total) {
this.progressBar1.visible = true;
this.progressBar1.setDescription(desc, unit, total);
}
public void setBar(String desc, int total) {
this.progressBar1.visible = true;
this.progressBar1.setDescription(desc, total);
}
public void setProgress(float progress) {
this.progressBar1.setProgress(progress);
}
public void resetBar() {
this.progressBar1.resetProgress();
this.progressBar1.visible = false;
}
public void setSub(String desc) {
this.progressBar2.visible = true;
this.progressBar2.setDescription(desc);
}
public void setSub(String desc, String unit, int total) {
this.progressBar2.visible = true;
this.progressBar2.setDescription(desc, unit, total);
}
public void setSub(String desc, int total) {
this.progressBar2.visible = true;
this.progressBar2.setDescription(desc, total);
}
public void setSubProgress(float progress) {
this.progressBar2.setProgress(progress);
}
public void resetSub() {
this.progressBar2.resetProgress();
this.progressBar2.visible = false;
}
public void updateScreen() {
if(this.callback != null)
this.callback.poll(this.gm, this);
}
}