Move MovePlayerAction.Direction to geometry.Direction
This commit is contained in:
		
							parent
							
								
									010c67fd78
								
							
						
					
					
						commit
						e1044f3a73
					
				
					 3 changed files with 21 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue