Peradventure/app.lua

49 lines
1.3 KiB
Lua
Raw Normal View History

2024-03-16 18:29:52 -05:00
local lapis = require("lapis")
local app = lapis.Application()
2024-03-16 20:00:13 -05:00
local say = require('lua_scripts/main')
2024-03-18 15:31:53 -05:00
local mapFunc = require('lua_scripts/map')
2024-03-17 16:03:28 -05:00
local player = require('player')
local db = require("lapis.db")
local Model = require("lapis.db.model").Model
2024-03-16 18:29:52 -05:00
2024-03-18 15:31:53 -05:00
local map = Model:extend('map')
2024-03-17 16:54:08 -05:00
2024-03-16 18:29:52 -05:00
app:enable("etlua")
2024-03-17 16:03:28 -05:00
app.layout = require "views.layout"
2024-03-16 18:29:52 -05:00
2024-03-16 20:32:35 -05:00
app:post("/clickme", function(self)
2024-03-18 19:06:37 -05:00
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}
2024-03-16 20:32:35 -05:00
end)
2024-03-16 20:00:13 -05:00
app:get("/", function(self)
self.text = say.hello()
2024-03-18 19:38:28 -05:00
self.isPopulated = mapFunc:mapExists(map)
2024-03-17 16:03:28 -05:00
return {render = "index",
}
2024-03-16 18:29:52 -05:00
end)
2024-03-18 15:31:53 -05:00
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})
2024-03-18 19:38:28 -05:00
-- 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
2024-03-19 12:22:05 -05:00
self.tiles[h][i].occupied_by_type = mapFunc:mapDecrypt(self.tiles[h][i].occupied_by_type)[1]
2024-03-18 15:31:53 -05:00
end
end
return {render = "map", layout = false}
end)
2024-03-16 18:29:52 -05:00
return app