This commit is contained in:
Enric Gabriel
2020-10-01 21:16:19 -03:00
122 changed files with 1797 additions and 739 deletions
@@ -261,13 +261,11 @@
set_pin_data(IC_OUTPUT, 12, H.pestlevel)
set_pin_data(IC_OUTPUT, 13, H.toxic)
set_pin_data(IC_OUTPUT, 14, H.waterlevel)
set_pin_data(IC_OUTPUT, 15, H.nutrilevel)
set_pin_data(IC_OUTPUT, 15, H.reagents.total_volume)
set_pin_data(IC_OUTPUT, 16, H.harvest)
set_pin_data(IC_OUTPUT, 17, H.dead)
set_pin_data(IC_OUTPUT, 18, H.plant_health)
set_pin_data(IC_OUTPUT, 19, H.self_sustaining)
set_pin_data(IC_OUTPUT, 20, H.using_irrigation)
set_pin_data(IC_OUTPUT, 21, H.FindConnected())
push_data()
activate_pin(2)
@@ -19,30 +19,26 @@
// Hydroponics trays have no reagents holder and handle reagents in their own snowflakey way.
// This is a dirty hack to make injecting reagents into them work.
// TODO: refactor that.
/obj/item/integrated_circuit/reagent/proc/inject_tray(obj/machinery/hydroponics/tray, atom/movable/source, amount)
var/atom/movable/acting_object = get_object()
var/list/trays = list(tray)
var/visi_msg = "[acting_object] transfers fluid into [tray]"
//Time for someone to refactor this. Trays can now hold reagents.
//obj/item/integrated_circuit/reagent/proc/inject_tray(obj/machinery/hydroponics/tray, atom/movable/source, amount)
//var/atom/movable/acting_object = get_object()
//var/list/trays = list(tray)
//var/visi_msg = "[acting_object] transfers fluid into [tray]"
if(amount > 30 && source.reagents.total_volume >= 30 && tray.using_irrigation)
trays = tray.FindConnected()
if (trays.len > 1)
visi_msg += ", setting off the irrigation system"
//acting_object.visible_message("<span class='notice'>[visi_msg].</span>")
//playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
acting_object.visible_message("<span class='notice'>[visi_msg].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
//var/split = round(amount/trays.len)
var/split = round(amount/trays.len)
//for(var/obj/machinery/hydroponics/H in trays)
//var/datum/reagents/temp_reagents = new /datum/reagents()
//temp_reagents.my_atom = H
for(var/obj/machinery/hydroponics/H in trays)
var/datum/reagents/temp_reagents = new /datum/reagents()
temp_reagents.my_atom = H
//source.reagents.trans_to(temp_reagents, split)
//H.on_hydroponics_apply(temp_reagents)
source.reagents.trans_to(temp_reagents, split)
H.applyChemicals(temp_reagents)
temp_reagents.clear_reagents()
qdel(temp_reagents)
//temp_reagents.clear_reagents()
//qdel(temp_reagents)
/obj/item/integrated_circuit/reagent/injector
name = "integrated hypo-injector"
@@ -116,10 +112,10 @@
return
if(!AM.reagents)
if(istype(AM, /obj/machinery/hydroponics) && direction_mode == SYRINGE_INJECT && reagents.total_volume && transfer_amount)//injection into tray.
inject_tray(AM, src, transfer_amount)
activate_pin(2)
return
//if(istype(AM, /obj/machinery/hydroponics) && direction_mode == SYRINGE_INJECT && reagents.total_volume && transfer_amount)//injection into tray.
//inject_tray(AM, src, transfer_amount)
//activate_pin(2)
//return
activate_pin(3)
return
@@ -242,13 +238,14 @@
if(!source.reagents)
return
if(!target.reagents)
//if(!target.reagents)
// Hydroponics trays have no reagents holder and handle reagents in their own snowflakey way.
// This is a dirty hack to make injecting reagents into them work.
if(istype(target, /obj/machinery/hydroponics) && source.reagents.total_volume)
inject_tray(target, source, transfer_amount)
activate_pin(2)
return
//Someone should redo this. Trays should hold reagents now.
//if(istype(target, /obj/machinery/hydroponics) && source.reagents.total_volume)
//inject_tray(target, source, transfer_amount)
//activate_pin(2)
//return
if(!source.is_drainable() || !target.is_refillable())
return