mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
Annihilates the global iterator
This commit is contained in:
@@ -37,8 +37,6 @@
|
||||
var/datum/gas_mixture/cabin_air
|
||||
var/obj/machinery/portable_atmospherics/canister/internal_tank
|
||||
var/use_internal_tank = 0
|
||||
var/datum/global_iterator/pr_int_temp_processor //normalizes internal air mixture temperature
|
||||
var/datum/global_iterator/pr_give_air //moves air from tank to cabin
|
||||
|
||||
var/datum/effect_system/trail_follow/ion/space_trail/ion_trail
|
||||
|
||||
@@ -117,8 +115,6 @@
|
||||
src.ion_trail.set_up(src)
|
||||
src.ion_trail.start()
|
||||
src.use_internal_tank = 1
|
||||
pr_int_temp_processor = new /datum/global_iterator/pod_preserve_temp(list(src))
|
||||
pr_give_air = new /datum/global_iterator/pod_tank_give_air(list(src))
|
||||
equipment_system = new(src)
|
||||
equipment_system.installed_modules += battery
|
||||
GLOB.spacepods_list += src
|
||||
@@ -127,6 +123,7 @@
|
||||
cargo_hold.storage_slots = 0 //You need to install cargo modules to use it.
|
||||
cargo_hold.max_w_class = 5 //fit almost anything
|
||||
cargo_hold.max_combined_w_class = 0 //you can optimize your stash with larger items
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/spacepod/Destroy()
|
||||
if(equipment_system.cargo_system)
|
||||
@@ -136,8 +133,6 @@
|
||||
QDEL_NULL(battery)
|
||||
QDEL_NULL(cabin_air)
|
||||
QDEL_NULL(internal_tank)
|
||||
QDEL_NULL(pr_int_temp_processor)
|
||||
QDEL_NULL(pr_give_air)
|
||||
QDEL_NULL(ion_trail)
|
||||
occupant_sanity_check()
|
||||
if(pilot)
|
||||
@@ -148,13 +143,14 @@
|
||||
M.forceMove(get_turf(src))
|
||||
passengers -= M
|
||||
GLOB.spacepods_list -= src
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/spacepod/process()
|
||||
give_air()
|
||||
regulate_temp()
|
||||
if(src.empcounter > 0)
|
||||
src.empcounter--
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/spacepod/proc/update_icons()
|
||||
if(!pod_overlays)
|
||||
@@ -998,22 +994,17 @@
|
||||
|
||||
return 1
|
||||
|
||||
/datum/global_iterator/pod_preserve_temp //normalizing cabin air temperature to 20 degrees celsium
|
||||
delay = 20
|
||||
|
||||
process(var/obj/spacepod/spacepod)
|
||||
if(spacepod.cabin_air && spacepod.cabin_air.return_volume() > 0)
|
||||
var/delta = spacepod.cabin_air.temperature - T20C
|
||||
spacepod.cabin_air.temperature -= max(-10, min(10, round(delta/4,0.1)))
|
||||
|
||||
/datum/global_iterator/pod_tank_give_air
|
||||
delay = 15
|
||||
|
||||
/datum/global_iterator/pod_tank_give_air/process(var/obj/spacepod/spacepod)
|
||||
if(spacepod && spacepod.internal_tank)
|
||||
var/datum/gas_mixture/tank_air = spacepod.internal_tank.return_air()
|
||||
var/datum/gas_mixture/cabin_air = spacepod.cabin_air
|
||||
// Fun fact, these procs are just copypastes from mech code
|
||||
// And have been for the past 4 years
|
||||
// Please send help
|
||||
/obj/spacepod/proc/regulate_temp()
|
||||
if(cabin_air && cabin_air.return_volume() > 0)
|
||||
var/delta = cabin_air.temperature - T20C
|
||||
cabin_air.temperature -= max(-10, min(10, round(delta/4,0.1)))
|
||||
|
||||
/obj/spacepod/proc/give_air()
|
||||
if(internal_tank)
|
||||
var/datum/gas_mixture/tank_air = internal_tank.return_air()
|
||||
var/release_pressure = ONE_ATMOSPHERE
|
||||
var/cabin_pressure = cabin_air.return_pressure()
|
||||
var/pressure_delta = min(release_pressure - cabin_pressure, (tank_air.return_pressure() - cabin_pressure)/2)
|
||||
@@ -1024,7 +1015,7 @@
|
||||
var/datum/gas_mixture/removed = tank_air.remove(transfer_moles)
|
||||
cabin_air.merge(removed)
|
||||
else if(pressure_delta < 0) //cabin pressure higher than release pressure
|
||||
var/datum/gas_mixture/t_air = spacepod.get_turf_air()
|
||||
var/datum/gas_mixture/t_air = get_turf_air()
|
||||
pressure_delta = cabin_pressure - release_pressure
|
||||
if(t_air)
|
||||
pressure_delta = min(cabin_pressure - t_air.return_pressure(), pressure_delta)
|
||||
@@ -1035,8 +1026,6 @@
|
||||
t_air.merge(removed)
|
||||
else //just delete the cabin gas, we're in space or some shit
|
||||
qdel(removed)
|
||||
else
|
||||
return stop()
|
||||
|
||||
/obj/spacepod/relaymove(mob/user, direction)
|
||||
if(user != src.pilot)
|
||||
|
||||
Reference in New Issue
Block a user