mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
171 lines
3.9 KiB
Lua
171 lines
3.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/
|
|
--]]
|
|
|
|
if SAM_LOADED then return end
|
|
|
|
local sam = sam
|
|
local config = sam.config
|
|
|
|
local not_empty = function(s)
|
|
return s and s ~= ""
|
|
end
|
|
|
|
local number_entry = function(setting, config_key, default)
|
|
local entry = setting:Add("SAM.TextEntry")
|
|
entry:SetWide(50)
|
|
entry:SetPlaceholder("")
|
|
entry:SetBackground(Color(34, 34, 34))
|
|
entry:SetNumeric(true)
|
|
entry:DisallowFloats()
|
|
entry:DisallowNegative()
|
|
entry:SetCheck(not_empty)
|
|
entry:SetConfig(config_key, default)
|
|
|
|
return entry
|
|
end
|
|
|
|
config.add_tab("Reports", function(parent)
|
|
local body = parent:Add("SAM.ScrollPanel")
|
|
body:Dock(FILL)
|
|
body:LineMargin(0, 6, 0, 0)
|
|
|
|
local i = 0
|
|
body:GetCanvas():On("OnChildAdded", function(s, child)
|
|
i = i + 1
|
|
child:SetZPos(i)
|
|
|
|
if not body.making_line then
|
|
body:Line()
|
|
end
|
|
end)
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Enable")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local enable = setting:Add("SAM.ToggleButton")
|
|
enable:SetConfig("Reports", true)
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Commands")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local entry = setting:Add("SAM.TextEntry")
|
|
entry:SetWide(200)
|
|
entry:SetNoBar(true)
|
|
entry:SetPlaceholder("")
|
|
entry:SetMultiline(true)
|
|
entry:SetConfig("Reports.Commands")
|
|
entry.no_scale = true
|
|
|
|
function entry:OnValueChange()
|
|
self:SetTall(self:GetNumLines() * (sam.SUI.Scale(16) --[[font size]] + 1) + 1 + 2)
|
|
end
|
|
entry:OnValueChange()
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Max Reports (Number of reports that can show on your screen)")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
number_entry(setting, "Reports.MaxReports", 4)
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Auto Close Time (Time to wait before automatically closing claimed reports)")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local entry = setting:Add("SAM.TextEntry")
|
|
entry:SetWide(70)
|
|
entry:SetNoBar(false)
|
|
entry:SetPlaceholder("")
|
|
entry:SetCheck(function(time)
|
|
time = sam.parse_length(time)
|
|
if not time then
|
|
return false
|
|
end
|
|
end)
|
|
entry:SetConfig("Reports.AutoCloseTime", "10m")
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Always Show (Show the popups even if you are not on duty)")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local enable = setting:Add("SAM.ToggleButton")
|
|
enable:SetConfig("Reports.AlwaysShow", true)
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("On Duty Jobs")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local entry = setting:Add("SAM.TextEntry")
|
|
entry:SetWide(300)
|
|
entry:SetNoBar(true)
|
|
entry:SetPlaceholder("")
|
|
entry:SetMultiline(true)
|
|
entry:SetConfig("Reports.DutyJobs", "")
|
|
entry.no_scale = true
|
|
|
|
function entry:OnValueChange()
|
|
self:SetTall(self:GetNumLines() * (sam.SUI.Scale(16) --[[font size]] + 1) + 1 + 2)
|
|
end
|
|
entry:OnValueChange()
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Position")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
local combo = setting:Add("SAM.ComboBox")
|
|
combo:SetWide(60)
|
|
combo:AddChoice("Left", nil, true)
|
|
combo:AddChoice("Right")
|
|
combo:SetConfig("Reports.Position", "Left")
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("X Padding")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
number_entry(setting, "Reports.XPadding", 5)
|
|
end
|
|
|
|
do
|
|
local setting = body:Add("SAM.LabelPanel")
|
|
setting:Dock(TOP)
|
|
setting:SetLabel("Y Padding")
|
|
setting:DockMargin(8, 6, 8, 0)
|
|
|
|
number_entry(setting, "Reports.YPadding", 5)
|
|
end
|
|
|
|
return body
|
|
end, function()
|
|
return LocalPlayer():HasPermission("manage_config")
|
|
end, 2) |