Main   Class List   Namespace List   Wiki

Packages

The package keyword tells the console that the subsequent block of code is to be declared but not loaded. Packages provide dynamic function-polymorphism in TorqueScript. In short, a function defined in a package will over-ride the prior definition of a same named function when the is activated. When the package is subsequently de-activated, the previous definition of any overridden functions will be re-asserted.

A package has the following syntax:

package package_name 
{
   function function_definition0() 
   {
      // code
   }

   function function_definitionN() 
   {
      // code
   }
};

Some things to know:

In order to use the functions in a package, the package must be activated:

activatePackage(package_name);

Subsequently a package can be deactivated:

deactivatePackage(package_name);

Usage

First, define a function and two packages, each of which provides an alternative definition by the same name.

function testFunction() 
{
   echo( "testFunction() - unpackaged." );
}

package MyPackage0
{
  function testFunction() 
  {
      echo( "testFunction() - MyPackage0." );
  }
};

package MyPackage1
{
  function testFunction() 
  {
      echo( "testFunction() - MyPackage1." );
  }
};

Now invoke the testFunction() function from the console under three different conditions:

==> testFunction();
testFunction() - unpackaged.

==> activatePackage( MyPackage0 );

==> testFunction(); 
testFunction() - MyPackage0.

==> activatePackage( MyPackage1 );

==> testFunction(); 
testFunction() - MyPackage1.

==> deactivatePackage( MyPackage0 );  // MyPackage1 is automatically deactivated.

==> testFunction(); 
testFunction() - unpackaged.
See also:
Packages


Copyright © GarageGames, LLC. All Rights Reserved.