mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
@@ -11,76 +11,82 @@
|
||||
|
||||
var/maximum_pressure = 90*ONE_ATMOSPHERE
|
||||
|
||||
New()
|
||||
..()
|
||||
/obj/machinery/portable_atmospherics/New()
|
||||
..()
|
||||
|
||||
air_contents.volume = volume
|
||||
air_contents.temperature = T20C
|
||||
air_contents.volume = volume
|
||||
air_contents.temperature = T20C
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
initialize()
|
||||
. = ..()
|
||||
spawn()
|
||||
var/obj/machinery/atmospherics/portables_connector/port = locate() in loc
|
||||
if(port)
|
||||
connect(port)
|
||||
update_icon()
|
||||
|
||||
process()
|
||||
if(!connected_port) //only react when pipe_network will ont it do it for you
|
||||
//Allow for reactions
|
||||
air_contents.react()
|
||||
else
|
||||
/obj/machinery/portable_atmospherics/initialize()
|
||||
. = ..()
|
||||
spawn()
|
||||
var/obj/machinery/atmospherics/portables_connector/port = locate() in loc
|
||||
if(port)
|
||||
connect(port)
|
||||
update_icon()
|
||||
|
||||
Del()
|
||||
del(air_contents)
|
||||
/obj/machinery/portable_atmospherics/process()
|
||||
if(!connected_port) //only react when pipe_network will ont it do it for you
|
||||
//Allow for reactions
|
||||
air_contents.react()
|
||||
else
|
||||
update_icon()
|
||||
|
||||
..()
|
||||
/obj/machinery/portable_atmospherics/Del()
|
||||
del(air_contents)
|
||||
|
||||
update_icon()
|
||||
return null
|
||||
..()
|
||||
|
||||
proc
|
||||
/obj/machinery/portable_atmospherics/update_icon()
|
||||
return null
|
||||
|
||||
connect(obj/machinery/atmospherics/portables_connector/new_port)
|
||||
//Make sure not already connected to something else
|
||||
if(connected_port || !new_port || new_port.connected_device)
|
||||
return 0
|
||||
/obj/machinery/portable_atmospherics/proc/connect(obj/machinery/atmospherics/portables_connector/new_port)
|
||||
//Make sure not already connected to something else
|
||||
if(connected_port || !new_port || new_port.connected_device)
|
||||
return 0
|
||||
|
||||
//Make sure are close enough for a valid connection
|
||||
if(new_port.loc != loc)
|
||||
return 0
|
||||
//Make sure are close enough for a valid connection
|
||||
if(new_port.loc != loc)
|
||||
return 0
|
||||
|
||||
//Perform the connection
|
||||
connected_port = new_port
|
||||
connected_port.connected_device = src
|
||||
//Perform the connection
|
||||
connected_port = new_port
|
||||
connected_port.connected_device = src
|
||||
|
||||
anchored = 1 //Prevent movement
|
||||
anchored = 1 //Prevent movement
|
||||
|
||||
//Actually enforce the air sharing
|
||||
var/datum/pipe_network/network = connected_port.return_network(src)
|
||||
if(network && !network.gases.Find(air_contents))
|
||||
network.gases += air_contents
|
||||
network.update = 1
|
||||
//Actually enforce the air sharing
|
||||
var/datum/pipe_network/network = connected_port.return_network(src)
|
||||
if(network && !network.gases.Find(air_contents))
|
||||
network.gases += air_contents
|
||||
network.update = 1
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
disconnect()
|
||||
if(!connected_port)
|
||||
return 0
|
||||
/obj/machinery/portable_atmospherics/proc/disconnect()
|
||||
if(!connected_port)
|
||||
return 0
|
||||
|
||||
var/datum/pipe_network/network = connected_port.return_network(src)
|
||||
if(network)
|
||||
network.gases -= air_contents
|
||||
var/datum/pipe_network/network = connected_port.return_network(src)
|
||||
if(network)
|
||||
network.gases -= air_contents
|
||||
|
||||
anchored = 0
|
||||
anchored = 0
|
||||
|
||||
connected_port.connected_device = null
|
||||
connected_port = null
|
||||
connected_port.connected_device = null
|
||||
connected_port = null
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/obj/machinery/portable_atmospherics/proc/update_connected_network()
|
||||
if(!connected_port)
|
||||
return
|
||||
|
||||
var/datum/pipe_network/network = connected_port.return_network(src)
|
||||
if (network)
|
||||
network.update = 1
|
||||
|
||||
/obj/machinery/portable_atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
var/obj/icon = src
|
||||
|
||||
@@ -89,6 +89,8 @@
|
||||
cell.use(power_draw * CELLRATE)
|
||||
last_power_draw = power_draw
|
||||
|
||||
update_connected_network()
|
||||
|
||||
//ran out of charge
|
||||
if (!cell.charge)
|
||||
update_icon()
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
cell.use(power_draw * CELLRATE)
|
||||
last_power_draw = power_draw
|
||||
|
||||
update_connected_network()
|
||||
|
||||
//ran out of charge
|
||||
if (!cell.charge)
|
||||
update_icon()
|
||||
@@ -152,7 +154,7 @@ Flow Rate Regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?s
|
||||
|
||||
chan
|
||||
use_power = 1
|
||||
idle_power_usage = 150 //internal circuitry, friction losses and stuff
|
||||
idle_power_usage = 500 //internal circuitry, friction losses and stuff
|
||||
active_power_usage = 100000 //100 kW ~ 135 HP
|
||||
|
||||
var/global/gid = 1
|
||||
@@ -168,7 +170,7 @@ Flow Rate Regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?s
|
||||
name = "[name] (ID [id])"
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attack_hand(var/mob/user as mob)
|
||||
usr << "\blue You can't directly interact with this machine. Use the area atmos computer."
|
||||
usr << "\blue You can't directly interact with this machine. Use the scrubber control console."
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon()
|
||||
src.overlays = 0
|
||||
@@ -204,6 +206,7 @@ Flow Rate Regulator: <A href='?src=\ref[src];volume_adj=-1000'>-</A> <A href='?s
|
||||
last_power_draw = 0
|
||||
else
|
||||
last_power_draw = handle_power_draw(power_draw)
|
||||
update_connected_network()
|
||||
|
||||
/obj/machinery/portable_atmospherics/powered/scrubber/huge/attackby(var/obj/item/I as obj, var/mob/user as mob)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
|
||||
@@ -242,6 +242,10 @@
|
||||
if(seed.exude_gasses && seed.exude_gasses.len)
|
||||
for(var/gas in seed.exude_gasses)
|
||||
environment.adjust_gas(gas, max(1,round((seed.exude_gasses[gas]*seed.potency)/seed.exude_gasses.len)))
|
||||
|
||||
// If we're attached to a pipenet, then we should let the pipenet know we might have modified some gasses
|
||||
if (closed_system && connected_port)
|
||||
update_connected_network()
|
||||
|
||||
// Handle light requirements.
|
||||
var/area/A = T.loc
|
||||
|
||||
Reference in New Issue
Block a user