local map = { map_tiles = { { "-", "-", "w", "w", "-", "-", "-", "-", "-", "-" }, { "-", "_", "w", "w", "-", "-", "-", "-", "-", "-" }, { "-", "-", "w", "w", "-", "w", "-", "-", "-", "-" }, { "w", "-", "-", "-", "w", "w", "-", "-", "-", "-" }, { "w", "-", "w", "-", "-", "w", "w", "w", "-", "-" }, { "w", "-", "w", "-", "-", "w", "-", "-", "-", "-" }, { "-", "-", "w", "-", "-", "w", "-", "w", "-", "-" }, { "-", "-", "-", "-", "-", "-", "-", "w", "-", "-" }, { "-", "-", "w", "-", "-", "-", "-", "w", "w", "-" }, { "-", "-", "w", "-", "-", "-", "-", "-", "w", "-" } }, mapCrypt = function(self, tile) if tile == "-" then return "floor_stone" elseif tile == "_" then return "floor_wood" elseif tile == "w" then return "wall_stone" end end, mapDecrypt = function(self, tile) -- TODO: Rework function so it returns both char and mat type -- This introduces breaking changes local tileset = {} if string.find(tile, "wall") then tileset.char = "w" elseif string.find(tile, "floor") then tileset.char = "-" end if string.find(tile, "stone") then tileset.material = "stone" elseif string.find(tile, "wood") then tileset.material = "wood" end return tileset -- if tile == "floor_stone" then -- return "-" -- elseif tile == "wall_stone" then -- return "w" -- end end, -- Map Populate / check if map exists populate = function(self, map) for h = 1, 10 do for i = 1, 10 do local tile = map:create({ x = h, y = i, occupied_by_type = self:mapCrypt(self.map_tiles[h][i]), occupied_by_id = "" }) end end end, mapExists = function(self, map) local f = map:select("limit 1") if not f[1] then return false else return true end end, } return map