[READY] NTNet airlocks
This commit is contained in:
committed by
CitadelStationBot
parent
7bb63b0a21
commit
f0cf4ad29d
@@ -0,0 +1,37 @@
|
||||
/obj/item/integrated_circuit/input/card_reader
|
||||
name = "card reader"
|
||||
desc = "A circuit that can read registred name, assignment and a PassKey string from an ID card."
|
||||
icon_state = "card_reader"
|
||||
|
||||
complexity = 4
|
||||
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
||||
outputs = list(
|
||||
"registered name" = IC_PINTYPE_STRING,
|
||||
"assignment" = IC_PINTYPE_STRING,
|
||||
"passkey" = IC_PINTYPE_STRING
|
||||
)
|
||||
activators = list(
|
||||
"on read" = IC_PINTYPE_PULSE_OUT
|
||||
)
|
||||
|
||||
/obj/item/integrated_circuit/input/card_reader/attackby_react(obj/item/I, mob/living/user, intent)
|
||||
var/obj/item/card/id/card = I.GetID()
|
||||
var/list/access = I.GetAccess()
|
||||
var/passkey = strtohex(XorEncrypt(json_encode(access), SScircuit.cipherkey))
|
||||
|
||||
if(card) // An ID card.
|
||||
set_pin_data(IC_OUTPUT, 1, card.registered_name)
|
||||
set_pin_data(IC_OUTPUT, 2, card.assignment)
|
||||
|
||||
else if(length(access)) // A non-card object that has access levels.
|
||||
set_pin_data(IC_OUTPUT, 1, null)
|
||||
set_pin_data(IC_OUTPUT, 2, null)
|
||||
|
||||
else
|
||||
return FALSE
|
||||
|
||||
set_pin_data(IC_OUTPUT, 3, passkey)
|
||||
|
||||
push_data()
|
||||
activate_pin(1)
|
||||
return TRUE
|
||||
@@ -629,17 +629,16 @@
|
||||
|
||||
var/datum/netdata/data = new
|
||||
data.recipient_ids = splittext(target_address, ";")
|
||||
data.sender_id = address
|
||||
data.plaintext_data = message
|
||||
data.plaintext_data_secondary = text
|
||||
data.plaintext_passkey = key
|
||||
data.encrypted_passkey = key
|
||||
ntnet_send(data)
|
||||
|
||||
/obj/item/integrated_circuit/input/ntnet_recieve(datum/netdata/data)
|
||||
set_pin_data(IC_OUTPUT, 1, data.sender_id)
|
||||
set_pin_data(IC_OUTPUT, 2, data.plaintext_data)
|
||||
set_pin_data(IC_OUTPUT, 3, data.plaintext_data_secondary)
|
||||
set_pin_data(IC_OUTPUT, 4, data.plaintext_passkey)
|
||||
set_pin_data(IC_OUTPUT, 4, data.encrypted_passkey)
|
||||
|
||||
push_data()
|
||||
activate_pin(2)
|
||||
|
||||
Reference in New Issue
Block a user