diff options
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua')
-rw-r--r-- | Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua b/Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua new file mode 100644 index 0000000..c853921 --- /dev/null +++ b/Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua @@ -0,0 +1,102 @@ +local spbt = {} +buttons = require("ui/buttons") + +local default_settings = { + text = { size = 10, font = 'Lucida Console',}, + bg = { alpha = 200, red = 0, green = 100, blue = 100, visible = false }, +} + +function spbt.new(label, spell, cost, x, y) + local me = { spell = spell, cost = cost} + me.settings = default_settings + me.settings.pos = { x = x, y = y } + me.set = {red = 100, green = 255, blue = 100 } + me.disabled = true + me.button = buttons.new(label, me.settings) + me.button.left_click = function() toggle_spell(me) end + me.button.hover_on = function() hover_on(me) end + me.button.hover_off = function() hover_off(me) end + return setmetatable(me, {__index = spbt}) +end + +function spbt.update(me) + if setspells[me.spell] ~= nil then + me.button.color(me.set.red, me.set.green, me.set.blue) + me.disabled = false + elseif not setspells.learned[me.spell] then + me.button.color(150, 150, 150) + me.disabled = true + elseif setspells.limits.points - setspells.points < me.cost or setspells.slots == setspells.limits.slots then + me.button.color(255, 100, 100) + me.disabled = true + else + me.button.color(255, 255, 255) + me.disabled = false + end +end + +function spbt.show(me) + me.button.show() +end + +function spbt.hide(me) + me.button.hide() +end + +function spbt.destroy(me) + me.button.destroy(me.button) + me = nil +end + +function spbt.pos(me, x, y) + me.button.pos(x, y) +end + +function hover_on(me) + me.button.bg_visible(true) +end + +function hover_off(me) + me.button.bg_visible(false) +end + +function spbt.color(me,r,g,b) + me.button.color(r,g,b) + me.set.red = r + me.set.green = g + me.set.blue = b +end + +function toggle_spell(me) + if not me.disabled then + setspells.toggle(me.spell) + end +end + +return spbt + +--Copyright © 2015, Anissa +--All rights reserved. + +--Redistribution and use in source and binary forms, with or without +--modification, are permitted provided that the following conditions are met: + +-- * Redistributions of source code must retain the above copyright +-- notice, this list of conditions and the following disclaimer. +-- * Redistributions in binary form must reproduce the above copyright +-- notice, this list of conditions and the following disclaimer in the +-- documentation and/or other materials provided with the distribution. +-- * Neither the name of bluGuide nor the +-- names of its contributors may be used to endorse or promote products +-- derived from this software without specific prior written permission. + +--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +--ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +--WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +--DISCLAIMED. IN NO EVENT SHALL ANISSA BE LIABLE FOR ANY +--DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +--(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +--LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +--ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +--(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +--SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file |