From 798a1645eea6716f6fbdb52a75850afb7693fbd9 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Sun, 4 Sep 2022 15:48:23 -0500 Subject: [PATCH] Formatting --- scripts/client/mousecam.js | 328 +++++++++++++++---------------------- 1 file changed, 132 insertions(+), 196 deletions(-) diff --git a/scripts/client/mousecam.js b/scripts/client/mousecam.js index 08889376..bfd6fa2b 100644 --- a/scripts/client/mousecam.js +++ b/scripts/client/mousecam.js @@ -12,34 +12,29 @@ // CREDITS TO LUCASC190 FOR MAKING THE MOUSE CAMERA // WALKING CODE ADDED BY VORTREX -function SetStandardControlsEnabled(bEnabled) -{ - if(typeof gta == "undefined") { +function SetStandardControlsEnabled(bEnabled) { + if (typeof gta == "undefined") { return false; } - if (game.standardControls === undefined) - { + if (game.standardControls === undefined) { logToConsole(LOG_WARN, "game.standardControls not implemented"); return; } game.standardControls = bEnabled; } -function GetCurrentPlayerIndex() -{ +function GetCurrentPlayerIndex() { return 0; } -function GetPlayerPed(uiIndex) -{ +function GetPlayerPed(uiIndex) { if (uiIndex >= 1) throw new Error("player index out of range"); return localPlayer; } -function GetPedVehicle(pPed) -{ +function GetPedVehicle(pPed) { return pPed.vehicle; } @@ -49,8 +44,7 @@ let ENTITYTYPE_PED = 3; let ENTITYTYPE_OBJECT = 4; let ENTITYTYPE_DUMMY = 5; -function GetEntityType(Entity) -{ +function GetEntityType(Entity) { if (Entity.isType(ELEMENT_BUILDING)) return ENTITYTYPE_BUILDING; if (Entity.isType(ELEMENT_VEHICLE)) @@ -64,79 +58,66 @@ function GetEntityType(Entity) return undefined; } -function GetPlaceableMatrix(pPlaceable) -{ +function GetPlaceableMatrix(pPlaceable) { if (pPlaceable == GetCamera()) return game.cameraMatrix; return pPlaceable.matrix; } -function GetEntityModel(pEntity) -{ +function GetEntityModel(pEntity) { return pEntity; } -function GetModelBoundingSphere(usModel) -{ +function GetModelBoundingSphere(usModel) { return [usModel.boundingRadius, usModel.boundingCentre.x, usModel.boundingCentre.y, usModel.boundingCentre.z]; } -function GetMouseSpeed() -{ +function GetMouseSpeed() { if (gui.cursorEnabled) - return [0,0]; + return [0, 0]; let MouseSpeed = game.getMouseSpeed(); - return [MouseSpeed.x,-MouseSpeed.y]; + return [MouseSpeed.x, -MouseSpeed.y]; } -function GetMouseSensitivity() -{ - if (game.getMouseSensitivity === undefined) - { +function GetMouseSensitivity() { + if (game.getMouseSensitivity === undefined) { //logToConsole(LOG_ERROR, "game.getMouseSensitivity not implemented"); - return [0.0025,0.003]; + return [0.0025, 0.003]; } let MouseSensitivity = game.getMouseSensitivity(); - return [MouseSensitivity.x,MouseSensitivity.y]; + return [MouseSensitivity.x, MouseSensitivity.y]; } let GetCamera; { const Camera = Symbol(); - GetCamera = function() - { + GetCamera = function () { return Camera; } } -function AreEntityCollisionsEnabled(pEntity) -{ +function AreEntityCollisionsEnabled(pEntity) { return pEntity.collisionsEnabled; } -function SetEntityCollisionsEnabled(pEntity, bCollisionsEnabled) -{ +function SetEntityCollisionsEnabled(pEntity, bCollisionsEnabled) { pEntity.collisionsEnabled = bCollisionsEnabled; } -function ProcessLineOfSight(vecStartX, vecStartY, vecStartZ, vecEndX, vecEndY, vecEndZ, bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bCheckSeeThroughStuff, bIgnoreSomeObjectsForCamera) -{ - if (game.processLineOfSight === undefined) - { +function ProcessLineOfSight(vecStartX, vecStartY, vecStartZ, vecEndX, vecEndY, vecEndZ, bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bCheckSeeThroughStuff, bIgnoreSomeObjectsForCamera) { + if (game.processLineOfSight === undefined) { logToConsole(LOG_WARN, "game.processLineOfSight not implemented"); return [null]; } let Result = game.processLineOfSight([vecStartX, vecStartY, vecStartZ], [vecEndX, vecEndY, vecEndZ], bCheckBuildings, bCheckVehicles, bCheckPeds, bCheckObjects, bCheckDummies, bCheckSeeThroughStuff, bIgnoreSomeObjectsForCamera); if (Result == null) return [null]; - return [Result.position.x, Result.position.y ,Result.position.z, Result.normal.x, Result.normal.y ,Result.normal.z, Result.entity]; + return [Result.position.x, Result.position.y, Result.position.z, Result.normal.x, Result.normal.y, Result.normal.z, Result.entity]; } -function SetPlaceableMatrix(pPlaceable, mat) -{ - if (pPlaceable == GetCamera()) - { +function SetPlaceableMatrix(pPlaceable, mat) { + if (pPlaceable == GetCamera()) { game.setCameraMatrix(mat); return; } @@ -149,20 +130,17 @@ let GetTickCount; { let FrameCount = 0; - setInterval(() => - { + setInterval(() => { ++FrameCount; }, 0); let GTAFrameCount = 0; - addEventHandler("OnProcess", (event, deltaTime) => - { + addEventHandler("OnProcess", (event, deltaTime) => { ++GTAFrameCount; }); - GetTickCount = function(bGTA, bFrames) - { + GetTickCount = function (bGTA, bFrames) { if (bFrames) return bGTA ? GTAFrameCount : FrameCount; else @@ -170,16 +148,16 @@ let GetTickCount; } } -function easingSinusoidalInOut(t,b,c,d)//TODO: Move this to MathUtil.js +function easingSinusoidalInOut(t, b, c, d)//TODO: Move this to MathUtil.js { - return -c/2 * (Math.cos((Math.PI)*t/d) - 1) + b; + return -c / 2 * (Math.cos((Math.PI) * t / d) - 1) + b; } //TODO: extract -function applyMultiplierTimeStep(m,t)//TODO: Move this to MathUtil.js +function applyMultiplierTimeStep(m, t)//TODO: Move this to MathUtil.js { - return Math.max(Math.min(1.0-(1.0-m)*(t),1),0); + return Math.max(Math.min(1.0 - (1.0 - m) * (t), 1), 0); } //TODO: getOffset @@ -192,8 +170,7 @@ function applyMultiplierTimeStep(m,t)//TODO: Move this to MathUtil.js //TODO: confirm const identityMatrix = new Matrix4x4(); -if (identityMatrix.setIdentity === undefined) -{ +if (identityMatrix.setIdentity === undefined) { identityMatrix.m11 = 1; identityMatrix.m12 = 0; identityMatrix.m13 = 0; @@ -230,72 +207,62 @@ cameraIdentityMatrix.m42 = 0; cameraIdentityMatrix.m43 = 0; cameraIdentityMatrix.m44 = 1; -function createMultipliedMatrix() -{ +function createMultipliedMatrix() { let matrix = new Matrix4x4(); matrix.setMultiply.apply(matrix, arguments); return matrix; } -function createXRotationMatrix(x) -{ +function createXRotationMatrix(x) { let matrix = new Matrix4x4(); matrix.setRotateX(x); return matrix; } -function createYRotationMatrix(x) -{ +function createYRotationMatrix(x) { let matrix = new Matrix4x4(); matrix.setRotateY(x); return matrix; } -function createZRotationMatrix(z) -{ +function createZRotationMatrix(z) { let matrix = new Matrix4x4(); matrix.setRotateZ(z); return matrix; } -function createTranslationMatrix(x,y,z) -{ +function createTranslationMatrix(x, y, z) { let matrix = new Matrix4x4(); - matrix.setTranslate([x,y,z]); + matrix.setTranslate([x, y, z]); return matrix; } //TODO: createScaleMatrix -function getDotProduct(x,y,z,x2,y2,z2) -{ - return x*x2 + y*y2 + z*z2; +function getDotProduct(x, y, z, x2, y2, z2) { + return x * x2 + y * y2 + z * z2; } -function getCrossProduct(x,y,z,x2,y2,z2) -{ - return [y*z2-z*y2, z*x2-x*z2, x*y2-y*x2]; +function getCrossProduct(x, y, z, x2, y2, z2) { + return [y * z2 - z * y2, z * x2 - x * z2, x * y2 - y * x2]; } -function getLength(x,y,z) -{ - return Math.sqrt(getDotProduct(x,y,z,x,y,z)); +function getLength(x, y, z) { + return Math.sqrt(getDotProduct(x, y, z, x, y, z)); } -function normalise(x,y,z) -{ - let length = getLength(x,y,z); +function normalise(x, y, z) { + let length = getLength(x, y, z); if (length == 0) throw new Error("an attempt was made to normalise a three dimensional vector with a length of zero"); - return [x/length, y/length, z/length]; + return [x / length, y / length, z / length]; } -function createLookAtLHMatrix(eyeX, eyeY, eyeZ, atX, atY, atZ, upX,upY,upZ) -{ +function createLookAtLHMatrix(eyeX, eyeY, eyeZ, atX, atY, atZ, upX, upY, upZ) { let matrix = new Matrix4x4(); - let [lookX, lookY, lookZ] = normalise(atX-eyeX,atY-eyeY,atZ-eyeZ); - let [rightX, rightY, rightZ] = normalise.apply(null,getCrossProduct(upX,upY,upZ,lookX, lookY, lookZ)); - [upX,upY,upZ] = getCrossProduct(lookX, lookY, lookZ,rightX, rightY, rightZ); + let [lookX, lookY, lookZ] = normalise(atX - eyeX, atY - eyeY, atZ - eyeZ); + let [rightX, rightY, rightZ] = normalise.apply(null, getCrossProduct(upX, upY, upZ, lookX, lookY, lookZ)); + [upX, upY, upZ] = getCrossProduct(lookX, lookY, lookZ, rightX, rightY, rightZ); matrix.m11 = rightX; matrix.m12 = rightY; matrix.m13 = rightZ; @@ -323,10 +290,9 @@ function createLookAtLHMatrix(eyeX, eyeY, eyeZ, atX, atY, atZ, upX,upY,upZ) return matrix; } -function getDifferenceBetweenAngles(current,target) -{ - let f = (((target-current)+Math.PI)/(Math.PI*2)); - return ((f-Math.floor(f))*(Math.PI*2))-Math.PI; +function getDifferenceBetweenAngles(current, target) { + let f = (((target - current) + Math.PI) / (Math.PI * 2)); + return ((f - Math.floor(f)) * (Math.PI * 2)) - Math.PI; } let easeCamera = false; @@ -336,46 +302,41 @@ let easeStartPosX, easeStartPosY, easeStartPosZ; let easeStartLookX, easeStartLookY, easeStartLookZ; let easeStartUpX, easeStartUpY, easeStartUpZ; -function getCameraPositionInfo(matrix) -{ +function getCameraPositionInfo(matrix) { return [matrix.m41, matrix.m42, matrix.m43, matrix.m21, matrix.m22, matrix.m23, matrix.m31, matrix.m32, matrix.m33]; } -function startCameraEase() -{ +function startCameraEase() { easeCamera = true; - easeStartTicks = GetTickCount(true,false); + easeStartTicks = GetTickCount(true, false); easeDuration = 1000; let matrix = GetPlaceableMatrix(GetCamera()); [easeStartPosX, easeStartPosY, easeStartPosZ, easeStartLookX, easeStartLookY, easeStartLookZ, easeStartUpX, easeStartUpY, easeStartUpZ] = getCameraPositionInfo(matrix); } -function applyCameraEase(matrix) -{ +function applyCameraEase(matrix) { if (!easeCamera) return matrix; - let ease = (GetTickCount(true,false)-easeStartTicks)/easeDuration; - if (ease < 1) - { - ease = easingSinusoidalInOut(ease,0,1,1); + let ease = (GetTickCount(true, false) - easeStartTicks) / easeDuration; + if (ease < 1) { + ease = easingSinusoidalInOut(ease, 0, 1, 1); let [newPosX, newPosY, newPosZ, newLookX, newLookY, newLookZ, newUpX, newUpY, newUpZ] = getCameraPositionInfo(matrix); - let easePosX = easeStartPosX+(newPosX-easeStartPosX)*ease; - let easePosY = easeStartPosY+(newPosY-easeStartPosY)*ease; - let easePosZ = easeStartPosZ+(newPosZ-easeStartPosZ)*ease; - let easeLookX = easeStartLookX+(newLookX-easeStartLookX)*ease; - let easeLookY = easeStartLookY+(newLookY-easeStartLookY)*ease; - let easeLookZ = easeStartLookZ+(newLookZ-easeStartLookZ)*ease; - let easeUpX = easeStartUpX+(newUpX-easeStartUpX)*ease; - let easeUpY = easeStartUpY+(newUpY-easeStartUpY)*ease; - let easeUpZ = easeStartUpZ+(newUpZ-easeStartUpZ)*ease; - return createLookAtLHMatrix(easePosX,easePosY,easePosZ,easePosX+easeLookX,easePosY+easeLookY,easePosZ+easeLookZ,easeUpX,easeUpY,easeUpZ); + let easePosX = easeStartPosX + (newPosX - easeStartPosX) * ease; + let easePosY = easeStartPosY + (newPosY - easeStartPosY) * ease; + let easePosZ = easeStartPosZ + (newPosZ - easeStartPosZ) * ease; + let easeLookX = easeStartLookX + (newLookX - easeStartLookX) * ease; + let easeLookY = easeStartLookY + (newLookY - easeStartLookY) * ease; + let easeLookZ = easeStartLookZ + (newLookZ - easeStartLookZ) * ease; + let easeUpX = easeStartUpX + (newUpX - easeStartUpX) * ease; + let easeUpY = easeStartUpY + (newUpY - easeStartUpY) * ease; + let easeUpZ = easeStartUpZ + (newUpZ - easeStartUpZ) * ease; + return createLookAtLHMatrix(easePosX, easePosY, easePosZ, easePosX + easeLookX, easePosY + easeLookY, easePosZ + easeLookZ, easeUpX, easeUpY, easeUpZ); } return matrix; } -function isCameraEasing() -{ - return easeCamera && GetTickCount(true,false) < (easeStartTicks+easeDuration); +function isCameraEasing() { + return easeCamera && GetTickCount(true, false) < (easeStartTicks + easeDuration); } let oldCameraTarget = null; @@ -383,14 +344,12 @@ let OldPosition = null;//2019 Lucas was here! let cameraRotZ; let cameraRotY; -function getCameraTarget() -{ +function getCameraTarget() { let playerPed = GetPlayerPed(GetCurrentPlayerIndex()); let vehicle = GetPedVehicle(playerPed); if (vehicle != null) return vehicle; - if (playerPed != null) - { + if (playerPed != null) { //if (playerPed.health <= 1)//Breaks because of fade//2019 Lucas was here! // return null; return playerPed; @@ -398,59 +357,52 @@ function getCameraTarget() return null; } -function isRelativeToTarget(target) -{ +function isRelativeToTarget(target) { if (GetEntityType(target) == ENTITYTYPE_PED) return false; return false } -function isClipped(target) -{ +function isClipped(target) { if (GetEntityType(target) == ENTITYTYPE_PED) return true; return true; } //2019 Lucas was here! -function ShouldReturnToRestRotation(Target) -{ +function ShouldReturnToRestRotation(Target) { if (GetEntityType(Target) == ENTITYTYPE_PED) return false; return true; } -function getCameraRestRotation(target) -{ +function getCameraRestRotation(target) { let targetMatrix = GetPlaceableMatrix(target); let rotZ; if (isRelativeToTarget(target)) rotZ = 0; else - rotZ = -Math.atan2(targetMatrix.m21,targetMatrix.m22); + rotZ = -Math.atan2(targetMatrix.m21, targetMatrix.m22); let rotY = -0.2; return [rotZ, rotY]; } -function resetCameraRotation() -{ +function resetCameraRotation() { [cameraRotZ, cameraRotY] = getCameraRestRotation(getCameraTarget()); } //2019 Lucas was here! let DeltaTime = 0; -addEventHandler("OnProcess", (event, deltaTime) => -{ +addEventHandler("OnProcess", (event, deltaTime) => { DeltaTime = deltaTime; - if(!localPlayer) { + if (!localPlayer) { return false; } }); let IdleTime = 0;//2019 Lucas was here! -function processReturnToRestRotation() -{ +function processReturnToRestRotation() { //resetCameraRotation();//2019 Lucas was here! //2019 Lucas was here! @@ -458,37 +410,32 @@ function processReturnToRestRotation() if (!ShouldReturnToRestRotation(Target)) return; IdleTime += DeltaTime; - if (IdleTime > 1.5) - { + if (IdleTime > 1.5) { let Velocity = Target.velocity; let Matrix = Target.matrix; - let Speed = getDotProduct(Velocity.x,Velocity.y,Velocity.z,Matrix.getElement(1*4+0),Matrix.getElement(1*4+1),Matrix.getElement(1*4+2)); + let Speed = getDotProduct(Velocity.x, Velocity.y, Velocity.z, Matrix.getElement(1 * 4 + 0), Matrix.getElement(1 * 4 + 1), Matrix.getElement(1 * 4 + 2)); let AbsSpeed = Math.abs(Speed); - let Multiplier = Math.min(AbsSpeed/0.75, 1); - if (Multiplier != 0) - { + let Multiplier = Math.min(AbsSpeed / 0.75, 1); + if (Multiplier != 0) { let [TargetCameraRotZ2, TargetCameraRotY2] = getCameraRestRotation(Target); if (Speed < 0) TargetCameraRotZ2 += Math.PI; - let TimeStep = game.timeStep/50*60; - cameraRotZ += getDifferenceBetweenAngles(cameraRotZ,TargetCameraRotZ2)*applyMultiplierTimeStep(1/20,TimeStep)*Multiplier; - cameraRotY += getDifferenceBetweenAngles(cameraRotY,TargetCameraRotY2)*applyMultiplierTimeStep(1/20,TimeStep)*Multiplier; + let TimeStep = game.timeStep / 50 * 60; + cameraRotZ += getDifferenceBetweenAngles(cameraRotZ, TargetCameraRotZ2) * applyMultiplierTimeStep(1 / 20, TimeStep) * Multiplier; + cameraRotY += getDifferenceBetweenAngles(cameraRotY, TargetCameraRotY2) * applyMultiplierTimeStep(1 / 20, TimeStep) * Multiplier; } } } -function cancelReturnToRestRotation() -{ +function cancelReturnToRestRotation() { IdleTime = 0;//2019 Lucas was here! } let distance; let zIncrease; -function getCameraOffsetInfo(target) -{ - if (GetEntityType(target) == ENTITYTYPE_PED) - { +function getCameraOffsetInfo(target) { + if (GetEntityType(target) == ENTITYTYPE_PED) { let distance = 4; let zIncrease = 0.8; let offsetX = 0; @@ -507,8 +454,7 @@ function getCameraOffsetInfo(target) let offsetX; let offsetY; let offsetZ; - if (radius <= 3.0535011291504) - { + if (radius <= 3.0535011291504) { minDistance = 4; maxDistance = 8; minZIncrease = 0.5; @@ -516,8 +462,7 @@ function getCameraOffsetInfo(target) minRadius = 2; maxRadius = 3.0535011291504; } - else - { + else { minDistance = 8; maxDistance = 16; minZIncrease = 1; @@ -528,66 +473,59 @@ function getCameraOffsetInfo(target) offsetX = 0; offsetY = 0; offsetZ = 0; - distance = minDistance+(radius-minRadius)/(maxRadius-minRadius)*(maxDistance-minDistance); - zIncrease = minZIncrease+(radius-minRadius)/(maxRadius-minRadius)*(maxZIncrease-minZIncrease); + distance = minDistance + (radius - minRadius) / (maxRadius - minRadius) * (maxDistance - minDistance); + zIncrease = minZIncrease + (radius - minRadius) / (maxRadius - minRadius) * (maxZIncrease - minZIncrease); return [distance, zIncrease, offsetX, offsetY, offsetZ]; } -function update() -{ +function update() { let target = getCameraTarget(); - if (target != null) - { - if (oldCameraTarget != target) - { + if (target != null) { + if (oldCameraTarget != target) { //if (oldCameraTarget != null)//2019 Lucas was here! let Position = target.position; - if (OldPosition == null || getLength(Position.x-OldPosition.x,Position.y-OldPosition.y,Position.z-OldPosition.z) < 10) + if (OldPosition == null || getLength(Position.x - OldPosition.x, Position.y - OldPosition.y, Position.z - OldPosition.z) < 10) startCameraEase() resetCameraRotation() } let [mouseSpeedX, mouseSpeedY] = GetMouseSpeed(); let [mouseSensitivityX, mouseSensitivityY] = GetMouseSensitivity(); - mouseSpeedX = mouseSpeedX*mouseSensitivityX*2; - mouseSpeedY = mouseSpeedY*mouseSensitivityY*2; - if (mouseSpeedX == 0 && mouseSpeedY == 0) - { + mouseSpeedX = mouseSpeedX * mouseSensitivityX * 2; + mouseSpeedY = mouseSpeedY * mouseSensitivityY * 2; + if (mouseSpeedX == 0 && mouseSpeedY == 0) { processReturnToRestRotation(); } - else - { - cameraRotZ = cameraRotZ-mouseSpeedX; - cameraRotY = cameraRotY-mouseSpeedY; + else { + cameraRotZ = cameraRotZ - mouseSpeedX; + cameraRotY = cameraRotY - mouseSpeedY; cancelReturnToRestRotation(); } - cameraRotY = Math.max(cameraRotY,-Math.PI/2+0.01); + cameraRotY = Math.max(cameraRotY, -Math.PI / 2 + 0.01); if (GetEntityType(target) != ENTITYTYPE_PED) - cameraRotY = Math.min(cameraRotY,Math.PI/8.5);//2019 Lucas was here! + cameraRotY = Math.min(cameraRotY, Math.PI / 8.5);//2019 Lucas was here! else - cameraRotY = Math.min(cameraRotY,Math.PI/4); + cameraRotY = Math.min(cameraRotY, Math.PI / 4); let camera = GetCamera(); let targetMatrix = GetPlaceableMatrix(target); let [distance, zIncrease, offsetX, offsetY, offsetZ] = getCameraOffsetInfo(target); let offsetTranslationMatrix = createTranslationMatrix(offsetX, offsetY, offsetZ); - targetMatrix = createMultipliedMatrix(offsetTranslationMatrix,targetMatrix); + targetMatrix = createMultipliedMatrix(offsetTranslationMatrix, targetMatrix); let targetPosX, targetPosY, targetPosZ; if (isRelativeToTarget(target)) - [targetPosX, targetPosY, targetPosZ] = [0,0,0]; + [targetPosX, targetPosY, targetPosZ] = [0, 0, 0]; else - [targetPosX, targetPosY, targetPosZ] = [targetMatrix.m41,targetMatrix.m42,targetMatrix.m43]; - let distanceTranslationMatrix = createTranslationMatrix(0,-distance,0); - targetPosZ = targetPosZ+zIncrease; + [targetPosX, targetPosY, targetPosZ] = [targetMatrix.m41, targetMatrix.m42, targetMatrix.m43]; + let distanceTranslationMatrix = createTranslationMatrix(0, -distance, 0); + targetPosZ = targetPosZ + zIncrease; let targetTranslationMatrix = createTranslationMatrix(targetPosX, targetPosY, targetPosZ); let offsetRotationX = createXRotationMatrix(cameraRotY); let offsetRotationZ = createZRotationMatrix(cameraRotZ); - let cameraMatrix = createMultipliedMatrix(cameraIdentityMatrix,distanceTranslationMatrix,offsetRotationX,offsetRotationZ,targetTranslationMatrix); - if (isRelativeToTarget(target)) - { - cameraMatrix = createMultipliedMatrix(cameraMatrix,targetMatrix); - targetTranslationMatrix = createMultipliedMatrix(targetTranslationMatrix,targetMatrix); + let cameraMatrix = createMultipliedMatrix(cameraIdentityMatrix, distanceTranslationMatrix, offsetRotationX, offsetRotationZ, targetTranslationMatrix); + if (isRelativeToTarget(target)) { + cameraMatrix = createMultipliedMatrix(cameraMatrix, targetMatrix); + targetTranslationMatrix = createMultipliedMatrix(targetTranslationMatrix, targetMatrix); } - if (isClipped(target)) - { + if (isClipped(target)) { let startX = targetTranslationMatrix.m41; let startY = targetTranslationMatrix.m42; let startZ = targetTranslationMatrix.m43; @@ -603,17 +541,16 @@ function update() let ignoreSomeObjectsForCamera = true; let collisionsEnabled = AreEntityCollisionsEnabled(target); if (collisionsEnabled) - SetEntityCollisionsEnabled(target,false); - let [positionX,positionY,positionZ,normalX,normalY,normalZ,targetEntity] = ProcessLineOfSight(startX,startY,startZ,endX,endY,endZ,checkBuildings,checkVehicles,checkPeds,checkObjects,checkDummies,checkSeeThroughStuff,ignoreSomeObjectsForCamera); + SetEntityCollisionsEnabled(target, false); + let [positionX, positionY, positionZ, normalX, normalY, normalZ, targetEntity] = ProcessLineOfSight(startX, startY, startZ, endX, endY, endZ, checkBuildings, checkVehicles, checkPeds, checkObjects, checkDummies, checkSeeThroughStuff, ignoreSomeObjectsForCamera); if (collisionsEnabled) - SetEntityCollisionsEnabled(target,true); - if (positionX != null) - { + SetEntityCollisionsEnabled(target, true); + if (positionX != null) { //2019 Lucas was here! let Distance = 0.3; - positionX += normalX*Distance; - positionY += normalY*Distance; - positionZ += normalZ*Distance; + positionX += normalX * Distance; + positionY += normalY * Distance; + positionZ += normalZ * Distance; cameraMatrix.m41 = positionX; cameraMatrix.m42 = positionY; @@ -622,7 +559,7 @@ function update() } if (isCameraEasing()) cameraMatrix = applyCameraEase(cameraMatrix); - SetPlaceableMatrix(camera,cameraMatrix); + SetPlaceableMatrix(camera, cameraMatrix); UpdateCamera(camera); } oldCameraTarget = target; @@ -630,9 +567,8 @@ function update() return target != null; } -addEventHandler("OnCameraProcess", (event) => -{ - if(mouseCameraEnabled) { +addEventHandler("OnCameraProcess", (event) => { + if (mouseCameraEnabled) { update(); event.preventDefault(); }