mischief-assets-0.1.0.0: src/Mischief/Assets/AssetRef.hs
module Mischief.Assets.AssetRef
( AssetRef (..),
getAsset,
getAsset',
getRefEntity,
qasset,
qassetRec,
qasset',
ToAssetRef (..),
)
where
import Data.Set qualified as Set
import Mischief.Assets.Internal.Asset
import Mischief.ECS
-- | Gets the value of an asset.
qasset' :: forall a m w. (MonadSystem w m) => AssetRef a -> Query m a
qasset' ref = qmaybe =<< qlift (getAsset' ref)
-- | Gets the value of an asset. If it isn't loaded, it will attempt to start loading it.
qasset :: forall a. AssetRef a -> Query System a
qasset ref = qmaybe =<< qlift (getAsset ref False Set.empty)
qassetRec :: forall a. AssetRef a -> Query System a
qassetRec ref = qmaybe =<< qlift (getAsset ref True Set.empty)