/obj/item/camera/siliconcam name = "silicon photo camera" var/in_camera_mode = FALSE var/list/datum/picture/stored = list() /obj/item/camera/siliconcam/ai_camera name = "AI photo camera" flash_enabled = FALSE /obj/item/camera/siliconcam/proc/toggle_camera_mode(mob/user) if(in_camera_mode) camera_mode_off(user) else camera_mode_on(user) /obj/item/camera/siliconcam/proc/camera_mode_off(mob/user) in_camera_mode = FALSE to_chat(user, "Camera Mode deactivated") /obj/item/camera/siliconcam/proc/camera_mode_on(mob/user) in_camera_mode = TRUE to_chat(user, "Camera Mode activated") /obj/item/camera/siliconcam/proc/selectpicture(mob/user) var/list/nametemp = list() var/find if(!stored.len) to_chat(usr, "No images saved") return var/list/temp = list() for(var/i in stored) var/datum/picture/p = i nametemp += p.picture_name temp[p.picture_name] = p find = input(user, "Select image") in nametemp|null if(!find) return return temp[find] /obj/item/camera/siliconcam/proc/viewpictures(mob/user) var/datum/picture/selection = selectpicture(user) if(istype(selection)) show_picture(user, selection) /obj/item/camera/siliconcam/ai_camera/after_picture(mob/user, datum/picture/picture, proximity_flag) var/number = stored.len picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE to_chat(usr, "Image recorded") /obj/item/camera/siliconcam/robot_camera name = "Cyborg photo camera" var/printcost = 2 /obj/item/camera/siliconcam/robot_camera/after_picture(mob/user, datum/picture/picture, proximity_flag) var/mob/living/silicon/robot/C = loc if(istype(C) && istype(C.connected_ai)) var/number = C.connected_ai.aicamera.stored.len picture.picture_name = "Image [number] (taken by [loc.name])" C.connected_ai.aicamera.stored[picture] = TRUE to_chat(usr, "Image recorded and saved to remote database") else var/number = stored.len picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE to_chat(usr, "Image recorded and saved to local storage. Upload will happen automatically if unit is lawsynced.") /obj/item/camera/siliconcam/robot_camera/selectpicture(mob/user) var/mob/living/silicon/robot/R = loc if(istype(R) && R.connected_ai) R.picturesync() return R.connected_ai.aicamera.selectpicture(user) else return ..() /obj/item/camera/siliconcam/robot_camera/verb/borgprinting() set category ="Robot Commands" set name = "Print Image" set src in usr if(usr.stat == DEAD) return borgprint(usr) /obj/item/camera/siliconcam/robot_camera/proc/borgprint(mob/user) var/mob/living/silicon/robot/C = loc if(!istype(C) || C.toner < 20) to_chat(user, "Insufficent toner to print image.") return var/datum/picture/selection = selectpicture(user) if(!istype(selection)) to_chat(user, "Invalid Image.") return var/obj/item/photo/p = new /obj/item/photo(C.loc, selection) p.pixel_x = rand(-10, 10) p.pixel_y = rand(-10, 10) C.toner -= printcost //All fun allowed. visible_message("[C.name] spits out a photograph from a narrow slot on its chassis.") to_chat(usr, "You print a photograph.")