From e9d2e798a360a4d688cba84e805310bd9867c06c Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Tue, 7 Apr 2020 17:58:23 -0400 Subject: [PATCH] more glasswork --- .../crafting/{ => glassware}/glassware.dm | 270 ++++++++++++++---- .../crafting/glassware/lens_crafting.dm | 100 +++++++ .../objects/items/devices/laserpointer.dm | 4 +- .../game/objects/items/stacks/sheets/glass.dm | 2 + .../items/stacks/sheets/sheet_types.dm | 1 + code/modules/cargo/exports/parts.dm | 20 +- icons/obj/chemical.dmi | Bin 55294 -> 54184 bytes icons/obj/glass_ware.dmi | Bin 0 -> 2677 bytes tgstation.dme | 3 +- 9 files changed, 340 insertions(+), 60 deletions(-) rename code/datums/components/crafting/{ => glassware}/glassware.dm (57%) create mode 100644 code/datums/components/crafting/glassware/lens_crafting.dm create mode 100644 icons/obj/glass_ware.dmi diff --git a/code/datums/components/crafting/glassware.dm b/code/datums/components/crafting/glassware/glassware.dm similarity index 57% rename from code/datums/components/crafting/glassware.dm rename to code/datums/components/crafting/glassware/glassware.dm index 22d7e01f8a..cf57dac7ce 100644 --- a/code/datums/components/crafting/glassware.dm +++ b/code/datums/components/crafting/glassware/glassware.dm @@ -14,26 +14,32 @@ name = "Glass working tools" desc = "A lovely belt of most the tools you will need to shape, mold, and refine glass into more advanced shapes." icon_state = "glass_tools" - tool_behaviour = TOOL_GLASS_CUT + tool_behaviour = TOOL_GLASS_CUT //Cutting takes 20 ticks /obj/item/glasswork/blowing_rod name = "Glass working blow rod" desc = "A hollow metal stick made for glass blowing." icon_state = "blowing_rods_unused" - tool_behaviour = TOOL_BLOW + tool_behaviour = TOOL_BLOW //Rods take 5 ticks -/obj/item/glasswork/glass_base +/obj/item/glasswork/glass_base //Welding takes 30 ticks name = "Glass fodder sheet" desc = "A sheet of glass set aside for glass working" icon_state = "glass_base" var/next_step = null var/rod = /obj/item/glasswork/blowing_rod -/obj/item/lens - name = "Optical lens" - desc = "Good for selling or crafting, by itself its useless" - icon = 'icons/obj/chemical.dmi' - icon_state = "glass_optics" +/obj/item/tea_plate + name = "Tea Plate" + desc = "A polished plate for a tea cup. How fancy!" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "tea_plate" + +/obj/item/tea_cup + name = "Tea Cup" + desc = "A glass cup made for fake tea!" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "tea_plate" //////////////////////Chem Disk///////////////////// //Two Steps // @@ -49,8 +55,9 @@ /obj/item/glasswork/glass_base/dish/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/dish_part1 name = "Half chem dish sheet" @@ -61,8 +68,9 @@ /obj/item/glasswork/glass_base/dish_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) //////////////////////Lens////////////////////////// //Six Steps // @@ -78,8 +86,9 @@ /obj/item/glasswork/glass_base/glass_lens/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part1 name = "Glass fodder sheet" @@ -90,8 +99,9 @@ /obj/item/glasswork/glass_base/glass_lens_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part2 name = "Glass fodder sheet" @@ -102,8 +112,9 @@ /obj/item/glasswork/glass_base/glass_lens_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part3 name = "Glass fodder sheet" @@ -114,9 +125,10 @@ /obj/item/glasswork/glass_base/glass_lens_part3/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/glass_lens_part4 name = "Glass fodder sheet" @@ -127,33 +139,36 @@ /obj/item/glasswork/glass_base/glass_lens_part4/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part5 name = "Unpolished glass lens" - desc = "A small unpolished glass lens. Could be polished with some cloth." - icon = 'icons/obj/chemical.dmi' + desc = "A small unpolished glass lens. Could be polished with some silk." + icon = 'icons/obj/glass_ware.dmi' icon_state = "glass_optics" next_step = /obj/item/glasswork/glass_base/glass_lens_part6 /obj/item/glasswork/glass_base/glass_lens_part5/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/sheet/cloth)) - new next_step(user.loc, 1) - qdel(src) + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/glass_lens_part6 name = "Unrefined glass lens" desc = "A small polished glass lens. Just needs to be refined with some sandstone." - icon = 'icons/obj/chemical.dmi' + icon = 'icons/obj/glass_ware.dmi' icon_state = "glass_optics" - next_step = /obj/item/lens + next_step = /obj/item/glasswork/lens /obj/item/glasswork/glass_base/glass_lens_part6/attackby(obj/item/I, mob/user, params) ..() if(istype(I, /obj/item/stack/sheet/mineral/sandstone)) + if(do_after(user,20, target = src)) new next_step(user.loc, 1) qdel(src) @@ -171,8 +186,9 @@ /obj/item/glasswork/glass_base/spouty/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/spouty_part2 name = "Glass fodder sheet" @@ -183,8 +199,9 @@ /obj/item/glasswork/glass_base/spouty_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/spouty_part3 name = "Glass fodder sheet" @@ -195,9 +212,10 @@ /obj/item/glasswork/glass_base/spouty_part3/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/spouty_part4 name = "Glass fodder sheet" @@ -208,9 +226,10 @@ /obj/item/glasswork/glass_base/spouty_part4/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) //////////////////////Small Bulb Flask////////////// //Two Steps // @@ -226,8 +245,9 @@ /obj/item/glasswork/glass_base/flask_small/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/flask_small_part1 name = "Metled glass" @@ -238,9 +258,10 @@ /obj/item/glasswork/glass_base/flask_small_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/flask_small_part2 name = "Metled glass" @@ -251,9 +272,10 @@ /obj/item/glasswork/glass_base/flask_small_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) //////////////////////Large Bulb Flask////////////// //Two Steps // @@ -269,8 +291,9 @@ /obj/item/glasswork/glass_base/flask_large/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_WELDER) - new next_step(user.loc, 1) - qdel(src) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) /obj/item/glasswork/glass_base/flask_large_part1 name = "Metled glass" @@ -281,9 +304,10 @@ /obj/item/glasswork/glass_base/flask_large_part1/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_BLOW) - new next_step(user.loc, 1) - qdel(src) - qdel(I) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) /obj/item/glasswork/glass_base/flask_large_part2 name = "Metled glass" @@ -294,6 +318,138 @@ /obj/item/glasswork/glass_base/flask_large_part2/attackby(obj/item/I, mob/user, params) ..() if(I.tool_behaviour == TOOL_GLASS_CUT) - new next_step(user.loc, 1) - new rod(user.loc, 1) - qdel(src) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +//////////////////////Tea Plates//////////////////// +//Three Steps // +//Sells for 1200 cr, takes 5 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/tea_plate + name = "Glass fodder sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a tea plate, how fancy! Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/tea_plate1 + +/obj/item/glasswork/glass_base/tea_plate/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_WELDER) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_plate1 + name = "Metled glass" + desc = "A blob of metled glass, this one is ideal for a tea plate. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/tea_plate2 + +/obj/item/glasswork/glass_base/tea_plate1/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_BLOW) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) + +/obj/item/glasswork/glass_base/tea_plate2 + name = "Metled glass" + desc = "A blob of metled glass on the end of a blowing rod. Needs to be cut off with some tools." + icon_state = "blowing_rods_inuse" + next_step = /obj/item/glasswork/glass_base/tea_plate3 + +/obj/item/glasswork/glass_base/tea_plate2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_GLASS_CUT) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_plate3 + name = "Disk of glass" + desc = "A disk of glass that can be cant be used for much. Needs to be polished with some silk." + icon_state = "glass_base_half" + next_step = /obj/item/tea_plate + +/obj/item/glasswork/glass_base/tea_plate3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) + +//////////////////////Tea Cup/////////////////////// +//Four Steps // +//Sells for 1800 cr, takes 6 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/tea_cup + name = "Glass fodder sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a tea cup, how fancy! Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/tea_cup1 + +/obj/item/glasswork/glass_base/tea_cup/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_WELDER) + if(do_after(user,30, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup1 + name = "Metled glass" + desc = "A blob of metled glass, this one is ideal for a tea cup. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/tea_cup2 + +/obj/item/glasswork/glass_base/tea_cup1/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_BLOW) + if(do_after(user,5, target = src)) + new next_step(user.loc, 1) + qdel(src) + qdel(I) + +/obj/item/glasswork/glass_base/tea_cupe2 + name = "Metled glass" + desc = "A blob of metled glass on the end of a blowing rod. Needs to be cut off with some tools." + icon_state = "blowing_rods_inuse" + next_step = /obj/item/glasswork/glass_base/tea_cup3 + +/obj/item/glasswork/glass_base/tea_cup2/attackby(obj/item/I, mob/user, params) + ..() + if(I.tool_behaviour == TOOL_GLASS_CUT) + if(do_after(user,20, target = src)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup3 + name = "Disk of glass" + desc = "A bowl of glass that can be cant be used for much. Needs to be polished with some silk." + icon_state = "glass_base_half" + next_step = /obj/item/glasswork/glass_base/tea_cup4 + +/obj/item/glasswork/glass_base/cup3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/silk)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glass_base/tea_cup4 + name = "Disk of glass" + desc = "A bowl of polished glass that can be cant be used for much. Needs some more glass to make a handle." + icon_state = "glass_base_half" + next_step = /obj/item/tea_cup + +/obj/item/glasswork/glass_base/cup4/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/glass)) + if(do_after(user,10, target = src)) + new next_step(user.loc, 1) + qdel(src) \ No newline at end of file diff --git a/code/datums/components/crafting/glassware/lens_crafting.dm b/code/datums/components/crafting/glassware/lens_crafting.dm new file mode 100644 index 0000000000..63e5385bbf --- /dev/null +++ b/code/datums/components/crafting/glassware/lens_crafting.dm @@ -0,0 +1,100 @@ +//This file is for crafting using a lens! + +/obj/item/glasswork/lens + name = "Optical lens" + desc = "Good for selling or crafting, by itself its useless" + icon = 'icons/obj/glass_ware.dmi' + icon_state = "glass_optics" + +//Laser pointers - 2600 +/obj/item/glasswork/laserpointer_shell + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs a power capactor." + icon_state = "laser_case" + icon = 'icons/obj/glass_ware.dmi' + next_step = /obj/item/glasswork/laserpointer_shell_1 + +/obj/item/glasswork/laserpointer_shell/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stock_parts/capacitor)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/laserpointer_shell_1 + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs a glass lens." + icon_state = "laser_wire" + icon_state = "laser_case" + next_step = /obj/item/glasswork/laserpointer_shell_2 + +/obj/item/glasswork/laserpointer_shell_1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/lens)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/laserpointer_shell_2 + name = "Laser pointer assembly" + desc = "Good for selling or crafting, by itself its useless. Needs to be screwed together." + icon_state = "laser_wire" + icon_state = "laser_case" + next_step = /obj/item/laser_pointer/blue/handmade + +/obj/item/glasswork/laserpointer_shell_2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I.tool_behaviour == TOOL_SCREW)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +//NERD SHIT - 5000 + +/obj/item/glasswork/glasses_frame + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just add a pare of lens." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames" + next_step = /obj/item/glasswork/glasses_frame_1 + +/obj/item/glasswork/glasses_frame/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/lens)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glasses_frame_1 + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just add a the other lens." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_1" + next_step = /obj/item/glasswork/glasses_frame_2 + +/obj/item/glasswork/glasses_frame_1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/lens)) + if(do_after(user,60, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glasses_frame_2 + name = "Glasses Frame" + desc = "Good for crafting a pare of glasses, by itself its useless. Just adjust the pices into the frame with a screwdriver." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_2" + next_step = /obj/item/glasswork/glasses + +/obj/item/glasswork/laserpointer_shell_2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I.tool_behaviour == TOOL_SCREW)) + if(do_after(user,180, target = src)) + new next_step(user.loc, 1) + qdel(src) + +/obj/item/glasswork/glasses + name = "Hand Made Glasses" + desc = "Hande made glasses that have not been polished at all making them useless. Selling them could still be worth a bit of credits." + icon = 'icons/obj/glass_ware.dmi' + icon_state = "frames_2" \ No newline at end of file diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index a3cfdb9177..9c94348fc2 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -18,7 +18,6 @@ var/recharge_locked = FALSE var/obj/item/stock_parts/micro_laser/diode //used for upgrading! - /obj/item/laser_pointer/red pointer_icon_state = "red_laser" /obj/item/laser_pointer/green @@ -28,6 +27,9 @@ /obj/item/laser_pointer/purple pointer_icon_state = "purple_laser" +/obj/item/laser_pointer/blue/handmade + diode = null + /obj/item/laser_pointer/New() ..() diode = new(src) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 75db89f616..d735bd0f96 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -22,6 +22,8 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ new/datum/stack_recipe("spout flask", /obj/item/glasswork/glass_base/spouty, 20), \ new/datum/stack_recipe("small bulb flask", /obj/item/glasswork/glass_base/flask_small, 5), \ new/datum/stack_recipe("large bottle flask", /obj/item/glasswork/glass_base/flask_large, 15), \ + new/datum/stack_recipe("tea cup", /obj/item/glasswork/glass_base/tea_plate, 5), \ + new/datum/stack_recipe("tea plate", /obj/item/glasswork/glass_base/tea_cup, 5), \ )), \ )) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index b0aad8b498..7446709012 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -769,6 +769,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( 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("shower curtain", /obj/structure/curtain, 10, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("laser pointer case", /obj/item/glasswork/laserpointer_shell, 30, time = 10), \ new /datum/stack_recipe("wet floor sign", /obj/item/caution, 2))) /obj/item/stack/sheet/plastic diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index e4efaf0810..6714212d9a 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -112,7 +112,7 @@ /datum/export/glasswork_lens cost = 1800 unit_name = "small glass lens" - export_types = list(/obj/item/lens) + export_types = list(/obj/item/glasswork/lens) /datum/export/glasswork_spouty cost = 1200 @@ -131,3 +131,21 @@ unit_name = "large flask" export_types = list(/obj/item/reagent_containers/glass/beaker/flask/large) include_subtypes = FALSE + +/datum/export/glasswork_teaplate + cost = 1200 + unit_name = "tea gear" + export_types = list(/obj/item/tea_plate) + include_subtypes = FALSE + +/datum/export/glasswork_laserpointer + cost = 2600 + unit_name = "hand made laserpointer" + export_types = list(/obj/item/laser_pointer/blue/handmade) + include_subtypes = FALSE + +/datum/export/glasswork_glasses + cost = 5000 + unit_name = "hand made glasses" + export_types = list(/obj/item/glasswork/glasses) + include_subtypes = FALSE \ No newline at end of file diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 76094938e82978d3a12a8675d65e63c1e1514b46..aea15e2e39f6deaab81eb5f440a13ddbd84b9844 100644 GIT binary patch delta 14513 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 delta 15632 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 diff --git a/icons/obj/glass_ware.dmi b/icons/obj/glass_ware.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7b720836cc0e640a3acb54eef173176d5e74fbf8 GIT binary patch literal 2677 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 5870935f66..531b5aa380 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -422,9 +422,10 @@ #include "code\datums\components\wearertargeting.dm" #include "code\datums\components\wet_floor.dm" #include "code\datums\components\crafting\craft.dm" -#include "code\datums\components\crafting\glassware.dm" #include "code\datums\components\crafting\guncrafting.dm" #include "code\datums\components\crafting\recipes.dm" +#include "code\datums\components\crafting\glassware\glassware.dm" +#include "code\datums\components\crafting\glassware\lens_crafting.dm" #include "code\datums\components\crafting\recipes\recipes_clothing.dm" #include "code\datums\components\crafting\recipes\recipes_misc.dm" #include "code\datums\components\crafting\recipes\recipes_primal.dm"