tracer/src/Types/ObjClass.hs

33 lines
716 B
Haskell
Raw Normal View History

2018-08-10 06:58:26 +00:00
{-# LANGUAGE MultiParamTypeClasses #-}
2018-08-10 12:09:07 +00:00
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
2018-08-10 06:58:26 +00:00
module Types.ObjClass where
import Affection
import Data.Ecstasy
import Types.Entity
import Types.UserData
2019-02-18 18:14:41 +00:00
import Types.Direction
2018-08-10 06:58:26 +00:00
class ObjectAction otype ostate where
objectAction
2019-02-18 18:14:41 +00:00
:: [(Ent, V2 Double, Direction, Word)]
-> Double
2018-08-10 06:58:26 +00:00
-> otype
-> ostate
-> Ent
-> SystemT Entity (AffectionState (AffectionData UserData) IO) ()
objectTransition
:: otype
-> ostate
-> Bool
2018-08-10 06:58:26 +00:00
-> Ent
2018-09-12 22:51:22 +00:00
-> Maybe Ent
2018-08-10 06:58:26 +00:00
-> SystemT Entity (AffectionState (AffectionData UserData) IO) (Entity 'SetterOf)
class ActionTime otype ostate where
actionTime :: otype -> ostate -> Double