Files
wnsrc/lua/menu/motionsensor.lua
lifestorm 94063e4369 Upload
2024-08-04 22:55:00 +03:00

69 lines
1.9 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/
--]]
local sensor_color_show = CreateConVar( "sensor_color_show", "0", FCVAR_DONTRECORD )
local sensor_color_scale = CreateConVar( "sensor_color_scale", "0.5", FCVAR_ARCHIVE + FCVAR_DONTRECORD )
local sensor_color_x = CreateConVar( "sensor_color_x", "32", FCVAR_ARCHIVE + FCVAR_DONTRECORD )
local sensor_color_y = CreateConVar( "sensor_color_y", "-32", FCVAR_ARCHIVE + FCVAR_DONTRECORD )
local function DrawColorBox()
if ( !sensor_color_show:GetBool() ) then return end
local mat = motionsensor.GetColourMaterial()
if ( !mat ) then return end
local size = sensor_color_scale:GetFloat()
local w = 640 * size
local h = 480 * size
local x = sensor_color_x:GetInt()
if ( x < 0 ) then
x = x * -1
x = ScrW() - x - w
end
local y = sensor_color_y:GetInt()
if ( y < 0 ) then
y = y * -1
y = ScrH() - y - h
end
local alpha = 255
--
-- fade the box down if we get close, so we can click on stuff that's under it.
--
if ( vgui.CursorVisible() ) then
local mx, my = input.GetCursorPos()
local dist = Vector( mx, my, 0 ):Distance( Vector( x + w * 0.5, y + h * 0.5, 0 ) )
alpha = math.Clamp( alpha - ( 512 - dist ), 10, 255 )
end
surface.SetDrawColor( 0, 0, 0, alpha )
surface.DrawRect( x - 3, y - 3, 3, h + 6 )
surface.DrawRect( w + x, y - 3, 3, h + 6 )
surface.DrawRect( x, y - 3, w, 3 )
surface.DrawRect( x, y + h, w, 3 )
surface.SetDrawColor( 255, 255, 255, alpha )
surface.DrawRect( x - 1, y - 1, 1, h + 2 )
surface.DrawRect( w + x, y - 1, 1, h + 2 )
surface.DrawRect( x, y - 1, w, 1 )
surface.DrawRect( x, y + h, w, 1 )
surface.SetMaterial( mat )
surface.DrawTexturedRectUV( x, y, w, h, 640 / 1024, 0, 0, 480 / 512 )
end
hook.Add( "DrawOverlay", "DrawMotionSensor", DrawColorBox )