2. Settings layout
If you haven't read the previous topic, please read it >>> here <<<
Settings layout
Now the addon is ready to create custom settings, so let's create the file
Layout: settings(root) -> tab -> var -> value
Var types
Currently supporting "bool" "numslider" "float" types
Basic methods
:SetName("name here")
:SetDesc("description here")
:SetNameTranslateKey("translate key for name here") - force addon to use translation from language file
:SetNameTranslateKey("translate key for description here") - force addon to use translation from language file
Settings file example
Create file ehud/lua/ehud/config/config.lua
with content:
local settings = esclib:InitSettings("ehud")--Create settings instance in "ehud" addon
--tab creating
local tab = settings:AddTab("modules") --uid
tab:SetNameTranslateKey("tab_modules") --key in language file. You can use :SetName("any name without translation here")
tab:SetPosition(1) --postion (optional)
--adding vars
-- AddVar(uid,type)
local var = tab:AddVar("module_hud_leftbot", "bool")
var:SetNameTranslateKey("s_mainhud_name") --key in language file
var:SetValue(true) -- default value
--var with custom check
local var = tab:AddVar("module_fpp", "bool")
var:SetNameTranslateKey("s_fpp_name")
var:SetDescTranslateKey("s_fpp_desc")
var:SetValue(true)
var:CustomCheck(function(self,addon)
return DarkRP ~= nil
end)
--New tab creating
local tab = settings:AddTab("general")
tab:SetNameTranslateKey("tab_general")
tab:SetPosition(2)
--Different type
local var = tab:AddVar("animtime", "numslider")
var:SetNameTranslateKey("s_animspeed_name")
var:SetValue(ehud.config.AnimationSpeed)
var:SetMin(0.01)
var:SetMax(3)
var:SetDecimals(2)
var:SetStep(0.1)
--Blur
local var = tab:AddVar("paintblur", "bool")
var:SetNameTranslateKey("s_blur_name")
var:SetDescTranslateKey("s_blur_desc")
var:SetValue(ehud.config.DrawBackgroundBlur)
-- perform settings, load from file, save if not exists
settings:End()
Using example:
print(ehud.addon:GetVar("module_fpp")) --will print true, if not changed