levelloop = {} levelloop.CLIENT = true levelloop.world = nil levelloop.textures = {} levelloop.avatars = {} commands = {} require("lua.commands")(commands) require("shared.commands")(commands) local protocolVersion = "PPY\x03" local socket = require "socket" local utils = require("shared.utils") local fonts = require("shared.fonts") local errorHandler = require("shared.error") local rpc = require("server.rpc") local constants = require("server.constants") local format = require("shared.networkFormat") levelloop.nwChecklist = {} levelloop.Canvas = {} local count = 1 local function normalDraw() if count == 1 then print("use canvas!") count = 2 end local layerTransform = love.math.newTransform(math.floor(view.x) * scale, math.floor(view.y) * scale, 0, scale, scale) -- Draw background if drawBackground then utils.color_push() love.graphics.setColor(0.05, 0.05, 0.05) love.graphics.rectangle("fill", math.floor(view.x) * scale, math.floor(view.y) * scale, levelloop.world.x * scale, levelloop.world.y * scale) love.graphics.setColor(1, 1, 1, 1) love.graphics.draw(levelloop.Canvas.bg, layerTransform) utils.color_pop() end -- draw player for i, player in pairs(participants) do local playerTransform = love.math.newTransform( math.floor(player.x) * scale + math.floor(view.x) * scale, math.floor(player.y) * scale + math.floor(view.y) * scale, 0, scale, scale) love.graphics.draw(player.avatar, playerTransform) if player.name then if not player.label then player.label = love.graphics.newText(fonts.smallFont, player.name) end local labelTransform = love.math.newTransform( math.floor(player.x - (player.label:getWidth() / 2) + (player.avatar:getPixelWidth() /2)) * scale + math.floor(view.x) * scale, math.floor(player.y - (player.label:getHeight())) * scale + math.floor(view.y) * scale, 0, scale, scale) love.graphics.draw(player.label, labelTransform) end end -- Draw foreground love.graphics.draw(levelloop.Canvas.fg, layerTransform) -- Draw UI love.graphics.draw(ui.buffer) end local function debugDraw() normalDraw() local layerTransform = love.math.newTransform(math.floor(view.x) * scale, math.floor(view.y) * scale, 0, scale, scale) for i = 30, 120, 30 do love.graphics.draw(ui.speedText[i/30], 400, i-30) end love.graphics.draw(levelloop.Canvas.dbg, layerTransform) love.graphics.draw(levelloop.Canvas.dbg2, layerTransform) love.graphics.setCanvas(levelloop.Canvas.dbg2) love.graphics.clear() love.graphics.setCanvas() end local function remoteCall(name, ...) local request = protocolVersion .. format.encodeFunction(name, levelloop.clientID or 0, ...) levelloop.client:send(request) end local function networkSync() while true do local message, fault = levelloop.client:receive() if not message then if fault == "timeout" then return else error(fault) end end local protocolVersion, index = string.unpack("