Files
Bubberstation/code/modules/mapping/mail_sorting_helpers.dm
SkyratBot 932d25cdeb [MIRROR] Mail sorting helper, and disposals fixes [MDB IGNORE] (#17683)
* Mail sorting helper, and disposals fixes (#70861)

## About The Pull Request

![image](https://user-images.githubusercontent.com/2676196/198695007-53db1b70-845f-46a9-b98a-e146bb53951b.png)

This PR adds a mail sorting map helper, which during Late Initialization
will apply a sorting location index to the mail sorting disposals pipe
under them. I have replaced the varedits with all mail sorters with the
appropriate map helpers. I have thoroughly tested this, making sure
packages arrived to every location, where possible.

I have also fixed a few issues with the disposals network:

**Tramstation**

- One of the random maintenance segments had a place with no disposal
pipes. This has been fixed
- A sorter was looking for chapel and library packages, but it actually
meant to look for engineering packages
- There was no dormitory mail sorter, I have added one

**Metastation**

- There was no dormitory mail sorter, I have added one

**Icebox**

- There is no experimentor lab in icebox, but there is an
"experimentation" lab, which is good enough, so I have added it as a
location

**Deltastation**

- There was no dormitory mail sorter, I have added one
- Virology was not connected to the disposals network. However, on every
other map, it has a one way connection. I have hooked it up just like
that, so virology mail will arrive safely, and virology trash will go
into space as usual.

**Kilostation**

- Genetics packages were rerouted to the psychologist office

Unsolved issue on kilostation: there is no experimentor on this station,
and there is no space for a disposals in the circuits lab, so sadly, if
you send a package to this destination, it will come back to the mail
sorting office.

**Future improvements**

The TAGGERLOCATIONS list, which is used to retrieve the labels of the
various tags, is frankly unorganizable, and hard to expand. I have
delayed fixing this for a future PR.

I kinda wish to remove the sortType variable, as it is no longer
necessary to have it around with these helpers, but sadly, this would
ruin downstream maps, so I have no plans for this at the moment.

## Why It's Good For The Game

While mapping, having to constantly compare a comment in flavor_misc.dm
to figure out what to varedit a disposal mail sorter to is rather
annoying. These map helpers, similar to the access helpers, will help
with this issue.

Its also good if mail actually arrives.

## Changelog

🆑
qol: added a mail sorting map helper, to allow mappers to create
disposal networks faster
fix: fixes several non working disposal mail targets that never received
their packages
/🆑

* Mail sorting helper, and disposals fixes

* vr fixes

Co-authored-by: Profakos <profakos@gmail.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
2022-11-25 21:11:20 -05:00

125 lines
3.8 KiB
Plaintext

/obj/effect/mapping_helpers/mail_sorting
icon_state = "sort_type_helper"
late = TRUE
var/sort_type = SORT_TYPE_WASTE
/obj/effect/mapping_helpers/mail_sorting/Initialize(mapload)
..()
return INITIALIZE_HINT_LATELOAD
/obj/effect/mapping_helpers/mail_sorting/LateInitialize()
var/obj/structure/disposalpipe/sorting/mail/mail_sorter = locate(/obj/structure/disposalpipe/sorting/mail) in loc
if(mail_sorter)
mail_sorter.sortTypes |= sort_type
else
log_mapping("[src] failed to find a mail sorting disposal pipe at [AREACOORD(src)]")
qdel(src)
/obj/effect/mapping_helpers/mail_sorting/supply
icon_state = "sort_type_helper_sup"
/obj/effect/mapping_helpers/mail_sorting/supply/disposals
sort_type = SORT_TYPE_DISPOSALS
/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay
sort_type = SORT_TYPE_CARGO_BAY
/obj/effect/mapping_helpers/mail_sorting/supply/qm_office
sort_type = SORT_TYPE_QM_OFFICE
/obj/effect/mapping_helpers/mail_sorting/engineering
icon_state = "sort_type_helper_eng"
/obj/effect/mapping_helpers/mail_sorting/engineering/general
sort_type = SORT_TYPE_ENGINEERING
/obj/effect/mapping_helpers/mail_sorting/engineering/ce_office
sort_type = SORT_TYPE_CE_OFFICE
/obj/effect/mapping_helpers/mail_sorting/engineering/atmospherics
sort_type = SORT_TYPE_ATMOSPHERICS
/obj/effect/mapping_helpers/mail_sorting/security
icon_state = "sort_type_helper_sec"
/obj/effect/mapping_helpers/mail_sorting/security/general
sort_type = SORT_TYPE_SECURITY
/obj/effect/mapping_helpers/mail_sorting/security/hos_office
sort_type = SORT_TYPE_HOS_OFFICE
/obj/effect/mapping_helpers/mail_sorting/security/detectives_office
sort_type = SORT_TYPE_DETECTIVES_OFFICE
/obj/effect/mapping_helpers/mail_sorting/medbay
icon_state = "sort_type_helper_med"
/obj/effect/mapping_helpers/mail_sorting/medbay/general
sort_type = SORT_TYPE_MEDBAY
/obj/effect/mapping_helpers/mail_sorting/medbay/cmo_office
sort_type = SORT_TYPE_CMO_OFFICE
/obj/effect/mapping_helpers/mail_sorting/medbay/chemistry
sort_type = SORT_TYPE_CHEMISTRY
/obj/effect/mapping_helpers/mail_sorting/medbay/virology
sort_type = SORT_TYPE_VIROLOGY
/obj/effect/mapping_helpers/mail_sorting/science
icon_state = "sort_type_helper_sci"
/obj/effect/mapping_helpers/mail_sorting/science/research
sort_type = SORT_TYPE_RESEARCH
/obj/effect/mapping_helpers/mail_sorting/science/rd_office
sort_type = SORT_TYPE_RD_OFFICE
/obj/effect/mapping_helpers/mail_sorting/science/robotics
sort_type = SORT_TYPE_ROBOTICS
/obj/effect/mapping_helpers/mail_sorting/science/genetics
sort_type = SORT_TYPE_GENETICS
/obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab
sort_type = SORT_TYPE_EXPERIMENTOR_LAB
/obj/effect/mapping_helpers/mail_sorting/science/ordnance
sort_type = SORT_TYPE_ORDNANCE
/obj/effect/mapping_helpers/mail_sorting/science/xenobiology
sort_type = SORT_TYPE_XENOBIOLOGY
/obj/effect/mapping_helpers/mail_sorting/service
icon_state = "sort_type_helper_serv"
/obj/effect/mapping_helpers/mail_sorting/service/hop_office
sort_type = SORT_TYPE_HOP_OFFICE
/obj/effect/mapping_helpers/mail_sorting/service/library
sort_type = SORT_TYPE_LIBRARY
/obj/effect/mapping_helpers/mail_sorting/service/chapel
sort_type = SORT_TYPE_CHAPEL
/obj/effect/mapping_helpers/mail_sorting/service/theater
sort_type = SORT_TYPE_THEATER
/obj/effect/mapping_helpers/mail_sorting/service/bar
sort_type = SORT_TYPE_BAR
/obj/effect/mapping_helpers/mail_sorting/service/kitchen
sort_type = SORT_TYPE_KITCHEN
/obj/effect/mapping_helpers/mail_sorting/service/hydroponics
sort_type = SORT_TYPE_HYDROPONICS
/obj/effect/mapping_helpers/mail_sorting/service/janitor_closet
sort_type = SORT_TYPE_JANITOR_CLOSET
/obj/effect/mapping_helpers/mail_sorting/service/dormitories
sort_type = SORT_TYPE_DORMITORIES
/obj/effect/mapping_helpers/mail_sorting/service/law_office
sort_type = SORT_TYPE_LAW_OFFICE