75 lines
4.6 KiB
Lua
75 lines
4.6 KiB
Lua
WireToolSetup.setCategory( "Vehicle Control", "Visuals" )
|
|
WireToolSetup.open( "cam", "Cam Controller", "gmod_wire_cameracontroller", nil, "Cam Controllers" )
|
|
|
|
if ( CLIENT ) then
|
|
language.Add( "Tool.wire_cam.name", "Cam Controller Tool (Wire)" )
|
|
language.Add( "Tool.wire_cam.desc", "Spawns a constant Cam Controller prop for use with the wire system." )
|
|
language.Add( "Tool.wire_cam.parentlocal", "Coordinates local to parent" )
|
|
language.Add( "Tool.wire_cam.freemove", "Free movement" )
|
|
language.Add( "Tool.wire_cam.automove", "Client side movement" )
|
|
language.Add( "Tool.wire_cam.localmove", "Localized movement" )
|
|
language.Add( "Tool.wire_cam.allowzoom", "Client side zooming" )
|
|
language.Add( "Tool.wire_cam.autounclip", "Auto un-clip" )
|
|
language.Add( "Tool.wire_cam.autounclip_ignorewater", "Auto un-clip ignores water" )
|
|
language.Add( "Tool.wire_cam.drawplayer", "Draw player" )
|
|
language.Add( "Tool.wire_cam.drawparent", "Draw parent" )
|
|
language.Add( "Tool.wire_cam.smooth_amount", "Smooth speed (default: 18)" )
|
|
|
|
WireToolSetup.setToolMenuIcon( "icon16/camera.png" )
|
|
end
|
|
WireToolSetup.BaseLang()
|
|
WireToolSetup.SetupMax( 20 )
|
|
|
|
if SERVER then
|
|
function TOOL:GetConVars()
|
|
return self:GetClientNumber( "parentlocal" ),
|
|
self:GetClientNumber( "automove" ),
|
|
self:GetClientNumber( "freemove" ),
|
|
self:GetClientNumber( "localmove" ),
|
|
self:GetClientNumber( "allowzoom" ),
|
|
self:GetClientNumber( "autounclip" ),
|
|
self:GetClientNumber( "drawplayer" ),
|
|
self:GetClientNumber( "autounclip_ignorewater" ),
|
|
self:GetClientNumber( "drawparent" )
|
|
end
|
|
end
|
|
|
|
TOOL.ClientConVar[ "model" ] = "models/jaanus/wiretool/wiretool_siren.mdl"
|
|
TOOL.ClientConVar[ "parentlocal" ] = "0"
|
|
TOOL.ClientConVar[ "automove" ] = "0"
|
|
TOOL.ClientConVar[ "freemove" ] = "0"
|
|
TOOL.ClientConVar[ "localmove" ] = "0"
|
|
TOOL.ClientConVar[ "allowzoom" ] = "0"
|
|
TOOL.ClientConVar[ "autounclip" ] = "0"
|
|
TOOL.ClientConVar[ "autounclip_ignorewater" ] = "0"
|
|
TOOL.ClientConVar[ "drawplayer" ] = "1"
|
|
TOOL.ClientConVar[ "drawparent" ] = "1"
|
|
TOOL.ClientConVar[ "smooth_amount" ] = "18"
|
|
|
|
WireToolSetup.SetupLinking(false, "pod")
|
|
|
|
function TOOL.BuildCPanel(panel)
|
|
WireDermaExts.ModelSelect(panel, "wire_cam_model", list.Get( "Wire_Misc_Tools_Models" ), 1)
|
|
panel:CheckBox("#Tool.wire_cam.parentlocal", "wire_cam_parentlocal" )
|
|
panel:CheckBox("#Tool.wire_cam.automove", "wire_cam_automove" )
|
|
panel:Help( "Allow the player to rotate the camera using their mouse. When active, the position input becomes the center of the camera's orbit." )
|
|
panel:CheckBox("#Tool.wire_cam.freemove", "wire_cam_freemove" )
|
|
panel:Help( "Modifies mouse input to allow 360 degree rotation. The 'UnRoll' input can be toggled to match the parent entity's roll. (NOTE: only used if 'client side movement' is enabled)" )
|
|
panel:CheckBox("#Tool.wire_cam.localmove", "wire_cam_localmove" )
|
|
panel:Help( "Determines whether the client side movement is local to the parent or not (NOTE: only used if 'client side movement' is enabled)" )
|
|
panel:CheckBox("#Tool.wire_cam.allowzoom", "wire_cam_allowzoom" )
|
|
panel:Help( "Allow the player to move the camera in and out using the scroller on their mouse. The 'Distance' input is used as an offset for this. (NOTE: only used if 'client side movement' is enabled. NOTE: The cam controller's outputs might be wrong when this is enabled, because the server doesn't know how much they've zoomed - it only knows what the 'Distance' input is set to)." )
|
|
panel:CheckBox("#Tool.wire_cam.autounclip", "wire_cam_autounclip" )
|
|
panel:Help( "Automatically prevents the camera from clipping into walls by moving it closer to the parent entity (or cam controller if no parent is specified)." )
|
|
panel:CheckBox("#Tool.wire_cam.autounclip_ignorewater", "wire_cam_autounclip_ignorewater" )
|
|
|
|
panel:CheckBox("#Tool.wire_cam.drawplayer", "wire_cam_drawplayer" )
|
|
panel:Help( "Enable/disable the player being able to see themselves. Useful if you want to position the camera inside the player's head." )
|
|
panel:CheckBox("#Tool.wire_cam.drawparent", "wire_cam_drawparent" )
|
|
panel:Help( "Enable/disable the rendering of the parent entity. Useful if you want to position the camera inside the parent." )
|
|
|
|
panel:Help( "As you may have noticed, there are a lot of behaviours that change depending on which checkboxes are checked. For a detailed walk-through of everything, go to http://wiki.wiremod.com/wiki/Cam_Controller")
|
|
|
|
panel:NumSlider( "#Tool.wire_cam.smooth_amount", "wire_cam_smooth_amount", 4, 30, 1 )
|
|
panel:Help( "Smooth speed is a client side setting, and is not saved on the cam controller entity. Changing it will immediately affect all cam controllers you use." )
|
|
end
|