From d5daa9c9b80d94fda30dea054f36fcc9789bfc96 Mon Sep 17 00:00:00 2001 From: tonty <39193182+tontyGH@users.noreply.github.com> Date: Sat, 9 Nov 2024 05:57:45 -0500 Subject: [PATCH] [NO GBP] Renames mob/camera to mob/eye and makes everything follow suit (#87684) ## Why It's Good For The Game Clarity and consistency regarding DM's systems. Internally, `eye` is used for anything that controls the client's view. ![image](https://github.com/user-attachments/assets/7d1291e1-7a6a-4736-a14b-97834e89846f) How `eye` is used in DM is consistent with how we use the term, so I figured this would add clarity. Being named mob/camera also makes it unclear exactly what it's doing. The name implies that it would function similar to how mob/camera/ai_eye does, but most of the time it's only used as... an eye. My ulterior reason for this PR is that I want to clean up mob/camera/ai_eye and it's subtypes after this. ## Changelog :cl: server: mob/camera has been renamed to mob/eye, which may break downstreams /:cl: --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- .github/guides/ISSUE_MANAGER.md | 8 +- code/__DEFINES/dcs/signals/signals_blob.dm | 2 +- code/__DEFINES/dcs/signals/signals_reagent.dm | 2 +- code/__DEFINES/is_helpers.dm | 8 +- code/__HELPERS/mobs.dm | 2 +- code/__HELPERS/paths/path.dm | 2 +- code/__HELPERS/roundend.dm | 4 +- code/_onclick/hud/blob_overmind.dm | 20 ++--- code/_onclick/overmind.dm | 8 +- .../subsystem/points_of_interest.dm | 2 +- code/controllers/subsystem/ticker.dm | 2 +- code/datums/brain_damage/imaginary_friend.dm | 74 +++++++++--------- code/datums/components/blob_minion.dm | 10 +-- code/datums/components/lock_on_cursor.dm | 2 +- code/datums/holocall.dm | 4 +- code/game/atoms_movable.dm | 2 +- code/game/data_huds.dm | 2 +- .../machinery/computer/camera_advanced.dm | 22 +++--- code/game/machinery/launch_pad.dm | 2 +- .../effects/anomalies/anomalies_bluespace.dm | 2 +- .../effects/temporary_visuals/effect_trail.dm | 2 +- code/game/objects/items/devices/multitool.dm | 4 +- .../construction_actions.dm | 2 +- .../construction_console.dm | 12 +-- .../structures/crates_lockers/closets.dm | 2 +- .../admin/smites/imaginary_friend_special.dm | 4 +- .../antagonists/abductor/machinery/camera.dm | 8 +- code/modules/antagonists/blob/blob_antag.dm | 8 +- code/modules/antagonists/blob/blob_minion.dm | 4 +- .../blob/blobstrains/_blobstrain.dm | 6 +- .../antagonists/blob/blobstrains/_reagent.dm | 6 +- .../blob/blobstrains/blazing_oil.dm | 2 +- .../blob/blobstrains/cryogenic_poison.dm | 2 +- .../blob/blobstrains/debris_devourer.dm | 2 +- .../blob/blobstrains/distributed_neurons.dm | 2 +- .../blob/blobstrains/electromagnetic_web.dm | 2 +- .../blob/blobstrains/energized_jelly.dm | 2 +- .../blob/blobstrains/explosive_lattice.dm | 6 +- .../antagonists/blob/blobstrains/multiplex.dm | 4 +- .../blob/blobstrains/networked_fibers.dm | 4 +- .../blob/blobstrains/pressurized_slime.dm | 2 +- .../blob/blobstrains/reactive_spines.dm | 4 +- .../blob/blobstrains/regenerative_materia.dm | 2 +- .../blob/blobstrains/replicating_foam.dm | 4 +- .../blob/blobstrains/shifting_fragments.dm | 4 +- .../blob/blobstrains/synchronous_mesh.dm | 2 +- code/modules/antagonists/blob/overmind.dm | 48 ++++++------ code/modules/antagonists/blob/powers.dm | 40 +++++----- .../antagonists/blob/structures/_blob.dm | 6 +- code/modules/cargo/supplypod.dm | 2 +- code/modules/events/ghost_role/blob.dm | 2 +- code/modules/forensics/_forensics.dm | 8 +- code/modules/mob/dead/observer/observer.dm | 4 +- code/modules/mob/dead/observer/orbit.dm | 4 +- code/modules/mob/emote.dm | 10 +-- .../mob/{camera/camera.dm => eye/eye.dm} | 22 +++--- .../mob/living/basic/blob_minions/blob_mob.dm | 2 +- .../living/basic/blob_minions/blob_spore.dm | 2 +- .../living/basic/blob_minions/blobbernaut.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 4 +- .../living/silicon/ai/freelook/cameranet.dm | 2 +- .../mob/living/silicon/ai/freelook/chunk.dm | 10 +-- .../mob/living/silicon/ai/freelook/eye.dm | 30 +++---- .../modules/mob/living/silicon/ai/multicam.dm | 18 ++--- .../mob/living/simple_animal/bot/mulebot.dm | 4 +- code/modules/mob/transform_procs.dm | 2 +- code/modules/reagents/chemistry/recipes.dm | 4 +- .../research/xenobiology/xenobio_camera.dm | 40 +++++----- code/modules/shuttle/navigation_computer.dm | 28 +++---- code/modules/shuttle/supply.dm | 2 +- code/modules/transport/transport_module.dm | 2 +- code/modules/unit_tests/mob_faction.dm | 6 +- code/modules/unit_tests/unit_test.dm | 6 +- .../vehicles/mecha/mecha_ai_interaction.dm | 2 +- .../mob/{silicon/cameramob.dmi => eyemob.dmi} | Bin tgstation.dme | 2 +- 76 files changed, 298 insertions(+), 298 deletions(-) rename code/modules/mob/{camera/camera.dm => eye/eye.dm} (71%) rename icons/mob/{silicon/cameramob.dmi => eyemob.dmi} (100%) diff --git a/.github/guides/ISSUE_MANAGER.md b/.github/guides/ISSUE_MANAGER.md index c0ef14ae0cc..3ecab32a7f5 100644 --- a/.github/guides/ISSUE_MANAGER.md +++ b/.github/guides/ISSUE_MANAGER.md @@ -15,10 +15,10 @@ When examining new issues you should immediately notify a maintainer if you see - **Server Lagging** [[1]](https://github.com/tgstation/tgstation/issues/60193) [[2]](https://github.com/tgstation/tgstation/issues/51927) [[3]](https://github.com/tgstation/tgstation/issues/32762) - Something that is causing a _severe_ amount of lag during the game #### Runtime Issue Reports -If an issue reports a runtime, it must have the actual runtime call stack provided by round logging or in-game debug menu (https://github.com/tgstation/tgstation/issues/70329#issuecomment-1279853883). +If an issue reports a runtime, it must have the actual runtime call stack provided by round logging or in-game debug menu (https://github.com/tgstation/tgstation/issues/70329#issuecomment-1279853883).
Example runtime call stack - + ``` [2022-10-15 16:12:38.902] runtime error: Cannot execute null.add(). - proc name: visibility (/datum/cameranet/proc/visibility) @@ -28,8 +28,8 @@ If an issue reports a runtime, it must have the actual runtime call stack provid - usr.loc: the floor (150,25,4) (/turf/open/floor/circuit) - call stack: - Camera Net (/datum/cameranet): visibility(/list (/list), null, /list (/list), 1) - - AI (/mob/living/silicon/ai): camera visibility(Inactive AI Eye (/mob/camera/ai_eye)) - - Inactive AI Eye (/mob/camera/ai_eye): setLoc(the floor (150,25,4) (/turf/open/floor/circuit), 0) + - AI (/mob/living/silicon/ai): camera visibility(Inactive AI Eye (/mob/eye/ai_eye)) + - Inactive AI Eye (/mob/eye/ai_eye): setLoc(the floor (150,25,4) (/turf/open/floor/circuit), 0) - AI (/mob/living/silicon/ai): create eye() - AI (/mob/living/silicon/ai): Initialize(0, null, TagGamerGame2 (/mob/dead/new_player)) - Atoms (/datum/controller/subsystem/atoms): InitAtom(AI (/mob/living/silicon/ai), 0, /list (/list)) diff --git a/code/__DEFINES/dcs/signals/signals_blob.dm b/code/__DEFINES/dcs/signals/signals_blob.dm index afd4737bdd9..dac33906a3f 100644 --- a/code/__DEFINES/dcs/signals/signals_blob.dm +++ b/code/__DEFINES/dcs/signals/signals_blob.dm @@ -1,4 +1,4 @@ -/// Signal sent when a blob overmind picked a new strain (/mob/camera/blob/overmind, /datum/blobstrain/new_strain) +/// Signal sent when a blob overmind picked a new strain (/mob/eye/blob/overmind, /datum/blobstrain/new_strain) #define COMSIG_BLOB_SELECTED_STRAIN "blob_selected_strain" /// Signal sent by a blob spore when it creates a zombie (/mob/living/basic/blob_minion/spore/spore, //mob/living/basic/blob_minion/zombie/zombie) #define COMSIG_BLOB_ZOMBIFIED "blob_zombified" diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm index 367ec946361..78b4cec5ca0 100644 --- a/code/__DEFINES/dcs/signals/signals_reagent.dm +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -14,7 +14,7 @@ #define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" ///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) #define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" -///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. +///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/eye/blob) // ovemind arg is only used by blob reagents. #define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" ///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) #define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index dc51fdd68dd..5b3d50cdadd 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -210,13 +210,13 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list( #define isnewplayer(A) (istype(A, /mob/dead/new_player)) -#define isovermind(A) (istype(A, /mob/camera/blob)) +#define isovermind(A) (istype(A, /mob/eye/blob)) -#define issentientdisease(A) (istype(A, /mob/camera/disease)) +#define issentientdisease(A) (istype(A, /mob/eye/disease)) -#define iscameramob(A) (istype(A, /mob/camera)) +#define iseyemob(A) (istype(A, /mob/eye)) -#define isaicamera(A) (istype(A, /mob/camera/ai_eye)) +#define isaicamera(A) (istype(A, /mob/eye/ai_eye)) //Objects #define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 92ebff1cc4e..f3a2e4bd375 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -561,7 +561,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( var/list/sortmob = sort_names(GLOB.mob_list) for(var/mob/living/silicon/ai/mob_to_sort in sortmob) moblist += mob_to_sort - for(var/mob/camera/mob_to_sort in sortmob) + for(var/mob/eye/mob_to_sort in sortmob) moblist += mob_to_sort for(var/mob/living/silicon/pai/mob_to_sort in sortmob) moblist += mob_to_sort diff --git a/code/__HELPERS/paths/path.dm b/code/__HELPERS/paths/path.dm index 9530a545235..950cd190684 100644 --- a/code/__HELPERS/paths/path.dm +++ b/code/__HELPERS/paths/path.dm @@ -346,7 +346,7 @@ src.can_ventcrawl = HAS_TRAIT(living_construct, TRAIT_VENTCRAWLER_ALWAYS) || HAS_TRAIT(living_construct, TRAIT_VENTCRAWLER_NUDE) src.mob_size = living_construct.mob_size src.incorporeal_move = living_construct.incorporeal_move - if(iscameramob(construct_from)) + if(iseyemob(construct_from)) src.camera_type = construct_from.type src.is_bot = isbot(construct_from) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 72af6cf3ac1..292639f3876 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -12,7 +12,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) var/json_file = file("[GLOB.log_directory]/round_end_data.json") // All but npcs sublists and ghost category contain only mobs with minds var/list/file_data = list("escapees" = list("humans" = list(), "silicons" = list(), "others" = list(), "npcs" = list()), "abandoned" = list("humans" = list(), "silicons" = list(), "others" = list(), "npcs" = list()), "ghosts" = list(), "additional data" = list()) - var/num_survivors = 0 //Count of non-brain non-camera mobs with mind that are alive + var/num_survivors = 0 //Count of non-brain non-eye mobs with mind that are alive var/num_escapees = 0 //Above and on centcom z var/num_shuttle_escapees = 0 //Above and on escape shuttle var/list/area/shuttle_areas @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) if(M.mind) count_only = FALSE mob_data["ckey"] = M.mind.key - if(M.stat != DEAD && !isbrain(M) && !iscameramob(M)) + if(M.stat != DEAD && !isbrain(M) && !iseyemob(M)) num_survivors++ if(EMERGENCY_ESCAPED_OR_ENDGAMED && (M.onCentCom() || M.onSyndieBase())) num_escapees++ diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index be860caa1f0..8f8193a5045 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -17,7 +17,7 @@ /atom/movable/screen/blob/jump_to_node/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr blob.jump_to_node() /atom/movable/screen/blob/jump_to_core @@ -27,7 +27,7 @@ /atom/movable/screen/blob/jump_to_core/MouseEntered(location,control,params) if(hud?.mymob && isovermind(hud.mymob)) - var/mob/camera/blob/B = hud.mymob + var/mob/eye/blob/B = hud.mymob if(!B.placed) name = "Place Blob Core" desc = "Attempt to place your blob core at this location." @@ -39,7 +39,7 @@ /atom/movable/screen/blob/jump_to_core/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr if(!blob.placed) blob.place_blob_core(BLOB_NORMAL_PLACEMENT) blob.transport_core() @@ -58,7 +58,7 @@ /atom/movable/screen/blob/blobbernaut/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr blob.create_blobbernaut() /atom/movable/screen/blob/resource_blob @@ -75,7 +75,7 @@ /atom/movable/screen/blob/resource_blob/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr blob.create_special(BLOB_STRUCTURE_RESOURCE_COST, /obj/structure/blob/special/resource, BLOB_RESOURCE_MIN_DISTANCE, TRUE) /atom/movable/screen/blob/node_blob @@ -92,7 +92,7 @@ /atom/movable/screen/blob/node_blob/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr blob.create_special(BLOB_STRUCTURE_NODE_COST, /obj/structure/blob/special/node, BLOB_NODE_MIN_DISTANCE, FALSE) /atom/movable/screen/blob/factory_blob @@ -109,7 +109,7 @@ /atom/movable/screen/blob/factory_blob/Click() if(!isovermind(usr)) return FALSE - var/mob/camera/blob/blob = usr + var/mob/eye/blob/blob = usr blob.create_special(BLOB_STRUCTURE_FACTORY_COST, /obj/structure/blob/special/factory, BLOB_FACTORY_MIN_DISTANCE, TRUE) /atom/movable/screen/blob/readapt_strain @@ -120,7 +120,7 @@ /atom/movable/screen/blob/readapt_strain/MouseEntered(location,control,params) if(hud?.mymob && isovermind(hud.mymob)) - var/mob/camera/blob/B = hud.mymob + var/mob/eye/blob/B = hud.mymob if(B.free_strain_rerolls) name = "[initial(name)] (FREE)" desc = "Randomly rerolls your strain for free." @@ -131,7 +131,7 @@ /atom/movable/screen/blob/readapt_strain/Click() if(isovermind(usr)) - var/mob/camera/blob/B = usr + var/mob/eye/blob/B = usr B.strain_reroll() /atom/movable/screen/blob/relocate_core @@ -147,7 +147,7 @@ /atom/movable/screen/blob/relocate_core/Click() if(isovermind(usr)) - var/mob/camera/blob/B = usr + var/mob/eye/blob/B = usr B.relocate_core() /datum/hud/blob_overmind/New(mob/owner) diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm index 900ad59bde2..a9d8dba6e13 100644 --- a/code/_onclick/overmind.dm +++ b/code/_onclick/overmind.dm @@ -1,7 +1,7 @@ // Blob Overmind Controls -/mob/camera/blob/ClickOn(atom/A, params) //Expand blob +/mob/eye/blob/ClickOn(atom/A, params) //Expand blob var/list/modifiers = params2list(params) if(LAZYACCESS(modifiers, MIDDLE_CLICK)) MiddleClickOn(A, params) @@ -19,18 +19,18 @@ if(T) expand_blob(T) -/mob/camera/blob/MiddleClickOn(atom/A) //Rally spores +/mob/eye/blob/MiddleClickOn(atom/A) //Rally spores . = ..() var/turf/T = get_turf(A) if(T) rally_spores(T) -/mob/camera/blob/CtrlClickOn(atom/A) //Create a shield +/mob/eye/blob/CtrlClickOn(atom/A) //Create a shield var/turf/T = get_turf(A) if(T) create_shield(T) -/mob/camera/blob/proc/blob_click_alt(atom/A) //Remove a blob +/mob/eye/blob/proc/blob_click_alt(atom/A) //Remove a blob var/turf/T = get_turf(A) if(T) remove_blob(T) diff --git a/code/controllers/subsystem/points_of_interest.dm b/code/controllers/subsystem/points_of_interest.dm index 4280d747b61..7bec303d66a 100644 --- a/code/controllers/subsystem/points_of_interest.dm +++ b/code/controllers/subsystem/points_of_interest.dm @@ -225,7 +225,7 @@ SUBSYSTEM_DEF(points_of_interest) /datum/point_of_interest/mob_poi/proc/get_type_sort_priority() if(isAI(target)) return 0 - if(iscameramob(target)) + if(iseyemob(target)) return 1 if(ispAI(target)) return 2 diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index aaca3ef1d57..bb18a45b72d 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -628,7 +628,7 @@ SUBSYSTEM_DEF(ticker) if(STATION_NUKED) // There was a blob on board, guess it was nuked to stop it if(length(GLOB.overminds)) - for(var/mob/camera/blob/overmind as anything in GLOB.overminds) + for(var/mob/eye/blob/overmind as anything in GLOB.overminds) if(overmind.max_count < overmind.announcement_size) continue diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index ad60f6cd9a6..6945648a734 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -9,7 +9,7 @@ scan_desc = "partial schizophrenia" gain_text = span_notice("You feel in good company, for some reason.") lose_text = span_warning("You feel lonely again.") - var/mob/camera/imaginary_friend/friend + var/mob/eye/imaginary_friend/friend var/friend_initialized = FALSE /datum/brain_trauma/special/imaginary_friend/on_gain() @@ -76,7 +76,7 @@ friend.log_message("became [key_name(owner)]'s split personality.", LOG_GAME) message_admins("[ADMIN_LOOKUPFLW(friend)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.") -/mob/camera/imaginary_friend +/mob/eye/imaginary_friend name = "imaginary friend" real_name = "imaginary friend" move_on_shuttle = TRUE @@ -96,7 +96,7 @@ /// Whether our host and other imaginary friends can hear us only when nearby or practically anywhere. var/extended_message_range = TRUE -/mob/camera/imaginary_friend/Login() +/mob/eye/imaginary_friend/Login() . = ..() if(!. || !client) return FALSE @@ -104,7 +104,7 @@ greet() Show() -/mob/camera/imaginary_friend/proc/greet() +/mob/eye/imaginary_friend/proc/greet() to_chat(src, span_notice("You are the imaginary friend of [owner]!")) to_chat(src, span_notice("You are absolutely loyal to your friend, no matter what.")) to_chat(src, span_notice("You cannot directly influence the world around you, but you can see what [owner] cannot.")) @@ -114,7 +114,7 @@ * * imaginary_friend_owner - The living mob that owns the imaginary friend. * * appearance_from_prefs - If this is a valid set of prefs, the appearance of the imaginary friend is based on these prefs. */ -/mob/camera/imaginary_friend/Initialize(mapload) +/mob/eye/imaginary_friend/Initialize(mapload) . = ..() var/static/list/grantable_actions = list( /datum/action/innate/imaginary_join, @@ -123,7 +123,7 @@ grant_actions_by_list(grantable_actions) /// Links this imaginary friend to the provided mob -/mob/camera/imaginary_friend/proc/attach_to_owner(mob/living/imaginary_friend_owner) +/mob/eye/imaginary_friend/proc/attach_to_owner(mob/living/imaginary_friend_owner) owner = imaginary_friend_owner if(!owner.imaginary_group) owner.imaginary_group = list(owner) @@ -131,14 +131,14 @@ greet() /// Copies appearance from passed player prefs, or randomises them if none are provided -/mob/camera/imaginary_friend/proc/setup_appearance(datum/preferences/appearance_from_prefs = null) +/mob/eye/imaginary_friend/proc/setup_appearance(datum/preferences/appearance_from_prefs = null) if(appearance_from_prefs) INVOKE_ASYNC(src, PROC_REF(setup_friend_from_prefs), appearance_from_prefs) else INVOKE_ASYNC(src, PROC_REF(setup_friend)) /// Randomise friend name and appearance -/mob/camera/imaginary_friend/proc/setup_friend() +/mob/eye/imaginary_friend/proc/setup_friend() gender = pick(MALE, FEMALE) real_name = generate_random_name_species_based(gender, FALSE, /datum/species/human) name = real_name @@ -151,7 +151,7 @@ * Arguments: * * appearance_from_prefs - If this is a valid set of prefs, the appearance of the imaginary friend is based on the currently selected character in them. Otherwise, it's random. */ -/mob/camera/imaginary_friend/proc/setup_friend_from_prefs(datum/preferences/appearance_from_prefs) +/mob/eye/imaginary_friend/proc/setup_friend_from_prefs(datum/preferences/appearance_from_prefs) if(!istype(appearance_from_prefs)) stack_trace("Attempted to create imaginary friend appearance from null prefs. Using random appearance.") setup_friend() @@ -181,14 +181,14 @@ Show() /// Returns all member clients of the imaginary_group -/mob/camera/imaginary_friend/proc/group_clients() +/mob/eye/imaginary_friend/proc/group_clients() var/group_clients = list() for(var/mob/person as anything in owner.imaginary_group) if(person.client) group_clients += person.client return group_clients -/mob/camera/imaginary_friend/proc/Show() +/mob/eye/imaginary_friend/proc/Show() if(!client || !owner) //nobody home return @@ -209,7 +209,7 @@ src.client.images |= current_image -/mob/camera/imaginary_friend/Destroy() +/mob/eye/imaginary_friend/Destroy() if(owner?.client) owner.client.images.Remove(human_image) if(client) @@ -217,12 +217,12 @@ owner.imaginary_group -= src return ..() -/mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) +/mob/eye/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) if (safe_read_pref(client, /datum/preference/toggle/enable_runechat) && (safe_read_pref(client, /datum/preference/toggle/enable_runechat_non_mobs) || ismob(speaker))) create_chat_message(speaker, message_language, raw_message, spans) to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mods)) -/mob/camera/imaginary_friend/send_speech(message, range = IMAGINARY_FRIEND_SPEECH_RANGE, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) +/mob/eye/imaginary_friend/send_speech(message, range = IMAGINARY_FRIEND_SPEECH_RANGE, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) message = get_message_mods(message, message_mods) message = capitalize(message) @@ -296,16 +296,16 @@ var/link = FOLLOW_LINK(dead_player, owner) to_chat(dead_player, "[link] [dead_rendered]") -/mob/camera/imaginary_friend/proc/clear_saypopup(image/say_popup) +/mob/eye/imaginary_friend/proc/clear_saypopup(image/say_popup) LAZYREMOVE(update_on_z, say_popup) -/mob/camera/imaginary_friend/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language, ignore_spam = FALSE, forced, filterproof) +/mob/eye/imaginary_friend/whisper(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language, ignore_spam = FALSE, forced, filterproof) if(!message) return say("#[message]", bubble_type, spans, sanitize, language, ignore_spam, forced, filterproof) /datum/emote/imaginary_friend - mob_type_allowed_typecache = /mob/camera/imaginary_friend + mob_type_allowed_typecache = /mob/eye/imaginary_friend // We have to create our own since we can only show emotes to ourselves and our owner /datum/emote/imaginary_friend/run_emote(mob/user, params, type_override, intentional = FALSE) @@ -322,7 +322,7 @@ if(!msg) return TRUE - var/mob/camera/imaginary_friend/friend = user + var/mob/eye/imaginary_friend/friend = user var/dchatmsg = "[span_bold("[friend] (Imaginary friend of [friend.owner])")] [msg]" message = "[span_name("[user]")] [msg]" @@ -346,7 +346,7 @@ message = "points." message_param = "points at %t." -/datum/emote/imaginary_friend/point/run_emote(mob/camera/imaginary_friend/friend, params, type_override, intentional) +/datum/emote/imaginary_friend/point/run_emote(mob/eye/imaginary_friend/friend, params, type_override, intentional) message_param = initial(message_param) // reset return ..() @@ -380,7 +380,7 @@ return message // Another snowflake proc, when will they end... should have refactored it differently -/mob/camera/imaginary_friend/point_at(atom/pointed_atom) +/mob/eye/imaginary_friend/point_at(atom/pointed_atom) if(!isturf(loc)) return @@ -398,36 +398,36 @@ INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay_global), visual, group_clients(), 2.5 SECONDS) animate(visual, pixel_x = (tile.x - our_tile.x) * ICON_SIZE_X + pointed_atom.pixel_x, pixel_y = (tile.y - our_tile.y) * ICON_SIZE_Y + pointed_atom.pixel_y, time = 1.7, easing = EASE_OUT) -/mob/camera/imaginary_friend/create_thinking_indicator() +/mob/eye/imaginary_friend/create_thinking_indicator() if(active_thinking_indicator || active_typing_indicator || !HAS_TRAIT(src, TRAIT_THINKING_IN_CHARACTER)) return FALSE active_thinking_indicator = image('icons/mob/effects/talk.dmi', src, "[bubble_icon]3", TYPING_LAYER) add_image_to_clients(active_thinking_indicator, group_clients()) -/mob/camera/imaginary_friend/remove_thinking_indicator() +/mob/eye/imaginary_friend/remove_thinking_indicator() if(!active_thinking_indicator) return FALSE remove_image_from_clients(active_thinking_indicator, group_clients()) active_thinking_indicator = null -/mob/camera/imaginary_friend/create_typing_indicator() +/mob/eye/imaginary_friend/create_typing_indicator() if(active_typing_indicator || active_thinking_indicator || !HAS_TRAIT(src, TRAIT_THINKING_IN_CHARACTER)) return FALSE active_typing_indicator = image('icons/mob/effects/talk.dmi', src, "[bubble_icon]0", TYPING_LAYER) add_image_to_clients(active_typing_indicator, group_clients()) -/mob/camera/imaginary_friend/remove_typing_indicator() +/mob/eye/imaginary_friend/remove_typing_indicator() if(!active_typing_indicator) return FALSE remove_image_from_clients(active_typing_indicator, group_clients()) active_typing_indicator = null -/mob/camera/imaginary_friend/remove_all_indicators() +/mob/eye/imaginary_friend/remove_all_indicators() REMOVE_TRAIT(src, TRAIT_THINKING_IN_CHARACTER, CURRENTLY_TYPING_TRAIT) remove_thinking_indicator() remove_typing_indicator() -/mob/camera/imaginary_friend/Move(NewLoc, Dir = 0) +/mob/eye/imaginary_friend/Move(NewLoc, Dir = 0) if(world.time < move_delay) return FALSE setDir(Dir) @@ -438,11 +438,11 @@ abstract_move(NewLoc) move_delay = world.time + 1 -/mob/camera/imaginary_friend/setDir(newdir) +/mob/eye/imaginary_friend/setDir(newdir) . = ..() Show() // The image does not actually update until Show() gets called -/mob/camera/imaginary_friend/proc/recall() +/mob/eye/imaginary_friend/proc/recall() if(!owner || loc == owner) return FALSE abstract_move(owner) @@ -456,7 +456,7 @@ button_icon_state = "join" /datum/action/innate/imaginary_join/Activate() - var/mob/camera/imaginary_friend/I = owner + var/mob/eye/imaginary_friend/I = owner I.recall() /datum/action/innate/imaginary_hide @@ -468,7 +468,7 @@ button_icon_state = "hide" /datum/action/innate/imaginary_hide/proc/update_status() - var/mob/camera/imaginary_friend/I = owner + var/mob/eye/imaginary_friend/I = owner if(I.hidden) name = "Show" desc = "Become visible to your owner." @@ -480,13 +480,13 @@ build_all_button_icons() /datum/action/innate/imaginary_hide/Activate() - var/mob/camera/imaginary_friend/fake_friend = owner + var/mob/eye/imaginary_friend/fake_friend = owner fake_friend.hidden = !fake_friend.hidden fake_friend.Show() build_all_button_icons(UPDATE_BUTTON_NAME|UPDATE_BUTTON_ICON) /datum/action/innate/imaginary_hide/update_button_name(atom/movable/screen/movable/action_button/button, force) - var/mob/camera/imaginary_friend/fake_friend = owner + var/mob/eye/imaginary_friend/fake_friend = owner if(fake_friend.hidden) name = "Show" desc = "Become visible to your owner." @@ -496,7 +496,7 @@ return ..() /datum/action/innate/imaginary_hide/apply_button_icon(atom/movable/screen/movable/action_button/current_button, force = FALSE) - var/mob/camera/imaginary_friend/fake_friend = owner + var/mob/eye/imaginary_friend/fake_friend = owner if(fake_friend.hidden) button_icon_state = "unhide" else @@ -515,7 +515,7 @@ random_gain = FALSE /datum/brain_trauma/special/imaginary_friend/trapped_owner/make_friend() - friend = new /mob/camera/imaginary_friend/trapped(get_turf(owner), src) + friend = new /mob/eye/imaginary_friend/trapped(get_turf(owner), src) /datum/brain_trauma/special/imaginary_friend/trapped_owner/reroll_friend() //no rerolling- it's just the last owner's hell if(friend.client) //reconnected @@ -527,17 +527,17 @@ /datum/brain_trauma/special/imaginary_friend/trapped_owner/get_ghost() //no randoms return -/mob/camera/imaginary_friend/trapped +/mob/eye/imaginary_friend/trapped name = "figment of imagination?" real_name = "figment of imagination?" desc = "The previous host of this body." -/mob/camera/imaginary_friend/trapped/greet() +/mob/eye/imaginary_friend/trapped/greet() to_chat(src, span_notice(span_bold("You have managed to hold on as a figment of the new host's imagination!"))) to_chat(src, span_notice("All hope is lost for you, but at least you may interact with your host. You do not have to be loyal to them.")) to_chat(src, span_notice("You cannot directly influence the world around you, but you can see what the host cannot.")) -/mob/camera/imaginary_friend/trapped/setup_friend() +/mob/eye/imaginary_friend/trapped/setup_friend() real_name = "[owner.real_name]?" name = real_name human_image = icon('icons/mob/simple/lavaland/lavaland_monsters.dmi', icon_state = "curseblob") diff --git a/code/datums/components/blob_minion.dm b/code/datums/components/blob_minion.dm index fb92e1139cc..b74f813894d 100644 --- a/code/datums/components/blob_minion.dm +++ b/code/datums/components/blob_minion.dm @@ -4,23 +4,23 @@ /datum/component/blob_minion dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS /// Overmind who is our boss - var/mob/camera/blob/overmind + var/mob/eye/blob/overmind /// Callback to run if overmind strain changes var/datum/callback/on_strain_changed -/datum/component/blob_minion/Initialize(mob/camera/blob/overmind, datum/callback/on_strain_changed) +/datum/component/blob_minion/Initialize(mob/eye/blob/overmind, datum/callback/on_strain_changed) . = ..() if (!isliving(parent)) return COMPONENT_INCOMPATIBLE src.on_strain_changed = on_strain_changed register_overlord(overmind) -/datum/component/blob_minion/InheritComponent(datum/component/new_comp, i_am_original, mob/camera/blob/overmind, datum/callback/on_strain_changed) +/datum/component/blob_minion/InheritComponent(datum/component/new_comp, i_am_original, mob/eye/blob/overmind, datum/callback/on_strain_changed) if (!isnull(on_strain_changed)) src.on_strain_changed = on_strain_changed register_overlord(overmind) -/datum/component/blob_minion/proc/register_overlord(mob/camera/blob/overmind) +/datum/component/blob_minion/proc/register_overlord(mob/eye/blob/overmind) if (isnull(overmind)) return src.overmind = overmind @@ -36,7 +36,7 @@ overmind_properties_changed() /// Our overmind has changed colour and properties -/datum/component/blob_minion/proc/overmind_properties_changed(mob/camera/blob/overmind, datum/blobstrain/new_strain) +/datum/component/blob_minion/proc/overmind_properties_changed(mob/eye/blob/overmind, datum/blobstrain/new_strain) SIGNAL_HANDLER var/mob/living/living_parent = parent living_parent.update_appearance(UPDATE_ICON) diff --git a/code/datums/components/lock_on_cursor.dm b/code/datums/components/lock_on_cursor.dm index 84e315dc6ce..1d8adedcb3c 100644 --- a/code/datums/components/lock_on_cursor.dm +++ b/code/datums/components/lock_on_cursor.dm @@ -36,7 +36,7 @@ lock_amount = 1, list/target_typecache = list(), list/immune = list(), - icon = 'icons/mob/silicon/cameramob.dmi', + icon = 'icons/mob/eyemob.dmi', icon_state = "marker", datum/callback/on_lock, datum/callback/can_target_callback, diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index fead0417db9..84889ad6bd9 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -1,4 +1,4 @@ -/mob/camera/ai_eye/remote/holo/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/remote/holo/setLoc(turf/destination, force_update = FALSE) // If we're moving outside the space of our projector, then just... don't var/obj/machinery/holopad/H = origin if(!H?.move_hologram(eye_user, destination)) @@ -24,7 +24,7 @@ var/list/dialed_holopads ///user's eye, once connected - var/mob/camera/ai_eye/remote/holo/eye + var/mob/eye/ai_eye/remote/holo/eye ///user's hologram, once connected var/obj/effect/overlay/holo_pad_hologram/hologram ///hangup action diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 10aa07e6242..0b46daebb01 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -618,7 +618,7 @@ buckled_mob.set_glide_size(target) /** - * meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like camera mobs or ghosts) + * meant for movement with zero side effects. only use for objects that are supposed to move "invisibly" (like eye mobs or ghosts) * if you want something to move onto a tile with a beartrap or recycler or tripmine or mouse without that object knowing about it at all, use this * most of the time you want forceMove() */ diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 892536bf831..2a333de6dff 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -73,7 +73,7 @@ . = ..() if(!new_viewer || hud_users_all_z_levels.len != 1) return - for(var/mob/camera/ai_eye/eye as anything in GLOB.aiEyes) + for(var/mob/eye/ai_eye/eye as anything in GLOB.aiEyes) eye.update_ai_detect_hud() /datum/atom_hud/data/malf_apc diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 6640f5582fa..80a06fa6b9f 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -8,7 +8,7 @@ var/list/z_lock = list() // Lock use to these z levels var/lock_override = NONE - var/mob/camera/ai_eye/remote/eyeobj + var/mob/eye/ai_eye/remote/eyeobj var/mob/living/current_user = null var/list/networks = list(CAMERANET_NETWORK_SS13) /// Typepath of the action button we use as "off" @@ -188,7 +188,7 @@ /obj/machinery/computer/camera_advanced/attack_ai(mob/user) return //AIs would need to disable their own camera procs to use the console safely. Bugs happen otherwise. -/mob/camera/ai_eye/remote +/mob/eye/ai_eye/remote name = "Inactive Camera Eye" ai_detector_visible = FALSE var/sprint = 10 @@ -200,24 +200,24 @@ var/visible_icon = 0 var/image/user_image = null -/mob/camera/ai_eye/remote/update_remote_sight(mob/living/user) +/mob/eye/ai_eye/remote/update_remote_sight(mob/living/user) user.set_invis_see(SEE_INVISIBLE_LIVING) //can't see ghosts through cameras user.set_sight(SEE_TURFS) return TRUE -/mob/camera/ai_eye/remote/Destroy() +/mob/eye/ai_eye/remote/Destroy() if(origin && eye_user) origin.remove_eye_control(eye_user,src) origin = null . = ..() eye_user = null -/mob/camera/ai_eye/remote/GetViewerClient() +/mob/eye/ai_eye/remote/GetViewerClient() if(eye_user) return eye_user.client return null -/mob/camera/ai_eye/remote/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/remote/setLoc(turf/destination, force_update = FALSE) if(eye_user) destination = get_turf(destination) if (destination) @@ -237,7 +237,7 @@ SET_PLANE(user_image, ABOVE_GAME_PLANE, destination) eye_user.client.images += user_image -/mob/camera/ai_eye/remote/relaymove(mob/living/user, direction) +/mob/eye/ai_eye/remote/relaymove(mob/living/user, direction) var/initial = initial(sprint) var/max_sprint = 50 @@ -263,7 +263,7 @@ /datum/action/innate/camera_off/Activate() if(!owner || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/console = remote_eye.origin console.remove_eye_control(owner) @@ -275,7 +275,7 @@ /datum/action/innate/camera_jump/Activate() if(!owner || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/origin = remote_eye.origin var/list/L = list() @@ -320,7 +320,7 @@ /datum/action/innate/camera_multiz_up/Activate() if(!owner || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control if(remote_eye.zMove(UP)) to_chat(owner, span_notice("You move upwards.")) else @@ -334,7 +334,7 @@ /datum/action/innate/camera_multiz_down/Activate() if(!owner || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control if(remote_eye.zMove(DOWN)) to_chat(owner, span_notice("You move downwards.")) else diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index c2fb218d50a..6db5f9d4f15 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -221,7 +221,7 @@ for(var/atom/movable/ROI in source) if(ROI == src) continue - if(!istype(ROI) || isdead(ROI) || iscameramob(ROI) || istype(ROI, /obj/effect/dummy/phased_mob)) + if(!istype(ROI) || isdead(ROI) || iseyemob(ROI) || istype(ROI, /obj/effect/dummy/phased_mob)) continue//don't teleport these var/on_chair = "" if(ROI.anchored)// if it's anchored, don't teleport diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm index 0a71427776e..7b1de41e564 100644 --- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm +++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm @@ -65,7 +65,7 @@ for (var/atom/movable/A in urange(12, FROM )) // iterate thru list of mobs in the area if(istype(A, /obj/item/beacon)) continue // don't teleport beacons because that's just insanely stupid - if(iscameramob(A)) + if(iseyemob(A)) continue // Don't mess with AI eye, blob eye, xenobio or advanced cameras if(A.anchored) continue diff --git a/code/game/objects/effects/temporary_visuals/effect_trail.dm b/code/game/objects/effects/temporary_visuals/effect_trail.dm index 9b28dcf909d..5eed9462dfd 100644 --- a/code/game/objects/effects/temporary_visuals/effect_trail.dm +++ b/code/game/objects/effects/temporary_visuals/effect_trail.dm @@ -2,7 +2,7 @@ /obj/effect/temp_visual/effect_trail name = "effect trail" desc = "An invisible effect, how did you examine this?" - icon = 'icons/mob/silicon/cameramob.dmi' + icon = 'icons/mob/eyemob.dmi' icon_state = "marker" duration = 15 SECONDS invisibility = INVISIBILITY_ABSTRACT diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 4838d6c8916..e323c65b1eb 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -204,7 +204,7 @@ var/turf/our_turf = get_turf(src) detect_state = PROXIMITY_NONE - for(var/mob/camera/ai_eye/AI_eye as anything in GLOB.aiEyes) + for(var/mob/eye/ai_eye/AI_eye as anything in GLOB.aiEyes) if(!AI_eye.ai_detector_visible) continue @@ -253,7 +253,7 @@ // copied from camera chunks but we are doing a really big edge case here though /obj/item/multitool/ai_detect/proc/surrounding_chunks(turf/epicenter) . = list() - var/static_range = /mob/camera/ai_eye::static_visibility_range + var/static_range = /mob/eye/ai_eye::static_visibility_range var/x1 = max(1, epicenter.x - static_range) var/y1 = max(1, epicenter.y - static_range) var/x2 = min(world.maxx, epicenter.x + static_range) diff --git a/code/game/objects/structures/construction_console/construction_actions.dm b/code/game/objects/structures/construction_console/construction_actions.dm index 1a6b5deeeae..b3a4e309ffa 100644 --- a/code/game/objects/structures/construction_console/construction_actions.dm +++ b/code/game/objects/structures/construction_console/construction_actions.dm @@ -5,7 +5,7 @@ /datum/action/innate/construction button_icon = 'icons/mob/actions/actions_construction.dmi' ///Console's eye mob - var/mob/camera/ai_eye/remote/base_construction/remote_eye + var/mob/eye/ai_eye/remote/base_construction/remote_eye ///Console itself var/obj/machinery/computer/camera_advanced/base_construction/base_console ///Is this used to build only on the station z level? diff --git a/code/game/objects/structures/construction_console/construction_console.dm b/code/game/objects/structures/construction_console/construction_console.dm index f13dd1d78c6..97b83acccae 100644 --- a/code/game/objects/structures/construction_console/construction_console.dm +++ b/code/game/objects/structures/construction_console/construction_console.dm @@ -1,7 +1,7 @@ /** * Camera console used to control a base building drone * - * Using this console will put the user in control of a [base building drone][/mob/camera/ai_eye/remote/base_construction]. + * Using this console will put the user in control of a [base building drone][/mob/eye/ai_eye/remote/base_construction]. * The drone will appear somewhere within the allowed_area var, or if no area is specified, at the location of the console.area * Upon interacting, the user will be granted a set of base building actions that will generally be carried out at the drone's location. * To create a new base builder system, this class should be the only thing that needs to be subtyped. @@ -61,7 +61,7 @@ var/turf/spawn_spot = find_spawn_spot() if (!spawn_spot) return FALSE - eyeobj = new /mob/camera/ai_eye/remote/base_construction(spawn_spot, src) + eyeobj = new /mob/eye/ai_eye/remote/base_construction(spawn_spot, src) eyeobj.origin = src return TRUE @@ -95,7 +95,7 @@ * The mob is constrained to a given area defined by the base construction console. * */ -/mob/camera/ai_eye/remote/base_construction +/mob/eye/ai_eye/remote/base_construction name = "construction holo-drone" //Allows any curious crew to watch the base after it leaves. (This is safe as the base cannot be modified once it leaves) move_on_shuttle = TRUE @@ -105,20 +105,20 @@ ///Reference to the camera console controlling this drone var/obj/machinery/computer/camera_advanced/base_construction/linked_console -/mob/camera/ai_eye/remote/base_construction/Initialize(mapload, obj/machinery/computer/camera_advanced/console_link) +/mob/eye/ai_eye/remote/base_construction/Initialize(mapload, obj/machinery/computer/camera_advanced/console_link) linked_console = console_link if(!linked_console) stack_trace("A base consturuction drone was created with no linked console") return INITIALIZE_HINT_QDEL return ..() -/mob/camera/ai_eye/remote/base_construction/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/remote/base_construction/setLoc(turf/destination, force_update = FALSE) var/area/curr_area = get_area(destination) //Only move if we're in the allowed area. If no allowed area is defined, then we're free to move wherever. if(!linked_console.allowed_area || istype(curr_area, linked_console.allowed_area)) return ..() -/mob/camera/ai_eye/remote/base_construction/relaymove(mob/living/user, direction) +/mob/eye/ai_eye/remote/base_construction/relaymove(mob/living/user, direction) //This camera eye is visible, and as such needs to keep its dir updated dir = direction return ..() diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 7a3fcef368a..6046d356892 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -518,7 +518,7 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) /obj/structure/closet/proc/insertion_allowed(atom/movable/AM) if(ismob(AM)) - if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... + if(!isliving(AM)) //let's not put ghosts or eye mobs inside closets... return FALSE var/mob/living/L = AM if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) diff --git a/code/modules/admin/smites/imaginary_friend_special.dm b/code/modules/admin/smites/imaginary_friend_special.dm index 37425faf3b1..b9621f51ba2 100644 --- a/code/modules/admin/smites/imaginary_friend_special.dm +++ b/code/modules/admin/smites/imaginary_friend_special.dm @@ -138,8 +138,8 @@ if(isliving(client_mob)) client_mob.ghostize() - var/mob/camera/imaginary_friend/friend_mob = client_mob.change_mob_type( - new_type = /mob/camera/imaginary_friend, + var/mob/eye/imaginary_friend/friend_mob = client_mob.change_mob_type( + new_type = /mob/eye/imaginary_friend, location = get_turf(client_mob), delete_old_mob = TRUE, ) diff --git a/code/modules/antagonists/abductor/machinery/camera.dm b/code/modules/antagonists/abductor/machinery/camera.dm index 09a8fdefa31..f4ddd345075 100644 --- a/code/modules/antagonists/abductor/machinery/camera.dm +++ b/code/modules/antagonists/abductor/machinery/camera.dm @@ -23,7 +23,7 @@ /obj/machinery/computer/camera_advanced/abductor/CreateEye() ..() eyeobj.visible_icon = TRUE - eyeobj.icon = 'icons/mob/silicon/cameramob.dmi' + eyeobj.icon = 'icons/mob/eyemob.dmi' eyeobj.icon_state = "abductor_camera" eyeobj.SetInvisibility(INVISIBILITY_OBSERVER) @@ -57,7 +57,7 @@ to_chat(owner, span_warning("You must wait [DisplayTimeText(use_delay - world.time)] to use the [target] again!")) return var/mob/living/carbon/human/C = owner - var/mob/camera/ai_eye/remote/remote_eye = C.remote_control + var/mob/eye/ai_eye/remote/remote_eye = C.remote_control var/obj/machinery/abductor/pad/P = target var/area/target_area = get_area(remote_eye) @@ -101,7 +101,7 @@ to_chat(owner, span_warning("You can only teleport to one place at a time!")) return var/mob/living/carbon/human/C = owner - var/mob/camera/ai_eye/remote/remote_eye = C.remote_control + var/mob/eye/ai_eye/remote/remote_eye = C.remote_control var/obj/machinery/abductor/pad/P = target var/area/target_area = get_area(remote_eye) @@ -151,7 +151,7 @@ return var/mob/living/carbon/human/C = owner - var/mob/camera/ai_eye/remote/remote_eye = C.remote_control + var/mob/eye/ai_eye/remote/remote_eye = C.remote_control var/obj/machinery/abductor/console/console = target console.SetDroppoint(remote_eye.loc,owner) diff --git a/code/modules/antagonists/blob/blob_antag.dm b/code/modules/antagonists/blob/blob_antag.dm index 9f9d97fac8d..25bea4b083e 100644 --- a/code/modules/antagonists/blob/blob_antag.dm +++ b/code/modules/antagonists/blob/blob_antag.dm @@ -18,7 +18,7 @@ var/basic_report = ..() //Display max blobpoints for blebs that lost if(isovermind(owner.current)) //embarrasing if not - var/mob/camera/blob/overmind = owner.current + var/mob/eye/blob/overmind = owner.current if(!overmind.victory_in_progress) //if it won this doesn't really matter var/point_report = "
[owner.name] took over [overmind.max_count] tiles at the height of its growth." return basic_report+point_report @@ -58,7 +58,7 @@ if(!isovermind(user)) return data - var/mob/camera/blob/blob = user + var/mob/eye/blob/blob = user var/datum/blobstrain/reagent/blobstrain = blob.blobstrain if(!blobstrain) @@ -129,7 +129,7 @@ placement_override = BLOB_RANDOM_PLACEMENT to_chat(owner, span_warning("Because your current location is an invalid starting spot and you need to pop, you've been moved to a random location!")) - var/mob/camera/blob/blob_cam = new /mob/camera/blob(get_turf(old_body), blobtag.starting_points_human_blob) + var/mob/eye/blob/blob_cam = new /mob/eye/blob(get_turf(old_body), blobtag.starting_points_human_blob) owner.mind.transfer_to(blob_cam) old_body.gib() blob_cam.place_blob_core(placement_override, pop_override = TRUE) @@ -147,7 +147,7 @@ /datum/antagonist/blob/antag_listing_status() . = ..() if(owner?.current) - var/mob/camera/blob/blob_cam = owner.current + var/mob/eye/blob/blob_cam = owner.current if(istype(blob_cam)) . += "(Progress: [length(blob_cam.blobs_legit)]/[blob_cam.blobwincount])" diff --git a/code/modules/antagonists/blob/blob_minion.dm b/code/modules/antagonists/blob/blob_minion.dm index 9bf37e961d5..e0ff3beb9f9 100644 --- a/code/modules/antagonists/blob/blob_minion.dm +++ b/code/modules/antagonists/blob/blob_minion.dm @@ -7,7 +7,7 @@ /// The blob core that this minion is attached to var/datum/weakref/overmind -/datum/antagonist/blob_minion/New(mob/camera/blob/overmind) +/datum/antagonist/blob_minion/New(mob/eye/blob/overmind) . = ..() src.overmind = WEAKREF(overmind) @@ -24,7 +24,7 @@ var/datum/weakref/overmind /datum/objective/blob_minion/check_completion() - var/mob/camera/blob/resolved_overmind = overmind.resolve() + var/mob/eye/blob/resolved_overmind = overmind.resolve() if(!resolved_overmind) return FALSE return resolved_overmind.stat != DEAD diff --git a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm index 27d177dde68..54d393780b2 100644 --- a/code/modules/antagonists/blob/blobstrains/_blobstrain.dm +++ b/code/modules/antagonists/blob/blobstrains/_blobstrain.dm @@ -24,7 +24,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/ var/resource_delay = 0 /// For blob-mobs and extinguishing-based effects var/fire_based = FALSE - var/mob/camera/blob/overmind + var/mob/eye/blob/overmind /// The amount of health regenned on core_process var/base_core_regen = BLOB_CORE_HP_REGEN /// The amount of points gained on core_process @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/ /// Makes blobbernauts inject a bonus amount of reagents, making their attacks more powerful var/blobbernaut_reagentatk_bonus = 0 -/datum/blobstrain/New(mob/camera/blob/new_overmind) +/datum/blobstrain/New(mob/eye/blob/new_overmind) if (!istype(new_overmind)) stack_trace("blobstrain created without overmind") overmind = new_overmind @@ -155,7 +155,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/ /datum/blobstrain/proc/death_reaction(obj/structure/blob/B, damage_flag, coefficient = 1) //when a blob dies, do this return -/datum/blobstrain/proc/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O, coefficient = 1) //when the blob expands, do this +/datum/blobstrain/proc/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/eye/blob/O, coefficient = 1) //when the blob expands, do this return /datum/blobstrain/proc/tesla_reaction(obj/structure/blob/B, power, coefficient = 1) //when the blob is hit by a tesla bolt, do this diff --git a/code/modules/antagonists/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blobstrains/_reagent.dm index 65a50621b17..bc9c61dd4b1 100644 --- a/code/modules/antagonists/blob/blobstrains/_reagent.dm +++ b/code/modules/antagonists/blob/blobstrains/_reagent.dm @@ -1,7 +1,7 @@ /datum/blobstrain/reagent // Blobs that mess with reagents, all "legacy" ones // what do you mean "legacy" you never added an alternative var/datum/reagent/reagent -/datum/blobstrain/reagent/New(mob/camera/blob/new_overmind) +/datum/blobstrain/reagent/New(mob/eye/blob/new_overmind) . = ..() reagent = new reagent() @@ -42,12 +42,12 @@ description = "[name] is the reagent created by that type of blob." /// Used by blob reagents to calculate the reaction volume they should use when exposing mobs. -/datum/reagent/blob/proc/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/proc/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) if(exposed_mob.stat == DEAD || HAS_TRAIT(exposed_mob, TRAIT_BLOB_ALLY)) return 0 //the dead, and blob mobs, don't cause reactions return round(reac_volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume. /// Exists to earmark the new overmind arg used by blob reagents. -/datum/reagent/blob/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) return ..() diff --git a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm index ded3be1458e..f01f2c2faad 100644 --- a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm +++ b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm @@ -32,7 +32,7 @@ taste_description = "burning oil" color = "#B68D00" -/datum/reagent/blob/blazing_oil/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/blazing_oil/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.adjust_fire_stacks(round(reac_volume/10)) diff --git a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm index acb4d96c23a..64aa9c26f75 100644 --- a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm +++ b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm @@ -16,7 +16,7 @@ color = "#8BA6E9" taste_description = "brain freeze" -/datum/reagent/blob/cryogenic_poison/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/cryogenic_poison/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(exposed_mob.reagents) diff --git a/code/modules/antagonists/blob/blobstrains/debris_devourer.dm b/code/modules/antagonists/blob/blobstrains/debris_devourer.dm index 352d7c230a4..1a2cb9fe854 100644 --- a/code/modules/antagonists/blob/blobstrains/debris_devourer.dm +++ b/code/modules/antagonists/blob/blobstrains/debris_devourer.dm @@ -25,7 +25,7 @@ I.forceMove(get_turf(spore)) I.throw_at(get_edge_target_turf(spore,pick(GLOB.alldirs)), 6, 5, spore, TRUE, FALSE, null, 3) -/datum/blobstrain/debris_devourer/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O, coefficient = 1) //when the blob expands, do this +/datum/blobstrain/debris_devourer/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/eye/blob/O, coefficient = 1) //when the blob expands, do this for (var/obj/item/I in T) I.forceMove(overmind.blob_core) diff --git a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm index ea2bf54d769..cb5f565ef55 100644 --- a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm +++ b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm @@ -22,7 +22,7 @@ color = "#E88D5D" taste_description = "fizzing" -/datum/reagent/blob/distributed_neurons/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/distributed_neurons/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.6*reac_volume, TOX) diff --git a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm index 4a5c49d851a..d4c9da7e0e4 100644 --- a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm +++ b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm @@ -23,7 +23,7 @@ taste_description = "pop rocks" color = "#83ECEC" -/datum/reagent/blob/electromagnetic_web/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/electromagnetic_web/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(prob(reac_volume*2)) diff --git a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm index 9fa5ed9ab96..43c18fc8090 100644 --- a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm +++ b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm @@ -26,7 +26,7 @@ taste_description = "gelatin" color = "#EFD65A" -/datum/reagent/blob/energized_jelly/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/energized_jelly/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.losebreath += round(0.2*reac_volume) diff --git a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm index e1ae8294df3..d068373e86b 100644 --- a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm +++ b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm @@ -31,7 +31,7 @@ taste_description = "the bomb" color = "#8B2500" -/datum/reagent/blob/explosive_lattice/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/explosive_lattice/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() var/brute_loss = 0 var/burn_loss = 0 @@ -51,7 +51,7 @@ brute_loss = brute_loss*(2 - round(bomb_armor*0.01, 0.05)) burn_loss = brute_loss - + exposed_mob.take_overall_damage(brute_loss, burn_loss) for(var/mob/living/nearby_mob in orange(epicenter_turf, 1)) @@ -69,6 +69,6 @@ burn_loss = brute_loss nearby_mob.take_overall_damage(brute_loss, burn_loss) - + else exposed_mob.apply_damage(0.6*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/multiplex.dm b/code/modules/antagonists/blob/blobstrains/multiplex.dm index aaebf1d0526..aedb571c6b6 100644 --- a/code/modules/antagonists/blob/blobstrains/multiplex.dm +++ b/code/modules/antagonists/blob/blobstrains/multiplex.dm @@ -2,7 +2,7 @@ var/list/blobstrains var/typeshare -/datum/blobstrain/multiplex/New(mob/camera/blob/new_overmind, list/blobstrains) +/datum/blobstrain/multiplex/New(mob/eye/blob/new_overmind, list/blobstrains) . = ..() for (var/bt in blobstrains) if (ispath(bt, /datum/blobstrain)) @@ -21,7 +21,7 @@ for (var/datum/blobstrain/bt in blobstrains) . += bt.death_reaction(B, damage_flag, coefficient*typeshare) -/datum/blobstrain/multiplex/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O, coefficient = 1) //when the blob expands, do this +/datum/blobstrain/multiplex/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/eye/blob/O, coefficient = 1) //when the blob expands, do this for (var/datum/blobstrain/bt in blobstrains) . += bt.expand_reaction(B, newB, T, O, coefficient*typeshare) diff --git a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm index 4c84eb639d7..1dfb0bf4077 100644 --- a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm +++ b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm @@ -11,7 +11,7 @@ reagent = /datum/reagent/blob/networked_fibers core_regen_bonus = 3 -/datum/blobstrain/reagent/networked_fibers/expand_reaction(obj/structure/blob/spawning_blob, obj/structure/blob/new_blob, turf/chosen_turf, mob/camera/blob/overmind) +/datum/blobstrain/reagent/networked_fibers/expand_reaction(obj/structure/blob/spawning_blob, obj/structure/blob/new_blob, turf/chosen_turf, mob/eye/blob/overmind) if(!overmind && new_blob.overmind) new_blob.overmind.add_points(1) qdel(new_blob) @@ -33,7 +33,7 @@ taste_description = "efficiency" color = "#4F4441" -/datum/reagent/blob/networked_fibers/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/networked_fibers/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.6*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm index d035319219d..40019beb013 100644 --- a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm +++ b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm @@ -39,7 +39,7 @@ taste_description = "a sponge" color = "#AAAABB" -/datum/reagent/blob/pressurized_slime/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/pressurized_slime/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) var/turf/open/location_turf = get_turf(exposed_mob) diff --git a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm index 1c8cb893df8..778b1a22784 100644 --- a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm +++ b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm @@ -34,12 +34,12 @@ taste_description = "rock" color = "#9ACD32" -/datum/reagent/blob/reactive_spines/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/reactive_spines/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) if(exposed_mob.stat == DEAD || HAS_TRAIT(exposed_mob, TRAIT_BLOB_ALLY)) return 0 //the dead, and blob mobs, don't cause reactions return reac_volume -/datum/reagent/blob/reactive_spines/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/reactive_spines/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.adjustBruteLoss(reac_volume) diff --git a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm index d9010a96537..101995f23d5 100644 --- a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm +++ b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm @@ -16,7 +16,7 @@ taste_description = "heaven" color = "#A88FB7" -/datum/reagent/blob/regenerative_materia/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/regenerative_materia/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(iscarbon(exposed_mob)) diff --git a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm index 83d84618da5..949c945e9c6 100644 --- a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm +++ b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm @@ -21,7 +21,7 @@ return ..() -/datum/blobstrain/reagent/replicating_foam/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) +/datum/blobstrain/reagent/replicating_foam/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/eye/blob/O) if(prob(30)) newB.expand(null, null, 0) //do it again! @@ -30,7 +30,7 @@ taste_description = "duplication" color = "#7B5A57" -/datum/reagent/blob/replicating_foam/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/replicating_foam/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm index 3db0041b310..8dfe798c57e 100644 --- a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm +++ b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm @@ -9,7 +9,7 @@ complementary_color = "#3C6EC8" reagent = /datum/reagent/blob/shifting_fragments -/datum/blobstrain/reagent/shifting_fragments/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/camera/blob/O) +/datum/blobstrain/reagent/shifting_fragments/expand_reaction(obj/structure/blob/B, obj/structure/blob/newB, turf/T, mob/eye/blob/O) if(istype(B, /obj/structure/blob/normal) || (istype(B, /obj/structure/blob/shield))) newB.forceMove(get_turf(B)) B.forceMove(T) @@ -31,7 +31,7 @@ name = "Shifting Fragments" color = "#C8963C" -/datum/reagent/blob/shifting_fragments/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/shifting_fragments/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm index 825104ddcc1..1030e447106 100644 --- a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm +++ b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm @@ -30,7 +30,7 @@ taste_description = "toxic mold" color = "#65ADA2" -/datum/reagent/blob/synchronous_mesh/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) +/datum/reagent/blob/synchronous_mesh/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/eye/blob/overmind) . = ..() reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.2*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index 99a27429e61..db40090615b 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -5,11 +5,11 @@ GLOBAL_LIST_EMPTY(overminds) GLOBAL_LIST_EMPTY(blob_nodes) -/mob/camera/blob +/mob/eye/blob name = "Blob Overmind" real_name = "Blob Overmind" desc = "The overmind. It controls the blob." - icon = 'icons/mob/silicon/cameramob.dmi' + icon = 'icons/mob/eyemob.dmi' icon_state = "marker" mouse_opacity = MOUSE_OPACITY_ICON move_on_shuttle = TRUE @@ -53,7 +53,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) /// The list of strains the blob can reroll for. var/list/strain_choices -/mob/camera/blob/Initialize(mapload, starting_points = OVERMIND_STARTING_POINTS) +/mob/eye/blob/Initialize(mapload, starting_points = OVERMIND_STARTING_POINTS) ADD_TRAIT(src, TRAIT_BLOB_ALLY, INNATE_TRAIT) validate_location() blob_points = starting_points @@ -74,7 +74,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) START_PROCESSING(SSobj, src) GLOB.blob_telepathy_mobs |= src -/mob/camera/blob/proc/validate_location() +/mob/eye/blob/proc/validate_location() var/turf/T = get_turf(src) if(is_valid_turf(T)) return @@ -96,7 +96,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) CRASH("No blobspawnpoints and blob spawned in nullspace.") forceMove(T) -/mob/camera/blob/proc/set_strain(datum/blobstrain/new_strain) +/mob/eye/blob/proc/set_strain(datum/blobstrain/new_strain) if (!ispath(new_strain)) return FALSE @@ -116,7 +116,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) to_chat(src, span_notice("The [blobstrain.name] strain [blobstrain.effectdesc]")) SEND_SIGNAL(src, COMSIG_BLOB_SELECTED_STRAIN, blobstrain) -/mob/camera/blob/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) +/mob/eye/blob/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) if(placed) // The blob can't expand vertically (yet) return FALSE . = ..() @@ -128,13 +128,13 @@ GLOBAL_LIST_EMPTY(blob_nodes) to_chat(src, span_warning("Your destination is invalid. Move somewhere else and try again.")) return null -/mob/camera/blob/proc/is_valid_turf(turf/tile) +/mob/eye/blob/proc/is_valid_turf(turf/tile) var/area/area = get_area(tile) if((area && !(area.area_flags & BLOBS_ALLOWED)) || !tile || !is_station_level(tile.z) || isgroundlessturf(tile)) return FALSE return TRUE -/mob/camera/blob/process() +/mob/eye/blob/process() if(!blob_core) if(!placed) if(manualplace_min_time && world.time >= manualplace_min_time) @@ -166,27 +166,27 @@ GLOBAL_LIST_EMPTY(blob_nodes) has_announced = TRUE /// Create a blob spore and link it to us -/mob/camera/blob/proc/create_spore(turf/spore_turf, spore_type = /mob/living/basic/blob_minion/spore/minion) +/mob/eye/blob/proc/create_spore(turf/spore_turf, spore_type = /mob/living/basic/blob_minion/spore/minion) var/mob/living/basic/blob_minion/spore/spore = new spore_type(spore_turf) assume_direct_control(spore) return spore /// Give our new minion the properties of a minion -/mob/camera/blob/proc/assume_direct_control(mob/living/minion) +/mob/eye/blob/proc/assume_direct_control(mob/living/minion) minion.AddComponent(/datum/component/blob_minion, src) /// Add something to our list of mobs and wait for it to die -/mob/camera/blob/proc/register_new_minion(mob/living/minion) +/mob/eye/blob/proc/register_new_minion(mob/living/minion) blob_mobs |= minion if (!istype(minion, /mob/living/basic/blob_minion/blobbernaut)) RegisterSignal(minion, COMSIG_LIVING_DEATH, PROC_REF(on_minion_death)) /// When a spore (or zombie) dies then we do this -/mob/camera/blob/proc/on_minion_death(mob/living/spore) +/mob/eye/blob/proc/on_minion_death(mob/living/spore) SIGNAL_HANDLER blobstrain.on_sporedeath(spore) -/mob/camera/blob/proc/victory() +/mob/eye/blob/proc/victory() sound_to_playing_players('sound/announcer/alarm/nuke_alarm.ogg', 70) sleep(10 SECONDS) for(var/mob/living/live_guy as anything in GLOB.mob_living_list) @@ -232,7 +232,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) SSticker.news_report = BLOB_WIN SSticker.force_ending = FORCE_END_ROUND -/mob/camera/blob/Destroy() +/mob/eye/blob/Destroy() QDEL_NULL(blobstrain) for(var/BL in GLOB.blobs) var/obj/structure/blob/B = BL @@ -255,7 +255,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) return ..() -/mob/camera/blob/Login() +/mob/eye/blob/Login() . = ..() if(!. || !client) return FALSE @@ -266,12 +266,12 @@ GLOBAL_LIST_EMPTY(blob_nodes) update_health_hud() add_points(0) -/mob/camera/blob/examine(mob/user) +/mob/eye/blob/examine(mob/user) . = ..() if(blobstrain) . += "Its strain is [blobstrain.name]." -/mob/camera/blob/update_health_hud() +/mob/eye/blob/update_health_hud() if(!blob_core) return FALSE var/current_health = round((blob_core.get_integrity() / blob_core.max_integrity) * 100) @@ -282,11 +282,11 @@ GLOBAL_LIST_EMPTY(blob_nodes) continue using_hud.blobpwrdisplay.maptext = MAPTEXT("
[current_health]%
") -/mob/camera/blob/proc/add_points(points) +/mob/eye/blob/proc/add_points(points) blob_points = clamp(blob_points + points, 0, max_blob_points) hud_used.blobpwrdisplay.maptext = MAPTEXT("
[round(blob_points)]
") -/mob/camera/blob/say( +/mob/eye/blob/say( message, bubble_type, list/spans = list(), @@ -314,7 +314,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) blob_talk(message) -/mob/camera/blob/proc/blob_talk(message) +/mob/eye/blob/proc/blob_talk(message) message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) @@ -327,10 +327,10 @@ GLOBAL_LIST_EMPTY(blob_nodes) var/rendered = span_big(span_blob("\[Blob Telepathy\] [name]([blobstrain.name]) [message_a]")) relay_to_list_and_observers(rendered, GLOB.blob_telepathy_mobs, src) -/mob/camera/blob/blob_act(obj/structure/blob/B) +/mob/eye/blob/blob_act(obj/structure/blob/B) return -/mob/camera/blob/get_status_tab_items() +/mob/eye/blob/get_status_tab_items() . = ..() if(blob_core) . += "Core Health: [blob_core.get_integrity()]" @@ -343,7 +343,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) . += "Time Before Manual Placement: [max(round((manualplace_min_time - world.time)*0.1, 0.1), 0)]" . += "Time Before Automatic Placement: [max(round((autoplace_max_time - world.time)*0.1, 0.1), 0)]" -/mob/camera/blob/Move(NewLoc, Dir = 0) +/mob/eye/blob/Move(NewLoc, Dir = 0) if(placed) var/obj/structure/blob/B = locate() in range(OVERMIND_MAX_CAMERA_STRAY, NewLoc) if(B) @@ -357,7 +357,7 @@ GLOBAL_LIST_EMPTY(blob_nodes) forceMove(NewLoc) return TRUE -/mob/camera/blob/mind_initialize() +/mob/eye/blob/mind_initialize() . = ..() var/datum/antagonist/blob/blob = mind.has_antag_datum(/datum/antagonist/blob) if(!blob) diff --git a/code/modules/antagonists/blob/powers.dm b/code/modules/antagonists/blob/powers.dm index 2f3b51741f9..58e25cdd620 100644 --- a/code/modules/antagonists/blob/powers.dm +++ b/code/modules/antagonists/blob/powers.dm @@ -1,7 +1,7 @@ #define BLOB_REROLL_RADIUS 60 /** Simple price check */ -/mob/camera/blob/proc/can_buy(cost = 15) +/mob/eye/blob/proc/can_buy(cost = 15) if(blob_points < cost) to_chat(src, span_warning("You cannot afford this, you need at least [cost] resources!")) balloon_alert(src, "need [cost-blob_points] more resource\s!") @@ -10,7 +10,7 @@ return TRUE /** Places the core itself */ -/mob/camera/blob/proc/place_blob_core(placement_override = BLOB_NORMAL_PLACEMENT, pop_override = FALSE) +/mob/eye/blob/proc/place_blob_core(placement_override = BLOB_NORMAL_PLACEMENT, pop_override = FALSE) if(placed && placement_override != BLOB_FORCE_PLACEMENT) return TRUE @@ -50,7 +50,7 @@ return TRUE /** Checks proximity for mobs */ -/mob/camera/blob/proc/check_core_visibility() +/mob/eye/blob/proc/check_core_visibility() for(var/mob/living/player in range(7, src)) if(ROLE_BLOB in player.faction) continue @@ -69,7 +69,7 @@ /** Checks for previous blobs or denose objects on the tile. */ -/mob/camera/blob/proc/check_objects_tile(turf/placement) +/mob/eye/blob/proc/check_objects_tile(turf/placement) for(var/obj/object in placement) if(istype(object, /obj/structure/blob)) if(istype(object, /obj/structure/blob/normal)) @@ -85,12 +85,12 @@ return TRUE /** Moves the core elsewhere. */ -/mob/camera/blob/proc/transport_core() +/mob/eye/blob/proc/transport_core() if(blob_core) forceMove(blob_core.drop_location()) /** Jumps to a node */ -/mob/camera/blob/proc/jump_to_node() +/mob/eye/blob/proc/jump_to_node() if(!length(GLOB.blob_nodes)) return FALSE @@ -108,7 +108,7 @@ forceMove(chosen_node.loc) /** Places important blob structures */ -/mob/camera/blob/proc/create_special(price, blobstrain, min_separation, needs_node, turf/tile) +/mob/eye/blob/proc/create_special(price, blobstrain, min_separation, needs_node, turf/tile) if(!tile) tile = get_turf(src) var/obj/structure/blob/blob = (locate(/obj/structure/blob) in tile) @@ -142,7 +142,7 @@ return node /** Toggles requiring nodes */ -/mob/camera/blob/proc/toggle_node_req() +/mob/eye/blob/proc/toggle_node_req() nodes_required = !nodes_required if(nodes_required) to_chat(src, span_warning("You now require a nearby node or core to place factory and resource blobs.")) @@ -150,7 +150,7 @@ to_chat(src, span_warning("You no longer require a nearby node or core to place factory and resource blobs.")) /** Creates a shield to reflect projectiles */ -/mob/camera/blob/proc/create_shield(turf/tile) +/mob/eye/blob/proc/create_shield(turf/tile) var/obj/structure/blob/shield/shield = locate(/obj/structure/blob/shield) in tile if(!shield) shield = create_special(BLOB_UPGRADE_STRONG_COST, /obj/structure/blob/shield, 0, FALSE, tile) @@ -170,7 +170,7 @@ shield.balloon_alert(src, "upgraded to [shield.name]!") /** Preliminary check before polling ghosts. */ -/mob/camera/blob/proc/create_blobbernaut() +/mob/eye/blob/proc/create_blobbernaut() var/turf/current_turf = get_turf(src) var/obj/structure/blob/special/factory/factory = locate(/obj/structure/blob/special/factory) in current_turf if(!factory) @@ -190,7 +190,7 @@ pick_blobbernaut_candidate(factory) /// Polls ghosts to get a blobbernaut candidate. -/mob/camera/blob/proc/pick_blobbernaut_candidate(obj/structure/blob/special/factory/factory) +/mob/eye/blob/proc/pick_blobbernaut_candidate(obj/structure/blob/special/factory/factory) if(isnull(factory)) return var/icon/blobbernaut_icon = icon(icon, "blobbernaut") @@ -209,7 +209,7 @@ on_poll_concluded(factory, chosen_one) /// Called when the ghost poll concludes -/mob/camera/blob/proc/on_poll_concluded(obj/structure/blob/special/factory/factory, mob/dead/observer/ghost) +/mob/eye/blob/proc/on_poll_concluded(obj/structure/blob/special/factory/factory, mob/dead/observer/ghost) if(isnull(ghost)) to_chat(src, span_warning("You could not conjure a sentience for your blobbernaut. Your points have been refunded. Try again later.")) add_points(BLOBMOB_BLOBBERNAUT_RESOURCE_COST) @@ -223,14 +223,14 @@ RegisterSignal(blobber, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(on_blobbernaut_attacked)) /// When one of our boys attacked something, we sometimes want to perform extra effects -/mob/camera/blob/proc/on_blobbernaut_attacked(mob/living/basic/blobbynaut, atom/target, success) +/mob/eye/blob/proc/on_blobbernaut_attacked(mob/living/basic/blobbynaut, atom/target, success) SIGNAL_HANDLER if (!success) return blobstrain.blobbernaut_attack(target, blobbynaut) /** Moves the core */ -/mob/camera/blob/proc/relocate_core() +/mob/eye/blob/proc/relocate_core() var/turf/tile = get_turf(src) var/obj/structure/blob/special/node/blob = locate(/obj/structure/blob/special/node) in tile @@ -258,7 +258,7 @@ blob.setDir(old_dir) /** Searches the tile for a blob and removes it. */ -/mob/camera/blob/proc/remove_blob(turf/tile) +/mob/eye/blob/proc/remove_blob(turf/tile) var/obj/structure/blob/blob = locate() in tile if(!blob) @@ -283,7 +283,7 @@ return TRUE /** Expands to nearby tiles */ -/mob/camera/blob/proc/expand_blob(turf/tile) +/mob/eye/blob/proc/expand_blob(turf/tile) if(world.time < last_attack) return FALSE var/list/possible_blobs = list() @@ -327,7 +327,7 @@ /** Finds cardinal and diagonal attack directions */ -/mob/camera/blob/proc/directional_attack(turf/tile, list/possible_blobs, attack_success = FALSE) +/mob/eye/blob/proc/directional_attack(turf/tile, list/possible_blobs, attack_success = FALSE) var/list/cardinal_blobs = list() var/list/diagonal_blobs = list() @@ -353,7 +353,7 @@ return TRUE /** Rally spores to a location */ -/mob/camera/blob/proc/rally_spores(turf/tile) +/mob/eye/blob/proc/rally_spores(turf/tile) to_chat(src, "You rally your spores.") var/list/surrounding_turfs = TURF_NEIGHBORS(tile) if(!length(surrounding_turfs)) @@ -365,7 +365,7 @@ blob_mob.ai_controller.set_blackboard_key(BB_TRAVEL_DESTINATION, pick(surrounding_turfs)) /** Opens the reroll menu to change strains */ -/mob/camera/blob/proc/strain_reroll() +/mob/eye/blob/proc/strain_reroll() if (!free_strain_rerolls && blob_points < BLOB_POWER_REROLL_COST) to_chat(src, span_warning("You need at least [BLOB_POWER_REROLL_COST] resources to reroll your strain again!")) return FALSE @@ -373,7 +373,7 @@ open_reroll_menu() /** Controls changing strains */ -/mob/camera/blob/proc/open_reroll_menu() +/mob/eye/blob/proc/open_reroll_menu() if (!strain_choices) strain_choices = list() diff --git a/code/modules/antagonists/blob/structures/_blob.dm b/code/modules/antagonists/blob/structures/_blob.dm index ce1b016dcb0..4d401a52189 100644 --- a/code/modules/antagonists/blob/structures/_blob.dm +++ b/code/modules/antagonists/blob/structures/_blob.dm @@ -29,7 +29,7 @@ var/ignore_syncmesh_share = 0 /// If the blob blocks atmos and heat spread var/atmosblock = FALSE - var/mob/camera/blob/overmind + var/mob/eye/blob/overmind /datum/armor/structure_blob @@ -144,7 +144,7 @@ O.setDir(dir) var/area/my_area = get_area(src) if(controller) - var/mob/camera/blob/BO = controller + var/mob/eye/blob/BO = controller O.color = BO.blobstrain.color if(!(my_area.area_flags & BLOBS_ALLOWED)) O.color = BlendRGB(O.color, COLOR_WHITE, 0.5) //lighten it to indicate an off-station blob @@ -416,7 +416,7 @@ if(SPT_PROB(BLOB_REINFORCE_CHANCE, seconds_per_tick)) B.change_to(/obj/structure/blob/shield/reflective/core, overmind) -/obj/structure/blob/special/proc/pulse_area(mob/camera/blob/pulsing_overmind, claim_range = 10, pulse_range = 3, expand_range = 2) +/obj/structure/blob/special/proc/pulse_area(mob/eye/blob/pulsing_overmind, claim_range = 10, pulse_range = 3, expand_range = 2) if(QDELETED(pulsing_overmind)) pulsing_overmind = overmind Be_Pulsed() diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index da3356e8250..154aa2ce83a 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -444,7 +444,7 @@ if(ismob(to_insert)) if(!reverse_option_list["Mobs"]) return FALSE - if(!isliving(to_insert)) //let's not put ghosts or camera mobs inside + if(!isliving(to_insert)) //let's not put ghosts or eye mobs inside return FALSE var/mob/living/mob_to_insert = to_insert if(mob_to_insert.anchored || mob_to_insert.incorporeal_move) diff --git a/code/modules/events/ghost_role/blob.dm b/code/modules/events/ghost_role/blob.dm index 8e83351f5c0..097620646d8 100644 --- a/code/modules/events/ghost_role/blob.dm +++ b/code/modules/events/ghost_role/blob.dm @@ -37,7 +37,7 @@ if(isnull(chosen_one)) return NOT_ENOUGH_PLAYERS var/mob/dead/observer/new_blob = chosen_one - var/mob/camera/blob/BC = new_blob.become_overmind() + var/mob/eye/blob/BC = new_blob.become_overmind() spawned_mobs += BC message_admins("[ADMIN_LOOKUPFLW(BC)] has been made into a blob overmind by an event.") BC.log_message("was spawned as a blob overmind by an event.", LOG_GAME) diff --git a/code/modules/forensics/_forensics.dm b/code/modules/forensics/_forensics.dm index 5c43b9da099..8058a32e7fa 100644 --- a/code/modules/forensics/_forensics.dm +++ b/code/modules/forensics/_forensics.dm @@ -109,10 +109,10 @@ /// Adds a single fingerprint /datum/forensics/proc/add_fingerprint(mob/living/suspect, ignoregloves = FALSE) if(!isliving(suspect)) - if(!iscameramob(suspect)) + if(!iseyemob(suspect)) return if(isaicamera(suspect)) - var/mob/camera/ai_eye/ai_camera = suspect + var/mob/eye/ai_eye/ai_camera = suspect if(!ai_camera.ai) return suspect = ai_camera.ai @@ -190,10 +190,10 @@ /// Adds a single hiddenprint /datum/forensics/proc/add_hiddenprint(mob/suspect) if(!isliving(suspect)) - if(!iscameramob(suspect)) + if(!iseyemob(suspect)) return if(isaicamera(suspect)) - var/mob/camera/ai_eye/ai_camera = suspect + var/mob/eye/ai_eye/ai_camera = suspect if(!ai_camera.ai) return suspect = ai_camera.ai diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 74be453b2b1..cc03fb05a30 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -323,7 +323,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ghostize(FALSE) // FALSE parameter is so we can never re-enter our body. U ded. return TRUE -/mob/camera/verb/ghost() +/mob/eye/verb/ghost() set category = "OOC" set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." @@ -704,7 +704,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp //this is called when a ghost is drag clicked to something. /mob/dead/observer/mouse_drop_dragged(atom/over, mob/user) - if (isobserver(user) && user.client.holder && (isliving(over) || iscameramob(over))) + if (isobserver(user) && user.client.holder && (isliving(over) || iseyemob(over))) user.client.holder.cmd_ghost_drag(src, over) /mob/dead/observer/Topic(href, href_list) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index bdb0b7ce37e..d2823eae2b5 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -285,7 +285,7 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new) * Helper POI validation function passed as a callback to various SSpoints_of_interest procs. * * Provides extended validation above and beyond standard, limiting mob POIs without minds or ckeys - * unless they're mobs, camera mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled. + * unless they're mobs, eye mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled. * * If they satisfy that requirement, falls back to default validation for the POI. */ @@ -294,7 +294,7 @@ GLOBAL_DATUM_INIT(orbit_menu, /datum/orbit_menu, new) if(!potential_mob_poi.mind && !potential_mob_poi.ckey) if(!mob_allowed_typecache) mob_allowed_typecache = typecacheof(list( - /mob/camera, + /mob/eye, /mob/living/basic/regal_rat, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/megafauna, diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 28b5575108d..924498332ec 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -46,7 +46,7 @@ /datum/emote/help key = "help" - mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/living/silicon/ai, /mob/camera/imaginary_friend) + mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/living/silicon/ai, /mob/eye/imaginary_friend) /datum/emote/help/run_emote(mob/user, params, type_override, intentional) . = ..() @@ -78,8 +78,8 @@ key = "flip" key_third_person = "flips" hands_use_check = TRUE - mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer, /mob/camera/imaginary_friend) - mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/living/silicon/ai, /mob/camera/imaginary_friend) + mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer, /mob/eye/imaginary_friend) + mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/living/silicon/ai, /mob/eye/imaginary_friend) /datum/emote/flip/run_emote(mob/user, params , type_override, intentional) . = ..() @@ -111,8 +111,8 @@ key = "spin" key_third_person = "spins" hands_use_check = TRUE - mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer, /mob/camera/imaginary_friend) - mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/camera/imaginary_friend) + mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer, /mob/eye/imaginary_friend) + mob_type_ignore_stat_typecache = list(/mob/dead/observer, /mob/eye/imaginary_friend) /datum/emote/spin/run_emote(mob/user, params, type_override, intentional) . = ..() diff --git a/code/modules/mob/camera/camera.dm b/code/modules/mob/eye/eye.dm similarity index 71% rename from code/modules/mob/camera/camera.dm rename to code/modules/mob/eye/eye.dm index eb0d787f64b..ca58e2969c5 100644 --- a/code/modules/mob/camera/camera.dm +++ b/code/modules/mob/eye/eye.dm @@ -1,6 +1,6 @@ -// Camera mob, used by AI camera and blob. -/mob/camera - name = "camera mob" +// Eye mob, used by cameras and overminds such as blobs. +/mob/eye + name = "eye mob" density = FALSE move_force = INFINITY move_resist = INFINITY @@ -13,42 +13,42 @@ /// Toggles if the camera can use emotes var/has_emotes = FALSE -/mob/camera/Initialize(mapload) +/mob/eye/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_GODMODE, INNATE_TRAIT) SSpoints_of_interest.make_point_of_interest(src) if(!move_on_shuttle) ADD_TRAIT(src, TRAIT_BLOCK_SHUTTLE_MOVEMENT, INNATE_TRAIT) -/mob/camera/experience_pressure_difference() +/mob/eye/experience_pressure_difference() return -/mob/camera/canUseStorage() +/mob/eye/canUseStorage() return FALSE -/mob/camera/up() +/mob/eye/up() set name = "Move Upwards" set category = "IC" if(zMove(UP, z_move_flags = ZMOVE_FEEDBACK)) to_chat(src, span_notice("You move upwards.")) -/mob/camera/down() +/mob/eye/down() set name = "Move Down" set category = "IC" if(zMove(DOWN, z_move_flags = ZMOVE_FEEDBACK)) to_chat(src, span_notice("You move down.")) -/mob/camera/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) +/mob/eye/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) z_move_flags |= ZMOVE_IGNORE_OBSTACLES //cameras do not respect these FLOORS you speak so much of return ..() -/mob/camera/emote(act, m_type=1, message = null, intentional = FALSE, force_silence = FALSE) +/mob/eye/emote(act, m_type=1, message = null, intentional = FALSE, force_silence = FALSE) if(has_emotes) return ..() return FALSE -/mob/camera/update_sight() +/mob/eye/update_sight() lighting_color_cutoffs = list(lighting_cutoff_red, lighting_cutoff_green, lighting_cutoff_blue) return ..() diff --git a/code/modules/mob/living/basic/blob_minions/blob_mob.dm b/code/modules/mob/living/basic/blob_minions/blob_mob.dm index 6c30bdfe16d..1ebd53bb592 100644 --- a/code/modules/mob/living/basic/blob_minions/blob_mob.dm +++ b/code/modules/mob/living/basic/blob_minions/blob_mob.dm @@ -25,7 +25,7 @@ AddComponent(/datum/component/blob_minion, on_strain_changed = CALLBACK(src, PROC_REF(on_strain_updated))) /// Called when our blob overmind changes their variant, update some of our mob properties -/mob/living/basic/blob_minion/proc/on_strain_updated(mob/camera/blob/overmind, datum/blobstrain/new_strain) +/mob/living/basic/blob_minion/proc/on_strain_updated(mob/eye/blob/overmind, datum/blobstrain/new_strain) return /// Associates this mob with a specific blob factory node diff --git a/code/modules/mob/living/basic/blob_minions/blob_spore.dm b/code/modules/mob/living/basic/blob_minions/blob_spore.dm index 9c7b8001e06..6a61e8a56a2 100644 --- a/code/modules/mob/living/basic/blob_minions/blob_spore.dm +++ b/code/modules/mob/living/basic/blob_minions/blob_spore.dm @@ -88,7 +88,7 @@ z_turf = get_turf(factory) /// If the blob changes to distributed neurons then you can control the spores -/mob/living/basic/blob_minion/spore/minion/on_strain_updated(mob/camera/blob/overmind, datum/blobstrain/new_strain) +/mob/living/basic/blob_minion/spore/minion/on_strain_updated(mob/eye/blob/overmind, datum/blobstrain/new_strain) if (isnull(overmind)) REMOVE_TRAIT(src, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT) else diff --git a/code/modules/mob/living/basic/blob_minions/blobbernaut.dm b/code/modules/mob/living/basic/blob_minions/blobbernaut.dm index 13146c3b5c5..a548a30be6a 100644 --- a/code/modules/mob/living/basic/blob_minions/blobbernaut.dm +++ b/code/modules/mob/living/basic/blob_minions/blobbernaut.dm @@ -92,7 +92,7 @@ to_chat(src, span_infoplain("The [blobstrain.name] reagent [blobstrain.shortdesc ? "[blobstrain.shortdesc]" : "[blobstrain.description]"]")) /// Set our attack damage based on blob's properties -/mob/living/basic/blob_minion/blobbernaut/minion/on_strain_updated(mob/camera/blob/overmind, datum/blobstrain/new_strain) +/mob/living/basic/blob_minion/blobbernaut/minion/on_strain_updated(mob/eye/blob/overmind, datum/blobstrain/new_strain) if (isnull(overmind)) melee_damage_lower = initial(melee_damage_lower) melee_damage_upper = initial(melee_damage_upper) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index e41a07d52cd..87c0cdd4029 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -62,7 +62,7 @@ var/nuking = FALSE var/obj/machinery/doomsday_device/doomsday_device - var/mob/camera/ai_eye/eyeobj + var/mob/eye/ai_eye/eyeobj var/sprint = 10 var/last_moved = 0 var/acceleration = TRUE @@ -1139,7 +1139,7 @@ target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct . = ..() -/mob/living/silicon/ai/proc/camera_visibility(mob/camera/ai_eye/moved_eye) +/mob/living/silicon/ai/proc/camera_visibility(mob/eye/ai_eye/moved_eye) GLOB.cameranet.visibility(moved_eye, client, all_eyes, TRUE) /mob/living/silicon/ai/forceMove(atom/destination) diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index 2c5e809e5d9..b8bd1f443ea 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -65,7 +65,7 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new) else other_eyes = list() - for(var/mob/camera/ai_eye/eye as anything in moved_eyes) + for(var/mob/eye/ai_eye/eye as anything in moved_eyes) var/list/visibleChunks = list() //Get the eye's turf in case its located in an object like a mecha var/turf/eye_turf = get_turf(eye) diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index c21f08e2d6b..7b2c57abc3c 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -16,7 +16,7 @@ ///list of all turfs, associative with that turf's static image ///turf -> /image var/list/turfs = list() - ///camera mobs that can see turfs in our grid + ///eye mobs that can see turfs in our grid var/list/seenby = list() ///images currently in use on obscured turfs. var/list/active_static_images = list() @@ -28,7 +28,7 @@ var/upper_z /// Add an AI eye to the chunk, then update if changed. -/datum/camerachunk/proc/add(mob/camera/ai_eye/eye) +/datum/camerachunk/proc/add(mob/eye/ai_eye/eye) eye.visibleCameraChunks += src seenby += eye if(changed) @@ -39,7 +39,7 @@ client.images += active_static_images /// Remove an AI eye from the chunk -/datum/camerachunk/proc/remove(mob/camera/ai_eye/eye, remove_static_with_last_chunk = TRUE) +/datum/camerachunk/proc/remove(mob/eye/ai_eye/eye, remove_static_with_last_chunk = TRUE) eye.visibleCameraChunks -= src seenby -= eye @@ -89,7 +89,7 @@ ///turfs that we could see last update but cant see now var/list/newly_obscured_turfs = visibleTurfs - updated_visible_turfs - for(var/mob/camera/ai_eye/client_eye as anything in seenby) + for(var/mob/eye/ai_eye/client_eye as anything in seenby) var/client/client = client_eye.ai?.client || client_eye.client if(!client) continue @@ -119,7 +119,7 @@ changed = FALSE - for(var/mob/camera/ai_eye/client_eye as anything in seenby) + for(var/mob/eye/ai_eye/client_eye as anything in seenby) var/client/client = client_eye.ai?.client || client_eye.client if(!client) continue diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index 4570f93e0e9..c93054d6d26 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -2,11 +2,11 @@ // // An invisible (no icon) mob that the AI controls to look around the station with. // It streams chunks as it moves around, which will show it what the AI can and cannot see. -/mob/camera/ai_eye +/mob/eye/ai_eye name = "Inactive AI Eye" icon_state = "ai_camera" - icon = 'icons/mob/silicon/cameramob.dmi' + icon = 'icons/mob/eyemob.dmi' invisibility = INVISIBILITY_MAXIMUM hud_possible = list(ANTAG_HUD, AI_DETECT_HUD = HUD_LIST_LIST) var/list/visibleCameraChunks = list() @@ -18,26 +18,26 @@ var/ai_detector_color = COLOR_RED interaction_range = INFINITY -/mob/camera/ai_eye/Initialize(mapload) +/mob/eye/ai_eye/Initialize(mapload) . = ..() GLOB.aiEyes += src update_ai_detect_hud() setLoc(loc, TRUE) -/mob/camera/ai_eye/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) +/mob/eye/ai_eye/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) . = ..() if(same_z_layer) return update_ai_detect_hud() -/mob/camera/ai_eye/examine(mob/user) //Displays a silicon's laws to ghosts +/mob/eye/ai_eye/examine(mob/user) //Displays a silicon's laws to ghosts . = ..() if(istype(ai) && ai.laws && isobserver(user)) . += "[ai] has the following laws:" for(var/law in ai.laws.get_law_list(include_zeroth = TRUE)) . += law -/mob/camera/ai_eye/proc/update_ai_detect_hud() +/mob/eye/ai_eye/proc/update_ai_detect_hud() var/datum/atom_hud/ai_detector/hud = GLOB.huds[DATA_HUD_AI_DETECT] var/list/old_images = hud_list[AI_DETECT_HUD] if(!ai_detector_visible) @@ -75,7 +75,7 @@ active_hud_list[AI_DETECT_HUD] = new_images hud.add_atom_to_hud(src) -/mob/camera/ai_eye/proc/get_visible_turfs() +/mob/eye/ai_eye/proc/get_visible_turfs() if(!isturf(loc)) return list() var/client/C = GetViewerClient() @@ -85,7 +85,7 @@ return block(lowerleft, upperright) /// Used in cases when the eye is located in a movable object (i.e. mecha) -/mob/camera/ai_eye/proc/update_visibility() +/mob/eye/ai_eye/proc/update_visibility() SIGNAL_HANDLER if(use_static) ai.camera_visibility(src) @@ -93,7 +93,7 @@ // Use this when setting the aiEye's location. // It will also stream the chunk that the new loc is in. -/mob/camera/ai_eye/proc/setLoc(destination, force_update = FALSE) +/mob/eye/ai_eye/proc/setLoc(destination, force_update = FALSE) if(!ai) return if(!isturf(ai.loc)) @@ -122,20 +122,20 @@ if(ai.master_multicam) ai.master_multicam.refresh_view() -/mob/camera/ai_eye/zMove(dir, turf/target, z_move_flags = NONE, recursions_left = 1, list/falling_movs) +/mob/eye/ai_eye/zMove(dir, turf/target, z_move_flags = NONE, recursions_left = 1, list/falling_movs) . = ..() if(.) setLoc(loc, force_update = TRUE) -/mob/camera/ai_eye/Move() +/mob/eye/ai_eye/Move() return -/mob/camera/ai_eye/proc/GetViewerClient() +/mob/eye/ai_eye/proc/GetViewerClient() if(ai) return ai.client return null -/mob/camera/ai_eye/Destroy() +/mob/eye/ai_eye/Destroy() if(ai) ai.all_eyes -= src ai = null @@ -215,7 +215,7 @@ /mob/living/silicon/ai/proc/create_eye() if(eyeobj) return - eyeobj = new /mob/camera/ai_eye() + eyeobj = new /mob/eye/ai_eye() all_eyes += eyeobj eyeobj.ai = src eyeobj.setLoc(loc) @@ -241,7 +241,7 @@ acceleration = !acceleration to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].") -/mob/camera/ai_eye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) +/mob/eye/ai_eye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) . = ..() if(relay_speech && speaker && ai && !radio_freq && speaker != ai && GLOB.cameranet.checkCameraVis(speaker)) ai.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans, message_mods) diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm index 4ef437a5303..12ee1ce3b53 100644 --- a/code/modules/mob/living/silicon/ai/multicam.dm +++ b/code/modules/mob/living/silicon/ai/multicam.dm @@ -4,11 +4,11 @@ var/mob/living/silicon/ai/ai var/mutable_appearance/highlighted_background var/highlighted = FALSE - var/mob/camera/ai_eye/pic_in_pic/aiEye + var/mob/eye/ai_eye/pic_in_pic/aiEye /atom/movable/screen/movable/pic_in_pic/ai/Initialize(mapload, datum/hud/hud_owner) . = ..() - aiEye = new /mob/camera/ai_eye/pic_in_pic() + aiEye = new /mob/eye/ai_eye/pic_in_pic() aiEye.screen = src /atom/movable/screen/movable/pic_in_pic/ai/Destroy() @@ -126,7 +126,7 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) //Dummy camera eyes -/mob/camera/ai_eye/pic_in_pic +/mob/eye/ai_eye/pic_in_pic name = "Secondary AI Eye" invisibility = INVISIBILITY_OBSERVER mouse_opacity = MOUSE_OPACITY_ICON @@ -137,11 +137,11 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) var/telegraph_range = 7 ai_detector_color = COLOR_ORANGE -/mob/camera/ai_eye/pic_in_pic/GetViewerClient() +/mob/eye/ai_eye/pic_in_pic/GetViewerClient() if(screen?.ai) return screen.ai.client -/mob/camera/ai_eye/pic_in_pic/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/pic_in_pic/setLoc(turf/destination, force_update = FALSE) if (destination) abstract_move(destination) else @@ -153,10 +153,10 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) update_camera_telegraphing() update_ai_detect_hud() -/mob/camera/ai_eye/pic_in_pic/get_visible_turfs() +/mob/eye/ai_eye/pic_in_pic/get_visible_turfs() return screen ? screen.get_visible_turfs() : list() -/mob/camera/ai_eye/pic_in_pic/proc/update_camera_telegraphing() +/mob/eye/ai_eye/pic_in_pic/proc/update_camera_telegraphing() if(!telegraph_cameras) return var/list/obj/machinery/camera/add = list() @@ -185,7 +185,7 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) C.in_use_lights++ C.update_appearance() -/mob/camera/ai_eye/pic_in_pic/proc/disable_camera_telegraphing() +/mob/eye/ai_eye/pic_in_pic/proc/disable_camera_telegraphing() telegraph_cameras = FALSE for (var/obj/machinery/camera/C as anything in cameras_telegraphed) if(QDELETED(C)) @@ -194,7 +194,7 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) C.update_appearance() cameras_telegraphed.Cut() -/mob/camera/ai_eye/pic_in_pic/Destroy() +/mob/eye/ai_eye/pic_in_pic/Destroy() disable_camera_telegraphing() return ..() diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index dd3303f3523..5e9018384be 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -379,7 +379,7 @@ if(!isliving(user)) return - if(!istype(AM) || isdead(AM) || iscameramob(AM) || istype(AM, /obj/effect/dummy/phased_mob)) + if(!istype(AM) || isdead(AM) || iseyemob(AM) || istype(AM, /obj/effect/dummy/phased_mob)) return load(AM) @@ -809,7 +809,7 @@ if(user.incapacitated || (istype(L) && L.body_position == LYING_DOWN)) return - if(!istype(AM) || iscameramob(AM) || istype(AM, /obj/effect/dummy/phased_mob)) //allows ghosts! + if(!istype(AM) || iseyemob(AM) || istype(AM, /obj/effect/dummy/phased_mob)) //allows ghosts! return load(AM) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a90a3fedc24..df33c71305e 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -261,7 +261,7 @@ return new_slime /mob/proc/become_overmind(starting_points = OVERMIND_STARTING_POINTS) - var/mob/camera/blob/B = new /mob/camera/blob(get_turf(src), starting_points) + var/mob/eye/blob/B = new /mob/eye/blob(get_turf(src), starting_points) B.key = key . = B qdel(src) diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 8816ec87dfb..acde1703668 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -248,7 +248,7 @@ for(var/atom/movable/X in orange(range, T)) if(X.anchored) continue - if(iseffect(X) || iscameramob(X) || isdead(X)) + if(iseffect(X) || iseyemob(X) || isdead(X)) continue var/distance = get_dist(X, T) var/moving_power = max(range - distance, 1) @@ -413,7 +413,7 @@ live.apply_damage(damage)//Since this can be called multiple times if(movey.anchored) continue - if(iseffect(movey) || iscameramob(movey) || isdead(movey)) + if(iseffect(movey) || iseyemob(movey) || isdead(movey)) continue if(implosion) var/distance = get_dist(movey, this_turf) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 68ffe5e9248..820219a6e80 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -1,22 +1,22 @@ //Xenobio control console -/mob/camera/ai_eye/remote/xenobio +/mob/eye/ai_eye/remote/xenobio visible_icon = TRUE - icon = 'icons/mob/silicon/cameramob.dmi' + icon = 'icons/mob/eyemob.dmi' icon_state = "generic_camera" var/allowed_area = null -/mob/camera/ai_eye/remote/xenobio/Initialize(mapload) +/mob/eye/ai_eye/remote/xenobio/Initialize(mapload) var/area/our_area = get_area(loc) allowed_area = our_area.name . = ..() -/mob/camera/ai_eye/remote/xenobio/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/remote/xenobio/setLoc(turf/destination, force_update = FALSE) var/area/new_area = get_area(destination) if(new_area && new_area.name == allowed_area || new_area && (new_area.area_flags & XENOBIOLOGY_COMPATIBLE)) return ..() -/mob/camera/ai_eye/remote/xenobio/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) +/mob/eye/ai_eye/remote/xenobio/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider) . = ..() if(!.) return @@ -84,10 +84,10 @@ stored_slimes -= gone /obj/machinery/computer/camera_advanced/xenobio/CreateEye() - eyeobj = new /mob/camera/ai_eye/remote/xenobio(get_turf(src)) + eyeobj = new /mob/eye/ai_eye/remote/xenobio(get_turf(src)) eyeobj.origin = src eyeobj.visible_icon = TRUE - eyeobj.icon = 'icons/mob/silicon/cameramob.dmi' + eyeobj.icon = 'icons/mob/eyemob.dmi' eyeobj.icon_state = "generic_camera" /obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/user) @@ -151,7 +151,7 @@ Boilerplate check for a valid area to perform a camera action in. Checks if the AI eye is on a valid turf and then checks if the target turf is xenobiology compatible Due to keyboard shortcuts, the second one is not necessarily the remote eye's location. */ -/obj/machinery/computer/camera_advanced/xenobio/proc/validate_area(mob/living/user, mob/camera/ai_eye/remote/xenobio/remote_eye, turf/open/target_turf) +/obj/machinery/computer/camera_advanced/xenobio/proc/validate_area(mob/living/user, mob/eye/ai_eye/remote/xenobio/remote_eye, turf/open/target_turf) if(!GLOB.cameranet.checkTurfVis(remote_eye.loc)) to_chat(user, span_warning("Target is not near a camera. Cannot proceed.")) return FALSE @@ -226,7 +226,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!target || !isliving(owner)) return var/mob/living/owner_mob = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target if(!xeno_console.validate_area(owner, remote_eye, remote_eye.loc)) @@ -243,7 +243,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!target || !isliving(owner)) return var/mob/living/owner_mob = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target if(!xeno_console.validate_area(owner, remote_eye, remote_eye.loc)) @@ -262,7 +262,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!target || !isliving(owner)) return var/mob/living/living_owner = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = living_owner.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = living_owner.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target if(!xeno_console.validate_area(owner, remote_eye, remote_eye.loc)) @@ -280,7 +280,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!target || !isliving(owner)) return var/mob/living/owner_mob = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target var/obj/machinery/monkey_recycler/recycler = xeno_console.connected_recycler @@ -303,7 +303,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!target || !isliving(owner)) return var/mob/living/owner_mob = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target if(!xeno_console.validate_area(owner, remote_eye, remote_eye.loc)) @@ -322,7 +322,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo return var/mob/living/owner_mob = owner - var/mob/camera/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = owner_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = target if(!xeno_console.validate_area(owner, remote_eye, remote_eye.loc)) @@ -373,7 +373,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!isslime(target_slime)) return - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_slime.loc)) @@ -389,7 +389,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo /obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/basic/slime/target_slime) SIGNAL_HANDLER - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_slime.loc)) @@ -402,7 +402,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo SIGNAL_HANDLER var/mob/living/user_mob = user - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user_mob.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user_mob.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_turf)) @@ -428,7 +428,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo return var/cleanup = FALSE - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_turf)) @@ -447,7 +447,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!ismonkey(target_mob)) return - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.connected_recycler) @@ -464,7 +464,7 @@ Due to keyboard shortcuts, the second one is not necessarily the remote eye's lo if(!isslime(target_slime)) return - var/mob/camera/ai_eye/remote/xenobio/remote_eye = user.remote_control + var/mob/eye/ai_eye/remote/xenobio/remote_eye = user.remote_control var/obj/machinery/computer/camera_advanced/xenobio/xeno_console = remote_eye.origin if(!xeno_console.validate_area(user, remote_eye, target_slime.loc)) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 3eec11d0b40..fbe528b8703 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -107,8 +107,8 @@ shuttle_port = null return - eyeobj = new /mob/camera/ai_eye/remote/shuttle_docker(null, src) - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + eyeobj = new /mob/eye/ai_eye/remote/shuttle_docker(null, src) + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj the_eye.setDir(shuttle_port.dir) var/turf/origin = locate(shuttle_port.x + x_offset, shuttle_port.y + y_offset, shuttle_port.z) for(var/area/shuttle_area as anything in shuttle_port.shuttle_areas) @@ -128,7 +128,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/give_eye_control(mob/user) ..() if(!QDELETED(user) && user.client) - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj var/list/to_add = list() to_add += the_eye.placement_images to_add += the_eye.placed_images @@ -141,7 +141,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/remove_eye_control(mob/living/user) ..() if(!QDELETED(user) && user.client) - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj var/list/to_remove = list() to_remove += the_eye.placement_images to_remove += the_eye.placed_images @@ -155,7 +155,7 @@ if(designating_target_loc || !current_user) return - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj var/landing_clear = checkLandingSpot() if(designate_time && (landing_clear != SHUTTLE_DOCKER_BLOCKED)) to_chat(current_user, span_warning("Targeting transit location, please wait [DisplayTimeText(designate_time)]...")) @@ -223,7 +223,7 @@ return TRUE /obj/machinery/computer/camera_advanced/shuttle_docker/proc/rotateLandingSpot() - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj var/list/image_cache = the_eye.placement_images the_eye.setDir(turn(the_eye.dir, -90)) for(var/i in 1 to image_cache.len) @@ -239,7 +239,7 @@ checkLandingSpot() /obj/machinery/computer/camera_advanced/shuttle_docker/proc/checkLandingSpot() - var/mob/camera/ai_eye/remote/shuttle_docker/the_eye = eyeobj + var/mob/eye/ai_eye/remote/shuttle_docker/the_eye = eyeobj var/turf/eyeturf = get_turf(the_eye) if(!eyeturf) return SHUTTLE_DOCKER_BLOCKED @@ -316,22 +316,22 @@ add_jumpable_port(dock.shuttle_id) return TRUE -/mob/camera/ai_eye/remote/shuttle_docker +/mob/eye/ai_eye/remote/shuttle_docker visible_icon = FALSE use_static = FALSE var/list/image/placement_images = list() var/list/image/placed_images = list() -/mob/camera/ai_eye/remote/shuttle_docker/Initialize(mapload, obj/machinery/computer/camera_advanced/origin) +/mob/eye/ai_eye/remote/shuttle_docker/Initialize(mapload, obj/machinery/computer/camera_advanced/origin) src.origin = origin return ..() -/mob/camera/ai_eye/remote/shuttle_docker/setLoc(turf/destination, force_update = FALSE) +/mob/eye/ai_eye/remote/shuttle_docker/setLoc(turf/destination, force_update = FALSE) . = ..() var/obj/machinery/computer/camera_advanced/shuttle_docker/console = origin console.checkLandingSpot() -/mob/camera/ai_eye/remote/shuttle_docker/update_remote_sight(mob/living/user) +/mob/eye/ai_eye/remote/shuttle_docker/update_remote_sight(mob/living/user) user.set_sight(BLIND|SEE_TURFS) // Pale blue, should look nice I think user.lighting_color_cutoffs = list(30, 40, 50) @@ -346,7 +346,7 @@ /datum/action/innate/shuttledocker_rotate/Activate() if(QDELETED(owner) || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/shuttle_docker/origin = remote_eye.origin origin.rotateLandingSpot() @@ -358,7 +358,7 @@ /datum/action/innate/shuttledocker_place/Activate() if(QDELETED(owner) || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/shuttle_docker/origin = remote_eye.origin origin.placeLandingSpot(owner) @@ -369,7 +369,7 @@ /datum/action/innate/camera_jump/shuttle_docker/Activate() if(QDELETED(owner) || !isliving(owner)) return - var/mob/camera/ai_eye/remote/remote_eye = owner.remote_control + var/mob/eye/ai_eye/remote/remote_eye = owner.remote_control var/obj/machinery/computer/camera_advanced/shuttle_docker/console = remote_eye.origin playsound(console, 'sound/machines/terminal/terminal_prompt_deny.ogg', 25, FALSE) diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 98b998baf42..4eed7f3e9a7 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -277,7 +277,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( for (var/list/zlevel_turfs as anything in shuttle_area.get_zlevel_turf_lists()) for(var/turf/shuttle_turf as anything in zlevel_turfs) for(var/atom/movable/exporting_atom in shuttle_turf) - if(iscameramob(exporting_atom)) + if(iseyemob(exporting_atom)) continue if(exporting_atom.anchored) continue diff --git a/code/modules/transport/transport_module.dm b/code/modules/transport/transport_module.dm index 3e4a5be979f..b0497ed3b2e 100644 --- a/code/modules/transport/transport_module.dm +++ b/code/modules/transport/transport_module.dm @@ -136,7 +136,7 @@ /obj/structure/transport/linear/proc/add_item_on_transport(datum/source, atom/movable/new_transport_contents) SIGNAL_HANDLER - var/static/list/blacklisted_types = typecacheof(list(/obj/structure/fluff/tram_rail, /obj/effect/decal/cleanable, /obj/structure/transport/linear, /mob/camera)) + var/static/list/blacklisted_types = typecacheof(list(/obj/structure/fluff/tram_rail, /obj/effect/decal/cleanable, /obj/structure/transport/linear, /mob/eye)) if(is_type_in_typecache(new_transport_contents, blacklisted_types) || new_transport_contents.invisibility == INVISIBILITY_ABSTRACT || HAS_TRAIT(new_transport_contents, TRAIT_UNDERFLOOR)) //prevents the tram from stealing things like landmarks return FALSE if(new_transport_contents in transport_contents) diff --git a/code/modules/unit_tests/mob_faction.dm b/code/modules/unit_tests/mob_faction.dm index 554a1adda9d..f5d64918038 100644 --- a/code/modules/unit_tests/mob_faction.dm +++ b/code/modules/unit_tests/mob_faction.dm @@ -8,10 +8,10 @@ /mob/dview, /mob/oranges_ear ) - ignored += typesof(/mob/camera/imaginary_friend) + ignored += typesof(/mob/eye/imaginary_friend) ignored += typesof(/mob/living/silicon/robot/model) - ignored += typesof(/mob/camera/ai_eye/remote/base_construction) - ignored += typesof(/mob/camera/ai_eye/remote/shuttle_docker) + ignored += typesof(/mob/eye/ai_eye/remote/base_construction) + ignored += typesof(/mob/eye/ai_eye/remote/shuttle_docker) for (var/mob_type in typesof(/mob) - ignored) var/mob/mob_instance = allocate(mob_type) if(!islist(mob_instance.faction)) diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index a7af7b168e2..ce59bd3d61d 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -285,13 +285,13 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests()) //We have a baseturf limit of 10, adding more than 10 baseturf helpers will kill CI, so here's a future edge case to fix. returnable_list += typesof(/obj/effect/baseturf_helper) //No tauma to pass in - returnable_list += typesof(/mob/camera/imaginary_friend) + returnable_list += typesof(/mob/eye/imaginary_friend) //No heart to give returnable_list += typesof(/obj/structure/ethereal_crystal) //No linked console - returnable_list += typesof(/mob/camera/ai_eye/remote/base_construction) + returnable_list += typesof(/mob/eye/ai_eye/remote/base_construction) //See above - returnable_list += typesof(/mob/camera/ai_eye/remote/shuttle_docker) + returnable_list += typesof(/mob/eye/ai_eye/remote/shuttle_docker) //Hangs a ref post invoke async, which we don't support. Could put a qdeleted check but it feels hacky returnable_list += typesof(/obj/effect/anomaly/grav/high) //See above diff --git a/code/modules/vehicles/mecha/mecha_ai_interaction.dm b/code/modules/vehicles/mecha/mecha_ai_interaction.dm index 4259dff5c34..6dc1e2307dc 100644 --- a/code/modules/vehicles/mecha/mecha_ai_interaction.dm +++ b/code/modules/vehicles/mecha/mecha_ai_interaction.dm @@ -99,7 +99,7 @@ mecha_flags |= SILICON_PILOT moved_inside(AI) AI.eyeobj?.forceMove(src) - AI.eyeobj?.RegisterSignal(src, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/camera/ai_eye, update_visibility)) + AI.eyeobj?.RegisterSignal(src, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/eye/ai_eye, update_visibility)) AI.controlled_equipment = src AI.remote_control = src add_occupant(AI) diff --git a/icons/mob/silicon/cameramob.dmi b/icons/mob/eyemob.dmi similarity index 100% rename from icons/mob/silicon/cameramob.dmi rename to icons/mob/eyemob.dmi diff --git a/tgstation.dme b/tgstation.dme index cf218ba922f..6cb0db19d3c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4776,7 +4776,6 @@ #include "code\modules\mob\mob_update_icons.dm" #include "code\modules\mob\status_procs.dm" #include "code\modules\mob\transform_procs.dm" -#include "code\modules\mob\camera\camera.dm" #include "code\modules\mob\dead\dead.dm" #include "code\modules\mob\dead\new_player\latejoin_menu.dm" #include "code\modules\mob\dead\new_player\login.dm" @@ -4791,6 +4790,7 @@ #include "code\modules\mob\dead\observer\observer_movement.dm" #include "code\modules\mob\dead\observer\observer_say.dm" #include "code\modules\mob\dead\observer\orbit.dm" +#include "code\modules\mob\eye\eye.dm" #include "code\modules\mob\living\blood.dm" #include "code\modules\mob\living\damage_procs.dm" #include "code\modules\mob\living\death.dm"