gdritter repos animaltransiro / 5c40fcd
Initial efforts towards saved map files Getty Ritter 6 years ago
8 changed file(s) with 92 addition(s) and 21 deletion(s). Collapse all Expand all
99 base = {},
1010 entity = {},
1111 }
12 for x = 0, consts.boardWidth - 1 do
13 for y = 0, consts.boardHeight - 1 do
14 t.base[x * consts.boardWidth + y] = tile.getTile('grass')
15 t.entity[x * consts.boardWidth + y] = nil
12
13 for y = 0, consts.boardHeight - 1 do
14 for x = 0, consts.boardWidth - 1 do
15 print(x, y)
16 t.base[y * consts.boardWidth + x] = tile.getTile('grass')
17 t.entity[y * consts.boardWidth + x] = nil
1618 end
1719 end
20
1821 return setmetatable(t, Board)
1922 end
2023
24 function loadBoard(filename)
25 local f = io.open(filename)
26 if f then
27 data = loadstring('return ' .. f:read('*all'))()
28 local t = {
29 base = {},
30 entity = {},
31 }
32
33 for y = 0, consts.boardHeight - 1 do
34 for x = 0, consts.boardWidth - 1 do
35 local n = y * consts.boardWidth + x
36 print(n, data[n+1])
37 for k, v in pairs(data[n+1]) do
38 if k == 1 then
39 t.base[n-1] = tile.getTile(v)
40 elseif k == 2 then
41 t.entity[n-1] = tile.getTile(v)
42 else
43 t.entity[n-1][k] = v
44 end
45 end
46 end
47
48 end
49
50 return setmetatable(t, Board)
51 end
52 end
53
2154 function Board:lookup(x, y)
22 return self.base[x * consts.boardWidth + y]
55 return self.base[y * consts.boardWidth + x]
2356 end
2457
2558 function Board:set(x, y, r)
26 self.base[x * consts.boardWidth + y] = r
59 self.base[y * consts.boardWidth + x] = r
2760 end
2861
2962 function Board:lookupEntity(x, y)
30 return self.entity[x * consts.boardWidth + y]
63 return self.entity[y * consts.boardWidth + x]
3164 end
3265
3366 function Board:setEntity(x, y, r)
34 self.entity[x * consts.boardWidth + y] = r
67 self.entity[y * consts.boardWidth + x] = r
3568 end
3669
3770 function Board:passable(x, y)
4477 end
4578
4679 return {
47 Board = Board
80 Board = Board,
81 loadBoard = loadBoard,
4882 }
77 -- draw the board background
88 for x = 0, consts.boardWidth - 1 do
99 for y = 0, consts.boardHeight - 1 do
10 state.board:lookup(x, y):draw(x, y, state.t)
10 if state.board:lookup(x, y) then
11 state.board:lookup(x, y):draw(x, y, state.t)
12 end
1113 end
1214 end
1315
1717 state.t = 0
1818 state.message = nil
1919 debug = ''
20 state.board = board.Board:new()
20 -- state.board = board.Board:new()
21 state.board = board.loadBoard('sample.map')
2122 state.char = entity.Entity:new(state.board, 3 * 24, 3 * 24, tile.getTile('character'))
2223
23 state.board:set(2, 3, tile.getTile('water'))
24 state.board:set(2, 4, tile.getTile('water'))
25 state.board:set(2, 5, tile.getTile('water'))
24 -- state.board:set(2, 3, tile.getTile('water'))
25 -- state.board:set(2, 4, tile.getTile('water'))
26 -- state.board:set(2, 5, tile.getTile('water'))
2627
27 state.board:set(8, 3, tile.getTile('water'))
28 state.board:set(9, 3, tile.getTile('stonepath'))
29 state.board:set(8, 4, tile.getTile('water'))
30 state.board:set(8, 5, tile.getTile('water'))
31 state.board:setEntity(9, 6, tile.getTile('sign'))
28 -- state.board:set(8, 3, tile.getTile('water'))
29 -- state.board:set(9, 3, tile.getTile('stonepath'))
30 -- state.board:set(8, 4, tile.getTile('water'))
31 -- state.board:set(8, 5, tile.getTile('water'))
32 -- state.board:setEntity(9, 6, tile.getTile('sign'))
3233
33 state.board:setEntity(10, 3, tile.getTile('tree_lower'))
34 state.board:setEntity(10, 2, tile.getTile('tree_upper'))
34 -- state.board:setEntity(10, 3, tile.getTile('tree_lower'))
35 -- state.board:setEntity(10, 2, tile.getTile('tree_upper'))
36
37 -- state.board:setEntity(12, 3, tile.getTile('lamp_lower'))
38 -- state.board:setEntity(12, 2, tile.getTile('lamp_upper'))
3539
3640 state.canvas = love.graphics.newCanvas(
3741 consts.boardWidth * consts.tileSize,
1 {
2 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
3 {"grass"}, {"water"}, {"water"}, {"water"}, {"water"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
4 {"grass"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
5 {"grass"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
6 {"grass"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
7 {"grass"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass", "sign"}, {"grass"}, {"grass", "sign", signText="Hello!"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
8 {"grass"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass", "tree_upper"}, {"grass"}, {"grass"}, {"grass"},
9 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass", "tree_lower"}, {"grass"}, {"grass"}, {"grass"},
10 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
11 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
12 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
13 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
14 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
15 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
16 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
17 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
18 {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
19 }
1 {
2 pass = false,
3 name = 'lamp_lower',
4 spriteX = 4,
5 spriteY = 3,
6 }
1 {
2 pass = true,
3 name = 'lamp_upper',
4 spriteX = 4,
5 spriteY = 2,
6 }
Binary diff not shown
Binary diff not shown