Initial efforts towards saved map files
Getty Ritter
7 years ago
9 | 9 | base = {}, |
10 | 10 | entity = {}, |
11 | 11 | } |
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 | |
16 | 18 | end |
17 | 19 | end |
20 | ||
18 | 21 | return setmetatable(t, Board) |
19 | 22 | end |
20 | 23 | |
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 | ||
21 | 54 | function Board:lookup(x, y) |
22 |
return self.base[ |
|
55 | return self.base[y * consts.boardWidth + x] | |
23 | 56 | end |
24 | 57 | |
25 | 58 | function Board:set(x, y, r) |
26 |
self.base[ |
|
59 | self.base[y * consts.boardWidth + x] = r | |
27 | 60 | end |
28 | 61 | |
29 | 62 | function Board:lookupEntity(x, y) |
30 |
return self.entity[ |
|
63 | return self.entity[y * consts.boardWidth + x] | |
31 | 64 | end |
32 | 65 | |
33 | 66 | function Board:setEntity(x, y, r) |
34 |
self.entity[ |
|
67 | self.entity[y * consts.boardWidth + x] = r | |
35 | 68 | end |
36 | 69 | |
37 | 70 | function Board:passable(x, y) |
44 | 77 | end |
45 | 78 | |
46 | 79 | return { |
47 |
Board = Board |
|
80 | Board = Board, | |
81 | loadBoard = loadBoard, | |
48 | 82 | } |
7 | 7 | -- draw the board background |
8 | 8 | for x = 0, consts.boardWidth - 1 do |
9 | 9 | for y = 0, consts.boardHeight - 1 do |
10 |
|
|
10 | if state.board:lookup(x, y) then | |
11 | state.board:lookup(x, y):draw(x, y, state.t) | |
12 | end | |
11 | 13 | end |
12 | 14 | end |
13 | 15 |
17 | 17 | state.t = 0 |
18 | 18 | state.message = nil |
19 | 19 | debug = '' |
20 |
|
|
20 | -- state.board = board.Board:new() | |
21 | state.board = board.loadBoard('sample.map') | |
21 | 22 | state.char = entity.Entity:new(state.board, 3 * 24, 3 * 24, tile.getTile('character')) |
22 | 23 | |
23 | state.board:set(2, 3, tile.getTile('water')) | |
24 | state.board:set(2, 4, tile.getTile('water')) | |
25 |
|
|
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')) | |
26 | 27 | |
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 |
|
|
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')) | |
32 | 33 | |
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')) | |
35 | 39 | |
36 | 40 | state.canvas = love.graphics.newCanvas( |
37 | 41 | 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 | }⏎ |
Binary diff not shown
Binary diff not shown