Kerbal Space Program  1.12.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Properties | List of all members
ModuleWheelBase Class Reference
Inheritance diagram for ModuleWheelBase:
PartModule IModuleInfo IContractObjectiveModule

Public Types

enum  DriftCorrectionState { DriftCorrectionState.Idle, DriftCorrectionState.Acquire, DriftCorrectionState.Fix }
 
- 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
}
 

Public Member Functions

void ActAutoFrictionToggle (KSPActionParam act)
 
float ApplyGeeBias (float gee)
 
bool CheckContractObjectiveValidity ()
 Whether this particular module is valid for this objective. For example, leg wheels versus rover wheels. More...
 
override 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 void DisableSuspension (KSPActionParam param)
 
virtual void EnableSuspension (KSPActionParam param)
 
void EvtAutoFrictionToggle ()
 
string GetContractObjectiveType ()
 Gets the string identifier for this contract type. Stock contracts use ContractDefs constants, but could be used for non-stock contracts. More...
 
Callback< Rect > GetDrawModulePanelCallback ()
 Return a method delegate to draw a custom panel, or null if not necessary. More...
 
override string GetInfo ()
 return a simple string for the module info. Supports rich-text syntax. More...
 
override string GetModuleDisplayName ()
 Override this to provide a Localized version of the PartModules Name for UI components 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...
 
override void OnAwake ()
 Method fires once the module has been added to the part. Use for first time setup. Module will not have loaded fully by this point More...
 
void OnDestroy ()
 
override 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...
 
override 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 OnPutToGround (PartHeightQuery qry)
 
override void OnStart (PartModule.StartState state)
 
override void PromoteToPhysicalPart ()
 This method will be called from Part class PromoteToPhysicalPart when the part is being converted from physicsless to physical part. More...
 
void RegisterSubmodule (ModuleWheelSubmodule m)
 
void UnregisterSubmodule (ModuleWheelSubmodule m)
 
void UpdateFriction ()
 
- 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 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 OnLoad (ConfigNode node)
 Use OnLoad to load any additional data from the ConfigNode provided 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 OnSave (ConfigNode node)
 Use OnSave to serialize additional module information into the ConfigNode provided More...
 
virtual void OnStart (StartState state)
 Called when the part starts. The StartState gives an indication of where in flight you are. All values may not be plugged in! 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 ()
 
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)
 

Public Attributes

int activeSubsteps = -1
 
float adherentStart = 0.5f
 
bool ApplyForcesToParent = false
 
bool autoFriction = true
 if true->frictionMultiplier is a function of the celestial body, if false->frictionMultiplier is User Selectable More...
 
bool autoFrictionAvailable = true
 
Vector3 center
 
string clipObject = string.Empty
 
bool FitWheelColliderToMesh = false
 
float frictionAdherent = 0.25f
 Location of the peak friction (aka sticktion). After this point, the wheel will start to "break free" and slide uncontrollably. More...
 
float frictionLimit = 1.1f
 
float frictionMultiplier = 1f
 Percent increase in friction at 0g. If geeBias = 1, then frictionMultiplier = 2.0 at 0g. More...
 
float frictionPeak = 1.45f
 Location of the start of the lowest point of friction. Akin to dynamic friction. More...
 
float frictionSharpness = 0f
 
float geeBias = 1.6f
 
float groundHeightOffset = 0f
 
int inactiveSubsteps = -1
 
bool isGrounded = false
 
float limitStart = 7f
 
float mass
 
float minimumDownforce = 0.5f
 This is the minimum downforce to apply to the wheel. More...
 
float peakStart = 4f
 
float radius
 
Vector2 slipDisplacement
 Lat/Long slip displacement (in m/s) of the wheel. More...
 
float springSlerpRate = 0.02f
 The rate as which the spring targetPosition is slerped in VPWheelCollider. More...
 
bool suspensionEnabled = true
 
float suspensionForceSharpness = 10f
 
float tireForceSharpness = 10f
 
string TooltipPrimaryField = null
 
string TooltipTitle = "Wheel"
 
bool useNewFrictionModel = false
 If set to true will use the new friction model. More...
 
Transform wheelColliderHost
 The root of the wheel collider component More...
 
string wheelColliderTransformName = "wheelCollider"
 
float wheelDamping = 0.05f
 
float wheelMaxSpeed = 1000.0f
 
Transform wheelTransform = null
 
string wheelTransformName = ""
 
WheelType wheelType = WheelType.FREE
 
- 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
 

Protected Member Functions

void ActionUIUpdate ()
 
void ATsymPartUpdate ()
 
Vector3 getFixFwd ()
 
void getFixTorque (Vector3 fixOrt, Vector3 refOrt)
 
bool LandedDetectionNeedsUpdate (Collider hitCollider, Collider hitColliderPrev, Vessel vContact, bool isGrounded)
 
void updateDriftFix ()
 
- 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 ()
 

Properties

WheelSubsystems InopSystems [get]
 
KSPWheelController Wheel [get]
 
Vector3 WheelOrgPosR [get, set]
 relative 'pristine' position of wheel transform, in part space More...
 
Quaternion WheelOrgRotR [get, set]
 relative 'pristine' rotation of wheel transform, in part space 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]
 

Additional Inherited Members

- 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...
 
- 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"
 
- Static Protected Attributes inherited from PartModule
static Dictionary< string,
ConfigNode
exclusives = new Dictionary<string, ConfigNode>()
 
static Dictionary< Type,
ReflectedAttributes
reflectedAttributeCache = new Dictionary<Type, ReflectedAttributes>()
 

Member Enumeration Documentation

Enumerator
Idle 
Acquire 
Fix 

Member Function Documentation

void ModuleWheelBase.ActAutoFrictionToggle ( KSPActionParam  act)
inline
void ModuleWheelBase.ActionUIUpdate ( )
inlineprotected
float ModuleWheelBase.ApplyGeeBias ( float  gee)
inline
void ModuleWheelBase.ATsymPartUpdate ( )
inlineprotected
bool ModuleWheelBase.CheckContractObjectiveValidity ( )
inline

Whether this particular module is valid for this objective. For example, leg wheels versus rover wheels.

Returns
If the module is valid.

Implements IContractObjectiveModule.

override void ModuleWheelBase.DemoteToPhysicslessPart ( )
inlinevirtual

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.

Reimplemented from PartModule.

virtual void ModuleWheelBase.DisableSuspension ( KSPActionParam  param)
inlinevirtual
virtual void ModuleWheelBase.EnableSuspension ( KSPActionParam  param)
inlinevirtual
void ModuleWheelBase.EvtAutoFrictionToggle ( )
inline
string ModuleWheelBase.GetContractObjectiveType ( )
inline

Gets the string identifier for this contract type. Stock contracts use ContractDefs constants, but could be used for non-stock contracts.

Returns
A string identifier for this type of objective.

Implements IContractObjectiveModule.

Callback<Rect> ModuleWheelBase.GetDrawModulePanelCallback ( )
inline

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

Parameters
rect

Implements IModuleInfo.

Vector3 ModuleWheelBase.getFixFwd ( )
inlineprotected
void ModuleWheelBase.getFixTorque ( Vector3  fixOrt,
Vector3  refOrt 
)
inlineprotected
override string ModuleWheelBase.GetInfo ( )
inline

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

Returns

Implements IModuleInfo.

override string ModuleWheelBase.GetModuleDisplayName ( )
inlinevirtual

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

Returns

Reimplemented from PartModule.

string ModuleWheelBase.GetModuleTitle ( )
inline

Return a string title for your module.

Returns

Implements IModuleInfo.

string ModuleWheelBase.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.

bool ModuleWheelBase.LandedDetectionNeedsUpdate ( Collider  hitCollider,
Collider  hitColliderPrev,
Vessel  vContact,
bool  isGrounded 
)
inlineprotected
override void ModuleWheelBase.OnAwake ( )
inlinevirtual

Method fires once the module has been added to the part. Use for first time setup. Module will not have loaded fully by this point

Reimplemented from PartModule.

void ModuleWheelBase.OnDestroy ( )
inline
override void ModuleWheelBase.OnInventoryModeDisable ( )
inlinevirtual

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.

Reimplemented from PartModule.

override void ModuleWheelBase.OnInventoryModeEnable ( )
inlinevirtual

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.

Reimplemented from PartModule.

void ModuleWheelBase.OnPutToGround ( PartHeightQuery  qry)
inline
override void ModuleWheelBase.OnStart ( PartModule.StartState  state)
inline

< Real dirty crunch hack to allow each wheel module to specify one object that clips. _(ツ)_/

override void ModuleWheelBase.PromoteToPhysicalPart ( )
inlinevirtual

This method will be called from Part class PromoteToPhysicalPart when the part is being converted from physicsless to physical part.

Reimplemented from PartModule.

void ModuleWheelBase.RegisterSubmodule ( ModuleWheelSubmodule  m)
inline
void ModuleWheelBase.UnregisterSubmodule ( ModuleWheelSubmodule  m)
inline
void ModuleWheelBase.updateDriftFix ( )
inlineprotected
void ModuleWheelBase.UpdateFriction ( )
inline

Member Data Documentation

int ModuleWheelBase.activeSubsteps = -1
float ModuleWheelBase.adherentStart = 0.5f
bool ModuleWheelBase.ApplyForcesToParent = false
bool ModuleWheelBase.autoFriction = true

if true->frictionMultiplier is a function of the celestial body, if false->frictionMultiplier is User Selectable

bool ModuleWheelBase.autoFrictionAvailable = true
Vector3 ModuleWheelBase.center
string ModuleWheelBase.clipObject = string.Empty
bool ModuleWheelBase.FitWheelColliderToMesh = false
float ModuleWheelBase.frictionAdherent = 0.25f

Location of the peak friction (aka sticktion). After this point, the wheel will start to "break free" and slide uncontrollably.

float ModuleWheelBase.frictionLimit = 1.1f
float ModuleWheelBase.frictionMultiplier = 1f

Percent increase in friction at 0g. If geeBias = 1, then frictionMultiplier = 2.0 at 0g.

float ModuleWheelBase.frictionPeak = 1.45f

Location of the start of the lowest point of friction. Akin to dynamic friction.

float ModuleWheelBase.frictionSharpness = 0f
float ModuleWheelBase.geeBias = 1.6f
float ModuleWheelBase.groundHeightOffset = 0f
int ModuleWheelBase.inactiveSubsteps = -1
bool ModuleWheelBase.isGrounded = false
float ModuleWheelBase.limitStart = 7f
float ModuleWheelBase.mass
float ModuleWheelBase.minimumDownforce = 0.5f

This is the minimum downforce to apply to the wheel.

float ModuleWheelBase.peakStart = 4f
float ModuleWheelBase.radius
Vector2 ModuleWheelBase.slipDisplacement

Lat/Long slip displacement (in m/s) of the wheel.

float ModuleWheelBase.springSlerpRate = 0.02f

The rate as which the spring targetPosition is slerped in VPWheelCollider.

bool ModuleWheelBase.suspensionEnabled = true
float ModuleWheelBase.suspensionForceSharpness = 10f
float ModuleWheelBase.tireForceSharpness = 10f
string ModuleWheelBase.TooltipPrimaryField = null
string ModuleWheelBase.TooltipTitle = "Wheel"
bool ModuleWheelBase.useNewFrictionModel = false

If set to true will use the new friction model.

Transform ModuleWheelBase.wheelColliderHost

The root of the wheel collider component

string ModuleWheelBase.wheelColliderTransformName = "wheelCollider"
float ModuleWheelBase.wheelDamping = 0.05f
float ModuleWheelBase.wheelMaxSpeed = 1000.0f
Transform ModuleWheelBase.wheelTransform = null
string ModuleWheelBase.wheelTransformName = ""
WheelType ModuleWheelBase.wheelType = WheelType.FREE

Property Documentation

WheelSubsystems ModuleWheelBase.InopSystems
get
KSPWheelController ModuleWheelBase.Wheel
get
Vector3 ModuleWheelBase.WheelOrgPosR
getset

relative 'pristine' position of wheel transform, in part space

Quaternion ModuleWheelBase.WheelOrgRotR
getset

relative 'pristine' rotation of wheel transform, in part space


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