mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 14:37:04 +01:00
The Great Conflictening 2.0: Removes /obj/item/device
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user