From e1044f3a73f9a55199496dc6045c333484486232 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 3 May 2022 18:21:24 -0700 Subject: [PATCH] Move MovePlayerAction.Direction to geometry.Direction --- roguebasin/actions.py | 17 ++++++----------- roguebasin/events.py | 9 +++++---- roguebasin/geometry.py | 10 ++++++++++ 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/roguebasin/actions.py b/roguebasin/actions.py index 5cbea22..77e0f28 100644 --- a/roguebasin/actions.py +++ b/roguebasin/actions.py @@ -2,7 +2,12 @@ # Eryn Wells import logging -from .geometry import Vector +from .geometry import Direction +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from .engine import Engine + from .object import Entity LOG = logging.getLogger('events') @@ -26,16 +31,6 @@ class RegenerateRoomsAction(Action): ... class MovePlayerAction(Action): - class Direction: - North = Vector(0, -1) - NorthEast = Vector(1, -1) - East = Vector(1, 0) - SouthEast = Vector(1, 1) - South = Vector(0, 1) - SouthWest = Vector(-1, 1) - West = Vector(-1, 0) - NorthWest = Vector(-1, -1) - def __init__(self, direction: Direction): self.direction = direction diff --git a/roguebasin/events.py b/roguebasin/events.py index 588e1f8..670cb49 100644 --- a/roguebasin/events.py +++ b/roguebasin/events.py @@ -3,6 +3,7 @@ import tcod from .actions import Action, ExitAction, MovePlayerAction, RegenerateRoomsAction +from .geometry import Direction from typing import Optional class EventHandler(tcod.event.EventDispatch[Action]): @@ -15,13 +16,13 @@ class EventHandler(tcod.event.EventDispatch[Action]): sym = event.sym if sym == tcod.event.KeySym.h: - action = MovePlayerAction(MovePlayerAction.Direction.West) + action = MovePlayerAction(Direction.West) elif sym == tcod.event.KeySym.j: - action = MovePlayerAction(MovePlayerAction.Direction.South) + action = MovePlayerAction(Direction.South) elif sym == tcod.event.KeySym.k: - action = MovePlayerAction(MovePlayerAction.Direction.North) + action = MovePlayerAction(Direction.North) elif sym == tcod.event.KeySym.l: - action = MovePlayerAction(MovePlayerAction.Direction.East) + action = MovePlayerAction(Direction.East) elif sym == tcod.event.KeySym.SPACE: action = RegenerateRoomsAction() diff --git a/roguebasin/geometry.py b/roguebasin/geometry.py index b126835..f0200c1 100644 --- a/roguebasin/geometry.py +++ b/roguebasin/geometry.py @@ -37,6 +37,16 @@ class Vector: def __str__(self): return f'(δx:{self.x}, δy:{self.y})' +class Direction: + North = Vector(0, -1) + NorthEast = Vector(1, -1) + East = Vector(1, 0) + SouthEast = Vector(1, 1) + South = Vector(0, 1) + SouthWest = Vector(-1, 1) + West = Vector(-1, 0) + NorthWest = Vector(-1, -1) + @dataclass(frozen=True) class Size: width: int = 0