function makeCMenuPicker()
local c_w, c_h
= ScrW()/2,
ScrH()/2
PickerPanel
= vgui.
Create(
"DPanel", g_ContextMenu)
PickerPanel:
SetSize(120, 120)
PickerPanel:
SetPos( c_w
-60, c_h
-150 )
local color_cube
= vgui.
Create(
"DColorCube", PickerPanel)
color_cube:
Dock(FILL)
color_cube:
DockMargin(15, 15, 15, 0)
PickerPanel.cube
= color_cube
local color_label
= vgui.
Create(
"DLabel", PickerPanel)
color_label:
Dock(BOTTOM)
color_label:
SetContentAlignment(5)
PickerPanel.label
= color_label
end
hook.
Add(
"InitPostEntity",
"create_colorpicker_vgui",
function()
makeCMenuPicker()
end)
local function updateCube()
if !IsValid(PickerPanel)
then return end
hook.
Add(
"PostRender",
"capture_center_pixel",
function()
render.
CapturePixels()
local p_r, p_g, p_b
= render.
ReadPixel(ScrW()/2,
ScrH()/2)
local to_color
= Color(p_r, p_g, p_b)
PickerPanel:
SetBackgroundColor(to_color)
PickerPanel.
cube:SetColor(to_color)
PickerPanel.
label:SetText(tostring(to_color))
local c, b, va
= ColorToHSV(to_color)
if va
> 0.6
then
PickerPanel.
label:SetTextColor(color_black)
end
hook.
Remove(
"PostRender",
"capture_center_pixel")
end)
end
hook.
Add(
"OnContextMenuOpen",
"capture_on_context_open",
function()
updateCube()
end)