diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index f7c0214cb26..0a7bc2cde4c 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -80,6 +80,7 @@ #define MAT_BANANIUM "$bananium" #define MAT_TITANIUM "$titanium" #define MAT_BIOMASS "$biomass" +#define MAT_PLASTIC "$plastic" //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc #define MINERAL_MATERIAL_AMOUNT 2000 //The maximum size of a stack object. @@ -114,4 +115,4 @@ #define RCD_FLOORWALL 1 #define RCD_AIRLOCK 2 #define RCD_DECONSTRUCT 3 -#define RCD_WINDOWGRILLE 4 \ No newline at end of file +#define RCD_WINDOWGRILLE 4 diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 5221e2b3877..7681b5491b9 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -352,3 +352,8 @@ /datum/material/biomass name = "Biomass" id = MAT_BIOMASS + +/datum/material/plastic + name = "Plastic" + id = MAT_PLASTIC + sheet_type = /obj/item/stack/sheet/plastic diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 37b57932722..775a67f6c1e 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -508,6 +508,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( 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 diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e337953f331..1be1afccdd6 100755 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -165,6 +165,29 @@ amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100) +/obj/item/reagent_containers/glass/beaker/plastic + name = "x-large beaker" + desc = "An extra-large beaker. Can hold up to 120 units." + icon_state = "beakerwhite" + materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000) + volume = 120 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(10,15,20,25,30,60,120) + +/obj/item/reagent_containers/glass/beaker/plastic/update_icon() + icon_state = "beakerlarge" // hack to lets us reuse the large beaker reagent fill states + ..() + icon_state = "beakerwhite" + +/obj/item/reagent_containers/glass/beaker/meta + name = "metamaterial beaker" + desc = "A large beaker. Can hold up to 180 units." + icon_state = "beakergold" + materials = list(MAT_GLASS=2500, MAT_PLASTIC=3000, MAT_GOLD=1000, MAT_TITANIUM=1000) + volume = 180 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(10,15,20,25,30,60,120,180) + /obj/item/reagent_containers/glass/beaker/noreact name = "cryostasis beaker" desc = "A cryostasis beaker that allows for chemical storage without \ diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 9f287c6ee2f..79edee08ce5 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -44,6 +44,24 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/xlarge_beaker + name = "X-large Beaker" + id = "xlarge_beaker" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000) + build_path = /obj/item/reagent_containers/glass/beaker/plastic + category = list("Medical Designs") + +/datum/design/meta_beaker + name = "Metamaterial Beaker" + id = "meta_beaker" + build_type = PROTOLATHE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000, MAT_GOLD = 1000, MAT_TITANIUM = 1000) + build_path = /obj/item/reagent_containers/glass/beaker/meta + category = list("Medical Designs") + /datum/design/bluespacesyringe name = "Bluespace Syringe" desc = "An advanced syringe that can hold 60 units of chemicals" @@ -556,4 +574,4 @@ materials = list(MAT_METAL = 300, MAT_GLASS = 100) build_path = /obj/item/disk/surgery/necrotic_revival category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index ac5d1b225af..f00ee72ef7e 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -23,7 +23,7 @@ . = ..() create_reagents(0) materials = AddComponent(/datum/component/material_container, - list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), 0, + list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0, FALSE, list(/obj/item/stack), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert)) materials.precise_insertion = TRUE RefreshParts() diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index f2a33914879..4b671664103 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -9,7 +9,7 @@ description = "NT default research technologies." design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", - "space_heater") //Default research tech, prevents bricking + "space_heater","xlarge_beaker") //Default research tech, prevents bricking /////////////////////////Biotech///////////////////////// /datum/techweb_node/biotech @@ -26,7 +26,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator") + design_ids = list("piercesyringe", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker") research_cost = 2500 export_price = 5000 diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 808e7957fc8..a958f59de13 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index 6e7973ef6d2..1b8dacf36da 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ