ReadMe file
Version 2.4.3
Last updated 04 October 2008 by Ayradyss (recipebook@comcast.net)
Installation: Unzip into the World of Warcraft/Interface/AddOns directory.

RecipeBook is a mod that allows you to browse tradeskill recipes with one alt and see whether your other alts know it.   

For example:
I have character BetsyRoss, who is a tailor by nature.  She knows Pattern: American Flag, but for some reason, I can never remember this when UncleScrooge goes to the auction house to buy patterns.  
	* Previously, I would have to keep a written or mental list of BetsyRoss's known patterns so that UncleScrooge didn't buy her a second copy of Pattern: American Flag on accident.  
	* Now, with RecipeBook, UncleScrooge can mouse over Pattern: American Flag and see "Already known by: BetsyRoss" right there on the tooltip - or, if he chooses, in a special chat tab just for RecipeBook information.
	
It's fun! It's helpful! It's easy to use!  It's also still in development, so there are a few known issues and some miscellaneous housework to be done.

RecipeBook loads defaulted to on, tooltip output, not parsing the current alt, same faction, showing known/learn/future recipes.  Banked data loads defaulted to off.
Usage: /recipebook, /rbook or /rb <options>  (note: if RatingBuster is installed, /rbk replaces /rb).
	* General:
	- /rb help : Displays a help message
	- /rb on|off : Turns RecipeBook's data display on or off.  It will continue to update alts' tradeskills when the tradeskill frames are opened, so you have the best list possible.
	- /rb config : Opens the graphical config window.
	- /rb skill [<alt> <tradeskill>] : Use /rb skill to open a window with a list of every recipe your alt knows in a given tradeskill.  So, just in case UncleScrooge were curious, he could type "- /rb skill betsyross tailoring" and find out every tailoring recipe BetsyRoss knew as of the most recent update.
	
	* Sharing: 	
	- /rb send <alt> to <player> : Sends your RecipeBook data for a given alt to another player.  Use 'all' as your alt to send all alts you know.  Use 'me' to send just your character. 

	* Banking: 
	- /rb banklist : Displays your banked items.
	
	* Skill Display:
	- /rb skill <character> <tradeskill> : Show tradeskills for a certain character.  This will default to the last character the skill window was opened for.
	- /rb search <item> : Searches for items containing the given string.
	- /rb searchmats <item> : Searches for items using materials which match the given string.
	
	* Auction House Options (only available via /rb config):
	- Color Recipes based on status: This will shade the icons for recipes you see in the Auction House based on whether other alts can learn them.
	- Current color scheme is as follows (in order of precedence): 
		- Normal : Current alt can learn the recipe
		- Green : Another alt can currently learn the recipe
		- Orange : Current alt is the only character who will be able to learn the recipe (requires /rb self on)
		- Cyan : Some alt or alts will be able to learn the recipe (may include current character)
		- Red : No alt/alts will be able to learn the recipe, based on current data
		- Dark Red : All available alts already know the recipe
	- Blackout Banked Recipes: This will shade the icons for recipes that you have banked black in the Auction House so that you can tell you already have a copy.
	
	* Debugging functions
	- /rb debug : Turns on debug mode
	- /rb verbose : Turns on verbose send mode.

Known issues:
	* RecipeBook only updates its recipe list when your tradeskill window is open.  So, if BetsyRoss just learned Pattern: Giant American Flag, she'll have to open her Tailoring window before RecipeBook (or UncleScrooge) knows about it. 

Housekeeping: 
	* Hopes for next phase: Updating your recipe list when you learn items (in progress).  Better colour-coding customization.
	* Planning a minimap icon
	* Improving the UI more
	
Compatibilities:
	The easiest way to add RecipeBook compatibility to *your* mod is to call the following in your tooltip output:
		RecipeBook_DoHookedFunction(tooltip, link);
		Where tooltip is the tooltip (or tooltip name) you're using and link is the item link itself.  That will add RecipeBook's data lines.
	Things RecipeBook has worked with for me or others:
	- vBagnon (Siyona's 2.3 fix)
	- Bagnon 1.4.9
	- ArkInventory

Special thanks to:
	Curse Gaming's Pentarion and Ghandi, for some hard work helping me debug the German client version.  Particularly to Pentarion for ongoing translation work.
	
	
Most Recent Changes (see Changelog.txt for old versions): 
	2.4.0
		UPDATED for 2.4 patch!  I recommend you DELETE your old RecipeBook folder as there are some extraneous files in it.
		ADDED: 
			- Minimap Button! Left-click to toggle the Browse frame, Right-click to select a different frame.
			- Option: "Show Minimap Button", Options tab.  Uncheck this to hide the minimap button :)
			- Option: "Show informational (non-error) messages", Options tab.  Uncheck this to keep the RecipeBook scan information and sharing notifications from displaying for you
		CHANGED:
			- All RecipeBook GUI items are now rolled into one frame.  
				* Sharing options are on the Sharing tab, along with Auto-Accept/Auto-Decline lists
				* Banking options are on the Banking tab, along with the NEW Banklist
				* Config options are on the Options tab
			- Banklist is now GUI (only a year and a half after I promised it)! 
				* Right-click on a recipe to output who has it banked.
				* Shift+click to link the recipe to chat.
				* "Delete" button will unbank that recipe for the current character.
		FIXED:
			- Option to automatically decline guild-wide updates is now working correctly.  Labels for Guild Update and Auto-Accept list had been switched in the options frame.
	        - Schematic: Mechanical Squirrel now correctly parses as known.  You will need to delete and reload your tradeskills.
	        - Further refinements to the parsing code; you should now actually get a warning if RecipeBook is being disconnected due to bad data.
	        - Compatibility with CharactersViewer is fixed.  MANY thanks to Necronomus for helping sort it out.
			- Compatibility with Armory added.
			- Schematic: Mechanical Squirrel, Pattern: Heavy Scorpid Gauntlets, Recipe: Mithril Head Trout should now work correctly.  Delete and reload your tradeskills.
		STILL PENDING: AutoUpdate is NOT YET working.
		Special thanks to Curse's Robwood for extra beta testing!
	2.4.0a
		FIXED: 
			- Setting default options no longer borks your RecipeBook options settings for good [ function(unpack(t)) != local x,y = unpack(t); function(x,y) ]
	2.4.0b
		FIXED: 
			- Working with Bagnon (and I suspect a number of other bag mods).  MANY thanks to Shefki from WowInterface, who knew one function I didn't.  <3
			- Should no longer get a nil error (RecipeBookTradeskills.lua, line 126) on certain tradeskills.
			- Should now automatically reset options if your settings are corrupted, avoiding a recurrence of the bug that was fixed in the (a) version (RecipeBookOptions.lua, line 185)
			- Double item information in guild bank and some other tooltips should be corrected now.
			- Right-click tooltips in RecipeBook search frame should now be normally-sized (did that not drive anyone but me crazy?)
	2.4.0c
		FIXED: 
			- Clicking on the "Tracked Skills" button no longer produces an error (RecipeBookSkill.lua,line 687).
			- Setting a default option to false no longer causes it to not save [ if not(x)  !=  if x == nil ]
			- Likewise, changing pages and using Set Defaults no longer throws an error.
			- Fixed an obscure problem where tradeskill information would fail to be stored.
	2.4.0d
		FIXED: 
			- Recipes requiring a specialization should now color-code properly.
			- Should no longer replace /rb from RatingBuster.  If you're using both mods, try /rbk for RecipeBook instead :)
			- RecipeBook chat tab should now be properly created and unhidden.
	2.4.1:
		NEW:
			- AutoUpdate is in BETA!  Here's the scoop:
				* You may add anyone you like to your auto-update list.  When you login, and whenever someone who is on your list (and a friend/guildmate) logs in, RecipeBook attempts to send ALL TRACKED DATA for the current alt only.
				* You may select the update frequency: once a day, or once a week.  RecipeBook will not send data to a player any more frequently than that.  Each alt is tracked separately.
				* The receiving player MUST have your sending alt on Auto-Accept.  Otherwise, your update to them will silently fail.  To fix this, have them add your alt to the AutoAccept list.
				* Auto-updating is SILENT.  That means it is possible to unknowingly logout in the middle of an update.  If that happens, there should NOT be a problem; the other player will have partial data and you will attempt to auto-update on the next login.
				* Right-click on a player's name in the AutoUpdate list to select more than one alt to auto-update from.
				* Auto-updating should be deferred if you are in combat; I hope this helps prevent lag.
			- Mandatory update for sharing secondary to the above.  Get all your friends and neighbors to update!
		FIXED:
			- Re-fixed bug from 2.4.0b in which options that are corrupted should be reset.  Missed something.
		STILL PENDING: 
			- Schematic: Firework Cluster Launcher does not display correctly.
			- German Translation is Broken (contact me if you want to help).
			- Guild bank items and bank items not YET color-coding; I'd like to implement that.
			- Mod "Possessions" apparently causes double tooltips in the Guild Bank.  Will investigate.
		SPECIAL THANKS: WowInterface's Meloric and Thorlin for extra extra beta testing and bug reporting!
	2.4.1a : 
		FIXED: 
			- AutoUpdate error at line 70 (nil check, if you don't have any info on a character)
			- Upgrade code was incorrectly calling global variables, causing a nil error.
		CHANGED: 
			- Cleaned up localization.lua significantly: removed about 50 unused localization variables.
		ADDED: 
			- "Send Update to Guild on login" : When you login, sends an AutoUpdate to your guild channel for that character.
	2.4.1b : 
		FIXED:
			- Guild AutoUpdate should now actually function.
	2.4.1c : 
		FIXED: 
			- Dropdown for character selection on the skill browse frame now correctly displays Shared data, not your same bloody alts twice. 
			- Fix for this may have fixed miscellaneous bugs with AutoUpdate.
			- Gnomish Alarm-O-Bot added to recipe list.
			- Options for known/learnable recipe display for Shared data now actually trigger a change in the displayed data :)
			- Options for known/learnable recipes should now be checkable
		PENDING:
			- When Guild AutoUpdate runs, something happens with SendQueueFrame that breaks the parser.  Working on the fix.
	2.4.1d : 
		FIXED: 
			- If RecipeBook detects that a crafted item's name has changed, it will now make that change appropriately in the database.
			- Added "Festive Red Pant Suit/Festival Suit", "Felstalker Bracer/s" to exceptions list.
			- Added code to silently fix names for excepted items.  You should see an immediate improvement in the accuracy of the data for these items.
	2.4.1e : 
		CHANGED: 
			- Total rewrite of RecipeBookShare to improve AutoUpdate and decrease spam slightly.  Sharing is not backwards compatible from this point.
			- You should notice very few changes in the front end, except for less "Player is offline" spam.
			- Now sending faction data for those "send all" moments.
	2.4.1f : 
		ADDED: 
			- When clicking on/mousing over an item, RecipeBook now has the ability to display which of your alts/shared characters can make it.  Good for "Can anyone cut exotic gem X?" requests and the like.
				- This uses the same "Same Faction/Opposite Faction" settings as your recipe display.
				- Corresponding option in the options tab to NOT show such data, and to toggle it by alts/shared characters.
				- Enchantments will NOT display this information - sorry, limited by Blizzard's stupid enchant id == item id at the moment, still looking for a good workaround.
			- Now with icons next to recipes in the Browse panel!
				- Mouse over them to display the item link.
				- Click/Shift+Click/Ctrl+Click on these items should work as per the usual Blizzard standards.  Alt+Click will display materials data.
				- The text next to the icon will show the create link.  Click to display a separate tooltip.  Ctrl+Click to show the Dressing Room for the created item.  Shift+Click to link/display materials data.
	2.4.1g : 
		FIXED: 
			- Removed extra special manual force linewrap code for tooltips.  Replaced by thinking outside the box and making it work right in Blizzard's code instead.
			- This fixed color coding in tooltips as well.
			- Clicking on item text now correctly displays the link for creating the item.  Sorry I can't read my own code.
			- "Can be made by" data should no longer cling to tooltips in the skill browse frame.
			- Changed tradeskill storing once again to hopefully eliminate the need for further exceptions.
		CHANGED: 
			- Some ordering changes to make the "Can be made by" behave more like everything else.
			- Removed the extra blank line before RecipeBook data on tooltips.  If you crave it back, I need to know.
			- Including "can be made by" data in enchants.  There is a bug with some enchant ID's overlapping with item ID's.  This is in progress.
			- Revamped skill browsing frame code for efficiency and accuracy.
		NEW: 
			- Text search box on skill browsing frame to filter known recipes :)
	2.4.1h : 
		CHANGED: 
			- Revamped RecipeBook Database format to allow for improved storing of tradeskills - specifically, database had no allowances for items that could be made in multiple ways by a single tradeskill (Large Prismatic Shards!)
				- You know what this means: In order for accurate data to be stored, I'm wiping your items DB's again.
			- Updated /rb send to reflect the new database format; this is not backwards compatible.
			- Revamped format of localization.lua to be significantly more translator-friendly.   Namely, anything I don't want you to translate is no longer in the file.
		NEW: 
			- Dropdown menu to sort items by difficulty/type/alphabetical/several other possibly-useful items.  THIS IS IN BETA.
		FIXED: 
			- A rare and somewhat convoluted bug involving tradeskills not updating after a character delete.
			- A lot of redundant code.
		NOTE: This version has NOT been tested with sharing yet.
	2.4.1i : 
		CHANGED:
			- Revamped Player Selection Menu code.  You should not notice any changes, but the UI thanks me for appropriate use of built-in Blizzard functions.
			- /rb send revamped to reflect the new DB style more accurately.
			- RecipeBook's skill browser now uses safe tooltips - if an item is not in your local cache, you will be informed and given the option to query the server.  This will be most noticeable immediately after a patch.  
				You should still see the item names listed in the skill lists; they will be red, prefixed by "? ", and you will see a yellow ! next to them, indicating you need to query the server for the link.
				This will NOT affect known data (i.e. uncached items will still be displayed as known when they are known) :)
				As a side note, mousing over a recipe loads the corresponding item into your cache; a nice effect.
			- Frame background for RecipeBook information now much darker; should be easy to see.
		FIXED: 
			- Debugging completed on data sharing - again, it should work exactly like it did before :)
			- Auction items coloring correctly (noticed in 2.4.1h)
	2.4.1j : 
		CHANGED: 
			- Left the ! icon alone but removed the obnoxious red text and "?" prefix from uncached items.
			- Uncached item tooltips should be prettier.
			- When sorting by item level or minimum level, you should see the item/required level on the right side.
			- You will see appropriate informative headers at the top of the skill browse frame
		FIXED:
			- When you click on a new profession or select a new character, RecipeBook's Skill Browser should now take you back to the top of the list instead of maintaining position.
			- OnLeave event added for item icons so that the tooltip goes away.
		NEW: 
			- You may now select "Show all items" to have RecipeBook display items your character does not know, but that are in its database.
				- Items displayed in this manner will be colored red, for difficulty "cannot make".
	2.4.2 : 
		NEW: 
			- .Meta field added to recipe data.  This is a field intended for use by outside mods that want to store "extra" data on recipes.  Please use the included functions to add and subtract metadata if you are doing so, rather than editing the field directly:
				- RBDB:SetMetaData(#id, #rid,  $metaID, &data) : Sets the .id.rid.Meta.metaID field to data (overwrites all previous data). Accepts 'nil' as &data as well, which will erase this particular metaID.  Setting &data to {} will also erase the metaID.
				- RBDB:GetMetaData(#id, #rid, $metaID) : Returns the entire contents of .id.rid.Meta.metaID.  If this is blank or there is a nil value along the way (id/rid does not exist), returns {}.
				- RBDB:AppendMetaData(#id, #rid, $metaID, key, [value]) : Inserts key = value into .id.rid.Meta.metaID. IF type(key) is a table, then iterates through that table and calls RBDB:AppendMetaData on each entry.  Therefore, entries should be in the form key = value.  It is POSSIBLE but not recommended to have entry keys also be tables, therefore recursing AppendMetaData a further time.
				- RBDB:DeleteMetaData(#id, #rid, $metaID, key) : Deletes the indicated key from id.rid.Meta.metaID.  Will accept a table of keys in the format {key1, key2, key3} as produced by table.insert.  Returns the deleted value or values.
			- Added several functions and tables to allow you to add custom sort details to the RecipeBook Sort frame.  See Interface API.txt for details.
				- RBSkill.AddData
				- RBSkill.AddSort
			- Added RBDB:Recipe_ItemToDB(iid, name) : This will convert a recipe item (i.e. "Recipe: Giant Dingo Puffs") into the appropriate created item id and recipe spell id, provided it's in the database.
			- Added a new options selection: "Delete recipes that no character knows"  This will default to ON.  If you turn it off, RecipeBook will continue to hold on to data after you delete an alt or tradeskill.  Combining this with "Show All Items" will create an expanding database of items for you to browse.
				* i6 to i7: Fixed tooltip for "Delete Recipes that no character knows" to be consistent with what the box actually does :P
		CHANGED: 
			- Keeping up with the Blizzard numbering schema.
			- Completed revision of functions to method structure.  If you are hooking RB for some reason you will need to know this.  
				- RecipeBook_DoHookedFunction retained for legacy support. See Interface API.txt for use. 
			- Altered the way that RecipeBook was generating links for SetTooltip to include the full itemString data ("item:####:0:0:0:0:0:0:0:0").  This establishes compatibility with HealPoints.
			- Moved the scrollframe in RBUI_BankFrame over by 20 so that it no longer looks like it's climbing out of the frame.
			- RecipeBook Minimap and AutoUpdate dropdowns now correctly using Blizzard functions.
			- Some rearrangement of internal variables you shouldn't be directly accessing anyway.
			- Display of items in the RecipeBook browser should now be by the recipe name (Nexus Transformation, etc) instead of the crafted item name.
			- Searching in the RecipeBook browser should now search the recipe name and the created item name, meaning that Nexus Transformation will match to Small Prismatic Shard, etc.
			- Enchantment links should now correctly generate as pretty gold links rather than pretty blue spell links.
		FIXED: 
			- Clicking "Refresh" will now also take you back to the top of the list, in case you have included/disincluded unknown items in the list.
			- Items in the database are now correctly identified by the item name versus what the recipe that creates the item is called.
			- RecipeBook now correctly includes all spells that make an item - i.e. Nexus Transformation and Small Prismatic Shard both make Small Prismatic Shard; they are now BOTH registered in the database.
			- ItemRefTooltip should no longer duplicate/triplicate/etcetericate the RecipeBook data if you should happen to have an ItemRef tooltip up and then, say, click on a player's name in chat.
			- Updated localization.de.lua file :)
			- As far as I can tell, RBDB:Skill_DelocalizeText has never worked properly before now.  This has been remedied.
			- Changes made to RBTradeskill:SpecialtyScan() to detect more accurately.
			- Skill display should now correctly show weaponsmith subspecialties.
			- "Spellcloth Tailoring" updated to "Spellfire Tailoring", so it will now detect.  Similarly, Mooncloth tailoring and the Alchemy specializations will now correctly display.  Thanks to the Trade Channel on Cenarion Circle for rounding up some alts and giving me correct information.
	2.4.3:
		FIXED:
			- Nil error in RecipeBookTradeskills.lua, line 304 (seen when skilling up a tradeskill AND you have recipes that have not had banked status cleared)
			- Nil error in RecipeBook.lua, line 753 (seen in certain Guild AutoUpdate circumstances)
			- Nil error in RecipeBook.lua, line 550 (definitely seen when purchasing Enchanting recipes from a merchant, possibly other times)
			- Enchanting recipes for made items (Wizard Oil, etc) should now color-code more correctly.
			- Guild updates should now only run when you have a guildmember online.
			- Auctioneer Advanced consistently referenced within the mod (that should settle Maischter's questions)
			- A rather obscure bug where banked items were not being correctly updated if you closed your bank by walking away, leading to accidental deletion of recipes kept in your bank.
			
		
			
			

			
PLEASE NOTE: If you learn a new recipe, you will have to open your appropriate tradeskill window to update RecipeBook's database. Hopefully this will change at some point.		
