aboutsummaryrefslogtreecommitdiff
path: root/src/Model.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/Model.elm')
-rw-r--r--src/Model.elm50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/Model.elm b/src/Model.elm
new file mode 100644
index 0000000..7e91e87
--- /dev/null
+++ b/src/Model.elm
@@ -0,0 +1,50 @@
+module Model exposing
+ ( Model
+ , init
+ )
+
+import Random.Pcg as Random exposing (Seed)
+import Char exposing (KeyCode)
+import Time exposing (Time)
+import Set
+import Set exposing (Set)
+import Platform.Cmd
+import Keyboard.Extra as Keyboard
+
+import Msg exposing (Msg)
+import Model.Player exposing (..)
+import Model.Cloud exposing (..)
+import Model.Vec2 exposing (Vec2)
+import Model.Config exposing (..)
+import Model.Round exposing (Round)
+import Model.Board exposing (initBoardSize)
+
+type alias Model =
+ { time : Time
+ , elapsedTime : Float
+ , boardSize : Vec2
+ , currentScore : Int
+ , player : Player
+ , cloud : Cloud
+ , rounds : List Round
+ , seed : Seed
+ , keyboard : Keyboard.Model
+ , transform : Bool
+ }
+
+init : Time -> (Model, Cmd Msg)
+init time =
+ let (keyboard, keyboardCmd) = Keyboard.init
+ in ( { time = time
+ , elapsedTime = 0
+ , boardSize = initBoardSize
+ , currentScore = 0
+ , player = initPlayer
+ , cloud = initCloud
+ , rounds = []
+ , seed = Random.initialSeed (round time)
+ , keyboard = keyboard
+ , transform = False
+ }
+ , Cmd.map Msg.Keyboard keyboardCmd
+ )