Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
Will
2025-08-04 21:33:16 -04:00
committed by GitHub
co-authored by Cameron Lennox
parent 7bbfab908c
commit 4ba581a0ab
3 changed files with 27 additions and 12 deletions
@@ -1,6 +1,7 @@
/datum/component/hose_connector
var/name = ""
dupe_mode = COMPONENT_DUPE_ALLOWED
VAR_PROTECTED/force_name = FALSE // If it gets doesn't do automatic naming
VAR_PROTECTED/obj/carrier = null
VAR_PROTECTED/flow_direction = HOSE_NEUTRAL
VAR_PROTECTED/datum/hose/my_hose = null
@@ -8,12 +9,18 @@
// Atom reagent code piggyback
var/flags = NOREACT // Prevent reagent explosions runtiming because no turf or by deleting the hose datum
var/datum/reagents/reagents = null
var/makes_gurgles = TRUE
/datum/component/hose_connector/Initialize()
/datum/component/hose_connector/Initialize(var/set_unique_name = null)
carrier = parent
reagents = new /datum/reagents( 60, src)
name = "[flow_direction] hose connector"
// Handle uniquely named connectors
if(set_unique_name)
name = set_unique_name
force_name = TRUE
else if(!force_name)
name = "[flow_direction] hose connector"
// Setup signaling
var/list/CL = carrier.GetComponents(type)
connector_number = CL.len + 1
RegisterSignal(carrier, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
@@ -78,7 +85,7 @@
if(!my_hose)
return
process()
if(prob(5))
if(makes_gurgles && prob(5))
carrier.visible_message(span_infoplain(span_bold("\The [carrier]") + " gurgles as it pumps fluid."))
/datum/component/hose_connector/proc/valid_connection(var/datum/component/hose_connector/C)
@@ -225,13 +232,10 @@
/// Endless source, produces a reagent and pumps it out forever. Does not require attached object to have reagents.
/datum/component/hose_connector/endless_source
name = "source connector"
force_name = TRUE
flow_direction = HOSE_OUTPUT
var/reagent_id = null
/datum/component/hose_connector/endless_source/Initialize()
. = ..()
name = initial(name)
/datum/component/hose_connector/endless_source/connected_reagents()
if(!carrier)
return null
@@ -247,12 +251,9 @@
/// Endless drain, removes reagents from existance
/datum/component/hose_connector/endless_drain
name = "drain connector"
force_name = TRUE
flow_direction = HOSE_INPUT
/datum/component/hose_connector/endless_drain/Initialize()
. = ..()
name = initial(name)
/datum/component/hose_connector/endless_drain/connected_reagents()
if(!carrier)
return null
@@ -261,3 +262,14 @@
/datum/component/hose_connector/endless_drain/handle_pump(var/datum/reagents/connected_to)
ASSERT(connected_to)
connected_to.clear_reagents()
/// Moo, needed because it has a seperate reagent container as udder.
/datum/component/hose_connector/output/cow
name = "Udder"
force_name = TRUE
makes_gurgles = FALSE
/datum/component/hose_connector/output/cow/connected_reagents()
var/mob/living/simple_mob/animal/passive/cow/C = carrier
return C.udder