mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
51 lines
1.3 KiB
Lua
51 lines
1.3 KiB
Lua
AddCSLuaFile( "cl_init.lua" )
|
|
AddCSLuaFile( "shared.lua" )
|
|
|
|
include( "shared.lua" )
|
|
|
|
SWEP.Weight = 1
|
|
SWEP.PrimAttack = false
|
|
|
|
function SWEP:Initialize()
|
|
end
|
|
function SWEP:Think()
|
|
local tr = util.GetPlayerTrace( self.Owner )
|
|
tr.ignoreworld = true
|
|
tr.filter = function(ent) if (ent:GetClass() == "func_button" or ent:GetClass() == "momentary_rot_button") and not ent:GetName():find("adminlock") then return true end end
|
|
|
|
if self.PrimAttack and IsValid(self.Entity) and self.Entity:GetClass() == "momentary_rot_button" then
|
|
self.Entity:Fire("Use")
|
|
end
|
|
|
|
if self.PrimAttack ~= self.OldPrimAttack then
|
|
local trace = util.TraceLine( tr )
|
|
local rot
|
|
if IsValid(trace.Entity) then
|
|
rot = trace.Entity:GetClass() == "momentary_rot_button"
|
|
end
|
|
if trace.Hit and rot ~= nil and not IsValid(self.Entity) then
|
|
self.Entity = trace.Entity
|
|
if not rot then
|
|
self.Entity:Fire("Press")
|
|
end
|
|
elseif not self.PrimAttack and IsValid(self.Entity) then
|
|
self.Entity = nil
|
|
end
|
|
self.OldPrimAttack = self.PrimAttack
|
|
end
|
|
self.PrimAttack = false
|
|
|
|
local trace = util.TraceLine( tr )
|
|
if not trace.Hit or not IsValid(trace.Entity) then
|
|
self:SetNW2String("Name","")
|
|
self:SetNW2Int("Type",0)
|
|
return
|
|
end
|
|
self:SetNW2Int("Type",1)
|
|
self:SetNW2String("Name",trace.Entity:GetName())
|
|
end
|
|
function SWEP:PrimaryAttack()
|
|
self.PrimAttack = true
|
|
|
|
end
|