mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 20:20:33 +01:00
[MIRROR] Binary and Decimal Conversion Components. [MDB IGNORE] (#8995)
* Binary and Decimal Conversion Components. (#61889) Added a couple components that convert a number into an array of binary digits and viceversa. May help players mak more complex and advanced components without filtering those lacking knowledge in the binary field. * Binary and Decimal Conversion Components. Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* # Binary Conversion Component
|
||||
*
|
||||
* Return an array of binary digits from a number input.
|
||||
*/
|
||||
/obj/item/circuit_component/binary_decimal/binary_conversion
|
||||
display_name = "Binary Conversion"
|
||||
desc = "Splits a decimal number into an array of binary digits, or bits, represented as 1 or 0 and often used in boolean or binary operations like AND, OR and XOR."
|
||||
|
||||
/obj/item/circuit_component/binary_decimal/binary_conversion/populate_ports()
|
||||
. = ..()
|
||||
number = add_input_port("Number", PORT_TYPE_NUMBER)
|
||||
|
||||
/obj/item/circuit_component/binary_decimal/binary_conversion/add_bit_port(index)
|
||||
return add_output_port("Bit [index]", PORT_TYPE_NUMBER)
|
||||
|
||||
/obj/item/circuit_component/binary_decimal/binary_conversion/remove_bit_port(datum/port/to_remove)
|
||||
return remove_output_port(to_remove)
|
||||
|
||||
/obj/item/circuit_component/binary_decimal/binary_conversion/input_received(datum/port/input/port)
|
||||
if(!array_size)
|
||||
return
|
||||
|
||||
for(var/iteration in 1 to array_size)
|
||||
var/datum/port/output/bit = bit_array[iteration]
|
||||
bit.set_output(number.value & (2 ** (iteration - 1)))
|
||||
Reference in New Issue
Block a user