local assertArgs = include "assertArgs" local util = include "util" local config = require "conf" local MockCellulo = lib "class" ("MockCellulo") MockCellulo:include(mixin "Angle") MockCellulo:include(mixin "Position") local MOVEMENT_SPEED = 20 local ROTATION_SPEED = 0.01 function MockCellulo:initialize() self:setPosition(config.CELLULO_PLANE.ox, config.CELLULO_PLANE.oy, 0) self:setAngle(0, 0, 1, 0) return self end function MockCellulo:update(dt) local dx = 0 dx = dx - (lovr.keyboard.isDown("j") and 1 or 0) dx = dx + (lovr.keyboard.isDown("l") and 1 or 0) local dy = 0 dy = dy - (lovr.keyboard.isDown("i") and 1 or 0) dy = dy + (lovr.keyboard.isDown("k") and 1 or 0) dx = dx * MOVEMENT_SPEED dy = dy * MOVEMENT_SPEED local x, y, _ = self:getPosition() self:setPosition(x + dx, y + dy, 0) local da = 0 da = da - (lovr.keyboard.isDown("u") and 1 or 0) da = da + (lovr.keyboard.isDown("o") and 1 or 0) da = da * ROTATION_SPEED local a = self:getAngle() self:setAngle(a + da) end function MockCellulo:getX() return self.x end function MockCellulo:getY() return self.y end function MockCellulo:getTheta() return self.angle end function MockCellulo:getConnectionStatus() return 1 end function MockCellulo:setHapticBackdriveAssist(...) return end function MockCellulo:setGoalVelocity(...) return end function MockCellulo:setGoalPose(...) return end function MockCellulo:setGoalPosition(...) return end function MockCellulo:getKidnapped() return false end return MockCellulo