From bf19c7bcf46ac451d240d299255ee6c0a27c41d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Wed, 31 Aug 2022 11:59:02 +0200 Subject: [PATCH] Add basic support for creature dialogs --- data.mv.db | Bin 36864 -> 49152 bytes project.bep | Bin 3616 -> 3706 bytes .../demo/gui/DialogWindow.java | 51 ++++++++++++++++++ .../demo/map/BaseMapHandler.java | 8 +++ .../1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml | 13 +++++ 5 files changed, 72 insertions(+) create mode 100644 src/main/java/com/bartlomiejpluta/demo/gui/DialogWindow.java create mode 100644 widgets/1c2b2ba2-66bf-40ee-97bf-6e5065b7b420.xml diff --git a/data.mv.db b/data.mv.db index 13ceee3c1da2fcba5d96cca4f2da307c137422b4..a83a7eb1ea238546e60a2a6a1ca737bcf4f98f35 100644 GIT binary patch delta 5470 zcmZozz|_#dtm`B@+!3A(mPh>Exv5SsCi&CKgy3Cz?-I zNDx=IFtacK0b>IbW1W)B+*B(Q3lrlsBTGx2vecsD%=|o%;}Rz)7$i*Ir@-!R^^1X# zk%6zRfq}td8UtVJ0S1mWS0r>jP$GvQoxIeF z5-U@kg2eRHVk;w^qWt_4t5ge9Y$?ygC@}@uIVMI)CQv>~IyXgjjwv?hfb!}>e;rV+ zYLN4>Fa>)aEmt9#PQ2&Mu%>f11_tJ((u|uo15TVrE zz|;a^g}G6h1;R1rCP~Q%eFmncrm1j4P0~^=%-}pzLlY#YnVBRfBTO-~tT#?JF)%Q* zG)^`FJJ|pn(=aDPc~B=qc~BQacrX`3crX`3c~BQac~BQacrX{&L%1*}LwGPJLwGPJ zLwO*lf;?oF1}@T}VGZL!!WzbdI2^`VIt6E7!ReRZ9i$RibRf{Ok64A>uD%ZN8Vj->xTrAML zvQ469Ws6kgEkRW6lQ%X)z2yTPK8d9qZLu&OjNUhEV zt<@JnYW2&IT3r@Wt0#anL^}hdR&Qru;8-n!)b`X<@Nof56<3Z{V7!Oi^KzY#m1ImNeA5b2&{($nJ^#_cHTvrcB zm0b^QWk4!on9CtNn9CtNn9HF&DplFp&>)9auh1Ze@gPAC<3WNP%7X?ulm~Say&{KIR#N= z|AmxL4v;DvQbHkB+2`#Ia8=pJB^08tO2#a#m=g`nC+|oE^)eL|b1bM>N+Fevvk{d!ER7f%Og>Pk4k{cCByFG>7qz?x#WvPz zJQ=xsPsUmpZr-SN4OEvSk{D8oOhHPK#;GQz#+Heox;zdv1_T={LTN;T`+OF#K3_6= zpU)giFAU^(6nCahPB4g`d_aLU*6JT5se%S_W-#zUlByKEb;(w5)65`+y>*ErsUlKs z3TCS1Mrumau8KuXy~#AHW06zuea1Csdg4-sx?O>+Gt7=Es`xreuAe~ zM2_^az+Dicwi}YMwRlsIvq}o~tdgj%2Ffa_(9#&C^@KDinrxD0VQONTJb9zOKL8>s BGnD`U delta 3496 zcmZo@U~X8zr0QX1q?44BpPX%F0ilC4t5U5D4Gau)k~2#4vaO6Q5|bvXs*74ACh4T* zq?ROSq!w8v8W~!q86}x)OkBw?O^(LRi2}>`B`p#yA(mPh>Exv5SsCi&CKgy3CmK#R zOqNqON;EM50b>IbW1W)B+*B(Q)6`URbCVREvecsD%=|o%<18m97(`D#pulQl;mN?r z$iS!Nz`$TJje$?|00YNr5piAC+{6MsGX@5hEE`1zaRx51xAcrH63r1zi^)8S-JAyO zAf+Jd7buEyTO^u89cMQAfTB91;ba8^$!H_XWRRQ8P0i69Wua4=S6ZB!;#d-faGW`^ zOU-o(GV`4COY=&s43;p0odNOyH2AD6CvWsu2HBz@?qie)vc$ju!|O>jl zH+YIne(5aAq|H6aC4@=m+T<`7c_y8=lgnK!<#fcmSs57wnF7l5^HWmu;uDLC^2-ew zK;Wv*uF2yMRKx?&oU;JjLAoQ@|jeZO*Zw_aaX+!PF)rT zzB5Q5r7j~x>M}(z%|HoF5uVV%Y10Hunl3{m38Ts9Hfn>Cf`MeRk%a{)Eubd2lw@;r zBebM|H36C-Cj}$y3D9)%pFXf{3gVhZmRRx}$hI^j+ftIvEhZZ-66Uu^G(|Rl@@8qE?74G~Js4NNT%R+t;5Ss)x^ZjzLY&}U$3YMKf+)Fds{!VJzcH8eqT znwd#*GQt!y%X;Hv69WS?O9TaWxe>U)g1H>ZgSs5bgE}0-gE<_+gE<_^gE}0_gE}0- zGq8cW9KwaU9KwUS9KwUS9LfW^cw=EX$0P+%(E}@WjggaPfIj4N-;5m7Co@y z(@Y1o22oHDSI1L~A{9LrlM@UQCht>Vcen5W=W#6t0^=xWpPNb4$7NQ)3MP(YI0=0qWPSo-YXAyu}fnqHJ zkgF|3VnB{xMB1@1NVYUeHA#e~okVCHm}5;lScT!(=%hJZ(G_+e~4#9ZK`c5;-a?v8N6ewPsE&i$p|JBc+T)M9N4^ zN=h*`H#dQ%j3j8vus};0=lVhIQgDe1sx?sBrKTvAZ4#_q8f4)ONf`%_Q-&m><#5?{ z7K0>G%K>}JutX%1L{I@kAe97BKb1_5O9IvF3JT)%O(aRwOe9E25-9^r-k1#anzvCR z&U}xWBF&&p7?c#5h@2ufJET~kw7fUZO?$ 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