Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Excerpt |
---|
I will process event handler definitions as defined by my process subroutine...Process an "Action Object". |
Purpose
Determines how event handler objects are processed.
Transfer your own consciousnessWhen a task is triggered, NEXUS performs a search to find an associated Action Object. For more information on how the search is performed, see The Concept.
Once an Action Object has been found, it's the job of a Process subroutine to perform the action.
Build your own
Commander, it is strongly recommended that you base any custom process subroutines on the standard NEXUS.process.js subroutine, as that subroutine handles everything that you can find in the Memory Banks.
A process subroutine defines the NEXUS.process() method. It will be passed an event key, including suffix if applicable, and one or more other parameters depending on the event that's being triggered.
The event key will already have been determined to exist in NEXUS.do object, so the process subroutine should:
- Get the event handler object
- Process the event handler object in the desired manner
Your mod the following parameters:
- task – the full name of the task that was called (taskName + objectKey + suffix)
- action – the action object associated with the task
- obj – the main object passed from the external event/function
- etc... – any additional data passed form the external event/function
Your subroutine should be structured like this:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
NEXUS.process = (function() { // ///////////////////////////////////////////////////////////////// // PRIVATE VARS var chimp = "hairy"; // just an example :p // ///////////////////////////////////////////////////////////////// // PUBLIC PROCESS FUNCTION var process = function(eventKeytask,action,obj,etc) { // getprocess the event handlerobject object var data = this.do[eventKey];// up to you how to do that, take a look at existing mods for examples (: // process the event objectwhen processing functions, always wrap in a try..catch try //{ up to you how to do that, take a look at existing mods for examples (: return true; // true = processed successfully, false = failed action.fn.apply(this,arguments); } catch(e) { console(task+" error:"+e.message); } // Return values can be: // * true = action performed, no further work // * false = action failed, no further work // * -1 = action performed, continue search return true; } // ///////////////////////////////////////////////////////////////// // PRIVATE FUNCTIONS var isFoo = function(foo) { // just an example :p return (foo != "bar"); } // return your process function return process; })(); |
If you want to be super-helpful to other people looking at your code:
- Make it easy to understand!
- Make it deal with common event handler object properties!
- Document deviations and differences compared to the standard NEXUS.process.js
File name convention
Process subroutines use the following naming convention: "NEXUS.process_modName.js", where "modName" is the name of your mod.
Div | ||
---|---|---|
| ||
My consciousness You can only contain define one process subroutine at a timeProcess subroutine per NEXUS instance. |
Div | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
SubroutinesAbsorb:
|
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
Memory BanksObserve:
|