Advanced entity creation

Registered by Erik Ogenvik

There's a need for a more advanced entity creation scheme in Ember, to allow for more fluid world authoring. The current widget only allows the user to create simple entities, which then must be edited by hand.

The proposed new scheme must be able to support creating nested entities (i.e. creating a full house with all the contained entities in a single swoop).
It will consist of
* an atlas parser which can parse entity definitions from a saved file. The existing decoders found within the atlas lib will be used. Definitions would be stored in xml format. However, the stored format will be expanded with script hooks, such as "<name>$name</name>" or similiar.
* script functionality using the scripting framework already present in Ember. Very much like most web server software works by letting html markup interact with script code, the plan is to let the atlas xml specification to interact with a script by using simple hooks. Some scripts should be very simple, such as randomizing the size or position, while others might be much more complex. The scripting functionality will also be used to set goals and knowledge for entities that have minds.
* the ability to connect atlas properties to gui adapters. This goes hand in hand with the script hook functionality. The idea is to present the user with simple gui controls for setting common values. The existing adapter framework already used in the entity editor will be used.

Each entity "template" therefore consists of three different data chunks:
* the semi-atlas entity specification
* the script portion (Lua, python etc.)
* some kind of markup (probably xml) to bind properties to either adapters or scripts (or both)

These three data chunks should be stored in three separate files.

Along with the entity creator functionality a gui widget for entity creation would be needed. This should use the existing adapter framework already used in the entity editor for allowing for easy editing of values. Preferrably a preview of the final entity should be presented in a CEGUI Model render window (just as the existing entity creator). It should be possible to easily position the newly created entity (using pointer-to-terrain ray checking rather than relative movement (which is used when a user tries to move an entity)).

Blueprint information

Status:
Complete
Approver:
Erik Ogenvik
Priority:
High
Drafter:
Erik Ogenvik
Direction:
Needs approval
Assignee:
Alexey Torkhov
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Alexey Torkhov
Completed by
Alexey Torkhov

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.