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 {HookContext -> Entity entity :: Entity} data HookContextRel = HookContextRel {HookContextRel -> Entity entity :: Entity, HookContextRel -> Entity target :: Entity}