local lapis = require("lapis") local app = lapis.Application() local say = require('lua_scripts/main') local mapFunc = require('lua_scripts/map') local player = require('player') local db = require("lapis.db") local Model = require("lapis.db.model").Model local map = Model:extend('map') app:enable("etlua") app.layout = require "views.layout" app:post("/clickme", function(self) self.text = "Map is already initialized. Beginning game." self.isPopulated = mapFunc:mapExists(map) if not self.isPopulated then mapFunc:populate(map) self.text = "Populated map." end return {self.text, layout = false} end) app:get("/", function(self) self.text = say.hello() self.isPopulated = mapFunc:mapExists(map) return {render = "index", } end) app:match("/map/render", function(self) self.tiles = {} for h=1,10 do self.tiles[h] = {} for i=1,10 do self.tiles[h][i] = map:find({x = h, y = i}) -- The map database has floor_stone and wall_floor instead of simple ASCII characters -- So we run mapFunc:mapDecrypt to convert it back to the desired characters for visual display self.tiles[h][i].occupied_by_type = mapFunc:mapDecrypt(self.tiles[h][i].occupied_by_type) end end return {render = "map", layout = false} end) return app