Files
wnsrc/gamemodes/sandbox/entities/weapons/gmod_tool/stools/leafblower.lua
lifestorm df294d03aa Upload
2024-08-04 23:54:45 +03:00

48 lines
1.3 KiB
Lua

--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
TOOL.AddToMenu = false
--
-- This tool is the most important aspect of Garry's Mod
--
TOOL.LeftClickAutomatic = true
function TOOL:LeftClick( trace )
if ( CLIENT ) then return end
util.PrecacheSound( "ambient/wind/wind_hit2.wav" )
self:GetOwner():EmitSound( "ambient/wind/wind_hit2.wav" )
if ( IsValid( trace.Entity ) and IsValid( trace.Entity:GetPhysicsObject() ) ) then
local phys = trace.Entity:GetPhysicsObject() -- The physics object
local direction = trace.StartPos - trace.HitPos -- The direction of the force
local force = 32 -- The ideal amount of force
local distance = direction:Length() -- The distance the phys object is from the gun
local maxdistance = 512 -- The max distance the gun should reach
-- Lessen the force from a distance
local ratio = math.Clamp( 1 - ( distance / maxdistance ), 0, 1 )
-- Set up the 'real' force and the offset of the force
local vForce = -direction * ( force * ratio )
local vOffset = trace.HitPos
-- Apply it!
phys:ApplyForceOffset( vForce, vOffset )
end
end