poppy-server/singlemain.lua

50 lines
1.2 KiB
Lua

print("Singleplayer Startup")
local constants = require("constants")
local rpc = require("rpc")
local socket = require("socket")
local v1_message = {}
require("physics")(v1_message)
require("world")(v1_message)
local server = assert(socket.udp())
local ip, port = nil, nil
local clientCount = 0
local clients = {}
client:settimeout(0)
local clientToServer = love.thread.getChannel ( "c2s" );
local serverToClient = love.thread.getChannel ( "s2c" );
assert(server:setsockname("*", 42069))
if not server or not socket then error("failed to listen on socket") end
while true do
::nw_next::
print("iteration start")
local data = clientToServer:demand()
print("received data from " .. ip)
for _, req in ipairs(rpc.parse_multiple(data)) do
if req.clientid == 0 then
count = count + 1
response = "rq" .. constants.US .. "cid" .. constants.US .. count
clients[count] = { ip = ip, port = port }
end
local response = rpc.eval(v1_message, req)
if response then
local payload = "poppyV001" .. constants.US .. "0" .. constants.US .. response
print("sending response " .. payload)
assert(serverToClient:send(payload))
else
print(req .. " had no return value!")
end
end
print("iteration over")
end
::nw_break::