Glossary

activated
A type of plug-in. Activated plug-ins are tools that the user can activate; they are listed in the Toolbox menu.
binding
A binding is a link between a control in a user interface and a variable or setting. When the control is manipulated by the user, the variable or setting is updated with the new value. The uibindings script library can be used to create and manage bindings, and includes default binding mechanisms for many control types that map the control value to private settings.
bleed mark diagrambleed margin
An optional margin around the outside of a card. The bleed margin allows for the imprecision that occurs when cutting cards by machine. The total size of the printed card is larger, and any decoration on the edges of the card continues (bleeds) over into the bleed margin. When the card is cut, the graphics in the bleed area ensure that the card still looks correct even if the cut is not exactly on the crop marks.
See also: crop marks, fold marks
Bundle, Plug-in
See Plug-in Bundle.
BZip2 Bundle
A type of Web-proof plug-in bundle that is compressed with solid BZip2 compression. This often achieves much better compression than ZIP-based bundles, but initial installation is slower as the bundle must be decompressed before use.
More Information
Catalogue (or Catalog)
A file that describes one or more plug-ins and which is used to install or update plug-ins automatically over a network connection. The catalogue contains the name, file name, description, and other information about the plug-ins. It also includes a catalogue ID for each entry that uniquely identifies the version of the plug-in stored at the remote location. This allows Strange Eons to determine when an installed plug-in is out of date.
More Information
Catalogue ID (also Catalog ID)
A special string of characters that can appear in the comments of a plug-in root file. A catalogue ID uniquely identifies a particular version of a particular plug-in bundle. It is used by the catalogue system to determine whether a given plug-in is installed, and if so whether it is older than the version of that plug-in described by a catalogue.
More Information
Case Book Formatter
A class that can convert a case book into a particular format (such as HTML, LaTeX, RTF, etc.). Installed case book formatters appear as options when exporting the case book.
More Information
Card
See Component (1).
Class Map File
A resource file that describes categories and components that can be created with Strange Eons. Extensions that create new components type include a file of this type and call GameData.parseEditors() with the resource URL of the custom class map to process it. The main class map file for Strange Eons is found in resources/editors/standard.classmap resource file. The comments in that file describe the format it uses. There are examples that use class map files in the extensions folder.
Component
  1. A generic term for the various kinds of things that can be created by Strange Eons. This term is used interchangeably with the word card, although Strange Eons can be used to make things other than cards. The recommended ways to add new components to Strange Eons are to customize an existing component, to subclass DIY, or to create a DIY script.
  2. A generic term for an element (window, button, panel, etc.) in a user interface. In Strange Eons documentation, this is usually called an "interface component" or "UI component" to distinguish it from (1).
Core Component
A core component consists of a related subset of the Strange Eons code base—or more often, a set of resources—that are needed to provide certain standard functionality but not included with the main download. For example, the spelling dictionaries are stored in a core component, and spelling checking will be disabled unless this component is installed.
More Information
crop marks
Lines drawn outside of the edges of a card that indicate where it should be cut.
See also: fold marks, bleed margin
DIY
(From Do It Yourself.) A kind of custom component that is not based on one of the existing components that is built into Strange Eons. A DIY component has free control over its interface, painting, etc. DIY components can be created by subclassing ca.cgjennings.apps.arkham.diy.DIY or using a DIY script file.
More Information
expansion symbol
An icon that may be added by a game publisher to a card in order to indicate which expansion the card came from. An expansion symbol allows the purchaser to separate the cards for an expansion back out of a deck that combines cards from both a base game and an expansion. Strange Eons includes built-in support for expansions and expansion symbols. Both games and expansions can be registered with the GameData database, and the expansion symbols registered for a given game will be listed in the Edit | Expansion Symbol menu when a card from that game is being edited. To expansion that a user has selected for a card can be read programmatically by calling Settings.getExpansionSymbol() on the component's Settings instance.
extension
  1. A type of plug-in that is loaded when Strange Eons first starts. It cannot be unloaded while the application is running, but it is allowed to do things that ordinary plug-ins cannot, such as add new kinds of components.
    More Information
  2. The part of a file name that comes after a dot (.) and helps identify what kind of file it is (.zip, .exe, .png, .seplugin, etc.).
injected
A type of plug-in. Like activated plug-ins, injected plug-ins can be installed without restarting SE. However, they so not appear in the Toolbox menu.
Event Handler
An event handler allows your code to react when some event takes place, like a new editor window being opened or a component being painted. A few event handlers are installed by setting a private setting on a component whose value is the script code that reacts to the event, but most event handlers are "listener" objects that are registered with the relevant object. Swing objects (user interface components) also uses listeners to communicate: there are examples of adding event listeners to Swing objects in the included example code.
More information
fold marks
Dotted lines drawn just outside of a card or between a pair of cards to indicate where it can be folded to complete assembly. The deck editor will create fold marks automatically when two card faces are correctly aligned. In addition, a sheet can indicate one or more internal fold marks that are always drawn.
See also: crop marks, bleed margin
Formatter, Case Book
See Case Book Formatter.
GameData
The class resources.GameData that is used by to read and modify the core data in Strange Eons.
Image Script
Images can be created algorithmically using scripts. If an image file setting points to a file with the extension .js, then it is taken to be an image script. Image scripts must define the function createResource(), which returns a BufferedImage result. The template image for Guardians is created using an image script that creates a mirror image of the Herald template:
uselibrary( "imageutils" );

function createResource() {
    return Image.mirror( Image.fetchImageResource( "templates/herald.jp2", true )  );    
}
Installation Read Me
A simple HTML file, or a set of localized HTML files, that describes a plug-in. It is included in the plug-in's bundle and it is displayed to the user when they install the plug-in from Strange Eons.
More Information
JPEG2000 (.jp2)
This is an image file format that SE makes extensive use of internally because it retains very high image quality at high compression ratios and it supports transparent images. It is a very different format than JPEG images, even though the names are similar. SE uses the JP2 version of the file format. You can convert PNG and JPG images into JP2 images from within a project. Right click on the image and choose Convert To | JPEG2000 (Tip: versions prior to 2.1a11 produce low quality results except at 100% quality). The convert-jpeg2000.js script will batch convert images into PNG format.
Library
  1. A collection of classes, scripts, images, or other resources that is used by many plug-ins. A library is stored in a bundle, like a plug-in, but it has the extension .selibrary and does not contain a root (eons-plugin) file.
  2. See Script Library.
Listener
See Event Handler.
MakeDocs
A tool included with Strange Eons that can automatically extract documentation from script libraries.
More Information
Plug-in
A small program that extends the functionality of Strange Eons. There are three different kinds: activated, injected, and extension. An activated plug-in appears in the Toolbox menu and can be started and stopped while Strange Eons is running. An injected plug-in is similar to an activated plug-in, but it does not appear in the Toolbox menu. An extension plug-in can make more extensive modifications but cannot be unloaded. The term plug-in by itself usually refers to an activated plug-in.
More Information
Plug-in Bundle
A collection of the files needed by a plug-in or library. Plug-in bundles are essentially ZIP archives (but see Web-proof Bundle) that include the special file eons-plugin at their root. The SE Text Resource Editor can be used to make plug-in bundles.
More Information
Plug-in Context
An object that is passed to a plug-in when it is activated to provide information and services. It implements the interface ca.cgjennings.apps.arkham.plugins.PluginContext.
private settings
A group of settings that are unique to one game component and which can override the normal Strange Eons settings values for that component. Private settings are saved and loaded with the component. They are used to customize existing card types. They also play an important role in most DIY components, as the user-controllable settings for the component are usually stored in private settings.
More Information
prototype (JavaScript)
Each object in JavaScript has a prototype, which is another object that it inherits properties from. The prototype fulfills a role similar to that of the superclass in a class-based object-oriented language.  If a referenced property is not found in an object, it is searched for in the object's prototype. This is recursive, meaning that if the property is not in the object's prototype, it is searched for in the prototype's prototype, and so on. If a property is assigned to a constructor function's prototype, it will be available to every object created with that constructor. In contrast, assigning a property to the constructor function itself only makes the property available from that function object. The latter is comparable to defining static methods and members in Java (although static methods are in a subclass's scope).
        The important point for users of the SE script library is that functions (methods) that are noted as being in the prototype (for example, AbstractContainer.prototype.addToEditor) are available from any object created directly or indirectly from that constructor, while functions that are not in the prototype (described as "static") must be called through the object they are defined on (for example, FontUtils.availableFontFamilies). An example:
// Add a "monetize" method to every Number object
Number.prototype.monetize = function monetize() {
    // "this" will be the Number object that
    // is used to call the function
    return sprintf( "$%.2f", this/100 );
}
// all Numbers now have a monetize() method
var n = 175;
println( n.monetize() );

// Only Number itself will have the nextNatural
// function. Note that it does not apply to any
// particular number (no "this").
Number.nextNatural = function nextNatural() {
    return ++Number.nat;
}
Number.nat = 0;

println( Number.nextNatural() );
println( Number.nextNatural() );

// Error: "n" does not have a nextNatural
println( n.nextNatural() );
Quickscript
A plug-in that is built into Strange Eons. It allows you to enter and run script code. The editor is similar to the code editor used to edit script files in a project.
More Information
Region
A rectangular area on a card template, or the special settings keys that describe them.
More Information
Resources
The collection of images, text, and other data needed by Strange Eons to model the  components that it creates. Developers should have a copy of the built-in resources handy for reference purposes when working. Also, similar data used by plug-ins (and stored in the resources folder of the plug-in bundle). The Windows installer has an option to extract a copy of Strange Eons resources for you during installation. You can extract them with the Resource Tool by starting Strange Eons with Caps Lock activated (on most platforms) or using the --restool option. The Customization page of the Strange Eons Web site has more details.
Root File
A root file is a special file with the name eons-plugin that is stored in the root of a plug-in bundle archive. The root file lists the classes or scripts within the bundle that implement plug-ins. When loading a bundle, Strange Eons reads this file so that it can locate and start the plug-in(s) stored in the bundle.
More Information
Script Library
A collection of script files included with Strange Eons and that are used by other scripts. The standard scripts are located in the resources/libraries folder of the Strange Eons resources. To include a library in a script, use uselibrary( "name" );. The Script Library Documentation plug-in allows you to view documentation and source code for a library.
SE Text Resource Editor
A programmer's editor with special support for working with the various text files used by Strange Eons. It is included in the plug-in authoring kit in the tools folder.
More Information
Editor Command Reference
Settings
Collections of key and value pairs that control many aspects of Strange Eons, from application settings to the layout details of cards. Also, the class resources.Settings that models these collections.
More Information
Silhouette
A greyscale image at a resolution of 150 DPI that defines the shape of a token in the marker/token editor. Extensions can add new silhouettes to add new token shapes.
More Information
Theme
A theme modifies the look and feel of Strange Eons to suit a particular mood or style. It consists of a bundle (similar to a plug-in bundle) with the extension .setheme that includes a subclass of ca.cgjennings.ui.Theme.
More Information
Tile Set
A file that describes additional tiles to be used with the deck/expansion board editor. The main tile set for Strange Eons is found in the resources/board/tile-set.txt resource file. The comments in that file describe the format it uses. There are examples that use class tile sets in the extensions folder.
Web-proof Bundle
A plug-in bundle that has had a special "wrapper" of extra data placed around it. Internet Explorer renames files in the ZIP format to use the extension .zip regardless of their original extension. However, Strange Eons relies upon the extension of a plug-in file to help verify the type. Placing the Web-proof wrapper around the file prevents Internet Explorer from renaming the file. When Strange Eons tries to load a Web-proof bundle, it will automatically convert it into a regular bundle (i.e., plain ZIP archive). The 7zip program for Windows can open Web-proof bundles without unwrapping them.
More Information

Documentation Index