packages feed

mischief-ecs-0.2.0.0: src/Mischief/ECS/Components/HooksDef.hs

module Mischief.ECS.Components.HooksDef where

import Data.Data
import Mischief.ECS.EntityDef

data Hook a where
  Hook :: (Typeable m) => (HookContext -> m ()) -> Hook a

data HookRel a where
  HookRel :: (Typeable m) => (HookContextRel -> m ()) -> HookRel a

newtype HookContext = HookContext {entity :: Entity}

data HookContextRel = HookContextRel {entity :: Entity, target :: Entity}