Improve scrubbers (#17892)

* sd

* unrelated bug i found

* fafsd
This commit is contained in:
Fluffy
2023-12-09 21:28:52 +00:00
committed by GitHub
parent 1a246e1dc8
commit bed6bc3d73
4 changed files with 70 additions and 20 deletions
+6 -2
View File
@@ -105,8 +105,12 @@ var/list/restricted_camera_networks = list(NETWORK_ERT,NETWORK_MERCENARY,"Secret
/*
* Atmospherics Machinery.
*/
#define MAX_SIPHON_FLOWRATE 2500 // L/s. This can be used to balance how fast a room is siphoned. Anything higher than CELL_VOLUME has no effect.
#define MAX_SCRUBBER_FLOWRATE 200 // L/s. Max flow rate when scrubbing from a turf.
///Maximum flowrate, in L/s, that the scrubbers use when siphoning. Anything higher than `CELL_VOLUME` has no effect.
#define MAX_SIPHON_FLOWRATE 5000
///Maximum flowrate, in L/s, that the scrubbers use when scrubbing from a turf.
#define MAX_SCRUBBER_FLOWRATE 400
#define ATMOS_PUMP_MAX_PRESSURE 15000
-16
View File
@@ -57,22 +57,6 @@
else
return ..()
/obj/structure/coatrack/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(!coat && (istype(mover, /obj/item/clothing/suit/storage/toggle) || istype(mover, /obj/item/clothing/accessory/poncho)))
src.visible_message("[mover] lands on \the [src].")
coat = mover
coat.forceMove(src)
update_icon()
return 0
else if(!hat && istype(mover, /obj/item/clothing/head))
src.visible_message("[mover] lands on \the [src].")
hat = mover
hat.forceMove(src)
update_icon()
return 0
else
return 1
/obj/structure/coatrack/update_icon()
cut_overlays()
if(coat)
+20 -2
View File
@@ -172,15 +172,33 @@ default behaviour is:
now_pushing = FALSE
/**
* Checks if two mobs can swap with each other based on the density
*
* Returns `TRUE` if the density allows them to swap, `FALSE` otherwise
*
* swapper - A `/mob`, the one trying to perform the swap
* swapee - A `/mob`, the one the `swapper` is trying to swap with
*/
/proc/swap_density_check(var/mob/swapper, var/mob/swapee)
SHOULD_NOT_SLEEP(TRUE)
SHOULD_BE_PURE(TRUE)
var/turf/T = get_turf(swapper)
if(!T)
return FALSE
if(T.density)
return 1
return TRUE
for(var/atom/movable/A in T)
if(A == swapper)
continue
if(!A.CanPass(swapee, T, 1))
return 1
return TRUE
/mob/living/proc/can_swap_with(var/mob/living/tmob)
if(tmob.buckled_to || buckled_to)
@@ -0,0 +1,44 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
# admin
# backend
# security
# refactor
#################################
# Your name.
author: FluffyGhost
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "increased the scrubbing and venting speed of the scrubbers."
- backend: "DMDoced the swap_density_check function, minor refactor."
- bugfix: "Fixed a runtime error encountered in the wild with mob swaps."
- rscdel: "Removed a collision handling of the coat hanger, that was violating the purity of checks."