diff options
author | Juan J. Martinez <jjm@usebox.net> | 2023-02-15 22:53:22 +0000 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2023-02-15 22:53:22 +0000 |
commit | 11120a24b6927073d55d2e56b4b911817dedaae2 (patch) | |
tree | 0c591330afba9f37a4ff0110a022b213aedb31e0 /src/Game/Map.hs | |
parent | 6f2644afcb52e4cfb60169de2cb3efdff62b17b2 (diff) | |
download | space-plat-hs-11120a24b6927073d55d2e56b4b911817dedaae2.tar.gz space-plat-hs-11120a24b6927073d55d2e56b4b911817dedaae2.zip |
Game state, HUD, ... WIP
Exploring ideas.
Diffstat (limited to 'src/Game/Map.hs')
-rw-r--r-- | src/Game/Map.hs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Game/Map.hs b/src/Game/Map.hs index 3855d16..ee30437 100644 --- a/src/Game/Map.hs +++ b/src/Game/Map.hs @@ -2,9 +2,11 @@ module Game.Map ( Map (..), Object (..), objects, + totalBatteries, load, render, isBlocked, + isPlayer, ) where @@ -142,6 +144,18 @@ isBlocked (Map (MapData mapWidth _ ts _ blocked _) _) x y = objects :: Map -> [Object] objects (Map md _) = md.objects +isPlayer :: Object -> Bool +isPlayer (PlayerEntity _ _) = True +isPlayer _ = False + +-- | Return the number of batteries in a map. +totalBatteries :: Map -> Int +totalBatteries m = length $ filter isBattery (objects m) + where + isBattery :: Object -> Bool + isBattery (BatteryEntity _ _) = True + isBattery _ = False + -- | Renders a map. render :: SDL.Renderer -> Map -> IO () render renderer (Map mapData tex) = do |