Move owner outside of keypad data for non-wire keypads

Now it's handled properly by duplication (this might interest you @jophes)
This commit is contained in:
William Wallace 2017-07-27 13:49:21 +01:00
parent 0ffb2ed22c
commit bec2354f68
3 changed files with 18 additions and 17 deletions

View File

@ -60,28 +60,28 @@ end
function ENT:Process(granted)
self:GetData()
local length, repeats, delay, initdelay, owner, key
local length, repeats, delay, initdelay, key
if(granted) then
self:SetStatus(self.Status_Granted)
length = self.KeypadData.LengthGranted
repeats = math.min(self.KeypadData.RepeatsGranted, 50)
delay = self.KeypadData.DelayGranted
length = self.KeypadData.LengthGranted
repeats = math.min(self.KeypadData.RepeatsGranted, 50)
delay = self.KeypadData.DelayGranted
initdelay = self.KeypadData.InitDelayGranted
owner = self.KeypadData.Owner
key = tonumber(self.KeypadData.KeyGranted) or 0
key = tonumber(self.KeypadData.KeyGranted) or 0
else
self:SetStatus(self.Status_Denied)
length = self.KeypadData.LengthDenied
repeats = math.min(self.KeypadData.RepeatsDenied, 50)
delay = self.KeypadData.DelayDenied
length = self.KeypadData.LengthDenied
repeats = math.min(self.KeypadData.RepeatsDenied, 50)
delay = self.KeypadData.DelayDenied
initdelay = self.KeypadData.InitDelayDenied
owner = self.KeypadData.Owner
key = tonumber(self.KeypadData.KeyDenied) or 0
key = tonumber(self.KeypadData.KeyDenied) or 0
end
local owner = self:GetKeypadOwner()
timer.Simple(math.max(initdelay + length * (repeats + 1) + delay * repeats + 0.25, 2), function() -- 0.25 after last timer
if(IsValid(self)) then
self:Reset()
@ -141,8 +141,7 @@ function ENT:GetData()
KeyGranted = 0,
KeyDenied = 0,
Secure = false,
Owner = NULL
Secure = false
} )
end
@ -157,5 +156,6 @@ end
duplicator.RegisterEntityModifier( "keypad_password_passthrough", function(ply, entity, data)
entity:SetKeypadOwner(ply)
entity:SetData(data)
end)

View File

@ -19,6 +19,7 @@ ENT.Command_Abort = 2
ENT.IsKeypad = true
AccessorFunc(ENT, "m_Password", "Password", FORCE_STRING)
AccessorFunc(ENT, "m_KeypadOwner", "KeypadOwner")
function ENT:Initialize()
self:SetModel(self.Model)
@ -41,6 +42,7 @@ function ENT:Initialize()
self:SetValue("")
self:SetPassword("1337")
self:SetKeypadOwner(NULL)
-- Initialize defaults
self:GetData()

View File

@ -60,11 +60,10 @@ function TOOL:SetupKeypad(ent, pass)
KeyGranted = self:GetClientNumber("key_granted"),
KeyDenied = self:GetClientNumber("key_denied"),
Secure = util.tobool(self:GetClientNumber("secure")),
Owner = self:GetOwner()
Secure = util.tobool(self:GetClientNumber("secure"))
}
ent:SetKeypadOwner(self:GetOwner())
ent:SetData(data)
end
@ -84,7 +83,7 @@ function TOOL:RightClick(tr)
return false
end
if trace_ent:GetData().Owner == ply then
if trace_ent:GetKeypadOwner() == ply then
self:SetupKeypad(trace_ent, password)
return true