Skip to content

Extending or customising JALSE

Elliot Ford edited this page Apr 16, 2015 · 15 revisions

Why extend or customise JALSE

JALSE was designed with modular abstraction in mind. Each of the core components can be used to some extent on their own but together create the dynamic Entity tree.

The most common use-case for customisation is the backing Entity and EntityFactory implementation.

Creating a custom AttributeContainer

The default AttributeContainer implementation is DefaultAttributeContainer. AttributeContainer provides a lot of default methods to make creating your own implementation easier.

Creating a custom ActionEngine

The default ActionEngine implementations and creating a custom one is covered in Picking an ActionEngine implementation.

Creating a custom EntityFactory

The default EntityFactory implementation is DefaultEntityFactory - this factory uses the common pool engine (see Picking an ActionEngine implementation) and creates DefaultEntity instances. The factory handles creating, transferring and killing entities so tree control starts here. Entities (see API docs) provides utility methods for Entity related functionality.

Creating a custom Entity

The default Entity implementation is DefaultEntity (supplied by DefaultEntityFactory). It is built using DefaultAttributeContainer, DefaultEntityContainer, DefaultActionScheduler and TagTypeSet - all protected fields.

Creating a custom EntityContainer

The default EntityContainer implementation is DefaultEntityContainer. This is used by JALSE and is the top level container.

Creating a custom Taggable

There is no default Taggable implementation but TagTypeSet is provided for handling Tags by type.

Useful utilities

Using the custom implementations

Example custom implementations

Clone this wiki locally