mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 10:54:51 +00:00
Tutorials moved to escape menu
This commit is contained in:
@@ -1,31 +1,50 @@
|
||||
package org.toop.app.widget.popup;
|
||||
|
||||
import javafx.geometry.Pos;
|
||||
import javafx.scene.Node;
|
||||
import javafx.scene.control.Button;
|
||||
import org.toop.app.App;
|
||||
import org.toop.app.widget.Primitive;
|
||||
import org.toop.app.widget.WidgetContainer;
|
||||
import org.toop.app.widget.complex.ConfirmWidget;
|
||||
import org.toop.app.widget.complex.PopupWidget;
|
||||
import org.toop.app.widget.complex.ViewWidget;
|
||||
import org.toop.app.widget.tutorial.*;
|
||||
import org.toop.app.widget.view.GameView;
|
||||
import org.toop.app.widget.view.OptionsView;
|
||||
import org.toop.local.AppContext;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class EscapePopup extends PopupWidget {
|
||||
public EscapePopup() {
|
||||
var con = Primitive.button("Continue", this::hide, false); // TODO, localize
|
||||
ArrayList<Node> nodes = new ArrayList<>();
|
||||
ViewWidget currentView = WidgetContainer.getCurrentView();
|
||||
|
||||
var qui = Primitive.button("quit", () -> {
|
||||
hide();
|
||||
WidgetContainer.add(Pos.CENTER, new QuitPopup());
|
||||
});
|
||||
nodes.add(Primitive.button("Continue", this::hide, false)); // TODO, localize
|
||||
|
||||
if (!(WidgetContainer.getCurrentView().getClass().isAssignableFrom(OptionsView.class))) {
|
||||
if (!(currentView.getClass().isAssignableFrom(OptionsView.class))) {
|
||||
var opt = Primitive.button("options", () -> {
|
||||
hide();
|
||||
WidgetContainer.getCurrentView().transitionNext(new OptionsView());
|
||||
});
|
||||
add(Pos.CENTER, Primitive.vbox(con, opt, qui));
|
||||
} else {
|
||||
add(Pos.CENTER, Primitive.vbox(con, qui));
|
||||
nodes.add(opt);
|
||||
}
|
||||
|
||||
if (currentView.getClass().isAssignableFrom(GameView.class)) {
|
||||
BaseTutorialWidget tut = AppContext.currentTutorial();
|
||||
if (tut != null) {
|
||||
nodes.add(Primitive.button("tutorialstring", () -> {}));
|
||||
}
|
||||
}
|
||||
|
||||
nodes.add(Primitive.button("quit", () -> {
|
||||
hide();
|
||||
WidgetContainer.add(Pos.CENTER, new QuitPopup());
|
||||
}));
|
||||
|
||||
add(Pos.CENTER, Primitive.vbox(nodes.toArray(new Node[0])));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ public final class GameView extends ViewWidget {
|
||||
private Circle player2Icon;
|
||||
private final Button forfeitButton;
|
||||
private final Button exitButton;
|
||||
private final Button tutorialButton;
|
||||
private final TextField chatInput;
|
||||
private final Text keyThingy;
|
||||
private boolean hasSet = false;
|
||||
@@ -63,13 +62,14 @@ public final class GameView extends ViewWidget {
|
||||
|
||||
switch (gameType) {
|
||||
case "TicTacToe":
|
||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new TicTacToeTutorialWidget(() -> {})); break;
|
||||
AppContext.setCurrentTutorial(new TicTacToeTutorialWidget(() -> {}));
|
||||
break;
|
||||
case "Reversi":
|
||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new ReversiTutorialWidget(() -> {})); break;
|
||||
AppContext.setCurrentTutorial(new ReversiTutorialWidget(() -> {}));
|
||||
break;
|
||||
case "Connect4":
|
||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new Connect4TutorialWidget(() -> {})); break;
|
||||
default:
|
||||
this.tutorialButton = null; break;
|
||||
AppContext.setCurrentTutorial(new Connect4TutorialWidget(() -> {}));
|
||||
break;
|
||||
}
|
||||
|
||||
setupLayout();
|
||||
@@ -92,10 +92,6 @@ public final class GameView extends ViewWidget {
|
||||
if (chatInput != null) {
|
||||
add(Pos.BOTTOM_RIGHT, Primitive.vbox(chatInput));
|
||||
}
|
||||
|
||||
if (tutorialButton != null) {
|
||||
add(Pos.TOP_LEFT, tutorialButton);
|
||||
}
|
||||
}
|
||||
|
||||
public void nextPlayer(boolean isMe, String currentPlayer, String currentMove, String nextPlayer, char GameType) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.util.MissingResourceException;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.toop.app.widget.tutorial.BaseTutorialWidget;
|
||||
import org.toop.framework.resource.ResourceManager;
|
||||
import org.toop.framework.resource.resources.LocalizationAsset;
|
||||
|
||||
@@ -16,11 +17,13 @@ import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
|
||||
public class AppContext {
|
||||
private static final Logger logger = LogManager.getLogger(AppContext.class);
|
||||
|
||||
private static final LocalizationAsset localization = ResourceManager.get("localization");
|
||||
private static Locale locale = Locale.forLanguageTag("en");
|
||||
|
||||
private static final ObjectProperty<Locale> localeProperty = new SimpleObjectProperty<>(locale);
|
||||
private static final Logger logger = LogManager.getLogger(AppContext.class);
|
||||
private static BaseTutorialWidget tutorialWidget;
|
||||
|
||||
public static LocalizationAsset getLocalization() {
|
||||
return localization;
|
||||
@@ -73,4 +76,12 @@ public class AppContext {
|
||||
public static StringBinding bindToKey(String key) {
|
||||
return bindToKey(key, true);
|
||||
}
|
||||
|
||||
public static void setCurrentTutorial(BaseTutorialWidget tutorial) {
|
||||
AppContext.tutorialWidget = tutorial;
|
||||
}
|
||||
|
||||
public static BaseTutorialWidget currentTutorial() {
|
||||
return AppContext.tutorialWidget;
|
||||
}
|
||||
}
|
||||
@@ -142,7 +142,7 @@ public final class GlobalEventBus {
|
||||
try {
|
||||
callListener(listener, event);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
logger.warn("Exception while handling event: {}", event, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -153,7 +153,7 @@ public final class GlobalEventBus {
|
||||
try {
|
||||
callListener(listener, event);
|
||||
} catch (Throwable e) {
|
||||
e.printStackTrace();
|
||||
logger.warn("Exception while handling event: {}", event, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user