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)