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;
|
package org.toop.app.widget.popup;
|
||||||
|
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
|
import javafx.scene.Node;
|
||||||
|
import javafx.scene.control.Button;
|
||||||
import org.toop.app.App;
|
import org.toop.app.App;
|
||||||
import org.toop.app.widget.Primitive;
|
import org.toop.app.widget.Primitive;
|
||||||
import org.toop.app.widget.WidgetContainer;
|
import org.toop.app.widget.WidgetContainer;
|
||||||
import org.toop.app.widget.complex.ConfirmWidget;
|
import org.toop.app.widget.complex.ConfirmWidget;
|
||||||
import org.toop.app.widget.complex.PopupWidget;
|
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.app.widget.view.OptionsView;
|
||||||
|
import org.toop.local.AppContext;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class EscapePopup extends PopupWidget {
|
public class EscapePopup extends PopupWidget {
|
||||||
public EscapePopup() {
|
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", () -> {
|
nodes.add(Primitive.button("Continue", this::hide, false)); // TODO, localize
|
||||||
hide();
|
|
||||||
WidgetContainer.add(Pos.CENTER, new QuitPopup());
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!(WidgetContainer.getCurrentView().getClass().isAssignableFrom(OptionsView.class))) {
|
if (!(currentView.getClass().isAssignableFrom(OptionsView.class))) {
|
||||||
var opt = Primitive.button("options", () -> {
|
var opt = Primitive.button("options", () -> {
|
||||||
hide();
|
hide();
|
||||||
WidgetContainer.getCurrentView().transitionNext(new OptionsView());
|
WidgetContainer.getCurrentView().transitionNext(new OptionsView());
|
||||||
});
|
});
|
||||||
add(Pos.CENTER, Primitive.vbox(con, opt, qui));
|
nodes.add(opt);
|
||||||
} else {
|
|
||||||
add(Pos.CENTER, Primitive.vbox(con, qui));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 Circle player2Icon;
|
||||||
private final Button forfeitButton;
|
private final Button forfeitButton;
|
||||||
private final Button exitButton;
|
private final Button exitButton;
|
||||||
private final Button tutorialButton;
|
|
||||||
private final TextField chatInput;
|
private final TextField chatInput;
|
||||||
private final Text keyThingy;
|
private final Text keyThingy;
|
||||||
private boolean hasSet = false;
|
private boolean hasSet = false;
|
||||||
@@ -63,13 +62,14 @@ public final class GameView extends ViewWidget {
|
|||||||
|
|
||||||
switch (gameType) {
|
switch (gameType) {
|
||||||
case "TicTacToe":
|
case "TicTacToe":
|
||||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new TicTacToeTutorialWidget(() -> {})); break;
|
AppContext.setCurrentTutorial(new TicTacToeTutorialWidget(() -> {}));
|
||||||
|
break;
|
||||||
case "Reversi":
|
case "Reversi":
|
||||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new ReversiTutorialWidget(() -> {})); break;
|
AppContext.setCurrentTutorial(new ReversiTutorialWidget(() -> {}));
|
||||||
|
break;
|
||||||
case "Connect4":
|
case "Connect4":
|
||||||
this.tutorialButton = Primitive.button("tutorialstring", () -> new Connect4TutorialWidget(() -> {})); break;
|
AppContext.setCurrentTutorial(new Connect4TutorialWidget(() -> {}));
|
||||||
default:
|
break;
|
||||||
this.tutorialButton = null; break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setupLayout();
|
setupLayout();
|
||||||
@@ -92,10 +92,6 @@ public final class GameView extends ViewWidget {
|
|||||||
if (chatInput != null) {
|
if (chatInput != null) {
|
||||||
add(Pos.BOTTOM_RIGHT, Primitive.vbox(chatInput));
|
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) {
|
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.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.toop.app.widget.tutorial.BaseTutorialWidget;
|
||||||
import org.toop.framework.resource.ResourceManager;
|
import org.toop.framework.resource.ResourceManager;
|
||||||
import org.toop.framework.resource.resources.LocalizationAsset;
|
import org.toop.framework.resource.resources.LocalizationAsset;
|
||||||
|
|
||||||
@@ -16,11 +17,13 @@ import javafx.beans.property.ObjectProperty;
|
|||||||
import javafx.beans.property.SimpleObjectProperty;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
|
||||||
public class AppContext {
|
public class AppContext {
|
||||||
|
private static final Logger logger = LogManager.getLogger(AppContext.class);
|
||||||
|
|
||||||
private static final LocalizationAsset localization = ResourceManager.get("localization");
|
private static final LocalizationAsset localization = ResourceManager.get("localization");
|
||||||
private static Locale locale = Locale.forLanguageTag("en");
|
private static Locale locale = Locale.forLanguageTag("en");
|
||||||
|
|
||||||
private static final ObjectProperty<Locale> localeProperty = new SimpleObjectProperty<>(locale);
|
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() {
|
public static LocalizationAsset getLocalization() {
|
||||||
return localization;
|
return localization;
|
||||||
@@ -73,4 +76,12 @@ public class AppContext {
|
|||||||
public static StringBinding bindToKey(String key) {
|
public static StringBinding bindToKey(String key) {
|
||||||
return bindToKey(key, true);
|
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 {
|
try {
|
||||||
callListener(listener, event);
|
callListener(listener, event);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
logger.warn("Exception while handling event: {}", event, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -153,7 +153,7 @@ public final class GlobalEventBus {
|
|||||||
try {
|
try {
|
||||||
callListener(listener, event);
|
callListener(listener, event);
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
logger.warn("Exception while handling event: {}", event, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user