packages feed

cuboid-0.14.2: Types.hs

{-# LANGUAGE Arrows #-}
module Types where

import FRP.Yampa
import FRP.Yampa.Vector3

import Graphics.UI.GLUT hiding (Level,Vector3(..),normalize)
import qualified Graphics.UI.GLUT as G(Vector3(..))

type R = GLdouble

data Point3D = P3D { x :: Integer, y :: Integer, z :: Integer } deriving (Show)

data Level = Level { startingPoint :: Point3D, 
                     endPoint      :: Point3D,
                     obstacles     :: [Point3D] }

data Input = Keyboard { key       :: Key,
                        keyState  :: KeyState,
                        modifiers :: Modifiers }

data GameState = Game { level     :: Level,
                        rotX      :: R, 
                        playerPos :: Vector3 R }

data ParsedInput = 
    ParsedInput { wCount :: Double, aCount :: Double, 
                  sCount :: Double, dCount :: Double,
                  upEvs  :: Event Input, downEvs :: Event Input, 
                  rightEvs :: Event Input, leftEvs :: Event Input }