Merge pull request #6553 from Citadel-Station-13/upstream-merge-37165

[MIRROR] NTNet improvements!
This commit is contained in:
deathride58
2018-05-02 01:17:10 +00:00
committed by GitHub
10 changed files with 221 additions and 41 deletions
+12 -3
View File
@@ -2,6 +2,9 @@
/datum/proc/ntnet_recieve(datum/netdata/data)
return
/datum/proc/ntnet_recieve_broadcast(datum/netdata/data)
return
/datum/proc/ntnet_send(datum/netdata/data, netid)
GET_COMPONENT(NIC, /datum/component/ntnet_interface)
if(!NIC)
@@ -9,14 +12,17 @@
return NIC.__network_send(data, netid)
/datum/component/ntnet_interface
var/hardware_id //text
var/hardware_id //text. this is the true ID. do not change this. stuff like ID forgery can be done manually.
var/network_name = "" //text
var/list/networks_connected_by_id = list() //id = datum/ntnet
var/differentiate_broadcast = TRUE //If false, broadcasts go to ntnet_recieve. NOT RECOMMENDED.
/datum/component/ntnet_interface/Initialize(force_name = "NTNet Device", autoconnect_station_network = TRUE) //Don't force ID unless you know what you're doing!
hardware_id = "[SSnetworks.get_next_HID()]"
network_name = force_name
SSnetworks.register_interface(src)
if(!SSnetworks.register_interface(src))
. = COMPONENT_INCOMPATIBLE
CRASH("Unable to register NTNet interface. Interface deleted.")
if(autoconnect_station_network)
register_connection(SSnetworks.station_network)
@@ -27,7 +33,10 @@
/datum/component/ntnet_interface/proc/__network_recieve(datum/netdata/data) //Do not directly proccall!
parent.SendSignal(COMSIG_COMPONENT_NTNET_RECIEVE, data)
parent.ntnet_recieve(data)
if(differentiate_broadcast && data.broadcast)
parent.ntnet_recieve_broadcast(data)
else
parent.ntnet_recieve(data)
/datum/component/ntnet_interface/proc/__network_send(datum/netdata/data, netid) //Do not directly proccall!
// Process data before sending it