summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-15 09:52:54 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-15 09:52:54 +0200
commit9a2d8f37dea8e14afa57affb135def13954df547 (patch)
treeee7daa101ffdb76bc4a5932c3698b6a89613df78 /client/elm/battlemap/src/Battlemap/Html.elm
Satisfied with Elm so far, let's go with it.
Diffstat (limited to 'client/elm/battlemap/src/Battlemap/Html.elm')
-rw-r--r--client/elm/battlemap/src/Battlemap/Html.elm84
1 files changed, 84 insertions, 0 deletions
diff --git a/client/elm/battlemap/src/Battlemap/Html.elm b/client/elm/battlemap/src/Battlemap/Html.elm
new file mode 100644
index 0000000..d14e075
--- /dev/null
+++ b/client/elm/battlemap/src/Battlemap/Html.elm
@@ -0,0 +1,84 @@
+module Battlemap.Html exposing (view)
+
+import Html exposing (Html, text, table, tr, td)
+-- import List as Lt exposing (map)
+import Array as Ay exposing (foldr)
+
+import Update exposing (Msg)
+import Model exposing (Model)
+
+import Battlemap exposing (Battlemap, random)
+import Battlemap.Tile exposing (Tile)
+
+view_battlemap_cell : Tile -> (Html Msg)
+view_battlemap_cell t =
+ (td
+ []
+ [ (text (toString t.floor_level)) ]
+ )
+
+type alias GridBuilder =
+ {
+ row : (List (Html Msg)),
+ columns : (List (Html Msg)),
+ row_size : Int,
+ bmap : Battlemap
+ }
+
+foldr_to_html : Tile -> GridBuilder -> GridBuilder
+foldr_to_html t bg =
+ if (bg.row_size == bg.bmap.width)
+ then
+ {bg |
+ row = [(view_battlemap_cell t)],
+ row_size = 1,
+ columns =
+ (
+ (tr [] bg.row) :: bg.columns
+ )
+ }
+ else
+ {bg |
+ row = ((view_battlemap_cell t) :: bg.row),
+ row_size = (bg.row_size + 1)
+ }
+
+grid_builder_to_html : GridBuilder -> (List (Html Msg))
+grid_builder_to_html gb =
+ if (gb.row_size == 0)
+ then
+ gb.columns
+ else
+ (grid_builder_to_html
+ {gb |
+ row = [],
+ row_size = 0,
+ columns =
+ (
+ (tr [] gb.row) :: gb.columns
+ )
+ }
+ )
+
+view_battlemap : Battlemap -> (Html Msg)
+view_battlemap battlemap =
+ (table
+ []
+ (grid_builder_to_html
+ (Ay.foldr
+ (foldr_to_html)
+ {
+ row = [],
+ columns = [],
+ row_size = 0,
+ bmap = battlemap
+ }
+ battlemap.content
+ )
+ )
+ )
+
+
+view : Model -> (Html Msg)
+view m =
+ (view_battlemap random)