diff --git a/code/__defines/research.dm b/code/__defines/research.dm
index fc049ca473..c4cdd6f299 100644
--- a/code/__defines/research.dm
+++ b/code/__defines/research.dm
@@ -1,21 +1,20 @@
-#define SHEET_MATERIAL_AMOUNT 2000
-
-#define TECH_MATERIAL "materials"
-#define TECH_ENGINEERING "engineering"
-#define TECH_PHORON "phorontech"
-#define TECH_POWER "powerstorage"
-#define TECH_BLUESPACE "bluespace"
-#define TECH_BIO "biotech"
-#define TECH_COMBAT "combat"
-#define TECH_MAGNET "magnets"
-#define TECH_DATA "programming"
-#define TECH_ILLEGAL "syndicate"
-#define TECH_ARCANE "arcane"
-#define TECH_PRECURSOR "precursor"
-
-#define IMPRINTER 0x0001 //For circuits. Uses glass/chemicals.
-#define PROTOLATHE 0x0002 //New stuff. Uses glass/metal/chemicals
-#define MECHFAB 0x0004 //Mechfab
-#define CHASSIS 0x0008 //For protolathe, but differently
-#define PROSFAB 0x0010 //For prosthetics fab
-#define AUTOLATHE 32 //YW add, for autolathe
\ No newline at end of file
+#define SHEET_MATERIAL_AMOUNT 2000
+
+#define TECH_MATERIAL "materials"
+#define TECH_ENGINEERING "engineering"
+#define TECH_PHORON "phorontech"
+#define TECH_POWER "powerstorage"
+#define TECH_BLUESPACE "bluespace"
+#define TECH_BIO "biotech"
+#define TECH_COMBAT "combat"
+#define TECH_MAGNET "magnets"
+#define TECH_DATA "programming"
+#define TECH_ILLEGAL "syndicate"
+#define TECH_ARCANE "arcane"
+#define TECH_PRECURSOR "precursor"
+
+#define IMPRINTER 0x0001 //For circuits. Uses glass/chemicals.
+#define PROTOLATHE 0x0002 //New stuff. Uses glass/metal/chemicals
+#define MECHFAB 0x0004 //Mechfab
+#define CHASSIS 0x0008 //For protolathe, but differently
+#define PROSFAB 0x0010 //For prosthetics fab
\ No newline at end of file
diff --git a/code/datums/autolathe/arms_1.dm b/code/datums/autolathe/arms_1.dm
deleted file mode 100644
index c40028d6f0..0000000000
--- a/code/datums/autolathe/arms_1.dm
+++ /dev/null
@@ -1,345 +0,0 @@
-/datum/design/item/autolathe
- //var/hidden = 0
- build_type = AUTOLATHE //Flag as to what kind machine the design is built in. See defines.
-
-/datum/design/item/autolathe/arms //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "Arms and Ammunition" //category item goes to
-
-
-////////////////
-/*Ammo casings*/
-////////////////
-//Shotgun
-
-/datum/design/item/autolathe/arms/shotgun_blanks
- name = "ammunition (12g, blank)"
- id = "shotgun_blanks"
- build_path = /obj/item/ammo_casing/a12g/blank
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 112)
-
-/datum/design/item/autolathe/arms/shotgun_beanbag
- name = "ammunition (12g, beanbag)"
- id = "shotgun_beanbag"
- build_path = /obj/item/ammo_casing/a12g/beanbag
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 225)
-
-/datum/design/item/autolathe/arms/shotgun_flash
- name = "ammunition (12g, flash)"
- id = "shotgun_flash"
- build_path = /obj/item/ammo_casing/a12g/flash
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 112, "glass" = 112)
-
-/datum/design/item/autolathe/arms/shotgun_slug
- name = "ammunition (12g, slug)"
- id = "shotgun_slug"
- build_path = /obj/item/ammo_casing/a12g
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 450)
- hidden = 1
-
-/datum/design/item/autolathe/arms/shotgun_pellet
- name = "ammunition (12g, pellet)"
- id = "shotgun_pellet"
- build_path = /obj/item/ammo_casing/a12g/pellet
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 450)
- hidden = 1
-
-/*/datum/design/item/autolathe/arms/stunshell
- name = "ammunition (stun cartridge, shotgun)"
- id = "shotgun_stunshell"
- build_path = /obj/item/ammo_casing/a12g/stunshell
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 450, "glass" = 900)
- hidden = 1*/
- //It Gotta be manually added by a Design_disk, uncomment in case it shall be constructed normally(or add it other way, this causes some irrelevant unit test errors)
-
-//////////////////
-/*Ammo magazines*/
-//////////////////
-
-/////// .45
-/datum/design/item/autolathe/arms/pistol_45
- name = "pistol magazine (.45)"
- id = "pistol_45"
- build_path = /obj/item/ammo_magazine/m45
- time = 10
- materials = list(DEFAULT_WALL_MATERIAL = 656)
- hidden = 1
-
-/datum/design/item/autolathe/arms/pistol_45p
- name = "pistol magazine (.45 practice)"
- id = "pistol_45p"
- build_path = /obj/item/ammo_magazine/m45/practice
- materials = list(DEFAULT_WALL_MATERIAL = 656)
-
-
-/datum/design/item/autolathe/arms/pistol_45r
- name = "pistol magazine (.45 rubber)"
- id = "pistol_45r"
- build_path = /obj/item/ammo_magazine/m45/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 656)
-
-/datum/design/item/autolathe/arms/pistol_45f
- name = "pistol magazine (.45 flash)"
- id = "pistol_45f"
- build_path = /obj/item/ammo_magazine/m45/flash
- materials = list(DEFAULT_WALL_MATERIAL = 656)
-
-/datum/design/item/autolathe/arms/pistol_45uzi
- name = "uzi magazine (.45)"
- id = "pistol_45uzi"
- build_path = /obj/item/ammo_magazine/m45uzi
- materials = list(DEFAULT_WALL_MATERIAL = 656)
- hidden = 1
-
-/datum/design/item/autolathe/arms/tommymag
- name = "Tommy Gun magazine (.45)"
- id = "tommymag"
- build_path = /obj/item/ammo_magazine/m45tommy
- materials = list(DEFAULT_WALL_MATERIAL = 1875)
- hidden = 1
-
-/datum/design/item/autolathe/arms/tommydrum
- name = "Tommy Gun drum magazine (.45)"
- id = "tommydrum"
- build_path = /obj/item/ammo_magazine/m45tommydrum
- materials = list(DEFAULT_WALL_MATERIAL = 4687)
- hidden = 1
-
-/////// 9mm
-
-// Full size pistol mags.
-
-/datum/design/item/autolathe/arms/pistol_9mm
- name = "pistol magazine (9mm)"
- id = "pistol_9mm"
- build_path = /obj/item/ammo_magazine/m9mm
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-
-/datum/design/item/autolathe/arms/pistol_9mmr
- name = "pistol magazine (9mm rubber)"
- id = "pistol_9mm_rubber"
- build_path = /obj/item/ammo_magazine/m9mm/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 750)
-
-
-/datum/design/item/autolathe/arms/pistol_9mmp
- name = "pistol magazine (9mm practice)"
- id = "pistol_9mm_practice"
- build_path = /obj/item/ammo_magazine/m9mm/practice
- materials = list(DEFAULT_WALL_MATERIAL = 750)
-
-/datum/design/item/autolathe/arms/pistol_9mmf
- name = "pistol magazine (9mm flash)"
- id = "pistol_9mm_flash"
- build_path = /obj/item/ammo_magazine/m9mm/flash
- materials = list(DEFAULT_WALL_MATERIAL = 750)
-
-/datum/design/item/autolathe/arms/pistol_9mm_compact
- name = "compact pistol magazine (9mm)"
- id = "pistol_9mm_compact"
- build_path = /obj/item/ammo_magazine/m9mm/compact
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-
-/datum/design/item/autolathe/arms/pistol_9mmr_compact
- name = "compact pistol magazine (9mm rubber)"
- id = "pistol_9mm_compact_rubber"
- build_path = /obj/item/ammo_magazine/m9mm/compact/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-/datum/design/item/autolathe/arms/pistol_9mmp_compact
- name = "compact pistol magazine (9mm)"
- id = "pistol_9mm_compact_practice"
- build_path = /obj/item/ammo_magazine/m9mm/compact/practice
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-
-/datum/design/item/autolathe/arms/pistol_9mmf_compact
- name = "compact pistol magazine (9mm)"
- id = "pistol_9mm_compact_flash"
- build_path = /obj/item/ammo_magazine/m9mm/compact/flash
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-
-/////// SMG Mags
-
-/datum/design/item/autolathe/arms/smg_9mm
- name = "top-mounted SMG magazine (9mm)"
- id = "smg_9mm"
- build_path = /obj/item/ammo_magazine/m9mmt
- materials = list(DEFAULT_WALL_MATERIAL = 750)
- hidden = 1
-
-/datum/design/item/autolathe/arms/smg_9mmr
- name = "top-mounted SMG magazine (9mm rubber)"
- id = "smg_9mmr"
- build_path = /obj/item/ammo_magazine/m9mmt/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 380)
-
-/datum/design/item/autolathe/arms/smg_9mmp
- name = "top-mounted SMG magazine (9mm practice)"
- id = "smg_9mmp"
- build_path = /obj/item/ammo_magazine/m9mmt/practice
- materials = list(DEFAULT_WALL_MATERIAL = 380)
-
-/datum/design/item/autolathe/arms/smg_9mmf
- name = "top-mounted SMG magazine (9mm flash)"
- id = "smg_9mmf"
- build_path = /obj/item/ammo_magazine/m9mmt/flash
- materials = list(DEFAULT_WALL_MATERIAL = 380)
-
-
-/////// 10mm
-
-/datum/design/item/autolathe/arms/smg_10mm
- name = "SMG magazine (10mm)"
- id = "smg_10mm"
- build_path = /obj/item/ammo_magazine/m10mm
- materials = list(DEFAULT_WALL_MATERIAL = 1875)
-
-
-/////// 5.45mm
-/datum/design/item/autolathe/arms/rifle_545
- name = "rifle magazine (5.45mm)"
- id = "rifle_545"
- build_path = /obj/item/ammo_magazine/m545
- materials = list(DEFAULT_WALL_MATERIAL = 2250)
- hidden = 1
-
-/datum/design/item/autolathe/arms/rifle_545p
- name = "rifle magazine (5.45mm practice)"
- id = "rifle_545_practice"
- build_path = /obj/item/ammo_magazine/m545/practice
- materials = list(DEFAULT_WALL_MATERIAL = 2250)
-
-/datum/design/item/autolathe/arms/machinegun_545
- name = "machinegun box magazine (5.45)"
- id = "machinegun_545"
- build_path = /obj/item/ammo_magazine/m545saw
- materials = list(DEFAULT_WALL_MATERIAL = 12500)
- hidden = 1
-
-/////// 7.62
-
-/datum/design/item/autolathe/arms/rifle_762
- name = "rifle magazine (7.62mm)"
- id = "rifle_762"
- build_path = /obj/item/ammo_magazine/m762
- materials = list(DEFAULT_WALL_MATERIAL = 2500)
- hidden = 1
-
-
-/////// Shotgun
-
-/datum/design/item/autolathe/arms/shotgun_clip_beanbag
- name = "2-round 12g speedloader (beanbag)"
- id = "shotgun_speedloader_beanbag"
- build_path = /obj/item/ammo_magazine/clip/c12g/beanbag
- materials = list(DEFAULT_WALL_MATERIAL = 887)
-
-/datum/design/item/autolathe/arms/shotgun_clip_pellet
- name = "2-round 12g speedloader (pellet)"
- id = "shotgun_speedloader_pellet"
- build_path = /obj/item/ammo_magazine/clip/c12g/pellet
- materials = list(DEFAULT_WALL_MATERIAL = 1337)
- hidden = 1
-
-/datum/design/item/autolathe/arms/shotgun_clip_slug
- name = "2-round 12g speedloader (slug)"
- id = "shotgun_speedloader_slug"
- build_path = /obj/item/ammo_magazine/clip/c12g
- materials = list(DEFAULT_WALL_MATERIAL = 1337)
- hidden = 1
-
-
-///////////////////////////////
-/*Ammo clips and Speedloaders*/
-///////////////////////////////
-
-/datum/design/item/autolathe/arms/speedloader_357
- name = "speedloader (.357)"
- id = "speedloader_357"
- build_path = /obj/item/ammo_magazine/s357
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_38
- name = "speedloader (.38)"
- id = "speedloader_38"
- build_path = /obj/item/ammo_magazine/s38
- materials = list(DEFAULT_WALL_MATERIAL = 450)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_38r
- name = "speedloader (.38 rubber)"
- id = "speedloader_38_rubber"
- build_path = /obj/item/ammo_magazine/s38/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 450)
-
-/datum/design/item/autolathe/arms/speedloader_45
- name = "speedloader (.45)"
- id = "speedloader_45"
- build_path = /obj/item/ammo_magazine/s45
- materials = list(DEFAULT_WALL_MATERIAL = 656)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_45r
- name = "speedloader (.45 rubber)"
- id = "speedloader_45_rubber"
- build_path = /obj/item/ammo_magazine/s45/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 656)
-
-/datum/design/item/autolathe/arms/rifle_clip_545
- name = "ammo clip (5.45mm)"
- id = "rifle_clip_545"
- build_path = /obj/item/ammo_magazine/clip/c545
- materials = list(DEFAULT_WALL_MATERIAL = 565)
- hidden = 1
-
-/datum/design/item/autolathe/arms/rifle_clip_545_practice
- name = "ammo clip (5.45mm practice)"
- id = "rifle_clip_545p"
- build_path = /obj/item/ammo_magazine/clip/c545/practice
- materials = list(DEFAULT_WALL_MATERIAL = 565)
-
-/datum/design/item/autolathe/arms/rifle_clip_762
- name = "ammo clip (7.62mm)"
- id = "rifle_clip_762"
- build_path = /obj/item/ammo_magazine/clip/c762
- materials = list(DEFAULT_WALL_MATERIAL = 1250)
- hidden = 1
-
-/datum/design/item/autolathe/arms/rifle_clip_762_practice
- name = "ammo clip (7.62mm practice)"
- id = "rifle_clip_762p"
- build_path = /obj/item/ammo_magazine/clip/c762/practice
- materials = list(DEFAULT_WALL_MATERIAL = 1250)
-
-/datum/design/item/autolathe/arms/knuckledusters
- name = "knuckle dusters"
- id = "knuckledusters"
- build_path = /obj/item/clothing/gloves/knuckledusters
- materials = list(DEFAULT_WALL_MATERIAL = 625)
- hidden = 1
-
-/datum/design/item/autolathe/arms/tacknife
- name = "tactical knife"
- id = "tacknife"
- build_path = /obj/item/weapon/material/knife/tacknife
- materials = list(DEFAULT_WALL_MATERIAL = 625)
- hidden = 1
-
-/datum/design/item/autolathe/arms/flamethrower
- name = "flamethrower"
- id = "flamethrower"
- build_path = /obj/item/weapon/flamethrower/full
- materials = list(DEFAULT_WALL_MATERIAL = 625)
- hidden = 1
-
-
diff --git a/code/datums/autolathe/arms_1_vr.dm b/code/datums/autolathe/arms_1_vr.dm
deleted file mode 100644
index 54919d6bd7..0000000000
--- a/code/datums/autolathe/arms_1_vr.dm
+++ /dev/null
@@ -1,56 +0,0 @@
-/datum/design/item/autolathe/arms/speedloader_357_flash
- name = "speedloader (.357 flash)"
- id = "speedloader_357f"
- build_path = /obj/item/ammo_magazine/s357/flash
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_357_stun
- name = "speedloader (.357 stun)"
- id = "speedloader_357s"
- build_path = /obj/item/ammo_magazine/s357/stun
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_357_rubber
- name = "speedloader (.357 rubber)"
- id = "speedloader_357r"
- build_path = /obj/item/ammo_magazine/s357/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_44
- name = "speedloader (.44)"
- id = "speedloader_44"
- build_path = /obj/item/ammo_magazine/s44
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/speedloader_44_rubber
- name = "speedloader (.44)"
- id = "speedloader_44r"
- build_path = /obj/item/ammo_magazine/s44/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/mag_44
- name = "magazine (.44)"
- id = "mag_44"
- build_path = /obj/item/ammo_magazine/m44
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/mag_44_rubber
- name = "magazine (.44 rubber)"
- id = "mag_44r"
- build_path = /obj/item/ammo_magazine/m44/rubber
- materials = list(DEFAULT_WALL_MATERIAL = 1575)
- hidden = 1
-
-/datum/design/item/autolathe/arms/classic_smg_9mm
- name = "SMG magazine (9mm)"
- id = "classic_smg_9mm"
- build_path = /obj/item/ammo_magazine/m9mml
- materials = list(DEFAULT_WALL_MATERIAL = 2250)
- hidden = 1
-
diff --git a/code/datums/autolathe/arms_1_yw.dm b/code/datums/autolathe/arms_1_yw.dm
deleted file mode 100644
index 2b5f95ff7e..0000000000
--- a/code/datums/autolathe/arms_1_yw.dm
+++ /dev/null
@@ -1,80 +0,0 @@
-/datum/design/item/autolathe/arms/shotgun_scatter
- name = "ammunition (12g, scatter)"
- id = "shotgun_scatter"
- build_path = /obj/item/ammo_casing/a12g/scatter
- materials = list(DEFAULT_WALL_MATERIAL = 450)
- hidden = 1
-
-/datum/design/item/autolathe/arms/shotgun_clip_scatter
- name = "2-round 12g speedloader (scatter)"
- id = "shotgun_speedloader_scatter"
- build_path = /obj/item/ammo_magazine/clip/c12g/scatter
- materials = list(DEFAULT_WALL_MATERIAL = 1337)
- hidden = 1
-
-/datum/design/item/autolathe/arms/shotgun_drum_empty
- name = "shotgun 12g drum magazine (Empty)"
- id = "shotgun_empty_drum_magazine"
- build_path = /obj/item/ammo_magazine/m12gdrumjack/empty
- materials = list(DEFAULT_WALL_MATERIAL = 1625) //Why these cost so much ? the normal ones have 13000 matter so i just multiplied by 1.25(default) don't know why it costs so much
-
-//printable boxes of shotgun ammo, by KK
-//the prices are rounded up to the cost of nine shells, but compared to printing a bunch of speedloaders you get a small discount. honestly the speedloaders are overpriced (the metal frame is somehow more expensive than a third shell!) but take it up with polaris.
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_beanbag
- name = "8-round 12g ammo box (beanbag)"
- id = "shotgun_ammobox_beanbag"
- build_path = /obj/item/weapon/storage/box/beanbags
- materials = list(DEFAULT_WALL_MATERIAL = 2025)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_slugs
- name = "8-round 12g ammo box (slug)"
- id = "shotgun_ammobox_slug"
- build_path = /obj/item/weapon/storage/box/shotgunammo
- materials = list(DEFAULT_WALL_MATERIAL = 4050)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_pellet
- name = "8-round 12g ammo box (pellet)"
- id = "shotgun_ammobox_pellet"
- build_path = /obj/item/weapon/storage/box/shotgunshells
- materials = list(DEFAULT_WALL_MATERIAL = 4050)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_scatter
- name = "8-round 12g ammo box (scatter)"
- id = "shotgun_ammobox_scatter"
- build_path = /obj/item/weapon/storage/box/scattershot
- materials = list(DEFAULT_WALL_MATERIAL = 4050)
- hidden = 1
-
-//commented out, pending review, maybe 16rnd boxes should be cargo only?
-/*
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_beanbag_large
- name = "16-round 12g ammo box (beanbag)"
- id = "shotgun_ammobox_beanbag_large"
- build_path = /obj/item/weapon/storage/box/beanbags/large
- materials = list(DEFAULT_WALL_MATERIAL = 4050)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_slugs_large
- name = "16-round 12g ammo box (slug)"
- id = "shotgun_ammobox_slug_large"
- build_path = /obj/item/weapon/storage/box/shotgunammo/large
- materials = list(DEFAULT_WALL_MATERIAL = 8100)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_pellet_large
- name = "16-round 12g ammo box (pellet)"
- id = "shotgun_ammobox_pellet_large"
- build_path = /obj/item/weapon/storage/box/shotgunshells/large
- materials = list(DEFAULT_WALL_MATERIAL = 8100)
- hidden = 1
-
-/datum/design/item/autolathe/arms/ammobox/shotgun_box_scatter_large
- name = "16-round 12g ammo box (scatter)"
- id = "shotgun_ammobox_scatter_large"
- build_path = /obj/item/weapon/storage/box/scattershot/large
- materials = list(DEFAULT_WALL_MATERIAL = 8100)
- hidden = 1
-*/
\ No newline at end of file
diff --git a/code/datums/autolathe/autolathe_yw.dm b/code/datums/autolathe/autolathe_yw.dm
deleted file mode 100644
index ba5f02de95..0000000000
--- a/code/datums/autolathe/autolathe_yw.dm
+++ /dev/null
@@ -1,631 +0,0 @@
-#define AUTOLATHE_MAIN_MENU 1
-#define AUTOLATHE_CATEGORY_MENU 2
-#define AUTOLATHE_SEARCH_MENU 3
-
-/obj/machinery/autolathe
- name = "autolathe"
- desc = "It produces items using metal and glass."
- icon_state = "autolathe"
- density = 1
- anchored = 1
- use_power = USE_POWER_IDLE
- idle_power_usage = 10
- active_power_usage = 2000
- clicksound = "keyboard"
- clickvol = 30
-
- circuit = /obj/item/weapon/circuitboard/autolathe
- var/list/stored_material = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
- var/list/storage_capacity = list(DEFAULT_WALL_MATERIAL = 0, "glass" = 0)
-
- var/hacked = 0
- var/disabled = 0
- var/shocked = 0
- var/busy = 0
- var/input_dir_name = "North"
- var/input_dir = NORTH
- var/operating = 0.0
- var/list/queue = list()
- var/queue_max_len = 12
- var/turf/BuildTurf
- var/list/L = list()
- var/list/LL = list()
- var/prod_coeff
- var/list/being_built = list()
- var/datum/research/files
-
- var/mat_efficiency = 1
- var/list/datum/design/item/autolathe/matching_designs
- var/temp_search
- var/selected_category
- var/screen = 1
- var/list/categories = list("Arms and Ammunition", "Devices", "Engineering", "General", "Medical", "Tools", "Imported")
-
- var/datum/wires/autolathe/wires = null
-
-/obj/machinery/autolathe/New()
- ..()
-
-/obj/machinery/autolathe/Initialize()
- . = ..()
- wires = new(src)
- default_apply_parts()
- RefreshParts()
- files = new /datum/research/autolathe(src)
- matching_designs = list()
-
-/obj/machinery/autolathe/Destroy()
- qdel(wires)
- wires = null
- return ..()
-
-/obj/machinery/autolathe/attack_hand(mob/user)
-
- if(..() || (disabled && !panel_open))
- to_chat(user, "\The [src] is disabled!")
- return
-
- if(shocked)
- shock(user, 50)
- else
- ui_interact(user)
-
-/obj/machinery/autolathe/dismantle()
- for(var/mat in stored_material)
- var/material/M = get_material_by_name(mat)
- if(!istype(M))
- continue
- var/obj/item/stack/material/S = new M.stack_type(get_turf(src))
- if(stored_material[mat] > S.perunit)
- S.amount = round(stored_material[mat] / S.perunit)
- else
- qdel(S)
- ..()
- return 1
-
-/obj/machinery/autolathe/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
- user.set_machine(src)
- var/data[0]
- data["screen"] = screen
- data["total_amount"] = (stored_material[DEFAULT_WALL_MATERIAL] + stored_material["glass"])
- data["max_amount"] = (storage_capacity[DEFAULT_WALL_MATERIAL] + storage_capacity["glass"])
- data["metal_amount"] = stored_material[DEFAULT_WALL_MATERIAL]
- data["glass_amount"] = stored_material["glass"]
- switch(screen)
- if(AUTOLATHE_MAIN_MENU)
- data["uid"] = "\ref[src]"
- data["categories"] = categories
- if(AUTOLATHE_CATEGORY_MENU)
- data["selected_category"] = selected_category
- var/list/designs = list()
- data["designs"] = designs
- for(var/datum/design/item/D in files.known_designs)
- if(!D.build_path || D.hidden && !hacked || selected_category != D.category)
- continue
- var/list/design = list()
- designs[++designs.len] = design
- design["name"] = D.name
- design["id"] = D.id
- design["disabled"] = disabled || !can_build(D) ? "disabled" : null
- if(ispath(D.build_path, /obj/item/stack))
- design["max_multiplier"] = min(D.maxstack, D.materials[DEFAULT_WALL_MATERIAL] ? round(stored_material[DEFAULT_WALL_MATERIAL] / D.materials[DEFAULT_WALL_MATERIAL]) : INFINITY, D.materials["glass"] ? round(stored_material["glass"] / D.materials["glass"]) : INFINITY)
- else
- design["max_multiplier"] = null
- design["materials"] = design_cost_data(D)
- if(AUTOLATHE_SEARCH_MENU)
- data["search"] = temp_search
- var/list/designs = list()
- data["designs"] = designs
- for(var/datum/design/item/D in matching_designs)
- var/list/design = list()
- designs[++designs.len] = design
- design["name"] = D.name
- design["id"] = D.id
- design["disabled"] = disabled || !can_build(D) ? "disabled" : null
- if(ispath(D.build_path, /obj/item/stack))
- design["max_multiplier"] = min(D.maxstack, D.materials[DEFAULT_WALL_MATERIAL] ? round(stored_material[DEFAULT_WALL_MATERIAL] / D.materials[DEFAULT_WALL_MATERIAL]) : INFINITY, D.materials["glass"] ? round(stored_material["glass"] / D.materials["glass"]) : INFINITY)
- else
- design["max_multiplier"] = null
- design["materials"] = design_cost_data(D)
-
- data = queue_data(data)
-
- ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
- if(!ui)
- ui = new(user, src, ui_key, "autolathe.tmpl", name, 800, 550)
- ui.set_initial_data(data)
- ui.open()
-
- return data
-
-/obj/machinery/autolathe/Topic(href, href_list)
- if(..())
- return
- add_fingerprint(usr)
-
- if(href_list["menu"])
- screen = text2num(href_list["menu"])
-
- if(href_list["category"])
- selected_category = href_list["category"]
- screen = AUTOLATHE_CATEGORY_MENU
-
- if(href_list["make"])
- BuildTurf = loc
-
- /////////////////
- //href protection
- var/datum/design/design_last_ordered
- design_last_ordered = FindDesign(href_list["make"]) //check if it's a valid design
- if(!design_last_ordered)
- return
-
- //multiplier checks : only stacks can have one and its value is 1, 10 ,25 or max_multiplier
- var/multiplier = text2num(href_list["multiplier"])
- var/max_multiplier = min(design_last_ordered.maxstack, design_last_ordered.materials[DEFAULT_WALL_MATERIAL] ?round(stored_material[DEFAULT_WALL_MATERIAL]/design_last_ordered.materials[DEFAULT_WALL_MATERIAL]):INFINITY,design_last_ordered.materials["glass"]?round(stored_material["glass"]/design_last_ordered.materials["glass"]):INFINITY)
- var/is_stack = ispath(design_last_ordered.build_path, /obj/item/stack)
-
- if(!is_stack && (multiplier > 1))
- return
- if(!(multiplier in list(1, 10, 25, max_multiplier))) //"enough materials ?" is checked in the build proc
- return
- /////////////////
-
- if((queue.len + 1) < queue_max_len)
- add_to_queue(design_last_ordered,multiplier)
- else
- to_chat(usr, "The autolathe queue is full!")
- if(!busy)
- busy = 1
- update_icon()
- process_queue()
- busy = 0
- update_icon()
-
- if(href_list["remove_from_queue"])
- var/index = text2num(href_list["remove_from_queue"])
- if(isnum(index) && ISINRANGE(index, 1, queue.len))
- remove_from_queue(index)
- if(href_list["queue_move"] && href_list["index"])
- var/index = text2num(href_list["index"])
- var/new_index = index + text2num(href_list["queue_move"])
- if(isnum(index) && isnum(new_index))
- if(ISINRANGE(new_index, 1, queue.len))
- queue.Swap(index,new_index)
- if(href_list["clear_queue"])
- queue = list()
- if(href_list["search"])
- if(href_list["to_search"])
- temp_search = href_list["to_search"]
- if(!temp_search)
- return
- matching_designs.Cut()
-
- for(var/datum/design/item/autolathe/D in files.known_designs)
- if(findtext(D.name, temp_search))
- matching_designs.Add(D)
-
- screen = AUTOLATHE_SEARCH_MENU
-
- SSnanoui.update_uis(src)
- return 1
-
-/obj/machinery/autolathe/update_icon()
- overlays.Cut()
-
- icon_state = initial(icon_state)
-
- if(panel_open)
- overlays.Add(image(icon, "[icon_state]_panel"))
- if(stat & NOPOWER)
- return
- if(busy)
- icon_state = "[icon_state]_work"
- if(!busy)
- icon_state = "[icon_state]_pause"
-
-
-
-/obj/machinery/autolathe/RefreshParts()
- ..()
- var/mb_rating = 0
- var/man_rating = 0
- for(var/obj/item/weapon/stock_parts/matter_bin/MB in component_parts)
- mb_rating += MB.rating
- for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
- man_rating += M.rating
-
- storage_capacity[DEFAULT_WALL_MATERIAL] = mb_rating * 25000
- storage_capacity["glass"] = mb_rating * 12500
- mat_efficiency = 1.1 - man_rating * 0.1// Normally, price is 1.25 the amount of material, so this shouldn't go higher than 0.6. Maximum rating of parts is 5
-
-
-/obj/machinery/autolathe/proc/design_cost_data(datum/design/D)
- var/list/data = list()
- var/coeff = get_coeff(D)
- var/has_metal = 1
- if(D.materials[DEFAULT_WALL_MATERIAL] && (stored_material[DEFAULT_WALL_MATERIAL] < (D.materials[DEFAULT_WALL_MATERIAL] * coeff)))
- has_metal = 0
- var/has_glass = 1
- if(D.materials["glass"] && (stored_material["glass"] < (D.materials["glass"] * coeff)))
- has_glass = 0
-
- data[++data.len] = list("name" = "metal", "amount" = D.materials[DEFAULT_WALL_MATERIAL] * coeff, "is_red" = !has_metal)
- data[++data.len] = list("name" = "glass", "amount" = D.materials["glass"] * coeff, "is_red" = !has_glass)
-
- return data
-
-/obj/machinery/autolathe/proc/queue_data(list/data)
- var/temp_metal = stored_material[DEFAULT_WALL_MATERIAL]
- var/temp_glass = stored_material["glass"]
- data["processing"] = being_built.len ? get_processing_line() : null
- if(istype(queue) && queue.len)
- var/list/data_queue = list()
- for(var/list/L in queue)
- var/datum/design/item/autolathe/D = L[1]
- var/list/LL = get_design_cost_as_list(D, L[2])
- data_queue[++data_queue.len] = list("name" = initial(D.name), "can_build" = can_build(D, L[2], temp_metal, temp_glass), "multiplier" = L[2])
- temp_metal = max(temp_metal - LL[1], 1)
- temp_glass = max(temp_glass - LL[2], 1)
- data["queue"] = data_queue
- data["queue_len"] = data_queue.len
- else
- data["queue"] = null
- return data
-
-/obj/machinery/autolathe/proc/get_coeff(datum/design/D)
- var/coeff = (ispath(D.build_path,/obj/item/stack) ? 1 : mat_efficiency)//stacks are unaffected by production coefficient
- return coeff
-
-/obj/machinery/autolathe/proc/build_item(datum/design/D, multiplier)
- desc = initial(desc)+"\nIt's building \a [initial(D.name)]."
- var/is_stack = ispath(D.build_path, /obj/item/stack)
- var/is_box = ispath(D.build_path, /obj/item/weapon/storage/box)
- var/coeff = get_coeff(D)
- var/metal_cost = D.materials[DEFAULT_WALL_MATERIAL]
- var/glass_cost = D.materials["glass"]
- var/power = max(2000, (metal_cost+glass_cost)*multiplier/5)
- if(can_build(D, multiplier))
- being_built = list(D, multiplier)
- use_power(power)
- update_icon()
- if(is_stack)
- var/list/materials_used = list(DEFAULT_WALL_MATERIAL=metal_cost*multiplier, "glass"=glass_cost*multiplier)
- //stored_material = list(DEFAULT_WALL_MATERIAL -= materials_used[DEFAULT_WALL_MATERIAL], "glass" -= materials_used["glass"])
- stored_material[DEFAULT_WALL_MATERIAL] -= materials_used[DEFAULT_WALL_MATERIAL]
- stored_material["glass"] -= materials_used["glass"]
- else
- var/list/materials_used = list(DEFAULT_WALL_MATERIAL=metal_cost*coeff, "glass"=glass_cost*coeff)
- stored_material[DEFAULT_WALL_MATERIAL] -= materials_used[DEFAULT_WALL_MATERIAL]
- stored_material["glass"] -= materials_used["glass"]
- SSnanoui.update_uis(src)
- sleep(32*coeff)
- flick("[initial(icon_state)]_finish", src)
- if(is_stack)
- var/obj/item/stack/S = new D.build_path(BuildTurf)
- S.amount = multiplier
- else
- var/obj/item/new_item = new D.build_path(BuildTurf)
- if(is_box)
- for(var/obj/item/L in new_item.contents)
- if(!(L.matter))
- continue
- L.matter[DEFAULT_WALL_MATERIAL] *= coeff
- L.matter["glass"] *= coeff
- else
- new_item.matter[DEFAULT_WALL_MATERIAL] *= coeff
- new_item.matter["glass"] *= coeff
- SSnanoui.update_uis(src)
- desc = initial(desc)
-
-/obj/machinery/autolathe/proc/can_build(var/datum/design/D, var/multiplier = 1, custom_metal, custom_glass)
- if(D.chemicals.len)
- return 0
-
- var/coeff = get_coeff(D)
- var/metal_amount = stored_material[DEFAULT_WALL_MATERIAL]
- if(custom_metal)
- metal_amount = custom_metal
- var/glass_amount = stored_material["glass"]
- if(custom_glass)
- glass_amount = custom_glass
-
- if(D.materials[DEFAULT_WALL_MATERIAL] && (metal_amount < (multiplier*D.materials[DEFAULT_WALL_MATERIAL] * coeff)))
- return 0
- if(D.materials["glass"] && (glass_amount < (multiplier*D.materials["glass"] * coeff)))
- return 0
- return 1
-
-/obj/machinery/autolathe/proc/get_design_cost_as_list(datum/design/D, multiplier = 1)
- var/list/OutputList = list(0,0)
- var/coeff = get_coeff(D)
- if(D.materials[DEFAULT_WALL_MATERIAL])
- OutputList[1] = (D.materials[DEFAULT_WALL_MATERIAL] * coeff)*multiplier
- if(D.materials["glass"])
- OutputList[2] = (D.materials["glass"] * coeff)*multiplier
- return OutputList
-
-/obj/machinery/autolathe/proc/get_processing_line()
- var/datum/design/D = being_built[1]
- var/multiplier = being_built[2]
- var/is_stack = (multiplier>1)
- var/output = "PROCESSING: [initial(D.name)][is_stack?" (x[multiplier])":null]"
- return output
-
-/obj/machinery/autolathe/proc/add_to_queue(D, multiplier)
- if(!istype(queue))
- queue = list()
- if(D)
- queue.Add(list(list(D,multiplier)))
- return queue.len
-
-/obj/machinery/autolathe/proc/remove_from_queue(index)
- if(!isnum(index) || !istype(queue) || (index<1 || index>queue.len))
- return 0
- queue.Cut(index,++index)
- return 1
-
-/obj/machinery/autolathe/proc/process_queue()
- var/datum/design/D = queue[1][1]
- var/multiplier = queue[1][2]
- if(!D)
- remove_from_queue(1)
- if(queue.len)
- return process_queue()
- else
- return
- while(D)
- if(stat & (NOPOWER|BROKEN))
- being_built = new /list()
- return 0
- if(!can_build(D, multiplier))
- visible_message("[bicon(src)] \The [src] beeps, \"Not enough resources. Queue processing terminated.\"")
- queue = list()
- being_built = new /list()
- return 0
-
- remove_from_queue(1)
- build_item(D,multiplier)
- D = listgetindex(listgetindex(queue, 1),1)
- multiplier = listgetindex(listgetindex(queue,1),2)
- being_built = new /list()
-
-
-/datum/research/autolathe
-
-/datum/research/autolathe/New() //Insert techs into possible_tech here. Known_tech automatically updated.
- for(var/T in typesof(/datum/tech) - /datum/tech)
- known_tech += new T(src)
- for(var/D in typesof(/datum/design) - /datum/design)
- possible_designs += new D(src)
-// generate_integrated_circuit_designs()
- RefreshResearch()
-
-
-/datum/research/autolathe/DesignHasReqs(var/datum/design/D)
- if(D.req_tech.len == 0)
- return 1
- if(D.build_type == AUTOLATHE)
- return 1
-
- else
- return 0
-
-
-/obj/machinery/autolathe/proc/AddDesignViaDisk(var/mob/user, var/datum/design/D)
- for(var/datum/design/F in files.possible_designs)
- if(F.autolathe_build != 1 || F.id != D.id)
- continue
- if(F in files.known_designs)
- to_chat(user, "This design is already exists")
- return
- if(!F.category)
- F.category = "Imported"
- files.known_designs.Add(F)
- return
-
-/obj/machinery/autolathe/proc/FindDesign(var/id)
- for(var/datum/design/item/desired_design in files.known_designs)
- if(desired_design.id == id)
- return desired_design
- return 0
-
-/obj/machinery/autolathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(busy)
- to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.")
- return
-
- if(default_deconstruction_screwdriver(user, O))
- updateUsrDialog()
- return
- if(default_deconstruction_crowbar(user, O))
- return
- if(default_part_replacement(user, O))
- return
-
- if(stat)
- return
-
- if(panel_open)
- //Don't eat multitools or wirecutters used on an open lathe.
- if(O.is_multitool() || O.is_wirecutter())
- wires.Interact(user)
- return
-
- if(O.loc != user && !(istype(O,/obj/item/stack)))
- return 0
-
- if(istype(O, /obj/item/weapon/disk))
- if(istype(O, /obj/item/weapon/disk/design_disk))
- var/obj/item/weapon/disk/design_disk/D = O
- var/datum/design/B = D.blueprint
- if(D.blueprint)
- if(B.autolathe_build == 1 || B.build_type == AUTOLATHE)
- user.visible_message("[user] begins to load \the [O] in \the [src]...", "You begin to load a design from \the [O]...", "You hear the chatter of a floppy drive.")
- busy = 1
- AddDesignViaDisk(user, D.blueprint)
- busy = 0
- else
- to_chat(user, "That disk doens't have a compatible design")
- else
- to_chat(user, "That disk does not have a design on it!")
- return
- else
- // So that people who are bad at computers don't shred their disks
- to_chat(user, "This is not the correct type of disk for the autolathe!")
- return
-
- if(is_robot_module(O))
- return 0
-
- if(istype(O,/obj/item/ammo_magazine/clip) || istype(O,/obj/item/ammo_magazine/s357) || istype(O,/obj/item/ammo_magazine/s38) || istype (O,/obj/item/ammo_magazine/s44)/* VOREstation Edit*/) // Prevents ammo recycling exploit with speedloaders.
- to_chat(user, "\The [O] is too hazardous to recycle with the autolathe!")
- return
- /* ToDo: Make this actually check for ammo and change the value of the magazine if it's empty. -Spades
- var/obj/item/ammo_magazine/speedloader = O
- if(speedloader.stored_ammo)
- to_chat(user, "\The [speedloader] is too hazardous to put back into the autolathe while there's ammunition inside of it!")
- return
- else
- speedloader.matter = list(DEFAULT_WALL_MATERIAL = 75) // It's just a hunk of scrap metal now.
- if(istype(O,/obj/item/ammo_magazine)) // This was just for immersion consistency with above.
- var/obj/item/ammo_magazine/mag = O
- if(mag.stored_ammo)
- to_chat(user, "\The [mag] is too hazardous to put back into the autolathe while there's ammunition inside of it!")
- return*/
-
- //Resources are being loaded.
- var/obj/item/eating = O
- if(!eating.matter)
- to_chat(user, "\The [eating] does not contain significant amounts of useful materials and cannot be accepted.")
- return
-
- var/filltype = 0 // Used to determine message.
- var/total_used = 0 // Amount of material used.
- var/mass_per_sheet = 0 // Amount of material constituting one sheet.
-
- for(var/material in eating.matter)
-
- if(isnull(stored_material[material]) || isnull(storage_capacity[material]))
- continue
-
- if(stored_material[material] >= storage_capacity[material])
- continue
-
- var/total_material = eating.matter[material]
-
- //If it's a stack, we eat multiple sheets.
- if(istype(eating,/obj/item/stack))
- var/obj/item/stack/stack = eating
- total_material *= stack.get_amount()
-
- if(stored_material[material] + total_material > storage_capacity[material])
- total_material = storage_capacity[material] - stored_material[material]
- filltype = 1
- else
- filltype = 2
-
- stored_material[material] += total_material
- total_used += total_material
- mass_per_sheet += eating.matter[material]
-
- if(!filltype)
- to_chat(user, "\The [src] is full. Please remove material from the autolathe in order to insert more.")
- return
- else if(filltype == 1)
- to_chat(user, "You fill \the [src] to capacity with \the [eating].")
- else
- to_chat(user, "You fill \the [src] with \the [eating].")
-
- flick("autolathe_loading", src) // Plays metal insertion animation. Work out a good way to work out a fitting animation. ~Z
-
- if(istype(eating,/obj/item/stack))
- var/obj/item/stack/stack = eating
- stack.use(max(1, round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials.
- else
- user.remove_from_mob(O)
- qdel(O)
-
- updateUsrDialog()
- return
-
-/obj/machinery/autolathe/verb/eatmaterialsnearby()
- set name = "Recycle nearby materials"
- set category = "Object"
- set src in oview(1)
-
- var/filltype = 0 // Used to determine message.
- var/total_used = 0 // Amount of material used.
- if(busy)
- visible_message("[bicon(src)]\The [src] beeps, \"Autolathe is busy. Please wait for completion of previous operation\"")
- return
- busy = 1
- for(var/obj/item/eating in get_step(src,input_dir))
- if(istype(eating,/obj/item/ammo_magazine/clip) || istype(eating,/obj/item/ammo_magazine/s357) || istype(eating,/obj/item/ammo_magazine/s38) || istype(eating,/obj/item/ammo_magazine/s44) || istype(eating,/obj/item/stack))
- continue
-
- if(!eating.matter)
- continue
-
-
- var/mass_per_sheet = 0 // Amount of material constituting one sheet.
- for(var/material in eating.matter)
-
- if(isnull(stored_material[material]) || isnull(storage_capacity[material]))
- continue
-
- if(stored_material[material] >= storage_capacity[material])
- continue
-
- var/total_material = eating.matter[material]
-
-
- if(stored_material[material] + total_material > storage_capacity[material])
- total_material = storage_capacity[material] - stored_material[material]
- filltype = 1
- else
- filltype = 2
-
- stored_material[material] += total_material
- total_used += total_material
- mass_per_sheet += eating.matter[material]
-
- if(!filltype)
- visible_message("[bicon(src)]\The [src] beeps, \"Storage is full. Operation aborted\"")
- break
-
- flick("autolathe_loading", src)
-
- if(istype(eating,/obj/item/stack))
- var/obj/item/stack/stack = eating
- stack.use(max(1, round(total_used/mass_per_sheet))) // Always use at least 1 to prevent infinite materials.
- else
- qdel(eating)
- sleep(10*mat_efficiency)
-
- busy = 0
- if(filltype == 1)
- visible_message("[bicon(src)] \The [src] beeps, \"Storage capacity full. Operation terminated. Materials recycled: [total_used]\"")
- else
- visible_message("[bicon(src)] \The [src] beeps, \"All materials recycled. Operation terminated. Materials recycled: [total_used]\"")
-
-
-
-/obj/machinery/autolathe/verb/setrecyclepos()
- set name = "Set recycle input"
- set category = "Object"
- set src in oview(1)
-
- input_dir_name = input("Which direction ?") in list("North", "South", "East", "West")
- switch(input_dir_name)
- if("North")
- input_dir = NORTH
- if("South")
- input_dir = SOUTH
- if("East")
- input_dir = EAST
- if("West")
- input_dir = WEST
- to_chat(src, "You set the material input to [input_dir_name]")
-
-
diff --git a/code/datums/autolathe/devices_1.dm b/code/datums/autolathe/devices_1.dm
deleted file mode 100644
index 875a12588a..0000000000
--- a/code/datums/autolathe/devices_1.dm
+++ /dev/null
@@ -1,51 +0,0 @@
-/datum/design/item/autolathe/devices //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "Devices" //category item goes to
-
-/datum/design/item/autolathe/devices/consolescreen
- name = "console screen"
- id = "console_screen"
- build_path = /obj/item/weapon/stock_parts/console_screen
- materials = list("glass" = 200)
-
-/datum/design/item/autolathe/devices/igniter
- name = "igniter"
- id = "igniter"
- build_path = /obj/item/device/assembly/igniter
- materials = list(DEFAULT_WALL_MATERIAL = 625, "glass" = 62)
-
-/datum/design/item/autolathe/devices/signaler
- name = "signaler"
- id = "signaler"
- build_path = /obj/item/device/assembly/signaler
- materials = list(DEFAULT_WALL_MATERIAL = 1250, "glass" = 250)
-
-/datum/design/item/autolathe/devices/sensor_infra
- name = "infrared sensor"
- id = "infrared_sensor"
- build_path = /obj/item/device/assembly/infra
- materials = list(DEFAULT_WALL_MATERIAL = 1250, "glass" = 625)
-
-/datum/design/item/autolathe/devices/sensor_prox
- name = "proximity sensor"
- id = "proximity_sensor"
- build_path = /obj/item/device/assembly/prox_sensor
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 250)
-
-/datum/design/item/autolathe/devices/beartrap
- name = "mechanical trap"
- id = "beartrap"
- build_path = /obj/item/weapon/beartrap
- materials = list(DEFAULT_WALL_MATERIAL = 23437)
-
-/datum/design/item/autolathe/devices/electropack
- name = "electropack"
- id = "electropack"
- build_path = /obj/item/device/radio/electropack
- materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 3125)
- hidden = 1
-
-/datum/design/item/autolathe/devices/timer
- name = "timer"
- id = "timer"
- build_path = /obj/item/device/assembly/timer
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 250)
\ No newline at end of file
diff --git a/code/datums/autolathe/devices_1_vr.dm b/code/datums/autolathe/devices_1_vr.dm
deleted file mode 100644
index eaadab5d4f..0000000000
--- a/code/datums/autolathe/devices_1_vr.dm
+++ /dev/null
@@ -1,5 +0,0 @@
-/datum/design/item/autolathe/devices/sleevecard
- name = "sleevecard"
- id = "sleevecard"
- build_path = /obj/item/device/sleevecard
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 5000)
diff --git a/code/datums/autolathe/engineering_1.dm b/code/datums/autolathe/engineering_1.dm
deleted file mode 100644
index e976022d33..0000000000
--- a/code/datums/autolathe/engineering_1.dm
+++ /dev/null
@@ -1,146 +0,0 @@
-/datum/design/item/autolathe/engineering //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "Engineering" //category item goes to
-
-/datum/design/item/autolathe/engineering/powercontrolmodule
- name = "power control module"
- id = "powercontrolmodule"
- build_path = /obj/item/weapon/module/power_control
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/airlockmodule
- name = "airlock electronics"
- id = "airlock_electronics"
- build_path = /obj/item/weapon/airlock_electronics
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/airalarm
- name = "air alarm electronics"
- id = "airalarm_electronics"
- build_path = /obj/item/weapon/circuitboard/airalarm
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/firealarm
- name = "fire alarm electronics"
- id = "firealarm_electronics"
- build_path = /obj/item/weapon/circuitboard/firealarm
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/statusdisplay
- name = "ai status display electronics"
- id = "statusdisplay_electronics"
- build_path = /obj/item/weapon/circuitboard/ai_status_display
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/newscaster
- name = "newscaster electronics"
- id = "newscaster_electronics"
- build_path = /obj/item/weapon/circuitboard/newscaster
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/atm
- name = "atm electronics"
- id = "atm_electronics"
- build_path = /obj/item/weapon/circuitboard/atm
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/intercom
- name = "intercom electronics"
- id = "intercom_electronics"
- build_path = /obj/item/weapon/circuitboard/intercom
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/holopad
- name = "holopad electronics"
- id = "holopad_electronics"
- build_path = /obj/item/weapon/circuitboard/holopad
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/guestpass
- name = "guestpass console electronics"
- id = "guestpass_electronics"
- build_path = /obj/item/weapon/circuitboard/guestpass
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/entertainment
- name = "entertainment camera electronics"
- id = "entertainmentcamera_electronics"
- build_path = /obj/item/weapon/circuitboard/security/telescreen/entertainment
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/keycard_auth
- name = "keycard authenticator electronics"
- id = "keycardauth_electronics"
- build_path = /obj/item/weapon/circuitboard/keycard_auth
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/photocopier
- name = "photocopĂer electronics"
- id = "photocopier_electronics"
- build_path = /obj/item/weapon/circuitboard/photocopier
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/fax
- name = "fax machine electronics"
- id = "fax_machine_electronics"
- build_path = /obj/item/weapon/circuitboard/fax
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/papershredder
- name = "paper shredder electronics"
- id = "papershredder_electronics"
- build_path = /obj/item/weapon/circuitboard/papershredder
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-/* Commented out for build errors
-/datum/design/item/autolathe/engineering/microwave
- name = "microwave electronics"
- id = "microwave_electronics"
- build_path = /obj/item/weapon/circuitboard/microwave
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-*/
-/datum/design/item/autolathe/engineering/washing
- name = "washing machine electronics"
- id = "washingmachine_electronics"
- build_path = /obj/item/weapon/circuitboard/washing
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/request
- name = "request console electronics"
- id = "requestconsole_electronics"
- build_path = /obj/item/weapon/circuitboard/request
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/motor
- name = "motor"
- id = "motor"
- build_path = /obj/item/weapon/stock_parts/motor
- materials = list(DEFAULT_WALL_MATERIAL = 75, "glass" = 12)
-
-/datum/design/item/autolathe/engineering/gear
- name = "gear"
- id = "gear"
- build_path = /obj/item/weapon/stock_parts/gear
- materials = list(DEFAULT_WALL_MATERIAL = 62)
-
-/datum/design/item/autolathe/engineering/spring
- name = "spring"
- id = "spring"
- build_path = /obj/item/weapon/stock_parts/spring
- materials = list(DEFAULT_WALL_MATERIAL = 50)
-
-/datum/design/item/autolathe/engineering/rcd_ammo
- name = "matter cartridge"
- id = "rcd_ammo"
- build_path = /obj/item/weapon/rcd_ammo
- materials = list(DEFAULT_WALL_MATERIAL = 30000, "glass" = 15000)
-
-/datum/design/item/autolathe/engineering/rcd
- name = "rapid construction device"
- id = "rcd"
- build_path = /obj/item/weapon/rcd
- materials = list(DEFAULT_WALL_MATERIAL = 62500)
-
-/datum/design/item/autolathe/engineering/camera_assembly
- name = "camera assembly"
- id = "camera_assembly"
- build_path = /obj/item/weapon/camera_assembly
- materials = list(DEFAULT_WALL_MATERIAL = 875, "glass" = 375)
diff --git a/code/datums/autolathe/engineering_1_vr.dm b/code/datums/autolathe/engineering_1_vr.dm
deleted file mode 100644
index 21bf2e632f..0000000000
--- a/code/datums/autolathe/engineering_1_vr.dm
+++ /dev/null
@@ -1,11 +0,0 @@
-/datum/design/item/autolathe/engineering/timeclock
- name = "timeclock electronics"
- id = "timeclock_electronics"
- build_path = /obj/item/weapon/circuitboard/timeclock
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
-
-/datum/design/item/autolathe/engineering/id_restorer
- name = "ID restoration console electronics"
- id = "idrestorer_electronics"
- build_path = /obj/item/weapon/circuitboard/id_restorer
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)
diff --git a/code/datums/autolathe/general_1.dm b/code/datums/autolathe/general_1.dm
deleted file mode 100644
index 2b99827dd2..0000000000
--- a/code/datums/autolathe/general_1.dm
+++ /dev/null
@@ -1,209 +0,0 @@
-/datum/design/item/autolathe/general //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "General" //category item goes to
-
-/datum/design/item/autolathe/general/bucket
- name = "bucket"
- id = "bucket"
- build_path = /obj/item/weapon/reagent_containers/glass/bucket
- materials = list(DEFAULT_WALL_MATERIAL = 250)
-
-
-/datum/design/item/autolathe/general/cooler_bottle
- name = "water cooler bottle"
- id = "cooler_bottle"
- build_path = /obj/item/weapon/reagent_containers/glass/cooler_bottle
- materials = list(DEFAULT_WALL_MATERIAL = 15000)
-
-/datum/design/item/autolathe/general/drinkingglass_square
- name = "half-pint glass"
- id = "halfpint_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/square
- materials = list("glass" = 75)
-
-/datum/design/item/autolathe/general/drinkingglass_rocks
- name = "rocks glass"
- id = "rocks_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks
- materials = list("glass" = 50)
-
-/datum/design/item/autolathe/general/drinkingglass_shake
- name = "milkshake glass"
- id = "milkshake_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/shake
- materials = list("glass" = 37)
-
-/datum/design/item/autolathe/general/drinkingglass_cocktail
- name = "cocktail glass"
- id = "cocktail_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail
- materials = list("glass" = 37)
-
-/datum/design/item/autolathe/general/drinkingglass_shot
- name = "shot glass"
- id = "shot_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/shot
- materials = list("glass" = 75)
-
-/datum/design/item/autolathe/general/drinkingglass_pint
- name = "pint glass"
- id = "pint_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/pint
- materials = list("glass" = 150)
-
-/datum/design/item/autolathe/general/drinkingglass_mug
- name = "glass mug"
- id = "mug_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/mug
- materials = list("glass" = 100)
-
-/datum/design/item/autolathe/general/drinkingglass_wine
- name = "wine glass"
- id = "wine_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/wine
- materials = list("glass" = 62)
-
-/datum/design/item/autolathe/general/flashlight
- name = "flashlight"
- id = "flashlight"
- build_path = /obj/item/device/flashlight
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 25)
-
-
-/datum/design/item/autolathe/general/floor_light
- name = "floor light"
- id = "floor_light"
- build_path = /obj/machinery/floor_light
- materials = list(DEFAULT_WALL_MATERIAL = 3125, "glass" = 3437)
-
-/datum/design/item/autolathe/general/extinguisher
- name = "fire extinguisher"
- id = "fire_extinguisher"
- build_path = /obj/item/weapon/extinguisher
- materials = list(DEFAULT_WALL_MATERIAL = 112)
-
-/datum/design/item/autolathe/general/jar
- name = "jar"
- id = "glass_jar"
- build_path = /obj/item/glass_jar
- materials = list(DEFAULT_WALL_MATERIAL = 250)
-
-/datum/design/item/autolathe/general/radio_headset
- name = "radio headset"
- id = "radio_headset"
- build_path = /obj/item/device/radio/headset
- materials = list(DEFAULT_WALL_MATERIAL = 93)
-
-/datum/design/item/autolathe/general/radio_bounced
- name = "station bounced radio"
- id = "radio_bounced"
- build_path = /obj/item/device/radio/off
- materials = list(DEFAULT_WALL_MATERIAL = 93, "glass" = 31)
-
-/datum/design/item/autolathe/general/suit_cooler
- name = "suit cooling unit"
- id = "suit_cooler"
- build_path = /obj/item/device/suit_cooling_unit
- materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 4375)
-
-/datum/design/item/autolathe/general/weldermask
- name = "welding mask"
- id = "weldermask"
- build_path = /obj/item/clothing/head/welding
- materials = list(DEFAULT_WALL_MATERIAL = 3750, "glass" = 1250)
-
-/datum/design/item/autolathe/general/metal
- name = "steel sheets"
- id = "steel_sheets"
- build_path = /obj/item/stack/material/steel
- materials = list(DEFAULT_WALL_MATERIAL = 2000)
- maxstack = 50
-
-/datum/design/item/autolathe/general/glass
- name = "glass sheets"
- id = "glass_sheets"
- build_path = /obj/item/stack/material/glass
- materials = list("glass" = 2000)
- maxstack = 50
-
-/datum/design/item/autolathe/general/rglass
- name = "reinforced glass sheets"
- id = "reinforcedglass_sheets"
- build_path = /obj/item/stack/material/glass/reinforced
- materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 2000)
- maxstack = 50
-
-/datum/design/item/autolathe/general/rods
- name = "metal rods"
- id = "metal_rods"
- build_path = /obj/item/stack/rods
- materials = list(DEFAULT_WALL_MATERIAL = 500)
- maxstack = 60
-
-/datum/design/item/autolathe/general/spraybottle
- name = "empty spray bottle"
- id = "spraybottle"
- build_path = /obj/item/weapon/reagent_containers/spray
- materials = list(DEFAULT_WALL_MATERIAL = 375, "glass" = 375)
-
-/datum/design/item/autolathe/general/knife
- name = "kitchen knife"
- id = "kitchen_knife"
- build_path = /obj/item/weapon/material/knife
- materials = list(DEFAULT_WALL_MATERIAL = 375)
-
-/datum/design/item/autolathe/general/taperecorder
- name = "tape recorder"
- id = "taperecorder"
- build_path = /obj/item/device/taperecorder
- materials = list(DEFAULT_WALL_MATERIAL = 75, "glass" = 37)
-
-/datum/design/item/autolathe/general/light_tube
- name = "light tube"
- id = "light_tube"
- build_path = /obj/item/weapon/light/tube
- materials = list("glass" = 125)
-
-/datum/design/item/autolathe/general/light_bulb
- name = "light bulb"
- id = "light_bulb"
- build_path = /obj/item/weapon/light/bulb
- materials = list("glass" = 125)
-
-/datum/design/item/autolathe/general/ashtray_glass
- name = "glass ashtray"
- id = "ashtray_glass"
- build_path = /obj/item/weapon/material/ashtray/glass
- materials = list("glass" = 250)
-
-/datum/design/item/autolathe/general/weldinggoggles
- name = "welding goggles"
- id = "weldinggoggles"
- build_path = /obj/item/clothing/glasses/welding
- materials = list(DEFAULT_WALL_MATERIAL = 1875, "glass" = 1250)
-
-/datum/design/item/autolathe/general/maglight
- name = "maglight"
- id = "maglight"
- build_path = /obj/item/device/flashlight/maglight
- materials = list(DEFAULT_WALL_MATERIAL = 250, "glass" = 62)
-
-/datum/design/item/autolathe/general/emergency_cell
- name = "light fixture battery"
- id = "emergency_cell"
- build_path = /obj/item/weapon/cell/emergency_light
- materials = list("glass" = 25)
-
-/datum/design/item/autolathe/general/handcuffs
- name = "handcuffs"
- id = "handcuffs"
- build_path = /obj/item/weapon/handcuffs
- materials = list(DEFAULT_WALL_MATERIAL = 625)
- hidden = 1
-
-/datum/design/item/autolathe/general/legcuffs
- name = "legcuffs"
- id = "legcuffs"
- build_path = /obj/item/weapon/handcuffs/legcuffs
- materials = list(DEFAULT_WALL_MATERIAL = 625)
- hidden = 1
-
diff --git a/code/datums/autolathe/general_1_vr.dm b/code/datums/autolathe/general_1_vr.dm
deleted file mode 100644
index 23c0f2b3b0..0000000000
--- a/code/datums/autolathe/general_1_vr.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-/datum/design/item/autolathe/general/holocollar
- name = "Holo-collar"
- id = "holocollar"
- build_path = /obj/item/clothing/accessory/collar/holo
- materials = list(DEFAULT_WALL_MATERIAL = 62)
-
-/datum/design/item/autolathe/general/metaglass
- name = "metamorphic glass"
- id = "metaglass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/metaglass
- materials = list("glass" = 625)
-
-/datum/design/item/autolathe/general/drinkingglass_carafe
- name = "glass carafe"
- id = "carafe_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/carafe
- materials = list("glass" = 62)
-
-/datum/design/item/autolathe/general/drinkingglass_pitcher
- name = "pitcher"
- id = "pitcher_glass"
- build_path = /obj/item/weapon/reagent_containers/food/drinks/glass2/pitcher
- materials = list(DEFAULT_WALL_MATERIAL = 62)
\ No newline at end of file
diff --git a/code/datums/autolathe/medical_1.dm b/code/datums/autolathe/medical_1.dm
deleted file mode 100644
index 728e510e2c..0000000000
--- a/code/datums/autolathe/medical_1.dm
+++ /dev/null
@@ -1,71 +0,0 @@
-/datum/design/item/autolathe/medical //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "Medical" //category item goes to
-
-/datum/design/item/autolathe/medical/scalpel
- name = "scalpel"
- id = "scalpel"
- build_path = /obj/item/weapon/surgical/scalpel
- materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 6250)
-
-/datum/design/item/autolathe/medical/circularsaw
- name = "circular saw"
- id = "circularsaw"
- build_path = /obj/item/weapon/surgical/circular_saw
- materials = list(DEFAULT_WALL_MATERIAL = 25000, "glass" = 12500)
-
-/datum/design/item/autolathe/medical/surgicaldrill
- name = "surgical drill"
- id = "surgicaldrill"
- build_path = /obj/item/weapon/surgical/surgicaldrill
- materials = list(DEFAULT_WALL_MATERIAL = 18750, "glass" = 12500)
-
-/datum/design/item/autolathe/medical/retractor
- name = "retractor"
- id = "retractor"
- build_path = /obj/item/weapon/surgical/retractor
- materials = list(DEFAULT_WALL_MATERIAL = 12500, "glass" = 6250)
-
-/datum/design/item/autolathe/medical/cautery
- name = "cautery"
- id = "cautery"
- build_path = /obj/item/weapon/surgical/cautery
- materials = list(DEFAULT_WALL_MATERIAL = 6250, "glass" = 3125)
-
-/datum/design/item/autolathe/medical/hemostat
- name = "hemostat"
- id = "hemostat"
- build_path = /obj/item/weapon/surgical/hemostat
- materials = list(DEFAULT_WALL_MATERIAL = 6250, "glass" = 3125)
-
-/datum/design/item/autolathe/medical/beaker
- name = "glass beaker"
- id = "beaker"
- build_path = /obj/item/weapon/reagent_containers/glass/beaker
- materials = list("glass" = 625)
-
-/datum/design/item/autolathe/medical/large_beaker
- name = "large glass beaker"
- id = "large_beaker"
- build_path = /obj/item/weapon/reagent_containers/glass/beaker/large
- materials = list("glass" = 1300)
-
-/datum/design/item/autolathe/medical/vial
- name = "glass vial"
- id = "vial"
- build_path = /obj/item/weapon/reagent_containers/glass/beaker/vial
- materials = list("glass" = 312)
-
-/datum/design/item/autolathe/medical/syringe
- name = "syringe"
- id = "syringe"
- build_path = /obj/item/weapon/reagent_containers/syringe
- materials = list("glass" = 187)
-
-/datum/design/item/autolathe/medical/implanter
- name = "implanter"
- id = "implanter"
- build_path = /obj/item/weapon/implanter
- materials = list(DEFAULT_WALL_MATERIAL = 1250, "glass" = 1250)
-
-
-
diff --git a/code/datums/autolathe/medical_1_vr.dm b/code/datums/autolathe/medical_1_vr.dm
deleted file mode 100644
index bdfee8d8a3..0000000000
--- a/code/datums/autolathe/medical_1_vr.dm
+++ /dev/null
@@ -1,5 +0,0 @@
-/datum/design/item/autolathe/medical/autoinjector
- name = "empty autoinjector"
- id = "autoinjector"
- build_path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/empty
- materials = list(DEFAULT_WALL_MATERIAL = 100)
\ No newline at end of file
diff --git a/code/datums/autolathe/tools_1.dm b/code/datums/autolathe/tools_1.dm
deleted file mode 100644
index 8251300c65..0000000000
--- a/code/datums/autolathe/tools_1.dm
+++ /dev/null
@@ -1,70 +0,0 @@
-/datum/design/item/autolathe/tools //Datum for object designs, used in construction //IDs of that techs the object originated from and the minimum level requirements.
- category = "Tools" //category item goes to
-
-/datum/design/item/autolathe/tools/crowbar
- name = "crowbar"
- id = "crowbar"
- build_path = /obj/item/weapon/tool/crowbar
- materials = list(DEFAULT_WALL_MATERIAL = 62)
-
-/datum/design/item/autolathe/tools/multitool
- name = "multitool"
- id = "multitool"
- build_path = /obj/item/device/multitool
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 25)
-
-/* Causes build errors 2020-05-13 - izac112
-/datum/design/item/autolathe/tools/t_scanner
- name = "T-ray scanner"
- id = "t_scanner"
- build_path = /obj/item/device/t_scanner
- materials = list(DEFAULT_WALL_MATERIAL = 187)
-*/
-/datum/design/item/autolathe/tools/weldertool
- name = "welding tool"
- id = "weldertool"
- build_path = /obj/item/weapon/weldingtool
- materials = list(DEFAULT_WALL_MATERIAL = 87, "glass" = 37)
-
-/datum/design/item/autolathe/tools/electric_welder
- name = "electric welding tool"
- id = "electric_welder"
- build_path = /obj/item/weapon/weldingtool/electric/unloaded
- materials = list(DEFAULT_WALL_MATERIAL = 87, "glass" = 37)
- hidden = 1
-
-/datum/design/item/autolathe/tools/screwdriver
- name = "screwdriver"
- id = "screwdriver"
- build_path = /obj/item/weapon/tool/screwdriver
- materials = list(DEFAULT_WALL_MATERIAL = 93)
-
-/datum/design/item/autolathe/tools/wirecutters
- name = "wirecutters"
- id = "wirecutters"
- build_path = /obj/item/weapon/tool/wirecutters
- materials = list(DEFAULT_WALL_MATERIAL = 100)
-
-/datum/design/item/autolathe/tools/wrench
- name = "wrench"
- id = "wrench"
- build_path = /obj/item/weapon/tool/wrench
- materials = list(DEFAULT_WALL_MATERIAL = 187)
-
-/datum/design/item/autolathe/tools/hatchet
- name = "hatchet"
- id = "hatchet"
- build_path = /obj/item/weapon/material/knife/machete/hatchet
- materials = list(DEFAULT_WALL_MATERIAL = 500)
-
-/datum/design/item/autolathe/tools/minihoe
- name = "mini hoe"
- id = "minihoe"
- build_path = /obj/item/weapon/material/minihoe
- materials = list(DEFAULT_WALL_MATERIAL = 625)
-
-/datum/design/item/autolathe/tools/welder_industrial
- name = "industrial welding tool"
- id = "welder_industrial"
- build_path = /obj/item/weapon/weldingtool/largetank
- materials = list(DEFAULT_WALL_MATERIAL = 87, "glass" = 75)
diff --git a/code/datums/autolathe/tools_1_vr.dm b/code/datums/autolathe/tools_1_vr.dm
deleted file mode 100644
index 3dc7df4a6c..0000000000
--- a/code/datums/autolathe/tools_1_vr.dm
+++ /dev/null
@@ -1,5 +0,0 @@
-/datum/design/item/autolathe/tools/prybar
- name = "prybar"
- id = "prybar"
- build_path = /obj/item/weapon/tool/prybar
- materials = list(DEFAULT_WALL_MATERIAL = 37)
diff --git a/code/datums/autolathe/tools_1_yw.dm b/code/datums/autolathe/tools_1_yw.dm
deleted file mode 100644
index fca7a493a1..0000000000
--- a/code/datums/autolathe/tools_1_yw.dm
+++ /dev/null
@@ -1,15 +0,0 @@
-/datum/design/item/autolathe/tools/ice_pick
- name = "ice pick"
- id = "ice_pick"
- build_path = /obj/item/weapon/ice_pick
- materials = list(DEFAULT_WALL_MATERIAL = 15000)
-
-/datum/design/item/autolathe/tools/shovel
- name = "shovel"
- id = "shovel"
- build_path = /obj/item/weapon/shovel
- materials = list(DEFAULT_WALL_MATERIAL = 62)
-
-
-
-
diff --git a/code/modules/power/tesla/telsa_construction.dm b/code/modules/power/tesla/telsa_construction.dm
index 5a190e8bda..ba7b3c4d0e 100644
--- a/code/modules/power/tesla/telsa_construction.dm
+++ b/code/modules/power/tesla/telsa_construction.dm
@@ -1,33 +1,31 @@
-//////////////////////////
-// Circuits and Research
-//////////////////////////
-
-// Tesla coils are built as machines using a circuit researchable in RnD
-/obj/item/weapon/circuitboard/tesla_coil
- name = T_BOARD("tesla coil")
- build_path = /obj/machinery/power/tesla_coil
- board_type = new /datum/frame/frame_types/machine
- origin_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
- req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
-
-/datum/design/circuit/tesla_coil
- name = "Machine Design (Tesla Coil Board)"
- desc = "The circuit board for a tesla coil."
- id = "tesla_coil"
- build_path = /obj/item/weapon/circuitboard/tesla_coil
- req_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
- sort_string = "MAAAC"
-
-// Grounding rods can be built as machines using a circuit made in an autolathe.
-/obj/item/weapon/circuitboard/grounding_rod
- name = T_BOARD("grounding rod")
- build_path = /obj/machinery/power/grounding_rod
- board_type = new /datum/frame/frame_types/machine
- matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
- req_components = list()
-
-/datum/design/item/autolathe/engineering/grounding_rod //yw add turned into a design for new autolathe
- name = "grouding rod electronics"
- id = "grounding_rods"
- build_path = /obj/item/weapon/circuitboard/grounding_rod
- materials = list(DEFAULT_WALL_MATERIAL = 62, "glass" = 62)// yw add end turned into a design for new autolathe
+//////////////////////////
+// Circuits and Research
+//////////////////////////
+
+// Tesla coils are built as machines using a circuit researchable in RnD
+/obj/item/weapon/circuitboard/tesla_coil
+ name = T_BOARD("tesla coil")
+ build_path = /obj/machinery/power/tesla_coil
+ board_type = new /datum/frame/frame_types/machine
+ origin_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
+ req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
+
+/datum/design/circuit/tesla_coil
+ name = "Machine Design (Tesla Coil Board)"
+ desc = "The circuit board for a tesla coil."
+ id = "tesla_coil"
+ build_path = /obj/item/weapon/circuitboard/tesla_coil
+ req_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
+ sort_string = "MAAAC"
+
+// Grounding rods can be built as machines using a circuit made in an autolathe.
+/obj/item/weapon/circuitboard/grounding_rod
+ name = T_BOARD("grounding rod")
+ build_path = /obj/machinery/power/grounding_rod
+ board_type = new /datum/frame/frame_types/machine
+ matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
+ req_components = list()
+
+/datum/category_item/autolathe/engineering/grounding_rod
+ name = "grounding rod electronics"
+ path = /obj/item/weapon/circuitboard/grounding_rod
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 708def291d..b150d04cfb 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -32,9 +32,6 @@ other types of metals and chemistry for reagents).
var/list/category = list() //Primarily used for Mech Fabricators, but can be used for anything.
var/sort_string = "ZZZZZ" //Sorting order
var/search_metadata // Optional string that interfaces can use as part of search filters. See- item/borg/upgrade/ai and the Exosuit Fabs.
- var/maxstack = 1 //YW Edit, used by autolathe, says how many stacks a item can have or the limit of how many you can spawn at once
- var/autolathe_build = 0 //YW Edit, makes other designs able to be built or added in autolathe, be via design disk or something else(added due to can't have two designs with same build_path without unit test getting angry)
- var/hidden = 0 //YW Edit, Used by autolathe, says if an item needs the autolathe to be hacked in order to appear
/datum/design/New()
..()
diff --git a/code/modules/research/designs/weapons.dm b/code/modules/research/designs/weapons.dm
index 9ba1ce297f..b4b12eff90 100644
--- a/code/modules/research/designs/weapons.dm
+++ b/code/modules/research/designs/weapons.dm
@@ -1,258 +1,257 @@
-/datum/design/item/weapon/AssembleDesignName()
- ..()
- name = "Weapon prototype ([item_name])"
-
-/datum/design/item/weapon/ammo/AssembleDesignName()
- ..()
- name = "Weapon ammo prototype ([item_name])"
-
-/datum/design/item/weapon/AssembleDesignDesc()
- if(!desc)
- if(build_path)
- var/obj/item/I = build_path
- desc = initial(I.desc)
- ..()
-
-// Energy weapons
-
-/datum/design/item/weapon/energy/AssembleDesignName()
- ..()
- name = "Energy weapon prototype ([item_name])"
-
-/datum/design/item/weapon/energy/stunrevolver
- id = "stunrevolver"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
- build_path = /obj/item/weapon/gun/energy/stunrevolver
- sort_string = "MAAAA"
-
-/datum/design/item/weapon/energy/nuclear_gun
- id = "nuclear_gun"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "uranium" = 500)
- build_path = /obj/item/weapon/gun/energy/gun/nuclear
- sort_string = "MAAAB"
-
-/datum/design/item/weapon/energy/phoronpistol
- id = "ppistol"
- req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "phoron" = 3000)
- build_path = /obj/item/weapon/gun/energy/toxgun
- sort_string = "MAAAC"
-
-/datum/design/item/weapon/energy/lasercannon
- desc = "The lasing medium of this prototype is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core."
- id = "lasercannon"
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 1000, "diamond" = 2000)
- build_path = /obj/item/weapon/gun/energy/lasercannon
- sort_string = "MAAAD"
-
-/datum/design/item/weapon/energy/decloner
- id = "decloner"
- req_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 7, TECH_BIO = 5, TECH_POWER = 6)
- materials = list("gold" = 5000,"uranium" = 10000)
- build_path = /obj/item/weapon/gun/energy/decloner
- sort_string = "MAAAE"
-
-/datum/design/item/weapon/energy/temp_gun
- desc = "A gun that shoots high-powered glass-encased energy temperature bullets."
- id = "temp_gun"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 500, "silver" = 3000)
- build_path = /obj/item/weapon/gun/energy/temperature
- sort_string = "MAAAF"
-
-/datum/design/item/weapon/energy/flora_gun
- id = "flora_gun"
- req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 500, "uranium" = 500)
- build_path = /obj/item/weapon/gun/energy/floragun
- sort_string = "MAAAG"
-
-// Ballistic weapons
-
-/datum/design/item/weapon/ballistic/AssembleDesignName()
- ..()
- name = "Ballistic weapon prototype ([item_name])"
-
-/datum/design/item/weapon/ballistic/advanced_smg
- id = "smg"
- desc = "An advanced 9mm SMG with a reflective laser optic."
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 8000, "silver" = 2000, "diamond" = 1000)
- build_path = /obj/item/weapon/gun/projectile/automatic/advanced_smg
- sort_string = "MABAA"
-
-// Ballistic ammo
-
-/datum/design/item/weapon/ballistic/ammo/AssembleDesignName()
- ..()
- name = "Ballistic weapon ammo prototype ([name])"
-
-/datum/design/item/weapon/ballistic/ammo/ammo_9mmAdvanced
- name = "9mm magazine"
- id = "ammo_9mm"
- desc = "A 21 round magazine for an advanced 9mm SMG."
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 3750, "silver" = 100) // Requires silver for proprietary magazines! Or something.
- build_path = /obj/item/ammo_magazine/m9mmAdvanced
- sort_string = "MABBA"
-
-/datum/design/item/weapon/ballistic/ammo/stunshell
- name = "stun shells"
- desc = "A stunning shell for a shotgun."
- id = "stunshell"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
- build_path = /obj/item/weapon/storage/box/stunshells
- sort_string = "MABBB"
- autolathe_build = 1 //Ywedit
-
-/datum/design/item/weapon/ballistic/ammo/empshell
- name = "emp shells"
- desc = "An electromagnetic shell for a shotgun."
- id = "empshell"
- req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_URANIUM = 1000)
- build_path = /obj/item/weapon/storage/box/empshells
- sort_string = "MABBC"
-
-// Phase weapons
-
-/datum/design/item/weapon/phase/AssembleDesignName()
- ..()
- name = "Phase weapon prototype ([item_name])"
-
-/* //VOREStation Removal Start
-/datum/design/item/weapon/phase/phase_pistol
- id = "phasepistol"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 4000)
- build_path = /obj/item/weapon/gun/energy/phasegun/pistol
- sort_string = "MACAA"
-
-/datum/design/item/weapon/phase/phase_carbine
- id = "phasecarbine"
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2, TECH_POWER = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 1500)
- build_path = /obj/item/weapon/gun/energy/phasegun
- sort_string = "MACAB"
-
-/datum/design/item/weapon/phase/phase_rifle
- id = "phaserifle"
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
- materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 2000, "silver" = 500)
- build_path = /obj/item/weapon/gun/energy/phasegun/rifle
- sort_string = "MACAC"
-
-/datum/design/item/weapon/phase/phase_cannon
- id = "phasecannon"
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4, TECH_POWER = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "silver" = 1000, "diamond" = 750)
- build_path = /obj/item/weapon/gun/energy/phasegun/cannon
- sort_string = "MACAD"
-*/ //VOREStation Removal End
-
-// Other weapons
-
-/datum/design/item/weapon/rapidsyringe
- id = "rapidsyringe"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
- build_path = /obj/item/weapon/gun/launcher/syringe/rapid
- sort_string = "MADAA"
-
-/datum/design/item/weapon/dartgun
- desc = "A gun that fires small hollow chemical-payload darts."
- id = "dartgun_r"
- req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_BIO = 4, TECH_MAGNET = 3, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "gold" = 5000, "silver" = 2500, "glass" = 750)
- build_path = /obj/item/weapon/gun/projectile/dartgun/research
- sort_string = "MADAB"
-
-/datum/design/item/weapon/chemsprayer
- desc = "An advanced chem spraying device."
- id = "chemsprayer"
- req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
- build_path = /obj/item/weapon/reagent_containers/spray/chemsprayer
- sort_string = "MADAC"
-
-/datum/design/item/weapon/fuelrod
- id = "fuelrod_gun"
- req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 5)
- materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "gold" = 500, "silver" = 500, "uranium" = 1000, "phoron" = 3000, "diamond" = 1000)
- build_path = /obj/item/weapon/gun/magnetic/fuelrod
- sort_string = "MADAD"
-
-// Ammo for those
-
-/datum/design/item/weapon/ammo/dartgunmag_small
- id = "dartgun_mag_s"
- req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 300, "gold" = 100, "silver" = 100, "glass" = 300)
- build_path = /obj/item/ammo_magazine/chemdart/small
- sort_string = "MADBA"
-
-/datum/design/item/weapon/ammo/dartgun_ammo_small
- id = "dartgun_ammo_s"
- req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 50, "gold" = 30, "silver" = 30, "glass" = 50)
- build_path = /obj/item/ammo_casing/chemdart/small
- sort_string = "MADBB"
-
-/datum/design/item/weapon/ammo/dartgunmag_med
- id = "dartgun_mag_m"
- req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "gold" = 150, "silver" = 150, "diamond" = 200, "glass" = 400)
- build_path = /obj/item/ammo_magazine/chemdart
- sort_string = "MADBC"
-
-/datum/design/item/weapon/ammo/dartgun_ammo_med
- id = "dartgun_ammo_m"
- req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
- materials = list(DEFAULT_WALL_MATERIAL = 80, "gold" = 40, "silver" = 40, "glass" = 60)
- build_path = /obj/item/ammo_casing/chemdart
- sort_string = "MADBD"
-
-/datum/design/item/weapon/ammo/flechette
- id = "magnetic_ammo"
- req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4, TECH_MAGNET = 4)
- materials = list(DEFAULT_WALL_MATERIAL = 500, "gold" = 300, "glass" = 150, MAT_PHORON = 100)
- build_path = /obj/item/weapon/magnetic_ammo
- sort_string = "MADBE"
-
-// Melee weapons
-
-/datum/design/item/weapon/melee/AssembleDesignName()
- ..()
- name = "Melee weapon prototype ([item_name])"
-
-/datum/design/item/weapon/melee/esword
- name = "Portable Energy Blade"
- id = "chargesword"
- req_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 4, TECH_ENGINEERING = 5, TECH_ILLEGAL = 4, TECH_ARCANE = 1)
- materials = list(MAT_PLASTEEL = 3500, "glass" = 1000, MAT_LEAD = 2250, MAT_METALHYDROGEN = 500)
- build_path = /obj/item/weapon/melee/energy/sword/charge
- sort_string = "MBAAA"
-
-/datum/design/item/weapon/melee/eaxe
- name = "Energy Axe"
- id = "chargeaxe"
- req_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 5, TECH_ENGINEERING = 4, TECH_ILLEGAL = 4)
- materials = list(MAT_PLASTEEL = 3500, MAT_OSMIUM = 2000, MAT_LEAD = 2000, MAT_METALHYDROGEN = 500)
- build_path = /obj/item/weapon/melee/energy/axe/charge
- sort_string = "MBAAB"
-
-// Grenade stuff
-/datum/design/item/weapon/grenade/AssembleDesignName()
- ..()
- name = "Grenade casing prototype ([item_name])"
-
-/datum/design/item/weapon/grenade/large_grenade
- id = "large_Grenade"
- req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
- materials = list(DEFAULT_WALL_MATERIAL = 3000)
- build_path = /obj/item/weapon/grenade/chem_grenade/large
- sort_string = "MCAAA"
+/datum/design/item/weapon/AssembleDesignName()
+ ..()
+ name = "Weapon prototype ([item_name])"
+
+/datum/design/item/weapon/ammo/AssembleDesignName()
+ ..()
+ name = "Weapon ammo prototype ([item_name])"
+
+/datum/design/item/weapon/AssembleDesignDesc()
+ if(!desc)
+ if(build_path)
+ var/obj/item/I = build_path
+ desc = initial(I.desc)
+ ..()
+
+// Energy weapons
+
+/datum/design/item/weapon/energy/AssembleDesignName()
+ ..()
+ name = "Energy weapon prototype ([item_name])"
+
+/datum/design/item/weapon/energy/stunrevolver
+ id = "stunrevolver"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ build_path = /obj/item/weapon/gun/energy/stunrevolver
+ sort_string = "MAAAA"
+
+/datum/design/item/weapon/energy/nuclear_gun
+ id = "nuclear_gun"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 5, TECH_POWER = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "uranium" = 500)
+ build_path = /obj/item/weapon/gun/energy/gun/nuclear
+ sort_string = "MAAAB"
+
+/datum/design/item/weapon/energy/phoronpistol
+ id = "ppistol"
+ req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "phoron" = 3000)
+ build_path = /obj/item/weapon/gun/energy/toxgun
+ sort_string = "MAAAC"
+
+/datum/design/item/weapon/energy/lasercannon
+ desc = "The lasing medium of this prototype is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core."
+ id = "lasercannon"
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 1000, "diamond" = 2000)
+ build_path = /obj/item/weapon/gun/energy/lasercannon
+ sort_string = "MAAAD"
+
+/datum/design/item/weapon/energy/decloner
+ id = "decloner"
+ req_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 7, TECH_BIO = 5, TECH_POWER = 6)
+ materials = list("gold" = 5000,"uranium" = 10000)
+ build_path = /obj/item/weapon/gun/energy/decloner
+ sort_string = "MAAAE"
+
+/datum/design/item/weapon/energy/temp_gun
+ desc = "A gun that shoots high-powered glass-encased energy temperature bullets."
+ id = "temp_gun"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 500, "silver" = 3000)
+ build_path = /obj/item/weapon/gun/energy/temperature
+ sort_string = "MAAAF"
+
+/datum/design/item/weapon/energy/flora_gun
+ id = "flora_gun"
+ req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 500, "uranium" = 500)
+ build_path = /obj/item/weapon/gun/energy/floragun
+ sort_string = "MAAAG"
+
+// Ballistic weapons
+
+/datum/design/item/weapon/ballistic/AssembleDesignName()
+ ..()
+ name = "Ballistic weapon prototype ([item_name])"
+
+/datum/design/item/weapon/ballistic/advanced_smg
+ id = "smg"
+ desc = "An advanced 9mm SMG with a reflective laser optic."
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 8000, "silver" = 2000, "diamond" = 1000)
+ build_path = /obj/item/weapon/gun/projectile/automatic/advanced_smg
+ sort_string = "MABAA"
+
+// Ballistic ammo
+
+/datum/design/item/weapon/ballistic/ammo/AssembleDesignName()
+ ..()
+ name = "Ballistic weapon ammo prototype ([name])"
+
+/datum/design/item/weapon/ballistic/ammo/ammo_9mmAdvanced
+ name = "9mm magazine"
+ id = "ammo_9mm"
+ desc = "A 21 round magazine for an advanced 9mm SMG."
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 3750, "silver" = 100) // Requires silver for proprietary magazines! Or something.
+ build_path = /obj/item/ammo_magazine/m9mmAdvanced
+ sort_string = "MABBA"
+
+/datum/design/item/weapon/ballistic/ammo/stunshell
+ name = "stun shells"
+ desc = "A stunning shell for a shotgun."
+ id = "stunshell"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ build_path = /obj/item/weapon/storage/box/stunshells
+ sort_string = "MABBB"
+
+/datum/design/item/weapon/ballistic/ammo/empshell
+ name = "emp shells"
+ desc = "An electromagnetic shell for a shotgun."
+ id = "empshell"
+ req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_URANIUM = 1000)
+ build_path = /obj/item/weapon/storage/box/empshells
+ sort_string = "MABBC"
+
+// Phase weapons
+
+/datum/design/item/weapon/phase/AssembleDesignName()
+ ..()
+ name = "Phase weapon prototype ([item_name])"
+
+/* //VOREStation Removal Start
+/datum/design/item/weapon/phase/phase_pistol
+ id = "phasepistol"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_POWER = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 4000)
+ build_path = /obj/item/weapon/gun/energy/phasegun/pistol
+ sort_string = "MACAA"
+
+/datum/design/item/weapon/phase/phase_carbine
+ id = "phasecarbine"
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2, TECH_POWER = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 6000, "glass" = 1500)
+ build_path = /obj/item/weapon/gun/energy/phasegun
+ sort_string = "MACAB"
+
+/datum/design/item/weapon/phase/phase_rifle
+ id = "phaserifle"
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3)
+ materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 2000, "silver" = 500)
+ build_path = /obj/item/weapon/gun/energy/phasegun/rifle
+ sort_string = "MACAC"
+
+/datum/design/item/weapon/phase/phase_cannon
+ id = "phasecannon"
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4, TECH_POWER = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "silver" = 1000, "diamond" = 750)
+ build_path = /obj/item/weapon/gun/energy/phasegun/cannon
+ sort_string = "MACAD"
+*/ //VOREStation Removal End
+
+// Other weapons
+
+/datum/design/item/weapon/rapidsyringe
+ id = "rapidsyringe"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
+ build_path = /obj/item/weapon/gun/launcher/syringe/rapid
+ sort_string = "MADAA"
+
+/datum/design/item/weapon/dartgun
+ desc = "A gun that fires small hollow chemical-payload darts."
+ id = "dartgun_r"
+ req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_BIO = 4, TECH_MAGNET = 3, TECH_ILLEGAL = 1)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "gold" = 5000, "silver" = 2500, "glass" = 750)
+ build_path = /obj/item/weapon/gun/projectile/dartgun/research
+ sort_string = "MADAB"
+
+/datum/design/item/weapon/chemsprayer
+ desc = "An advanced chem spraying device."
+ id = "chemsprayer"
+ req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 3, TECH_BIO = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000)
+ build_path = /obj/item/weapon/reagent_containers/spray/chemsprayer
+ sort_string = "MADAC"
+
+/datum/design/item/weapon/fuelrod
+ id = "fuelrod_gun"
+ req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 5)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "gold" = 500, "silver" = 500, "uranium" = 1000, "phoron" = 3000, "diamond" = 1000)
+ build_path = /obj/item/weapon/gun/magnetic/fuelrod
+ sort_string = "MADAD"
+
+// Ammo for those
+
+/datum/design/item/weapon/ammo/dartgunmag_small
+ id = "dartgun_mag_s"
+ req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
+ materials = list(DEFAULT_WALL_MATERIAL = 300, "gold" = 100, "silver" = 100, "glass" = 300)
+ build_path = /obj/item/ammo_magazine/chemdart/small
+ sort_string = "MADBA"
+
+/datum/design/item/weapon/ammo/dartgun_ammo_small
+ id = "dartgun_ammo_s"
+ req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
+ materials = list(DEFAULT_WALL_MATERIAL = 50, "gold" = 30, "silver" = 30, "glass" = 50)
+ build_path = /obj/item/ammo_casing/chemdart/small
+ sort_string = "MADBB"
+
+/datum/design/item/weapon/ammo/dartgunmag_med
+ id = "dartgun_mag_m"
+ req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
+ materials = list(DEFAULT_WALL_MATERIAL = 500, "gold" = 150, "silver" = 150, "diamond" = 200, "glass" = 400)
+ build_path = /obj/item/ammo_magazine/chemdart
+ sort_string = "MADBC"
+
+/datum/design/item/weapon/ammo/dartgun_ammo_med
+ id = "dartgun_ammo_m"
+ req_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 2, TECH_BIO = 2, TECH_MAGNET = 1, TECH_ILLEGAL = 1)
+ materials = list(DEFAULT_WALL_MATERIAL = 80, "gold" = 40, "silver" = 40, "glass" = 60)
+ build_path = /obj/item/ammo_casing/chemdart
+ sort_string = "MADBD"
+
+/datum/design/item/weapon/ammo/flechette
+ id = "magnetic_ammo"
+ req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4, TECH_MAGNET = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 500, "gold" = 300, "glass" = 150, MAT_PHORON = 100)
+ build_path = /obj/item/weapon/magnetic_ammo
+ sort_string = "MADBE"
+
+// Melee weapons
+
+/datum/design/item/weapon/melee/AssembleDesignName()
+ ..()
+ name = "Melee weapon prototype ([item_name])"
+
+/datum/design/item/weapon/melee/esword
+ name = "Portable Energy Blade"
+ id = "chargesword"
+ req_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 4, TECH_ENGINEERING = 5, TECH_ILLEGAL = 4, TECH_ARCANE = 1)
+ materials = list(MAT_PLASTEEL = 3500, "glass" = 1000, MAT_LEAD = 2250, MAT_METALHYDROGEN = 500)
+ build_path = /obj/item/weapon/melee/energy/sword/charge
+ sort_string = "MBAAA"
+
+/datum/design/item/weapon/melee/eaxe
+ name = "Energy Axe"
+ id = "chargeaxe"
+ req_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 5, TECH_ENGINEERING = 4, TECH_ILLEGAL = 4)
+ materials = list(MAT_PLASTEEL = 3500, MAT_OSMIUM = 2000, MAT_LEAD = 2000, MAT_METALHYDROGEN = 500)
+ build_path = /obj/item/weapon/melee/energy/axe/charge
+ sort_string = "MBAAB"
+
+// Grenade stuff
+/datum/design/item/weapon/grenade/AssembleDesignName()
+ ..()
+ name = "Grenade casing prototype ([item_name])"
+
+/datum/design/item/weapon/grenade/large_grenade
+ id = "large_Grenade"
+ req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
+ materials = list(DEFAULT_WALL_MATERIAL = 3000)
+ build_path = /obj/item/weapon/grenade/chem_grenade/large
+ sort_string = "MCAAA"
diff --git a/nano/templates/autolathe.tmpl b/nano/templates/autolathe.tmpl
deleted file mode 100644
index c5f3ebe994..0000000000
--- a/nano/templates/autolathe.tmpl
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-{{if data.screen == 2 || data.screen == 3}}
-
- {{:helper.link('Main Menu', 'reply', {'menu' : 1})}}
-
-{{/if}}
-
-
-
-
- {{if data.screen == 1}}
- Autolathe Menu
-
-
- | Total amount: | {{:data.total_amount}} / {{:data.max_amount}} cm3 |
-
-
- | Metal amount: | {{:data.metal_amount}} cm3 |
-
-
- | Glass amount: | {{:data.glass_amount}} cm3 |
-
-
-
-
-
-
- {{for data.categories}}
- {{if (index & 1) == 0 && index != 0}}
-
- {{/if}}
- | {{:helper.link(value, 'arrow-right', {'category': value})}} |
- {{/for}}
-
- {{else data.screen == 2 || data.screen == 3}}
- {{if data.screen == 2}}
- Viewing Category {{:data.selected_category}}:
- {{else data.screen == 3}}
- Search Results for '{{:data.search}}':
- {{/if}}
-
-
- | Total amount: | {{:data.total_amount}} / {{:data.max_amount}} cm3 |
-
-
- | Metal amount: | {{:data.metal_amount}} cm3 |
-
-
- | Glass amount: | {{:data.glass_amount}} cm3 |
-
-
-
- {{for data.designs}}
-
- | {{:helper.link(value.name, 'print', {'make' : value.id, 'multiplier' : 1}, value.disabled)}} |
- {{if value.max_multiplier > 10}}
- {{:helper.link('x10', null, {'make' : value.id, 'multiplier' : 10}, value.disabled)}}
- {{/if}} |
- {{if value.max_multiplier > 25}}
- {{:helper.link('x25', null, {'make' : value.id, 'multiplier' : 25}, value.disabled)}}
- {{/if}} |
- {{if value.max_multiplier}}
- {{:helper.link('x' + value.max_multiplier, null, {'make' : value.id, 'multiplier' : value.max_multiplier}, value.disabled)}}
- {{/if}} |
-
- {{for value.materials : material : i}}
- {{if material.amount}}
- |
- {{if material.is_red}}
-
- {{/if}}
- {{:material.amount}} {{:material.name}}
- {{if material.is_red}}
-
- {{/if}}
- {{/if}}
- {{/for}}
- |
-
- {{/for}}
-
- {{/if}}
-
- |
-
-
- Queue contains:
- {{if data.queue}}
- {{if data.processing}}
- {{:data.processing}}
- {{/if}}
-
- {{for data.queue}}
- -
- {{if !value.can_build}}
-
- {{/if}}
- {{:value.name}} {{:value.multiplier > 1 ? '(' + value.multiplier + ')' : ''}}
- {{if !value.can_build}}
-
- {{/if}}
-
- {{if index + 1 > 1}}
- {{:helper.link('', 'arrow-up', {'queue_move' : -1, 'index' : index + 1})}}
- {{/if}}
- {{if index + 1 < data.queue_len}}
- {{:helper.link('', 'arrow-down', {'queue_move' : +1, 'index' : index + 1})}}
- {{/if}}
- {{:helper.link('Remove', 'times', {'remove_from_queue' : index + 1})}}
-
-
- {{/for}}
-
- {{:helper.link('Clear queue', 'trash', {'clear_queue' : 1})}}
- {{else}}
- {{if data.processing}}
- {{:data.processing}}
- {{else}}
- Nothing
- {{/if}}
- {{/if}}
-
- |
-
\ No newline at end of file