| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Mischief.ECS.App
Synopsis
- data App = App {}
- newApp :: IO App
- addPlugin :: Plugin p => App -> IO ()
- runApp :: App -> IO ()
- runSchedule :: forall {k} (sch :: k). Schedule sch => System ()
- runSchedule' :: Entity -> System ()
- simulateSystem :: System () -> System ()
- setSystemTicks :: Tick -> Tick -> System ()
- tryRun :: System ()
- appInit :: System ()
- register :: Component c => System ()
- registerComponent :: Component c => Proxy c -> System ()
- getTools :: SystemTools
- toolsGet :: forall c m w. (MonadSystem w m, Component c) => Proxy c -> Entity -> m (Maybe c)
- toolsSet :: Bundle c => c -> Entity -> System ()
- toolsGetRAny :: forall c m w. (Component c, MonadSystem w m, IsExclusiveRel c ~ 'False) => Proxy c -> Entity -> m (Maybe [Rel c])
- toolsSpawnByInsert :: Bundle b => Entity -> b -> System ()
- incTick :: Tick -> Maybe Tick
- tick :: System ()
- getTick :: MonadSystem w m => m Tick
- setTick :: Tick -> System ()
Documentation
The App is a wrapper around the World through which plugins can be added.
runSchedule :: forall {k} (sch :: k). Schedule sch => System () Source #
Run all systems of a Schedule.
runSchedule' :: Entity -> System () Source #
simulateSystem :: System () -> System () Source #
register :: Component c => System () Source #
Register a Component. This is done automatically when inserting it for the first time.
toolsGet :: forall c m w. (MonadSystem w m, Component c) => Proxy c -> Entity -> m (Maybe c) Source #
toolsGetRAny :: forall c m w. (Component c, MonadSystem w m, IsExclusiveRel c ~ 'False) => Proxy c -> Entity -> m (Maybe [Rel c]) Source #
getTick :: MonadSystem w m => m Tick Source #