From 1c292ce0fd46ca2de157680eaa03c377117c6ff5 Mon Sep 17 00:00:00 2001 From: musilto9 Date: Thu, 12 Mar 2020 09:42:35 +0100 Subject: [PATCH] added endEvent method --- src/main/java/Dialog.java | 5 +++++ src/main/java/InteractionCell.java | 10 +++++++++- src/main/java/Person.java | 9 ++++++++- src/main/java/WindowOfFreeMove.java | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/Dialog.java b/src/main/java/Dialog.java index 6c1e5ad..0795bb2 100644 --- a/src/main/java/Dialog.java +++ b/src/main/java/Dialog.java @@ -56,5 +56,10 @@ public class Dialog { timer.start(); } + public void hideText() { + dialogBar.setVisible(false); + dialogBar.repaint(); + } + } diff --git a/src/main/java/InteractionCell.java b/src/main/java/InteractionCell.java index 62c8396..5415186 100644 --- a/src/main/java/InteractionCell.java +++ b/src/main/java/InteractionCell.java @@ -19,10 +19,18 @@ public class InteractionCell extends Cell { } public void startEvent() { + WindowOfFreeMove.setCanPersonMove(false); if (message != null) System.out.println(message); - if (dialog != null) + if (dialog != null) { dialog.showText(); + } + } + + public void endEvent() { + if (dialog != null) + dialog.hideText(); + WindowOfFreeMove.setCanPersonMove(true); } @Override diff --git a/src/main/java/Person.java b/src/main/java/Person.java index 5ace955..a30a917 100644 --- a/src/main/java/Person.java +++ b/src/main/java/Person.java @@ -8,6 +8,7 @@ public class Person extends Cell { private int directionSight; private int directionMoveLast; private boolean isMoving; + private boolean isInEvent; private int size; public void setDirectionMoveLast(int directionMoveLast) { @@ -24,6 +25,7 @@ public class Person extends Cell { this.map = map; this.directionSight = 3; this.isMoving = false; + this.isInEvent = false; this.size = WindowOfFreeMove.CELL_SIZE; } @@ -75,9 +77,14 @@ public class Person extends Cell { y = 0; break; case WindowOfFreeMove.KEY_EVENT: - if (isEventInFront(x,y,directionSight)) { + if (isEventInFront(x,y,directionSight) && !isInEvent) { + isInEvent = true; map.findInteractionByXY(x, y, directionSight).startEvent(); } + else if (isEventInFront(x,y,directionSight) && isInEvent) { + map.findInteractionByXY(x, y, directionSight).endEvent(); + isInEvent = false; + } break; } if (directionMove != 69) { diff --git a/src/main/java/WindowOfFreeMove.java b/src/main/java/WindowOfFreeMove.java index 6ae27e5..d666822 100644 --- a/src/main/java/WindowOfFreeMove.java +++ b/src/main/java/WindowOfFreeMove.java @@ -85,7 +85,7 @@ public class WindowOfFreeMove extends JFrame { addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { - if (!map.getPerson().getIsMoving() && canPersonMove) { + if (!map.getPerson().getIsMoving() && canPersonMove || nextMove == KEY_EVENT) { map.getPerson().setDirectionMove(nextMove); } }