gyroscopic_propeller_bearing
Gyroscopic propeller bearing. On top of the standard propeller-bearing API,
exposes the gyro's internal state and a persistent manual-override target
that replaces the bearing's automatic gravity-tracking.
The bearing always applies its hard 12° cone clamp around the block
normal, snaps to rest when redstone-powered, and gates the move by
getStabilizationStrength — these still apply on top of any
manual target.
| getBlockNormal() | The bearing's mounted-facing direction as a unit vector. |
|---|---|
| getTiltAngle() | Angle between the current thrust direction and the bearing's mounted-facing direction, in degrees. |
| getStabilizationStrength() | Effective stabilization gain in [0, 1]. |
| setManualTarget(target) | Install a persistent manual target direction. |
| clearManualTarget() | Remove any manual target, returning the bearing to default gravity-tracking behavior. |
| getManualTarget() | |
| getAxis() | Get the bearing's mounted direction. |
| getThrustVector() | Get the bearing's thrust direction vector. |
| getFacingVector() | Get the bearing's facing direction vector. |
| getRotationSpeed() | Get the bearing's rotation speed. |
| getAngularSpeed() | Get the bearing's angular speed. |
| getAngle() | Get the bearing's current visual angle. |
| getThrust() | Get the bearing's current thrust output. |
| getAirflow() | Get the bearing's current airflow. |
| getSailPower() | Get the bearing's total sail power. |
| isActive() | Check whether the bearing is currently active. |
| getThrustHandedness() | Get the bearing's thrust handedness. |
| setThrustHandedness(handedness) | Set the bearing's thrust handedness. |
| isAssembled() | Check whether the bearing has assembled a contraption. |
| assemble() | Assemble the bearing's contraption. |
| disassemble() | Disassemble the bearing's contraption. |
| isWoodenTop() | Check whether the bearing has a wooden top variant. |
| getSelfId() | Get this block's id. |
| getSourceId() | Get the id of the block immediately driving this one, or nil if this block has no source. |
| getSubnetworkAnchorId() | Get the id of this block's speed-zone anchor — the gearshift / clutch / speed controller / generator that defines the start of this speed zone. |
| getNetworkId() | Get the id of this block's kinetic network. |
| getKind() | Get this block's role on the kinetic graph: one of "generator", "split_shaft", "consumer", or "passthrough". |
| getSpeed() | Get the local rotational speed at this block. |
| hasSource() | Check whether this block is connected to a kinetic source. |
| isOverstressed() | Check whether the block's network is overstressed. |
| getStressImpact() | Get the stress impact of this block on its network — how much stress it draws while running. |
| getStressContribution() | Get this block's contribution to its network's stress capacity. |
- getBlockNormal()Source
The bearing's mounted-facing direction as a unit vector. This is the "rest" thrust direction the gyro returns to when unpowered or when stabilization is inactive.
Returns
- {
number... } A three-element list {x, y, z}.
- {
- getTiltAngle()Source
Angle between the current thrust direction and the bearing's mounted-facing direction, in degrees. Bounded by the bearing's hard 12° cone clamp.
Returns
numberDeflection angle in degrees, in [0, 12].
- getStabilizationStrength()Source
Effective stabilization gain in [0, 1]. Multiplies any tilt input against the bearing's rest direction — at 0 the bearing snaps to
getBlockNormaland ignores any target; at 1 it tracks the target fully. Computed as the product of three gates:- - 0 if no contraption is assembled, else 1. - Multiplied by `|speed|` when `|speed| < 1`; otherwise unchanged. - Multiplied by the disassembly-slowdown countdown fraction when slowdown is active.
Returns
numberStabilization gain in [0, 1].
- setManualTarget(target)Source
Install a persistent manual target direction. Each physics tick the bearing will lerp its thrust axis toward this direction instead of the gravity-derived "anti-gravity up" it would otherwise compute. The 12° cone clamp, redstone power gate, and stabilization-strength gate still apply on top of this value — see
getStabilizationStrength. CallclearManualTargetto return the bearing to default gravity tracking.Parameters
- target
tableWorld-frame unit-length direction (3 elements).
- target
- clearManualTarget()Source
Remove any manual target, returning the bearing to default gravity-tracking behavior.
- getManualTarget()Source
Returns
- {
number... } The installed manual target as {x, y, z}, ornilif the bearing is currently gravity-tracking.
- {
- getAxis()Source
Get the bearing's mounted direction.
Returns
stringThe serialized direction name, or nil.
- getThrustVector()Source
Get the bearing's thrust direction vector.
Returns
- {
number... } A three-element list {x, y, z}.
- {
- getFacingVector()Source
Get the bearing's facing direction vector.
Returns
- {
number... } A three-element list {x, y, z}.
- {
- getRotationSpeed()Source
Get the bearing's rotation speed.
Returns
numberThe rotation speed.
- getAngularSpeed()Source
Get the bearing's angular speed.
Returns
numberThe angular speed.
- getAngle()Source
Get the bearing's current visual angle.
Returns
numberVisual angle in degrees (interpolated to current tick).
- getThrust()Source
Get the bearing's current thrust output. Computed as
totalSailPower^1.5 × directionIndependentSpeed × configThrust. This is the raw thrust; the goggle tooltip shows it scaled by airflow scaling and air pressure.Returns
numberThe thrust in pixel-Newtons (pN), Sable's force unit.
- getAirflow()Source
Get the bearing's current airflow. Computed as
sqrt(totalSailPower) × directionIndependentSpeed × configAirflowMult.Returns
numberThe airflow in m/s.
- getSailPower()Source
Get the bearing's total sail power.
Returns
numberDimensionless: count of windmill-sail blocks in the assembled contraption (1 per block taggedcreate:windmill_sails).
- isActive()Source
Check whether the bearing is currently active.
Returns
booleanTrue if active.
- getThrustHandedness()Source
Get the bearing's thrust handedness.
Returns
string"right_handed" or "left_handed". Mirrors the in-game scroll option.
- setThrustHandedness(handedness)Source
Set the bearing's thrust handedness.
Parameters
- handedness
string"right_handed" or "left_handed".
- handedness
- isAssembled()Source
Check whether the bearing has assembled a contraption.
Returns
booleanTrue if assembled.
- assemble()Source
Assemble the bearing's contraption.
- disassemble()Source
Disassemble the bearing's contraption.
- isWoodenTop()Source
Check whether the bearing has a wooden top variant.
Returns
booleanTrue if wooden-top.
- getSelfId()Source
Get this block's id. Other peripherals'
getSourceIdorgetSubnetworkAnchorIdreturn this same id when they refer to this block.Returns
stringThe block's id.
- getSourceId()Source
Get the id of the block immediately driving this one, or nil if this block has no source.
Returns
stringThe parent's id, or nil.
- getSubnetworkAnchorId()Source
Get the id of this block's speed-zone anchor — the gearshift / clutch / speed controller / generator that defines the start of this speed zone. Two blocks share an anchor iff they're in the same speed zone. A generator or split-shaft returns its own
getSelfId.Returns
stringThe anchor block's id, or nil.
- getNetworkId()Source
Get the id of this block's kinetic network. Same value for every block on the same network regardless of how many speed zones lie between them. Nil if this block isn't on a network.
Returns
stringThe network id, or nil.
- getKind()Source
Get this block's role on the kinetic graph: one of
"generator","split_shaft","consumer", or"passthrough".Returns
stringThe role string.
- getSpeed()Source
Get the local rotational speed at this block. Signed; same value across a speed zone, changes across a split-shaft.
Returns
numberThe local speed.
- hasSource()Source
Check whether this block is connected to a kinetic source.
Returns
booleanTrue if a source is connected.
- isOverstressed()Source
Check whether the block's network is overstressed.
Returns
booleanTrue if overstressed.
- getStressImpact()Source
Get the stress impact of this block on its network — how much stress it draws while running. Speed-dependent; zero for sources and pure conduit blocks. Matches the "Stress Impact" value shown by goggles.
Returns
numberThe stress impact.
- getStressContribution()Source
Get this block's contribution to its network's stress capacity. Non-zero for sources only. Parallel to
getStressImpact(per-block draw) and distinct fromCreate_Stressometer#getStressCapacity, which reports the network total.Returns
numberThe per-block stress contribution.