Kills off /obj/item/device (#6561)

This commit is contained in:
kevinz000
2018-04-29 22:06:58 -07:00
committed by Poojawa
parent ab3035a4ea
commit 3369c804b2
538 changed files with 6728 additions and 6707 deletions
@@ -1,7 +1,7 @@
// This is the base type that does all the hardware stuff.
// Other types expand it - tablets use a direct subtypes, and
// consoles and laptops use "procssor" item that is held inside machinery piece
/obj/item/device/modular_computer
/obj/item/modular_computer
name = "modular microcomputer"
desc = "A small portable microcomputer."
@@ -47,7 +47,7 @@
var/comp_light_color //The color of that light
/obj/item/device/modular_computer/Initialize()
/obj/item/modular_computer/Initialize()
. = ..()
START_PROCESSING(SSobj, src)
if(!physical)
@@ -56,7 +56,7 @@
idle_threads = list()
update_icon()
/obj/item/device/modular_computer/Destroy()
/obj/item/modular_computer/Destroy()
kill_program(forced = TRUE)
STOP_PROCESSING(SSobj, src)
for(var/H in all_components)
@@ -70,26 +70,26 @@
return ..()
/obj/item/device/modular_computer/proc/add_verb(var/path)
/obj/item/modular_computer/proc/add_verb(var/path)
switch(path)
if(MC_CARD)
verbs += /obj/item/device/modular_computer/proc/eject_id
verbs += /obj/item/modular_computer/proc/eject_id
if(MC_SDD)
verbs += /obj/item/device/modular_computer/proc/eject_disk
verbs += /obj/item/modular_computer/proc/eject_disk
if(MC_AI)
verbs += /obj/item/device/modular_computer/proc/eject_card
verbs += /obj/item/modular_computer/proc/eject_card
/obj/item/device/modular_computer/proc/remove_verb(path)
/obj/item/modular_computer/proc/remove_verb(path)
switch(path)
if(MC_CARD)
verbs -= /obj/item/device/modular_computer/proc/eject_id
verbs -= /obj/item/modular_computer/proc/eject_id
if(MC_SDD)
verbs -= /obj/item/device/modular_computer/proc/eject_disk
verbs -= /obj/item/modular_computer/proc/eject_disk
if(MC_AI)
verbs -= /obj/item/device/modular_computer/proc/eject_card
verbs -= /obj/item/modular_computer/proc/eject_card
// Eject ID card from computer, if it has ID slot with card inside.
/obj/item/device/modular_computer/proc/eject_id()
/obj/item/modular_computer/proc/eject_id()
set name = "Eject ID"
set category = "Object"
set src in view(1)
@@ -101,7 +101,7 @@
card_slot.try_eject(null, usr)
// Eject ID card from computer, if it has ID slot with card inside.
/obj/item/device/modular_computer/proc/eject_card()
/obj/item/modular_computer/proc/eject_card()
set name = "Eject Intellicard"
set category = "Object"
@@ -113,7 +113,7 @@
// Eject ID card from computer, if it has ID slot with card inside.
/obj/item/device/modular_computer/proc/eject_disk()
/obj/item/modular_computer/proc/eject_disk()
set name = "Eject Data Disk"
set category = "Object"
@@ -125,7 +125,7 @@
if(uninstall_component(portable_drive, usr))
portable_drive.verb_pickup()
/obj/item/device/modular_computer/AltClick(mob/user)
/obj/item/modular_computer/AltClick(mob/user)
..()
if(issilicon(user))
return
@@ -145,28 +145,28 @@
// Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs.
/obj/item/device/modular_computer/GetAccess()
/obj/item/modular_computer/GetAccess()
var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD]
if(card_slot)
return card_slot.GetAccess()
return ..()
/obj/item/device/modular_computer/GetID()
/obj/item/modular_computer/GetID()
var/obj/item/computer_hardware/card_slot/card_slot = all_components[MC_CARD]
if(card_slot)
return card_slot.GetID()
return ..()
/obj/item/device/modular_computer/MouseDrop(obj/over_object, src_location, over_location)
/obj/item/modular_computer/MouseDrop(obj/over_object, src_location, over_location)
var/mob/M = usr
if((!istype(over_object, /obj/screen)) && usr.canUseTopic(src))
return attack_self(M)
return ..()
/obj/item/device/modular_computer/attack_ai(mob/user)
/obj/item/modular_computer/attack_ai(mob/user)
return attack_self(user)
/obj/item/device/modular_computer/attack_ghost(mob/dead/observer/user)
/obj/item/modular_computer/attack_ghost(mob/dead/observer/user)
. = ..()
if(.)
return
@@ -177,7 +177,7 @@
if(response == "Yes")
turn_on(user)
/obj/item/device/modular_computer/emag_act(mob/user)
/obj/item/modular_computer/emag_act(mob/user)
if(obj_flags & EMAGGED)
to_chat(user, "<span class='warning'>\The [src] was already emagged.</span>")
return 0
@@ -186,14 +186,14 @@
to_chat(user, "<span class='notice'>You emag \the [src]. It's screen briefly shows a \"OVERRIDE ACCEPTED: New software downloads available.\" message.</span>")
return 1
/obj/item/device/modular_computer/examine(mob/user)
/obj/item/modular_computer/examine(mob/user)
..()
if(obj_integrity <= integrity_failure)
to_chat(user, "<span class='danger'>It is heavily damaged!</span>")
else if(obj_integrity < max_integrity)
to_chat(user, "<span class='warning'>It is damaged.</span>")
/obj/item/device/modular_computer/update_icon()
/obj/item/modular_computer/update_icon()
cut_overlays()
if(!enabled)
icon_state = icon_state_unpowered
@@ -210,13 +210,13 @@
// On-click handling. Turns on the computer if it's off and opens the GUI.
/obj/item/device/modular_computer/interact(mob/user)
/obj/item/modular_computer/interact(mob/user)
if(enabled)
ui_interact(user)
else
turn_on(user)
/obj/item/device/modular_computer/proc/turn_on(mob/user)
/obj/item/modular_computer/proc/turn_on(mob/user)
var/issynth = issilicon(user) // Robots and AIs get different activation messages.
if(obj_integrity <= integrity_failure)
if(issynth)
@@ -245,7 +245,7 @@
to_chat(user, "<span class='warning'>You press the power button but \the [src] does not respond.</span>")
// Process currently calls handle_power(), may be expanded in future if more things are added.
/obj/item/device/modular_computer/process()
/obj/item/modular_computer/process()
if(!enabled) // The computer is turned off
last_power_usage = 0
return 0
@@ -281,7 +281,7 @@
//check_update_ui_need()
// Function used by NanoUI's to obtain data for header. All relevant entries begin with "PC_"
/obj/item/device/modular_computer/proc/get_header_data()
/obj/item/modular_computer/proc/get_header_data()
var/list/data = list()
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
@@ -339,7 +339,7 @@
return data
// Relays kill program request to currently active program. Use this to quit current program.
/obj/item/device/modular_computer/proc/kill_program(forced = FALSE)
/obj/item/modular_computer/proc/kill_program(forced = FALSE)
if(active_program)
active_program.kill_program(forced)
active_program = null
@@ -349,20 +349,20 @@
update_icon()
// Returns 0 for No Signal, 1 for Low Signal and 2 for Good Signal. 3 is for wired connection (always-on)
/obj/item/device/modular_computer/proc/get_ntnet_status(specific_action = 0)
/obj/item/modular_computer/proc/get_ntnet_status(specific_action = 0)
var/obj/item/computer_hardware/network_card/network_card = all_components[MC_NET]
if(network_card)
return network_card.get_signal(specific_action)
else
return 0
/obj/item/device/modular_computer/proc/add_log(text)
/obj/item/modular_computer/proc/add_log(text)
if(!get_ntnet_status())
return FALSE
var/obj/item/computer_hardware/network_card/network_card = all_components[MC_NET]
return SSnetworks.station_network.add_log(text, network_card)
/obj/item/device/modular_computer/proc/shutdown_computer(loud = 1)
/obj/item/modular_computer/proc/shutdown_computer(loud = 1)
kill_program(forced = TRUE)
for(var/datum/computer_file/program/P in idle_threads)
P.kill_program(forced = TRUE)
@@ -373,7 +373,7 @@
update_icon()
/obj/item/device/modular_computer/attackby(obj/item/W as obj, mob/user as mob)
/obj/item/modular_computer/attackby(obj/item/W as obj, mob/user as mob)
// Insert items into the components
for(var/h in all_components)
var/obj/item/computer_hardware/H = all_components[h]
@@ -437,11 +437,11 @@
..()
// Used by processor to relay qdel() to machinery type.
/obj/item/device/modular_computer/proc/relay_qdel()
/obj/item/modular_computer/proc/relay_qdel()
return
// Perform adjacency checks on our physical counterpart, if any.
/obj/item/device/modular_computer/Adjacent(atom/neighbor)
/obj/item/modular_computer/Adjacent(atom/neighbor)
if(physical && physical != src)
return physical.Adjacent(neighbor)
return ..()