diff --git a/code/game/objects/items/stacks/sheet_types.dm b/code/game/objects/items/stacks/sheet_types.dm
deleted file mode 100644
index be7e9ba77b..0000000000
--- a/code/game/objects/items/stacks/sheet_types.dm
+++ /dev/null
@@ -1,658 +0,0 @@
-/* Diffrent misc types of sheets
- * Contains:
- * Metal
- * Plasteel
- * Wood
- * Cloth
- * Plastic
- * Cardboard
- * Paper Frames
- * Runed Metal (cult)
- * Brass (clockwork cult)
- * Bronze (bake brass)
- */
-
-/*
- * Metal
- */
-GLOBAL_LIST_INIT(metal_recipes, list ( \
- new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \
- //CIT CHANGE - adds sofas to metal recipe list
- new/datum/stack_recipe_list("sofas", list( \
- new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, one_per_turf = TRUE, on_floor = TRUE), \
- new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, one_per_turf = TRUE, on_floor = TRUE), \
- new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, one_per_turf = TRUE, on_floor = TRUE), \
- new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE), \
- )), \
- //END OF CIT CHANGES
- null, \
- new/datum/stack_recipe_list("office chairs", list( \
- new/datum/stack_recipe("dark office chair", /obj/structure/chair/office/dark, 5, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("light office chair", /obj/structure/chair/office/light, 5, one_per_turf = TRUE, on_floor = TRUE), \
- )), \
- new/datum/stack_recipe_list("comfy chairs", list( \
- new/datum/stack_recipe("beige comfy chair", /obj/structure/chair/comfy/beige, 2, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("black comfy chair", /obj/structure/chair/comfy/black, 2, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brown comfy chair", /obj/structure/chair/comfy/brown, 2, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("lime comfy chair", /obj/structure/chair/comfy/lime, 2, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("teal comfy chair", /obj/structure/chair/comfy/teal, 2, one_per_turf = TRUE, on_floor = TRUE), \
- )), \
- null, \
- new/datum/stack_recipe("rack parts", /obj/item/rack_parts), \
- new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- null, \
- new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- null, \
- new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \
- new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \
- null, \
- new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- null, \
- new/datum/stack_recipe("computer frame", /obj/structure/frame/computer, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("modular console", /obj/machinery/modular_computer/console/buildable/, 10, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("machine frame", /obj/structure/frame/machine, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- null, \
- new /datum/stack_recipe_list("airlock assemblies", list( \
- new /datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("public airlock assembly", /obj/structure/door_assembly/door_assembly_public, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("virology airlock assembly", /obj/structure/door_assembly/door_assembly_viro, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("external maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_extmai, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \
- )), \
- null, \
- new/datum/stack_recipe("firelock frame", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
- null, \
- new/datum/stack_recipe("grenade casing", /obj/item/grenade/chem_grenade), \
- new/datum/stack_recipe("light fixture frame", /obj/item/wallframe/light_fixture, 2), \
- new/datum/stack_recipe("small light fixture frame", /obj/item/wallframe/light_fixture/small, 1), \
- null, \
- new/datum/stack_recipe("apc frame", /obj/item/wallframe/apc, 2), \
- new/datum/stack_recipe("air alarm frame", /obj/item/wallframe/airalarm, 2), \
- new/datum/stack_recipe("fire alarm frame", /obj/item/wallframe/firealarm, 2), \
- new/datum/stack_recipe("extinguisher cabinet frame", /obj/item/wallframe/extinguisher_cabinet, 2), \
- new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \
- null, \
- new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \
-))
-
-/obj/item/stack/sheet/metal
- name = "metal"
- desc = "Sheets made out of metal."
- singular_name = "metal sheet"
- icon_state = "sheet-metal"
- item_state = "sheet-metal"
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
- throwforce = 10
- flags_1 = CONDUCT_1
- resistance_flags = FIRE_PROOF
- merge_type = /obj/item/stack/sheet/metal
- grind_results = list("iron" = 20)
- point_value = 2
-
-/obj/item/stack/sheet/metal/ratvar_act()
- new /obj/item/stack/tile/brass(loc, amount)
- qdel(src)
-
-/obj/item/stack/sheet/metal/narsie_act()
- new /obj/item/stack/sheet/runed_metal(loc, amount)
- qdel(src)
-
-/obj/item/stack/sheet/metal/fifty
- amount = 50
-
-/obj/item/stack/sheet/metal/twenty
- amount = 20
-
-/obj/item/stack/sheet/metal/ten
- amount = 10
-
-/obj/item/stack/sheet/metal/five
- amount = 5
-
-/obj/item/stack/sheet/metal/cyborg
- materials = list()
- is_cyborg = 1
- cost = 500
-
-/obj/item/stack/sheet/metal/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.metal_recipes
- return ..()
-
-/obj/item/stack/sheet/metal/suicide_act(mob/living/carbon/user)
- user.visible_message("[user] begins whacking [user.p_them()]self over the head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")
- return BRUTELOSS
-
-/*
- * Plasteel
- */
-GLOBAL_LIST_INIT(plasteel_recipes, list ( \
- new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \
- new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \
- null, \
- new /datum/stack_recipe_list("airlock assemblies", list( \
- new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 6, time = 50, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1), \
- )), \
-))
-
-/obj/item/stack/sheet/plasteel
- name = "plasteel"
- singular_name = "plasteel sheet"
- desc = "This sheet is an alloy of iron and plasma."
- icon_state = "sheet-plasteel"
- item_state = "sheet-metal"
- materials = list(MAT_METAL=2000, MAT_PLASMA=2000)
- throwforce = 10
- flags_1 = CONDUCT_1
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 80)
- resistance_flags = FIRE_PROOF
- merge_type = /obj/item/stack/sheet/plasteel
- grind_results = list("iron" = 20, "plasma" = 20)
- point_value = 23
-
-/obj/item/stack/sheet/plasteel/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.plasteel_recipes
- return ..()
-
-/obj/item/stack/sheet/plasteel/twenty
- amount = 20
-
-/obj/item/stack/sheet/plasteel/fifty
- amount = 50
-
-/*
- * Wood
- */
-GLOBAL_LIST_INIT(wood_recipes, list ( \
- new/datum/stack_recipe("wooden sandals", /obj/item/clothing/shoes/sandal, 1), \
- new/datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), \
- new/datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \
- new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \
- new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \
- new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("plywood chair", /obj/structure/chair/comfy/plywood, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("rustic wooden door", /obj/structure/mineral_door/woodrustic, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("dog bed", /obj/structure/bed/dogbed, 10, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\
- new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \
- new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\
- new/datum/stack_recipe("tiki mask", /obj/item/clothing/mask/gas/tiki_mask, 2), \
- new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\
- new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\
- new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\
- new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\
- ))
-
-/obj/item/stack/sheet/mineral/wood
- name = "wooden plank"
- desc = "One can only guess that this is a bunch of wood."
- singular_name = "wood plank"
- icon_state = "sheet-wood"
- item_state = "sheet-wood"
- icon = 'icons/obj/stack_objects.dmi'
- sheettype = "wood"
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
- resistance_flags = FLAMMABLE
- merge_type = /obj/item/stack/sheet/mineral/wood
- novariants = TRUE
- grind_results = list("carbon" = 20)
-
-/obj/item/stack/sheet/mineral/wood/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.wood_recipes
- return ..()
-
-/obj/item/stack/sheet/mineral/wood/fifty
- amount = 50
-
-/*
- * Cloth
- */
-GLOBAL_LIST_INIT(cloth_recipes, list ( \
- new/datum/stack_recipe("grey jumpsuit", /obj/item/clothing/under/color/grey, 3), \
- new/datum/stack_recipe("black shoes", /obj/item/clothing/shoes/sneakers/black, 2), \
- null, \
- new/datum/stack_recipe("backpack", /obj/item/storage/backpack, 4), \
- new/datum/stack_recipe("duffel bag", /obj/item/storage/backpack/duffelbag, 6), \
- null, \
- new/datum/stack_recipe("plant bag", /obj/item/storage/bag/plants, 4), \
- new/datum/stack_recipe("book bag", /obj/item/storage/bag/books, 4), \
- new/datum/stack_recipe("mining satchel", /obj/item/storage/bag/ore, 4), \
- new/datum/stack_recipe("chemistry bag", /obj/item/storage/bag/chemistry, 4), \
- new/datum/stack_recipe("bio bag", /obj/item/storage/bag/bio, 4), \
- null, \
- new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \
- new/datum/stack_recipe("rag", /obj/item/reagent_containers/rag, 1), \
- new/datum/stack_recipe("towel", /obj/item/reagent_containers/rag/towel, 3), \
- new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \
- new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \
- null, \
- new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1),\
- new/datum/stack_recipe("white gloves", /obj/item/clothing/gloves/color/white, 1),\
- new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \
- null, \
- new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \
- ))
-
-/obj/item/stack/sheet/cloth
- name = "cloth"
- desc = "Is it cotton? Linen? Denim? Burlap? Canvas? You can't tell."
- singular_name = "cloth roll"
- icon_state = "sheet-cloth"
- item_state = "sheet-cloth"
- resistance_flags = FLAMMABLE
- force = 0
- throwforce = 0
- merge_type = /obj/item/stack/sheet/cloth
-
-/obj/item/stack/sheet/cloth/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.cloth_recipes
- return ..()
-
-/obj/item/stack/sheet/cloth/ten
- amount = 10
-
-//Durathread fuck slash-asterisk comments
- GLOBAL_LIST_INIT(durathread_recipes, list ( \
- new/datum/stack_recipe("durathread jumpsuit", /obj/item/clothing/under/durathread, 4, time = 40),
- new/datum/stack_recipe("durathread beret", /obj/item/clothing/head/beret/durathread, 2, time = 40), \
- new/datum/stack_recipe("durathread beanie", /obj/item/clothing/head/beanie/durathread, 2, time = 40), \
- new/datum/stack_recipe("durathread bandana", /obj/item/clothing/mask/bandana/durathread, 1, time = 25), \
- new/datum/stack_recipe("durathread jumpskirt", /obj/item/clothing/under/duraskirt, 40, time = 40), \
- ))
-
-/obj/item/stack/sheet/durathread
- name = "durathread"
- desc = "A fabric sown from incredibly durable threads, known for its usefulness in armor production."
- singular_name = "durathread roll"
- icon_state = "sheet-durathread"
- item_state = "sheet-cloth"
- resistance_flags = FLAMMABLE
- force = 0
- throwforce = 0
- merge_type = /obj/item/stack/sheet/durathread
-
-/obj/item/stack/sheet/durathread/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.durathread_recipes
- return ..()
-
-
-
-/*
- * Cardboard
- */
-GLOBAL_LIST_INIT(cardboard_recipes, list ( \
- new/datum/stack_recipe("box", /obj/item/storage/box), \
- new/datum/stack_recipe("sec box", /obj/item/storage/box/seclooking), \
- new/datum/stack_recipe("light tubes", /obj/item/storage/box/lights/tubes), \
- new/datum/stack_recipe("light bulbs", /obj/item/storage/box/lights/bulbs), \
- new/datum/stack_recipe("mouse traps", /obj/item/storage/box/mousetraps), \
- new/datum/stack_recipe("pizza box", /obj/item/pizzabox), \
- new/datum/stack_recipe("power cell", /obj/item/storage/box/cells), \
- new/datum/stack_recipe("02", /obj/item/storage/box/otwo), \
- null, \
- new/datum/stack_recipe("lethal ammo box", /obj/item/storage/box/lethalshot), \
- new/datum/stack_recipe("rubber shot ammo box", /obj/item/storage/box/rubbershot), \
- new/datum/stack_recipe("bean bag ammo box", /obj/item/storage/box/beanbag), \
- new/datum/stack_recipe("12g ammo box", /obj/item/storage/box/lethalslugs), \
- new/datum/stack_recipe("stun slug ammo box", /obj/item/storage/box/stunslug), \
- new/datum/stack_recipe("tech shell ammo box", /obj/item/storage/box/techsslug), \
- new/datum/stack_recipe("incendiary ammo box", /obj/item/storage/box/fireshot), \
- new/datum/stack_recipe("firing pins", /obj/item/storage/box/firingpins), \
- new/datum/stack_recipe("loose ammo", /obj/item/storage/box/ammoshells), \
- null, \
- new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \
- new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \
- new/datum/stack_recipe("folder", /obj/item/folder), \
- new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4), \
- new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \
- null, \
- new/datum/stack_recipe("colored brown", /obj/item/storage/box/brown), \
- new/datum/stack_recipe("colored green", /obj/item/storage/box/green), \
- new/datum/stack_recipe("colored red", /obj/item/storage/box/blue), \
- new/datum/stack_recipe("colored blue", /obj/item/storage/box/red), \
- new/datum/stack_recipe("colored yellow", /obj/item/storage/box/yellow), \
- new/datum/stack_recipe("colored pink", /obj/item/storage/box/pink), \
- new/datum/stack_recipe("colored purple", /obj/item/storage/box/purple), \
- ))
-
-/obj/item/stack/sheet/cardboard //BubbleWrap //it's cardboard you fuck
- name = "cardboard"
- desc = "Large sheets of card, like boxes folded flat."
- singular_name = "cardboard sheet"
- icon_state = "sheet-card"
- item_state = "sheet-card"
- resistance_flags = FLAMMABLE
- force = 0
- throwforce = 0
- merge_type = /obj/item/stack/sheet/cardboard
- novariants = TRUE
-
-/obj/item/stack/sheet/cardboard/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.cardboard_recipes
- return ..()
-
-/obj/item/stack/sheet/cardboard/fifty
- amount = 50
-
-/obj/item/stack/sheet/cardboard/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/stamp/clown) && !istype(loc, /obj/item/storage))
- var/atom/droploc = drop_location()
- if(use(1))
- playsound(I, 'sound/items/bikehorn.ogg', 50, 1, -1)
- to_chat(user, "You stamp the cardboard! Its a clown box! Honk!")
- if (amount >= 0)
- new/obj/item/storage/box/clown(droploc) //bugfix
- else
- . = ..()
-
-
-/*
- * Runed Metal
- */
-
-GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
- new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \
- ))
-
-/obj/item/stack/sheet/runed_metal
- name = "runed metal"
- desc = "Sheets of cold metal with shifting inscriptions writ upon them."
- singular_name = "runed metal sheet"
- icon_state = "sheet-runed"
- item_state = "sheet-runed"
- icon = 'icons/obj/stack_objects.dmi'
- sheettype = "runed"
- merge_type = /obj/item/stack/sheet/runed_metal
- novariants = TRUE
- grind_results = list("iron" = 5, "blood" = 15)
-
-/obj/item/stack/sheet/runed_metal/ratvar_act()
- new /obj/item/stack/tile/brass(loc, amount)
- qdel(src)
-
-/obj/item/stack/sheet/runed_metal/attack_self(mob/living/user)
- if(!iscultist(user))
- to_chat(user, "Only one with forbidden knowledge could hope to work this metal...")
- return
- var/turf/T = get_turf(user) //we may have moved. adjust as needed...
- var/area/A = get_area(user)
- if((!is_station_level(T.z) && !is_mining_level(T.z)) || (A && !A.blob_allowed))
- to_chat(user, "The veil is not weak enough here.")
- return FALSE
- return ..()
-
-/obj/item/stack/sheet/runed_metal/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.runed_metal_recipes
- return ..()
-
-/obj/item/stack/sheet/runed_metal/fifty
- amount = 50
-
-/obj/item/stack/sheet/runed_metal/ten
- amount = 10
-
-/obj/item/stack/sheet/runed_metal/five
- amount = 5
-
-/*
- * Brass
- */
-GLOBAL_LIST_INIT(brass_recipes, list ( \
- new/datum/stack_recipe("wall gear", /obj/structure/destructible/clockwork/wall_gear, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- null,
- new/datum/stack_recipe("brass pinion airlock", /obj/machinery/door/airlock/clockwork, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brass pinion airlock - windowed", /obj/machinery/door/airlock/clockwork/brass, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brass windoor", /obj/machinery/door/window/clockwork, 2, time = 30, on_floor = TRUE, window_checks = TRUE), \
- null,
- new/datum/stack_recipe("brass reflector", /obj/structure/destructible/clockwork/reflector, 10, time = 100, one_per_turf = TRUE, on_floor = TRUE, window_checks = TRUE), \
- null,
- new/datum/stack_recipe("brass window - directional", /obj/structure/window/reinforced/clockwork/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \
- new/datum/stack_recipe("brass window - fulltile", /obj/structure/window/reinforced/clockwork/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \
- new/datum/stack_recipe("brass chair", /obj/structure/chair/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brass bar stool", /obj/structure/chair/stool/bar/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brass stool", /obj/structure/chair/stool/brass, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("brass table frame", /obj/structure/table_frame/brass, 1, time = 5, one_per_turf = TRUE, on_floor = TRUE), \
- null,
- new/datum/stack_recipe("sender - pressure sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("sender - mech sensor", /obj/structure/destructible/clockwork/trap/trigger/pressure_sensor/mech, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("sender - lever", /obj/structure/destructible/clockwork/trap/trigger/lever, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("sender - repeater", /obj/structure/destructible/clockwork/trap/trigger/repeater, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- null,
- new/datum/stack_recipe("receiver - brass skewer", /obj/structure/destructible/clockwork/trap/brass_skewer, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_ADJACENT), \
- new/datum/stack_recipe("receiver - steam vent", /obj/structure/destructible/clockwork/trap/steam_vent, 3, time = 30, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_CARDINALS), \
- new/datum/stack_recipe("receiver - power nullifier", /obj/structure/destructible/clockwork/trap/power_nullifier, 5, time = 20, one_per_turf = TRUE, on_floor = TRUE, placement_checks = STACK_CHECK_CARDINALS), \
- null,
- new/datum/stack_recipe("brass flask", /obj/item/reagent_containers/food/drinks/bottle/holyoil/empty), \
-
-))
-
-/obj/item/stack/tile/brass
- name = "brass"
- desc = "Sheets made out of brass."
- singular_name = "brass sheet"
- icon_state = "sheet-brass"
- item_state = "sheet-brass"
- icon = 'icons/obj/stack_objects.dmi'
- resistance_flags = FIRE_PROOF | ACID_PROOF
- throwforce = 10
- max_amount = 50
- throw_speed = 1
- throw_range = 3
- turf_type = /turf/open/floor/clockwork
- novariants = FALSE
- grind_results = list("iron" = 5, "teslium" = 15, "holyoil" = 1)
- merge_type = /obj/item/stack/tile/brass
-
-/obj/item/stack/tile/brass/narsie_act()
- new /obj/item/stack/sheet/runed_metal(loc, amount)
- qdel(src)
-
-/obj/item/stack/tile/brass/attack_self(mob/living/user)
- if(!is_servant_of_ratvar(user))
- to_chat(user, "[src] seems far too fragile and rigid to build with.") //haha that's because it's actually replicant alloy you DUMMY
- return
- ..()
-
-/obj/item/stack/tile/brass/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.brass_recipes
- . = ..()
- pixel_x = 0
- pixel_y = 0
-
-/obj/item/stack/tile/brass/fifty
- amount = 50
-
-/*
- * Bronze
- */
-
-GLOBAL_LIST_INIT(bronze_recipes, list ( \
- new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
- null,
- new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \
- new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \
- new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \
- null,
- new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
-))
-
-/obj/item/stack/tile/bronze
- name = "brass"
- desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze."
- singular_name = "bronze sheet"
- icon_state = "sheet-brass"
- item_state = "sheet-brass"
- icon = 'icons/obj/stack_objects.dmi'
- resistance_flags = FIRE_PROOF | ACID_PROOF
- throwforce = 10
- max_amount = 50
- throw_speed = 1
- throw_range = 3
- turf_type = /turf/open/floor/bronze
- novariants = FALSE
- grind_results = list("iron" = 5, "copper" = 3) //we have no "tin" reagent so this is the closest thing
- merge_type = /obj/item/stack/tile/bronze
-
-/obj/item/stack/tile/bronze/attack_self(mob/living/user)
- if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message
- to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!")
- ..()
-
-/obj/item/stack/tile/bronze/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.bronze_recipes
- . = ..()
- pixel_x = 0
- pixel_y = 0
-
-/obj/item/stack/tile/bronze/thirty
- amount = 30
-
-/*
- * Lesser and Greater gems - unused
- */
-/obj/item/stack/sheet/lessergem
- name = "lesser gems"
- desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects."
- singular_name = "lesser gem"
- icon_state = "sheet-lessergem"
- item_state = "sheet-lessergem"
- novariants = TRUE
-
-
-/obj/item/stack/sheet/greatergem
- name = "greater gems"
- desc = "Rare kind of gems which are only gained by blood sacrifice to minor deities. They are needed in crafting powerful objects."
- singular_name = "greater gem"
- icon_state = "sheet-greatergem"
- item_state = "sheet-greatergem"
- novariants = TRUE
-
- /*
- * Bones
- */
-/obj/item/stack/sheet/bone
- name = "bones"
- icon = 'icons/obj/mining.dmi'
- icon_state = "bone"
- item_state = "sheet-bone"
- singular_name = "bone"
- desc = "Someone's been drinking their milk."
- force = 7
- throwforce = 5
- max_amount = 12
- w_class = WEIGHT_CLASS_NORMAL
- throw_speed = 1
- throw_range = 3
- grind_results = list("carbon" = 10)
- merge_type = /obj/item/stack/sheet/bone
-
-GLOBAL_LIST_INIT(plastic_recipes, list(
- new /datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = TRUE, on_floor = TRUE, time = 40), \
- new /datum/stack_recipe("water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/empty), \
- new /datum/stack_recipe("large water bottle", /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty,3), \
- new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2)))
-
-/obj/item/stack/sheet/plastic
- name = "plastic"
- desc = "Compress dinosaur over millions of years, then refine, split and mold, and voila! You have plastic."
- singular_name = "plastic sheet"
- icon_state = "sheet-plastic"
- item_state = "sheet-plastic"
- materials = list(MAT_PLASTIC=MINERAL_MATERIAL_AMOUNT)
- throwforce = 7
- merge_type = /obj/item/stack/sheet/plastic
-
-/obj/item/stack/sheet/plastic/fifty
- amount = 50
-
-/obj/item/stack/sheet/plastic/five
- amount = 5
-
-/obj/item/stack/sheet/plastic/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.plastic_recipes
- . = ..()
-
-GLOBAL_LIST_INIT(paperframe_recipes, list(
-new /datum/stack_recipe("paper frame separator", /obj/structure/window/paperframe, 2, one_per_turf = TRUE, on_floor = TRUE, time = 10), \
-new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperframe, 3, one_per_turf = TRUE, on_floor = TRUE, time = 10 )))
-
-/obj/item/stack/sheet/paperframes
- name = "paper frames"
- desc = "A thin wooden frame with paper attached."
- singular_name = "paper frame"
- icon_state = "sheet-paper"
- item_state = "sheet-paper"
- merge_type = /obj/item/stack/sheet/paperframes
- resistance_flags = FLAMMABLE
- merge_type = /obj/item/stack/sheet/paperframes
-
-/obj/item/stack/sheet/paperframes/Initialize()
- recipes = GLOB.paperframe_recipes
- . = ..()
-/obj/item/stack/sheet/paperframes/five
- amount = 5
-/obj/item/stack/sheet/paperframes/twenty
- amount = 20
-/obj/item/stack/sheet/paperframes/fifty
- amount = 50
-
-
-//durathread and cotton raw
-/obj/item/stack/sheet/cotton
- name = "raw cotton bundle"
- desc = "A bundle of raw cotton ready to be spun on the loom."
- singular_name = "raw cotton ball"
- icon_state = "sheet-cotton"
- is_fabric = TRUE
- resistance_flags = FLAMMABLE
- force = 0
- throwforce = 0
- merge_type = /obj/item/stack/sheet/cotton
- pull_effort = 30
- loom_result = /obj/item/stack/sheet/cloth
-
-/obj/item/stack/sheet/cotton/durathread
- name = "raw durathread bundle"
- desc = "A bundle of raw durathread ready to be spun on the loom."
- singular_name = "raw durathread ball"
- icon_state = "sheet-durathreadraw"
- merge_type = /obj/item/stack/sheet/cotton/durathread
- pull_effort = 70
- loom_result = /obj/item/stack/sheet/durathread
-
-