Added to the Lua release notes today (Sept 12):
- - Added Crafting classes to Lua! New classes and enumerations: CraftTier, Profession, ProfessionInfo, Recipe, RecipeIngredient, Vocation.
- - Added GetVocation, GetProfessionInfo, and VocationChanged event to FreePeopleAttributes.
- - Changed how events are fired from native code. The objects registered as an event handler can now be a callable table. The Turbine.Event lua class has been updated to make use of this functionality as an example.
- - Changed Control.SetBackColor so that it can accept Nil. This can be used to reset the back color so that it will be transparent again.
- - Added TextChanged event to TextBox.
- - Added Sort to ListBox. Takes in a function that is callback with two list items for comparison.
- - Fixed a text positioning issue with Labels when they were below a minimum size.
- - Added GetFilter, SetFilter to TreeView. The filter is used to filter the displayed tree nodes. The filter is a function that is called back with each treeview item.
- - Added GetSortMethod, SetSortMethod to TreeView. The sort method is a function that is called back to perform node sorting.
- - Added Refresh to TreeView. This will force filtering and sorting to be reapplied. Useful if you change the data the filter relies on.
- - Added SelectedChanged event to TreeNode.
- - Fixed an issue with constructing TreeNode heirarchies and then adding the root of that tree to a TreeView. This now works as expected.
- - Added Get/Set Minimum/Maximum Width/Height/Size methods to Window. This allows constraints to be set on resizable windows. These constraints affect calls to SetSize as well.
- - Added ItemInfoControl. This is similar to ItemControl only it accepts an ItemInfo object and the quantity can be specified manually. This also supports a grayed out state when SetEnabled(false) is called.
I am particularly excited about the new Crafting functionality.
Additionally, there is an undocumented change that was made with last update:
GetTarget() - returns an Entity representing the current target of an Entity. You can now get the the player's target, a partymember's target, etc. You can even use :GetTarget():GetTarget() to get an Entity's current target's target. Note that the Entity returned by GetTarget will cease to be valid (all it's methods will return nil and it will cease to fire events - as it should) as soon as the original entity changes targets.
There is an event TargetChanged which can be registered for any entity, but if the entity it is associated with is no longer valid (out of range or no longer targeted) the event will not fire.
I already spent some time playing with GetTarget() and it has some signifcant limitations in its current implementation, but it is still a HUGE step forward.