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
|
2018-08-10 09:35:08 +00:00
|
|
|
-> 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
|