diff --git a/code/game/machinery/kilm.dm b/code/game/machinery/kilm.dm deleted file mode 100644 index 7d724cf39a..0000000000 --- a/code/game/machinery/kilm.dm +++ /dev/null @@ -1,70 +0,0 @@ -/obj/machinery/kilm - name = "kilm" - desc = "A stone kilm, can be filled with logs for fuel." - icon = 'icons/obj/fireplace.dmi' - icon_state = "kilm" - - use_power = NO_POWER_USE - density = TRUE - - var/on = FALSE - var/filled = FALSE - var/charges = 0 - var/making = null - -/obj/machinery/kilm/attackby(obj/item/T, mob/user) - if(istype(T, /obj/item/grown/log)) - charges ++ - qdel(T) - -/obj/machinery/kilm/attackby(obj/item/stack/ore/S, mob/user) - if(istype(S, /obj/item/stack/ore/glass)) - if(S.amount <= 5) - user.show_message("You add the sand to the kilm.", 1) - filled = TRUE - S.amount = (S.amount - 5) - if(S.amount < 5) - qdel(S) - else - user.show_message("You need a at lest five sand piles to make anything of use.", 1) - -/obj/machinery/kilm/attack_hand(mob/living/carbon/user) - . = ..() - if(.) - return - if(charges == 0) - to_chat(user, "The Kilm needs fuel to use.") - making = null - return - - if(charges == 1) - to_chat(user, "The Kilm has some fuel and can be used to make a small flask.") - making = /obj/item/reagent_containers/glass/beaker/flask_small - return - - if(charges == 2) - to_chat(user, "The Kilm has some fuel and can be used to make a honey jar.") - making = /obj/item/reagent_containers/glass/beaker/jar - return - - if(charges == 3) - to_chat(user, "The Kilm has fuel and can be used to make a large flask.") - making = /obj/item/reagent_containers/glass/beaker/flask_large - return - - if(charges == 4) - to_chat(user, "The Kilm has fuel and can be used to make a spouty flask.") - making = /obj/item/reagent_containers/glass/beaker/flaskspouty - return - - if(charges == 5) - to_chat(user, "The Kilm has fuel and can be used to make a glass disk.") - making = /obj/item/reagent_containers/glass/beaker/glass_dish - return - - if(charges >= 6) //You may want glass slug! - to_chat(user, "The Kilm has a lot of fuel and will make glass slug...") - making = null - return - - return diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 53209fac2f..b5fdf0c23e 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -10,7 +10,15 @@ */ GLOBAL_LIST_INIT(glass_recipes, list ( \ new/datum/stack_recipe("directional window", /obj/structure/window/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile window", /obj/structure/window/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ + new/datum/stack_recipe("fulltile window", /obj/structure/window/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ + null, \ + new/datum/stack_recipe_list("glass working bases", list( \ + new/datum/stack_recipe("chem dish", /obj/item/glasswork/glass_base/dish, 10), \ + new/datum/stack_recipe("lens", /obj/item/glasswork/glass_base/lens, 15), \ + 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), \ + )), \ )) /obj/item/stack/sheet/glass diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index e53db0bf7b..4ec66fa959 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -92,11 +92,38 @@ export_types = list(/obj/item/stock_parts/cell/bluespace) /datum/export/cellyellow - cost = 40 + cost = 200 unit_name = "slime power cell" export_types = list(/obj/item/stock_parts/cell/high/slime) /datum/export/cellyellowhyper - cost = 120 //Takes a lot to make and is really good + cost = 1200 //Takes a lot to make and is really good unit_name = "hyper slime power cell" - export_types = list(/obj/item/stock_parts/cell/high/slime/hypercharged) \ No newline at end of file + export_types = list(/obj/item/stock_parts/cell/high/slime/hypercharged) + +//Glass working stuff + +/datum/export/glasswork_dish + cost = 300 + unit_name = "small glass dish" + export_types = list(/obj/item/reagent_containers/glass/beaker/glass_dish) + +/datum/export/glasswork_lens + cost = 1800 + unit_name = "small glass lens" + export_types = list(/obj/item/lens) + +/datum/export/glasswork_spouty + cost = 1200 + unit_name = "flask with spout" + export_types = list(/obj/item/reagent_containers/glass/beaker/flaskspouty) + +/datum/export/glasswork_smallflask + cost = 600 + unit_name = "small flask" + export_types = list(/obj/item/reagent_containers/glass/beaker/flask_small) + +/datum/export/glasswork_largeflask + cost = 1000 + unit_name = "large flask" + export_types = list(/obj/item/reagent_containers/glass/beaker/flask_large) \ No newline at end of file diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index cadf68a7a8..766788c81e 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -81,6 +81,16 @@ /obj/item/integrated_electronics/wirer) crate_name = "circuitry starter pack crate" +/datum/supply_pack/science/glasswork + name = "GlassBlower Gear Crate" + desc = "Learn and make glassworks of usefull things for a profit! Contains glassworking tools and blowing rods. Glass not included." + cost = 1000 + contains = list(/obj/item/glasswork/glasskit, + /obj/item/glasswork/glasskit, + /obj/item/glasswork/blowing_rod, + /obj/item/glasswork/blowing_rod) + crate_name = "glassblower gear crate" + /datum/supply_pack/science/adv_surgery_tools name = "Med-Co Advanced surgery tools" desc = "A full set of Med-Co advanced surgery tools, this crate also comes with a spay of synth flesh as well as a can of . Requires Surgery access to open." diff --git a/code/modules/crafting/glassware.dm b/code/modules/crafting/glassware.dm new file mode 100644 index 0000000000..db6cc4f1cc --- /dev/null +++ b/code/modules/crafting/glassware.dm @@ -0,0 +1,298 @@ +//This file is for glass working types of things! + +/obj/item/glasswork + name = "This is a bug report it!" + desc = "Failer to code. Contact your local bug remover..." + icon = 'icons/obj/glassworks.dmi' + w_class = WEIGHT_CLASS_SMALL + force = 0 + throw_speed = 1 + throw_range = 3 + +/obj/item/glasswork/glasskit + 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" + +/obj/item/glasswork/blowing_rod + name = "Glass Working Blow Rod" + desc = "A hollow metal stick made for glass blowing." + icon_state = "blowing_rods_unused" + +/obj/item/glasswork/glass_base + name = "Glass Fodder Sheet" + desc = "A sheet of glass set aside for glass working" + icon_state = "glass_base" + var/next_step = null + var/make = null + var/rod = /obj/item/glasswork/blowing_rod + +/obj/item/lens + name = "Optical Lens" + desc = "Good for selling or crafting, by itself its useless" + +//////////////////////Chem Disk///////////////////// +//Two Steps // +//Sells for 300 cr, takes 10 glass shets // +//Usefull for chem spliting // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/dish + name = "Glass Fodder Sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a small glass dish. Needs to be cut with some tools." + next_step = /obj/item/glasswork/glass_base/glass_dish + make = /obj/item/reagent_containers/glass/beaker/glass_dish + +/obj/item/glasswork/glass_base/dish/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/dish) + +/obj/item/glasswork/glass_base/glass_dish + name = "Half Chem Dish Sheet" + desc = "A sheet of glass cut in half, looks like it still needs some more sanding down" + icon_state = "glass_base_half" + +/obj/item/glasswork/glass_base/glass_dish/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new make(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_dish) + +//////////////////////Lens////////////////////////// +//Six Steps // +//Sells for 1800 cr, takes 15 glass shets // +//Usefull for selling and later crafting // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/lens + name = "Glass Fodder Sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a small glass lens. Needs to be cut with some tools." + next_step = /obj/item/glasswork/glass_base/glass_dish + make = /obj/item/lens + +/obj/item/glasswork/glass_base/lens/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/lens) + +/obj/item/glasswork/glass_base/glass_lens + name = "Glass Fodder Sheet" + desc = "Cut glass ready to be heated. Needs to be heated with some tools." + icon_state = "glass_base_half" + next_step = /obj/item/glasswork/glass_base/glass_lens/part2 + +/obj/item/glasswork/glass_base/glass_lens/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/weldingtool)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens) + +/obj/item/glasswork/glass_base/glass_lens/part2 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated. Needs to be heated more with some tools." + icon_state = "glass_base_heat" + next_step = /obj/item/glasswork/glass_base/glass_lens/part3 + +/obj/item/glasswork/glass_base/glass_lens/part2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/weldingtool)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens/part2) + +/obj/item/glasswork/glass_base/glass_lens/part3 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated into a blob of hot glass. Needs to be placed onto a blow tube." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/glass_lens/part4 + +/obj/item/glasswork/glass_base/glass_lens/part3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/blowing_rod)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens/part3) + qdel(I) + +/obj/item/glasswork/glass_base/glass_lens/part4 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated into a blob of hot glass. Needs to be cut off onto a blow tube." + icon_state = "blowing_rods_inuse" + next_step = /obj/item/glasswork/glass_base/glass_lens/part5 + +/obj/item/glasswork/glass_base/glass_lens/part4/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new next_step(user.loc, 1) + new rod(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens/part4) + +/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_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(/obj/item/glasswork/glass_base/glass_lens/part5) + +/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_state = "glass_optics" + +/obj/item/glasswork/glass_base/glass_lens/part6/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/sheet/mineral/sandstone)) + new make(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens/part6) + +//////////////////////Spouty Flask////////////////// +//Four Steps // +//Sells for 1200 cr, takes 20 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/spouty + name = "Glass Fodder Sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a spout beaker. Needs to be cut with some tools." + next_step = /obj/item/glasswork/glass_base/spouty/part2 + make = /obj/item/reagent_containers/glass/beaker/flaskspouty + +/obj/item/glasswork/glass_base/spouty/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/spouty) + +/obj/item/glasswork/glass_base/spouty/part2 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated. Needs to be heated more with some tools." + icon_state = "glass_base_heat" + next_step = /obj/item/glasswork/glass_base/spouty/part3 + +/obj/item/glasswork/glass_base/spouty/part2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/weldingtool)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/spouty/part2) + +/obj/item/glasswork/glass_base/spouty/part3 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated into a blob of hot glass. Needs to be placed onto a blow tube." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/spouty/part4 + +/obj/item/glasswork/glass_base/glass_lens/part3/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/blowing_rod)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/glass_lens/part3) + qdel(I) + +/obj/item/glasswork/glass_base/spouty/part4 + name = "Glass Fodder Sheet" + desc = "Cut glass that has been heated into a blob of hot glass. Needs to be cut off onto a blow tube." + icon_state = "blowing_rods_inuse" + +/obj/item/glasswork/glass_base/spouty/part4/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new make(user.loc, 1) + new rod(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/spouty/part4) + +//////////////////////Small Bulb Flask////////////// +//Two Steps // +//Sells for 600 cr, takes 5 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/flask_small + name = "Glass Fodder Sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a small flask. Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/flask_small/part1 + make = /obj/item/reagent_containers/glass/beaker/flask_small + +/obj/item/glasswork/glass_base/flask_small/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/weldingtool)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_small) + +/obj/item/glasswork/glass_base/flask_small/part1 + name = "Metled Glass" + desc = "A blob of metled glass, this one is ideal for a small flask. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/spouty/part2 + +/obj/item/glasswork/glass_base/flask_small/part1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/blowing_rod)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_small/part1) + qdel(I) + +/obj/item/glasswork/glass_base/flask_small/part2 + 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" + +/obj/item/glasswork/glass_base/flask_small/part2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new make(user.loc, 1) + new rod(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_small/part2) + +//////////////////////Large Bulb Flask////////////// +//Two Steps // +//Sells for 1000 cr, takes 15 glass shets // +//Usefull for selling and chemical things // +//////////////////////////////////////////////////// + +/obj/item/glasswork/glass_base/flask_large + name = "Glass Fodder Sheet" + desc = "A set of glass sheets set aside for glass working, this one is ideal for a large flask. Needs to be heated with some tools." + next_step = /obj/item/glasswork/glass_base/flask_large/part1 + make = /obj/item/reagent_containers/glass/beaker/flask_large + +/obj/item/glasswork/glass_base/flask_large/part1/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/weldingtool)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_large/part1) + +/obj/item/glasswork/glass_base/flask_large/part1 + name = "Metled Glass" + desc = "A blob of metled glass, this one is ideal for a large flask. Needs to be blown with some tools." + icon_state = "glass_base_molding" + next_step = /obj/item/glasswork/glass_base/flask_large/part2 + +/obj/item/glasswork/glass_base/flask_large/part2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/blowing_rod)) + new next_step(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_large/part2) + qdel(I) + +/obj/item/glasswork/glass_base/flask_large/part2 + 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" + +/obj/item/glasswork/glass_base/flask_large/part2/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/glasswork/glass_base)) + new make(user.loc, 1) + new rod(user.loc, 1) + qdel(/obj/item/glasswork/glass_base/flask_large/part2) + + + + + diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 9d4d17e455..ec2989588b 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -8,15 +8,6 @@ resistance_flags = ACID_PROOF container_HP = 2 -/obj/item/reagent_containers/glass/slug - name = "glass slug" - desc = "A small slug of solid glass, produced from a kiln." - icon_state = "glassslug" - amount_per_transfer_from_this = 0 - possible_transfer_amounts = list(0) - volume = 0 - resistance_flags = ACID_PROOF - /obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target) if(!canconsume(M, user)) return diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index e418657065..b13e06e824 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/glassworks.dmi b/icons/obj/glassworks.dmi new file mode 100644 index 0000000000..de033f08d5 Binary files /dev/null and b/icons/obj/glassworks.dmi differ diff --git a/tgstation.dme b/tgstation.dme index dccd7ff7e3..4068ff3c16 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -632,7 +632,6 @@ #include "code\game\machinery\hologram.dm" #include "code\game\machinery\igniter.dm" #include "code\game\machinery\iv_drip.dm" -#include "code\game\machinery\kilm.dm" #include "code\game\machinery\launch_pad.dm" #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\limbgrower.dm" @@ -1675,6 +1674,7 @@ #include "code\modules\clothing\under\jobs\Plasmaman\medsci.dm" #include "code\modules\clothing\under\jobs\Plasmaman\security.dm" #include "code\modules\crafting\craft.dm" +#include "code\modules\crafting\glassware.dm" #include "code\modules\crafting\guncrafting.dm" #include "code\modules\crafting\recipes.dm" #include "code\modules\crafting\recipes\recipes_clothing.dm"