Initial commit
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
include("shared.lua")
|
||||
|
||||
local DrawData = {}
|
||||
local KeypadCheckerHalos
|
||||
|
||||
net.Receive("DarkRP_keypadData", function(len)
|
||||
DrawData = net.ReadTable()
|
||||
hook.Add("PreDrawHalos", "KeypadCheckerHalos", KeypadCheckerHalos)
|
||||
end)
|
||||
|
||||
local lineMat = Material("cable/chain")
|
||||
local textCol = Color(0, 0, 0, 120)
|
||||
local haloCol = Color(0, 255, 0, 255)
|
||||
|
||||
function SWEP:DrawHUD()
|
||||
local screenCenter = ScrH() / 2
|
||||
draw.WordBox(2, 10, screenCenter, DarkRP.getPhrase("keypad_checker_shoot_keypad"), "UiBold", textCol, color_white)
|
||||
draw.WordBox(2, 10, screenCenter + 20, DarkRP.getPhrase("keypad_checker_shoot_entity"), "UiBold", textCol, color_white)
|
||||
draw.WordBox(2, 10, screenCenter + 40, DarkRP.getPhrase("keypad_checker_click_to_clear"), "UiBold", textCol, color_white)
|
||||
|
||||
local eyePos = EyePos()
|
||||
local eyeAngles = EyeAngles()
|
||||
|
||||
local entMessages = {}
|
||||
for k,v in ipairs(DrawData or {}) do
|
||||
if not IsValid(v.ent) or not IsValid(v.original) then continue end
|
||||
entMessages[v.ent] = (entMessages[v.ent] or 0) + 1
|
||||
local obbCenter = v.ent:OBBCenter()
|
||||
local pos = v.ent:LocalToWorld(obbCenter):ToScreen()
|
||||
|
||||
local name = v.name and ": " .. v.name:gsub("onDown", DarkRP.getPhrase("keypad_on")):gsub("onUp", DarkRP.getPhrase("keypad_off")) or ""
|
||||
|
||||
draw.WordBox(2, pos.x, pos.y + entMessages[v.ent] * 16, (v.delay and v.delay .. " " .. DarkRP.getPhrase("seconds") .. " " or "") .. v.type .. name, "UiBold", textCol, color_white)
|
||||
|
||||
cam.Start3D(eyePos, eyeAngles)
|
||||
render.SetMaterial(lineMat)
|
||||
render.DrawBeam(v.original:GetPos(), v.ent:GetPos(), 2, 0.01, 20, haloCol)
|
||||
cam.End3D()
|
||||
end
|
||||
end
|
||||
|
||||
KeypadCheckerHalos = function()
|
||||
local drawEnts = {}
|
||||
local i = 1
|
||||
for k,v in ipairs(DrawData) do
|
||||
if not IsValid(v.ent) then continue end
|
||||
|
||||
drawEnts[i] = v.ent
|
||||
i = i + 1
|
||||
end
|
||||
|
||||
if table.IsEmpty(drawEnts) then return end
|
||||
halo.Add(drawEnts, haloCol, 5, 5, 5, nil, true)
|
||||
end
|
||||
|
||||
function SWEP:SecondaryAttack()
|
||||
DrawData = {}
|
||||
hook.Remove("PreDrawHalos", "KeypadCheckerHalos")
|
||||
end
|
||||
Reference in New Issue
Block a user