mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 14:37:27 +01:00
* changeling fix * Move body spawning into BR * small fix, organization * replace xeno regen * Body descriptor system removed * Revert "Body descriptor system removed" This reverts commit04a0aa3ac8. * massive bodyrecord copy refactor * this too * dna copying is now sane * make a merge easier * better file for this * may we ensure peace everlasting * linter * oops, missed the test * fixed up * furthering the test * different way to check * looking promising * required exclusions * more test * another tweak * setup better * globin * test name change * really mess up that monkey * gradient style to UI entry * scramble ignore * illegal species * scramble fix * grad fix, more test fixes * doing that right * need these too * missed defferal * missed pathing * documentation wall * blood color needs a safety * promethean prep * this early set isn't needed * some protections * fixed waddler nulltest * failure test * intensify scan * second fail test * noticing * dna test case * other dna test case * Test is bunk * huge dna cleanup, better signal * don't edit these * documentation * Do not use loc = src.loc * oops * Use weakrefs in pods * remaining weakrefs * reduce changes in pr * cloning computer does not rotate itself when used * moved body design to new BR code, and fixed screen size * badlinting * updated * No instakilling teshari * jiggles you * TGUI * move along * m ove it * Update AppearanceChangerMisc.tsx * this too * gender is race whoops * Allow old clonepods too * xc * further encapsulation and some fixes * oops * misc not race * separated that * custom footsteps exchanged * Custom speech bubble and xenochi stuff * Update xenochimera.dm * remove digileg snowflake * try this * Update xenochimera.dm * proper close * Always update our DNA * awa * extremely laggy check removed, actually useless * explaining * lower delay time * slower jigglin * Revert "slower jigglin" This reverts commitc801f7d7f5. * disable appearance editor due to various issues * Promie love * xenochi vanity test * lmao * earwings * wording and slot revival * mobvar? * Phasing out specific shapeshifter appearances If you have access to changing your icon, you can change whatever you want. * saveslot loading * more * synth * Shoot out limbs * almost ready * nullcheck * xenochi revive handles size and weight correctly * weaver cocoon updated xenochi internal record after tf * cannot remove from lost limbs * limbs properly respawn on slot revive --------- Co-authored-by: C.L. <killer65311@gmail.com>
99 lines
3.0 KiB
Plaintext
99 lines
3.0 KiB
Plaintext
// Little define makes it cleaner to read the tripple color values out of mobs.
|
|
#define MENU_MAIN "Main"
|
|
#define MENU_BODYRECORDS "Body Records"
|
|
#define MENU_STOCKRECORDS "Stock Records"
|
|
#define MENU_SPECIFICRECORD "Specific Record"
|
|
#define MENU_OOCNOTES "OOC Notes"
|
|
|
|
/obj/machinery/computer/transhuman/designer
|
|
name = "body design console"
|
|
catalogue_data = list(/datum/category_item/catalogue/technology/resleeving)
|
|
icon = 'icons/obj/computer.dmi'
|
|
icon_keyboard = "med_key"
|
|
icon_screen = "explosive"
|
|
light_color = "#315ab4"
|
|
circuit = /obj/item/circuitboard/body_designer
|
|
req_access = list(access_medical) // Used for loading people's designs
|
|
var/datum/tgui_module/appearance_changer/body_designer/designer_gui
|
|
var/obj/item/disk/body_record/disk = null
|
|
var/selected_record = FALSE
|
|
|
|
// Resleeving database this machine interacts with. Blank for default database
|
|
// Needs a matching /datum/transcore_db with key defined in code
|
|
var/db_key
|
|
var/datum/transcore_db/our_db // These persist all round and are never destroyed, just keep a hard ref
|
|
|
|
/obj/machinery/computer/transhuman/designer/Initialize(mapload)
|
|
. = ..()
|
|
our_db = SStranscore.db_by_key(db_key)
|
|
|
|
/obj/machinery/computer/transhuman/designer/Destroy()
|
|
if(disk)
|
|
disk.forceMove(get_turf(src))
|
|
disk = null
|
|
. = ..()
|
|
|
|
/obj/machinery/computer/transhuman/designer/dismantle()
|
|
if(disk)
|
|
disk.forceMove(get_turf(src))
|
|
disk = null
|
|
. = ..()
|
|
|
|
/obj/machinery/computer/transhuman/designer/attackby(obj/item/W, mob/user)
|
|
if(istype(W, /obj/item/disk/body_record))
|
|
user.unEquip(W)
|
|
disk = W
|
|
disk.forceMove(src)
|
|
to_chat(user, span_notice("You insert \the [W] into \the [src]."))
|
|
SStgui.update_uis(src)
|
|
else
|
|
. = ..()
|
|
|
|
/obj/machinery/computer/transhuman/designer/attack_ai(mob/user)
|
|
attack_hand(user)
|
|
|
|
/obj/machinery/computer/transhuman/designer/attack_hand(mob/user)
|
|
add_fingerprint(user)
|
|
if(inoperable())
|
|
return
|
|
if(!designer_gui)
|
|
designer_gui = new(src, null)
|
|
designer_gui.linked_body_design_console = WEAKREF(src)
|
|
CallAsync(designer_gui, TYPE_PROC_REF(/datum/tgui_module/appearance_changer,jiggle_map))
|
|
if(!designer_gui.owner)
|
|
designer_gui.make_fake_owner()
|
|
selected_record = FALSE
|
|
designer_gui.tgui_interact(user)
|
|
|
|
// Disk for manually moving body records between the designer and sleever console etc.
|
|
/obj/item/disk/body_record
|
|
name = "Body Design Disk"
|
|
desc = "It has a small label: \n\
|
|
\"Portable Body Record Storage Disk. \n\
|
|
Insert into resleeving control console\""
|
|
icon = 'icons/obj/discs_vr.dmi'
|
|
icon_state = "data-green"
|
|
item_state = "card-id"
|
|
w_class = ITEMSIZE_SMALL
|
|
var/datum/transhuman/body_record/stored = null
|
|
|
|
/*
|
|
* Diskette Box
|
|
*/
|
|
|
|
/obj/item/storage/box/body_record_disk
|
|
name = "body record disk box"
|
|
desc = "A box of body record disks, apparently."
|
|
icon_state = "disk_kit"
|
|
|
|
/obj/item/storage/box/body_record_disk/Initialize(mapload)
|
|
. = ..()
|
|
for(var/i = 0 to 7)
|
|
new /obj/item/disk/body_record(src)
|
|
|
|
#undef MENU_MAIN
|
|
#undef MENU_BODYRECORDS
|
|
#undef MENU_STOCKRECORDS
|
|
#undef MENU_SPECIFICRECORD
|
|
#undef MENU_OOCNOTES
|