Overlays are in many ways similar to libraries in other languages.
However, unlike traditional libraries, each overlay adds in extra capabilities by building successively on top of the
Core overlay. They are somewhat analogous to layers in a graphic image editing program. Similar to image layers each overlay can add more content and it may also replace content from a previous overlay.
Related coding constructs include overloading which adds additional methods with different parameters and overriding which replaces inherited methods from a superclass with a revised method in a subclass. SkookumScript now adds overlaying of whole libraries to add and replace class hierarchy over the earlier overlays.
Whenever you create SkookumScript classes or members you must specify the overlay location to place the new script files.
As you are looking at or editing script files, the Overlays window can be used to select an overlay to use or it will highlight the overlay location of the currently selected member.
Overlays are specified in the MyProject
\Scripts\Skookum-project.ini project settings file. The new SkookumIDE doesn't have a dialog to modify these settings like the old SkookumIDE yet - so for the time being you would modify it by hand if needed. We will be adding a proper project settings dialog in the new SkookumIDE shortly.
Example overlay section from the "SkookumDemo" project:
Hopefully people won't have to edit this file by hand for very long, but here are a few notes:
- the overlays are applied in increasing order so
Overlay5 will replace dupes in
- the first section (delimited with
|) in an overlay entry is the name of the overlay
- the second section in an overlay entry is the file path where the script files for the overlay are located
- overlays that start with a minus
- are essentially commented out
- overlays that start with an asterisk
* are set to be read-only since they are either generated or come from the SkookumScript team. You can of course remove the asterisk and edit layers such as
Core if you want to modify them to contribute scripts back to other teams using SkookumScript
- overlays ending with a third section indicate either to use
|# a particular folder depth (since some OSes still limit the max number of characters in folders) or
|A which is only valid for generated overlays and indicates that all the scripts are stored in a single archive file named
!Overlay.sk (hence the "A")
Please let us know if you have additional questions on overlays!
I'll put this up with additional details on our online docs.