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

* Kills off /obj/item/device

* whoops

* whoops

* Fix
This commit is contained in:
Fox McCloud
2018-04-23 09:00:23 -04:00
committed by yogstation13-bot
parent 2a3b46ef43
commit d42a67da02
496 changed files with 4868 additions and 4794 deletions

View File

@@ -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 ..()

View File

@@ -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
@@ -13,7 +13,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
@@ -29,7 +29,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
@@ -46,7 +46,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)

View File

@@ -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)
@@ -13,10 +13,10 @@
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(!(flags_1 & NODECONSTRUCT_1))
physical.visible_message("\The [src] breaks apart!")
var/turf/newloc = get_turf(src)

View File

@@ -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,19 +20,19 @@
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)
return 0
/obj/item/device/modular_computer/get_cell()
/obj/item/modular_computer/get_cell()
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module && battery_module.battery)
return battery_module.battery
// 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)
@@ -42,7 +42,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()
@@ -61,5 +61,5 @@
return FALSE
// 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

View File

@@ -1,9 +1,9 @@
/obj/item/device/modular_computer/attack_self(mob/user)
/obj/item/modular_computer/attack_self(mob/user)
. = ..()
ui_interact(user)
// Operates TGUI
/obj/item/device/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
/obj/item/modular_computer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
if(!enabled)
if(ui)
ui.close()
@@ -43,7 +43,7 @@
ui.set_autoupdate(state = 1)
/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]
@@ -61,7 +61,7 @@
// Handles user's GUI input
/obj/item/device/modular_computer/ui_act(action, params)
/obj/item/modular_computer/ui_act(action, params)
if(..())
return
var/obj/item/computer_hardware/hard_drive/hard_drive = all_components[MC_HDD]
@@ -159,7 +159,7 @@
else
return
/obj/item/device/modular_computer/ui_host()
/obj/item/modular_computer/ui_host()
if(physical)
return physical
return src

View File

@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/laptop
/obj/item/modular_computer/laptop
name = "laptop"
desc = "A portable laptop computer."
@@ -21,38 +21,38 @@
var/w_class_open = WEIGHT_CLASS_BULKY
var/slowdown_open = TRUE
/obj/item/device/modular_computer/laptop/examine(mob/user)
/obj/item/modular_computer/laptop/examine(mob/user)
..()
if(screen_on)
to_chat(user, "<span class='notice'>Alt-click to close it.</span>")
/obj/item/device/modular_computer/laptop/Initialize()
/obj/item/modular_computer/laptop/Initialize()
. = ..()
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
cut_overlays()
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)
@@ -65,14 +65,14 @@
return
M.put_in_hand(src, H.held_index)
/obj/item/device/modular_computer/laptop/attack_hand(mob/user)
/obj/item/modular_computer/laptop/attack_hand(mob/user)
. = ..()
if(.)
return
if(screen_on && isturf(loc))
return attack_self(user)
/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.
@@ -83,13 +83,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)
@@ -105,5 +105,5 @@
// Laptop frame, starts empty and closed.
/obj/item/device/modular_computer/laptop/buildable
/obj/item/modular_computer/laptop/buildable
start_open = FALSE

View File

@@ -1,4 +1,4 @@
/obj/item/device/modular_computer/laptop/preset/Initialize()
/obj/item/modular_computer/laptop/preset/Initialize()
. = ..()
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,17 +7,17 @@
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())

View File

@@ -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,17 +10,17 @@
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)
STOP_PROCESSING(SSobj, src) // Processed by its machine
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()
@@ -36,28 +36,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(atom/movable/M, be_close=FALSE, no_dextery=FALSE)
//obj/item/modular_computer/processor/canUseTopic(atom/movable/M, be_close=FALSE, no_dextery=FALSE)
// 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
@@ -66,7 +66,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

View File

@@ -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"
@@ -14,7 +14,7 @@
comp_light_luminosity = 2.3 //Same as the PDA
var/finish_color = null
/obj/item/device/modular_computer/tablet/update_icon()
/obj/item/modular_computer/tablet/update_icon()
..()
if(!finish_color)
finish_color = pick("red","blue","brown","green","black")

View File

@@ -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/Initialize()
/obj/item/modular_computer/tablet/preset/cheap/Initialize()
. = ..()
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/Initialize()
/obj/item/modular_computer/tablet/preset/advanced/Initialize()
. = ..()
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/Initialize()
/obj/item/modular_computer/tablet/preset/cargo/Initialize()
. = ..()
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))

View File

@@ -25,7 +25,7 @@
var/base_active_power_usage = 100 // Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too.
var/base_idle_power_usage = 10 // Power usage when the computer is idle and screen is off (currently only applies to laptops)
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/Initialize()
. = ..()

View File

@@ -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
@@ -22,7 +22,7 @@
var/ui_y = 700
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

View File

@@ -56,7 +56,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)
@@ -94,7 +94,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
@@ -103,7 +103,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

View File

@@ -14,7 +14,7 @@
requires_ntnet = 0
tgui_id = "ntos_configuration"
var/obj/item/device/modular_computer/movable = null
var/obj/item/modular_computer/movable = null
/datum/computer_file/program/computerconfig/ui_data(mob/user)

View File

@@ -17,7 +17,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)

View File

@@ -12,7 +12,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

View File

@@ -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.
var/power_usage = 0 // If the hardware uses extra power, change this.
@@ -33,7 +33,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, "******************************")
@@ -83,15 +83,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.

View File

@@ -6,7 +6,7 @@
w_class = WEIGHT_CLASS_SMALL
device_type = MC_AI
var/obj/item/device/aicard/stored_card = null
var/obj/item/aicard/stored_card = null
var/locked = FALSE
@@ -15,17 +15,17 @@
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)
/obj/item/computer_hardware/ai_slot/try_insert(obj/item/I, mob/living/user = null)
if(!holder)
return FALSE
if(!istype(I, /obj/item/device/aicard))
if(!istype(I, /obj/item/aicard))
return FALSE
if(stored_card)

View File

@@ -29,10 +29,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)
/obj/item/computer_hardware/card_slot/try_insert(obj/item/I, mob/living/user = null)

View File

@@ -10,7 +10,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()

View File

@@ -8,10 +8,10 @@
max_capacity = 16
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)

View File

@@ -52,7 +52,7 @@
icon_state = "charger_wire"
w_class = WEIGHT_CLASS_NORMAL
/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(ismachinery(M.physical) && M.physical.anchored)
return ..()
to_chat(user, "<span class='warning'>\The [src] is incompatible with portable computers!</span>")

View File

@@ -10,8 +10,8 @@
density = TRUE
// 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
@@ -52,7 +52,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