diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 9c9ad45e9ba..8ad7fae6d2d 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -528,7 +528,7 @@ REAGENT SCANNER
/obj/item/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob)
slime_scan(M, user)
-/proc/slime_scan(mob/living/simple_animal/slime/M, mob/living/user)
+/proc/slime_scan(mob/living/carbon/slime/M, mob/living/user)
if(!isslime(M))
user.show_message("This device can only scan slimes!", 1)
return
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index fa4d8392665..1b8f61bb7bf 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -28,8 +28,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
RefreshParts()
/obj/machinery/monkey_recycler/Destroy()
- if(src in GLOB.monkey_recyclers)
- GLOB.monkey_recyclers -= src
+ GLOB.monkey_recyclers -= src
for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected)
console.connected_recycler = null
return ..()
diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm
index 76e2692e4d0..eea44f20082 100644
--- a/code/modules/research/xenobiology/xenobio_camera.dm
+++ b/code/modules/research/xenobiology/xenobio_camera.dm
@@ -26,9 +26,9 @@
var/datum/action/innate/slime_pick_up/slime_up_action = new
var/datum/action/innate/feed_slime/feed_slime_action = new
var/datum/action/innate/monkey_recycle/monkey_recycle_action = new
+ var/datum/action/innate/slime_scan/scan_action = new
var/datum/action/innate/feed_potion/potion_action = new
var/datum/action/innate/hotkey_help/hotkey_help = new
- var/datum/action/innate/slime_scan/scan_action = new
var/list/stored_slimes = list()
var/max_slimes = 5
@@ -39,14 +39,7 @@
icon_screen = "slime_comp"
icon_keyboard = "rd_key"
-/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
- eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src))
- eyeobj.origin = src
- eyeobj.visible_icon = 1
- eyeobj.icon = 'icons/obj/abductor.dmi'
- eyeobj.icon_state = "camera_target"
-
-/obj/machinery/computer.camera_advanced/xenobio/New()
+/obj/machinery/camera_advanced/xenobio/New()
for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers)
if(get_area(recycler.loc) == get_area(loc))
connected_recycler = recycler
@@ -59,6 +52,13 @@
stored_slimes.Cut()
return ..()
+/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
+ eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src))
+ eyeobj.origin = src
+ eyeobj.visible_icon = 1
+ eyeobj.icon = 'icons/obj/abductor.dmi'
+ eyeobj.icon_state = "camera_target"
+
/obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/carbon/user)
..()
@@ -249,8 +249,24 @@
else
to_chat(owner, "Target is not near a camera. Cannot proceed.")
+/datum/action/innate/slime_scan
+ name = "Scan Slime"
+ button_icon_state = "slime_scan"
+
+/datum/action/innate/slime_scan/Activate()
+ if(!target || !isliving(owner))
+ return
+ var/mob/living/C = owner
+ var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
+
+ if(cameranet.checkTurfVis(remote_eye.loc))
+ for(var/mob/living/carbon/slime/S in remote_eye.loc)
+ slime_scan(S, C)
+ else
+ to_chat(owner, "Target is not near a camera. Cannot proceed.")
+
/datum/action/innate/feed_potion
- name = "Transfer Potion"
+ name = "Apply Potion"
button_icon_state = "slime_potion"
/datum/action/innate/feed_potion/Activate()
@@ -285,22 +301,6 @@
to_chat(owner, "Alt-click a slime to feed it a potion.")
to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.")
-/datum/action/innate/slime_scan
- name = "Scan Slime"
- button_icon_state = "slime_scan"
-
-/datum/action/innate/slime_scan/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
-
- if(cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/carbon/slime/S in remote_eye.loc)
- slime_scan(S, C)
- else
- to_chat(owner, "Target is not near a camera. Cannot proceed.")
-
//
// Alternate clicks for slime, monkey and open turf if using a xenobio console