Engine API Reference
    Preparing search index...

    Class ScriptRegistry

    Container for all ScriptTypes that are available to this application. Note that OasisW scripts can access the Script Registry from inside the application with AppBase#scripts.

    Hierarchy (View Summary)

    Index

    Constructors

    Methods

    • Add ScriptType to registry. Note: when createScript is called, it will add the ScriptType to the registry automatically. If a script already exists in registry, and the new script has a swap method defined, it will perform code hot swapping automatically in async manner.

      Parameters

      Returns boolean

      True if added for the first time or false if script already exists.

      var PlayerController = pc.createScript('playerController');
      // playerController Script Type will be added to pc.ScriptRegistry automatically
      console.log(app.scripts.has('playerController')); // outputs true
    • Registers a schema against a script instance.

      Parameters

      • id: string

        The key to use to store the schema

      • schema: AttributeSchema

        An schema definition for the script

      Returns void

    • Fire an event, all additional arguments are passed on to the event listener.

      Parameters

      • name: string

        Name of event to fire.

      • Optionalarg1: any

        First argument that is passed to the event handler.

      • Optionalarg2: any

        Second argument that is passed to the event handler.

      • Optionalarg3: any

        Third argument that is passed to the event handler.

      • Optionalarg4: any

        Fourth argument that is passed to the event handler.

      • Optionalarg5: any

        Fifth argument that is passed to the event handler.

      • Optionalarg6: any

        Sixth argument that is passed to the event handler.

      • Optionalarg7: any

        Seventh argument that is passed to the event handler.

      • Optionalarg8: any

        Eighth argument that is passed to the event handler.

      Returns EventHandler

      Self for chaining.

      obj.fire('test', 'This is the message');
      
    • Get ScriptType by name.

      Parameters

      Returns typeof ScriptType

      The Script Type if it exists in the registry or null otherwise.

      var PlayerController = app.scripts.get('playerController');
      
    • Returns a schema for a given script name.

      Parameters

      • id: string

        The key to store the schema under

      Returns undefined | AttributeSchema

      • The schema stored under the key
    • Check if a ScriptType with the specified name is in the registry.

      Parameters

      Returns boolean

      True if ScriptType is in registry.

      if (app.scripts.has('playerController')) {
      // playerController is in pc.ScriptRegistry
      }
    • Test if there are any handlers bound to an event name.

      Parameters

      • name: string

        The name of the event to test.

      Returns boolean

      True if the object has handlers bound to the specified event name.

      obj.on('test', () => {}); // bind an event to 'test'
      obj.hasEvent('test'); // returns true
      obj.hasEvent('hello'); // returns false
    • Get list of all ScriptTypes from registry.

      Returns typeof ScriptType[]

      list of all ScriptTypes in registry.

      // logs array of all Script Type names available in registry
      console.log(app.scripts.list().map(function (o) {
      return o.name;
      }));
    • Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.

      Parameters

      • Optionalname: string

        Name of the event to unbind.

      • Optionalcallback: HandleEventCallback

        Function to be unbound.

      • Optionalscope: any

        Scope that was used as the this when the event is fired.

      Returns EventHandler

      Self for chaining.

      const handler = () => {};
      obj.on('test', handler);

      obj.off(); // Removes all events
      obj.off('test'); // Removes all events called 'test'
      obj.off('test', handler); // Removes all handler functions, called 'test'
      obj.off('test', handler, this); // Removes all handler functions, called 'test' with scope this
    • Attach an event handler to an event.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optionalscope: any = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      Can be used for removing event in the future.

      obj.on('test', (a, b) => {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console
      const evt = obj.on('test', (a, b) => {
      console.log(a + b);
      });
      // some time later
      evt.off();
    • Attach an event handler to an event. This handler will be removed after being fired once.

      Parameters

      • name: string

        Name of the event to bind the callback to.

      • callback: HandleEventCallback

        Function that is called when event is fired. Note the callback is limited to 8 arguments.

      • Optionalscope: any = ...

        Object to use as 'this' when the event is fired, defaults to current this.

      Returns EventHandle

      • can be used for removing event in the future.
      obj.once('test', (a, b) => {
      console.log(a + b);
      });
      obj.fire('test', 1, 2); // prints 3 to the console
      obj.fire('test', 1, 2); // not going to get handled
    • Remove ScriptType.

      Parameters

      Returns boolean

      True if removed or False if already not in registry.

      app.scripts.remove('playerController');