module Mischief.ECS.App.SystemDef where

import Data.Default
import GHC.Generics
import Mischief.ECS.Components

newtype SystemTick = SystemTick {SystemTick -> Tick
inner :: Tick}
  deriving stock ((forall x. SystemTick -> Rep SystemTick x)
-> (forall x. Rep SystemTick x -> SystemTick) -> Generic SystemTick
forall x. Rep SystemTick x -> SystemTick
forall x. SystemTick -> Rep SystemTick x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SystemTick -> Rep SystemTick x
from :: forall x. SystemTick -> Rep SystemTick x
$cto :: forall x. Rep SystemTick x -> SystemTick
to :: forall x. Rep SystemTick x -> SystemTick
Generic)
  deriving anyclass (Typeable SystemTick
[HookRel SystemTick]
[Hook SystemTick]
Set DefaultComponentType
IsExclusive (IsExclusiveRel SystemTick)
(Typeable SystemTick, IsExclusive (IsExclusiveRel SystemTick)) =>
Set DefaultComponentType
-> [Hook SystemTick]
-> [Hook SystemTick]
-> [Hook SystemTick]
-> [HookRel SystemTick]
-> [HookRel SystemTick]
-> [HookRel SystemTick]
-> Component SystemTick
forall c.
(Typeable c, IsExclusive (IsExclusiveRel c)) =>
Set DefaultComponentType
-> [Hook c]
-> [Hook c]
-> [Hook c]
-> [HookRel c]
-> [HookRel c]
-> [HookRel c]
-> Component c
$crequired :: Set DefaultComponentType
required :: Set DefaultComponentType
$conAdd :: [Hook SystemTick]
onAdd :: [Hook SystemTick]
$conSet :: [Hook SystemTick]
onSet :: [Hook SystemTick]
$conRemove :: [Hook SystemTick]
onRemove :: [Hook SystemTick]
$conAddRel :: [HookRel SystemTick]
onAddRel :: [HookRel SystemTick]
$conSetRel :: [HookRel SystemTick]
onSetRel :: [HookRel SystemTick]
$conRemoveRel :: [HookRel SystemTick]
onRemoveRel :: [HookRel SystemTick]
Component, SystemTick
SystemTick -> Default SystemTick
forall a. a -> Default a
$cdef :: SystemTick
def :: SystemTick
Default)

newtype LastSystemTick = LastSystemTick {LastSystemTick -> Tick
inner :: Tick}
  deriving stock ((forall x. LastSystemTick -> Rep LastSystemTick x)
-> (forall x. Rep LastSystemTick x -> LastSystemTick)
-> Generic LastSystemTick
forall x. Rep LastSystemTick x -> LastSystemTick
forall x. LastSystemTick -> Rep LastSystemTick x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. LastSystemTick -> Rep LastSystemTick x
from :: forall x. LastSystemTick -> Rep LastSystemTick x
$cto :: forall x. Rep LastSystemTick x -> LastSystemTick
to :: forall x. Rep LastSystemTick x -> LastSystemTick
Generic)
  deriving anyclass (Typeable LastSystemTick
[HookRel LastSystemTick]
[Hook LastSystemTick]
Set DefaultComponentType
IsExclusive (IsExclusiveRel LastSystemTick)
(Typeable LastSystemTick,
 IsExclusive (IsExclusiveRel LastSystemTick)) =>
Set DefaultComponentType
-> [Hook LastSystemTick]
-> [Hook LastSystemTick]
-> [Hook LastSystemTick]
-> [HookRel LastSystemTick]
-> [HookRel LastSystemTick]
-> [HookRel LastSystemTick]
-> Component LastSystemTick
forall c.
(Typeable c, IsExclusive (IsExclusiveRel c)) =>
Set DefaultComponentType
-> [Hook c]
-> [Hook c]
-> [Hook c]
-> [HookRel c]
-> [HookRel c]
-> [HookRel c]
-> Component c
$crequired :: Set DefaultComponentType
required :: Set DefaultComponentType
$conAdd :: [Hook LastSystemTick]
onAdd :: [Hook LastSystemTick]
$conSet :: [Hook LastSystemTick]
onSet :: [Hook LastSystemTick]
$conRemove :: [Hook LastSystemTick]
onRemove :: [Hook LastSystemTick]
$conAddRel :: [HookRel LastSystemTick]
onAddRel :: [HookRel LastSystemTick]
$conSetRel :: [HookRel LastSystemTick]
onSetRel :: [HookRel LastSystemTick]
$conRemoveRel :: [HookRel LastSystemTick]
onRemoveRel :: [HookRel LastSystemTick]
Component, LastSystemTick
LastSystemTick -> Default LastSystemTick
forall a. a -> Default a
$cdef :: LastSystemTick
def :: LastSystemTick
Default)