diff --git a/data.mv.db b/data.mv.db index 13ceee3..a83a7eb 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/project.bep b/project.bep index 70ffd25..bd8a10d 100644 Binary files a/project.bep and b/project.bep differ diff --git a/src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java b/src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java new file mode 100644 index 0000000..426db28 --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java @@ -0,0 +1,51 @@ +package com.bartlomiejpluta.demo.gui; + +import com.bartlomiejpluta.base.api.context.Context; +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.base.lib.gui.TextView; + +import java.util.Map; + +public class DialogWindow extends DecoratedWindow { + + @Ref("message") + private TextView text; + + public DialogWindow(Context context, GUI gui, Map refs) { + super(context, gui, refs); + addEventListener(KeyEvent.TYPE, this::handleKey); + } + + private void handleKey(KeyEvent event) { + if (event.getKey() == Key.KEY_ESCAPE) { + event.consume(); + return; + } + + if (event.getKey() == Key.KEY_ENTER && event.getAction() == KeyAction.PRESS) { + manager.close(); + event.consume(); + } + } + + @Override + public void onOpen(WindowManager manager, Object[] args) { + super.onOpen(manager, args); + + text.setText((String) args[0]); + + if (args.length > 1) { + setWindowPosition((WindowPosition) args[1]); + } + } + + @Override + public void onClose(WindowManager manager) { + super.onClose(manager); + + text.setText(""); + } +} diff --git a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java index be732d3..386e862 100644 --- a/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java +++ b/src/main/java/com/bartlomiejpluta/demo/map/BaseMapHandler.java @@ -98,6 +98,14 @@ public abstract class BaseMapHandler implements MapHandler { cameraController.update(); } + public CompletableFuture dialog(String message, WindowPosition position) { + return guiManager.showDialog(message, position); + } + + public CompletableFuture dialog(String message) { + return guiManager.showDialog(message, WindowPosition.BOTTOM); + } + public Enemy enemy(@NonNull String id) { return new Enemy(id); } diff --git a/widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml b/widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml new file mode 100644 index 0000000..0da7877 --- /dev/null +++ b/widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file