layers-game-0.3: src/Entity/Bound.hs
module Entity.Bound where
import qualified Data.List as L
import qualified Gamgine.Math.BoxTree as BT
import qualified Gamgine.Math.Box as B
import qualified GameData.Entity as E
import qualified GameData.Animation as A
import qualified Entity.Position as EP
bound :: E.Entity -> E.Bound
bound E.Player {E.playerPosition = pos, E.playerBound = bound} =
bound `BT.moveBy` pos
bound e@E.Enemy {E.enemyBound = bound} =
BT.Leaf (bound `B.moveBy` EP.currentPosition e) E.Whatever
bound p@E.Platform {E.platformBound = bound} =
BT.Leaf (bound `B.moveBy` EP.currentPosition p) E.Whatever
bound E.Star {E.starPosition = pos, E.starBound = bound} =
BT.Leaf (bound `B.moveBy` pos) E.Whatever