* sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes
55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
/obj/item/device/modular_computer/proc/can_install_component(obj/item/weapon/computer_hardware/H, mob/living/user = null)
|
|
if(!H.can_install(src, user))
|
|
return FALSE
|
|
|
|
if(H.w_class > max_hardware_size)
|
|
user << "<span class='warning'>This component is too large for \the [src]!</span>"
|
|
return FALSE
|
|
|
|
if(all_components[H.device_type])
|
|
user << "<span class='warning'>This computer's hardware slot is already occupied by \the [all_components[H.device_type]].</span>"
|
|
return FALSE
|
|
return TRUE
|
|
|
|
|
|
// Installs component.
|
|
/obj/item/device/modular_computer/proc/install_component(obj/item/weapon/computer_hardware/H, mob/living/user = null)
|
|
if(!can_install_component(H, user))
|
|
return FALSE
|
|
|
|
if(user && !user.unEquip(H))
|
|
return FALSE
|
|
|
|
all_components[H.device_type] = H
|
|
|
|
user << "<span class='notice'>You install \the [H] into \the [src].</span>"
|
|
H.forceMove(src)
|
|
H.holder = src
|
|
H.on_install(src, user)
|
|
|
|
|
|
// Uninstalls component.
|
|
/obj/item/device/modular_computer/proc/uninstall_component(obj/item/weapon/computer_hardware/H, mob/living/user = null)
|
|
if(H.holder != src) // Not our component at all.
|
|
return FALSE
|
|
|
|
all_components.Remove(H.device_type)
|
|
|
|
user << "<span class='notice'>You remove \the [H] from \the [src].</span>"
|
|
|
|
H.forceMove(get_turf(src))
|
|
H.holder = null
|
|
H.on_remove(src, user)
|
|
if(enabled && !use_power())
|
|
shutdown_computer()
|
|
update_icon()
|
|
|
|
|
|
// 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)
|
|
for(var/i in all_components)
|
|
var/obj/O = all_components[i]
|
|
if(O.name == name)
|
|
return O
|
|
return null
|