ohhecs-0.0.1: src/Games/ECS.hs
-- |
-- Module : Games.ECS
-- Description : Re-exports the public API.
-- Copyright : (C) 2020 Sophie Taylor
-- License : AGPL-3.0-or-later
-- Maintainer : Sophie Taylor <sophie@spacekitteh.moe>
-- Stability : experimental
-- Portability: GHC
--
-- This is the top-level interface to OhhECS. A brief tutorial should probably go here.
module Games.ECS
( module Games.ECS,
module Games.ECS.Util.Misc,
module Games.ECS.Component,
module Games.ECS.Serialisation,
module Games.ECS.Component.Store,
module Games.ECS.Component.TH,
module Games.ECS.World,
module Games.ECS.World.TH,
module Games.ECS.Entity,
module Games.ECS.SaveLoad,
module Games.ECS.System,
module Games.ECS.Slot,
module Games.ECS.Prototype,
module Games.ECS.MessageQueue,
)
where
import Control.Lens (IndexedTraversal')
import Games.ECS.Component
import Games.ECS.Component.Store
import Games.ECS.Component.TH
import Games.ECS.Entity
import Games.ECS.MessageQueue
import Games.ECS.Prototype
import Games.ECS.SaveLoad
import Games.ECS.Serialisation
import Games.ECS.Slot
import Games.ECS.System
import Games.ECS.Util.Misc
import Games.ECS.World
import Games.ECS.World.TH
-- | A filter over entities in a world is just an `IndexedTraversal'` that preserves the selection predicate.
type EntityFilter worldType = IndexedTraversal' Entity (worldType Storing) (worldType Individual)