packages feed

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)