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) -- stores tiles as detailed names within the DB for i=1, #self.tileset.display do if self.tileset.display[i] == tile then return self.tileset.db[i] end end end, mapDecrypt = function(self, tile) -- Decodes tiles into their type (represented by char) and their material 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 end, -- Map Populate / check if map exists populate = function(self, map, game) 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 = "", game_ref = game }) 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