module Main ( main ) where import Signal import Html (Html) import Time (..) import Mouse import Json.Encode (Value) import Keyboard import Char import Model.Model (..) import Model.Position (..) import Update.Update (..) import View.View (view) main : Signal Html main = Signal.map view model model : Signal Model model = Signal.foldp update (initialModel initialTime) input input : Signal Action input = Signal.mergeMany [ Signal.subscribe updates , Signal.map DeltaTime (fps 30) , Signal.map (\_ -> ReadOnly) clickAway , Signal.map KeyPressed Keyboard.lastPressed ] port clickPosition : Signal Value port clickPosition = Signal.sampleOn Mouse.clicks (Signal.map positionEncoder Mouse.position) port clickAway : Signal () port initialTime : Time