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

  1. { 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

  1. number Deflection 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 getBlockNormal and 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.
If a tilt target appears to do nothing, this is almost always why —typically because the bearing is unassembled or not spinning.

Returns

  1. number Stabilization 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. Call clearManualTarget to return the bearing to default gravity tracking.

Parameters

  1. target table World-frame unit-length direction (3 elements).
clearManualTarget()Source

Remove any manual target, returning the bearing to default gravity-tracking behavior.

getManualTarget()Source

Returns

  1. { number... } The installed manual target as {x, y, z}, or nil if the bearing is currently gravity-tracking.
getAxis()Source

Get the bearing's mounted direction.

Returns

  1. string The serialized direction name, or nil.
getThrustVector()Source

Get the bearing's thrust direction vector.

Returns

  1. { number... } A three-element list {x, y, z}.
getFacingVector()Source

Get the bearing's facing direction vector.

Returns

  1. { number... } A three-element list {x, y, z}.
getRotationSpeed()Source

Get the bearing's rotation speed.

Returns

  1. number The rotation speed.
getAngularSpeed()Source

Get the bearing's angular speed.

Returns

  1. number The angular speed.
getAngle()Source

Get the bearing's current visual angle.

Returns

  1. number Visual 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

  1. number The thrust in pixel-Newtons (pN), Sable's force unit.
getAirflow()Source

Get the bearing's current airflow. Computed as sqrt(totalSailPower) × directionIndependentSpeed × configAirflowMult.

Returns

  1. number The airflow in m/s.
getSailPower()Source

Get the bearing's total sail power.

Returns

  1. number Dimensionless: count of windmill-sail blocks in the assembled contraption (1 per block tagged create:windmill_sails).
isActive()Source

Check whether the bearing is currently active.

Returns

  1. boolean True if active.
getThrustHandedness()Source

Get the bearing's thrust handedness.

Returns

  1. string "right_handed" or "left_handed". Mirrors the in-game scroll option.
setThrustHandedness(handedness)Source

Set the bearing's thrust handedness.

Parameters

  1. handedness string "right_handed" or "left_handed".
isAssembled()Source

Check whether the bearing has assembled a contraption.

Returns

  1. boolean True 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

  1. boolean True if wooden-top.
getSelfId()Source

Get this block's id. Other peripherals' getSourceId or getSubnetworkAnchorId return this same id when they refer to this block.

Returns

  1. string The block's id.
getSourceId()Source

Get the id of the block immediately driving this one, or nil if this block has no source.

Returns

  1. string The 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

  1. string The 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

  1. string The network id, or nil.
getKind()Source

Get this block's role on the kinetic graph: one of "generator", "split_shaft", "consumer", or "passthrough".

Returns

  1. string The 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

  1. number The local speed.
hasSource()Source

Check whether this block is connected to a kinetic source.

Returns

  1. boolean True if a source is connected.
isOverstressed()Source

Check whether the block's network is overstressed.

Returns

  1. boolean True 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

  1. number The 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 from Create_Stressometer#getStressCapacity, which reports the network total.

Returns

  1. number The per-block stress contribution.