From 4f7c6c6dc3ea7c7d645ca64c7d332dc163511551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Przemys=C5=82aw=20Pluta?= Date: Thu, 25 Aug 2022 12:24:06 +0200 Subject: [PATCH] Create PoC of Equipment window --- data.mv.db | Bin 28672 -> 32768 bytes project.bep | 3 +- .../demo/gui/EquipmentWindow.java | 14 +++++ .../demo/map/BaseMapHandler.java | 8 ++- .../demo/menu/MenuManager.java | 17 ++++++ .../demo/runner/DemoRunner.java | 4 ++ .../c473a91a-ff25-4e71-9bec-b35e48102aeb.xml | 52 ++++++++++++++++++ 7 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/bartlomiejpluta/demo/gui/EquipmentWindow.java create mode 100644 widgets/c473a91a-ff25-4e71-9bec-b35e48102aeb.xml diff --git a/data.mv.db b/data.mv.db index 1eb551ef68a589b720ad02917e6064a5f0ed5904..9ae0793745c8eff4c72381360aa31e1fcae8bd64 100644 GIT binary patch delta 3425 zcmZp8z}V2hr0QX1q?44BpPUV&gEOmAtqcte40Mt+O7pU$Aip-S)P-cXJw?5n^<6FWM-(7n^<9G zn3Qawlb2diVr8LIkeHrYY?Z20l%HQ>Ws#bcY+ztuU}9!sVXRYxz=;$!%&fLtTdxD8cM}6`ceIF*{Ba@{JYMG1~CeJjmVlqB4 z`KrM(CZofXYYipcjbs=Y85uZUA7Eg~xdx_LizW%mv*soi=$SDvu!x&+GYB$pfrC@e z$T%?(!AwCgQzzdw^x-lyUIYiKcBGCd%P?(sQ8tIhg zl@_O_Ac6+McPt4*1W_t-cqL92a1voQPE48n!AL6$YNeSmG!9ImabN_G0~3(N2F3;^ zNO53dVs4CVv5AR!B9xC}aSD>fllh#)n2i%tC(kw3Vlp$Fe9~CXCp8J|Elks4rV;P0 z)Xj0uu8hpamZp=JxyXa*YEup74wJW=JZAb7^c$%$|t$f*c91Cyj=1Gt>AL8=8prLnQG1;Pdi15+bYgrtd)NwNu8<7OTU zbM{FJ>{`gV1UY#lvZJM?MT)7JS?c7C_F-|xi7C(=ZK4CpRG`d+$W-LSCz7QplhYKU zChvD(b656-qnfo#r!+H3;LwZ<5^7My7@900cv>Hv5yMsYwgvICN_k`4Kxj}(_@&N@_CS_JgO)(#5O(6uWDKLEoswtEpHN`XU2|_XUq^8#R9>!1mzh6e0gRKB4L`rlSiPDQZ6)k z;Hg)KMgx4#e3R@jdg^gr( zDmcUKcVG)r_5){y*A2+khY+ICv|IfkTQa zHz=$&c#Mn_M`FDJ%D1p)Cal7O=U3V_GZRy=U{dm?W8OOkBw?O^(LRi2}>`EtFBSQ(ib=;S6= zSQ%O-8|dVvR+Ly-=oBQTrxshK>J;VYmsnXOCR-R77#NtCnOGR>lw{_nS{a!dB_$gf znCO(H78Pga=YgDUG&w#XYVrXERwgCc$;TCPWR%+vvM@3TGWnI~=clCR#V6&L8!|93 zFmQd;ntVpzhso&XWGRDMCL`I& zGYzbmjIK_;YOsvS_}=7NLrHgIMg~Sk297li3@kZUz%*-ykboR(ZeoF+83P0JTZ1Ak{N6N=$(>lME0{!^w9IeH2U$z}k$#qzRZbUCId7Y6a3dInYQe4LOX^0w>7? zOW+t98Jp^q=9LzwrXT_f!gnkQLj;;3QV1rdOnzu2!fcdeF!_Iy7L%#LWbI@*pTuO4 z@dgIQ1|~>>Z)jvpz}~>L z24*bL-bgas%va*d$ZTY6Ir)H#DhC4tQ>ke>gWTkssb41FNxNHbYQPIiQpUz;4rPK9M@P_8nB<|kW-84Rmrc%TfctrC$;>9w{gtv1E87Bn=hC?VyrhcWHvHIBxZVN9!XH{!IpUpHV0bhvrlYz z0?9qb(BcK9c0j7l%uZC@TbrKJ>PLhJuNg#q*+A-~`;aGXoUjhK`Rsp51uC=Tv&yYVgSn%J0N)ik;sv16ceNx QCC$Xh$iz5p@ 0) { + return; + } + if(input.isKeyPressed(Key.KEY_SPACE)) { player.attack(); } @@ -71,7 +75,7 @@ public abstract class BaseMapHandler implements MapHandler { player.setFaceDirection(Direction.LEFT); } else if(input.isKeyPressed(Key.KEY_RIGHT)) { player.setFaceDirection(Direction.RIGHT); - } + } } else { if(input.isKeyPressed(Key.KEY_DOWN)) { player.getLayer().pushMovement(player.prepareMovement(Direction.DOWN)); @@ -123,7 +127,7 @@ public abstract class BaseMapHandler implements MapHandler { layer.addEntity(icon); return icon; } - + public Warp warp(ObjectLayer layer, int x, int y, String targetMap, String targetLayer, int targetX, int targetY) { var warp = new Warp(A.maps.get(targetMap).uid, A.maps.getLayer(targetMap, targetLayer), targetX, targetY); warp.setEntity(player); diff --git a/src/main/java/com/bartlomiejpluta/demo/menu/MenuManager.java b/src/main/java/com/bartlomiejpluta/demo/menu/MenuManager.java index 663f5d4..6ff725c 100644 --- a/src/main/java/com/bartlomiejpluta/demo/menu/MenuManager.java +++ b/src/main/java/com/bartlomiejpluta/demo/menu/MenuManager.java @@ -21,6 +21,7 @@ public class MenuManager { private final StartMenuWindow startMenu; private final GameMenuWindow gameMenu; + private final EquipmentWindow equipment; private final Consumer gameMenuHandler = this::handleGameMenuKeyEvent; @@ -40,9 +41,21 @@ public class MenuManager { this.gameMenu.getResumeGameBtn().setAction(this::resumeGame); this.gameMenu.getStartMenuBtn().setAction(runner::returnToStartMenu); this.gameMenu.getExitBtn().setAction(runner::exit); + + this.equipment = (EquipmentWindow) gui.inflateWindow(A.widgets.equipment.uid); } private void handleGameMenuKeyEvent(KeyEvent event) { + if (event.getKey() == Key.KEY_E && event.getAction() == KeyAction.PRESS) { + if(manager.isEmpty()) { + manager.open(equipment); + } else if (manager.top() == equipment) { + manager.close(); + } + + event.consume(); + } + if (event.getKey() == Key.KEY_ESCAPE && event.getAction() == KeyAction.PRESS) { if(manager.size() > 0) { manager.close(); @@ -60,6 +73,10 @@ public class MenuManager { } } + public int openedWindows() { + return manager.size(); + } + public void showStartMenu() { manager.closeAll(); manager.open(startMenu); diff --git a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java index dac758e..546cff5 100644 --- a/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java +++ b/src/main/java/com/bartlomiejpluta/demo/runner/DemoRunner.java @@ -54,6 +54,10 @@ public class DemoRunner implements GameRunner { private void initMenu() { this.menu = new MenuManager(this, context); } + + public int openedWindows() { + return this.menu.openedWindows(); + } private void initHUD() { hud = context.newGUI(); diff --git a/widgets/c473a91a-ff25-4e71-9bec-b35e48102aeb.xml b/widgets/c473a91a-ff25-4e71-9bec-b35e48102aeb.xml new file mode 100644 index 0000000..29c5880 --- /dev/null +++ b/widgets/c473a91a-ff25-4e71-9bec-b35e48102aeb.xml @@ -0,0 +1,52 @@ + + + + + + Equipment + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file