The Great Conflictening 2.0: Removes /obj/item/device

This commit is contained in:
Fox McCloud
2018-04-25 23:07:35 -04:00
parent 900bf31b38
commit 8c7b543415
505 changed files with 3699 additions and 3677 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."
@@ -45,7 +45,7 @@
/obj/item/device/modular_computer/New()
/obj/item/modular_computer/New()
update_icon()
if(!physical)
physical = src
@@ -54,7 +54,7 @@
all_components = list()
idle_threads = list()
/obj/item/device/modular_computer/Destroy()
/obj/item/modular_computer/Destroy()
kill_program(forced = TRUE)
for(var/H in all_components)
var/obj/item/computer_hardware/CH = all_components[H]
@@ -68,26 +68,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)
@@ -99,7 +99,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"
set src in view(1)
@@ -112,7 +112,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"
set src in view(1)
@@ -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,22 +145,22 @@
// 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/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(enabled)
ui_interact(user)
else if(user.can_admin_interact())
@@ -168,7 +168,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(emagged)
to_chat(user, "<span class='warning'>\The [src] was already emagged.</span>")
return 0
@@ -177,14 +177,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()
overlays.Cut()
if(!enabled)
icon_state = icon_state_unpowered
@@ -201,13 +201,13 @@
// On-click handling. Turns on the computer if it's off and opens the GUI.
/obj/item/device/modular_computer/attack_self(mob/user)
/obj/item/modular_computer/attack_self(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)
@@ -236,7 +236,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
@@ -268,7 +268,7 @@
handle_power() // Handles all computer power interaction
// 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.program_state != PROGRAM_STATE_KILLED)
active_program.kill_program(forced)
active_program = null
@@ -278,20 +278,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 ntnet_global.add_log(text, network_card)
/obj/item/device/modular_computer/proc/shutdown_computer(loud = 1)
/obj/item/modular_computer/proc/shutdown_computer(loud = 1)
if(enabled)
kill_program(forced = TRUE)
for(var/datum/computer_file/program/P in idle_threads)
@@ -303,7 +303,7 @@
update_icon()
/obj/item/device/modular_computer/attackby(obj/item/W, mob/user)
/obj/item/modular_computer/attackby(obj/item/W, mob/user)
// Insert items into the components
for(var/h in all_components)
var/obj/item/computer_hardware/H = all_components[h]
@@ -370,11 +370,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 ..()
@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/proc/can_install_component(obj/item/computer_hardware/H, mob/living/user = null)
/obj/item/modular_computer/proc/can_install_component(obj/item/computer_hardware/H, mob/living/user = null)
if(!H.can_install(src, user))
return FALSE
@@ -15,7 +15,7 @@
// Installs component.
/obj/item/device/modular_computer/proc/install_component(obj/item/computer_hardware/H, mob/living/user = null)
/obj/item/modular_computer/proc/install_component(obj/item/computer_hardware/H, mob/living/user = null)
if(!can_install_component(H, user))
return FALSE
@@ -32,7 +32,7 @@
// Uninstalls component.
/obj/item/device/modular_computer/proc/uninstall_component(obj/item/computer_hardware/H, mob/living/user = null)
/obj/item/modular_computer/proc/uninstall_component(obj/item/computer_hardware/H, mob/living/user = null)
if(H.holder != src) // Not our component at all.
return FALSE
@@ -50,7 +50,7 @@
// Checks all hardware pieces to determine if name matches, if yes, returns the hardware piece, otherwise returns null
/obj/item/device/modular_computer/proc/find_hardware_by_name(name)
/obj/item/modular_computer/proc/find_hardware_by_name(name)
for(var/i in all_components)
var/obj/O = all_components[i]
if(O.name == name)
@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
/obj/item/modular_computer/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
. = ..()
var/component_probability = min(50, max(damage_amount*0.1, 1 - obj_integrity/max_integrity))
switch(damage_flag)
@@ -12,10 +12,10 @@
if(prob(component_probability))
H.take_damage(round(damage_amount*0.5), damage_type, damage_flag, 0)
/obj/item/device/modular_computer/deconstruct(disassembled = TRUE)
/obj/item/modular_computer/deconstruct(disassembled = TRUE)
break_apart()
/obj/item/device/modular_computer/proc/break_apart()
/obj/item/modular_computer/proc/break_apart()
if(can_deconstruct)
physical.visible_message("\The [src] breaks apart!")
var/turf/newloc = get_turf(src)
@@ -1,5 +1,5 @@
// Tries to draw power from charger or, if no operational charger is present, from power cell.
/obj/item/device/modular_computer/proc/use_power(amount = 0)
/obj/item/modular_computer/proc/use_power(amount = 0)
if(check_power_override())
return TRUE
@@ -20,7 +20,7 @@
return FALSE
return FALSE
/obj/item/device/modular_computer/proc/give_power(amount)
/obj/item/modular_computer/proc/give_power(amount)
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module && battery_module.battery)
return battery_module.battery.give(amount)
@@ -28,7 +28,7 @@
// Used in following function to reduce copypaste
/obj/item/device/modular_computer/proc/power_failure()
/obj/item/modular_computer/proc/power_failure()
if(enabled) // Shut down the computer
if(active_program)
active_program.event_powerfailure(0)
@@ -38,7 +38,7 @@
shutdown_computer(0)
// Handles power-related things, such as battery interaction, recharging, shutdown when it's discharged
/obj/item/device/modular_computer/proc/handle_power()
/obj/item/modular_computer/proc/handle_power()
var/obj/item/computer_hardware/recharger/recharger = all_components[MC_CHARGE]
if(recharger)
recharger.process()
@@ -56,7 +56,7 @@
power_failure()
return FALSE
/obj/item/device/modular_computer/proc/get_power_eta()
/obj/item/modular_computer/proc/get_power_eta()
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module && battery_module.battery)
var/hours = 0
@@ -69,5 +69,5 @@
return list()
// Used by child types if they have other power source than battery or recharger
/obj/item/device/modular_computer/proc/check_power_override()
/obj/item/modular_computer/proc/check_power_override()
return FALSE
@@ -1,5 +1,5 @@
// Operates NanoUI
/obj/item/device/modular_computer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
/obj/item/modular_computer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
if(!enabled)
if(ui)
ui.close()
@@ -39,7 +39,7 @@
ui.open()
/obj/item/device/modular_computer/ui_data(mob/user)
/obj/item/modular_computer/ui_data(mob/user)
var/list/data = get_header_data()
data["programs"] = list()
var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD]
@@ -53,7 +53,7 @@
return data
// 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]
@@ -111,7 +111,7 @@
// Handles user's GUI input
/obj/item/device/modular_computer/Topic(href, list/href_list)
/obj/item/modular_computer/Topic(href, list/href_list)
if(..())
return
var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD]
@@ -188,7 +188,7 @@
else
return
/obj/item/device/modular_computer/nano_host()
/obj/item/modular_computer/nano_host()
if(physical)
return physical
return src
@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/laptop
/obj/item/modular_computer/laptop
name = "laptop"
desc = "A portable laptop computer."
@@ -20,32 +20,32 @@
var/w_class_open = WEIGHT_CLASS_BULKY
var/slowdown_open = 1
/obj/item/device/modular_computer/laptop/New()
/obj/item/modular_computer/laptop/New()
..()
if(start_open && !screen_on)
toggle_open()
/obj/item/device/modular_computer/laptop/update_icon()
/obj/item/modular_computer/laptop/update_icon()
if(screen_on)
..()
else
overlays.Cut()
icon_state = icon_state_closed
/obj/item/device/modular_computer/laptop/attack_self(mob/user)
/obj/item/modular_computer/laptop/attack_self(mob/user)
if(!screen_on)
try_toggle_open(user)
else
return ..()
/obj/item/device/modular_computer/laptop/verb/open_computer()
/obj/item/modular_computer/laptop/verb/open_computer()
set name = "Toggle Open"
set category = "Object"
set src in view(1)
try_toggle_open(usr)
/obj/item/device/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location)
/obj/item/modular_computer/laptop/MouseDrop(obj/over_object, src_location, over_location)
if(over_object == usr || over_object == src)
try_toggle_open(usr)
if(ishuman(usr))
@@ -63,14 +63,14 @@
usr.unEquip(src)
usr.put_in_l_hand(src)
/obj/item/device/modular_computer/laptop/attack_hand(mob/user)
/obj/item/modular_computer/laptop/attack_hand(mob/user)
if(screen_on && isturf(loc))
return attack_self(user)
return ..()
/obj/item/device/modular_computer/laptop/proc/try_toggle_open(mob/living/user)
/obj/item/modular_computer/laptop/proc/try_toggle_open(mob/living/user)
if(issilicon(user))
return
if(!isturf(loc) && !ismob(loc)) // No opening it in backpack.
@@ -81,13 +81,13 @@
toggle_open(user)
/obj/item/device/modular_computer/laptop/AltClick(mob/user)
/obj/item/modular_computer/laptop/AltClick(mob/user)
if(screen_on) // Close it.
try_toggle_open(user)
else
return ..()
/obj/item/device/modular_computer/laptop/proc/toggle_open(mob/living/user=null)
/obj/item/modular_computer/laptop/proc/toggle_open(mob/living/user=null)
if(screen_on)
to_chat(user, "<span class='notice'>You close \the [src].</span>")
slowdown = initial(slowdown)
@@ -103,5 +103,5 @@
// Laptop frame, starts empty and closed.
/obj/item/device/modular_computer/laptop/buildable
/obj/item/modular_computer/laptop/buildable
start_open = 0
@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/laptop/preset/New()
/obj/item/modular_computer/laptop/preset/New()
. = ..()
install_component(new /obj/item/computer_hardware/processor_unit/small)
install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer))
@@ -7,15 +7,15 @@
install_programs()
/obj/item/device/modular_computer/laptop/preset/proc/install_programs()
/obj/item/modular_computer/laptop/preset/proc/install_programs()
return
/obj/item/device/modular_computer/laptop/preset/civillian
/obj/item/modular_computer/laptop/preset/civillian
desc = "A low-end laptop often used for personal recreation."
/obj/item/device/modular_computer/laptop/preset/civillian/install_programs()
/obj/item/modular_computer/laptop/preset/civillian/install_programs()
var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD]
hard_drive.store_file(new/datum/computer_file/program/chatclient())
hard_drive.store_file(new/datum/computer_file/program/nttransfer())
@@ -1,5 +1,5 @@
// Held by /obj/machinery/modular_computer to reduce amount of copy-pasted code.
/obj/item/device/modular_computer/processor
/obj/item/modular_computer/processor
name = "processing unit"
desc = "You shouldn't see this. If you do, report it."
icon = null
@@ -10,15 +10,15 @@
var/obj/machinery/modular_computer/machinery_computer = null
/obj/item/device/modular_computer/processor/Destroy()
/obj/item/modular_computer/processor/Destroy()
. = ..()
if(machinery_computer && (machinery_computer.cpu == src))
machinery_computer.cpu = null
machinery_computer = null
/obj/item/device/modular_computer/processor/New(comp)
/obj/item/modular_computer/processor/New(comp)
if(!comp || !istype(comp, /obj/machinery/modular_computer))
CRASH("Inapropriate type passed to obj/item/device/modular_computer/processor/New()! Aborting.")
CRASH("Inapropriate type passed to obj/item/modular_computer/processor/New()! Aborting.")
return
// Obtain reference to machinery computer
all_components = list()
@@ -34,28 +34,28 @@
base_active_power_usage = machinery_computer.base_active_power_usage
base_idle_power_usage = machinery_computer.base_idle_power_usage
/obj/item/device/modular_computer/processor/relay_qdel()
/obj/item/modular_computer/processor/relay_qdel()
qdel(machinery_computer)
/obj/item/device/modular_computer/processor/update_icon()
/obj/item/modular_computer/processor/update_icon()
if(machinery_computer)
return machinery_computer.update_icon()
// This thing is not meant to be used on it's own, get topic data from our machinery owner.
//obj/item/device/modular_computer/processor/canUseTopic(user, state)
//obj/item/modular_computer/processor/canUseTopic(user, state)
// if(!machinery_computer)
// return 0
// return machinery_computer.canUseTopic(user, state)
/obj/item/device/modular_computer/processor/shutdown_computer()
/obj/item/modular_computer/processor/shutdown_computer()
if(!machinery_computer)
return
..()
machinery_computer.update_icon()
return
/obj/item/device/modular_computer/processor/add_verb(path)
/obj/item/modular_computer/processor/add_verb(path)
switch(path)
if(MC_CARD)
machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_id
@@ -64,7 +64,7 @@
if(MC_AI)
machinery_computer.verbs += /obj/machinery/modular_computer/proc/eject_card
/obj/item/device/modular_computer/processor/remove_verb(path)
/obj/item/modular_computer/processor/remove_verb(path)
switch(path)
if(MC_CARD)
machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_id
@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/tablet //Its called tablet for theme of 90ies but actually its a "big smartphone" sized
/obj/item/modular_computer/tablet //Its called tablet for theme of 90ies but actually its a "big smartphone" sized
name = "tablet computer"
icon = 'icons/obj/modular_tablet.dmi'
icon_state = "tablet"
@@ -1,9 +1,9 @@
// This is literally the worst possible cheap tablet
/obj/item/device/modular_computer/tablet/preset/cheap
/obj/item/modular_computer/tablet/preset/cheap
desc = "A low-end tablet often seen among low ranked station personnel."
/obj/item/device/modular_computer/tablet/preset/cheap/New()
/obj/item/modular_computer/tablet/preset/cheap/New()
. = ..()
install_component(new /obj/item/computer_hardware/processor_unit/small)
install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer/micro))
@@ -11,7 +11,7 @@
install_component(new /obj/item/computer_hardware/network_card)
// Alternative version, an average one, for higher ranked positions mostly
/obj/item/device/modular_computer/tablet/preset/advanced/New()
/obj/item/modular_computer/tablet/preset/advanced/New()
. = ..()
install_component(new /obj/item/computer_hardware/processor_unit/small)
install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer))
@@ -20,7 +20,7 @@
install_component(new /obj/item/computer_hardware/card_slot)
install_component(new /obj/item/computer_hardware/printer/mini)
/obj/item/device/modular_computer/tablet/preset/cargo/New()
/obj/item/modular_computer/tablet/preset/cargo/New()
. = ..()
install_component(new /obj/item/computer_hardware/processor_unit/small)
install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer))
@@ -31,7 +31,7 @@ var/list/global_modular_computers = list()
integrity_failure = 150
max_integrity = 300
var/obj/item/device/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things.
var/obj/item/modular_computer/processor/cpu = null // CPU that handles most logic while this type only handles power and other specific things.
/obj/machinery/modular_computer/New()
..()
@@ -5,7 +5,7 @@
var/required_access = null // List of required accesses to *run* the program.
var/transfer_access = null // List of required access to download or file host the program
var/program_state = PROGRAM_STATE_KILLED// PROGRAM_STATE_KILLED or PROGRAM_STATE_BACKGROUND or PROGRAM_STATE_ACTIVE - specifies whether this program is running.
var/obj/item/device/modular_computer/computer // Device that runs this program.
var/obj/item/modular_computer/computer // Device that runs this program.
var/filedesc = "Unknown Program" // User-friendly name of this program.
var/extended_desc = "N/A" // Short description of this program's function.
var/program_icon_state = null // Program-specific screen icon state
@@ -18,7 +18,7 @@
var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable.
var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images!
/datum/computer_file/program/New(obj/item/device/modular_computer/comp = null)
/datum/computer_file/program/New(obj/item/modular_computer/comp = null)
..()
if(comp && istype(comp))
computer = comp
@@ -223,8 +223,8 @@
var/mob/living/carbon/human/L = usr
var/obj/item/card = L.get_active_hand()
var/obj/item/card/id/I = (card && card.GetID()) || L.wear_id || L.wear_pda
if(istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
if(istype(I, /obj/item/pda))
var/obj/item/pda/pda = I
I = pda.id
if(I && istype(I))
if(access_captain in I.access)
@@ -15,7 +15,7 @@
var/download_completion = 0 //GQ of downloaded data.
var/download_netspeed = 0
var/downloaderror = ""
var/obj/item/device/modular_computer/my_computer = null
var/obj/item/modular_computer/my_computer = null
/datum/computer_file/program/ntnetdownload/proc/begin_file_download(filename)
if(downloaded_file)
@@ -52,7 +52,7 @@
..()
if(!restoring) //Put the check here so we don't check for an ai all the time
return
var/obj/item/device/aicard/cardhold = get_ai(2)
var/obj/item/aicard/cardhold = get_ai(2)
var/obj/item/computer_hardware/ai_slot/ai_slot = get_ai(1)
@@ -93,7 +93,7 @@
// A shortcut for getting the AI stored inside the computer. The program already does necessary checks.
AI = get_ai()
var/obj/item/device/aicard/aicard = get_ai(2)
var/obj/item/aicard/aicard = get_ai(2)
if(!aicard)
data["nocard"] = TRUE
@@ -102,7 +102,7 @@
if(!AI)
data["error"] = "No AI located"
else
var/obj/item/device/aicard/cardhold = AI.loc
var/obj/item/aicard/cardhold = AI.loc
if(cardhold.flush)
data["error"] = "Flush in progress"
else
@@ -13,7 +13,7 @@
var/max_idle_programs = 2 // 2 idle, + 1 active = 3 as said in description.
device_type = MC_CPU
/obj/item/computer_hardware/processor_unit/on_remove(obj/item/device/modular_computer/MC, mob/user)
/obj/item/computer_hardware/processor_unit/on_remove(obj/item/modular_computer/MC, mob/user)
MC.shutdown_computer()
/obj/item/computer_hardware/processor_unit/small
@@ -6,7 +6,7 @@
w_class = WEIGHT_CLASS_TINY // w_class limits which devices can contain this component.
// 1: PDAs/Tablets, 2: Laptops, 3-4: Consoles only
var/obj/item/device/modular_computer/holder = null
var/obj/item/modular_computer/holder = null
// Computer that holds this hardware, if any.
max_integrity = 200
@@ -35,7 +35,7 @@
/obj/item/computer_hardware/attackby(obj/item/I, mob/living/user)
// Multitool. Runs diagnostics
if(istype(I, /obj/item/device/multitool))
if(istype(I, /obj/item/multitool))
to_chat(user, "***** DIAGNOSTICS REPORT *****")
diagnostics(user)
to_chat(user, "******************************")
@@ -89,15 +89,15 @@
to_chat(user, "<span class='notice'>It seems to be slightly damaged.</span>")
// Component-side compatibility check.
/obj/item/computer_hardware/proc/can_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/proc/can_install(obj/item/modular_computer/M, mob/living/user = null)
return can_install
// Called when component is installed into PC.
/obj/item/computer_hardware/proc/on_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/proc/on_install(obj/item/modular_computer/M, mob/living/user = null)
return
// Called when component is removed from PC.
/obj/item/computer_hardware/proc/on_remove(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/proc/on_remove(obj/item/modular_computer/M, mob/living/user = null)
try_eject(forced = 1)
// Called when someone tries to insert something in it - paper in printer, card in card reader, etc.
@@ -7,7 +7,7 @@
origin_tech = "programming=2"
device_type = MC_AI
var/obj/item/device/aicard/stored_card = null
var/obj/item/aicard/stored_card = null
var/locked = FALSE
/obj/item/computer_hardware/ai_slot/Destroy()
@@ -20,10 +20,10 @@
if(stored_card)
to_chat(user, "There appears to be an intelliCard loaded. There appears to be a pinhole protecting a manual eject button. A screwdriver could probably press it")
/obj/item/computer_hardware/ai_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/ai_slot/on_install(obj/item/modular_computer/M, mob/living/user = null)
M.add_verb(device_type)
/obj/item/computer_hardware/ai_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/ai_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null)
M.remove_verb(device_type)
try_eject(0, forced = 1)
@@ -31,7 +31,7 @@
if(!holder)
return FALSE
if(!istype(I, /obj/item/device/aicard))
if(!istype(I, /obj/item/aicard))
return FALSE
if(stored_card)
@@ -17,7 +17,7 @@
QDEL_NULL(battery)
return ..()
/obj/item/computer_hardware/battery/on_remove(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/battery/on_remove(obj/item/modular_computer/M, mob/living/user = null)
try_eject(0, forced = 1)
/obj/item/computer_hardware/battery/try_insert(obj/item/I, mob/living/user = null)
@@ -31,10 +31,10 @@
return stored_card2
return ..()
/obj/item/computer_hardware/card_slot/on_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/card_slot/on_install(obj/item/modular_computer/M, mob/living/user = null)
M.add_verb(device_type)
/obj/item/computer_hardware/card_slot/on_remove(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/card_slot/on_remove(obj/item/modular_computer/M, mob/living/user = null)
M.remove_verb(device_type)
try_eject(0, forced = 1)
@@ -11,7 +11,7 @@
var/used_capacity = 0
var/list/stored_files = list() // List of stored files on this drive. DO NOT MODIFY DIRECTLY!
/obj/item/computer_hardware/hard_drive/on_remove(obj/item/device/modular_computer/MC, mob/user)
/obj/item/computer_hardware/hard_drive/on_remove(obj/item/modular_computer/MC, mob/user)
MC.shutdown_computer()
/obj/item/computer_hardware/hard_drive/proc/install_default_programs()
@@ -9,10 +9,10 @@
origin_tech = "programming=1"
device_type = MC_SDD
/obj/item/computer_hardware/hard_drive/portable/on_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/hard_drive/portable/on_install(obj/item/modular_computer/M, mob/living/user = null)
M.add_verb(device_type)
/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/hard_drive/portable/on_remove(obj/item/modular_computer/M, mob/living/user = null)
..()
M.remove_verb(device_type)
@@ -54,7 +54,7 @@
w_class = WEIGHT_CLASS_NORMAL
origin_tech = "engineering=2;powerstorage=1"
/obj/item/computer_hardware/recharger/wired/can_install(obj/item/device/modular_computer/M, mob/living/user = null)
/obj/item/computer_hardware/recharger/wired/can_install(obj/item/modular_computer/M, mob/living/user = null)
if(istype(M.physical, /obj/machinery) && M.physical.anchored)
return ..()
if(user)
@@ -10,8 +10,8 @@
density = 1
// The actual laptop/tablet
var/obj/item/device/modular_computer/laptop/fabricated_laptop = null
var/obj/item/device/modular_computer/tablet/fabricated_tablet = null
var/obj/item/modular_computer/laptop/fabricated_laptop = null
var/obj/item/modular_computer/tablet/fabricated_tablet = null
// Utility vars
var/state = 0 // 0: Select device type, 1: Select loadout, 2: Payment, 3: Thankyou screen
@@ -47,7 +47,7 @@
if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles
var/obj/item/computer_hardware/battery/battery_module = null
if(fabricate)
fabricated_laptop = new /obj/item/device/modular_computer/laptop/buildable(src)
fabricated_laptop = new /obj/item/modular_computer/laptop/buildable(src)
fabricated_laptop.install_component(new /obj/item/computer_hardware/battery)
battery_module = fabricated_laptop.all_components[MC_CELL]
total_price = 99
@@ -241,8 +241,8 @@ obj/machinery/lapvend/attackby(obj/item/I, mob/user)
var/obj/item/card/id/C
if(istype(I, /obj/item/card/id))
C = I
if(istype(I, /obj/item/device/pda))
var/obj/item/device/pda/PDA = I
if(istype(I, /obj/item/pda))
var/obj/item/pda/PDA = I
if(PDA.id)
C = PDA.id