mischief-assets
Safe HaskellNone
LanguageGHC2024

Mischief.Assets.AssetRef

Synopsis

Documentation

data AssetRef a where Source #

Constructors

Ref :: forall a. (Asset a, Bundle a) => Text -> AssetRef a 
EntityRef :: forall a. (Asset a, Bundle a) => Entity -> AssetRef a 
SubRef :: forall b a. AssetRef b -> (b -> a) -> AssetRef a 
TransRef :: forall a b. AssetRef b -> (b -> AssetRef a) -> AssetRef a 
PureRef :: forall a. a -> AssetRef a 
AppRef :: forall a1 a. AssetRef (a1 -> a) -> AssetRef a1 -> AssetRef a 
NullRef :: forall a. AssetRef a 

Instances

Instances details
Applicative AssetRef Source # 
Instance details

Defined in Mischief.Assets.Internal.Asset

Methods

pure :: a -> AssetRef a #

(<*>) :: AssetRef (a -> b) -> AssetRef a -> AssetRef b #

liftA2 :: (a -> b -> c) -> AssetRef a -> AssetRef b -> AssetRef c #

(*>) :: AssetRef a -> AssetRef b -> AssetRef b #

(<*) :: AssetRef a -> AssetRef b -> AssetRef a #

Functor AssetRef Source # 
Instance details

Defined in Mischief.Assets.Internal.Asset

Methods

fmap :: (a -> b) -> AssetRef a -> AssetRef b #

(<$) :: a -> AssetRef b -> AssetRef a #

Monad AssetRef Source # 
Instance details

Defined in Mischief.Assets.Internal.Asset

Methods

(>>=) :: AssetRef a -> (a -> AssetRef b) -> AssetRef b #

(>>) :: AssetRef a -> AssetRef b -> AssetRef b #

return :: a -> AssetRef a #

Asset a => IsString (AssetRef a) Source # 
Instance details

Defined in Mischief.Assets.Internal.Asset

Methods

fromString :: String -> AssetRef a #

Show (AssetRef a) Source # 
Instance details

Defined in Mischief.Assets.Internal.Asset

Methods

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

show :: AssetRef a -> String #

showList :: [AssetRef a] -> ShowS #

(Asset a, Bundle a) => KdlAsset (AssetRef a) Source # 
Instance details

Defined in Mischief.Assets.Internal.Kdl

Methods

decodeKdl :: RelativePath -> NodeDecoder (AssetRef a) Source #

getAsset :: AssetRef a -> IsRec -> Set TypeRep -> System (Maybe a) Source #

Try to get an AssetRef's value. Will trigger it to load it it's currently unloaded.

getAsset' :: forall a w m. MonadSystem w m => AssetRef a -> m (Maybe a) Source #

Try to get an asset by its AssetRef. Won't trigger any IO.

getRefEntity :: AssetRef a -> System (Maybe Entity) Source #

Gets an AssetRef's entity. If it is unloaded, it will create an entity and return it.

qasset :: AssetRef a -> Query System a Source #

Gets the value of an asset. If it isn't loaded, it will attempt to start loading it.

qasset' :: forall a (m :: Type -> Type) w. MonadSystem w m => AssetRef a -> Query m a Source #

Gets the value of an asset.

class ToAssetRef (r :: Type -> Type) where Source #

Methods

toRef :: (Asset a, Bundle a) => r a -> AssetRef a Source #

Instances

Instances details
ToAssetRef KdlRef Source # 
Instance details

Defined in Mischief.Assets.Internal.Kdl

Methods

toRef :: (Asset a, Bundle a) => KdlRef a -> AssetRef a Source #