You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.7 KiB
59 lines
1.7 KiB
|
4 years ago
|
local _, addon = ...
|
||
|
|
|
||
|
|
--Process Camera Inertia
|
||
|
|
local CameraRotater = CreateFrame("Frame");
|
||
|
|
addon.CameraRotater = CameraRotater;
|
||
|
|
|
||
|
|
CameraRotater:Hide();
|
||
|
|
CameraRotater.value = 0;
|
||
|
|
CameraRotater.newValue = 0;
|
||
|
|
CameraRotater:SetScript("OnUpdate", function(self, elapsed)
|
||
|
|
self.value = self.value + (0 - self.value) * 10 * elapsed;
|
||
|
|
if self.processIntertia and (self.value < 0.01 and self.value > -0.01) then
|
||
|
|
self.value = 0;
|
||
|
|
self:Hide();
|
||
|
|
self.processIntertia = false;
|
||
|
|
MoveViewLeftStop();
|
||
|
|
MoveViewRightStop();
|
||
|
|
else
|
||
|
|
if self.value < 0 then
|
||
|
|
MoveViewLeftStart(-self.value);
|
||
|
|
elseif self.value > 0 then
|
||
|
|
MoveViewRightStart(self.value);
|
||
|
|
else
|
||
|
|
self:Hide();
|
||
|
|
MoveViewLeftStop();
|
||
|
|
MoveViewRightStop();
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end);
|
||
|
|
|
||
|
|
function CameraRotater:Yaw(x)
|
||
|
|
if not self.cameraYawMoveSpeed then
|
||
|
|
self.cameraYawMoveSpeed = tonumber(GetCVar("cameraYawMoveSpeed"));
|
||
|
|
end
|
||
|
|
NarciAR.GamePadTurning:Start(-x);
|
||
|
|
x = 90 * x;
|
||
|
|
self:Hide();
|
||
|
|
self.processIntertia = false;
|
||
|
|
if x < 0 then
|
||
|
|
MoveViewLeftStart(-x/self.cameraYawMoveSpeed);
|
||
|
|
MoveViewRightStop();
|
||
|
|
self.value = x/self.cameraYawMoveSpeed;
|
||
|
|
elseif x > 0 then
|
||
|
|
MoveViewRightStart(x/self.cameraYawMoveSpeed);
|
||
|
|
MoveViewLeftStop();
|
||
|
|
self.value = x/self.cameraYawMoveSpeed;
|
||
|
|
else
|
||
|
|
--MoveViewLeftStop();
|
||
|
|
--MoveViewRightStop();
|
||
|
|
self.processIntertia = true;
|
||
|
|
self:Show();
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
function CameraRotater:Stop()
|
||
|
|
MoveViewLeftStop();
|
||
|
|
MoveViewRightStop();
|
||
|
|
self:Hide();
|
||
|
|
end
|