Kerbal Space Program  1.12.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Member Functions | Static Public Member Functions | Public Attributes | Properties | List of all members
ModulePartVariants Class Reference

This part module will allow a part to have multiple "Variants". A Variant is a visual alternative of a part. It can change its materials properites and model. (Model changes shouldnt be drastic so it keeps consistent but are possible) When adding this module, an automatic "Base" Variant is made, this variant will reset the part to its original state. Parts that have variants will display a small icon in the left corner of the part selector, this icon can be clicked to toggle between them. You can also select a variant from the PAW by rightclicking in the part. More...

Inheritance diagram for ModulePartVariants:
PartModule IModuleInfo IMultipleDragCube IPartMassModifier IPartCostModifier

Public Member Functions

void AssumeDragCubePosition (string name)
 Used by the DragCubeSystem when it is generating drag cube entries on startup if none are found for this module. When called the module should set it's model position/setup to match the expected position/orientation when 'name' drag cube is active. More...
 
int GetCurrentVariantIndex ()
 Returns current variant index. More...
 
string[] GetDragCubeNames ()
 Should return an array of strings that are the drag cube names that this module implements. More...
 
Callback< Rect > GetDrawModulePanelCallback ()
 Return a method delegate to draw a custom panel, or null if not necessary. More...
 
override string GetInfo ()
 Returns a simple string for the module info. Supports rich-text syntax. More...
 
float GetModuleCost (float defaultCost, ModifierStagingSituation sit)
 Return the amount to modify the original part's dry cost by. Returned values are added to the base cost. (0 means no effect) More...
 
ModifierChangeWhen GetModuleCostChangeWhen ()
 Return under which circumstances the modulecost changes More...
 
override string GetModuleDisplayName ()
 Override this to provide a Localized version of the PartModules Name for UI components More...
 
float GetModuleMass (float defaultMass, ModifierStagingSituation sit)
 Return the amount to modify the original part's dry mass by. Returned values are added to the base mass. (0 means no effect) More...
 
ModifierChangeWhen GetModuleMassChangeWhen ()
 Return under which circumstances the modulemass changes More...
 
string GetModuleTitle ()
 Return a string title for your module. More...
 
string GetPrimaryField ()
 Return a string to be displayed in the main information box on the tooltip, or null if nothing is that important to be up there. More...
 
int GetVariantIndex (string variantName)
 Looks up a variant by its name. Used when a new variant is picked in the selector. More...
 
List< string > GetVariantNames ()
 Get the list of variant names for this module More...
 
List< string > GetVariantThemeNames ()
 Get the list of variant theme names for this module More...
 
bool HasVariant (string variantName)
 Check if a variant name exists More...
 
bool HasVariantTheme (string variantThemeName)
 Check if a variant theme exists More...
 
override void OnAwake ()
 On Awake creates the base variant of the part, so its ready when everyhthing else is loaded. More...
 
override void OnLoad (ConfigNode node)
 Use OnLoad to load any additional data from the ConfigNode provided More...
 
override void OnSave (ConfigNode node)
 Use OnSave to serialize additional module information into the ConfigNode provided More...
 
override void OnStart (StartState state)
 On Start refreshes the selected variant and connects the PAW events (if in the Editor). More...
 
void SetCubes (bool state)
 If useMultipleDragCubes is true and we are not using procedural drag cubes and the drag cube for the currently selected variant can be found on this part this method will: More...
 
bool SetVariant (string variantName)
 Tries to set a variant by name to this part. More...
 
bool SetVariantTheme (string variantThemeName)
 Tries to set a variant by name to this part. More...
 
bool UsesProceduralDragCubes ()
 Used by the DragCubeSystem when it is generating drag cube entries on startup if none are found for this module. Should return true if this module is to use procedural drag cubes and false if it is to generate drag cubes for the drag cube names returned in GetDragCubeNames method. More...
 
- Public Member Functions inherited from PartModule
void AddPartModuleAdjuster (AdjusterPartModuleBase newAdjuster)
 Call this to add an adjuster to this part module. More...
 
void AddPartModuleAdjusterList (List< AdjusterPartModuleBase > moduleAdjusters)
 Applies the appropriate module adjusters. Performs checks to make sure that the adjusters are valid too. More...
 
bool AppliedUpgrades ()
 Returns true if upgrades are applied More...
 
void ApplyAdjustersOnStart ()
 Called when a part module is loaded and applies all of the currently loaded adjusters. More...
 
virtual void ApplyUpgradeNode (List< string > appliedUps, ConfigNode node, bool doLoad)
 Applies the upgrades to a confignode. Will either copy the upgrades back to the node or (if doLoad) calls load/onload on it. More...
 
virtual bool ApplyUpgrades (StartState state)
 Will find and apply upgrades. Called during Part's ModulesOnStart, before a module's OnStart. More...
 
void Awake ()
 
delegate bool boolPMApplyUpgrades (PartModule pm, StartState state)
 
delegate bool boolPMBoolDelegate (PartModule pm, bool apply)
 
void ClearPersistentId ()
 Clear the modules persistentId More...
 
void Copy (PartModule fromModule)
 
virtual void DemoteToPhysicslessPart ()
 This method will be called from Part class DemoteToPhysicslessPart when the part is being converted from physical to physicsless part. It is called before the joints and rigidbodies are destroyed. More...
 
virtual bool FindUpgrades (bool fillApplied, ConfigNode node=null)
 Find applicable upgrades to the partmodule (isunlocked and isenabled) and add to the upgradesApplied list. Pass true if you want to add the upgrades to upgradesApplied, false if you just want to know if at least one upgrade is applicable (unlocked rather than enabled) More...
 
virtual Color GetCurrentColor ()
 Returns the current part module color. More...
 
virtual Color GetCurrentColor (string fieldName)
 Returns the current part module color for a field where usespe. More...
 
uint GetPersistenActiontId ()
 Get the modules persistentID, and create one if it doesnt already have one More...
 
uint GetPersistentId ()
 Get the modules persistentID, and create one if it doesnt already have one More...
 
virtual string GetStagingDisableText ()
 
virtual string GetStagingEnableText ()
 
virtual string GetUpgradeInfo ()
 Called by Upgrade Stats dialog More...
 
bool HasUpgrades ()
 Returns true if upgrades exist for the partmodule More...
 
virtual bool IsStageable ()
 Should this module be counted when seeing whether to have a stack icon present? Override in a module for custom behavior; otherwise returns true if the module (or something the module inherits from above PartModule itself) overrides OnActive() More...
 
bool IsValidContractObjective (string objectiveType)
 Returns if, for example, an antenna part module qualifies as an antenna for contracts. More...
 
void Load (ConfigNode node)
 
virtual void LoadUpgrades (ConfigNode node)
 Loads module-relevant upgrades from the partmodule confignode More...
 
uint NewPersistentId ()
 Reset the modules persistentId to a new number More...
 
virtual void OnActive ()
 Called when the part is set active (after unpacking etc) More...
 
virtual void OnColorChanged (Color color)
 Meant to be overwritten by part modules implementing color changes. In this case, it doesn't matter which color picker changed specifically. More...
 
virtual void OnColorChanged (Color color, string pickerID="")
 Meant to be overwritten by part modules implementing color changes More...
 
virtual void OnConstructionModeFixedUpdate ()
 This method will be called when in EVA Construction mode and this part and itself is disabled (when it is not attached to a vessel) every FixedUpdate(). More...
 
virtual void OnConstructionModeUpdate ()
 This method will be called when in EVA Construction mode and this part and itself is disabled (when it is not attached to a vessel) every Update(). More...
 
virtual void OnCopy (PartModule fromModule)
 Use OnCopy to copy any additional data from the PartModule provided More...
 
virtual void OnFixedUpdate ()
 Called every physics/fixed frame that the part is active More...
 
virtual void OnIconCreate ()
 Method fires just before components are stripped from the gameobject to make it an icon. (The part is instantiated and then various components like Part, PartModule, EffectBehaviour, Colliders, Particles, etc are stripped and then it's set as the icon prefab. This lets PartModules do stuff to the model right before that happens. More...
 
virtual void OnInactive ()
 Called before the part goes inactive (after packing etc) More...
 
virtual void OnInitialize ()
 Called on all modules after all parts are loaded but before they give the ship to the game More...
 
virtual void OnInventoryModeDisable ()
 This method will be called when this modules part and itself is first disabled (when it is not attached to a vessel) when created in Inventory/Construction mode. More...
 
virtual void OnInventoryModeEnable ()
 This method will be called when this modules part and itself is first enabled (when it is attached to a vessel) when created in Inventory/Construction mode. More...
 
void OnModuleAdjusterAddedWrapper (AdjusterPartModuleBase adjuster)
 Wrapper to check the mission expansion availability before performing processing specific to this part module when an adjuster is added. More...
 
virtual void OnModuleAdjusterRemoved (AdjusterPartModuleBase adjuster)
 Perform processing specific to this part module when an adjuster is removed. By default this does nothing is up to each part module to implement it properly. More...
 
virtual void OnPartCreatedFomInventory (ModuleInventoryPart moduleInventoryPart)
 This method is called when a part is being taken out from a slot while being in EVAConstruction mode. More...
 
virtual void OnStartBeforePartAttachJoint (StartState state)
 Called in flight scene in Part.Start just before the Part attachnode joints are created. More...
 
virtual void OnStartFinished (StartState state)
 Called when the part finishes starting. The StartState gives an indication of where in flight you are. All values may not be plugged in! More...
 
virtual void OnStoredInInventory (ModuleInventoryPart moduleInventoryPart)
 Called when the part is stored in an inventory. More...
 
virtual void OnUpdate ()
 Called every frame that the part is active More...
 
virtual void OnWasCopied (PartModule copyPartModule, bool asSymCounterpart)
 Called when the PartModule was copied, through Alt+Copy or symmetry More...
 
virtual void OnWillBeCopied (bool asSymCounterpart)
 Called when the PartModule is about to be copied, through Alt+Copy or symmetry More...
 
virtual bool OnWillBeMirrored (ref Quaternion rotation, AttachNode selPartNode, Part partParent)
 This is called in the Editor scene when a symmetry copy of a part is being positioned. Only called on the symmetry parts and only when symmetry mode is set to Mirror. It allows the mirror rotation to be changed and returned before being applied to the symmetry copy part.

Parameters
rotationThe current calculated rotation. Will be updated if method returns true.
selPartNodeThe attachnode.
partParentThe part that will become this part's parent.
Returns
True if the rotation was changed. Otherwise will return false.
More...
 
virtual List< Color > PresetColors ()
 Preset colors received for any part module. By default, returns only black, override to make your own selection. More...
 
virtual string PrintUpgrades ()
 
virtual void PromoteToPhysicalPart ()
 This method will be called from Part class PromoteToPhysicalPart when the part is being converted from physicsless to physical part. More...
 
void RemovePartModuleAdjuster (AdjusterPartModuleBase oldAdjuster)
 Call this to remove an adjuster from this part module. More...
 
void RemovePartModuleAdjusterList (List< AdjusterPartModuleBase > moduleAdjusters)
 Removes the appropriate module adjusters. Performs checks to make sure that the adjusters are valid too. More...
 
void Save (ConfigNode node)
 
virtual void SetStaging (bool newValue)
 Run by the part's staging toggle handler, sets staging on modules on symmetry counterparts. More...
 
void SetStagingState (bool newState)
 Set the staging enabled bool for this module. More...
 
virtual bool StagingEnabled ()
 Gets current staging status (is staging enabled for this module) Override me! More...
 
virtual bool StagingToggleEnabledEditor ()
 
virtual bool StagingToggleEnabledFlight ()
 
void ToggleStaging ()
 
virtual void UpdateStagingToggle ()
 Updates the staging toggle More...
 
delegate void voidPMApplyNodeDelegate (PartModule pm, List< string > appliedUps, ConfigNode node, bool doLoad)
 
delegate void voidPMDelegate (PartModule pm)
 
delegate void voidPMNodeDelegate (PartModule pm, ConfigNode node)
 

Static Public Member Functions

static void ApplyVariant (Part part, Transform meshRoot, PartVariant variant, Material[] materials, bool skipShader)
 Applies a variant to a group of materials. It will iterate through all the materials and when they match with the variant materials will copy their properties. More...
 
static void ApplyVariant (Part part, Transform meshRoot, PartVariant variant, Material[] materials, bool skipShader, int variantIndex)
 Applies a variant to a group of materials. It will iterate through all the materials and when they match with the variant materials will copy their properties. More...
 
static string GetTitle ()
 
static void UpdatePartPosition (AttachNode currentNode, AttachNode newNode)
 Will relocate parts depending on their attachment setup to a new attachnode position. More...
 
- Static Public Member Functions inherited from PartModule
static ReflectedAttributes GetReflectedAttributes (Type partModuleType)
 
static PartUpgradeState UpgradesAvailable (Part part)
 Returns true if at least one module on the part has at least one upgrade available (isUnlocked) More...
 
static PartUpgradeState UpgradesAvailable (Part part, ConfigNode node)
 Returns true if at least one module on the part has at least one upgrade available (isUnlocked) More...
 

Public Attributes

bool useMultipleDragCubes = true
 Determines whether this module will use multiple drag cubes. Default is true. Set to false for cosmetic-only varants where there may be other modules adjusting the drag cube (i.e. fairings) More...
 
bool useProceduralDragCubes = false
 Set true to use procedural drag cuges. More...
 
bool useVariantMass = false
 
List< PartVariantvariantList
 The List of available variants in this module (includes the base variant). More...
 
- Public Attributes inherited from PartModule
bool isEnabled = true
 
bool moduleIsEnabled = true
 
string moduleName
 
bool overrideStagingIconIfBlank = true
 
ModuleResourceHandler resHandler = new ModuleResourceHandler()
 
bool showUpgradesInModuleInfo = false
 
ProtoPartModuleSnapshot snapshot
 
string stagingDisableText = ""
 
bool stagingEnabled = true
 
string stagingEnableText = ""
 
bool stagingToggleEnabledEditor = false
 
bool stagingToggleEnabledFlight = false
 
List< ConfigNodeupgrades
 
List< string > upgradesApplied = new List<string>()
 
bool upgradesApply = true
 
bool upgradesAsk = true
 

Properties

bool IsMultipleCubesActive [get]
 
PartVariant SelectedVariant [get]
 The current selected variant of this module More...
 
- Properties inherited from PartModule
BaseActionList Actions [get]
 
int ClassID [get]
 
string ClassName [get]
 
List< AdjusterPartModuleBaseCurrentModuleAdjusterList [get]
 List of all the module adjusters that are currently active on this part module. More...
 
BaseEventList Events [get]
 
BaseFieldList Fields [get]
 
string GUIName [get]
 
bool HasAdjusters [get]
 Has this part module been adjusted? More...
 
ReflectedAttributes ModuleAttributes [get, set]
 
Part part [get, set]
 
uint PersistentActionsId [get, set]
 A unique identifier for each vessel including from when it was Shipconstruct More...
 
uint PersistentId [get]
 A unique identifier for each vessel including from when it was Shipconstruct More...
 
Vessel vessel [get]
 
- Properties inherited from IMultipleDragCube
bool IsMultipleCubesActive [get]
 Used by the DragCubeSystem when it is generating drag cube entries on startup if none are found for this module. Should return true if multiple drag cubes are expected to be generated for the part this module is a part of or false if not. More...
 

Additional Inherited Members

- Public Types inherited from PartModule
enum  PartUpgradeState { PartUpgradeState.NONE, PartUpgradeState.LOCKED, PartUpgradeState.AVAILABLE }
 
enum  StartState {
  StartState.None = 0, StartState.Editor = 1, StartState.PreLaunch = 2, StartState.Landed = 4,
  StartState.Docked = 8, StartState.Flying = 16, StartState.Splashed = 32, StartState.SubOrbital = 64,
  StartState.Orbital = 128
}
 
- Static Public Attributes inherited from PartModule
static voidPMApplyNodeDelegate ApplyUpgradeNodeDel
 
static boolPMApplyUpgrades ApplyUpgradesDel
 
static bool ApplyUpgradesEditorAuto = true
 
static boolPMBoolDelegate FindUpgradesDel
 
static voidPMNodeDelegate LoadExpansionNodes
 Hook for loading extra nodes common to all part modules. More...
 
static voidPMNodeDelegate LoadUpgradesDel
 
static voidPMNodeDelegate SaveExpansionNodes
 Hook for saving extra nodes common to all part modules. More...
 
static voidPMDelegate SetupExpansion
 Hook for performing extra setup common to all part modules. More...
 
static string UpgradesAvailableString = "#autoLOC_6002273"
 
static string UpgradesLockedString = "#autoLOC_6002274"
 
- Protected Member Functions inherited from PartModule
ConfigNode GetUpgrade (string name)
 
virtual void LoadUpgradesApplied (List< string > applieds, ConfigNode node)
 Load the applied upgrade names More...
 
virtual void OnModuleAdjusterAdded (AdjusterPartModuleBase adjuster)
 Perform processing specific to this part module when an adjuster is added. By default this does nothing is up to each part module to implement it properly. More...
 
virtual void SaveUpgradesApplied (ConfigNode node)
 Save the applied upgrades. More...
 
IEnumerator UpgradeWaitForScenarioModules ()
 
- Static Protected Attributes inherited from PartModule
static Dictionary< string,
ConfigNode
exclusives = new Dictionary<string, ConfigNode>()
 
static Dictionary< Type,
ReflectedAttributes
reflectedAttributeCache = new Dictionary<Type, ReflectedAttributes>()
 

Detailed Description

This part module will allow a part to have multiple "Variants". A Variant is a visual alternative of a part. It can change its materials properites and model. (Model changes shouldnt be drastic so it keeps consistent but are possible) When adding this module, an automatic "Base" Variant is made, this variant will reset the part to its original state. Parts that have variants will display a small icon in the left corner of the part selector, this icon can be clicked to toggle between them. You can also select a variant from the PAW by rightclicking in the part.

Member Function Documentation

static void ModulePartVariants.ApplyVariant ( Part  part,
Transform  meshRoot,
PartVariant  variant,
Material[]  materials,
bool  skipShader 
)
inlinestatic

Applies a variant to a group of materials. It will iterate through all the materials and when they match with the variant materials will copy their properties.

Parameters
variantThe variant to be applied.
materialsThe array of materials that will the variant applied to.
skipShaderIn some cases we dont want to apply the shader (Like the part preview in the editor), this flag will allow skipping it.
static void ModulePartVariants.ApplyVariant ( Part  part,
Transform  meshRoot,
PartVariant  variant,
Material[]  materials,
bool  skipShader,
int  variantIndex 
)
inlinestatic

Applies a variant to a group of materials. It will iterate through all the materials and when they match with the variant materials will copy their properties.

Parameters
variantThe variant to be applied.
materialsThe array of materials that will the variant applied to.
skipShaderIn some cases we dont want to apply the shader (Like the part preview in the editor), this flag will allow skipping it.
variantIndexThe index of 'variant'.
void ModulePartVariants.AssumeDragCubePosition ( string  name)
inline

Used by the DragCubeSystem when it is generating drag cube entries on startup if none are found for this module. When called the module should set it's model position/setup to match the expected position/orientation when 'name' drag cube is active.

Parameters
nameThe name of the drag cube to assume the position/setup for.

Implements IMultipleDragCube.

int ModulePartVariants.GetCurrentVariantIndex ( )
inline

Returns current variant index.

Returns
string [] ModulePartVariants.GetDragCubeNames ( )
inline

Should return an array of strings that are the drag cube names that this module implements.

Returns

Implements IMultipleDragCube.

Callback<Rect> ModulePartVariants.GetDrawModulePanelCallback ( )
inline

Return a method delegate to draw a custom panel, or null if not necessary.

Parameters
rect

Implements IModuleInfo.

override string ModulePartVariants.GetInfo ( )
inline

Returns a simple string for the module info. Supports rich-text syntax.

Implements IModuleInfo.

float ModulePartVariants.GetModuleCost ( float  defaultCost,
ModifierStagingSituation  sit 
)
inline

Return the amount to modify the original part's dry cost by. Returned values are added to the base cost. (0 means no effect)

Returns

Implements IPartCostModifier.

ModifierChangeWhen ModulePartVariants.GetModuleCostChangeWhen ( )
inline

Return under which circumstances the modulecost changes

Returns

Implements IPartCostModifier.

override string ModulePartVariants.GetModuleDisplayName ( )
inlinevirtual

Override this to provide a Localized version of the PartModules Name for UI components

Returns

Reimplemented from PartModule.

float ModulePartVariants.GetModuleMass ( float  defaultMass,
ModifierStagingSituation  sit 
)
inline

Return the amount to modify the original part's dry mass by. Returned values are added to the base mass. (0 means no effect)

Returns

Implements IPartMassModifier.

ModifierChangeWhen ModulePartVariants.GetModuleMassChangeWhen ( )
inline

Return under which circumstances the modulemass changes

Returns

Implements IPartMassModifier.

string ModulePartVariants.GetModuleTitle ( )
inline

Return a string title for your module.

Returns

Implements IModuleInfo.

string ModulePartVariants.GetPrimaryField ( )
inline

Return a string to be displayed in the main information box on the tooltip, or null if nothing is that important to be up there.

Returns

Implements IModuleInfo.

static string ModulePartVariants.GetTitle ( )
inlinestatic
int ModulePartVariants.GetVariantIndex ( string  variantName)
inline

Looks up a variant by its name. Used when a new variant is picked in the selector.

Parameters
variantNameThe name of the variant to be looked.
Returns
Returns 0 (the base variant if not found).
List<string> ModulePartVariants.GetVariantNames ( )
inline

Get the list of variant names for this module

Returns
list of names
List<string> ModulePartVariants.GetVariantThemeNames ( )
inline

Get the list of variant theme names for this module

Returns
list of theme names
bool ModulePartVariants.HasVariant ( string  variantName)
inline

Check if a variant name exists

Parameters
variantNameName to test
Returns
True if exists
bool ModulePartVariants.HasVariantTheme ( string  variantThemeName)
inline

Check if a variant theme exists

Parameters
variantNameName of theme to test
Returns
True if exists
override void ModulePartVariants.OnAwake ( )
inlinevirtual

On Awake creates the base variant of the part, so its ready when everyhthing else is loaded.

Reimplemented from PartModule.

override void ModulePartVariants.OnLoad ( ConfigNode  node)
inlinevirtual

Use OnLoad to load any additional data from the ConfigNode provided

Parameters
node

Reimplemented from PartModule.

override void ModulePartVariants.OnSave ( ConfigNode  node)
inlinevirtual

Use OnSave to serialize additional module information into the ConfigNode provided

Parameters
node

Reimplemented from PartModule.

override void ModulePartVariants.OnStart ( StartState  state)
inlinevirtual

On Start refreshes the selected variant and connects the PAW events (if in the Editor).

Reimplemented from PartModule.

void ModulePartVariants.SetCubes ( bool  state)
inline

If useMultipleDragCubes is true and we are not using procedural drag cubes and the drag cube for the currently selected variant can be found on this part this method will:

  • Reset all drag cubes on this part to a weight of zero.
  • Set the currently selected variant drag cube to a weight of one. Will always force an Update to the drag cubes on the part.
Parameters
state
bool ModulePartVariants.SetVariant ( string  variantName)
inline

Tries to set a variant by name to this part.

Parameters
variantNameThe name of the variant
Returns
Returns true if the variant was found.
bool ModulePartVariants.SetVariantTheme ( string  variantThemeName)
inline

Tries to set a variant by name to this part.

Parameters
variantNameThe name of the variant
Returns
Returns true if the variant was found.
static void ModulePartVariants.UpdatePartPosition ( AttachNode  currentNode,
AttachNode  newNode 
)
inlinestatic

Will relocate parts depending on their attachment setup to a new attachnode position.

Parameters
currentNodeThe current attachnode
newNodeThe new attachnode
parentPartThe parent part of this modules part.
bool ModulePartVariants.UsesProceduralDragCubes ( )
inline

Used by the DragCubeSystem when it is generating drag cube entries on startup if none are found for this module. Should return true if this module is to use procedural drag cubes and false if it is to generate drag cubes for the drag cube names returned in GetDragCubeNames method.

Returns

Implements IMultipleDragCube.

Member Data Documentation

bool ModulePartVariants.useMultipleDragCubes = true

Determines whether this module will use multiple drag cubes. Default is true. Set to false for cosmetic-only varants where there may be other modules adjusting the drag cube (i.e. fairings)

bool ModulePartVariants.useProceduralDragCubes = false

Set true to use procedural drag cuges.

bool ModulePartVariants.useVariantMass = false
List<PartVariant> ModulePartVariants.variantList

The List of available variants in this module (includes the base variant).

Property Documentation

bool ModulePartVariants.IsMultipleCubesActive
get
PartVariant ModulePartVariants.SelectedVariant
get

The current selected variant of this module


The documentation for this class was generated from the following file: