Adds the Body Designer for resleeving

* Adds Body Designer computer, which allows you to customize body designs similarly to character setup, but in game.
* Designs are savable to disks which can be loaded into the the resleeving controller console to print and resleeve into.
* Fixes line breaks on OOC notes in the resleeving computer.
* Added circuits so the body designer is constructable, and designs so the circuit is researchable.
* Added a proc for reverse lookup of size_multiplier -> scale name (0.25 -> Micro etc)
This commit is contained in:
Leshana
2017-04-09 16:23:35 -04:00
parent 48648cc35c
commit eef8480444
13 changed files with 649 additions and 10 deletions
+13 -2
View File
@@ -68,7 +68,7 @@
if(istype(W, /obj/item/device/multitool))
var/obj/item/device/multitool/M = W
var/obj/machinery/clonepod/transhuman/P = M.connecting
if(P && !(P in pods))
if(istype(P) && !(P in pods))
pods += P
P.connected = src
P.name = "[initial(P.name)] #[pods.len]"
@@ -78,6 +78,17 @@
disk = W
disk.forceMove(src)
user << "<span class='notice'>You insert \the [W] into \the [src].</span>"
if(istype(W, /obj/item/weapon/disk/body_record))
var/obj/item/weapon/disk/body_record/brDisk = W
if(!brDisk.stored)
to_chat(user, "<span class='warning'>\The [W] does not contain a stored body record.</span>")
return
user.unEquip(W)
W.forceMove(get_turf(src)) // Drop on top of us
active_br = new /datum/transhuman/body_record(brDisk.stored) // Loads a COPY!
menu = 4
to_chat(user, "<span class='notice'>\The [src] loads the body record from \the [W] before ejecting it.</span>")
attack_hand(user)
else
..()
return
@@ -192,7 +203,7 @@
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "sleever.tmpl", src.name, 400, 450)
ui = new(user, src, ui_key, "sleever.tmpl", "Resleeving Control Console", 400, 450)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(5)