Hi there, i always use the newest alpha version of Grid 2. I know it is alpha. But still, read on.
- is there a way to hack in icons with no cooldown spiral either into the WTF or addon files?
- border for indicators is not working properly, shows up as border with alpha value 0 (invisible), even though i set border color
- deleting indictors does not give immidiate user feedback, requires rlui so that changes are seen
- i noticed that settings are not saved correctly in a lot of cases. Prioritys of statuses (on indicators) switch randomly or so it seems and sometimes a status i click "+" or "-" on will not just switch 1 up/down, but seomwhere completely else. I also had the case of creating an account wide status, but it was only available on the char i created it on. The same is the case with indicators. Account wide indicators would often be available only on the char i created them. I know it is an alpha, but this makes the GUI completely unuseable. Even in an alpha i do not want to revert to only editing WTF files with a text editor.
Then i looked into the Grid2.lua and Grid2Options.lua WTF/settings files and began to edit only the Grid2Options.lua directly instead, making myself a perfectly clean Grid2 setting for all my 4 healing chars, only by text editor (Grid2 GUI is useless). Indead, i noticed that the settings done by the GUI were messed up in a lot of cases (I saw it directly, the addon was writing stuff into wrong places in the file), it's much better to edit these files directly (except for finetuning locations, colors..).
But there are still some things about these files i don't understand.
Why are Grid2 and Grid2Options nearly identical (except for "setup-flat" and "setup-layers")? Isn't that redudant?
I started by making a clean Grid2Options.lua file (the Grid2.lua file would automatically be created later from this file, because of redudant data, unless someone can tell me otherwise), then i started WoW, but it only copied the data for 1 char (the one I first logged into) into a new Grid2.lua file. So what I did was I started WoW each time for each of my healing chars with the Grid2Options.lua file I made and let it create a new Grid2.lua for each of my healing chars. Then i merged these 4 seperat Grid2.lua files into one.
I now have a clean Grid2 setup but it was hell of a lot of work and unfortunately I could not use the Grid2 GUI because it screws up the settings on a lot of things.
Grid2 reads its WTF files correctly, but edits them incorrectly when saving settings.
This is an urgent request: please fix these bugs before adding ANY new features to Grid2. Otherwise it really is a pain in the ass to set it up by editing the WTF files manually. I know I want to use Grid2 and will not go back to Grid1, because the structure I saw in the WTF files convinced me that Grid2 is superior. But I really exclusively want to use the GUI actually.
...- is there a way to hack in icons with no cooldown spiral either into the WTF or addon files?...
Yes. I am planning to add a digital cooldown count with stack to icons similar to what text indicators have. This would add checkboxes for cooldown and stack so you could choose to have either, both or neither of them.
...deleting indictors does not give immidiate user feedback, requires rlui so that changes are seen...
I am not seeing this. I can for example delete icon-center, text-name and side-bottom and the associated icon, text and square goes away immediately. Perhaps if you can give a recipe for this starting with a freshly resetted version.
- i noticed that settings are not saved correctly in a lot of cases. Prioritys of statuses (on indicators) switch randomly or so it seems and sometimes a status i click "+" or "-" on will not just switch 1 up/down, but seomwhere completely else. I also had the case of creating an account wide status, but it was only available on the char i created it on. The same is the case with indicators. Account wide indicators would often be available only on the char i created them. I know it is an alpha, but this makes the GUI completely unuseable. Even in an alpha i do not want to revert to only editing WTF files with a text editor...
The +/- is an issue that needs code to ensure statuses on a particular indicator have unique priority numbers. If for instance your status has a priority of 80 along with 2 other statuses then adjusting it may make it skip over the other two depending on how they sorted to begin with.
You would have to tell me exactly what this account wide status is that only shows up on one character. Certainly some make no sense. Anything that is say buff-X-mine cannot ever show up account wide unless some other class has a buff with the exact same name which is unlikely (if not impossible).
If you create buff-X on the account layer it should show up everywhere.
If you choose a status that is only created for particular classes then it would also not show up.
If you post exactly what it is you are having problems with it can be fixed.
...Then i looked into the Grid2.lua and Grid2Options.lua WTF/settings files and began to edit only the Grid2Options.lua directly instead...
Wow, well this cannot end well unless you understand how it all works. I will explain it and later post it to the mod page.
Layers work by analogy like a shop selling layer cakes. Customers are classes or specs and at the moment get individual cakes made just for them. Everyone gets the same crust (the account settings). Classes get their own filling (the class settings). Particular specs get a particular frosting.
Particular objects can then be thought of as being a slice of this cake. You may see some frosting on top, some of the filling beneath that and some of the crust beneath that. That is, higher layers overwrite lower layers.
For instance icon-center shows raid-debuffs for everyone since that is on the account layer. You could then show dispellable debuffs on top of that particular to each class that can dispel. So all the healers, mages, and possibly hunters / warlocks via their pets. These would be on the class layer. Similarly spec specific statuses could be added on the spec layer.
Defaults are versioned.
The first time a particular plugin or Grid2Options is loaded the version is set to zero for the particular layers it cares about.
Upgrades are then made at particular layers depending on the current version.
Upgrades can be targeted to apply only to particular layers and only take effect if objects they depend on exist. So for example if version 1 creates an indicater named "bob" and the user deletes it then when version 2 tries to add another status to "bob" it will fail because the user does not want a bob indicator.
When another character logs in the account layer is already created and will not change. If they are the same class as a previous character then the class is already created and will also not change and same for spec. If they are a class that has not logged in yet then their class and possibly default spec layers will be created. This is detected because the class and or spec layer will be 0 for that user and automatically upgraded to the latest version.
Whenever the saved layer version for a character is less than the current latest version for something an upgrade is performed which loads its options and applies the changes needed. The next time that character logs in the versions will be up to date and thus the options will not load.
Options vs Runtime Settings
Grid2 places a premium on performance.
One of the limiting factors in classic Grid is the mingling of options and runtime. In Grid2 these are strictly separated. This allows for a simple and specific runtime and arbitrarily large options. The runtime has only exactly what it requires to display indicators, statuses, etc. There is no options information in it.
For instance the runtime has localized strings for "talking" which is displayed for the voice status if it is on a text indicator. The options settings on the other hand have the description text "Voice Chat".
Similarly the runtime knows the collapsed account/class/spec settings for an object, whereas the options have these all separated out. (MIA at the moment is defaults which would also only be on the options side. This is handled by just having a lot of redundant info at the moment.)
Grid2 options modify Grid2OptionsDB (...SavedVariables/Grid2Options.lua). In addition the changes made there are collapsed and simplified and copied to Grid2DB (...SavedVariables/Grid2.lua)
This scheme means that the runtime settings are simple and exact. There are no defaults to be applied. There is no need for meta table call chains. There is just a simple lookup based on the selected class/spec setting to get the exact simple table to use for a particular object.
...Indead, i noticed that the settings done by the GUI were messed up in a lot of cases (I saw it directly, the addon was writing stuff into wrong places in the file), it's much better to edit these files directly (except for finetuning locations, colors..).
Grid2 reads its WTF files correctly, but edits them incorrectly when saving settings...
First a note per the mod page that this is a first cut at the layers config and "is neither complete, fully fleshed out, nor bug free". That said I am planning on hovering here doing mostly bug fixes till the layer stuff is bullet proof and fleshed out.
Now about your issues. I need reproducible recipes illustrating the issues you have. So something like "I downloaded the very latest versions, did a reset then did x, y, z and got an error / something did not work as expected".
What exactly are the settings that you see being written incorrectly? So for instance, I click on X and it doesn't save properly.