31 lines
990 B
Haskell
31 lines
990 B
Haskell
|
module Types.Entity where
|
||
|
|
||
|
import Data.Ecstasy
|
||
|
|
||
|
import Linear (V2)
|
||
|
|
||
|
import Types.Direction
|
||
|
import Types.Map
|
||
|
import Types.NPCState
|
||
|
import Types.Animation
|
||
|
import Types.ObjType
|
||
|
|
||
|
data Entity f = Entity
|
||
|
{ pos :: Component f 'Field (V2 Double)
|
||
|
, mmpos :: Component f 'Field (V2 Double)
|
||
|
, gridPos :: Component f 'Field (V2 Int)
|
||
|
, vel :: Component f 'Field (V2 Double)
|
||
|
, mmvel :: Component f 'Field (V2 Double)
|
||
|
, velFact :: Component f 'Field Double
|
||
|
, rot :: Component f 'Field Direction
|
||
|
, obstacle :: Component f 'Field (Boundaries Double)
|
||
|
, player :: Component f 'Unique ()
|
||
|
, npcMoveState :: Component f 'Field NPCMoveState
|
||
|
, anim :: Component f 'Field AnimState
|
||
|
, objAccess :: Component f 'Field ((V2 Int), Direction)
|
||
|
, objType :: Component f 'Field ObjType
|
||
|
, objState :: Component f 'Field ObjState
|
||
|
, objStateTime :: Component f 'Field Double
|
||
|
}
|
||
|
deriving (Generic)
|