The System Node $REPOSITORY is in charge of telling C++ some things about the directory structure of your repository. Much of your repository structure is defined using Master Control, but there are some paths that need to be specified and editable from within the game itself.
The primary responsibility of the $REPOSITORY system node is to tell the engine where it can find the art resources (.dat, .dyc, animation scripts, mesh files) for a given character specification. At a later date, the system node may be expanded with additional functionality for talking to the repository.
What problem(s) does this solve?
- Supply repository path information to the engine for character specifications
$REPOSITORY does not currently require any extension
The functionality of the $REPOSITORY system node currently has no functionality that you are likely to have any need to override or extend.
The $NPC system node implements a game-specific extension of $REPOSITORY's definition of character specifications, and consequently is a more suitable target for game-specific overrides.
Adding game-specific functionality
As a required class/script, it is not permissible to make changes to the _repositoryClassMethods script. Instead, extension/overriding the script is accomplished by the creation of a game-specific class (and class methods script) that is GLOMmed onto the REPOSITORY prototype.
- Create a new class
- Create a class method script for the class
- GLOM the class onto the prototype
Create a game-specific class
Using the DOM Editor create a new (server|client) class. Our recommendation is that you use a class name that incorporates the _repository as a suffix to the name (ex. HJ_repository), this makes it easier to locate the pair of classes (the required script prefixed in _repository and your game-specific class).
Once you have created the game-specific class, create a new client class methods script for that class.
Adding a game-specific class
Adding your game-specific class to the REPOSITORY prototype is achieved using the System Node Configuration GUI or the CLI server command \mpac or client |mpac in the Console Panel. The System Node Configuration GUI is the preferred method because it handles the communication to update any instantiations of a system node to reflect the changes you have made.
Using the System Node Configuration GUI
Opening the System Node Configuration GUI requires you to access the hidden Utilities Interface toolbox, located in the top left corner of the render window with
ctrl-shift-click (or press
F5), which will open the Interface. On the Tools tab within the menu, is an option to open the System Nodes Configuration GUI.
See also: Adapting Clean Engine
Using the CLI
It is important to recognize that modification of the prototype from which a system node is instantiated will not update any instantiations that have already been made in various local GOMs. That means your changes will not take effect until the area (in the case of server system nodes) restarts, or the client (in the case of client system nodes), restarts.
\mpac REPOSITORY, hj_repository;
|mpac REPOSITORY, hj_repository;