Add basic support for creature dialogs
This commit is contained in:
BIN
data.mv.db
BIN
data.mv.db
Binary file not shown.
BIN
project.bep
BIN
project.bep
Binary file not shown.
51
src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java
Normal file
51
src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java
Normal file
@@ -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<String, Component> 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("");
|
||||
}
|
||||
}
|
||||
@@ -98,6 +98,14 @@ public abstract class BaseMapHandler implements MapHandler {
|
||||
cameraController.update();
|
||||
}
|
||||
|
||||
public CompletableFuture<Window> dialog(String message, WindowPosition position) {
|
||||
return guiManager.showDialog(message, position);
|
||||
}
|
||||
|
||||
public CompletableFuture<Window> dialog(String message) {
|
||||
return guiManager.showDialog(message, WindowPosition.BOTTOM);
|
||||
}
|
||||
|
||||
public Enemy enemy(@NonNull String id) {
|
||||
return new Enemy(id);
|
||||
}
|
||||
|
||||
13
widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml
Normal file
13
widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<demo:DialogWindow
|
||||
xmlns:base="com.bartlomiejpluta.base.lib.gui"
|
||||
xmlns:demo="com.bartlomiejpluta.demo.gui"
|
||||
windowPosition="bottom"
|
||||
padding="20f"
|
||||
margin="20f"
|
||||
width="900f"
|
||||
height="auto">
|
||||
<base:TextView ref="message" alignment="top|left" font="A.fonts.roboto_regular.uid" fontSize="40f" width="relative"
|
||||
rows="4" color="0xFFFFFF"/>
|
||||
|
||||
</demo:DialogWindow>
|
||||
Reference in New Issue
Block a user