Angle Sensor

The **Angle-Sensor Nodon** is an Object Nodon that outputs the exact angles of rotation of itself, and is generally utilized by connecting it at the center of an object to output the object's rotation. It may not be called if the object-cost limit is full.

When unpausing from a long pause in Free Programming, it may say "Keep your back nice and straight. There's a good programmer. Perfect posture is the key to making good progress!". In the Nodopedia, its quote is "Stand up straight! I'll be taking a proper measurement of these angles!".

## Calling

This Nodon can be called through the following tree.

* Objects
	+ Sensors
		- **Angle Sensor**

## Technical

The names of this Nodon's output ports are displayed, even when unselected, in the Nodon's box on the program screen Canvas when zoomed in far enough.

On the program screen, the preview values given by the output ports ignore all connections.

### Outputs

* **X-axis** - Outputs the sensor's current angle of rotation around the X-axis, from the selected 'Frame of Reference'.
* **Y-axis** - Outputs the sensor's current angle of rotation around the Y-axis, from the selected 'Frame of Reference'.
* **Z-axis** - Outputs the sensor's current angle of rotation around the Z-axis, from the selected 'Frame of Reference'.

### Settings

* **Sensor Shape** - Determines what shape the object takes on the game world.
* **Properties** - Determines various properties of the object.
	+ **Visible** - Can be changed, enabled by default.
	+ **Solid** - Always disabled.
	+ **Movable** - Always disabled.
	+ **Destructible** - Always fully disabled.
	+ **Destructive** - Always fully disabled.
	+ Other
		- **Play Sound When Hit/Destroyed?** - Always set to "Don't Play".
		- **Can Be Grabbed by Hand Nodon?** - Can be changed, set to "Can be grabbed" by default.
* **Connection Point** - Defines where the object connects with other objects.
	+ Defaults to "Center ▸ Center"
* **Frame of Reference** - Determines what is used as the reference point for the rotation values output. When set to "World", the output values will be based on the sensor's absolute rotation within the world. When set to "Initial Angle", the sensor will output its rotation based on how it has rotated from its starting angle (when connected, the initial angle is the rotation its connection point initially puts it at), with said angle acting as the 0,0,0 angle. When set to "Camera", the sensor will output its position based on its angle relative to the camera's current direction, with the exact opposite of the camera's current facing direction acting as the 0,0,0 angle.
	+ Defaults to "World".
	+ Specifically on the program screen, when set to "Initial Angle", the preview values output will match those output by the "World" option, unlike its standard behavior.
* **Size** - Determines the object's size. This also determines the Nodon's size on the program screen, and can also be adjusted directly from that screen.
	+ If the Sensor Shape is set to "Cylinder", the X and Z axes are locked in a fixed 1:1 ratio but the Y parameter can be freely set.
	+ If the Sensor Shape is set to "Sphere", all three axes are locked in a fixed 1:1:1 ratio.
	+ When switching to an Sensor Shape with a fixed ratio, the values of the axes are not updated until they are edited (in which case the ratio will be set based on the one selected). If the parameters are left alone, the shortest of the fixed ratio axes will determine the size of the object.
		- The object's size on the program screen is not immediately adjusted either, but once resized, the shortest of the visible locked-ratio axes in the current view will determine the new size for them.
* **Position** - Determines the object's initial position when unconnected. This also determines where the Nodon is positioned on the program screen, and can also be adjusted directly from that screen.
* **Rotation** - Determines the object's initial rotation around all three axes when unconnected. Each can be anywhere from -180.00° to 180.00°. This also determines the Nodon's rotation on the program screen, and can also be adjusted directly from that screen.