Skip to content

Instantly share code, notes, and snippets.

@JamesxX
Created June 4, 2015 02:08
Show Gist options
  • Save JamesxX/079c7bb517ec1212b455 to your computer and use it in GitHub Desktop.
Save JamesxX/079c7bb517ec1212b455 to your computer and use it in GitHub Desktop.
Unfinished CameraControler library
if ( CLIENT ) then
if ( CameraControler ) then return end
CameraControler = {}
CameraControler.Cameras = {}
CameraControler.Selected = 0
function CameraControler.SelectCamera( cameraID )
if ( CameraControler.CameraExists( cameraID ) ) then
CameraControler.Selected = cameraID
return CameraControler.GetSelectedCamera( )
end
return false
end
function CameraControler.GetSelectedCamera( )
return CameraControler.GetCamera( CameraControler.Selected ) or false
end
function CameraControler.CameraExists( cameraID )
return CameraControler.GetCamera( cameraID ) and true or false
end
function CameraControler.GetCamera( cameraID )
return CameraControler.Cameras[ cameraID ] or false
end
function CameraControler.AddCamera( cameraID, cameraObject )
CameraControler.Cameras[ cameraID ] = cameraObject
end
function CameraControler.DestroyCamera( cameraID )
CameraControler.Cameras[ cameraID ] = nil
end
function CameraControler.CalcView( Pl, vPosition, aAngles, fFOV, nearZ, farZ )
local Camera = CameraControler.GetSelectedCamera( )
if ( Camera ) then
local view = {}
view.origin = Camera.GetPosition and Camera:GetPosition( Pl, vPosition, aAngles, fFOV ) or vPosition
view.angles = Camera.GetAngles and Camera:GetAngles( Pl, vPosition, aAngles, fFOV ) or aAngles
view.fov = Camera.GetFieldOfView and Camera:GetFieldOfView( Pl, vPosition, aAngles, fFOV ) oe fFOV
view.DrawViewer = Camera.ShouldDrawPlayer and Camera:ShouldDrawPlayer( Pl, vPosition, aAngles, fFOV ) or false
view.znear = Camera.GetZNear and Camera:GetZNear( Pl, vPosition, aAngles, fFOV ) or nearZ
view.zfar = Camera.GetZFar and Camera:GetZFar( Pl, vPosition, aAngles, fFOV ) or farZ
return view
end
end
hook.Add( "CalcView", "CameraControler.CalcView", CameraControler.CalcView )
else
--[[
function CameraControler.SetupVisibility( )
local Camera = CameraControler.GetSelectedCamera( )
if ( Camera and Camera.SetupVisibility ) then
local origin = Camera.SetupVisibility( )
if ( origin ) then
AddOriginToPVS( origin )
end
end
end
]]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment