Move MovePlayerAction.Direction to geometry.Direction

This commit is contained in:
Eryn Wells 2022-05-03 18:21:24 -07:00
parent 010c67fd78
commit e1044f3a73
3 changed files with 21 additions and 15 deletions

View file

@ -2,7 +2,12 @@
# Eryn Wells <eryn@erynwells.me>
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

View file

@ -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()

View file

@ -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