packages feed

mischief-assets-0.1.0.0: src/Mischief/Assets/Image.hs

module Mischief.Assets.Image where

import Codec.Picture qualified as P
import Data.Text qualified as T
import Mischief.Assets.Internal.Asset
import Mischief.ECS
import Mischief.ECS.Utils

newtype Image = Image P.DynamicImage deriving anyclass (Component)

instance Asset Image where
  type Saveable Image = False

  loadAsset !path _ = do
    fmap Image . mapLeft T.pack <$> P.readImage path