{-# LANGUAGE DeriveGeneric #-} -- | -- Module : Aztecs.ECS.World.Internal -- Copyright : (c) Matt Hunzinger, 2025 -- License : BSD-style (see the LICENSE file in the distribution) -- -- Maintainer : matt@hunzinger.me -- Stability : provisional -- Portability : non-portable (GHC extensions) module Aztecs.ECS.World.Internal (World (..)) where import Aztecs.ECS.Entity import Aztecs.ECS.World.Entities.Internal import Aztecs.ECS.World.Observers.Internal import Control.Monad.State -- | World of entities and their components. data World m = World { -- | Entities and their components. forall (m :: * -> *). World m -> Entities m entities :: !(Entities m), -- | Next unique entity identifier. forall (m :: * -> *). World m -> EntityID nextEntityId :: !EntityID, -- | Observers for events. forall (m :: * -> *). World m -> Observers (StateT (World m) m) observers :: !(Observers (StateT (World m) m)) }