From 990b05b4ef47d2c70ab801cb86318a3c0d7c6d5f Mon Sep 17 00:00:00 2001 From: TDSSS <32099540+TDSSS@users.noreply.github.com> Date: Sat, 2 Feb 2019 05:08:02 +0100 Subject: [PATCH 1/2] Fixed mob spawner menu, this time for real --- code/datums/spawners_menu.dm | 4 ++-- code/modules/nano/interaction/ghost.dm | 14 ++++++++++++++ paradise.dme | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 code/modules/nano/interaction/ghost.dm diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 09cf433daf5..5cc76721377 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -6,10 +6,10 @@ qdel(src) owner = new_owner -/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = FALSE, datum/nanoui/master_ui = null) +/datum/spawners_menu/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = FALSE, datum/topic_state/state = ghost_state, datum/nanoui/master_ui = null) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "spawners_menu.tmpl", "Spawners Menu", 700, 600, master_ui) + ui = new(user, src, ui_key, "spawners_menu.tmpl", "Spawners Menu", 700, 600, master_ui, state = state) ui.open() /datum/spawners_menu/ui_data(mob/user) diff --git a/code/modules/nano/interaction/ghost.dm b/code/modules/nano/interaction/ghost.dm new file mode 100644 index 00000000000..a99f68efb79 --- /dev/null +++ b/code/modules/nano/interaction/ghost.dm @@ -0,0 +1,14 @@ +/* + This checks that the user is a ghost or alternatively an admin. Used for the mob spawner. + We don't want any living people somehow getting the menu open and reincarnating while alive +*/ + +/var/global/datum/topic_state/ghost_state/ghost_state = new() + +/datum/topic_state/ghost_state/can_use_topic(var/src_object, var/mob/user) + if (user.stat == DEAD) + return STATUS_INTERACTIVE + if(check_rights(R_ADMIN, 0, src)) + return STATUS_INTERACTIVE + return STATUS_CLOSE + diff --git a/paradise.dme b/paradise.dme index 8a403c97472..912ff79c344 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2026,6 +2026,7 @@ #include "code\modules\nano\interaction\conscious.dm" #include "code\modules\nano\interaction\contained.dm" #include "code\modules\nano\interaction\default.dm" +#include "code\modules\nano\interaction\ghost.dm" #include "code\modules\nano\interaction\inventory.dm" #include "code\modules\nano\interaction\inventory_deep.dm" #include "code\modules\nano\interaction\not_incapacitated.dm" From 08e5b5d4845193520134e856e3166ab341ede5f1 Mon Sep 17 00:00:00 2001 From: TDSSS <32099540+TDSSS@users.noreply.github.com> Date: Sat, 2 Feb 2019 13:52:25 +0100 Subject: [PATCH 2/2] fixed spacing --- code/modules/nano/interaction/ghost.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/nano/interaction/ghost.dm b/code/modules/nano/interaction/ghost.dm index a99f68efb79..6b0aa3db1ca 100644 --- a/code/modules/nano/interaction/ghost.dm +++ b/code/modules/nano/interaction/ghost.dm @@ -6,7 +6,7 @@ /var/global/datum/topic_state/ghost_state/ghost_state = new() /datum/topic_state/ghost_state/can_use_topic(var/src_object, var/mob/user) - if (user.stat == DEAD) + if(user.stat == DEAD) return STATUS_INTERACTIVE if(check_rights(R_ADMIN, 0, src)) return STATUS_INTERACTIVE