--[[ | 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/ --]] module( "presets", package.seeall ) -- TODO: A function to check/replace invalid characters for filenames! local Presets = LoadPresets() function GetTable( presetname ) if ( !presetname ) then return end presetname = presetname:Trim() if ( presetname == "" ) then return end Presets[ presetname ] = Presets[ presetname ] or {} return Presets[ presetname ] end function Exists( presetname, strName ) if ( !presetname || !strName ) then return false end presetname = presetname:Trim() strName = strName:Trim() if ( presetname == "" || strName == "" ) then return false end if ( !Presets[ presetname ] || !Presets[ presetname ][ strName ] ) then return false end return true end function Add( presetname, strName, pTable ) if ( !presetname || !strName ) then return end presetname = presetname:Trim() strName = strName:Trim() if ( presetname == "" || strName == "" ) then return end Presets[ presetname ] = Presets[ presetname ] or {} Presets[ presetname ][ strName ] = pTable -- Only save the specific preset group, not ALL of them SavePresets( { [ presetname ] = Presets[ presetname ] } ) end function Rename( presetname, strName, strToName ) if ( !presetname || !strName || !strToName || strName == strToName ) then return end presetname = presetname:Trim() strName = strName:Trim() strToName = strToName:Trim() if ( presetname == "" || strName == "" || strToName == "" || strName == strToName ) then return end Presets[ presetname ] = Presets[ presetname ] or {} Presets[ presetname ][ strToName ] = Presets[ presetname ][ strName ] Presets[ presetname ][ strName ] = nil -- Only save the specific preset group, not ALL of them SavePresets( { [ presetname ] = Presets[ presetname ] } ) end function Remove( presetname, strName ) if ( !presetname || !strName ) then return end presetname = presetname:Trim() strName = strName:Trim() if ( presetname == "" || strName == "" ) then return end Presets[ presetname ] = Presets[ presetname ] or {} Presets[ presetname ][ strName ] = nil -- Only save the specific preset group, not ALL of them SavePresets( { [ presetname ] = Presets[ presetname ] } ) end -- Internal helper functions to not copypaste same code function BadNameAlert() Derma_Message( "#preset.badname_desc", "#preset.badname_title", "#preset.okay" ) end function OverwritePresetPrompt( func ) Derma_Query( "#preset.exists_desc", "#preset.exists_title", "#preset.overwrite", func, "#preset.cancel" ) end