forked from Simnation/Main
ed
This commit is contained in:
parent
510e3ffcf2
commit
f43cf424cf
305 changed files with 34683 additions and 0 deletions
|
@ -0,0 +1,53 @@
|
|||
Raycast = {}
|
||||
|
||||
--Rework of oxs Raycast system
|
||||
function Raycast.GetForwardVector(rotation)
|
||||
local camRot = rotation or GetFinalRenderedCamRot(2)
|
||||
|
||||
-- Convert each component to radians
|
||||
local rx = math.rad(camRot.x)
|
||||
local ry = math.rad(camRot.y)
|
||||
local rz = math.rad(camRot.z)
|
||||
|
||||
-- Calculate sin and cos for each axis
|
||||
local sx = math.sin(rx)
|
||||
local cx = math.cos(rx)
|
||||
local sy = math.sin(ry)
|
||||
local cy = math.cos(ry)
|
||||
local sz = math.sin(rz)
|
||||
local cz = math.cos(rz)
|
||||
|
||||
-- Create forward vector components
|
||||
local x = -sz * math.abs(cx)
|
||||
local y = cz * math.abs(cx)
|
||||
local z = sx
|
||||
|
||||
return vector3(x, y, z)
|
||||
end
|
||||
|
||||
function Raycast.ToCoords(startCoords, endCoords, flag, ignore)
|
||||
local probe = StartShapeTestLosProbe(startCoords.x, startCoords.y, startCoords.z, endCoords.x, endCoords.y, endCoords.z, flag or 511, PlayerPedId(), ignore or 4)
|
||||
local retval, entity, finalCoords, normals, material = 1, nil, nil, nil, nil
|
||||
|
||||
local timeout = 500
|
||||
while retval == 1 and timeout > 0 do
|
||||
retval, entity, finalCoords, normals, material = GetShapeTestResultIncludingMaterial(probe)
|
||||
timeout = timeout - 1
|
||||
Wait(0)
|
||||
end
|
||||
return retval, entity, finalCoords, normals, material
|
||||
end
|
||||
|
||||
function Raycast.FromCamera(flags, ignore, distance)
|
||||
local coords = GetFinalRenderedCamCoord()
|
||||
distance = distance or 10
|
||||
local destination = coords + Raycast.GetForwardVector() * distance
|
||||
local retval, entity, finalCoords, normals, material = Raycast.ToCoords(coords, destination, flags, ignore)
|
||||
if retval ~= 1 then
|
||||
local newDest = destination - vector3(0, 0, 10)
|
||||
return Raycast.ToCoords(destination, newDest, flags, ignore)
|
||||
end
|
||||
return retval, entity, finalCoords, normals, material
|
||||
end
|
||||
|
||||
return Raycast
|
Loading…
Add table
Add a link
Reference in a new issue