Files
Bubberstation/code/modules/mapping/access_helpers.dm
John Willard fe913b2466 fixes problems with access helpers (#66456)
Makes Library access helper use Library access instead of Theatre
    Adds a Theatre access helper for Theatre
    Adds an Engine equip access helper for Engine equip (SMES/Grav gen, in the case of Pubby, aka the whole reason I made this PR).
    Removes double crematoriums

It's nice when helpers work as they are supposed to, and if used in the future, will help our maps have less varediting. pretty cool.
2022-04-25 02:07:31 -07:00

668 lines
21 KiB
Plaintext

/obj/effect/mapping_helpers/airlock/access
layer = DOOR_HELPER_LAYER
icon_state = "access_helper"
// These are mutually exclusive; can't have req_any and req_all
/obj/effect/mapping_helpers/airlock/access/any/payload(obj/machinery/door/airlock/airlock)
if(airlock.req_access_txt == "0")
var/list/access_list = get_access()
// Overwrite if there is no access set, otherwise add onto existing access
if(airlock.req_one_access_txt == "0")
airlock.req_one_access_txt = access_list.Join(";")
else
airlock.req_one_access_txt += ";[access_list.Join(";")]"
else
log_mapping("[src] at [AREACOORD(src)] tried to set req_one_access, but req_access was already set!")
/obj/effect/mapping_helpers/airlock/access/all/payload(obj/machinery/door/airlock/airlock)
if(airlock.req_one_access_txt == "0")
var/list/access_list = get_access()
if(airlock.req_access_txt == "0")
airlock.req_access_txt = access_list.Join(";")
else
airlock.req_access_txt += ";[access_list.Join(";")]"
else
log_mapping("[src] at [AREACOORD(src)] tried to set req_access, but req_one_access was already set!")
/obj/effect/mapping_helpers/airlock/access/proc/get_access()
var/list/access = list()
return access
// -------------------- Req Any (Only requires ONE of the given accesses to open)
// -------------------- Command access helpers
/obj/effect/mapping_helpers/airlock/access/any/command
icon_state = "access_helper_com"
/obj/effect/mapping_helpers/airlock/access/any/command/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_HEADS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload/get_access()
var/list/access_list = ..()
access_list += ACCESS_AI_UPLOAD
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/teleporter/get_access()
var/list/access_list = ..()
access_list += ACCESS_TELEPORTER
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/eva/get_access()
var/list/access_list = ..()
access_list += ACCESS_EVA
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/gateway/get_access()
var/list/access_list = ..()
access_list += ACCESS_GATEWAY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/hop/get_access()
var/list/access_list = ..()
access_list += ACCESS_HOP
return access_list
/obj/effect/mapping_helpers/airlock/access/any/command/captain/get_access()
var/list/access_list = ..()
access_list += ACCESS_CAPTAIN
return access_list
// -------------------- Engineering access helpers
/obj/effect/mapping_helpers/airlock/access/any/engineering
icon_state = "access_helper_eng"
/obj/effect/mapping_helpers/airlock/access/any/engineering/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_ENGINE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/engine_equipment/get_access()
var/list/access_list = ..()
access_list += ACCESS_ENGINE_EQUIP
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/construction/get_access()
var/list/access_list = ..()
access_list += ACCESS_CONSTRUCTION
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/aux_base/get_access()
var/list/access_list = ..()
access_list += ACCESS_AUX_BASE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/get_access()
var/list/access_list = ..()
access_list += ACCESS_MAINT_TUNNELS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/external/get_access()
var/list/access_list = ..()
access_list += ACCESS_EXTERNAL_AIRLOCKS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/tech_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_TECH_STORAGE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/atmos/get_access()
var/list/access_list = ..()
access_list += ACCESS_ATMOSPHERICS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/tcoms/get_access()
var/list/access_list = ..()
access_list += ACCESS_TCOMSAT
return access_list
/obj/effect/mapping_helpers/airlock/access/any/engineering/ce/get_access()
var/list/access_list = ..()
access_list += ACCESS_CE
return access_list
// -------------------- Medical access helpers
/obj/effect/mapping_helpers/airlock/access/any/medical
icon_state = "access_helper_med"
/obj/effect/mapping_helpers/airlock/access/any/medical/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_MEDICAL
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/morgue/get_access()
var/list/access_list = ..()
access_list += ACCESS_MORGUE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/chemistry/get_access()
var/list/access_list = ..()
access_list += ACCESS_CHEMISTRY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/virology/get_access()
var/list/access_list = ..()
access_list += ACCESS_VIROLOGY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/surgery/get_access()
var/list/access_list = ..()
access_list += ACCESS_SURGERY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/cmo/get_access()
var/list/access_list = ..()
access_list += ACCESS_CMO
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy/get_access()
var/list/access_list = ..()
access_list += ACCESS_PHARMACY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/medical/psychology/get_access()
var/list/access_list = ..()
access_list += ACCESS_PSYCHOLOGY
return access_list
// -------------------- Science access helpers
/obj/effect/mapping_helpers/airlock/access/any/science
icon_state = "access_helper_sci"
/obj/effect/mapping_helpers/airlock/access/any/science/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_RND
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/research/get_access()
var/list/access_list = ..()
access_list += ACCESS_RESEARCH
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/ordnance/get_access()
var/list/access_list = ..()
access_list += ACCESS_ORDNANCE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/ordnance_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_ORDNANCE_STORAGE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/genetics/get_access()
var/list/access_list = ..()
access_list += ACCESS_GENETICS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/robotics/get_access()
var/list/access_list = ..()
access_list += ACCESS_ROBOTICS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/xenobio/get_access()
var/list/access_list = ..()
access_list += ACCESS_XENOBIOLOGY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/minisat/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINISAT
return access_list
/obj/effect/mapping_helpers/airlock/access/any/science/rd/get_access()
var/list/access_list = ..()
access_list += ACCESS_RD
return access_list
// -------------------- Security access helpers
/obj/effect/mapping_helpers/airlock/access/any/security
icon_state = "access_helper_sec"
/obj/effect/mapping_helpers/airlock/access/any/security/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_SECURITY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/entrance/get_access()
var/list/access_list = ..()
access_list += ACCESS_BRIG_ENTRANCE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/brig/get_access()
var/list/access_list = ..()
access_list += ACCESS_BRIG
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/armory/get_access()
var/list/access_list = ..()
access_list += ACCESS_ARMORY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/detective/get_access()
var/list/access_list = ..()
access_list += ACCESS_FORENSICS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/court/get_access()
var/list/access_list = ..()
access_list += ACCESS_COURT
return access_list
/obj/effect/mapping_helpers/airlock/access/any/security/hos/get_access()
var/list/access_list = ..()
access_list += ACCESS_HOS
return access_list
// -------------------- Service access helpers
/obj/effect/mapping_helpers/airlock/access/any/service
icon_state = "access_helper_serv"
/obj/effect/mapping_helpers/airlock/access/any/service/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_SERVICE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/kitchen/get_access()
var/list/access_list = ..()
access_list += ACCESS_KITCHEN
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/bar/get_access()
var/list/access_list = ..()
access_list += ACCESS_BAR
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics/get_access()
var/list/access_list = ..()
access_list += ACCESS_HYDROPONICS
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/janitor/get_access()
var/list/access_list = ..()
access_list += ACCESS_JANITOR
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office/get_access()
var/list/access_list = ..()
access_list += ACCESS_CHAPEL_OFFICE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/crematorium/get_access()
var/list/access_list = ..()
access_list += ACCESS_CREMATORIUM
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/library/get_access()
var/list/access_list = ..()
access_list += ACCESS_LIBRARY
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/theatre/get_access()
var/list/access_list = ..()
access_list += ACCESS_THEATRE
return access_list
/obj/effect/mapping_helpers/airlock/access/any/service/lawyer/get_access()
var/list/access_list = ..()
access_list += ACCESS_LAWYER
return access_list
// -------------------- Supply access helpers
/obj/effect/mapping_helpers/airlock/access/any/supply
icon_state = "access_helper_sup"
/obj/effect/mapping_helpers/airlock/access/any/supply/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_CARGO
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/mail_sorting/get_access()
var/list/access_list = ..()
access_list += ACCESS_MAILSORTING
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/mining/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINING
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINING_STATION
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/mineral_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINERAL_STOREROOM
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/qm/get_access()
var/list/access_list = ..()
access_list += ACCESS_QM
return access_list
/obj/effect/mapping_helpers/airlock/access/any/supply/vault/get_access()
var/list/access_list = ..()
access_list += ACCESS_VAULT
return access_list
// -------------------- Req All (Requires ALL of the given accesses to open)
// -------------------- Command access helpers
/obj/effect/mapping_helpers/airlock/access/all/command
icon_state = "access_helper_com"
/obj/effect/mapping_helpers/airlock/access/all/command/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_HEADS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload/get_access()
var/list/access_list = ..()
access_list += ACCESS_AI_UPLOAD
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/teleporter/get_access()
var/list/access_list = ..()
access_list += ACCESS_TELEPORTER
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/eva/get_access()
var/list/access_list = ..()
access_list += ACCESS_EVA
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/gateway/get_access()
var/list/access_list = ..()
access_list += ACCESS_GATEWAY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/hop/get_access()
var/list/access_list = ..()
access_list += ACCESS_HOP
return access_list
/obj/effect/mapping_helpers/airlock/access/all/command/captain/get_access()
var/list/access_list = ..()
access_list += ACCESS_CAPTAIN
return access_list
// -------------------- Engineering access helpers
/obj/effect/mapping_helpers/airlock/access/all/engineering
icon_state = "access_helper_eng"
/obj/effect/mapping_helpers/airlock/access/all/engineering/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_ENGINE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment/get_access()
var/list/access_list = ..()
access_list += ACCESS_ENGINE_EQUIP
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/construction/get_access()
var/list/access_list = ..()
access_list += ACCESS_CONSTRUCTION
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base/get_access()
var/list/access_list = ..()
access_list += ACCESS_AUX_BASE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance/get_access()
var/list/access_list = ..()
access_list += ACCESS_MAINT_TUNNELS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/external/get_access()
var/list/access_list = ..()
access_list += ACCESS_EXTERNAL_AIRLOCKS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_TECH_STORAGE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos/get_access()
var/list/access_list = ..()
access_list += ACCESS_ATMOSPHERICS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms/get_access()
var/list/access_list = ..()
access_list += ACCESS_TCOMSAT
return access_list
/obj/effect/mapping_helpers/airlock/access/all/engineering/ce/get_access()
var/list/access_list = ..()
access_list += ACCESS_CE
return access_list
// -------------------- Medical access helpers
/obj/effect/mapping_helpers/airlock/access/all/medical
icon_state = "access_helper_med"
/obj/effect/mapping_helpers/airlock/access/all/medical/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_MEDICAL
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/morgue/get_access()
var/list/access_list = ..()
access_list += ACCESS_MORGUE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry/get_access()
var/list/access_list = ..()
access_list += ACCESS_CHEMISTRY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/virology/get_access()
var/list/access_list = ..()
access_list += ACCESS_VIROLOGY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/surgery/get_access()
var/list/access_list = ..()
access_list += ACCESS_SURGERY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/cmo/get_access()
var/list/access_list = ..()
access_list += ACCESS_CMO
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy/get_access()
var/list/access_list = ..()
access_list += ACCESS_PHARMACY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/medical/psychology/get_access()
var/list/access_list = ..()
access_list += ACCESS_PSYCHOLOGY
return access_list
// -------------------- Science access helpers
/obj/effect/mapping_helpers/airlock/access/all/science
icon_state = "access_helper_sci"
/obj/effect/mapping_helpers/airlock/access/all/science/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_RND
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/research/get_access()
var/list/access_list = ..()
access_list += ACCESS_RESEARCH
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/ordnance/get_access()
var/list/access_list = ..()
access_list += ACCESS_ORDNANCE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_ORDNANCE_STORAGE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/genetics/get_access()
var/list/access_list = ..()
access_list += ACCESS_GENETICS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/robotics/get_access()
var/list/access_list = ..()
access_list += ACCESS_ROBOTICS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/xenobio/get_access()
var/list/access_list = ..()
access_list += ACCESS_XENOBIOLOGY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/minisat/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINISAT
return access_list
/obj/effect/mapping_helpers/airlock/access/all/science/rd/get_access()
var/list/access_list = ..()
access_list += ACCESS_RD
return access_list
// -------------------- Security access helpers
/obj/effect/mapping_helpers/airlock/access/all/security
icon_state = "access_helper_sec"
/obj/effect/mapping_helpers/airlock/access/all/security/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_SECURITY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/entrance/get_access()
var/list/access_list = ..()
access_list += ACCESS_BRIG_ENTRANCE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/brig/get_access()
var/list/access_list = ..()
access_list += ACCESS_BRIG
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/armory/get_access()
var/list/access_list = ..()
access_list += ACCESS_ARMORY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/detective/get_access()
var/list/access_list = ..()
access_list += ACCESS_FORENSICS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/court/get_access()
var/list/access_list = ..()
access_list += ACCESS_COURT
return access_list
/obj/effect/mapping_helpers/airlock/access/all/security/hos/get_access()
var/list/access_list = ..()
access_list += ACCESS_HOS
return access_list
// -------------------- Service access helpers
/obj/effect/mapping_helpers/airlock/access/all/service
icon_state = "access_helper_serv"
/obj/effect/mapping_helpers/airlock/access/all/service/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_SERVICE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/kitchen/get_access()
var/list/access_list = ..()
access_list += ACCESS_KITCHEN
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/bar/get_access()
var/list/access_list = ..()
access_list += ACCESS_BAR
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics/get_access()
var/list/access_list = ..()
access_list += ACCESS_HYDROPONICS
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/janitor/get_access()
var/list/access_list = ..()
access_list += ACCESS_JANITOR
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office/get_access()
var/list/access_list = ..()
access_list += ACCESS_CHAPEL_OFFICE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/crematorium/get_access()
var/list/access_list = ..()
access_list += ACCESS_CREMATORIUM
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/library/get_access()
var/list/access_list = ..()
access_list += ACCESS_LIBRARY
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/theatre/get_access()
var/list/access_list = ..()
access_list += ACCESS_THEATRE
return access_list
/obj/effect/mapping_helpers/airlock/access/all/service/lawyer/get_access()
var/list/access_list = ..()
access_list += ACCESS_LAWYER
return access_list
// -------------------- Supply access helpers
/obj/effect/mapping_helpers/airlock/access/all/supply
icon_state = "access_helper_sup"
/obj/effect/mapping_helpers/airlock/access/all/supply/general/get_access()
var/list/access_list = ..()
access_list += ACCESS_CARGO
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/mail_sorting/get_access()
var/list/access_list = ..()
access_list += ACCESS_MAILSORTING
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/mining/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINING
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINING_STATION
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/mineral_storage/get_access()
var/list/access_list = ..()
access_list += ACCESS_MINERAL_STOREROOM
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/qm/get_access()
var/list/access_list = ..()
access_list += ACCESS_QM
return access_list
/obj/effect/mapping_helpers/airlock/access/all/supply/vault/get_access()
var/list/access_list = ..()
access_list += ACCESS_VAULT
return access_list