Initial efforts towards saved map files
Getty Ritter
8 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