Skip to content

Commit

Permalink
Merge pull request #2051 from thegrb93/lever-clientside-activation
Browse files Browse the repository at this point in the history
Distance checks and make lever girthier
  • Loading branch information
Nebual authored May 8, 2020
2 parents 9fe6b13 + ee793ef commit 781e362
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions lua/entities/gmod_wire_lever.lua
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,21 @@ if CLIENT then

local isClicking = LocalPlayer():KeyDown(IN_USE) or LocalPlayer():KeyDown(IN_ATTACK)
if isClicking and not self.wasClicking and IsValid(self.csmodel) then
local rayPos = util.IntersectRayWithOBB(
LocalPlayer():GetShootPos(),
LocalPlayer():GetEyeTrace().Normal * 75,
self.csmodel:GetPos(),
self.csmodel:GetAngles(),
self.csmodel:OBBMins(),
self.csmodel:OBBMaxs()
)
if rayPos then
net.Start("wire_lever_activate")
net.WriteEntity(self)
net.SendToServer()
local aimPos = LocalPlayer():GetShootPos()
if aimPos:DistToSqr(self:GetPos())<100^2 then
local rayPos = util.IntersectRayWithOBB(
aimPos,
LocalPlayer():GetAimVector() * 100,
self.csmodel:GetPos(),
self.csmodel:GetAngles(),
self.csmodel:OBBMins() - Vector(2,2,2),
self.csmodel:OBBMaxs() + Vector(2,2,2)
)
if rayPos then
net.Start("wire_lever_activate")
net.WriteEntity(self)
net.SendToServer()
end
end
end
self.wasClicking = isClicking
Expand Down Expand Up @@ -123,7 +126,7 @@ else
if not IsValid(ply) or not IsValid(ent) or not ent.Use or ent:GetClass() ~= "gmod_wire_lever" then return end
if IsValid(ent.User) then return end

if ply:GetShootPos():Distance(ent:GetPos()) < 100 then
if ply:GetShootPos():DistToSqr(ent:GetPos()) < 100^2 then
ent:Use(ply, ply, USE_ON, 1)
end
end)
Expand All @@ -133,8 +136,7 @@ else

if IsValid(self.User) then
local shootPos = self.User:GetShootPos()
local distSqr = shootPos:DistToSqr(self:GetPos())
if distSqr < 160^2 and (self.User:KeyDown(IN_USE) or self.User:KeyDown(IN_ATTACK)) then
if shootPos:DistToSqr(self:GetPos()) < 100^2 and (self.User:KeyDown(IN_USE) or self.User:KeyDown(IN_ATTACK)) then
local shootDir = self.User:GetAimVector()
self:CalcAngle(shootPos, shootDir)
else
Expand Down

0 comments on commit 781e362

Please sign in to comment.