local map = { map_tiles = { { "-", "-", "w", "w", "-", "-", "-", "-", "-", "-" }, { "-", "_", "w", "w", "-", "-", "-", "-", "-", "-" }, { "-", "-", "w", "w", "-", "w", "-", "-", "-", "-" }, { "w", "-", "-", "-", "w", "w", "-", "-", "-", "-" }, { "w", "-", "ww", "-", "-", "w", "w", "w", "-", "-" }, { "w", "-", "ww", "-", "-", "w", "-", "-", "-", "-" }, { "-", "-", "ww", "-", "-", "w", "-", "w", "-", "-" }, { "-", "-", "-", "-", "-", "-", "-", "w", "-", "-" }, { "-", "-", "ww", "-", "-", "-", "-", "w", "w", "-" }, { "-", "-", "ww", "-", "-", "-", "-", "-", "w", "-" } }, tileset = { display = { "-", "_", "w", "ww" }, db = { "floor_stone,", "floor_wood", "wall_stone", "wall_wood" } }, mapCrypt = function(self, tile) for i=1, #self.tileset.display do if self.tileset.display[i] == tile then return self.tileset.db[i] end end --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