Refactor MenuManager to GuiManager

This commit is contained in:
2022-08-31 11:57:13 +02:00
parent fd5610fca0
commit 3cdec6b303
6 changed files with 38 additions and 42 deletions

View File

@@ -2,25 +2,20 @@ package com.bartlomiejpluta.demo.menu;
import A.widgets;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.DisplayMode;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.UpdateMode;
import com.bartlomiejpluta.base.api.gui.WindowManager;
import com.bartlomiejpluta.base.api.gui.*;
import com.bartlomiejpluta.base.api.input.Key;
import com.bartlomiejpluta.base.api.input.KeyAction;
import com.bartlomiejpluta.base.api.input.KeyEvent;
import com.bartlomiejpluta.demo.entity.Chest;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.gui.EquipmentWindow;
import com.bartlomiejpluta.demo.gui.GameMenuWindow;
import com.bartlomiejpluta.demo.gui.LootWindow;
import com.bartlomiejpluta.demo.gui.StartMenuWindow;
import com.bartlomiejpluta.demo.gui.*;
import com.bartlomiejpluta.demo.runner.DemoRunner;
import lombok.NonNull;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
public class MenuManager {
public class GuiManager {
private final DemoRunner runner;
private final Context context;
private final GUI gui;
@@ -30,9 +25,10 @@ public class MenuManager {
private final GameMenuWindow gameMenu;
private final EquipmentWindow equipment;
private final LootWindow loot;
private final DialogWindow dialog;
private final Consumer<KeyEvent> gameMenuHandler = this::handleGameMenuKeyEvent;
public MenuManager(@NonNull DemoRunner runner, @NonNull Context context) {
public GuiManager(@NonNull DemoRunner runner, @NonNull Context context) {
this.runner = runner;
this.context = context;
this.gui = context.newGUI();
@@ -49,6 +45,8 @@ public class MenuManager {
this.gameMenu.getStartMenuBtn().setAction(runner::returnToStartMenu);
this.gameMenu.getExitBtn().setAction(runner::exit);
this.dialog = gui.inflateWindow(A.widgets.dialog.uid, DialogWindow.class);
this.equipment = gui.inflateWindow(A.widgets.equipment.uid, EquipmentWindow.class);
this.loot = gui.inflateWindow(widgets.loot_menu.uid, LootWindow.class);
}
@@ -102,6 +100,11 @@ public class MenuManager {
manager.setDisplayMode(DisplayMode.DISPLAY_TOP);
}
public CompletableFuture<Window> showDialog(@NonNull String message, @NonNull WindowPosition position) {
manager.closeAll();
return manager.open(dialog, message, position);
}
public void openLootWindow(@NonNull Enemy enemy) {
manager.closeAll();