|
|
|
-- __ _ _______ _ __
|
|
|
|
-- / / /\ | | |__ __| | | \ \
|
|
|
|
-- / / / \ | |_ __ ___ | | ___ ___| |__ \ \
|
|
|
|
-- < < / /\ \ | | '_ ` _ \| |/ _ \/ __| '_ \ > >
|
|
|
|
-- \ \ / ____ \| | | | | | | | __/ (__| | | | / /
|
|
|
|
-- \_\ /_/ \_\_|_| |_| |_|_|\___|\___|_| |_| /_/
|
|
|
|
AddCSLuaFile()
|
|
|
|
|
|
|
|
if CLIENT then
|
|
|
|
SWEP.PrintName = "Hands"
|
|
|
|
SWEP.Slot = 0
|
|
|
|
SWEP.SlotPos = 0
|
|
|
|
SWEP.DrawAmmo = false
|
|
|
|
SWEP.DrawCrosshair = false
|
|
|
|
|
|
|
|
local devmode = GetConVar( "developer" )
|
|
|
|
function SWEP:DrawHUD()
|
|
|
|
if( devmode:GetBool() == true && !Quantum.Client.IsInMenu ) then
|
|
|
|
surface.SetTextPos( 10, 150 )
|
|
|
|
surface.SetTextColor( Color( 200, 200, 200, 200 ) )
|
|
|
|
surface.SetFont( "Default" )
|
|
|
|
surface.DrawText( "Developer Mode" )
|
|
|
|
|
|
|
|
surface.SetTextPos( 10, 165 )
|
|
|
|
surface.DrawText( "Hitpos: " .. tostring( self:GetOwner():GetEyeTrace().HitPos ) )
|
|
|
|
|
|
|
|
surface.SetTextPos( 10, 180 )
|
|
|
|
surface.DrawText( "Angle: " .. tostring( self:GetOwner():GetAngles() ) )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
local cubeMat = Material( "vgui/white" )
|
|
|
|
|
|
|
|
hook.Add( "PostDrawOpaqueRenderables", "Quantum_Client_DeveloperHands_HitPos", function()
|
|
|
|
if( devmode:GetBool() == true && !Quantum.Client.IsInMenu ) then
|
|
|
|
if( IsValid( LocalPlayer():GetActiveWeapon() ) ) then
|
|
|
|
if( LocalPlayer():GetActiveWeapon():GetClass() == "quantum_hands" ) then
|
|
|
|
local trace = LocalPlayer():GetEyeTrace()
|
|
|
|
local angle = trace.HitNormal:Angle()
|
|
|
|
|
|
|
|
render.SetMaterial( cubeMat )
|
|
|
|
render.DrawBox( trace.HitPos, Angle( 0, 0, 0), Vector( 0, 0, 0 ), Vector( 2, 2, 2 ), Color( 255, 25, 25, 100 ) )
|
|
|
|
|
|
|
|
render.DrawLine( trace.HitPos, trace.HitPos + 12 * angle:Forward(), Color( 255, 0, 0 ), true )
|
|
|
|
render.DrawLine( trace.HitPos, trace.HitPos + 12 * -angle:Right(), Color( 0, 255, 0 ), true )
|
|
|
|
render.DrawLine( trace.HitPos, trace.HitPos + 12 * angle:Up(), Color( 0, 0, 255 ), true )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
|
|
|
|
SWEP.WorldModel = ""
|
|
|
|
SWEP.UseHands = true
|
|
|
|
|
|
|
|
SWEP.Primary.ClipSize = -1
|
|
|
|
SWEP.Primary.DefaultClip = 0
|
|
|
|
SWEP.Primary.Automatic = false
|
|
|
|
SWEP.Primary.Ammo = ""
|
|
|
|
SWEP.Primary.Delay = 0.25
|
|
|
|
|
|
|
|
SWEP.Secondary.ClipSize = -1
|
|
|
|
SWEP.Secondary.DefaultClip = 0
|
|
|
|
SWEP.Secondary.Automatic = false
|
|
|
|
SWEP.Secondary.Ammo = ""
|
|
|
|
SWEP.Secondary.Delay = 0.75
|
|
|
|
|
|
|
|
function SWEP:Initialize()
|
|
|
|
self:SetHoldType( "normal" )
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:Deploy()
|
|
|
|
if( CLIENT || !IsValid(self:GetOwner()) ) then return true end
|
|
|
|
self:GetOwner():DrawWorldModel( false )
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:Holster()
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:PreDrawViewModel()
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
|
|
|
|
local function translateVector( pre, vec )
|
|
|
|
return pre .. "( " .. tostring(vec.x) .. ", " .. tostring(vec.y) .. ", " .. tostring(vec.z) .. " )"
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:PrimaryAttack()
|
|
|
|
if SERVER then
|
|
|
|
local ent = self:GetOwner():GetEyeTraceNoCursor().Entity
|
|
|
|
if( IsValid( ent ) && ent:GetPos():Distance( self:GetOwner():GetPos() ) < 100 ) then
|
|
|
|
if ( ent:IsPlayerHolding() ) then return end
|
|
|
|
self:GetOwner():PickupObject( ent )
|
|
|
|
end
|
|
|
|
else
|
|
|
|
local devmode = GetConVar( "developer" )
|
|
|
|
if( devmode:GetBool() == true ) then
|
|
|
|
LocalPlayer():ChatPrint( "Check console for output.\n" )
|
|
|
|
Quantum.Debug( "--Hitpos Data--" )
|
|
|
|
print( translateVector( "Vector", LocalPlayer():GetEyeTrace().HitPos ) )
|
|
|
|
print( translateVector( "Angle", LocalPlayer():GetAngles() ) )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:SecondaryAttack()
|
|
|
|
|
|
|
|
if SERVER then
|
|
|
|
local hitposEnt = self:GetOwner():GetEyeTraceNoCursor().Entity
|
|
|
|
if( Quantum.Server.DoorClasses[hitposEnt:GetClass()] && IsValid(hitposEnt) ) then -- if it is a door
|
|
|
|
if( hitposEnt:GetPos():Distance(self:GetOwner():GetPos()) <= 90 ) then
|
|
|
|
Quantum.Server.Property.PlayerSwitchLock( self:GetOwner(), hitposEnt ) -- then try to unlock/lock it
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if CLIENT then
|
|
|
|
local devmode = GetConVar( "developer" )
|
|
|
|
if( devmode:GetBool() == true ) then
|
|
|
|
LocalPlayer():ChatPrint( "Check console for output.\n" )
|
|
|
|
Quantum.Debug( "--Camera Data--" )
|
|
|
|
print( translateVector( "Vector", LocalPlayer():GetBonePosition( LocalPlayer():LookupBone( "ValveBiped.Bip01_Head1" ) ) ) )
|
|
|
|
print( translateVector( "Angle", LocalPlayer():GetAngles() ) )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
function SWEP:Reload()
|
|
|
|
return false
|
|
|
|
end
|