Files
Bubberstation/code/modules/wiremod/components/math/arctan2.dm
SkyratBot c74da996c6 [MIRROR] Adds arctangent 2 component to circuits [MDB IGNORE] (#25231)
* Adds arctangent 2 component to circuits (#79892)

## About The Pull Request
Adds an arctangent 2 component (atan2)

## Why It's Good For The Game

It's made to convert offsets into angles, something thats pretty useful
in a coordinate based game
## Changelog
🆑
add: Adds an arctangent2 component to circuitry!
/🆑

* Adds arctangent 2 component to circuits

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2023-11-24 16:57:19 -05:00

27 lines
966 B
Plaintext

/**
* # Arctangent 2 function
* A variant of arctan. When given a deltaX and deltaY, returns the angle. I will blow you out of the sky
*/
/obj/item/circuit_component/arctan2
display_name = "Arctangent 2 Component"
desc = "A two parameter arctan2 component, for calculating any angle you want."
category = "Math"
/// The input port for the x-offset
var/datum/port/input/input_port_x
/// The input port for the y-offset
var/datum/port/input/input_port_y
/// The result from the output
var/datum/port/output/output
circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL|CIRCUIT_FLAG_OUTPUT_SIGNAL
/obj/item/circuit_component/arctan2/populate_ports()
input_port_x = add_input_port("Delta X", PORT_TYPE_NUMBER)
input_port_y = add_input_port("Delta Y", PORT_TYPE_NUMBER)
output = add_output_port("Angle", PORT_TYPE_NUMBER)
/obj/item/circuit_component/arctan2/input_received(datum/port/input/port)
output.set_output(arctan(input_port_x.value, input_port_y.value))