module Main where
import Control.Monad
import Mischief.ECS
import Mischief.Input
import Mischief.Input.Keys qualified as Keys
import Mischief.Input.Mouse qualified as Mouse
import Prelude hiding (and)
main :: IO ()
main = do
app <- newApp
addPlugin @MainPlugin app
runApp app
data MainPlugin
instance Plugin MainPlugin where
init = do
spawn_ Window
schedule @Update $ systems test
deps = [dep @InputPlugin]
test :: System ()
test = do
Just keys <- res @Keys
when (Keys.pressed keys Keys.A) $ do
info "A"
Just mouse <- res @Mouse
when (Mouse.justPressed mouse Mouse.Left) $ do
pos <- Mouse.pos
info [i|Click at #{pos}|]