Functionality Revision History
From HLKitWiki
Context: HL Kit … Kit Reference
Beginning with the V3.1 release, a summary of the functional changes and enhancements to the Kit within each release is provided below.
V3.1 Revision History
The following changes and additions were introduced in V3.1.
- Extended "foreach" statement to support "foreach thing in component" syntax, which processes all things derived from a specified component.
- Extended "foreach" statement to support "foreach bootstrap in thing", which processes all things that are directly bootstrapped by an identified thing.
- Extended "foreach" statement to support "foreach bootstrap in entity" for use within Description scripts, which processes all things directly attached to the entity associated with the current thing context.
- The "isentity" target reference on picks and things indicates whether the item has a child entity attached.
- The "isgizmo" target reference behaves equally for things as well as picks.
- Picks with attached entities are treated the same as minions with respect to the scheduling of the final condition test. This means the final condition test is scheduled at the time of the latest condition test instead of at the earliest script. This change ensures that a single condition test can be defined on a component so that all child picks can safely test their live state, which depends on the live state of the gizmo, which depends on the live state of the pick that attaches the gizmo.
- When auto-tags are assigned via a bootstrap with a condition test, the tags are only assigned to the pick when the condition test is satisfied.
- Bootstraps can selectively override the values assigned to fields within the bootstrapped pick via the "assignval" child element.
- The "editthing" element can be assigned a "prefix" attribute, which will be used by the Editor to setup an initial unique id for new things created within the Editor.
- History tracking for fields with "stack" behavior supports the "=" operator, which overwrites the current value with the new value specified.
- If a field history entry adds or subtracts a negative value, the operator is automatically inverted and the value is negated, changing entries from "+-3" to "-3".
- The "history" target reference for fields and values supports an optional starting value to be shown in the report. Also, the splicing text can be omitted, in which case ", " is used.
- The "history" attribute for fields has a "changes" option available that omits any adjustments that yield no actual change, such as "+0" or "*1".
- When "best" history tracking is used for fields, any adjustments that fail to apply a meaningful change are ignored (like the "changes" behavior above).
- Portals of type "table_fixed" are automatically omitted by the auto-place mechanism when empty.
- Field history tracking is now allowed for fields that possess a Finalize script.
- The "output_dots" portal type was added to make it easy to insert a series of dots between two portals within character sheet output.
- Header portals used within dual-purpose templates may now use scripts, although the initial script context is undefined and the author must immediately transition to a valid context.
- The "ischanged" target reference on fields and values returns whether the field value has been changed in some way from its original starting state.
- The "pushtags" and "pulltags" target references now support containers as either the source or destination, or both.
- The pseudo-field "thingname" provides access to the original name assigned to a thing, which was otherwise inaccessible if the name of a pick was either modified via a script or renamed by the user.
- The "scenevalue" target reference provides a mechanism for managing "global" values within the context of a scene to allow communication between the scene and all layout and template scripts within it.