aztecs-0.10.0: A modular game engine and Entity-Component-System (ECS) for Haskell.
Copyright(c) Matt Hunzinger 2025
LicenseBSD-style (see the LICENSE file in the distribution)
Maintainermatt@hunzinger.me
Stabilityprovisional
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Aztecs.Asset

Description

 
Synopsis

Documentation

newtype AssetId Source #

Unique identifier for an asset.

Since: 0.9

Constructors

AssetId 

Fields

Instances

Instances details
Show AssetId Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Eq AssetId Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Methods

(==) :: AssetId -> AssetId -> Bool #

(/=) :: AssetId -> AssetId -> Bool #

Ord AssetId Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

data AssetServer a Source #

Asset server.

Since: 0.9

Constructors

AssetServer 

Fields

Instances

Instances details
Typeable a => Component (AssetServer a) Source #

Since: 0.9

Instance details

Defined in Aztecs.Asset.AssetServer

Associated Types

type StorageT (AssetServer a) Source #

Generic (AssetServer a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Associated Types

type Rep (AssetServer a) :: Type -> Type #

Methods

from :: AssetServer a -> Rep (AssetServer a) x #

to :: Rep (AssetServer a) x -> AssetServer a #

NFData (AssetServer a) Source #

Since: 0.9

Instance details

Defined in Aztecs.Asset.AssetServer

Methods

rnf :: AssetServer a -> () #

type StorageT (AssetServer a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

type Rep (AssetServer a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

type Rep (AssetServer a) = D1 ('MetaData "AssetServer" "Aztecs.Asset.AssetServer" "aztecs-0.10.0-3EoQmFKNYHMC2yYd4M5ldJ" 'False) (C1 ('MetaCons "AssetServer" 'PrefixI 'True) (S1 ('MetaSel ('Just "assetServerAssets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map AssetId a)) :*: (S1 ('MetaSel ('Just "loadingAssets") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map AssetId (Either (IO (IORef (Maybe a))) (IORef (Maybe a))))) :*: S1 ('MetaSel ('Just "nextAssetId") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 AssetId))))

class MonadAssetLoader a m | m -> a where Source #

Monadic interface for loading assets.

Since: 0.9

Methods

asset :: FilePath -> AssetConfig a -> m (Handle a) Source #

Load an asset from a file path with a configuration.

Since: 0.9

Instances

Instances details
(Monad m, Asset a) => MonadAssetLoader a (AssetLoaderT a m) Source #

Since: 0.9

Instance details

Defined in Aztecs.Asset.AssetLoader

class Typeable a => Asset a where Source #

Loadable asset.

Since: 0.9

Associated Types

type AssetConfig a Source #

Configuration for loading an asset.

Since: 0.9

Methods

loadAsset :: FilePath -> AssetConfig a -> IO a Source #

Load an asset from a file path with a configuration.

Since: 0.9

newtype Handle a Source #

Handle to an asset.

Since: 0.9

Constructors

Handle 

Fields

Instances

Instances details
Show (Handle a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Methods

showsPrec :: Int -> Handle a -> ShowS #

show :: Handle a -> String #

showList :: [Handle a] -> ShowS #

NFData (Handle a) Source #

Since: 0.9

Instance details

Defined in Aztecs.Asset.AssetServer

Methods

rnf :: Handle a -> () #

Eq (Handle a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Methods

(==) :: Handle a -> Handle a -> Bool #

(/=) :: Handle a -> Handle a -> Bool #

Ord (Handle a) Source # 
Instance details

Defined in Aztecs.Asset.AssetServer

Methods

compare :: Handle a -> Handle a -> Ordering #

(<) :: Handle a -> Handle a -> Bool #

(<=) :: Handle a -> Handle a -> Bool #

(>) :: Handle a -> Handle a -> Bool #

(>=) :: Handle a -> Handle a -> Bool #

max :: Handle a -> Handle a -> Handle a #

min :: Handle a -> Handle a -> Handle a #

lookupAsset :: Handle a -> AssetServer a -> Maybe a Source #

Lookup an asset by its handle.

Since: 0.9

setup :: forall m b a. (Typeable a, MonadAccess b m) => m () Source #

Setup the asset server.

Since: 0.9

loadAssets :: forall a q s m. (Typeable a, QueryF m q, Applicative q, MonadSystem q s, MonadIO m) => s () Source #

Load any pending assets.

Since: 0.9

load :: (MonadSystem Query s, Asset a) => AssetLoader a o -> s o Source #

System to load assets.

Since: 0.9