
Detailed Description
The components represents the GO that will move trough a path of Nodes.
It needs a Transform GOToMove (the actual Actor) that will modify, and a firstNode to start with. When the thruster is working (ignition on, no faults and throttle > 0) it begins to update the GOToMove properties (position and rotation/scale if needed).
Programatically you can restart the path, after it reaches the end. It works with circular (infinite repeating) nodes too.
!! The GOToMove must NOT have a Rigidbody with forces applied or other effects, or else the animations will conflict with the physics engine.
Like all thrusters, it is compatible with most of the Thrusters.Helpers components, including but not limited to controllers (player or animation based) or special effects (Light, Audio and Particles).
The thruster is built for all GO that have a Transform (2D/3D but not UI elements).
Member Data Documentation
◆ GOToMove
Transform BArtisan.Thrusters.Paths.BThrusterPathActor.GOToMove |
◆ firstNode
BThrusterPathNode BArtisan.Thrusters.Paths.BThrusterPathActor.firstNode |
◆ accelerationThrottlePerFrame
|
inherited |
Default throttle update value for each time the Accelerate() function is called. Save value is used for Decelerate() but with a negative sign.
◆ debugLog
|
inherited |
Enable to debug this component. Warning: it may result in CPU intensive debug messages (each frame).
Property Documentation
◆ MinThrottle
|
getsetinherited |
Minimum value (inclusive) of the throttle/engine power. Non-zero if you want the object never to be still.
◆ MaxThrottle
|
getsetinherited |
Maximum value (inclusive) of the throttle/engine power.
◆ IgnitionOn
|
getsetinherited |
Ignition state of the thruster. If on means the throttle can be applied (if no faults are present).
◆ NormalizedThrottle
|
getsetinherited |
Get the current throttle value as a value between 0-1 (based on the min/max/current throttle).
◆ Normalized100Throttle
|
getsetinherited |
Get the current throttle value as a value between 0-100 (based on min/max/current throttle).
◆ Throttle
|
getsetinherited |
The current raw value of the throttle. It is always clamped between min/max.
◆ acceleratedThisFrame
|
getinherited |
Flag used to keep track if any controller accelerated (at least once) during the current frame.
Member Function Documentation
◆ StartNewPath()
|
virtual |
Set a new starting node and begins a new path. If the GOToMove is currently in a segment/path it cancel the current animations. It does not change the current position/rotation/scale.
- Parameters
-
newFirstNode
◆ RestartPath()
|
virtual |
The next node to be visited is the firstNode. If the GOToMove is currently in a segment/path it cancel the current animations. It does not change the current position/rotation/scale.
◆ GetNextNodesInPath()
|
virtual |
Fetch a list of nodes in the order they will be followed. If you modify dinamically the nodes connection this list will not be updated, you have to call it again. It does not support circular paths, meaning it stops adding nodes to the list when it finds a node that was already visited.
- Returns
- The next-to be visited nodes, in order.
◆ TurnOn()
|
virtualinherited |
Turn on the thruster (set the ignition on).
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate().
◆ TurnOff()
|
virtualinherited |
Turn off the thruster (set the ignition off).
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate().
◆ ToggleOnOff()
|
virtualinherited |
Toggle the ignition, if it is On it will turn it off and viceversa.
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate().
◆ IsTurnedOnAndHasNoFaults()
|
virtualinherited |
Checks if the engine is actually running. The ignition must be on and free of problems.
- Returns
- true if the engine is working and there are no faults
◆ IsTurnedOn()
|
virtualinherited |
The ignition is on, thruster is powered. It does NOT guarantee the thruster is working, see faults.
- Returns
◆ IsTurnedOff()
|
virtualinherited |
The ignition is off, thruster is not powered on.
- Returns
◆ HasFaults()
|
virtualinherited |
Checks if the thruster has any problems/faults.
- Returns
- true if the thruster is temporarily broken.
◆ IsFreeOfFaults()
|
virtualinherited |
Checks if the engine is free of problems/faults.
- Returns
◆ AddFault()
|
virtualinherited |
Add a new problem to this engine. It disables the engine until all the problems are removed.
- Parameters
-
faultUniqueID Each problem must have an unique string id.
Referenced by BArtisan.Thrusters.Helpers.Faults.BThrusterHelperFault.AddFault().
◆ RemoveFault()
|
virtualinherited |
Remove a fault (problem). If the fault was the last one (in the list), and the ignition is on the thruster will resume it's effect.
- Parameters
-
faultUniqueID Each problem must have an unique string id.
Referenced by BArtisan.Thrusters.Helpers.Faults.BThrusterHelperFault.RemoveFault().
◆ RemoveAllFaults()
|
virtualinherited |
Remove all current faults, restoring the thruster to its original state.
◆ GetFaults()
|
virtualinherited |
Get a list of all current fault ID's.
- Returns
- fault list clone with ID's.
◆ Accelerate()
|
virtualinherited |
Increase the thruster throttle with the accelerationThrottlePerFrame. To modify the throttle with a specific value use AddThrottle(); The new value is always clamped between min and max throttle values.
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate().
◆ AddThrottle()
|
virtualinherited |
Add (positive value) or substract (negative value) the throttle value. The new value is always clamped between min and max throttle values.
- Parameters
-
addValue Positive to increase, negative to decrease the throttle.
◆ Decelerate()
|
virtualinherited |
Decrease the thruster throttle with the accelerationThrottlePerFrame. To modify the throttle with a specific value use AddThrottle();
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate().
◆ SetThrottle()
|
virtualinherited |
Set a new value of the throttle. The new value is always clamped between min and max throttle values.
- Parameters
-
newValue
◆ SetThrottleNormalizedValue()
|
virtualinherited |
Set a new value of the throttle, based on a percent unit interval 0-1. The throttle value will be relative of min/max.
- Parameters
-
newNormalized 0 will set the throttle to the minimum value, 0.5f at half and 1f at maximum.
◆ SetThrottle100Value()
|
virtualinherited |
Set a new value of the throttle, based on a percent interval 0-100. /// The throttle value will be relative of min/max.
- Parameters
-
newNormalized 0 to set the minimum value, 50 to half and 100 to maximum.
◆ SetMinimumThrottle()
|
virtualinherited |
Set the throttle to it's minimum value (see MinThrottle). Usually min is 0 and this command is used for Stop.
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate(), and BArtisan.Thrusters.Helpers.Controllers.BThrusterContinuousController.RestartCoroutine().
◆ SetMaximumThrottle()
|
virtualinherited |
Set the throttle to it's maximum value (see MaxThrottle). Full speed ahead!
Referenced by BArtisan.Thrusters.Helpers.Controllers.BThrusterKeyController.Accelerate(), and BArtisan.Thrusters.Helpers.Controllers.BThrusterContinuousController.RestartCoroutine().
◆ GetThrottle()
|
virtualinherited |
Get the throttle raw value (absolute).
- Returns
◆ IsAtMinimumThrottle()
|
virtualinherited |
Easy check if the throttle value is equal to MinThrottle.
- Returns
- boolean
◆ IsAtMaximumThrottle()
|
virtualinherited |
Easy check if the throttle value is equal to MaxThrottle.
- Returns
- boolean