mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
77 lines
4.3 KiB
Lua
77 lines
4.3 KiB
Lua
-- Build admin panel
|
|
local function AdminPanel(panel)
|
|
if not LocalPlayer():IsAdmin() then return end
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.RequireThirdRail"),"metrostroi_train_requirethirdrail")
|
|
end
|
|
-- Build regular client panel
|
|
local function ClientPanel(panel)
|
|
panel:ClearControls()
|
|
panel:SetPadding(0)
|
|
panel:SetSpacing(0)
|
|
panel:Dock( FILL )
|
|
local Lang = vgui.Create("DComboBox")
|
|
Lang:SetValue(Metrostroi.CurrentLanguageTable and Metrostroi.CurrentLanguageTable.lang or Metrostroi.GetPhrase("Panel.Language"))
|
|
Lang:SetColor(color_black)
|
|
for k,v in pairs(Metrostroi.Languages) do
|
|
Lang:AddChoice(v.lang, k)
|
|
end
|
|
Lang.OnSelect = function(Lang,index,value,data)
|
|
Metrostroi.ChoosedLang = data
|
|
RunConsoleCommand("metrostroi_language",Metrostroi.ChoosedLang)
|
|
end
|
|
panel:AddItem(Lang)
|
|
panel:ControlHelp(Metrostroi.GetPhrase("AuthorText"))
|
|
if Metrostroi.HasPhrase("AuthorTextMetadmin") then
|
|
panel:ControlHelp(Metrostroi.GetPhrase("AuthorTextMetadmin"))
|
|
end
|
|
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DrawCams"),"metrostroi_drawcams")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DisableHUD"),"metrostroi_disablehud")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DisableCamAccel"),"metrostroi_disablecamaccel")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DisableHoverText"),"metrostroi_disablehovertext")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DisableHoverTextP"),"metrostroi_disablehovertextpos")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DisableSeatShadows"), "metrostroi_disableseatshadows")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.ScreenshotMode"),"metrostroi_screenshotmode")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.ShadowsHeadlight"),"metrostroi_shadows1")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.RedLights"),"metrostroi_shadows3")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.ShadowsOther"),"metrostroi_shadows2")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.PanelLights"),"metrostroi_shadows4")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.PanelSprites"),"metrostroi_sprites")
|
|
local DRouteNumber = panel:TextEntry(Metrostroi.GetPhrase("Panel.RouteNumber"),"metrostroi_route_number")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.MinimizedShow"),"metrostroi_minimizedshow")
|
|
panel:NumSlider(Metrostroi.GetPhrase("Panel.FOV"),"metrostroi_cabfov",65,100)
|
|
panel:NumSlider(Metrostroi.GetPhrase("Panel.Z"),"metrostroi_cabz",-10,10)
|
|
panel:NumSlider(Metrostroi.GetPhrase("Panel.RenderDistance"),"metrostroi_renderdistance",960,3072)
|
|
panel:NumSlider(Metrostroi.GetPhrase("Panel.RenderSignals"),"metrostroi_signal_distance",6144,16384)
|
|
panel:Button(Metrostroi.GetPhrase("Panel.ReloadClient"),"metrostroi_reload_client",true)
|
|
|
|
function DRouteNumber:OnChange()
|
|
local oldval = self:GetValue()
|
|
local NewValue = ""
|
|
for i = 1,math.min(3,#oldval) do
|
|
NewValue = NewValue..((oldval[i] or ""):upper():match("[%d]+") or "")
|
|
end
|
|
local oldpos = self:GetCaretPos()
|
|
self:SetText(NewValue)
|
|
self:SetCaretPos(math.min(#NewValue,oldpos,3))
|
|
end
|
|
end
|
|
local function ClientAdvanced(panel)
|
|
panel:ClearControls()
|
|
panel:SetPadding(0)
|
|
panel:SetSpacing(0)
|
|
panel:Dock( FILL )
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DrawDebugInfo"),"metrostroi_drawdebug")
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.DrawSignalDebugInfo"),"metrostroi_drawsignaldebug")
|
|
panel:Button(Metrostroi.GetPhrase("Panel.CheckAddons"),"metrostroi_addons_check")
|
|
panel:Button(Metrostroi.GetPhrase("Panel.ReloadLang"),"metrostroi_language_reload",true)
|
|
panel:NumSlider(Metrostroi.GetPhrase("Panel.SoftDraw"),"metrostroi_softdrawmultipier",25,400)
|
|
panel:CheckBox(Metrostroi.GetPhrase("Panel.SoftReloadLang"),"metrostroi_language_softreload")
|
|
end
|
|
|
|
hook.Add("PopulateToolMenu", "Metrostroi cpanel", function()
|
|
spawnmenu.AddToolMenuOption("Utilities", "Metrostroi", "metrostroi_admin_panel", Metrostroi.GetPhrase("Panel.Admin"), "", "", AdminPanel)
|
|
spawnmenu.AddToolMenuOption("Utilities", "Metrostroi", "metrostroi_client_panel", Metrostroi.GetPhrase("Panel.Client"), "", "", ClientPanel)
|
|
spawnmenu.AddToolMenuOption("Utilities", "Metrostroi", "metrostroi_clientadv_panel", Metrostroi.GetPhrase("Panel.ClientAdvanced"), "", "", ClientAdvanced)
|
|
end)
|