mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Removes nanoUI autolathe code stuff.
This commit is contained in:
@@ -18,4 +18,3 @@
|
||||
#define MECHFAB 0x0004 //Mechfab
|
||||
#define CHASSIS 0x0008 //For protolathe, but differently
|
||||
#define PROSFAB 0x0010 //For prosthetics fab
|
||||
#define AUTOLATHE 32 //YW add, for autolathe
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
@@ -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, "<span class='danger'>\The [src] is disabled!</span>")
|
||||
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, "<span class='warning'>The autolathe queue is full!</span>")
|
||||
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)] <b>\The [src]</b> 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, "<span class='notice'>\The [src] is busy. Please wait for completion of previous operation.</span>")
|
||||
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, "<span class='warning'>That disk doens't have a compatible design</span>")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>That disk does not have a design on it!</span>")
|
||||
return
|
||||
else
|
||||
// So that people who are bad at computers don't shred their disks
|
||||
to_chat(user, "<span class='warning'>This is not the correct type of disk for the autolathe!</span>")
|
||||
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, "<span class='notice'>\The [src] is full. Please remove material from the autolathe in order to insert more.</span>")
|
||||
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)]<b>\The [src]</b> 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)]<b>\The [src]</b> 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)] <b>\The [src]</b> beeps, \"Storage capacity full. Operation terminated. Materials recycled: [total_used]\"")
|
||||
else
|
||||
visible_message("[bicon(src)] <b>\The [src]</b> 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]")
|
||||
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
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
|
||||
/datum/category_item/autolathe/engineering/grounding_rod
|
||||
name = "grounding rod electronics"
|
||||
path = /obj/item/weapon/circuitboard/grounding_rod
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -107,7 +107,6 @@
|
||||
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"
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
<!--
|
||||
Title: Autolathe UI
|
||||
Used In File(s): \code\game\machinery\autolathe_yw.dm
|
||||
-->
|
||||
|
||||
<!--
|
||||
#define AUTOLATHE_MAIN_MENU 1
|
||||
#define AUTOLATHE_CATEGORY_MENU 2
|
||||
#define AUTOLATHE_SEARCH_MENU 3
|
||||
-->
|
||||
|
||||
<style type="text/css">
|
||||
input[type=text], input[type=submit] {
|
||||
border: 1px solid #161616;
|
||||
background-color: #40628a;
|
||||
color: #FFFFFF;
|
||||
padding: 4px;
|
||||
}
|
||||
input[type=submit]:hover {
|
||||
background-color: #507aac;
|
||||
}
|
||||
</style>
|
||||
|
||||
{{if data.screen == 2 || data.screen == 3}}
|
||||
<div class='item'>
|
||||
{{:helper.link('Main Menu', 'reply', {'menu' : 1})}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
<table style='width:100%'><tr>
|
||||
<td valign='top' style='margin-right: 300px'>
|
||||
<div class='statusDisplay'>
|
||||
{{if data.screen == 1}} <!-- AUTOLATHE_MAIN_MENU -->
|
||||
<h3>Autolathe Menu</h3>
|
||||
<div class='itemLabelWidest'><table>
|
||||
<tr>
|
||||
<td><b>Total amount:</b></td><td>{{:data.total_amount}} / {{:data.max_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Metal amount:</b></td><td>{{:data.metal_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Glass amount:</b></td><td>{{:data.glass_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
</table></div>
|
||||
<form action='?src={{:data.uid}}' method='get'>
|
||||
<input type='hidden' name='src' value='{{:data.uid}}'>
|
||||
<input type='hidden' name='search' value='1'>
|
||||
<input type='text' id='to_search' name='to_search'> <input type='submit' value='Search'>
|
||||
</form>
|
||||
|
||||
<hr>
|
||||
<table class='item'><tr>
|
||||
{{for data.categories}}
|
||||
{{if (index & 1) == 0 && index != 0}}
|
||||
</tr><tr>
|
||||
{{/if}}
|
||||
<td>{{:helper.link(value, 'arrow-right', {'category': value})}}</td>
|
||||
{{/for}}
|
||||
</tr></table>
|
||||
{{else data.screen == 2 || data.screen == 3}}
|
||||
{{if data.screen == 2}} <!-- AUTOLATHE_CATEGORY_MENU -->
|
||||
<h3>Viewing Category {{:data.selected_category}}:</h3>
|
||||
{{else data.screen == 3}} <!-- AUTOLATHE_SEARCH_MENU -->
|
||||
<h3>Search Results for '{{:data.search}}':</h3>
|
||||
{{/if}}
|
||||
<div class='itemLabelWidest'><table>
|
||||
<tr>
|
||||
<td><b>Total amount:</b></td><td>{{:data.total_amount}} / {{:data.max_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Metal amount:</b></td><td>{{:data.metal_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Glass amount:</b></td><td>{{:data.glass_amount}} cm<sup>3</sup></td>
|
||||
</tr>
|
||||
</table></div>
|
||||
<table>
|
||||
{{for data.designs}}
|
||||
<tr>
|
||||
<td>{{:helper.link(value.name, 'print', {'make' : value.id, 'multiplier' : 1}, value.disabled)}}</td>
|
||||
<td>{{if value.max_multiplier > 10}}
|
||||
{{:helper.link('x10', null, {'make' : value.id, 'multiplier' : 10}, value.disabled)}}
|
||||
{{/if}}</td>
|
||||
<td>{{if value.max_multiplier > 25}}
|
||||
{{:helper.link('x25', null, {'make' : value.id, 'multiplier' : 25}, value.disabled)}}
|
||||
{{/if}}</td>
|
||||
<td>{{if value.max_multiplier}}
|
||||
{{:helper.link('x' + value.max_multiplier, null, {'make' : value.id, 'multiplier' : value.max_multiplier}, value.disabled)}}
|
||||
{{/if}}</td>
|
||||
<td>
|
||||
{{for value.materials : material : i}}
|
||||
{{if material.amount}}
|
||||
|
|
||||
{{if material.is_red}}
|
||||
<span class='bad'>
|
||||
{{/if}}
|
||||
{{:material.amount}} {{:material.name}}
|
||||
{{if material.is_red}}
|
||||
</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/for}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/for}}
|
||||
</table>
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
<td valign='top' style='width: 300px'>
|
||||
<div class="statusDisplay">
|
||||
<h3>Queue contains:</h3>
|
||||
{{if data.queue}}
|
||||
{{if data.processing}}
|
||||
<ol class='good'>{{:data.processing}}</ol>
|
||||
{{/if}}
|
||||
<ol>
|
||||
{{for data.queue}}
|
||||
<li>
|
||||
{{if !value.can_build}}
|
||||
<span class='bad'>
|
||||
{{/if}}
|
||||
{{:value.name}} {{:value.multiplier > 1 ? '(' + value.multiplier + ')' : ''}}
|
||||
{{if !value.can_build}}
|
||||
</span>
|
||||
{{/if}}
|
||||
<div class='item'>
|
||||
{{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})}}
|
||||
</div>
|
||||
</li>
|
||||
{{/for}}
|
||||
</ol>
|
||||
{{:helper.link('Clear queue', 'trash', {'clear_queue' : 1})}}
|
||||
{{else}}
|
||||
{{if data.processing}}
|
||||
<ol class='good'>{{:data.processing}}</ol>
|
||||
{{else}}
|
||||
<ol class='average'>Nothing</ol>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
</td>
|
||||
</tr></table>
|
||||
Reference in New Issue
Block a user