summaryrefslogtreecommitdiff
blob: d14e075a18b2e46241f3b6d60396d89fa4692c6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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)