summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/lua-addons/addons/bluguide/ui/spellbuttons.lua
diff options
context:
space:
mode:
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.lua102
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