diff options
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.lua | 131 |
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 |