lotrointerface.com
Search Downloads

LoTROInterface SVN KragenBars

[/] [trunk/] [KragenPlugs/] [KragenBars/] [Main.lua] - Blame information for rev 19

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 Kragenwar-3044
import "Turbine.UI";
2 Kragenwar-3044
import "Turbine.UI.Lotro";
3 Kragenwar-3044
import "KragenPlugs.Utils";
4 Kragenwar-3044
import "KragenPlugs.KragenBars";
5 Kragenwar-3044
 
6 Kragenwar-3044
-- load settings file
7 Kragenwar-3044
function LoadSettings()
8 19 Kragenwar-3044
        settings = DecodeTable(Turbine.PluginData.Load( Turbine.DataScope.Character, "KragenBarsSettings" ));
9 6 Kragenwar-3044
 
10 Kragenwar-3044
        -- Set main version number
11 Kragenwar-3044
        vars = { };
12 14 Valdacil-446
        vars.vers = 3.10;
13 6 Kragenwar-3044
        vars.player = Turbine.Gameplay.LocalPlayer.GetInstance();
14 Kragenwar-3044
        vars.playerlevel = vars.player:GetLevel();
15 Kragenwar-3044
        vars.effects = vars.player:GetEffects();
16 Kragenwar-3044
        vars.classid = vars.player:GetClass();
17 Kragenwar-3044
        vars.classattr = vars.player:GetClassAttributes();
18 19 Kragenwar-3044
                vars.locale = Turbine.Engine.GetLocale();
19 Kragenwar-3044
                vars.effectlist = nil;
20 6 Kragenwar-3044
 
21 Kragenwar-3044
        -- declare settings as a table and set default opacity
22 Kragenwar-3044
        if ( type( settings ) ~= "table" ) then
23 Kragenwar-3044
                settings = { };
24 Kragenwar-3044
                settings.opacity = 1;
25 Kragenwar-3044
                settings.lockslots = false;
26 Kragenwar-3044
                settings.snaptogrid = true;
27 Kragenwar-3044
        end
28 Kragenwar-3044
 
29 Kragenwar-3044
        -- if version is not declared then wipe settings file and set version number
30 Kragenwar-3044
                -- if version <3.00 (prior versions had string version number) then add required settings
31 19 Kragenwar-3044
        if (settings.vers == nil or type(settings.vers) == "string" or settings.vers < 3.00) then
32 6 Kragenwar-3044
                        settings = nil;
33 Kragenwar-3044
            settings = { };
34 Kragenwar-3044
            settings.vers = vars.vers;
35 Kragenwar-3044
            settings.opacity = 1;
36 Kragenwar-3044
            settings.lockslots = false;
37 Kragenwar-3044
            settings.snaptogrid = true;
38 Kragenwar-3044
            SaveSettings();
39 Kragenwar-3044
                end
40 Kragenwar-3044
 
41 Kragenwar-3044
 
42 Kragenwar-3044
        if (vars.classid == 40) then
43 Kragenwar-3044
            vars.playerclass = "Burglar";
44 Kragenwar-3044
            KragenBars = BurglarBars();
45 Kragenwar-3044
        elseif (vars.classid == 24) then
46 Kragenwar-3044
            vars.playerclass = "Captain";
47 Kragenwar-3044
            KragenBars = CaptainBars();
48 Kragenwar-3044
        elseif (vars.classid == 172) then
49 Kragenwar-3044
            vars.playerclass = "Champion";
50 Kragenwar-3044
            KragenBars = ChampionBars();
51 Kragenwar-3044
        elseif (vars.classid == 23) then
52 Kragenwar-3044
            vars.playerclass = "Guardian";
53 Kragenwar-3044
            KragenBars = GuardianBars();
54 Kragenwar-3044
        elseif (vars.classid == 162) then
55 Kragenwar-3044
            vars.playerclass = "Hunter";
56 Kragenwar-3044
            KragenBars = HunterBars();
57 Kragenwar-3044
        elseif (vars.classid == 185) then
58 Kragenwar-3044
            vars.playerclass = "Loremaster";
59 Kragenwar-3044
            KragenBars = LoreBars();
60 Kragenwar-3044
        elseif (vars.classid == 31) then
61 Kragenwar-3044
            vars.playerclass = "Minstrel";
62 Kragenwar-3044
            KragenBars = MiniBars();
63 Kragenwar-3044
        elseif (vars.classid == 193) then
64 Kragenwar-3044
            vars.playerclass = "Runekeeper";
65 Kragenwar-3044
            KragenBars = RuneBars();
66 Kragenwar-3044
        elseif (vars.classid == 194) then
67 Kragenwar-3044
            vars.playerclass = "Warden";
68 Kragenwar-3044
                        Turbine.Shell.WriteLine("KragenBars: Warden is not currently implemented in KragenBars.  Look for this feature in a future version.");
69 Kragenwar-3044
            -- KragenBars = WardenBars();
70 Kragenwar-3044
        end
71 Kragenwar-3044
 
72 Kragenwar-3044
end
73 Kragenwar-3044
 
74 Kragenwar-3044
-- save to settings file
75 Kragenwar-3044
function SaveSettings()
76 19 Kragenwar-3044
    Turbine.PluginData.Save( Turbine.DataScope.Character, "KragenBarsSettings", EncodeTable(settings) );
77 Kragenwar-3044
        settings = DecodeTable(settings);
78 Kragenwar-3044
end
79 6 Kragenwar-3044
 
80 19 Kragenwar-3044
function EncodeTable(data)
81 Kragenwar-3044
        if (vars.locale ~= "en" and data ~= nil) then
82 Kragenwar-3044
                for k,v in pairs(data) do
83 Kragenwar-3044
                        if (type(data[k]) == "number") then
84 Kragenwar-3044
                                data[k] = ("<num>%f</num>"):format(data[k]);
85 Kragenwar-3044
                        elseif(type(data[k]) == "table") then
86 Kragenwar-3044
                                data[k] = EncodeTable(data[k]);
87 Kragenwar-3044
                        end
88 Kragenwar-3044
                end
89 Kragenwar-3044
        end
90 Kragenwar-3044
        return data;
91 6 Kragenwar-3044
end
92 Kragenwar-3044
 
93 19 Kragenwar-3044
function DecodeTable(data)
94 Kragenwar-3044
        if (data ~= nil) then
95 Kragenwar-3044
                for k,v in pairs(data) do
96 Kragenwar-3044
                        if (type(data[k]) == "string") then
97 Kragenwar-3044
                                local match = data[k]:match("<num>(%d+.%d+)</num>");
98 Kragenwar-3044
                                if (match ~= nil) then
99 Kragenwar-3044
                                        data[k] = tonumber(match);
100 Kragenwar-3044
                                end
101 Kragenwar-3044
                        elseif(type(data[k]) == "table") then
102 Kragenwar-3044
                                data[k] = DecodeTable(data[k]);
103 Kragenwar-3044
                        end
104 Kragenwar-3044
                end
105 Kragenwar-3044
        end
106 Kragenwar-3044
        return data;
107 Kragenwar-3044
end
108 Kragenwar-3044
 
109 6 Kragenwar-3044
-- on unload call each instances unload function to save settings
110 Kragenwar-3044
function UnloadPlugin()
111 19 Kragenwar-3044
    KragenBars:SaveSettings();
112 6 Kragenwar-3044
end
113 Kragenwar-3044
 
114 Kragenwar-3044
 
115 Kragenwar-3044
function ValidatePosition(x, y, width, height)
116 Kragenwar-3044
    x = math.min(math.max(x, 0), Turbine.UI.Display:GetWidth() - width);
117 Kragenwar-3044
    y = math.min(math.max(y, 0), Turbine.UI.Display:GetHeight() - height);
118 Kragenwar-3044
    return x, y;
119 Kragenwar-3044
 
120 Kragenwar-3044
end
121 Kragenwar-3044
 
122 Kragenwar-3044
 
123 Kragenwar-3044
-- setup user chat commands
124 Kragenwar-3044
KragenBarsCommand = Turbine.ShellCommand();
125 Kragenwar-3044
 
126 Kragenwar-3044
function KragenBarsCommand:Execute( command, arguments )
127 Kragenwar-3044
        if (arguments == "setup") then
128 Kragenwar-3044
                KragenBars:ShowSetup();
129 Kragenwar-3044
        elseif (arguments == "refresh") then
130 Kragenwar-3044
                KragenBars:Refresh();
131 Kragenwar-3044
        elseif (arguments == "save") then
132 Kragenwar-3044
                KragenBars:SaveSettings();
133 Kragenwar-3044
                elseif (arguments == "reset") then
134 Kragenwar-3044
                        KragenBars:DefaultPosition();
135 Kragenwar-3044
                        KragenBars:DefaultSettings();
136 Kragenwar-3044
                        KragenBars:Refresh();
137 Kragenwar-3044
        elseif (arguments == "defaultpos") then
138 Kragenwar-3044
                        KragenBars:DefaultPosition();
139 Kragenwar-3044
        else
140 Kragenwar-3044
        Turbine.Shell.WriteLine("KragenBars Help:\n - /Kragenbars setup - Opens Kragens setup window\n - /Kragenbars refresh - Refreshes Kragens bar settings (ie. after level up)\n - /Kragenbars reset - Resets settings to default\n - /Kragenbars defaultpos - Sets window positions to default");
141 Kragenwar-3044
        end
142 Kragenwar-3044
 
143 Kragenwar-3044
end
144 Kragenwar-3044
 
145 Kragenwar-3044
 
146 Kragenwar-3044
function AddCallback(object, event, callback)
147 Kragenwar-3044
        if (object[event] == nil) then
148 Kragenwar-3044
                object[event] = callback;
149 Kragenwar-3044
        else
150 Kragenwar-3044
                if (type(object[event]) == "table") then
151 Kragenwar-3044
                        table.insert(object[event], callback);
152 Kragenwar-3044
                else
153 Kragenwar-3044
                        object[event] = {object[event], callback};
154 Kragenwar-3044
                end
155 Kragenwar-3044
        end
156 Kragenwar-3044
end
157 Kragenwar-3044
 
158 Kragenwar-3044
 
159 Kragenwar-3044
-- inialize plugin
160 Kragenwar-3044
function init()
161 Kragenwar-3044
    settings = { };
162 Kragenwar-3044
 
163 Kragenwar-3044
        -- setup plugin unload function to save setting on unload.
164 Kragenwar-3044
                pluginName="KragenBars";
165 Kragenwar-3044
                window = Turbine.UI.Window();
166 Kragenwar-3044
                window:SetWantsUpdates(true);
167 Kragenwar-3044
                window.Update = function(sender,args)
168 Kragenwar-3044
                        if (Plugins[pluginName] ~= nil) then
169 Kragenwar-3044
                                Plugins[pluginName].Unload = function(self,sender,args)
170 Kragenwar-3044
                                        UnloadPlugin();
171 Kragenwar-3044
                                end
172 Kragenwar-3044
                                window:SetWantsUpdates(false);
173 Kragenwar-3044
                        end
174 Kragenwar-3044
                end
175 Kragenwar-3044
 
176 Kragenwar-3044
        Turbine.Shell.AddCommand( "Kragenbars", KragenBarsCommand );
177 Kragenwar-3044
 
178 Kragenwar-3044
        LoadSettings();
179 Kragenwar-3044
end
180 Kragenwar-3044
 
181 Kragenwar-3044
 
182 Kragenwar-3044
-- codeblock
183 Kragenwar-3044
init();

All times are GMT -5. The time now is 10:44 AM.


Our Network
EQInterface | EQ2Interface | Minion | WoWInterface | ESOUI | LoTROInterface | MMOUI | Swtorui