summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'client/elm/battlemap/src/Battlemap/Navigator.elm')
-rw-r--r-- | client/elm/battlemap/src/Battlemap/Navigator.elm | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/client/elm/battlemap/src/Battlemap/Navigator.elm b/client/elm/battlemap/src/Battlemap/Navigator.elm index b040676..df0e2cf 100644 --- a/client/elm/battlemap/src/Battlemap/Navigator.elm +++ b/client/elm/battlemap/src/Battlemap/Navigator.elm @@ -1,16 +1,29 @@ -module Battlemap.Navigator exposing (Navigator, new_navigator, go) +module Battlemap.Navigator exposing + ( + Navigator, + new_navigator, + reset_navigation, + go + ) import Set exposing (Set, member, empty, insert) import Battlemap exposing (Battlemap, has_location, apply_to_tile) -import Battlemap.Location exposing (..) -import Battlemap.Direction exposing (..) -import Battlemap.Tile exposing (set_direction) +import Battlemap.Direction exposing (Direction(..)) +import Battlemap.Tile exposing (Tile, set_direction) + +import Battlemap.Location exposing + ( + Location, + LocationRef, + neighbor, + to_comparable + ) type alias Navigator = { current_location : Location, - visited_locations : (Set LocationComparable) + visited_locations : (Set LocationRef) } new_navigator : Location -> Navigator @@ -20,6 +33,13 @@ new_navigator start = visited_locations = empty } + +reset_navigation : Tile -> Tile +reset_navigation t = + {t | + nav_level = None + } + go : Battlemap -> Navigator -> Direction -> (Battlemap, Navigator) go battlemap nav dir = let |