Quantcast
--[[
##############################################################################
_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
 ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
        ___\///////////___________\///___________\/////////_____\///////////_#
##############################################################################
S U P E R - V I L L A I N - U I   By: Munglunch                              #
##############################################################################
##########################################################
LOCALIZED LUA FUNCTIONS
##########################################################
]]--
--GLOBAL NAMESPACE
local _G = _G;
--LUA
local unpack        = _G.unpack;
local select        = _G.select;
local assert        = _G.assert;

local AddonName, AddonObject = ...

assert(LibSuperVillain, AddonName .. " requires LibSuperVillain")

AddonObject.defaults = {
	["fontSize"] = 12,
	["farming"] = {
		["buttonsize"] = 35,
		["buttonspacing"] = 3,
		["onlyactive"] = false,
		["droptools"] = true,
		["toolbardirection"] = "HORIZONTAL",
	},
	["fishing"] = {
		["autoequip"] = true,
	},
	["cooking"] = {
		["autoequip"] = true,
	},
}

local PLUGIN = LibSuperVillain("Registry"):NewPlugin(AddonName, AddonObject, "CraftOMatic_Profile", nil, "CraftOMatic_Cache")
local Schema = PLUGIN.Schema;
local SV = _G["SVUI"];
local L = SV.L
--[[
##########################################################
CONFIG OPTIONS
##########################################################
]]--
SV.Options.args.plugins.args.pluginOptions.args[Schema].args["fontSize"] = {
    order = 2,
	name = L["Font Size"],
	desc = L["Set the font size of the log window."],
	type = "range",
	min = 6,
	max = 22,
	step = 1,
    get = function(key) return PLUGIN.db[key[#key]] end,
    set = function(key,value) PLUGIN:ChangeDBVar(value, key[#key]); PLUGIN:UpdateLogWindow() end
}

SV.Options.args.plugins.args.pluginOptions.args[Schema].args["fishing"] = {
    order = 3,
	type = "group",
	name = L["Fishing Mode Settings"],
	guiInline = true,
	args = {
		autoequip = {
			type = "toggle",
			order = 1,
			name = L['AutoEquip'],
			desc = L['Enable/Disable automatically equipping fishing gear.'],
			get = function(key)return PLUGIN.db.fishing[key[#key]] end,
			set = function(key, value)PLUGIN:ChangeDBVar(value, key[#key], "fishing") end
		}
	}
}

SV.Options.args.plugins.args.pluginOptions.args[Schema].args["cooking"] = {
    order = 4,
	type = "group",
	name = L["Cooking Mode Settings"],
	guiInline = true,
	args = {
		autoequip = {
			type = "toggle",
			order = 1,
			name = L['AutoEquip'],
			desc = L['Enable/Disable automatically equipping cooking gear.'],
			get = function(key)return PLUGIN.db.cooking[key[#key]]end,
			set = function(key, value)PLUGIN:ChangeDBVar(value, key[#key], "cooking")end
		}
	}
}

SV.Options.args.plugins.args.pluginOptions.args[Schema].args["farming"] = {
    order = 5,
	type = "group",
	name = L["Farming Mode Settings"],
	guiInline = true,
	get = function(key)return PLUGIN.db.farming[key[#key]]end,
	set = function(key, value)PLUGIN.db.farming[key[#key]] = value end,
	args = {
		buttonsize = {
			type = 'range',
			name = L['Button Size'],
			desc = L['The size of the action buttons.'],
			min = 15,
			max = 60,
			step = 1,
			order = 1,
			set = function(key, value)
				PLUGIN:ChangeDBVar(value, key[#key], "farming");
				PLUGIN:RefreshFarmingTools()
			end,
		},
		buttonspacing = {
			type = 'range',
			name = L['Button Spacing'],
			desc = L['The spacing between buttons.'],
			min = 1,
			max = 10,
			step = 1,
			order = 2,
			set = function(key, value)
				PLUGIN:ChangeDBVar(value, key[#key], "farming");
				PLUGIN:RefreshFarmingTools()
			end,
		},
		onlyactive = {
			order = 3,
			type = 'toggle',
			name = L['Only active buttons'],
			desc = L['Only show the buttons for the seeds, portals, tools you have in your bags.'],
			set = function(key, value)
				PLUGIN:ChangeDBVar(value, key[#key], "farming");
				PLUGIN:RefreshFarmingTools()
			end,
		},
		droptools = {
			order = 4,
			type = 'toggle',
			name = L['Drop '],
			desc = L['Automatically drop tools from your bags when leaving the farming area.'],
		},
		toolbardirection = {
			order = 5,
			type = 'select',
			name = L['Bar Direction'],
			desc = L['The direction of the bar buttons (Horizontal or Vertical).'],
			set = function(key, value)PLUGIN:ChangeDBVar(value, key[#key],"farming"); PLUGIN:RefreshFarmingTools() end,
			values = {
					['VERTICAL'] = L['Vertical'], ['HORIZONTAL'] = L['Horizontal']
			}
		}
	}
}