From b261424aaa2315701941b35f48b40ed89558877b Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 2 Apr 2021 02:35:55 +0200 Subject: [PATCH] [MIRROR] Fixes a minor oversight with eigenstasium (#4587) * Fixes a minor oversight with eigenstasium (#58069) * Fixes a minor oversight with eigenstasium Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com> --- code/__DEFINES/traits.dm | 3 +++ code/controllers/subsystem/eigenstate.dm | 2 ++ code/modules/cargo/orderconsole.dm | 2 +- .../file_system/programs/budgetordering.dm | 2 +- code/modules/shuttle/supply.dm | 7 +++---- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 364bda112d6..8a9b45aa06e 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -366,6 +366,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Marks the item as having been transmuted. Functionally blacklists the item from being recycled or sold for materials. #define TRAIT_MAT_TRANSMUTED "transmuted" +///If the item will block the cargo shuttle from flying to centcom +#define TRAIT_BANNED_FROM_CARGO_SHUTTLE "banned_from_cargo_shuttle" + // item traits #define TRAIT_NODROP "nodrop" /// cannot be inserted in a storage. diff --git a/code/controllers/subsystem/eigenstate.dm b/code/controllers/subsystem/eigenstate.dm index eb587ef6c31..0cc59c44d67 100644 --- a/code/controllers/subsystem/eigenstate.dm +++ b/code/controllers/subsystem/eigenstate.dm @@ -41,6 +41,7 @@ SUBSYSTEM_DEF(eigenstates) RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/remove_eigen_entry) RegisterSignal(target, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), .proc/tool_interact) target.RegisterSignal(target, COMSIG_EIGENSTATE_ACTIVATE, /obj/structure/closet/proc/bust_open) + ADD_TRAIT(target, TRAIT_BANNED_FROM_CARGO_SHUTTLE, src) var/obj/item = target if(item) item.color = COLOR_PERIWINKLEE //Tint the locker slightly. @@ -73,6 +74,7 @@ SUBSYSTEM_DEF(eigenstates) COMSIG_CLOSET_INSERT, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), )) + REMOVE_TRAIT(entry, TRAIT_BANNED_FROM_CARGO_SHUTTLE, src) entry.UnregisterSignal(entry, COMSIG_EIGENSTATE_ACTIVATE) //This is a signal on the object itself so we have to call it from that ///Remove the current entry if we're empty for(var/targets in eigen_targets) diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index fae0dfcbefe..a043098960a 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -15,7 +15,7 @@ var/self_paid = FALSE var/safety_warning = "For safety reasons, the automated supply shuttle \ cannot transport live organisms, human remains, classified nuclear weaponry, \ - homing beacons or machinery housing any form of artificial intelligence." + homing beacons, unstable eigenstates or machinery housing any form of artificial intelligence." var/blockade_warning = "Bluespace instability detected. Shuttle movement impossible." /// radio used by the console to send messages on supply channel var/obj/item/radio/headset/radio diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 5e1afe8c4d7..f980c795546 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -20,7 +20,7 @@ ///What do we say when the shuttle moves with living beings on it. var/safety_warning = "For safety reasons, the automated supply shuttle \ cannot transport live organisms, human remains, classified nuclear weaponry, \ - homing beacons or machinery housing any form of artificial intelligence." + homing beacons, unstable eigenstates or machinery housing any form of artificial intelligence." ///If you're being raided by pirates, what do you tell the crew? var/blockade_warning = "Bluespace instability detected. Shuttle movement impossible." diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index b142a00e2f2..e2b24e4f8f1 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -68,10 +68,9 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances) for(var/place in areaInstances) var/area/shuttle/shuttle_area = place - for(var/trf in shuttle_area) - var/turf/T = trf - for(var/a in T.GetAllContents()) - if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types) && !istype(a, /obj/docking_port)) + for(var/turf/shuttle_turf as anything in shuttle_area) + for(var/atom/passenger in shuttle_turf.GetAllContents()) + if((is_type_in_typecache(passenger, GLOB.blacklisted_cargo_types) || HAS_TRAIT(passenger, TRAIT_BANNED_FROM_CARGO_SHUTTLE)) && !istype(passenger, /obj/docking_port)) return FALSE return TRUE