gdritter repos animaltransiro / a557cce
Calculate map offsets correctly + handle copying of entity tiles Getty Ritter 6 years ago
4 changed file(s) with 27 addition(s) and 40 deletion(s). Collapse all Expand all
3333 for y = 0, consts.boardHeight - 1 do
3434 for x = 0, consts.boardWidth - 1 do
3535 local n = y * consts.boardWidth + x
36 print(n, data[n+1])
3736 for k, v in pairs(data[n+1]) do
3837 if k == 1 then
39 t.base[n-1] = tile.getTile(v)
38 t.base[n] = tile.getTile(v)
4039 elseif k == 2 then
41 t.entity[n-1] = tile.getTile(v)
40 t.entity[n] = tile.copyTile(v)
4241 else
43 t.entity[n-1][k] = v
42 t.entity[n][k] = v
4443 end
4544 end
4645 end
5251 end
5352
5453 function Board:lookup(x, y)
55 return self.base[y * consts.boardWidth + x]
54 if 0 <= x and x < consts.boardWidth then
55 return self.base[y * consts.boardWidth + x]
56 end
5657 end
5758
5859 function Board:set(x, y, r)
6061 end
6162
6263 function Board:lookupEntity(x, y)
63 return self.entity[y * consts.boardWidth + x]
64 if 0 <= x and x < consts.boardWidth then
65 return self.entity[y * consts.boardWidth + x]
66 end
6467 end
6568
6669 function Board:setEntity(x, y, r)
1717 state.t = 0
1818 state.message = nil
1919 debug = ''
20 -- state.board = board.Board:new()
20
2121 state.board = board.loadBoard('sample.map')
2222 state.char = entity.Entity:new(state.board, 3 * 24, 3 * 24, tile.getTile('character'))
23
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'))
27
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'))
33
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'))
3923
4024 state.canvas = love.graphics.newCanvas(
4125 consts.boardWidth * consts.tileSize,
11 {
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"},
2 {"grass"}, {"grass"}, {"grass"}, {"stonepath"}, {"grass"}, {"water"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
3 {"grass"}, {"grass"}, {"water"}, {"stonepath"}, {"water"}, {"water"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
4 {"grass"}, {"water"}, {"water"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
5 {"grass"}, {"water"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
6 {"grass"}, {"water"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
7 {"grass"}, {"water"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass", "sign"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
8 {"water"}, {"water"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass", "sign", signText="This is an example of entity-specific\ninformation contained in the map file."}, {"grass"}, {"grass"}, {"grass", "tree_upper"}, {"grass"}, {"grass"}, {"grass"},
9 {"water"}, {"grass"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass", "tree_lower"}, {"grass"}, {"grass"}, {"grass"},
10 {"water"}, {"grass"}, {"grass"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
11 {"grass"}, {"stonepath"}, {"stonepath", "lamp_upper"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
12 {"grass"}, {"stonepath"}, {"stonepath", "lamp_lower"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
13 {"grass"}, {"stonepath"}, {"stonepath"}, {"stonepath"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"}, {"grass"},
1914 }
7979 return tileCache[name]
8080 end
8181
82 local function copyTile(name)
83 return Tile:new(name)
84 end
85
8286 local function allTiles()
8387 return tileCache
8488 end
9397
9498 return {
9599 getTile = getTile,
100 copyTile = copyTile,
96101 allTiles = allTiles,
97102 nilTile = nilTile,
98103 }