summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua')
-rw-r--r--Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua131
1 files changed, 131 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua b/Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua
new file mode 100644
index 0000000..7d84543
--- /dev/null
+++ b/Data/BuiltIn/Libraries/lua-addons/addons/DressUp/helper_functions.lua
@@ -0,0 +1,131 @@
+-- Copyright © 2013-2015, Cairthenn
+-- 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 DressUp 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 Cairthenn 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.
+
+function get_item_id(str,slot)
+ local item_result = false
+
+ if str == "none" then
+ return "None"
+ else
+
+ for k,v in pairs(models[slot]) do
+ if v['enl'] == str or v['name'] == str then
+ item_result = k
+ end
+ end
+ if item_result then
+ return tonumber(item_result)
+ else
+ return false
+ end
+ end
+end
+
+function update_model(index)
+ packets.inject(packets.new('outgoing', 0x016, { ['Target Index'] = index }))
+end
+
+function load_profile(name)
+
+ if settings.profiles[windower.ffxi.get_player().name:lower() ..'_'.. name:lower()] then
+ settings[windower.ffxi.get_player().name:lower()]:update(settings.profiles[windower.ffxi.get_player().name:lower() ..'_'.. name:lower()])
+ return true
+ elseif settings.profiles[name:lower()] then
+ settings[windower.ffxi.get_player().name:lower()]:update(settings.profiles[name:lower()])
+ return true
+ end
+
+ return false
+end
+
+function save_profile(name)
+ if not name or name:len() == 0 then
+ error('No profile name was entered.')
+ end
+
+ if not settings.profiles[name:lower()] then settings.profiles[name:lower()] = T{} end
+ settings.profiles[name:lower()]:update(settings[windower.ffxi.get_player().name:lower()])
+ notice('Saved your current settings to the profile: ' .. name)
+end
+
+function blink_logic(blink_type,character_index,player)
+ if settings.blinking["all"]["always"] then
+ return true
+ elseif settings.blinking[blink_type]["always"] then
+ return true
+ end
+
+ if settings.blinking["all"]["combat"] and player.in_combat then
+ return true
+ elseif settings.blinking[blink_type]["combat"] and player.in_combat then
+ return true
+ end
+
+ if settings.blinking["all"]["target"] and player.target_index == character_index then
+ return true
+ elseif settings.blinking[blink_type]["target"] and player.target_index == character_index then
+ return true
+ end
+
+ return false
+end
+
+function print_blink_settings(option)
+ print('DressUp (v'.._addon.version..') Blink Prevention Settings')
+ if option == "global" or option == "all" then
+ print(('All: '):text_color(255,255,255)..table.concat(map(settings.blinking["all"],formatting)," "))
+ end
+ if option == "global" or option == "self" then
+ print(('Self: '):text_color(255,255,255)..table.concat(map(settings.blinking["self"],formatting)," "))
+ end
+ if option == "global" or option == "others" then
+ print(('Others: '):text_color(255,255,255)..table.concat(map(settings.blinking["others"],formatting)," "))
+ end
+ if option == "global" or option == "party" then
+ print(('Party: '):text_color(255,255,255)..table.concat(map(settings.blinking["party"],formatting)," "))
+ end
+ if option == "global" or option == "follow" then
+ print(('Follow: '):text_color(255,255,255)..table.concat(map(settings.blinking["follow"],formatting)," "))
+ end
+end
+
+function map(t, func)
+ local out = {}
+ for k,v in pairs(t) do
+ out[k] = func(k, v)
+ end
+ return out
+end
+
+function formatting(k, v)
+ v = tostring(v):gsub("^%l", string.upper)
+ if windower.wc_match(v,"True") then
+ v = ('T'):text_color(0, 255, 0)
+ else
+ v = 'F'
+ end
+ return k:gsub("^%l", string.upper) ..': ['..v..']'
+end