From cfc5b71c86a4927fa8d2294fce5e8b8264b4a3ca Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Fri, 10 Feb 2023 12:50:40 +0000 Subject: Moved the entity spawn to Entity module --- src/Game/Entities.hs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/Game/Entities.hs') diff --git a/src/Game/Entities.hs b/src/Game/Entities.hs index 7d29e41..36d25c1 100644 --- a/src/Game/Entities.hs +++ b/src/Game/Entities.hs @@ -1,8 +1,9 @@ -module Game.Entities (Entities, Entity, mkEntities, mkPlayer, mkEffect, add, updateAll, render) where +module Game.Entities (Entities, Entity, mkEntities, updateAll, render) where import Data.Foldable (traverse_) import Data.IORef import qualified Game.Controller as C +import qualified Game.Map as M import qualified Game.Sprites as S import qualified SDL @@ -56,11 +57,13 @@ data Entity = Entity spawns :: [Spawn] } -mkEntities :: S.SpriteSheet -> Entities -mkEntities sprites = Entities sprites [] - -add :: Entities -> [Entity] -> Entities -add (Entities sprites entities) es = Entities sprites (entities ++ es) +mkEntities :: S.SpriteSheet -> M.Map -> IORef C.Controls -> IO Entities +mkEntities sprites m controls = do + entities <- traverse toEntity $ M.objects m + pure $ Entities sprites entities + where + toEntity :: M.Object -> IO Entity + toEntity (M.PlayerEntity x y) = mkPlayer sprites x y controls (M.isBlocked m) processSpawn :: S.SpriteSheet -> Spawn -> IO Entity processSpawn sprites (DustEffectSpawn x y) = mkEffect sprites x y "dust" -- cgit v1.2.3