I'd like the thread to move to the point we came up with some ideas ;) I don't like people bashing each other over some stupid issues. If Phanx doesn't want her addons included in compilation she has all rights not to allow it and there should be now discussion about it!
My posts were trying to point out issues of the new distribution idea. Now is the time to come up with anything that would make most of the users/authors/distributors happy.
Current distribution solutions are:
- Distribute whole addon compilation with whole WTF folder (classic compilations) - useful to get the "looks"
- Distribute list of addons without any SavedVariables (WUU, WAU AddonPacks) - usefull to get "set of features"
- Distribute settings in WTF folder with list of addons to use - addons could be installed manually by the users or automatically put together by the distribution site (automatically updated compilations) - should be able to get the "looks", but has problems as described above
- Do not distribute compilations at all... - this is hard, because the market is already there
- something else?
Tools to help out with the issues raised by using compilations:
- Be able to disallow someones addons to appear in compilations
- Delete out-of-date compilations
- Mark automatically updated compilations as out-of-date if major update is made to one of its addons
- more?
2. To me, the ideal "compilation" would be an xml file, in a standard format, readable by any of several "updater" programs, which would allow the updater program to go to the addon site of the addon author's choice and download the addon, for each addon in the compilation. As for .wtf files, which someone mentioned, well, my favorite compilation doesn't provide them, and I really don't have any problem with configuring addons myself, so I don't really see the need - but they could certainly be included, if enough people decide there is a need.
Selecting list of addons and making this list available for other users was already implemented in WUU. I don't know the implementation details, but each addon list was described by hash easily sharable with other users.
I don't know what you mean by "automatically updated" compilation... when significant changes occur, the compilation uploader (who presumably is using his own compilation) should adjust his settings for the new addon versions and publish the new settings.
"automatically updated compilation" = the compilation based on list of addons which are automacally updated by the distribution site to the newest version + WTF folder with settings.
You are right compilations with outdated addons and WTF are worse then automatically updated compilations with updated addons and outdated WTF.
My line of thinking was:
- user downloads outdated compilation -> bazillion of errors are thrown and nothing works -> user decides the compilation doesn't work and deletes it or bothers the compilation author to release a new one
- user downloads automatically updated compilations with outdated WTF folder -> addons generally work with the exception of few, which were changed and doesn't support the old SavedVariables -> user goes to the addon author, because only his addon doesn't work :(
Edit: Submitted a (partial) guide. I haven't quite finished it yet, but I want to see how the forum works. :)
Hi and congratulation on the guide! I'm looking forward to see how to save TGA files in Photoshop with custom Alpha channel as I've been unable to accomplish this...
Just a bit of nitpicking:
BLP files are not TGA files ;)
- simply: BLP files in WoW are Blizzard's version of DDS files
- detailed: BLP files are Blizzard's image files containing either indexed (palette based) images or compressed images using DXT or JPEG algorithm. Each file can contain Mipmaps down to 1x1. JPEG compression is not used in WoW
XnView (at least for me) doesn't support all BLP formats :(
None of these things have anything to do with an author's right to control how their work is distributed, or are in any way arguments in favor of the existence of compilations. They are all issues that all addon users face when an addon undergoes the kind of changes you describe.
I'm sorry Phanx for the misunderstanding. I was not saying anything about anyone's rights. I was trying to point out, that auto-updated addon list + static WTF based compilation have similar issues or even worse issues as complete compilations. The compilation uploader may have done at least a bit of work of testing and checking for compatibility of addons in his compilation...
About the screenshots: in my oppinion people are downloading compilations based on looks (screenshots) and thus they want all addons to look just like on the compilation screenshots. If an automatically updated addon has different UI, it will look different no matter how good the SavedVariables update path is. (This problem is related just to compilations as all addon authors will update their screenshots on their addon pages. Also such update can be released just few days after the compilation release making the compilation "broken" in very short duration.)
About the update paths: when someone is playing WoW, he will probably update his addons continuously and thus his SavedVariables would be in near-current state... Should the addon be able to read settings from compilation with one year old SavedVariables? Do you remember how many players came asking about the DogTag changes about a year ago? How would it be now if there was an automatically updated compilation with all these old custom DogTags?
From my author perspective retaining whole update path creates to much work for me and I am simply going to throw out settings which are no longer supported.
Compilations that don't get updated every 2 months should automatically get deleted or get marked out of date in my opinion.
Agreed! :cool:
Just a few thoughts about automatic compilations:
- Addon authors should be able to opt-out/opt-in from the system (to make Phanx and others happy)
- Addon authors should be able to mark major UI/functional changes after which the addon would be no longer updated in the compilation and the compilation will be marked out-of-date/deleted. Only the compilation uploader is able to fix this and release new version.
There are a few "compilations" on WoWI that work like this; one of them "includes" my addon. Unfortunately this idea will never take off unless the major UI sites stop allowing everyone and their brother to upload 40mb zips that contain other people's copyrighted work without permission. Curse already has something similar planned (though not yet implemented); we'll see how it pans out. Hopefully it goes well, and the other sites will follow suit.
This is problematic as well... Let's say, we allow users to create list of addons (which would be automatically updated) and to add WTF folder with settings (SavedVariables). After some time new version of the addon is released with different SavedVariables format and the problems arises:
- Your addon doesn't look as good as on the compilation screenshot, because it has new features, which are not "configured" properly for the compilation
- Your addon lost all the UI settings because of the UI change with no way to update old settings to the new one (eg. how do you update window position for one small window to new format with two windows and one popup?)
- Your addon settings were created with bugged addon version and even when your addon was fixed, the SavedVariables are corrupted throwing errors in the compilation or losing its settings.
- Your new version of addon (released months after the compilation was created) has completely changed your SavedVariables DB format with no or impossible update path. This can lead to errors or lost settings as well...
Thank you sylvanaar! I've been looking for such page the whole time...
I've played with it and it's a bit more complicated when handling with "0":
[FONT="Courier New"]|T<imageName>:<size1>:<size2>:<xOffset>:<yOffset>|t[/FONT]
Hi,
I'm trying to understand textureStrings, but I cannot find any documentation (I've tried wowace forum, wowwiki, general googling).
At first I thought the format is:
[FONT="Courier New"]|T<imageName>:<size>|t[/FONT]
but then in some addon I've found:
[FONT="Courier New"]|T<imageName>:0|t[/FONT]
and in Blizzard_GMChatUI.lua there are 4 parameters and one of them is even negative!
[FONT="Courier New"]local pflag = "|TInterface\\ChatFrame\\UI-ChatIcon-Blizz.blp:0:2:0:-3|t ";[/FONT]
What is the actual format of textureString and meaning of its parameters?
IIRC you don't even select repository type on Project creation. When you set up your Repository you should also set your package name... Maybe a some reminder should be added on repository creation to properly set the package name ;)
Egingell please just stop posting, every single post of yours that I've seen in the past week has been flat out wrong.
I welcome even a wrong answer instead of no answer at all ;) For instance I've learned about the existence of GameTooltip:SetMerchantItem(?idx?) function from egingell's post.
I've checked CurseProfiler and it checks vendor's list on each OnUpdate, until all items return relevant data.
Base structure:
[PHP]
local recheckMerchant
function NPCs:OnUpdate()
if recheckMerchant then
self:MERCHANT_SHOW()
end
end
function NPCs:MERCHANT_SHOW()
recheckMerchant = false
if not UnitExists('npc') then
return
end
for i = 1, GetMerchantNumItems() do
local link = GetMerchantItemLink(i)
if not link then
recheckMerchant = true
return
end
end
end
[/PHP]
0
I'd like the thread to move to the point we came up with some ideas ;) I don't like people bashing each other over some stupid issues. If Phanx doesn't want her addons included in compilation she has all rights not to allow it and there should be now discussion about it!
My posts were trying to point out issues of the new distribution idea. Now is the time to come up with anything that would make most of the users/authors/distributors happy.
Current distribution solutions are:
- Distribute whole addon compilation with whole WTF folder (classic compilations) - useful to get the "looks"
- Distribute list of addons without any SavedVariables (WUU, WAU AddonPacks) - usefull to get "set of features"
- Distribute settings in WTF folder with list of addons to use - addons could be installed manually by the users or automatically put together by the distribution site (automatically updated compilations) - should be able to get the "looks", but has problems as described above
- Do not distribute compilations at all... - this is hard, because the market is already there
- something else?
Tools to help out with the issues raised by using compilations:
- Be able to disallow someones addons to appear in compilations
- Delete out-of-date compilations
- Mark automatically updated compilations as out-of-date if major update is made to one of its addons
- more?
0
Selecting list of addons and making this list available for other users was already implemented in WUU. I don't know the implementation details, but each addon list was described by hash easily sharable with other users.
Reference AddonPack: http://wuu.vagabonds.info/wuuki/AddonPack:19cc7d9403c48849966d011ef101bb5a
0
"automatically updated compilation" = the compilation based on list of addons which are automacally updated by the distribution site to the newest version + WTF folder with settings.
You are right compilations with outdated addons and WTF are worse then automatically updated compilations with updated addons and outdated WTF.
My line of thinking was:
- user downloads outdated compilation -> bazillion of errors are thrown and nothing works -> user decides the compilation doesn't work and deletes it or bothers the compilation author to release a new one
- user downloads automatically updated compilations with outdated WTF folder -> addons generally work with the exception of few, which were changed and doesn't support the old SavedVariables -> user goes to the addon author, because only his addon doesn't work :(
0
Hi and congratulation on the guide! I'm looking forward to see how to save TGA files in Photoshop with custom Alpha channel as I've been unable to accomplish this...
Just a bit of nitpicking:
BLP files are not TGA files ;)
- simply: BLP files in WoW are Blizzard's version of DDS files
- detailed: BLP files are Blizzard's image files containing either indexed (palette based) images or compressed images using DXT or JPEG algorithm. Each file can contain Mipmaps down to 1x1. JPEG compression is not used in WoW
XnView (at least for me) doesn't support all BLP formats :(
0
I'm sorry Phanx for the misunderstanding. I was not saying anything about anyone's rights. I was trying to point out, that auto-updated addon list + static WTF based compilation have similar issues or even worse issues as complete compilations. The compilation uploader may have done at least a bit of work of testing and checking for compatibility of addons in his compilation...
About the screenshots: in my oppinion people are downloading compilations based on looks (screenshots) and thus they want all addons to look just like on the compilation screenshots. If an automatically updated addon has different UI, it will look different no matter how good the SavedVariables update path is. (This problem is related just to compilations as all addon authors will update their screenshots on their addon pages. Also such update can be released just few days after the compilation release making the compilation "broken" in very short duration.)
About the update paths: when someone is playing WoW, he will probably update his addons continuously and thus his SavedVariables would be in near-current state... Should the addon be able to read settings from compilation with one year old SavedVariables? Do you remember how many players came asking about the DogTag changes about a year ago? How would it be now if there was an automatically updated compilation with all these old custom DogTags?
From my author perspective retaining whole update path creates to much work for me and I am simply going to throw out settings which are no longer supported.
Agreed! :cool:
Just a few thoughts about automatic compilations:
- Addon authors should be able to opt-out/opt-in from the system (to make Phanx and others happy)
- Addon authors should be able to mark major UI/functional changes after which the addon would be no longer updated in the compilation and the compilation will be marked out-of-date/deleted. Only the compilation uploader is able to fix this and release new version.
0
This is problematic as well... Let's say, we allow users to create list of addons (which would be automatically updated) and to add WTF folder with settings (SavedVariables). After some time new version of the addon is released with different SavedVariables format and the problems arises:
- Your addon doesn't look as good as on the compilation screenshot, because it has new features, which are not "configured" properly for the compilation
- Your addon lost all the UI settings because of the UI change with no way to update old settings to the new one (eg. how do you update window position for one small window to new format with two windows and one popup?)
- Your addon settings were created with bugged addon version and even when your addon was fixed, the SavedVariables are corrupted throwing errors in the compilation or losing its settings.
- Your new version of addon (released months after the compilation was created) has completely changed your SavedVariables DB format with no or impossible update path. This can lead to errors or lost settings as well...
0
Updated. :cool:
0
All textures are considered squared even when they are not (like the Blizzard icon in my first post)
If you need to automatically scale non-square icon, you have to use case 2) and submit aspect ratio as <size2> as Blizzard does in its GMChatUI.
For completeness sake:
4b) If <size1> == 0 AND <size2> == nil then
Width = TextHeight
Height = TextHeight
0
I've played with it and it's a bit more complicated when handling with "0":
[FONT="Courier New"]|T<imageName>:<size1>:<size2>:<xOffset>:<yOffset>|t[/FONT]
1) If <size1> > 0 AND <size2> > 0 then:
Width = <size1>
Height = <size2>
2) If <size1> == 0 AND <size2> > 0 then:
Width = <size2>*TextHeight !!!!
Height = TextHeight
3) If <size1> > 0 AND <size2> == 0 then:
Width = TextHeight
Height = <size1> !!!!
4) If <size1> == 0 AND <size2> == 0 then:
Width = TextHeight
Height = TextHeight
5) If <size1> > 0 AND <size2> == nil then:
Width = <size1>
Height = <size1>
0
I'm trying to understand textureStrings, but I cannot find any documentation (I've tried wowace forum, wowwiki, general googling).
At first I thought the format is:
[FONT="Courier New"]|T<imageName>:<size>|t[/FONT]
but then in some addon I've found:
[FONT="Courier New"]|T<imageName>:0|t[/FONT]
and in Blizzard_GMChatUI.lua there are 4 parameters and one of them is even negative!
[FONT="Courier New"]local pflag = "|TInterface\\ChatFrame\\UI-ChatIcon-Blizz.blp:0:2:0:-3|t ";[/FONT]
What is the actual format of textureString and meaning of its parameters?
0
There is a better way! The Blizzard's way ;)
If there are any uncached items on MERCHANT_SHOW, there will be MERCHANT_UPDATE event after all items are loaded into the cache :cool:
0
0
Package name is set in .pkgmeta file or in Repositories/Edit Repository page/Package As field (easier).
0
I welcome even a wrong answer instead of no answer at all ;) For instance I've learned about the existence of GameTooltip:SetMerchantItem(?idx?) function from egingell's post.
I've checked CurseProfiler and it checks vendor's list on each OnUpdate, until all items return relevant data.
Base structure:
[PHP]
local recheckMerchant
function NPCs:OnUpdate()
if recheckMerchant then
self:MERCHANT_SHOW()
end
end
function NPCs:MERCHANT_SHOW()
recheckMerchant = false
if not UnitExists('npc') then
return
end
for i = 1, GetMerchantNumItems() do
local link = GetMerchantItemLink(i)
if not link then
recheckMerchant = true
return
end
end
end
[/PHP]
0