# PhasedObject

from direct.showbase.PhasedObject import PhasedObject

This class is governs the loading and unloading of successive phases in an ordered and automatic manner.
An object can only have one phase at any given moment. At the completion of setPhase() the current and all previous phases are guaranteed to be loaded, while all later phases are guaranteed to be unloaded.
In order to define a phase, simply define the functions: loadPhase<#> and unloadPhase<#> where # corresponds to the number of the phase to be defined and # >= 0.
You also have the ability to define alias for phases so that your function definitions are more descriptive. The way to do this is to provide an aliasMap to __init__(). The aliasMap is of the form {'alias':#, ...}. You can then call setPhase() with this alias as well.
So for example, if you wanted to alias phase 0 to 'Far' you would define loadPhaseFar() and unloadPhaseFar(). Upon calling setPhase(0), setPhase('Far'), setPhase(<any phase greater than 0>), or setPhase(<any alias greater than 'Far'>), loadPhaseFar() will be invoked.
For a skeleton example class, see the AnfaPhasedObject class definition lower in this file.

## Inheritance:

PhasedObject:

## Methods of PhasedObject:

__init__
__loadPhase
__phaseNotFound
__repr__
__str__
__unloadPhase
cleanup
getAliasPhase
getPhase
getPhaseAlias
setAlias
setPhase

__init__ def __init__(self, aliasMap={}) Undocumented function.

__loadPhase def __loadPhase(self, phase) Undocumented function.

__phaseNotFound def __phaseNotFound(self, mode, aPhase) Undocumented function.

__repr__ def __repr__(self) Undocumented function.

__str__ def __str__(self) Undocumented function.

__unloadPhase def __unloadPhase(self, phase) Undocumented function.

cleanup def cleanup(self) Will force the unloading, in correct order, of all currently loaded phases.

getAliasPhase def getAliasPhase(self, alias) Returns the phase number of an alias, if it exists. Otherwise, returns the alias.

getPhase def getPhase(self) Returns the current phase (or alias, if defined) this object is currently in.

getPhaseAlias def getPhaseAlias(self, phase) Returns the alias of a phase number, if it exists. Otherwise, returns the phase number.

setAlias def setAlias(self, phase, alias) Map an alias to a phase number. phase must be >= 0 and alias must be a string of characters suitable for python variable names. The mapping must be one-to-one.

setPhase def setPhase(self, aPhase) aPhase can be either a phase number or a predefined alias. Will invoke a sequence of loadPhase*() or unloadPhase*() functions corresponding to the difference between the current phase and aPhase, starting at the current phase.