diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index e4a6f7aabf5..484fea90380 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -150,6 +150,7 @@
#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //from base of mob/create_mob_hud(): ()
#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" //from base of
#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" //from base of /obj/item/attack(): (mob/M, mob/user)
+#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" //from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" //from base of mob/RangedAttack(): (atom/A, params)
#define COMSIG_MOB_THROW "mob_throw" //from base of /mob/throw_item(): (atom/target)
diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm
index ea54cd06ae3..99c06c9f8b7 100644
--- a/code/__DEFINES/construction.dm
+++ b/code/__DEFINES/construction.dm
@@ -59,19 +59,6 @@
//let's just pretend fulltile windows being children of border windows is fine
#define FULLTILE_WINDOW_DIR NORTHEAST
-//Material defines, for determining how much of a given material an item contains
-#define MAT_METAL "$metal"
-#define MAT_GLASS "$glass"
-#define MAT_SILVER "$silver"
-#define MAT_GOLD "$gold"
-#define MAT_DIAMOND "$diamond"
-#define MAT_URANIUM "$uranium"
-#define MAT_PLASMA "$plasma"
-#define MAT_BLUESPACE "$bluespace"
-#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.
diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm
new file mode 100644
index 00000000000..2d48786b76b
--- /dev/null
+++ b/code/__DEFINES/materials.dm
@@ -0,0 +1,12 @@
+/// Is the material from an ore? currently unused but exists atm for categorizations sake
+#define MAT_CATEGORY_ORE "ore capable"
+
+/// Hard materials, such as iron or metal
+#define MAT_CATEGORY_RIGID "rigid material"
+
+
+/// Gets the reference for the material type that was given
+#define getmaterialref(A) (SSmaterials.materials[A])
+
+/// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes.
+#define MATERIAL_NO_COLOR (1<<0)
\ No newline at end of file
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index e9816ed3eb0..6727c64b570 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -105,6 +105,7 @@
#define INIT_ORDER_SERVER_MAINT 93
#define INIT_ORDER_INPUT 85
#define INIT_ORDER_VIS 80
+#define INIT_ORDER_MATERIALS 76
#define INIT_ORDER_RESEARCH 75
#define INIT_ORDER_EVENTS 70
#define INIT_ORDER_JOBS 65
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index a108082be66..4140d5b04f1 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -42,11 +42,6 @@
for(var/path in subtypesof(/datum/surgery))
GLOB.surgeries_list += new path()
- //Materials
- for(var/path in subtypesof(/datum/material))
- var/datum/material/D = new path()
- GLOB.materials_list[D.id] = D
-
GLOB.emote_list = init_emote_list()
diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index 14c752613bf..1ea47134cd6 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -16,7 +16,6 @@ GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the stati
GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions
GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
-GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id.
GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id.
GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path.
GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes
diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm
new file mode 100644
index 00000000000..5acfa4fed41
--- /dev/null
+++ b/code/controllers/subsystem/materials.dm
@@ -0,0 +1,27 @@
+/*! How material datums work
+Materials are now instanced datums, with an associative list of them being kept in SSmaterials. We only instance the materials once and then re-use these instances for everything.
+
+These materials call on_applied() on whatever item they are applied to, common effects are adding components, changing color and changing description. This allows us to differentiate items based on the material they are made out of.area
+
+*/
+
+SUBSYSTEM_DEF(materials)
+ name = "Materials"
+ flags = SS_NO_FIRE
+ init_order = INIT_ORDER_MATERIALS
+ ///Dictionary of material.type || material ref
+ var/list/materials = list()
+ ///Dictionary of category || list of material refs
+ var/list/materials_by_category = list()
+
+/datum/controller/subsystem/materials/Initialize(timeofday)
+ InitializeMaterials()
+ return ..()
+
+///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info)
+/datum/controller/subsystem/materials/proc/InitializeMaterials(timeofday)
+ for(var/type in subtypesof(/datum/material))
+ var/datum/material/ref = new type
+ materials[type] = ref
+ for(var/c in ref.categories)
+ materials_by_category[c] += list(ref)
diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm
index c25771b8904..dc9e2500af2 100644
--- a/code/controllers/subsystem/research.dm
+++ b/code/controllers/subsystem/research.dm
@@ -155,6 +155,7 @@ SUBSYSTEM_DEF(research)
stack_trace("WARNING: Design ID clash with ID [initial(DN.id)] detected! Path: [path]")
errored_datums[DN] = initial(DN.id)
continue
+ DN.InitializeMaterials() //Initialize the materials in the design
returned[initial(DN.id)] = DN
techweb_designs = returned
verify_techweb_designs()
diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm
new file mode 100644
index 00000000000..094dce211d4
--- /dev/null
+++ b/code/datums/components/explodable.dm
@@ -0,0 +1,107 @@
+///Component specifically for explosion sensetive things, currently only applies to heat based explosions but can later perhaps be used for things that are dangerous to handle carelessly like nitroglycerin.
+/datum/component/explodable
+ var/devastation_range = 0
+ var/heavy_impact_range = 0
+ var/light_impact_range = 2
+ var/flash_range = 3
+ var/equipped_slot //For items, lets us determine where things should be hit.
+
+/datum/component/explodable/Initialize(devastation_range_override, heavy_impact_range_override, light_impact_range_override, flash_range_override)
+ if(!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/explodable_attack)
+ RegisterSignal(parent, COMSIG_TRY_STORAGE_INSERT, .proc/explodable_insert_item)
+ RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/detonate)
+ if(ismovableatom(parent))
+ RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, .proc/explodable_impact)
+ RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/explodable_bump)
+ if(isitem(parent))
+ RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/explodable_attack)
+ RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/on_equip)
+ RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/on_drop)
+
+
+
+ if(devastation_range_override)
+ devastation_range = devastation_range_override
+ if(heavy_impact_range_override)
+ heavy_impact_range = heavy_impact_range_override
+ if(light_impact_range_override)
+ light_impact_range = light_impact_range_override
+ if(flash_range_override)
+ flash_range = flash_range_override
+
+/datum/component/explodable/proc/explodable_insert_item(datum/source, obj/item/I, mob/M, silent = FALSE, force = FALSE)
+ check_if_detonate(I)
+
+/datum/component/explodable/proc/explodable_impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum)
+ check_if_detonate(hit_atom)
+
+/datum/component/explodable/proc/explodable_bump(datum/source, atom/A)
+ check_if_detonate(A)
+
+///Called when you use this object to attack sopmething
+/datum/component/explodable/proc/explodable_attack(datum/source, atom/movable/target, mob/living/user)
+ check_if_detonate(target)
+
+///Called when you attack a specific body part of the thing this is equipped on. Useful for exploding pants.
+/datum/component/explodable/proc/explodable_attack_zone(datum/source, damage, damagetype, def_zone)
+ if(!def_zone)
+ return
+ if(damagetype != BURN) //Don't bother if it's not fire.
+ return
+ if(!is_hitting_zone(def_zone)) //You didn't hit us! ha!
+ return
+ detonate()
+
+/datum/component/explodable/proc/on_equip(datum/source, mob/equipper, slot)
+ RegisterSignal(equipper, COMSIG_MOB_APPLY_DAMGE, .proc/explodable_attack_zone)
+
+/datum/component/explodable/proc/on_drop(datum/source, mob/user)
+ UnregisterSignal(user, COMSIG_MOB_APPLY_DAMGE)
+
+/// Checks if we're hitting the zone this component is covering
+/datum/component/explodable/proc/is_hitting_zone(def_zone)
+ var/obj/item/item = parent
+ var/mob/living/L = item.loc //Get whoever is equipping the item currently
+
+ if(!istype(L))
+ return
+
+ var/obj/item/bodypart/bodypart = L.get_bodypart(check_zone(def_zone))
+
+ var/list/equipment_items = list()
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ equipment_items += list(C.head, C.wear_mask, C.back, C.gloves, C.shoes, C.glasses, C.ears)
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ equipment_items += list(H.wear_suit, H.w_uniform, H.belt, H.s_store, H.wear_id)
+
+ for(var/bp in equipment_items)
+ if(!bp)
+ continue
+
+ var/obj/item/I = bp
+ if(I.body_parts_covered & bodypart.body_part)
+ return TRUE
+ return FALSE
+
+
+/datum/component/explodable/proc/check_if_detonate(target)
+ if(!isitem(target))
+ return
+ var/obj/item/I = target
+ if(!I.is_hot())
+ return
+ detonate() //If we're touching a hot item we go boom
+
+
+/// Expldoe and remove the object
+/datum/component/explodable/proc/detonate()
+ var/atom/A = parent
+ explosion(A, devastation_range, heavy_impact_range, light_impact_range, flash_range) //epic explosion time
+ qdel(A)
+
+
diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm
index 48fa758db14..45fcf8e03b9 100644
--- a/code/datums/components/material_container.dm
+++ b/code/datums/components/material_container.dm
@@ -1,4 +1,4 @@
-/*
+/*!
This datum should be used for handling mineral contents of machines and whatever else is supposed to hold minerals and make use of them.
Variables:
@@ -13,7 +13,7 @@
var/total_amount = 0
var/max_amount
var/sheet_type
- var/list/materials
+ var/list/materials //Map of key = material ref | Value = amount
var/show_on_examine
var/disable_attackby
var/list/allowed_typecache
@@ -22,6 +22,7 @@
var/datum/callback/precondition
var/datum/callback/after_insert
+/// Sets up the proper signals and fills the list of materials with the appropriate references.
/datum/component/material_container/Initialize(list/mat_list, max_amt = 0, _show_on_examine = FALSE, list/allowed_types, datum/callback/_precondition, datum/callback/_after_insert, _disable_attackby)
materials = list()
max_amount = max(0, max_amt)
@@ -40,23 +41,19 @@
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy)
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/OnExamine)
- var/list/possible_mats = list()
- for(var/mat_type in subtypesof(/datum/material))
- var/datum/material/MT = mat_type
- possible_mats[initial(MT.id)] = mat_type
- for(var/id in mat_list)
- if(possible_mats[id])
- var/mat_path = possible_mats[id]
- materials[id] = new mat_path()
+ for(var/mat in mat_list) //Make the assoc list ref | amount
+ var/datum/material/M = getmaterialref(mat) || mat
+ materials[M] = 0
/datum/component/material_container/proc/OnExamine(datum/source, mob/user)
if(show_on_examine)
for(var/I in materials)
- var/datum/material/M = materials[I]
- var/amt = amount(M.id)
+ var/datum/material/M = I
+ var/amt = materials[I]
if(amt)
to_chat(user, "It has [amt] units of [lowertext(M.name)] stored.")
+/// Proc that allows players to fill the parent with mats
/datum/component/material_container/proc/OnAttackBy(datum/source, obj/item/I, mob/living/user)
var/list/tc = allowed_typecache
if(disable_attackby)
@@ -81,6 +78,7 @@
return
user_insert(I, user)
+/// Proc used for when player inserts materials
/datum/component/material_container/proc/user_insert(obj/item/I, mob/living/user)
set waitfor = FALSE
var/requested_amount
@@ -112,24 +110,34 @@
else if(I == active_held)
user.put_in_active_hand(I)
-//For inserting an amount of material
-/datum/component/material_container/proc/insert_amount(amt, id = null)
- if(amt > 0 && has_space(amt))
- var/total_amount_saved = total_amount
- if(id)
- var/datum/material/M = materials[id]
- if(M)
- M.amount += amt
- total_amount += amt
- else
- for(var/i in materials)
- var/datum/material/M = materials[i]
- M.amount += amt
- total_amount += amt
- return (total_amount - total_amount_saved)
- return FALSE
+/// Proc specifically for inserting items, returns the amount of materials entered.
+/datum/component/material_container/proc/insert_item(obj/item/I, var/multiplier = 1, stack_amt)
+ if(!I)
+ return FALSE
+ if(istype(I, /obj/item/stack))
+ return insert_stack(I, stack_amt, multiplier)
-/datum/component/material_container/proc/insert_stack(obj/item/stack/S, amt, multiplier = 1)
+ multiplier = CEILING(multiplier, 0.01)
+
+ var/material_amount = get_item_material_amount(I)
+ if(!material_amount || !has_space(material_amount))
+ return FALSE
+
+ last_inserted_id = insert_item_materials(I, multiplier)
+ return material_amount
+
+/datum/component/material_container/proc/insert_item_materials(obj/item/I, multiplier = 1)
+ var/primary_mat
+ var/max_mat_value = 0
+ for(var/MAT in materials)
+ materials[MAT] += I.materials[MAT] * multiplier
+ total_amount += I.materials[MAT] * multiplier
+ if(I.materials[MAT] > max_mat_value)
+ primary_mat = MAT
+ return primary_mat
+
+/// Proc for putting a stack inside of the container
+/datum/component/material_container/proc/insert_stack(obj/item/stack/S, amt, multiplier = 1)
if(isnull(amt))
amt = S.amount
@@ -147,250 +155,198 @@
if(!amt)
return FALSE
- last_inserted_id = insert_materials(S,amt * multiplier)
+ last_inserted_id = insert_item_materials(S,amt * multiplier)
S.use(amt)
return amt
-/datum/component/material_container/proc/insert_item(obj/item/I, multiplier = 1, stack_amt)
- if(!I)
- return FALSE
- if(istype(I, /obj/item/stack))
- return insert_stack(I, stack_amt, multiplier)
+/// For inserting an amount of material
+/datum/component/material_container/proc/insert_amount_mat(amt, var/datum/material/mat)
+ if(!istype(mat))
+ mat = getmaterialref(mat)
+ if(amt > 0 && has_space(amt))
+ var/total_amount_saved = total_amount
+ if(mat)
+ materials[mat] += amt
+ else
+ for(var/i in materials)
+ materials[i] += amt
+ total_amount += amt
+ return (total_amount - total_amount_saved)
+ return FALSE
- var/material_amount = get_item_material_amount(I)
- if(!material_amount || !has_space(material_amount))
- return FALSE
-
- last_inserted_id = insert_materials(I, multiplier)
- return material_amount
-
-/datum/component/material_container/proc/insert_materials(obj/item/I, multiplier = 1) //for internal usage only
- var/datum/material/M
- var/primary_mat
- var/max_mat_value = 0
- for(var/MAT in materials)
- M = materials[MAT]
- M.amount += I.materials[MAT] * multiplier
- total_amount += I.materials[MAT] * multiplier
- if(I.materials[MAT] > max_mat_value)
- primary_mat = MAT
- return primary_mat
-
-//For consuming material
-//mats is a list of types of material to use and the corresponding amounts, example: list(MAT_METAL=100, MAT_GLASS=200)
-/datum/component/material_container/proc/use_amount(list/mats, multiplier=1)
- if(!mats || !mats.len)
- return FALSE
-
- var/datum/material/M
- for(var/MAT in materials)
- M = materials[MAT]
- if(M.amount < (mats[MAT] * multiplier))
- return FALSE
-
- var/total_amount_save = total_amount
- for(var/MAT in materials)
- M = materials[MAT]
- M.amount -= mats[MAT] * multiplier
- total_amount -= mats[MAT] * multiplier
-
- return total_amount_save - total_amount
-
-
-/datum/component/material_container/proc/use_amount_type(amt, id)
- var/datum/material/M = materials[id]
- if(M)
- if(M.amount >= amt)
- M.amount -= amt
+/// Uses an amount of a specific material, effectively removing it.
+/datum/component/material_container/proc/use_amount_mat(amt, var/datum/material/mat)
+ if(!istype(mat))
+ mat = getmaterialref(mat)
+ var/amount = materials[mat]
+ if(mat)
+ if(amount >= amt)
+ materials[mat] -= amt
total_amount -= amt
return amt
return FALSE
-/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, id)
- if((amt==0)||(!T)||(!id))
+/// Proc for transfering materials to another container.
+/datum/component/material_container/proc/transer_amt_to(var/datum/component/material_container/T, amt, var/datum/material/mat)
+ if(!istype(mat))
+ mat = getmaterialref(mat)
+ if((amt==0)||(!T)||(!mat))
return FALSE
if(amt<0)
- return T.transer_amt_to(src, -amt, id)
- var/datum/material/M = materials[id]
-
- if(M)
- var/tr = min(amt, M.amount,T.can_insert_amount(amt, id))
- if(tr)
- use_amount_type(tr, id)
- T.insert_amount(tr, id)
- return tr
+ return T.transer_amt_to(src, -amt, mat)
+ var/tr = min(amt, materials[mat],T.can_insert_amount_mat(amt, mat))
+ if(tr)
+ use_amount_mat(tr, mat)
+ T.insert_amount_mat(tr, mat)
+ return tr
return FALSE
-/datum/component/material_container/proc/can_insert_amount(amt, id)
- if(amt && id)
- var/datum/material/M = materials[id]
+/// Proc for checking if there is room in the component, returning the amount or else the amount lacking.
+/datum/component/material_container/proc/can_insert_amount_mat(amt, mat)
+ if(amt && mat)
+ var/datum/material/M = mat
if(M)
if((total_amount + amt) <= max_amount)
return amt
else
return (max_amount-total_amount)
-/datum/component/material_container/proc/can_use_amount(amt, id, list/mats)
- if(amt && id)
- var/datum/material/M = materials[id]
- if(M && M.amount >= amt)
- return TRUE
- else if(istype(mats))
- for(var/M in mats)
- if(materials[M] && (mats[M] <= materials[M]))
- continue
- else
- return FALSE
- return TRUE
- return FALSE
-//For spawning mineral sheets; internal use only
-/datum/component/material_container/proc/retrieve(sheet_amt, datum/material/M, target = null)
+/// For consuming a dictionary of materials. mats is the map of materials to use and the corresponding amounts, example: list(M/datum/material/glass =100, datum/material/iron=200)
+/datum/component/material_container/proc/use_materials(list/mats, multiplier=1)
+ if(!mats || !length(mats))
+ return FALSE
+
+ var/list/mats_to_remove = list() //Assoc list MAT | AMOUNT
+
+ for(var/x in mats) //Loop through all required materials
+ var/datum/material/req_mat = x
+ if(!istype(req_mat))
+ req_mat = getmaterialref(req_mat) //Get the ref if necesary
+ if(!materials[req_mat]) //Do we have the resource?
+ return FALSE //Can't afford it
+ var/amount_required = mats[x] * multiplier
+ if(!(materials[req_mat] >= amount_required)) // do we have enough of the resource?
+ return FALSE //Can't afford it
+ mats_to_remove[req_mat] += amount_required //Add it to the assoc list of things to remove
+ continue
+
+ var/total_amount_save = total_amount
+
+ for(var/i in mats_to_remove)
+ total_amount_save -= use_amount_mat(mats_to_remove[i], i)
+
+ return total_amount_save - total_amount
+
+/// For spawning mineral sheets at a specific location. Used by machines to output sheets.
+/datum/component/material_container/proc/retrieve_sheets(sheet_amt, var/datum/material/M, target = null)
if(!M.sheet_type)
- return 0
+ return 0 //Add greyscale sheet handling here later
if(sheet_amt <= 0)
return 0
if(!target)
target = get_turf(parent)
- if(M.amount < (sheet_amt * MINERAL_MATERIAL_AMOUNT))
- sheet_amt = round(M.amount / MINERAL_MATERIAL_AMOUNT)
+ if(materials[M] < (sheet_amt * MINERAL_MATERIAL_AMOUNT))
+ sheet_amt = round(materials[M] / MINERAL_MATERIAL_AMOUNT)
var/count = 0
while(sheet_amt > MAX_STACK_SIZE)
new M.sheet_type(target, MAX_STACK_SIZE)
count += MAX_STACK_SIZE
- use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
+ use_amount_mat(sheet_amt * MINERAL_MATERIAL_AMOUNT, M)
sheet_amt -= MAX_STACK_SIZE
if(sheet_amt >= 1)
new M.sheet_type(target, sheet_amt)
count += sheet_amt
- use_amount_type(sheet_amt * MINERAL_MATERIAL_AMOUNT, M.id)
+ use_amount_mat(sheet_amt * MINERAL_MATERIAL_AMOUNT, M)
return count
-/datum/component/material_container/proc/retrieve_sheets(sheet_amt, id, target = null)
- if(materials[id])
- return retrieve(sheet_amt, materials[id], target)
- return FALSE
-/datum/component/material_container/proc/retrieve_amount(amt, id, target)
- return retrieve_sheets(amount2sheet(amt), id, target)
-
-/datum/component/material_container/proc/retrieve_all(target = null)
+/// Proc to get all the materials and dump them as sheets
+/datum/component/material_container/proc/retrieve_all(target = null)
var/result = 0
- var/datum/material/M
for(var/MAT in materials)
- M = materials[MAT]
- result += retrieve_sheets(amount2sheet(M.amount), MAT, target)
+ var/amount = materials[MAT]
+ result += retrieve_sheets(amount2sheet(amount), MAT, target)
return result
+/// Proc that returns TRUE if the container has space
/datum/component/material_container/proc/has_space(amt = 0)
return (total_amount + amt) <= max_amount
+/// Checks if its possible to afford a certain amount of materials. Takes a dictionary of materials.
/datum/component/material_container/proc/has_materials(list/mats, multiplier=1)
if(!mats || !mats.len)
return FALSE
- var/datum/material/M
- for(var/MAT in mats)
- M = materials[MAT]
- if(M.amount < (mats[MAT] * multiplier))
+ for(var/x in mats) //Loop through all required materials
+ var/datum/material/req_mat = x
+ if(!istype(req_mat))
+ if(ispath(req_mat)) //Is this an actual material, or is it a category?
+ req_mat = getmaterialref(req_mat) //Get the ref
+
+ else // Its a category. (For example MAT_CATEGORY_RIGID)
+ if(!has_enough_of_category(req_mat, mats[req_mat], multiplier)) //Do we have enough of this category?
+ return FALSE
+ else
+ continue
+
+ if(!has_enough_of_material(req_mat, mats[req_mat], multiplier))//Not a category, so just check the normal way
return FALSE
+
return TRUE
-/datum/component/material_container/proc/amount2sheet(amt)
+/// Returns all the categories in a recipe.
+/datum/component/material_container/proc/get_categories(list/mats)
+ var/list/categories = list()
+ for(var/x in mats) //Loop through all required materials
+ if(!istext(x)) //This means its not a category
+ continue
+ categories += x
+ return categories
+
+
+/// Returns TRUE if you have enough of the specified material.
+/datum/component/material_container/proc/has_enough_of_material(var/datum/material/req_mat, amount, multiplier=1)
+ if(!materials[req_mat]) //Do we have the resource?
+ return FALSE //Can't afford it
+ var/amount_required = amount * multiplier
+ if(materials[req_mat] >= amount_required) // do we have enough of the resource?
+ return TRUE
+ return FALSE //Can't afford it
+
+/// Returns TRUE if you have enough of a specified material category (Which could be multiple materials)
+/datum/component/material_container/proc/has_enough_of_category(category, amount, multiplier=1)
+ for(var/i in SSmaterials.materials_by_category[category])
+ var/datum/material/mat = i
+ if(materials[mat] >= amount) //we have enough
+ return TRUE
+ return FALSE
+
+/// Turns a material amount into the amount of sheets it should output
+/datum/component/material_container/proc/amount2sheet(amt)
if(amt >= MINERAL_MATERIAL_AMOUNT)
return round(amt / MINERAL_MATERIAL_AMOUNT)
return FALSE
+/// Turns an amount of sheets into the amount of material amount it should output
/datum/component/material_container/proc/sheet2amount(sheet_amt)
if(sheet_amt > 0)
return sheet_amt * MINERAL_MATERIAL_AMOUNT
return FALSE
-/datum/component/material_container/proc/amount(id)
- var/datum/material/M = materials[id]
- return M ? M.amount : 0
-//returns the amount of material relevant to this container;
-//if this container does not support glass, any glass in 'I' will not be taken into account
+///returns the amount of material relevant to this container; if this container does not support glass, any glass in 'I' will not be taken into account
/datum/component/material_container/proc/get_item_material_amount(obj/item/I)
if(!istype(I))
return FALSE
var/material_amount = 0
- for(var/MAT in materials)
+ for(var/MAT in I.materials)
material_amount += I.materials[MAT]
return material_amount
-
-/datum/material
- var/name
- var/amount = 0
- var/id = null
- var/sheet_type = null
- var/coin_type = null
-
-/datum/material/metal
- name = "Metal"
- id = MAT_METAL
- sheet_type = /obj/item/stack/sheet/metal
- coin_type = /obj/item/coin/iron
-
-/datum/material/glass
- name = "Glass"
- id = MAT_GLASS
- sheet_type = /obj/item/stack/sheet/glass
-
-/datum/material/silver
- name = "Silver"
- id = MAT_SILVER
- sheet_type = /obj/item/stack/sheet/mineral/silver
- coin_type = /obj/item/coin/silver
-
-/datum/material/gold
- name = "Gold"
- id = MAT_GOLD
- sheet_type = /obj/item/stack/sheet/mineral/gold
- coin_type = /obj/item/coin/gold
-
-/datum/material/diamond
- name = "Diamond"
- id = MAT_DIAMOND
- sheet_type = /obj/item/stack/sheet/mineral/diamond
- coin_type = /obj/item/coin/diamond
-
-/datum/material/uranium
- name = "Uranium"
- id = MAT_URANIUM
- sheet_type = /obj/item/stack/sheet/mineral/uranium
- coin_type = /obj/item/coin/uranium
-
-/datum/material/plasma
- name = "Solid Plasma"
- id = MAT_PLASMA
- sheet_type = /obj/item/stack/sheet/mineral/plasma
- coin_type = /obj/item/coin/plasma
-
-/datum/material/bluespace
- name = "Bluespace Mesh"
- id = MAT_BLUESPACE
- sheet_type = /obj/item/stack/sheet/bluespace_crystal
-
-/datum/material/bananium
- name = "Bananium"
- id = MAT_BANANIUM
- sheet_type = /obj/item/stack/sheet/mineral/bananium
- coin_type = /obj/item/coin/bananium
-
-/datum/material/titanium
- name = "Titanium"
- id = MAT_TITANIUM
- sheet_type = /obj/item/stack/sheet/mineral/titanium
-
-/datum/material/biomass
- name = "Biomass"
- id = MAT_BIOMASS
-
-/datum/material/plastic
- name = "Plastic"
- id = MAT_PLASTIC
- sheet_type = /obj/item/stack/sheet/plastic
+/// Returns the amount of a specific material in this container.
+/datum/component/material_container/proc/get_material_amount(var/datum/material/mat)
+ if(!istype(mat))
+ mat = getmaterialref(mat)
+ return(materials[mat])
diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm
index 947d810dffd..0a54a56aa89 100644
--- a/code/datums/components/radioactive.dm
+++ b/code/datums/components/radioactive.dm
@@ -76,6 +76,8 @@
/datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user)
radiation_pulse(parent, strength/20)
target.rad_act(strength/2)
+ if(!hl3_release_date)
+ return
strength -= strength / hl3_release_date
#undef RAD_AMOUNT_LOW
diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm
index 897e810fe62..08d45201741 100644
--- a/code/datums/components/remote_materials.dm
+++ b/code/datums/components/remote_materials.dm
@@ -54,7 +54,7 @@ handles linking back and forth.
/datum/component/remote_materials/proc/_MakeLocal()
silo = null
mat_container = parent.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, MAT_PLASTIC),
+ list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic),
local_size,
FALSE,
/obj/item/stack)
diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm
new file mode 100644
index 00000000000..6f5b4b99666
--- /dev/null
+++ b/code/datums/elements/firestacker.dm
@@ -0,0 +1,40 @@
+/**
+ * Can be applied to /atom/movable subtypes to make them apply fire stacks to things they hit
+ */
+/datum/element/firestacker
+ element_flags = ELEMENT_DETACH
+ /// A list in format {atom/movable/owner, number}
+ /// Used to keep track of movables which want to apply a different number of fire stacks than default
+ var/list/amount_by_owner = list()
+
+/datum/element/firestacker/Attach(datum/target, amount)
+ . = ..()
+ if(!ismovableatom(target))
+ return ELEMENT_INCOMPATIBLE
+ RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/impact)
+ if(isitem(target))
+ RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/item_attack)
+ RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, .proc/item_attack_self)
+
+ if(amount) // If amount is not given we default to 1 and don't need to save it here
+ amount_by_owner[target] = amount
+
+/datum/element/firestacker/Detach(datum/source, force)
+ . = ..()
+ UnregisterSignal(source, list(COMSIG_MOVABLE_IMPACT, COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_SELF))
+ amount_by_owner -= source
+
+/datum/element/firestacker/proc/stack_on(datum/owner, mob/living/target)
+ target.adjust_fire_stacks(amount_by_owner[owner] || 1)
+
+/datum/element/firestacker/proc/impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum)
+ if(isliving(hit_atom))
+ stack_on(source, hit_atom)
+
+/datum/element/firestacker/proc/item_attack(datum/source, atom/movable/target, mob/living/user)
+ if(isliving(target))
+ stack_on(source, target)
+
+/datum/element/firestacker/proc/item_attack_self(datum/source, mob/user)
+ if(isliving(user))
+ stack_on(source, user)
diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm
index a692726bde6..549ed72a93d 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -216,7 +216,7 @@
desc = "Stores recorder holocalls."
icon_state = "holodisk"
obj_flags = UNIQUE_RENAME
- materials = list(MAT_METAL = 100, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
var/datum/holorecord/record
//Preset variables
var/preset_image_type
diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm
new file mode 100644
index 00000000000..ec3ec0d05c2
--- /dev/null
+++ b/code/datums/materials/_material.dm
@@ -0,0 +1,67 @@
+/*! Material datum
+
+Simple datum which is instanced once per type and is used for every object of said material. It has a variety of variables that define behavior. Subtyping from this makes it easier to create your own materials.
+
+*/
+
+
+/datum/material
+ var/name = "material"
+ var/desc = "its..stuff."
+ ///Var that's mostly used by science machines to identify specific materials, should most likely be phased out at some point
+ var/id = "mat"
+ ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null.
+ var/color
+ ///Base alpha of the material, is used for greyscale icons.
+ var/alpha
+ ///Materials "Traits". its a map of key = category | Value = Bool. Used to define what it can be used for.gold
+ var/list/categories = list()
+ ///The type of sheet this material creates. This should be replaced as soon as possible by greyscale sheets.
+ var/sheet_type
+ ///The type of coin this material spawns. This should be replaced as soon as possible by greyscale coins.
+ var/coin_type
+ ///This is a modifier for force, and resembles the strength of the material
+ var/strength_modifier = 1
+ ///This is a modifier for integrity, and resembles the strength of the material
+ var/integrity_modifier = 1
+
+///This proc is called when the material is added to an object.
+/datum/material/proc/on_applied(atom/source, amount, material_flags)
+ if(!(material_flags & MATERIAL_NO_COLOR)) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
+ if(color) //Do we have a custom color?
+ source.add_atom_colour(color, FIXED_COLOUR_PRIORITY)
+ if(alpha)
+ source.alpha = alpha
+
+ if(istype(source, /obj)) //objs
+ on_applied_obj(source, amount, material_flags)
+
+///This proc is called when the material is added to an object specifically.
+/datum/material/proc/on_applied_obj(var/obj/o, amount, material_flags)
+ var/new_max_integrity = CEILING(o.max_integrity * integrity_modifier, 1)
+ // This is to keep the same damage relative to the max integrity of the object
+ o.obj_integrity = (o.obj_integrity / o.max_integrity) * new_max_integrity
+ o.max_integrity = new_max_integrity
+ o.force *= strength_modifier
+ o.throwforce *= strength_modifier
+
+
+///This proc is called when the material is removed from an object.
+/datum/material/proc/on_removed(atom/source, material_flags)
+ if(!(material_flags & MATERIAL_NO_COLOR)) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example
+ if(color)
+ source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color)
+ source.alpha = initial(source.alpha)
+
+ if(istype(source, /obj)) //objs
+ on_removed_obj(source, material_flags)
+
+///This proc is called when the material is removed from an object specifically.
+/datum/material/proc/on_removed_obj(var/obj/o, amount, material_flags)
+ var/new_max_integrity = initial(o.max_integrity)
+ // This is to keep the same damage relative to the max integrity of the object
+ o.obj_integrity = (o.obj_integrity / o.max_integrity) * new_max_integrity
+
+ o.max_integrity = new_max_integrity
+ o.force = initial(o.force)
+ o.throwforce = initial(o.throwforce)
diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm
new file mode 100644
index 00000000000..f9f5a947be1
--- /dev/null
+++ b/code/datums/materials/basemats.dm
@@ -0,0 +1,149 @@
+///Has no special properties.
+/datum/material/iron
+ name = "iron"
+ id = "iron"
+ desc = "Common iron ore often found in sedimentary and igneous layers of the crust."
+ color = "#878687"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/metal
+ coin_type = /obj/item/coin/iron
+
+///Breaks extremely easily but is transparent.
+/datum/material/glass
+ name = "glass"
+ id = "glass"
+ desc = "Glass forged by melting sand."
+ color = "#dae6f0"
+ alpha = 210
+ categories = list(MAT_CATEGORY_RIGID = TRUE)
+ integrity_modifier = 0.1
+ sheet_type = /obj/item/stack/sheet/glass
+
+
+///Has no special properties. Could be good against vampires in the future perhaps.
+/datum/material/silver
+ name = "silver"
+ id = "silver"
+ desc = "Silver"
+ color = "#bdbebf"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/silver
+ coin_type = /obj/item/coin/silver
+
+///Slight force increase
+/datum/material/gold
+ name = "gold"
+ id = "gold"
+ desc = "Gold"
+ color = "#f0972b"
+ strength_modifier = 1.2
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/gold
+ coin_type = /obj/item/coin/gold
+
+///Has no special properties
+/datum/material/diamond
+ name = "diamond"
+ id = "diamond"
+ desc = "Highly pressurized carbon"
+ color = "#22c2d4"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/diamond
+ coin_type = /obj/item/coin/diamond
+
+///Is slightly radioactive
+/datum/material/uranium
+ name = "uranium"
+ id = "uranium"
+ desc = "Uranium"
+ color = "#1fb83b"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/uranium
+ coin_type = /obj/item/coin/uranium
+
+/datum/material/uranium/on_applied(atom/source, amount, material_flags)
+ . = ..()
+ source.AddComponent(/datum/component/radioactive, amount / 10, source, 0) //half-life of 0 because we keep on going.
+
+/datum/material/uranium/on_removed(atom/source, material_flags)
+ . = ..()
+ qdel(source.GetComponent(/datum/component/radioactive))
+
+
+///Adds firestacks on hit (Still needs support to turn into gas on destruction)
+/datum/material/plasma
+ name = "plasma"
+ id = "plasma"
+ desc = "Isn't plasma a state of matter? Oh whatever."
+ color = "#c716b8"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/plasma
+ coin_type = /obj/item/coin/plasma
+
+/datum/material/plasma/on_applied(atom/source, amount, material_flags)
+ . = ..()
+ if(ismovableatom(source))
+ source.AddElement(/datum/element/firestacker)
+ source.AddComponent(/datum/component/explodable, 0, 0, amount / 1000, amount / 500)
+
+/datum/material/plasma/on_removed(atom/source, material_flags)
+ . = ..()
+ source.RemoveElement(/datum/element/firestacker)
+ qdel(source.GetComponent(/datum/component/explodable))
+
+///Can cause bluespace effects on use. (Teleportation) (Not yet implemented)
+/datum/material/bluespace
+ name = "bluespace crystal"
+ id = "bluespace_crystal"
+ desc = "Crystals with bluespace properties"
+ color = "#506bc7"
+ categories = list(MAT_CATEGORY_ORE = TRUE)
+ sheet_type = /obj/item/stack/sheet/bluespace_crystal
+
+///Honks and slips
+/datum/material/bananium
+ name = "bananium"
+ id = "bananium"
+ desc = "Material with hilarious properties"
+ color = "#fff263"
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/bananium
+ coin_type = /obj/item/coin/bananium
+
+/datum/material/bananium/on_applied(atom/source, amount, material_flags)
+ . = ..()
+ source.AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50)
+ source.AddComponent(/datum/component/slippery, min(amount / 10, 80))
+
+/datum/material/bananium/on_removed(atom/source, amount, material_flags)
+ . = ..()
+ qdel(source.GetComponent(/datum/component/slippery))
+ qdel(source.GetComponent(/datum/component/squeak))
+
+
+///Mediocre force increase
+/datum/material/titanium
+ name = "titanium"
+ id = "titanium"
+ desc = "Titanium"
+ color = "#b3c0c7"
+ strength_modifier = 1.3
+ categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE)
+ sheet_type = /obj/item/stack/sheet/mineral/titanium
+
+///Force decrease
+/datum/material/plastic
+ name = "plastic"
+ id = "plastic"
+ desc = "plastic"
+ color = "#caccd9"
+ strength_modifier = 0.85
+ sheet_type = /obj/item/stack/sheet/plastic
+
+///Force decrease and mushy sound effect. (Not yet implemented)
+/datum/material/biomass
+ name = "biomass"
+ id = "biomass"
+ desc = "Organic matter"
+ color = "#735b4d"
+ strength_modifier = 0.8
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index fb579a4b1a9..4d3cb129888 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -68,6 +68,12 @@
/// Radiation insulation types
var/rad_insulation = RAD_NO_INSULATION
+ ///The custom materials this atom is made of, used by a lot of things like furniture, walls, and floors (if I finish the functionality, that is.)
+ var/list/custom_materials
+ ///Bitfield for how the atom handles materials.
+ var/material_flags = NONE
+
+
/**
* Called when an atom is created in byond (built in engine proc)
*
@@ -146,6 +152,16 @@
if (canSmoothWith)
canSmoothWith = typelist("canSmoothWith", canSmoothWith)
+ if(custom_materials && custom_materials.len)
+ var/temp_list = list()
+ for(var/i in custom_materials)
+ var/datum/material/material = getmaterialref(i) || i
+ temp_list[material] = custom_materials[material] //Get the proper instanced version
+
+ custom_materials = null //Null the list to prepare for applying the materials properly
+ set_custom_materials(temp_list)
+
+
ComponentInitialize()
return INITIALIZE_HINT_NORMAL
@@ -448,6 +464,10 @@
if(desc)
. += desc
+ if(custom_materials)
+ for(var/i in custom_materials)
+ var/datum/material/M = i
+ . += "It is made out of [M.name]."
if(reagents)
if(reagents.flags & TRANSPARENT)
. += "It contains:"
@@ -1076,3 +1096,18 @@
/atom/proc/intercept_zImpact(atom/movable/AM, levels = 1)
return FALSE
+
+///Sets the custom materials for an item.
+/atom/proc/set_custom_materials(var/list/materials, multiplier = 1)
+ if(custom_materials) //Only runs if custom materials existed at first. Should usually be the case but check anyways
+ for(var/i in custom_materials)
+ var/datum/material/custom_material = i
+ custom_material.on_removed(src, material_flags) //Remove the current materials
+
+ custom_materials = list() //Reset the list
+
+ for(var/x in materials)
+ var/datum/material/custom_material = x
+
+ custom_material.on_applied(src, materials[custom_material] * multiplier, material_flags)
+ custom_materials[custom_material] += materials[custom_material] * multiplier
\ No newline at end of file
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index b2ff6777564..dd29fba6471 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -40,14 +40,14 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize()
. = ..()
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- bananium.insert_amount(max_recharge, MAT_BANANIUM)
+ bananium.insert_amount_mat(max_recharge, /datum/material/bananium)
START_PROCESSING(SSobj, src)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process()
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- var/bananium_amount = bananium.amount(MAT_BANANIUM)
+ var/bananium_amount = bananium.get_material_amount(/datum/material/bananium)
if(bananium_amount < max_recharge)
- bananium.insert_amount(min(recharge_rate, max_recharge - bananium_amount), MAT_BANANIUM)
+ bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/bananium)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user)
ui_action_click(user)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 51203cd41e6..a5ad945ce9f 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -48,7 +48,7 @@
)
/obj/machinery/autolathe/Initialize()
- AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert))
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/gold, /datum/material/silver, /datum/material/diamond, /datum/material/uranium, /datum/material/plasma, /datum/material/bluespace, /datum/material/bananium, /datum/material/titanium), 0, TRUE, null, null, CALLBACK(src, .proc/AfterMaterialInsert))
. = ..()
wires = new /datum/wires/autolathe(src)
@@ -122,15 +122,16 @@
return ..()
+
/obj/machinery/autolathe/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted)
if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal))
use_power(MINERAL_MATERIAL_AMOUNT / 10)
else
switch(id_inserted)
- if (MAT_METAL)
+ if (/datum/material/iron)
flick("autolathe_o",src)//plays metal insertion animation
- if (MAT_GLASS)
- flick("autolathe_r",src)//plays glass insertion animation
+ else
+ flick("autolathe_r",src)//plays glass insertion animation by default otherwise
use_power(min(1000, amount_inserted / 100))
updateUsrDialog()
@@ -161,18 +162,42 @@
/////////////////
var/coeff = (is_stack ? 1 : prod_coeff) //stacks are unaffected by production coefficient
- var/metal_cost = being_built.materials[MAT_METAL]
- var/glass_cost = being_built.materials[MAT_GLASS]
+ var/total_amount = 0
+
+ for(var/MAT in being_built.materials)
+ total_amount += being_built.materials[MAT]
- var/power = max(2000, (metal_cost+glass_cost)*multiplier/5)
+ var/power = max(2000, (total_amount)*multiplier/5) //Change this to use all materials
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff))
+
+ var/list/materials_used = list()
+ var/list/custom_materials = list() //These will apply their material effect, This should usually only be one.
+
+ for(var/MAT in being_built.materials)
+ var/datum/material/used_material = MAT
+ var/amount_needed = being_built.materials[MAT] * coeff * multiplier
+ if(istext(used_material)) //This means its a category
+ var/list/list_to_show = list()
+ for(var/i in SSmaterials.materials_by_category[used_material])
+ if(materials.materials[i] > 0)
+ list_to_show += i
+
+ used_material = input("Choose [used_material]", "Custom Material") as null|anything in list_to_show
+ if(!used_material)
+ return //Didn't pick any material, so you can't build shit either.
+ custom_materials[used_material] += amount_needed
+
+ materials_used[used_material] = amount_needed
+
+ if(materials.has_materials(materials_used))
busy = TRUE
use_power(power)
icon_state = "autolathe_n"
var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8
- addtimer(CALLBACK(src, .proc/make_item, power, metal_cost, glass_cost, multiplier, coeff, is_stack), time)
+ addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack), time)
+ else
+ to_chat(usr, "Not enough materials for this operation.")
if(href_list["search"])
matching_designs.Cut()
@@ -189,12 +214,12 @@
return
-/obj/machinery/autolathe/proc/make_item(power, metal_cost, glass_cost, multiplier, coeff, is_stack)
+/obj/machinery/autolathe/proc/make_item(power, var/list/materials_used, var/list/picked_materials, multiplier, coeff, is_stack)
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
var/atom/A = drop_location()
use_power(power)
- var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier)
- materials.use_amount(materials_used)
+
+ materials.use_materials(materials_used)
if(is_stack)
var/obj/item/stack/N = new being_built.build_path(A, multiplier)
@@ -207,6 +232,11 @@
for(var/mat in materials_used)
new_item.materials[mat] = materials_used[mat] / multiplier
new_item.autolathe_crafted(src)
+
+ if(length(picked_materials))
+ new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount
+
+
icon_state = "autolathe"
busy = FALSE
updateDialog()
@@ -271,7 +301,9 @@
if(ispath(D.build_path, /obj/item/stack))
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
+ var/max_multiplier
+ for(var/datum/material/mat in D.materials)
+ max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat]))
if (max_multiplier>10 && !disabled)
dat += " x10"
if (max_multiplier>25 && !disabled)
@@ -303,7 +335,9 @@
if(ispath(D.build_path, /obj/item/stack))
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
+ var/max_multiplier
+ for(var/datum/material/mat in D.materials)
+ max_multiplier = min(D.maxstack, round(materials.get_material_amount(mat)/D.materials[mat]))
if (max_multiplier>10 && !disabled)
dat += " x10"
if (max_multiplier>25 && !disabled)
@@ -320,8 +354,10 @@
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
var/dat = "Total amount: [materials.total_amount] / [materials.max_amount] cm3
"
for(var/mat_id in materials.materials)
- var/datum/material/M = materials.materials[mat_id]
- dat += "[M.name] amount: [M.amount] cm3
"
+ var/datum/material/M = mat_id
+ var/mineral_amount = materials.materials[mat_id]
+ if(mineral_amount > 0)
+ dat += "[M.name] amount: [mineral_amount] cm3
"
return dat
/obj/machinery/autolathe/proc/can_build(datum/design/D, amount = 1)
@@ -330,20 +366,25 @@
var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff)
+ var/list/required_materials = list()
+
+ for(var/i in D.materials)
+ required_materials[i] = D.materials[i] * coeff * amount
+
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount)))
- return FALSE
- if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount)))
- return FALSE
- return TRUE
+
+ return materials.has_materials(required_materials)
+
/obj/machinery/autolathe/proc/get_design_cost(datum/design/D)
var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff)
var/dat
- if(D.materials[MAT_METAL])
- dat += "[D.materials[MAT_METAL] * coeff] metal "
- if(D.materials[MAT_GLASS])
- dat += "[D.materials[MAT_GLASS] * coeff] glass"
+ for(var/i in D.materials)
+ if(istext(i)) //Category handling
+ dat += "[D.materials[i] * coeff] [i]"
+ else
+ var/datum/material/M = i
+ dat += "[D.materials[i] * coeff] [M.name] "
return dat
/obj/machinery/autolathe/proc/reset(wire)
@@ -388,4 +429,4 @@
//Called when the object is constructed by an autolathe
//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes
/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A)
- return
+ return
\ No newline at end of file
diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm
index 657cdd3d119..95c3b28cb2a 100644
--- a/code/game/machinery/buttons.dm
+++ b/code/game/machinery/buttons.dm
@@ -283,4 +283,4 @@
desc = "Used for building buttons."
icon_state = "button"
result_path = /obj/machinery/button
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 5f8d2942cd9..34961c2608e 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -8,7 +8,7 @@
desc = "The basic construction for Nanotrasen-Always-Watching-You cameras."
icon = 'icons/obj/machines/camera.dmi'
icon_state = "cameracase"
- materials = list(MAT_METAL=400, MAT_GLASS=250)
+ materials = list(/datum/material/iron=400, /datum/material/glass=250)
result_path = /obj/structure/camera_assembly
/obj/structure/camera_assembly
diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm
index 3f8092c03f7..ecd7aaacf8b 100644
--- a/code/game/machinery/defibrillator_mount.dm
+++ b/code/game/machinery/defibrillator_mount.dm
@@ -138,7 +138,7 @@
desc = "A frame for a defibrillator mount. It can't be removed once it's placed."
icon = 'icons/obj/machines/defib_mount.dmi'
icon_state = "defibrillator_mount"
- materials = list(MAT_METAL = 300, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
w_class = WEIGHT_CLASS_BULKY
result_path = /obj/machinery/defibrillator_mount
pixel_shift = -28
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 0ca54b96b36..5067405dad1 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -15,7 +15,7 @@
density = TRUE
max_integrity = 100
var/proj_pass_rate = 50 //How many projectiles will pass the cover. Lower means stronger cover
- var/material = METAL
+ var/bar_material = METAL
/obj/structure/barricade/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
@@ -26,7 +26,7 @@
return
/obj/structure/barricade/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM && material == METAL)
+ if(I.tool_behaviour == TOOL_WELDER && user.a_intent != INTENT_HARM && bar_material == METAL)
if(obj_integrity < max_integrity)
if(!I.tool_start_check(user, amount=0))
return
@@ -61,7 +61,7 @@
desc = "This space is blocked off by a wooden barricade."
icon = 'icons/obj/structures.dmi'
icon_state = "woodenbarricade"
- material = WOOD
+ bar_material = WOOD
var/drop_amount = 3
/obj/structure/barricade/wooden/attackby(obj/item/I, mob/user)
@@ -105,7 +105,7 @@
max_integrity = 280
proj_pass_rate = 20
pass_flags = LETPASSTHROW
- material = SAND
+ bar_material = SAND
climbable = TRUE
smooth = SMOOTH_TRUE
canSmoothWith = list(/obj/structure/barricade/sandbags, /turf/closed/wall, /turf/closed/wall/r_wall, /obj/structure/falsewall, /obj/structure/falsewall/reinforced, /turf/closed/wall/rust, /turf/closed/wall/r_wall/rust, /obj/structure/barricade/security)
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index f0efd3c34ae..17dd2d3c203 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -50,10 +50,10 @@
/obj/machinery/droneDispenser/Initialize()
. = ..()
- var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/stack)
- materials.insert_amount(starting_amount)
+ var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass), MINERAL_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, TRUE, /obj/item/stack)
+ materials.insert_amount_mat(starting_amount)
materials.precise_insertion = TRUE
- using_materials = list(MAT_METAL=metal_cost, MAT_GLASS=glass_cost)
+ using_materials = list(/datum/material/iron = metal_cost, /datum/material/glass = glass_cost)
/obj/machinery/droneDispenser/preloaded
starting_amount = 5000
@@ -168,7 +168,7 @@
update_icon()
if(DRONE_PRODUCTION)
- materials.use_amount(using_materials)
+ materials.use_materials(using_materials)
if(power_used)
use_power(power_used)
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 0612de7da6c..34de264d6d0 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -174,7 +174,7 @@ GLOBAL_LIST_EMPTY(allCasters)
name = "newscaster frame"
desc = "Used to build newscasters, just secure to the wall."
icon_state = "newscaster"
- materials = list(MAT_METAL=14000, MAT_GLASS=8000)
+ materials = list(/datum/material/iron=14000, /datum/material/glass=8000)
result_path = /obj/machinery/newscaster
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index d7a45696698..3107f933067 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -958,7 +958,7 @@
desc = "Used for building turret control panels."
icon_state = "apc"
result_path = /obj/machinery/turretid
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
/obj/item/gun/proc/get_turret_properties()
. = list()
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index bf56b3aba6b..a31cc631664 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -18,7 +18,7 @@
var/item_recycle_sound = 'sound/items/welder.ogg'
/obj/machinery/recycler/Initialize()
- AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), INFINITY, FALSE, null, null, null, TRUE)
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE)
AddComponent(/datum/component/butchering, 1, amount_produced,amount_produced/5)
. = ..()
update_icon()
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 41f9441162e..d4ecbe67eec 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -527,7 +527,7 @@
range = MELEE|RANGED
equip_cooldown = 0
var/obj/item/gun/medbeam/mech/medigun
- materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000)
/obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Initialize()
. = ..()
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index c993fed484a..34c399c1c7c 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -36,7 +36,7 @@
/obj/machinery/mecha_part_fabricator/Initialize()
var/datum/component/material_container/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(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), 0,
TRUE, /obj/item/stack, CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
materials.precise_insertion = TRUE
stored_research = new
@@ -112,20 +112,22 @@
var/output
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
for(var/mat_id in materials.materials)
- var/datum/material/M = materials.materials[mat_id]
- output += "[M.name]: [M.amount] cm³"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT)
- output += "- Remove \[1\]"
- if(M.amount >= (MINERAL_MATERIAL_AMOUNT * 10))
- output += " | \[10\]"
- output += " | \[All\]"
+ var/datum/material/M = mat_id
+ var/amount = materials.materials[mat_id]
+ output += "[M.name]: [amount] cm³"
+ if(amount >= MINERAL_MATERIAL_AMOUNT)
+ output += "- Remove \[1\]"
+ if(amount >= (MINERAL_MATERIAL_AMOUNT * 10))
+ output += " | \[10\]"
+ output += " | \[All\]"
output += "
"
return output
/obj/machinery/mecha_part_fabricator/proc/get_resources_w_coeff(datum/design/D)
var/list/resources = list()
for(var/R in D.materials)
- resources[R] = get_resource_cost_w_coeff(D, R)
+ var/datum/material/M = R
+ resources[M] = get_resource_cost_w_coeff(D, M)
return resources
/obj/machinery/mecha_part_fabricator/proc/check_resources(datum/design/D)
@@ -142,7 +144,7 @@
var/list/res_coef = get_resources_w_coeff(D)
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- materials.use_amount(res_coef)
+ materials.use_materials(res_coef)
add_overlay("fab-active")
use_power = ACTIVE_POWER_USE
updateUsrDialog()
@@ -246,7 +248,7 @@
updateUsrDialog()
return
-/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, resource, roundto = 1)
+/obj/machinery/mecha_part_fabricator/proc/get_resource_cost_w_coeff(datum/design/D, var/datum/material/resource, roundto = 1)
return round(D.materials[resource]*component_coeff, roundto)
/obj/machinery/mecha_part_fabricator/proc/get_construction_time_w_coeff(datum/design/D, roundto = 1) //aran
@@ -385,7 +387,8 @@
if(href_list["remove_mat"] && href_list["material"])
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- materials.retrieve_sheets(text2num(href_list["remove_mat"]), href_list["material"])
+ var/datum/material/Mat = locate(href_list["material"])
+ materials.retrieve_sheets(text2num(href_list["remove_mat"]), Mat)
updateUsrDialog()
return
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 1e3fef64698..6a0cd2aa654 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -65,7 +65,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
var/equip_delay_other = 20 //In deciseconds, how long an item takes to put on another person
var/strip_delay = 40 //In deciseconds, how long an item takes to remove from another person
var/breakouttime = 0
- var/list/materials
+ var/list/materials //materials in this object, and the amount
var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
@@ -109,6 +109,14 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
materials = typelist("materials", materials)
+ if(materials) //Otherwise, use the instances already provided.
+ var/list/temp_list = list()
+ for(var/i in materials) //Go through all of our materials, get the subsystem instance, and then replace the list.
+ var/amount = materials[i]
+ var/datum/material/M = getmaterialref(i)
+ temp_list[M] = amount
+ materials = temp_list
+
if (attack_verb)
attack_verb = typelist("attack_verb", attack_verb)
@@ -798,4 +806,4 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
return !HAS_TRAIT(src, TRAIT_NODROP)
/obj/item/proc/doStrip(mob/stripper, mob/owner)
- return owner.dropItemToGround(src)
+ return owner.dropItemToGround(src)
\ No newline at end of file
diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm
index 567d73a85b2..414a84d9763 100644
--- a/code/game/objects/items/AI_modules.dm
+++ b/code/game/objects/items/AI_modules.dm
@@ -22,7 +22,7 @@ AI MODULES
throw_range = 7
var/list/laws = list()
var/bypass_law_amt_check = 0
- materials = list(MAT_GOLD=50)
+ materials = list(/datum/material/gold = 50)
/obj/item/aiModule/examine(var/mob/user as mob)
. = ..()
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 9468a61339d..73f6a2ea3bf 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -22,7 +22,7 @@ RLD
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=100000)
+ materials = list(/datum/material/iron=100000)
req_access_txt = "11"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
@@ -599,11 +599,11 @@ RLD
w_class = WEIGHT_CLASS_TINY
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- materials = list(MAT_METAL=12000, MAT_GLASS=8000)
+ materials = list(/datum/material/iron=12000, /datum/material/glass=8000)
var/ammoamt = 40
/obj/item/rcd_ammo/large
- materials = list(MAT_METAL=48000, MAT_GLASS=32000)
+ materials = list(/datum/material/iron=48000, /datum/material/glass=32000)
ammoamt = 160
diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm
index a87d252da14..37e18393c78 100644
--- a/code/game/objects/items/RPD.dm
+++ b/code/game/objects/items/RPD.dm
@@ -200,7 +200,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
throw_speed = 1
throw_range = 5
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=75000, MAT_GLASS=37500)
+ materials = list(/datum/material/iron=75000, /datum/material/glass=37500)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
var/datum/effect_system/spark_spread/spark_system
diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm
index 083246396b1..3789fc2f7a4 100644
--- a/code/game/objects/items/airlock_painter.dm
+++ b/code/game/objects/items/airlock_painter.dm
@@ -7,7 +7,7 @@
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
flags_1 = CONDUCT_1
item_flags = NOBLUDGEON
diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm
index 6bf90b42191..c4921572126 100644
--- a/code/game/objects/items/apc_frame.dm
+++ b/code/game/objects/items/apc_frame.dm
@@ -1,6 +1,6 @@
/obj/item/wallframe
icon = 'icons/obj/wallframe.dmi'
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT*2)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT*2)
flags_1 = CONDUCT_1
item_state = "syringe_kit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
@@ -66,8 +66,8 @@
if(iswallturf(T))
T.attackby(src, user, params)
- var/metal_amt = round(materials[MAT_METAL]/MINERAL_MATERIAL_AMOUNT)
- var/glass_amt = round(materials[MAT_GLASS]/MINERAL_MATERIAL_AMOUNT)
+ var/metal_amt = round(materials[/datum/material/iron]/MINERAL_MATERIAL_AMOUNT) //Replace this shit later
+ var/glass_amt = round(materials[/datum/material/glass]/MINERAL_MATERIAL_AMOUNT) //Replace this shit later
if(W.tool_behaviour == TOOL_WRENCH && (metal_amt || glass_amt))
to_chat(user, "You dismantle [src].")
@@ -119,5 +119,5 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
grind_results = list(/datum/reagent/iron = 10, /datum/reagent/silicon = 10)
diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm
index 5f87f9ffd93..8c1b92172b8 100644
--- a/code/game/objects/items/circuitboards/circuitboard.dm
+++ b/code/game/objects/items/circuitboards/circuitboard.dm
@@ -10,7 +10,7 @@
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- materials = list(MAT_GLASS=1000)
+ materials = list(/datum/material/glass=1000)
w_class = WEIGHT_CLASS_SMALL
grind_results = list(/datum/reagent/silicon = 20)
var/build_path = null
diff --git a/code/game/objects/items/devices/desynchronizer.dm b/code/game/objects/items/devices/desynchronizer.dm
index da2beb575f2..1b4c0878e42 100644
--- a/code/game/objects/items/devices/desynchronizer.dm
+++ b/code/game/objects/items/devices/desynchronizer.dm
@@ -8,7 +8,7 @@
item_flags = NOBLUDGEON
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- materials = list(MAT_METAL=250, MAT_GLASS=500)
+ materials = list(/datum/material/iron=250, /datum/material/glass=500)
var/max_duration = 3000
var/duration = 300
var/last_use = 0
diff --git a/code/game/objects/items/devices/doorCharge.dm b/code/game/objects/items/devices/doorCharge.dm
index 8def1d5ca33..c4e166048e0 100644
--- a/code/game/objects/items/devices/doorCharge.dm
+++ b/code/game/objects/items/devices/doorCharge.dm
@@ -12,7 +12,7 @@
item_flags = NOBLUDGEON
force = 3
attack_verb = list("blown up", "exploded", "detonated")
- materials = list(MAT_METAL=50, MAT_GLASS=30)
+ materials = list(/datum/material/iron=50, /datum/material/glass=30)
/obj/item/doorCharge/ex_act(severity, target)
switch(severity)
diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
index 3d7f7f574a9..76d1a1f23d5 100644
--- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
+++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
@@ -5,7 +5,7 @@
icon = 'icons/obj/module.dmi'
icon_state = "boris"
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL = 50, MAT_GLASS = 300)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 300)
var/recharging = FALSE
var/circuits = 5 //How many circuits the pseudocircuit has left
var/static/recycleable_circuits = typecacheof(list(/obj/item/electronics/firelock, /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, \
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index e742b9f1dfc..7b68a1501b7 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -10,7 +10,7 @@
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
actions_types = list(/datum/action/item_action/toggle_light)
var/on = FALSE
var/brightness_on = 4 //range of light when on
diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm
index a9d6651ca21..c5a1d04fdf8 100644
--- a/code/game/objects/items/devices/forcefieldprojector.dm
+++ b/code/game/objects/items/devices/forcefieldprojector.dm
@@ -9,7 +9,7 @@
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- materials = list(MAT_METAL=250, MAT_GLASS=500)
+ materials = list(/datum/material/iron=250, /datum/material/glass=500)
var/max_shield_integrity = 250
var/shield_integrity = 250
var/max_fields = 3
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index f3a892f3a37..fb5db099a58 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -18,7 +18,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL = 150, MAT_GLASS = 150)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 150)
var/grace = RAD_GRACE_PERIOD
var/datum/looping_sound/geiger/soundloop
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 682661617f6..11996f3abc0 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -8,7 +8,7 @@
flags_1 = CONDUCT_1
item_flags = NOBLUDGEON
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL=500, MAT_GLASS=500)
+ materials = list(/datum/material/iron=500, /datum/material/glass=500)
w_class = WEIGHT_CLASS_SMALL
var/turf/pointer_loc
var/energy = 5
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index ff923f46873..fd7766e82d0 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -24,7 +24,7 @@
throwforce = 0
throw_range = 7
throw_speed = 3
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
var/obj/machinery/buffer // simple machine buffer for device linkage
toolspeed = 1
usesound = 'sound/weapons/empty.ogg'
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index 2d0af2cf3c8..7938603ee55 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -6,7 +6,7 @@
item_flags = NOBLUDGEON
var/paint_color = "grey"
- materials = list(MAT_METAL=5000, MAT_GLASS=2000)
+ materials = list(/datum/material/iron=5000, /datum/material/glass=2000)
/obj/item/pipe_painter/afterattack(atom/A, mob/user, proximity_flag)
. = ..()
diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm
index a56d9e878af..515f4212001 100644
--- a/code/game/objects/items/devices/powersink.dm
+++ b/code/game/objects/items/devices/powersink.dm
@@ -13,7 +13,7 @@
throwforce = 5
throw_speed = 1
throw_range = 2
- materials = list(MAT_METAL=750)
+ materials = list(/datum/material/iron=750)
var/drain_rate = 2000000 // amount of power to drain per tick
var/power_drained = 0 // has drained this much power
var/max_power = 6e8 // maximum power that can be drained before exploding
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index 539caa5bf03..a94134499d4 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -9,7 +9,7 @@
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_HUGE
- materials = list(MAT_METAL=10000, MAT_GLASS=2500)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=2500)
var/on = TRUE
var/code = 2
var/frequency = FREQ_ELECTROPACK
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index f91f439f047..3f40b38c233 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -19,7 +19,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
desc = "An updated, modular intercom that fits over the head. Takes encryption keys."
icon_state = "headset"
item_state = "headset"
- materials = list(MAT_METAL=75)
+ materials = list(/datum/material/iron=75)
subspace_transmission = TRUE
canhear_range = 0 // can't hear headsets from very far away
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index ce3b5adc6d1..fe0bac7b320 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -147,4 +147,4 @@
result_path = /obj/item/radio/intercom/unscrewed
pixel_shift = 29
inverse = TRUE
- materials = list(MAT_METAL = 75, MAT_GLASS = 25)
+ materials = list(/datum/material/iron = 75, /datum/material/glass = 25)
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 0caa973c1f7..aa76c054155 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -11,7 +11,7 @@
throw_speed = 3
throw_range = 7
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=75, MAT_GLASS=25)
+ materials = list(/datum/material/iron=75, /datum/material/glass=25)
obj_flags = USES_TGUI
var/on = TRUE
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 26aae058c29..c12209b5813 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -22,7 +22,7 @@ GENE SCANNER
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- materials = list(MAT_METAL=150)
+ materials = list(/datum/material/iron=150)
/obj/item/t_scanner/suicide_act(mob/living/carbon/user)
user.visible_message("[user] begins to emit terahertz-rays into [user.p_their()] brain with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -86,7 +86,7 @@ GENE SCANNER
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=200)
+ materials = list(/datum/material/iron=200)
var/mode = 1
var/scanmode = 0
var/advanced = FALSE
@@ -402,7 +402,7 @@ GENE SCANNER
throw_speed = 3
throw_range = 7
tool_behaviour = TOOL_ANALYZER
- materials = list(MAT_METAL=30, MAT_GLASS=20)
+ materials = list(/datum/material/iron=30, /datum/material/glass=20)
grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
var/cooldown = FALSE
var/cooldown_time = 250
@@ -597,7 +597,7 @@ GENE SCANNER
throwforce = 0
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=30, MAT_GLASS=20)
+ materials = list(/datum/material/iron=30, /datum/material/glass=20)
/obj/item/slime_scanner/attack(mob/living/M, mob/living/user)
if(user.stat || user.eye_blind)
@@ -656,7 +656,7 @@ GENE SCANNER
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=200)
+ materials = list(/datum/material/iron=200)
/obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user)
user.visible_message("[user] has analyzed [M]'s nanites.")
@@ -682,7 +682,7 @@ GENE SCANNER
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=200)
+ materials = list(/datum/material/iron=200)
var/list/discovered = list() //hit a dna console to update the scanners database
var/list/buffer
var/ready = TRUE
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 7186cf6783c..a20cd121856 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -9,7 +9,7 @@
w_class = WEIGHT_CLASS_SMALL
flags_1 = HEAR_1
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL=60, MAT_GLASS=30)
+ materials = list(/datum/material/iron=60, /datum/material/glass=30)
force = 2
throwforce = 0
var/recording = 0
@@ -243,7 +243,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL=20, MAT_GLASS=5)
+ materials = list(/datum/material/iron=20, /datum/material/glass=5)
force = 1
throwforce = 0
var/max_capacity = 600
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 12a0b7db289..768d4220a31 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -69,7 +69,7 @@ effective or pretty fucking useless.
*/
/obj/item/healthanalyzer/rad_laser
- materials = list(MAT_METAL=400)
+ materials = list(/datum/material/iron=400)
var/irradiate = 1
var/intensity = 10 // how much damage the radiation does
var/wavelength = 10 // time it takes for the radiation to kick in, in seconds
diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm
index f958470e793..0b442e148e8 100644
--- a/code/game/objects/items/extinguisher.dm
+++ b/code/game/objects/items/extinguisher.dm
@@ -11,7 +11,7 @@
throw_speed = 2
throw_range = 7
force = 10
- materials = list(MAT_METAL = 90)
+ materials = list(/datum/material/iron = 90)
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
dog_fashion = /datum/dog_fashion/back
resistance_flags = FIRE_PROOF
@@ -36,7 +36,7 @@
throwforce = 2
w_class = WEIGHT_CLASS_SMALL
force = 3
- materials = list(MAT_METAL = 50, MAT_GLASS = 40)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 40)
max_water = 30
sprite_name = "miniFE"
dog_fashion = null
diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm
index 2503b799ff4..e21d2fcff2c 100644
--- a/code/game/objects/items/flamethrower.dm
+++ b/code/game/objects/items/flamethrower.dm
@@ -12,7 +12,7 @@
throw_speed = 1
throw_range = 5
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
resistance_flags = FIRE_PROOF
var/status = FALSE
var/lit = FALSE //on or off
diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm
index fa9de999c30..9f81a2a8f65 100644
--- a/code/game/objects/items/handcuffs.dm
+++ b/code/game/objects/items/handcuffs.dm
@@ -34,7 +34,7 @@
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
breakouttime = 1 MINUTES
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
var/cuffsound = 'sound/weapons/handcuffs.ogg'
@@ -115,7 +115,7 @@
color = "#ff0000"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- materials = list(MAT_METAL=150, MAT_GLASS=75)
+ materials = list(/datum/material/iron=150, /datum/material/glass=75)
breakouttime = 30 SECONDS
cuffsound = 'sound/weapons/cablecuff.ogg'
diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm
index e26f38d7922..c17f0e3c829 100644
--- a/code/game/objects/items/implants/implantcase.dm
+++ b/code/game/objects/items/implants/implantcase.dm
@@ -9,7 +9,7 @@
throw_speed = 2
throw_range = 5
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_GLASS=500)
+ materials = list(/datum/material/glass=500)
var/obj/item/implant/imp = null
var/imp_type
diff --git a/code/game/objects/items/implants/implanter.dm b/code/game/objects/items/implants/implanter.dm
index c116e2cd291..afcdb3e10a2 100644
--- a/code/game/objects/items/implants/implanter.dm
+++ b/code/game/objects/items/implants/implanter.dm
@@ -9,7 +9,7 @@
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=600, MAT_GLASS=200)
+ materials = list(/datum/material/iron=600, /datum/material/glass=200)
var/obj/item/implant/imp = null
var/imp_type = null
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index b8cdf03c52b..c50f3d4ca66 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -22,7 +22,7 @@
throwforce = 0
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
flags_1 = CONDUCT_1
attack_verb = list("attacked", "stabbed", "poked")
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -68,7 +68,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
throw_speed = 3
throw_range = 6
- materials = list(MAT_METAL=12000)
+ materials = list(/datum/material/iron=12000)
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharpness = IS_SHARP_ACCURATE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
@@ -110,7 +110,7 @@
flags_1 = CONDUCT_1
force = 15
throwforce = 10
- materials = list(MAT_METAL=18000)
+ materials = list(/datum/material/iron=18000)
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
w_class = WEIGHT_CLASS_NORMAL
custom_price = 60
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index 2355fb02b8b..52c8a35411c 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -23,7 +23,7 @@
w_class = WEIGHT_CLASS_NORMAL
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
hitsound = 'sound/weapons/chainhit.ogg'
- materials = list(MAT_METAL = 1000)
+ materials = list(/datum/material/iron = 1000)
/obj/item/melee/chainofcommand/suicide_act(mob/user)
user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -65,7 +65,7 @@
sharpness = IS_SHARP
attack_verb = list("slashed", "cut")
hitsound = 'sound/weapons/rapierhit.ogg'
- materials = list(MAT_METAL = 1000)
+ materials = list(/datum/material/iron = 1000)
/obj/item/melee/sabre/Initialize()
. = ..()
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 41b6f052073..b4cce95b6bb 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -15,7 +15,7 @@
w_class = WEIGHT_CLASS_BULKY
throw_speed = 2
throw_range = 3
- materials = list(MAT_METAL = 7500, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 7500, /datum/material/glass = 100)
var/open = TRUE
var/locked = FALSE
var/list/occupants = list()
diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm
index fef6f87fc76..b563e43fd68 100644
--- a/code/game/objects/items/pinpointer.dm
+++ b/code/game/objects/items/pinpointer.dm
@@ -12,7 +12,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL = 500, MAT_GLASS = 250)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 250)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/active = FALSE
var/atom/movable/target //The thing we're searching for
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index 11ed561848c..4c543776b6f 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -20,7 +20,7 @@
throw_speed = 2
throw_range = 3
w_class = WEIGHT_CLASS_BULKY
- materials = list(MAT_GLASS=7500, MAT_METAL=1000)
+ materials = list(/datum/material/glass=7500, /datum/material/iron=1000)
attack_verb = list("shoved", "bashed")
var/cooldown = 0 //shield bash cooldown. based on world.time
transparent = TRUE
@@ -85,7 +85,7 @@
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
transparent = FALSE
- materials = list(MAT_METAL=8500)
+ materials = list(/datum/material/iron=8500)
max_integrity = 65
/obj/item/shield/riot/roman/fake
diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm
index 7df139201a1..3e8674216df 100644
--- a/code/game/objects/items/stacks/bscrystal.dm
+++ b/code/game/objects/items/stacks/bscrystal.dm
@@ -7,7 +7,7 @@
item_color = "cosmos"
singular_name = "bluespace crystal"
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT)
points = 50
var/blink_range = 8 // The teleport range when crushed/thrown at someone.
refined_type = /obj/item/stack/sheet/bluespace_crystal
@@ -50,7 +50,7 @@
/obj/item/stack/ore/bluespace_crystal/artificial
name = "artificial bluespace crystal"
desc = "An artificially made bluespace crystal, it looks delicate."
- materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT*0.5)
+ materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT*0.5)
blink_range = 4 // Not as good as the organic stuff!
points = 0 //nice try
refined_type = null
@@ -64,7 +64,7 @@
item_state = "sheet-polycrystal"
singular_name = "bluespace polycrystal"
desc = "A stable polycrystal, made of fused-together bluespace crystals. You could probably break one off."
- materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT)
attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed")
novariants = TRUE
grind_results = list(/datum/reagent/bluespace = 20)
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 2c8c9157f74..36835ee1e3a 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -17,7 +17,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
throwforce = 10
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=1000)
+ materials = list(/datum/material/iron=1000)
max_amount = 50
attack_verb = list("hit", "bludgeoned", "whacked")
hitsound = 'sound/weapons/grenadelaunch.ogg'
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 01cd34523c8..10c33050a44 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -19,7 +19,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
singular_name = "glass sheet"
icon_state = "sheet-glass"
item_state = "sheet-glass"
- materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/glass
@@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \
singular_name = "plasma glass sheet"
icon_state = "sheet-pglass"
item_state = "sheet-pglass"
- materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmaglass
@@ -134,7 +134,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
singular_name = "reinforced glass sheet"
icon_state = "sheet-rglass"
item_state = "sheet-rglass"
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/rglass
@@ -177,7 +177,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \
singular_name = "reinforced plasma glass sheet"
icon_state = "sheet-prglass"
item_state = "sheet-prglass"
- materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT, MAT_METAL = MINERAL_MATERIAL_AMOUNT * 0.5,)
+ materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5,)
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plasmarglass
@@ -198,7 +198,7 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list(
singular_name = "titanium glass sheet"
icon_state = "sheet-titaniumglass"
item_state = "sheet-titaniumglass"
- materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/titaniumglass
@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
singular_name = "plastitanium glass sheet"
icon_state = "sheet-plastitaniumglass"
item_state = "sheet-plastitaniumglass"
- materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100)
resistance_flags = ACID_PROOF
merge_type = /obj/item/stack/sheet/plastitaniumglass
@@ -237,7 +237,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
item_state = "shard-glass"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
- materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
attack_verb = list("stabbed", "slashed", "sliced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
resistance_flags = ACID_PROOF
@@ -335,5 +335,5 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
force = 6
throwforce = 11
icon_state = "plasmalarge"
- materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
icon_prefix = "plasma"
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index 48dbd240104..4049b1ab414 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \
item_state = "sheet-sandstone"
throw_speed = 3
throw_range = 5
- materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
sheettype = "sandstone"
merge_type = /obj/item/stack/sheet/mineral/sandstone
@@ -103,7 +103,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \
item_state = "sheet-diamond"
singular_name = "diamond"
sheettype = "diamond"
- materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list(/datum/reagent/carbon = 20)
point_value = 25
@@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(diamond_recipes, list ( \
item_state = "sheet-uranium"
singular_name = "uranium sheet"
sheettype = "uranium"
- materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list(/datum/reagent/uranium = 20)
point_value = 20
@@ -158,7 +158,7 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
sheettype = "plasma"
resistance_flags = FLAMMABLE
max_integrity = 100
- materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
grind_results = list(/datum/reagent/toxin/plasma = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/plasma
@@ -199,7 +199,7 @@ GLOBAL_LIST_INIT(plasma_recipes, list ( \
item_state = "sheet-gold"
singular_name = "gold bar"
sheettype = "gold"
- materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/gold=MINERAL_MATERIAL_AMOUNT)
grind_results = list(/datum/reagent/gold = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/gold
@@ -228,7 +228,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \
item_state = "sheet-silver"
singular_name = "silver bar"
sheettype = "silver"
- materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT)
grind_results = list(/datum/reagent/silver = 20)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/silver
@@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \
item_state = "sheet-bananium"
singular_name = "bananium sheet"
sheettype = "bananium"
- materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT)
novariants = TRUE
grind_results = list(/datum/reagent/consumable/banana = 20)
point_value = 50
@@ -285,7 +285,7 @@ GLOBAL_LIST_INIT(bananium_recipes, list ( \
throw_speed = 1
throw_range = 3
sheettype = "titanium"
- materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT)
point_value = 20
merge_type = /obj/item/stack/sheet/mineral/titanium
@@ -315,7 +315,7 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \
throw_speed = 1
throw_range = 3
sheettype = "plastitanium"
- materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT, MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
point_value = 45
merge_type = /obj/item/stack/sheet/mineral/plastitanium
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 877b2e90849..c7b01437e90 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
singular_name = "metal sheet"
icon_state = "sheet-metal"
item_state = "sheet-metal"
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
throwforce = 10
flags_1 = CONDUCT_1
resistance_flags = FIRE_PROOF
@@ -159,7 +159,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \
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)
+ materials = list(/datum/material/iron=2000, /datum/material/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)
@@ -654,7 +654,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)
+ materials = list(/datum/material/plastic=MINERAL_MATERIAL_AMOUNT)
throwforce = 7
merge_type = /obj/item/stack/sheet/plastic
diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm
index fc31dd9b52d..e73b419c639 100644
--- a/code/game/objects/items/stacks/tiles/tile_mineral.dm
+++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm
@@ -5,7 +5,7 @@
icon_state = "tile_plasma"
turf_type = /turf/open/floor/mineral/plasma
mineralType = "plasma"
- materials = list(MAT_PLASMA=500)
+ materials = list(/datum/material/plasma=500)
/obj/item/stack/tile/mineral/uranium
name = "uranium tile"
@@ -14,7 +14,7 @@
icon_state = "tile_uranium"
turf_type = /turf/open/floor/mineral/uranium
mineralType = "uranium"
- materials = list(MAT_URANIUM=500)
+ materials = list(/datum/material/uranium=500)
/obj/item/stack/tile/mineral/gold
name = "gold tile"
@@ -23,7 +23,7 @@
icon_state = "tile_gold"
turf_type = /turf/open/floor/mineral/gold
mineralType = "gold"
- materials = list(MAT_GOLD=500)
+ materials = list(/datum/material/gold=500)
/obj/item/stack/tile/mineral/silver
name = "silver tile"
@@ -32,7 +32,7 @@
icon_state = "tile_silver"
turf_type = /turf/open/floor/mineral/silver
mineralType = "silver"
- materials = list(MAT_SILVER=500)
+ materials = list(/datum/material/silver=500)
/obj/item/stack/tile/mineral/diamond
name = "diamond tile"
@@ -41,7 +41,7 @@
icon_state = "tile_diamond"
turf_type = /turf/open/floor/mineral/diamond
mineralType = "diamond"
- materials = list(MAT_DIAMOND=500)
+ materials = list(/datum/material/diamond=500)
/obj/item/stack/tile/mineral/bananium
name = "bananium tile"
@@ -50,7 +50,7 @@
icon_state = "tile_bananium"
turf_type = /turf/open/floor/mineral/bananium
mineralType = "bananium"
- materials = list(MAT_BANANIUM=500)
+ materials = list(/datum/material/bananium=500)
/obj/item/stack/tile/mineral/abductor
name = "alien floor tile"
@@ -68,7 +68,7 @@
icon_state = "tile_shuttle"
turf_type = /turf/open/floor/mineral/titanium
mineralType = "titanium"
- materials = list(MAT_TITANIUM=500)
+ materials = list(/datum/material/titanium=500)
/obj/item/stack/tile/mineral/plastitanium
name = "plastitanium tile"
@@ -77,7 +77,7 @@
icon_state = "tile_darkshuttle"
turf_type = /turf/open/floor/mineral/plastitanium
mineralType = "plastitanium"
- materials = list(MAT_TITANIUM=250, MAT_PLASMA=250)
+ materials = list(/datum/material/titanium=250, /datum/material/plasma=250)
/obj/item/stack/tile/mineral/snow
name = "snow tile"
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index b1e2b020366..8745cd03c2a 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -204,7 +204,7 @@
desc = "Those could work as a pretty decent throwing weapon."
icon_state = "tile"
force = 6
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
throwforce = 10
flags_1 = CONDUCT_1
turf_type = /turf/open/floor/plasteel
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index c6429076b4c..f006a36c974 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -283,7 +283,7 @@
throw_range = 5
w_class = WEIGHT_CLASS_BULKY
flags_1 = CONDUCT_1
- materials = list(MAT_METAL=3000)
+ materials = list(/datum/material/iron=3000)
/obj/item/storage/bag/tray/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 46cf069f06b..e4f51415e73 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -324,7 +324,7 @@
desc = "Proves to the world that you are the strongest!"
icon_state = "championbelt"
item_state = "champion"
- materials = list(MAT_GOLD=400)
+ materials = list(/datum/material/gold=400)
/obj/item/storage/belt/champion/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 5ee014306a0..a7a594fcd9f 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -1,8 +1,8 @@
/obj/item/storage/toolbox
name = "toolbox"
desc = "Danger. Very robust."
- icon_state = "red"
- item_state = "toolbox_red"
+ icon_state = "toolbox_default"
+ item_state = "toolbox_default"
lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi'
flags_1 = CONDUCT_1
@@ -11,9 +11,10 @@
throw_speed = 2
throw_range = 7
w_class = WEIGHT_CLASS_BULKY
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
attack_verb = list("robusted")
hitsound = 'sound/weapons/smash.ogg'
+ custom_materials = list(/datum/material/iron = 500) //Toolboxes by default use iron as their core, custom material.
var/latches = "single_latch"
var/has_latches = TRUE
@@ -41,6 +42,7 @@
name = "emergency toolbox"
icon_state = "red"
item_state = "toolbox_red"
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/emergency/PopulateContents()
new /obj/item/crowbar/red(src)
@@ -59,11 +61,13 @@
name = "rusty red toolbox"
icon_state = "toolbox_red_old"
has_latches = FALSE
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/mechanical
name = "mechanical toolbox"
icon_state = "blue"
item_state = "toolbox_blue"
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/mechanical/PopulateContents()
new /obj/item/screwdriver(src)
@@ -77,6 +81,7 @@
name = "rusty blue toolbox"
icon_state = "toolbox_blue_old"
has_latches = FALSE
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/mechanical/old/heirloom
name = "toolbox" //this will be named "X family toolbox"
@@ -124,6 +129,7 @@
name = "electrical toolbox"
icon_state = "yellow"
item_state = "toolbox_yellow"
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/electrical/PopulateContents()
var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white")
@@ -144,6 +150,7 @@
item_state = "toolbox_syndi"
force = 15
throwforce = 18
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/syndicate/ComponentInitialize()
. = ..()
@@ -163,6 +170,7 @@
name = "mechanical toolbox"
icon_state = "blue"
item_state = "toolbox_blue"
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/drone/PopulateContents()
var/pickedcolor = pick("red","yellow","green","blue","pink","orange","cyan","white")
@@ -183,6 +191,7 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
w_class = WEIGHT_CLASS_HUGE
attack_verb = list("robusted", "crushed", "smashed")
+ material_flags = MATERIAL_NO_COLOR
var/fabricator_type = /obj/item/clockwork/replica_fabricator/scarab
/obj/item/storage/toolbox/brass/ComponentInitialize()
@@ -222,6 +231,7 @@
icon_state = "green"
item_state = "artistic_toolbox"
w_class = WEIGHT_CLASS_GIGANTIC //Holds more than a regular toolbox!
+ material_flags = MATERIAL_NO_COLOR
/obj/item/storage/toolbox/artistic/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 9b31b6c2624..dc9cf806351 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -11,7 +11,7 @@
throwforce = 10
throw_speed = 1
throw_range = 4
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
actions_types = list(/datum/action/item_action/set_internals)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 30)
var/datum/gas_mixture/air_contents = null
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index da806908df8..4b7299318d3 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -24,7 +24,7 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=400)
+ materials = list(/datum/material/iron=400)
/obj/item/locator/attack_self(mob/user)
user.set_machine(src)
@@ -126,7 +126,7 @@
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
var/list/active_portal_pairs
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index ae0f7f7d31d..c639f23bcdd 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -11,7 +11,7 @@
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
attack_verb = list("attacked", "bashed", "battered", "bludgeoned", "whacked")
tool_behaviour = TOOL_CROWBAR
@@ -50,7 +50,7 @@
w_class = WEIGHT_CLASS_NORMAL
throw_speed = 3
throw_range = 3
- materials = list(MAT_METAL=70)
+ materials = list(/datum/material/iron=70)
icon_state = "crowbar_large"
item_state = "crowbar"
toolspeed = 0.7
@@ -69,7 +69,7 @@
item_state = "jawsoflife"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25)
usesound = 'sound/items/jaws_pry.ogg'
force = 15
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index a1a4b6fcc34..ce1bb3b1368 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -13,7 +13,7 @@
throwforce = 5
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=75)
+ materials = list(/datum/material/iron=75)
attack_verb = list("stabbed")
hitsound = 'sound/weapons/bladeslice.ogg'
usesound = list('sound/items/screwdriver.ogg', 'sound/items/screwdriver2.ogg')
@@ -111,7 +111,7 @@
item_state = "drill"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25) //done for balance reasons, making them high value for research, but harder to get
+ materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25) //done for balance reasons, making them high value for research, but harder to get
force = 8 //might or might not be too high, subject to change
w_class = WEIGHT_CLASS_SMALL
throwforce = 8
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 842394aee81..248d6589ff1 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -21,7 +21,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
- materials = list(MAT_METAL=70, MAT_GLASS=30)
+ materials = list(/datum/material/iron=70, /datum/material/glass=30)
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
var/max_fuel = 20 //The max amount of fuel the welder can hold
@@ -297,7 +297,7 @@
desc = "A slightly larger welder with a larger tank."
icon_state = "indwelder"
max_fuel = 40
- materials = list(MAT_GLASS=60)
+ materials = list(/datum/material/glass=60)
/obj/item/weldingtool/largetank/cyborg
name = "integrated welding tool"
@@ -319,7 +319,7 @@
icon_state = "miniwelder"
max_fuel = 10
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
change_icons = 0
/obj/item/weldingtool/mini/flamethrower_screwdriver()
@@ -345,7 +345,7 @@
icon_state = "upindwelder"
item_state = "upindwelder"
max_fuel = 80
- materials = list(MAT_METAL=70, MAT_GLASS=120)
+ materials = list(/datum/material/iron=70, /datum/material/glass=120)
/obj/item/weldingtool/experimental
name = "experimental welding tool"
@@ -353,7 +353,7 @@
icon_state = "exwelder"
item_state = "exwelder"
max_fuel = 40
- materials = list(MAT_METAL=70, MAT_GLASS=120)
+ materials = list(/datum/material/iron=70, /datum/material/glass=120)
var/last_gen = 0
change_icons = 0
can_off_process = 1
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index c4de2bcb738..d98aa2968e5 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -12,7 +12,7 @@
throw_speed = 3
throw_range = 7
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
attack_verb = list("pinched", "nipped")
hitsound = 'sound/items/wirecutter.ogg'
usesound = 'sound/items/wirecutter.ogg'
@@ -94,7 +94,7 @@
icon_state = "jaws_cutter"
item_state = "jawsoflife"
- materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25)
usesound = 'sound/items/jaws_cut.ogg'
toolspeed = 0.7
random_color = FALSE
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index c5bde43b2e8..158e5aee97b 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -11,7 +11,7 @@
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
usesound = 'sound/items/ratchet.ogg'
- materials = list(MAT_METAL=150)
+ materials = list(/datum/material/iron=150)
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
tool_behaviour = TOOL_WRENCH
@@ -52,7 +52,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
usesound = 'sound/items/drill_use.ogg'
- materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
+ materials = list(/datum/material/iron=150,/datum/material/silver=50,/datum/material/titanium=25)
//done for balance reasons, making them high value for research, but harder to get
force = 8 //might or might not be too high, subject to change
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index f5481a67646..98a323617c8 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -164,7 +164,7 @@
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=10, MAT_GLASS=10)
+ materials = list(/datum/material/iron=10, /datum/material/glass=10)
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
var/bullets = 7
@@ -218,7 +218,7 @@
icon = 'icons/obj/ammo.dmi'
icon_state = "357OLD-7"
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL=10, MAT_GLASS=10)
+ materials = list(/datum/material/iron=10, /datum/material/glass=10)
var/amount_left = 7
/obj/item/toy/ammo/gun/update_icon()
diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm
index 094984739a0..fe40c352491 100644
--- a/code/game/objects/items/twohanded.dm
+++ b/code/game/objects/items/twohanded.dm
@@ -467,7 +467,7 @@
throw_speed = 4
embedding = list("embedded_impact_pain_multiplier" = 3)
armour_penetration = 10
- materials = list(MAT_METAL=1150, MAT_GLASS=2075)
+ materials = list(/datum/material/iron=1150, /datum/material/glass=2075)
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("attacked", "poked", "jabbed", "torn", "gored")
sharpness = IS_SHARP
@@ -573,7 +573,7 @@
throwforce = 13
throw_speed = 2
throw_range = 4
- materials = list(MAT_METAL=13000)
+ materials = list(/datum/material/iron=13000)
attack_verb = list("sawed", "torn", "cut", "chopped", "diced")
hitsound = "swing_hit"
sharpness = IS_SHARP
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 4fd6b47973d..b9893197e3a 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -239,7 +239,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
force = 9
throwforce = 10
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=1150, MAT_GLASS=75)
+ materials = list(/datum/material/iron=1150, /datum/material/glass=75)
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
/obj/item/wirerod/attackby(obj/item/I, mob/user, params)
@@ -283,7 +283,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
embedding = list("embedded_pain_multiplier" = 4, "embed_chance" = 100, "embedded_fall_chance" = 0)
w_class = WEIGHT_CLASS_SMALL
sharpness = IS_SHARP
- materials = list(MAT_METAL=500, MAT_GLASS=500)
+ materials = list(/datum/material/iron=500, /datum/material/glass=500)
resistance_flags = FIRE_PROOF
/obj/item/throwing_star/magspear
@@ -309,7 +309,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
throwforce = 5
throw_speed = 3
throw_range = 6
- materials = list(MAT_METAL=12000)
+ materials = list(/datum/material/iron=12000)
hitsound = 'sound/weapons/genhit.ogg'
attack_verb = list("stubbed", "poked")
resistance_flags = FIRE_PROOF
@@ -370,7 +370,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
force = 5
throwforce = 5
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
/obj/item/staff
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index eba50e7c329..dec72895758 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -261,7 +261,7 @@
throw_range = 3
hitsound = 'sound/items/trayhit1.ogg'
hit_reaction_chance = 50
- materials = list(MAT_METAL = 2000)
+ materials = list(/datum/material/iron = 2000)
var/break_chance = 5 //Likely hood of smashing the chair.
var/obj/structure/chair/origin_type = /obj/structure/chair
@@ -302,7 +302,7 @@
if(remaining_mats)
for(var/M=1 to remaining_mats)
new stack_type(get_turf(loc))
- else if(materials[MAT_METAL])
+ else if(materials[/datum/material/iron])
new /obj/item/stack/rods(get_turf(loc), 2)
qdel(src)
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 965453c3ff5..42e4dda6c49 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -542,7 +542,7 @@
icon = 'icons/obj/items_and_weapons.dmi'
icon_state = "rack_parts"
flags_1 = CONDUCT_1
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
var/building = FALSE
/obj/item/rack_parts/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm
index a015cfd730b..033c121290a 100644
--- a/code/modules/antagonists/swarmer/swarmer.dm
+++ b/code/modules/antagonists/swarmer/swarmer.dm
@@ -4,7 +4,7 @@
desc = "A shell of swarmer that was completely powered down. It can no longer activate itself."
icon = 'icons/mob/swarmer.dmi'
icon_state = "swarmer_unactivated"
- materials = list(MAT_METAL=10000, MAT_GLASS=4000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=4000)
/obj/effect/mob_spawn/swarmer
name = "unactivated swarmer"
@@ -189,7 +189,7 @@
return 0
/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item
- if(materials[MAT_METAL] || materials[MAT_GLASS])
+ if(materials[getmaterialref(/datum/material/iron)] || materials[getmaterialref(/datum/material/glass)])
return 1
return ..()
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 847528840a0..4a92d1804f7 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -12,7 +12,7 @@
icon_state = ""
flags_1 = CONDUCT_1
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=100)
+ materials = list(/datum/material/iron=100)
throwforce = 2
throw_speed = 3
throw_range = 7
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 7ebc80f6499..0830c6d434f 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -8,7 +8,7 @@
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
throwforce = 0
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL = 300, MAT_GLASS = 300)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 300)
light_color = LIGHT_COLOR_WHITE
light_power = FLASH_LIGHT_POWER
var/flashing_overlay = "flash-f"
diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index 5a132f033d4..19ec84f4433 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -2,7 +2,7 @@
name = "health sensor"
desc = "Used for scanning and monitoring health."
icon_state = "health"
- materials = list(MAT_METAL=800, MAT_GLASS=200)
+ materials = list(/datum/material/iron=800, /datum/material/glass=200)
attachable = TRUE
var/scanning = FALSE
diff --git a/code/modules/assembly/igniter.dm b/code/modules/assembly/igniter.dm
index ec4848d47ed..4bbd009c229 100644
--- a/code/modules/assembly/igniter.dm
+++ b/code/modules/assembly/igniter.dm
@@ -2,7 +2,7 @@
name = "igniter"
desc = "A small electronic device able to ignite combustible substances."
icon_state = "igniter"
- materials = list(MAT_METAL=500, MAT_GLASS=50)
+ materials = list(/datum/material/iron=500, /datum/material/glass=50)
var/datum/effect_system/spark_spread/sparks
heat = 1000
diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm
index 6314468139b..f598dafc003 100644
--- a/code/modules/assembly/infrared.dm
+++ b/code/modules/assembly/infrared.dm
@@ -2,7 +2,7 @@
name = "infrared emitter"
desc = "Emits a visible or invisible beam and is triggered when the beam is interrupted."
icon_state = "infrared"
- materials = list(MAT_METAL=1000, MAT_GLASS=500)
+ materials = list(/datum/material/iron=1000, /datum/material/glass=500)
is_position_sensitive = TRUE
var/on = FALSE
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 09ed3e94b8b..55444ac2b61 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -3,7 +3,7 @@
desc = "A handy little spring-loaded trap for catching pesty rodents."
icon_state = "mousetrap"
item_state = "mousetrap"
- materials = list(MAT_METAL=100)
+ materials = list(/datum/material/iron=100)
attachable = TRUE
var/armed = FALSE
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 6b0017e9fc3..45da42b5320 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -2,7 +2,7 @@
name = "proximity sensor"
desc = "Used for scanning and alerting when someone enters a certain proximity."
icon_state = "prox"
- materials = list(MAT_METAL=800, MAT_GLASS=200)
+ materials = list(/datum/material/iron=800, /datum/material/glass=200)
attachable = TRUE
var/scanning = FALSE
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 29ab83e2cb7..500f6f03053 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -5,7 +5,7 @@
item_state = "signaler"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- materials = list(MAT_METAL=400, MAT_GLASS=120)
+ materials = list(/datum/material/iron=400, /datum/material/glass=120)
wires = WIRE_RECEIVE | WIRE_PULSE | WIRE_RADIO_PULSE | WIRE_RADIO_RECEIVE
attachable = TRUE
diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm
index 04a57764b39..ac7c630714b 100644
--- a/code/modules/assembly/timer.dm
+++ b/code/modules/assembly/timer.dm
@@ -2,7 +2,7 @@
name = "timer"
desc = "Used to time things. Works well with contraptions which has to count down. Tick tock."
icon_state = "timer"
- materials = list(MAT_METAL=500, MAT_GLASS=50)
+ materials = list(/datum/material/iron=500, /datum/material/glass=50)
attachable = TRUE
var/timing = FALSE
diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm
index 7ad5f827e18..ad60c81b928 100644
--- a/code/modules/assembly/voice.dm
+++ b/code/modules/assembly/voice.dm
@@ -7,7 +7,7 @@
name = "voice analyzer"
desc = "A small electronic device able to record a voice sample, and send a signal when that sample is repeated."
icon_state = "voice"
- materials = list(MAT_METAL=500, MAT_GLASS=50)
+ materials = list(/datum/material/iron=500, /datum/material/glass=50)
flags_1 = HEAR_1
attachable = TRUE
verb_say = "beeps"
diff --git a/code/modules/awaymissions/super_secret_room.dm b/code/modules/awaymissions/super_secret_room.dm
index 39e1be9e64d..a7054556911 100644
--- a/code/modules/awaymissions/super_secret_room.dm
+++ b/code/modules/awaymissions/super_secret_room.dm
@@ -122,7 +122,7 @@
icon = 'icons/obj/economy.dmi'
icon_state = "rupee"
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
/obj/item/rupee/Initialize()
. = ..()
diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm
index 04dc76fd52b..4f478d3c6e8 100644
--- a/code/modules/cargo/exports/materials.dm
+++ b/code/modules/cargo/exports/materials.dm
@@ -14,10 +14,10 @@
if(!isitem(O))
return 0
var/obj/item/I = O
- if(!(material_id in I.materials))
+ if(!(getmaterialref(material_id) in I.materials))
return 0
- var/amount = I.materials[material_id]
+ var/amount = I.materials[getmaterialref(material_id)]
if(istype(I, /obj/item/stack))
var/obj/item/stack/S = I
@@ -31,49 +31,49 @@
/datum/export/material/bananium
cost = 1000
- material_id = MAT_BANANIUM
+ material_id = /datum/material/bananium
message = "cm3 of bananium"
/datum/export/material/diamond
cost = 500
- material_id = MAT_DIAMOND
+ material_id = /datum/material/diamond
message = "cm3 of diamonds"
/datum/export/material/plasma
cost = 200
k_elasticity = 0
- material_id = MAT_PLASMA
+ material_id = /datum/material/plasma
message = "cm3 of plasma"
/datum/export/material/uranium
cost = 100
- material_id = MAT_URANIUM
+ material_id = /datum/material/uranium
message = "cm3 of uranium"
/datum/export/material/gold
cost = 125
- material_id = MAT_GOLD
+ material_id = /datum/material/gold
message = "cm3 of gold"
/datum/export/material/silver
cost = 50
- material_id = MAT_SILVER
+ material_id = /datum/material/silver
message = "cm3 of silver"
/datum/export/material/titanium
cost = 125
- material_id = MAT_TITANIUM
+ material_id = /datum/material/titanium
message = "cm3 of titanium"
/datum/export/material/plastitanium
cost = 325 // plasma + titanium costs
- material_id = MAT_TITANIUM // code can only check for one material_id; plastitanium is half plasma, half titanium
+ material_id = /datum/material/titanium // code can only check for one material_id; plastitanium is half plasma, half titanium
message = "cm3 of plastitanium"
/datum/export/material/metal
cost = 5
message = "cm3 of metal"
- material_id = MAT_METAL
+ material_id = /datum/material/iron
export_types = list(
/obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel,
/obj/item/stack/rods, /obj/item/stack/ore, /obj/item/coin)
@@ -81,6 +81,6 @@
/datum/export/material/glass
cost = 5
message = "cm3 of glass"
- material_id = MAT_GLASS
+ material_id = /datum/material/glass
export_types = list(/obj/item/stack/sheet/glass, /obj/item/stack/ore,
/obj/item/shard)
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 4ccdc7da0b2..c351d127ef8 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -8,7 +8,7 @@
strip_delay = 20
equip_delay_other = 25
resistance_flags = NONE
- materials = list(MAT_GLASS = 250)
+ materials = list(/datum/material/glass = 250)
var/vision_flags = 0
var/darkness_view = 2//Base human is 2
var/invis_view = SEE_INVISIBLE_LIVING //admin only for now
@@ -259,7 +259,7 @@
icon_state = "welding-g"
item_state = "welding-g"
actions_types = list(/datum/action/item_action/toggle)
- materials = list(MAT_METAL = 250)
+ materials = list(/datum/material/iron = 250)
flash_protect = 2
tint = 2
visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT
diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm
index 54bdbc6b25f..2925fc9b774 100644
--- a/code/modules/clothing/head/misc_special.dm
+++ b/code/modules/clothing/head/misc_special.dm
@@ -19,7 +19,7 @@
icon_state = "welding"
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
item_state = "welding"
- materials = list(MAT_METAL=1750, MAT_GLASS=400)
+ materials = list(/datum/material/iron=1750, /datum/material/glass=400)
flash_protect = 2
tint = 2
armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 60)
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index 9949e47d80d..126f833ffaa 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -17,7 +17,7 @@
name = "welding mask"
desc = "A gas mask with built-in welding goggles and a face shield. Looks like a skull - clearly designed by a nerd."
icon_state = "weldingmask"
- materials = list(MAT_METAL=4000, MAT_GLASS=2000)
+ materials = list(/datum/material/iron=4000, /datum/material/glass=2000)
flash_protect = 2
tint = 2
armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 55)
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index eb0437cc1c5..d918f68e978 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -10,7 +10,7 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/Initialize()
. = ..()
- AddComponent(/datum/component/material_container, list(MAT_BANANIUM), 200000, TRUE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack)
AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75)
if(always_noslip)
clothing_flags |= NOSLIP
@@ -19,7 +19,7 @@
. = ..()
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
if(on)
- if(bananium.amount(MAT_BANANIUM) < 100)
+ if(bananium.get_material_amount(/datum/material/bananium) < 100)
on = !on
if(!always_noslip)
clothing_flags &= ~NOSLIP
@@ -27,7 +27,7 @@
to_chat(loc, "You ran out of bananium!")
else
new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(usr.dir, 180))) //honk
- bananium.use_amount_type(100, MAT_BANANIUM)
+ bananium.use_amount_mat(100, /datum/material/bananium)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
@@ -43,7 +43,7 @@
/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- if(bananium.amount(MAT_BANANIUM))
+ if(bananium.get_material_amount(/datum/material/bananium))
on = !on
update_icon()
to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.")
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index 8155a9b2fdf..502271c6478 100755
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -112,7 +112,7 @@
desc = "A bronze medal."
icon_state = "bronze"
item_color = "bronze"
- materials = list(MAT_METAL=1000)
+ materials = list(/datum/material/iron=1000)
resistance_flags = FIRE_PROOF
var/medaltype = "medal" //Sprite used for medalbox
var/commended = FALSE
@@ -182,7 +182,7 @@
icon_state = "silver"
item_color = "silver"
medaltype = "medal-silver"
- materials = list(MAT_SILVER=1000)
+ materials = list(/datum/material/silver=1000)
/obj/item/clothing/accessory/medal/silver/valor
name = "medal of valor"
@@ -202,7 +202,7 @@
icon_state = "gold"
item_color = "gold"
medaltype = "medal-gold"
- materials = list(MAT_GOLD=1000)
+ materials = list(/datum/material/gold=1000)
/obj/item/clothing/accessory/medal/gold/captain
name = "medal of captaincy"
@@ -220,7 +220,7 @@
item_color = "plasma"
medaltype = "medal-plasma"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = -10, "acid" = 0) //It's made of plasma. Of course it's flammable.
- materials = list(MAT_PLASMA=1000)
+ materials = list(/datum/material/plasma=1000)
/obj/item/clothing/accessory/medal/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > 300)
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index e71e38b74b5..797d368b968 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -150,7 +150,7 @@
force = 1
throwforce = 1
amount_per_transfer_from_this = 5
- materials = list(MAT_METAL=100)
+ materials = list(/datum/material/iron=100)
possible_transfer_amounts = list()
volume = 5
flags_1 = CONDUCT_1
@@ -166,7 +166,7 @@
force = 14
throwforce = 10
amount_per_transfer_from_this = 20
- materials = list(MAT_GOLD=1000)
+ materials = list(/datum/material/gold=1000)
volume = 150
/obj/item/reagent_containers/food/drinks/trophy/silver_cup
@@ -177,7 +177,7 @@
force = 10
throwforce = 8
amount_per_transfer_from_this = 15
- materials = list(MAT_SILVER=800)
+ materials = list(/datum/material/silver=800)
volume = 100
@@ -189,7 +189,7 @@
force = 5
throwforce = 4
amount_per_transfer_from_this = 10
- materials = list(MAT_METAL=400)
+ materials = list(/datum/material/iron=400)
volume = 25
///////////////////////////////////////////////Drinks
@@ -364,7 +364,7 @@
name = "shaker"
desc = "A metal shaker to mix drinks in."
icon_state = "shaker"
- materials = list(MAT_METAL=1500)
+ materials = list(/datum/material/iron=1500)
amount_per_transfer_from_this = 10
volume = 100
isGlass = FALSE
@@ -374,7 +374,7 @@
desc = "Every good spaceman knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
custom_price = 30
icon_state = "flask"
- materials = list(MAT_METAL=250)
+ materials = list(/datum/material/iron=250)
volume = 60
isGlass = FALSE
@@ -382,7 +382,7 @@
name = "captain's flask"
desc = "A gold flask belonging to the captain."
icon_state = "flask_gold"
- materials = list(MAT_GOLD=500)
+ materials = list(/datum/material/gold=500)
/obj/item/reagent_containers/food/drinks/flask/det
name = "detective's flask"
diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
index c3b5739a7ce..176bf61a40e 100644
--- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
@@ -7,7 +7,7 @@
icon_state = "glass_empty"
amount_per_transfer_from_this = 10
volume = 50
- materials = list(MAT_GLASS=500)
+ materials = list(/datum/material/glass=500)
max_integrity = 20
spillable = TRUE
resistance_flags = ACID_PROOF
@@ -47,7 +47,7 @@
amount_per_transfer_from_this = 15
possible_transfer_amounts = list()
volume = 15
- materials = list(MAT_GLASS=100)
+ materials = list(/datum/material/glass=100)
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype)
cut_overlays()
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index 938d10fd76f..80f5b60cd4d 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -291,7 +291,7 @@
icon = 'icons/obj/food/soupsalad.dmi'
icon_state = "bowl"
reagent_flags = OPENCONTAINER
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
w_class = WEIGHT_CLASS_NORMAL
/obj/item/reagent_containers/glass/bowl/attackby(obj/item/I,mob/user, params)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index 880b3718c30..db0fefaf3ba 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -309,8 +309,8 @@
var/metal = 0
for(var/obj/item/O in ingredients)
O.microwave_act(src)
- if(O.materials[MAT_METAL])
- metal += O.materials[MAT_METAL]
+ if(O.materials[/datum/material/iron])
+ metal += O.materials[/datum/material/iron]
if(metal)
spark()
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index 197beccec87..a70a8de7258 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -195,7 +195,7 @@
dat += "x5"
if(ispath(D.build_path, /obj/item/stack))
dat += "x10"
- dat += "([D.materials[MAT_BIOMASS]/efficiency])
"
+ dat += "([D.materials[getmaterialref(/datum/material/biomass)]/efficiency])
"
dat += ""
else
dat += "
No container inside, please insert container.
"
@@ -231,15 +231,15 @@
else
menustat = "void"
-/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = 1)
- if(materials.len != 1 || materials[1] != MAT_BIOMASS)
+/obj/machinery/biogenerator/proc/check_cost(list/materials, multiplier = 1, remove_points = TRUE)
+ if(materials.len != 1 || materials[1] != getmaterialref(/datum/material/biomass))
return FALSE
- if (materials[MAT_BIOMASS]*multiplier/efficiency > points)
+ if (materials[getmaterialref(/datum/material/biomass)]*multiplier/efficiency > points)
menustat = "nopoints"
return FALSE
else
if(remove_points)
- points -= materials[MAT_BIOMASS]*multiplier/efficiency
+ points -= materials[getmaterialref(/datum/material/biomass)]*multiplier/efficiency
update_icon()
updateUsrDialog()
return TRUE
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index d7ec7994f62..c6513f64737 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -415,7 +415,7 @@
name = "plant data disk"
desc = "A disk for storing plant genetic data."
icon_state = "datadisk_hydro"
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
var/datum/plant_gene/gene
var/read_only = 0 //Well, it's still a floppy disk
obj_flags = UNIQUE_RENAME
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index b1b92ff91ec..0ccd4bd6e19 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -9,7 +9,7 @@
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL=30, MAT_GLASS=20)
+ materials = list(/datum/material/iron=30, /datum/material/glass=20)
// *************************************
// Hydroponics Tools
@@ -57,7 +57,7 @@
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
attack_verb = list("slashed", "sliced", "cut", "clawed")
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -89,7 +89,7 @@
throwforce = 15
throw_speed = 3
throw_range = 4
- materials = list(MAT_METAL = 15000)
+ materials = list(/datum/material/iron = 15000)
attack_verb = list("chopped", "torn", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 5712be6915d..d7f0a3ed85d 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -16,7 +16,7 @@
throwforce = 5
throw_speed = 4
armour_penetration = 10
- materials = list(MAT_METAL=1150, MAT_GLASS=2075)
+ materials = list(/datum/material/iron=1150, /datum/material/glass=2075)
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("smashed", "crushed", "cleaved", "chopped", "pulped")
sharpness = IS_SHARP
diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm
index 541c3bb1df6..c5db9d3d9aa 100644
--- a/code/modules/mining/equipment/mining_tools.dm
+++ b/code/modules/mining/equipment/mining_tools.dm
@@ -11,7 +11,7 @@
lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
- materials = list(MAT_METAL=2000) //one sheet, but where can you make them?
+ materials = list(/datum/material/iron=2000) //one sheet, but where can you make them?
tool_behaviour = TOOL_MINING
toolspeed = 1
usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg')
@@ -32,7 +32,7 @@
throwforce = 7
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=1000)
+ materials = list(/datum/material/iron=1000)
/obj/item/pickaxe/silver
name = "silver-plated pickaxe"
@@ -106,7 +106,7 @@
throwforce = 4
item_state = "shovel"
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
sharpness = IS_SHARP
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 6d5711679fd..0ccc94074c7 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -116,28 +116,28 @@
name = "Kinetic Accelerator Offensive Mining Explosion Mod"
desc = "A device which causes kinetic accelerators to fire AoE blasts that destroy rock and damage creatures."
id = "hyperaoemod"
- materials = list(MAT_METAL = 7000, MAT_GLASS = 3000, MAT_SILVER = 3000, MAT_GOLD = 3000, MAT_DIAMOND = 4000)
+ materials = list(/datum/material/iron = 7000, /datum/material/glass = 3000, /datum/material/silver = 3000, /datum/material/gold = 3000, /datum/material/diamond = 4000)
build_path = /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs
/datum/design/unique_modkit/rapid_repeater
name = "Kinetic Accelerator Rapid Repeater Mod"
desc = "A device which greatly reduces a kinetic accelerator's cooldown on striking a living target or rock, but greatly increases its base cooldown."
id = "repeatermod"
- materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_URANIUM = 8000, MAT_BLUESPACE = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/uranium = 8000, /datum/material/bluespace = 2000)
build_path = /obj/item/borg/upgrade/modkit/cooldown/repeater
/datum/design/unique_modkit/resonator_blast
name = "Kinetic Accelerator Resonator Blast Mod"
desc = "A device which causes kinetic accelerators to fire shots that leave and detonate resonator blasts."
id = "resonatormod"
- materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_SILVER = 5000, MAT_URANIUM = 5000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/silver = 5000, /datum/material/uranium = 5000)
build_path = /obj/item/borg/upgrade/modkit/resonator_blasts
/datum/design/unique_modkit/bounty
name = "Kinetic Accelerator Death Syphon Mod"
desc = "A device which causes kinetic accelerators to permanently gain damage against creature types killed with it."
id = "bountymod"
- materials = list(MAT_METAL = 4000, MAT_SILVER = 4000, MAT_GOLD = 4000, MAT_BLUESPACE = 4000)
+ materials = list(/datum/material/iron = 4000, /datum/material/silver = 4000, /datum/material/gold = 4000, /datum/material/bluespace = 4000)
reagents_list = list(/datum/reagent/blood = 40)
build_path = /obj/item/borg/upgrade/modkit/bounty
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index 16e8b0b26c8..20536442b0e 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -47,8 +47,10 @@
add_fingerprint(usr)
if(href_list["material"])
- machine.selected_material = href_list["material"]
- machine.selected_alloy = null
+ var/datum/material/new_material = locate(href_list["material"])
+ if(istype(new_material))
+ machine.selected_material = new_material
+ machine.selected_alloy = null
if(href_list["alloy"])
machine.selected_material = null
@@ -75,15 +77,16 @@
density = TRUE
var/obj/machinery/mineral/CONSOLE = null
var/on = FALSE
- var/selected_material = MAT_METAL
+ var/datum/material/selected_material = null
var/selected_alloy = null
var/datum/techweb/stored_research
/obj/machinery/mineral/processing_unit/Initialize()
. = ..()
proximity_monitor = new(src, 1)
- 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), INFINITY, TRUE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack)
stored_research = new /datum/techweb/specialized/autounlocking/smelter
+ selected_material = getmaterialref(/datum/material/iron)
/obj/machinery/mineral/processing_unit/Destroy()
CONSOLE = null
@@ -108,13 +111,13 @@
/obj/machinery/mineral/processing_unit/proc/get_machine_data()
var/dat = "Stored Material:
")
var/any = FALSE
for(var/M in materials.materials)
- var/datum/material/mat = materials.materials[M]
- var/sheets = round(mat.amount) / MINERAL_MATERIAL_AMOUNT
+ var/datum/material/mat = M
+ var/amount = materials.materials[M]
+ var/sheets = round(amount) / MINERAL_MATERIAL_AMOUNT
+ var/ref = REF(M)
if (sheets)
- if (sheets >= 1)
- ui += "
Eject"
+ if (sheets >= 1)
+ ui += "
Eject"
else
ui += "
Eject"
if (sheets >= 20)
- ui += "
20x"
+ ui += "
20x"
else
ui += "
20x"
ui += "
[mat.name]: [sheets] sheets
"
@@ -148,7 +150,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
updateUsrDialog()
return TRUE
else if(href_list["ejectsheet"])
- var/eject_sheet = href_list["ejectsheet"]
+ var/datum/material/eject_sheet = locate(href_list["ejectsheet"])
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
var/count = materials.retrieve_sheets(text2num(href_list["eject_amt"]), eject_sheet, drop_location())
var/list/matlist = list()
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 8204977058d..a85f07c7cad 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -8,14 +8,16 @@
density = TRUE
var/newCoins = 0 //how many coins the machine made in it's last load
var/processing = FALSE
- var/chosen = MAT_METAL //which material will be used to make coins
+ var/chosen = /datum/material/iron //which material will be used to make coins
var/coinsToProduce = 10
speed_process = TRUE
/obj/machinery/mineral/mint/Initialize()
. = ..()
- AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_URANIUM, MAT_DIAMOND, MAT_BANANIUM), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
+ AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/plasma, /datum/material/silver, /datum/material/gold, /datum/material/uranium, /datum/material/diamond, /datum/material/bananium), MINERAL_MATERIAL_AMOUNT * 50, FALSE, /obj/item/stack)
+ chosen = getmaterialref(chosen)
+
/obj/machinery/mineral/mint/process()
var/turf/T = get_step(src, input_dir)
@@ -33,17 +35,17 @@
var/dat = "
Coin Press"
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
- for(var/mat_id in materials.materials)
- var/datum/material/M = materials.materials[mat_id]
- if(!M.amount && chosen != mat_id)
+ for(var/datum/material/M in materials.materials)
+ var/amount = materials.get_material_amount(M)
+ if(!amount && chosen != M)
continue
- dat += "
[M.name] amount: [M.amount] cm
3 "
- if (chosen == mat_id)
+ dat += "
[M.name] amount: [amount] cm
3 "
+ if (chosen == M)
dat += "
Chosen"
else
- dat += "
Choose"
+ dat += "
Choose"
- var/datum/material/M = materials.materials[chosen]
+ var/datum/material/M = chosen
dat += "
Will produce [coinsToProduce] [lowertext(M.name)] coins if enough materials are available.
"
dat += "
-10 "
@@ -67,8 +69,9 @@
return
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
if(href_list["choose"])
- if(materials.materials[href_list["choose"]])
- chosen = href_list["choose"]
+ var/datum/material/new_material = locate(href_list["choose"])
+ if(istype(new_material))
+ chosen = new_material
if(href_list["chooseAmt"])
coinsToProduce = CLAMP(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000)
if(href_list["makeCoins"])
@@ -76,12 +79,12 @@
processing = TRUE
icon_state = "coinpress1"
var/coin_mat = MINERAL_MATERIAL_AMOUNT * 0.2
- var/datum/material/M = materials.materials[chosen]
+ var/datum/material/M = chosen
if(!M || !M.coin_type)
updateUsrDialog()
return
- while(coinsToProduce > 0 && materials.use_amount_type(coin_mat, chosen))
+ while(coinsToProduce > 0 && materials.use_amount_mat(coin_mat, chosen))
create_coins(M.coin_type)
coinsToProduce--
newCoins++
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 4d77f6b7fed..f3be436f619 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -69,7 +69,7 @@
item_state = "Uranium ore"
singular_name = "uranium ore chunk"
points = 30
- materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/uranium
/obj/item/stack/ore/iron
@@ -78,7 +78,7 @@
item_state = "Iron ore"
singular_name = "iron ore chunk"
points = 1
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/metal
/obj/item/stack/ore/glass
@@ -87,7 +87,7 @@
item_state = "Glass ore"
singular_name = "sand pile"
points = 1
- materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/glass
w_class = WEIGHT_CLASS_TINY
@@ -129,7 +129,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
item_state = "Plasma ore"
singular_name = "plasma ore chunk"
points = 15
- materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/plasma
/obj/item/stack/ore/plasma/welder_act(mob/living/user, obj/item/I)
@@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
item_state = "Silver ore"
singular_name = "silver ore chunk"
points = 16
- materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/silver
/obj/item/stack/ore/gold
@@ -152,7 +152,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "Gold ore"
singular_name = "gold ore chunk"
points = 18
- materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/gold=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/gold
/obj/item/stack/ore/diamond
@@ -161,7 +161,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
item_state = "Diamond ore"
singular_name = "diamond ore chunk"
points = 50
- materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/diamond=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/diamond
/obj/item/stack/ore/bananium
@@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
item_state = "Bananium ore"
singular_name = "bananium ore chunk"
points = 60
- materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/bananium
/obj/item/stack/ore/titanium
@@ -179,7 +179,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
item_state = "Titanium ore"
singular_name = "titanium ore chunk"
points = 50
- materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT)
refined_type = /obj/item/stack/sheet/mineral/titanium
/obj/item/stack/ore/slag
@@ -351,7 +351,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "gold"
icon_state = "coin_gold_heads"
value = 25
- materials = list(MAT_GOLD = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/gold = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/gold = 4)
/obj/item/coin/silver
@@ -359,7 +359,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "silver"
icon_state = "coin_silver_heads"
value = 10
- materials = list(MAT_SILVER = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/silver = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/silver = 4)
/obj/item/coin/diamond
@@ -367,7 +367,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "diamond"
icon_state = "coin_diamond_heads"
value = 100
- materials = list(MAT_DIAMOND = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/diamond = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/carbon = 4)
/obj/item/coin/iron
@@ -375,7 +375,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "iron"
icon_state = "coin_iron_heads"
value = 1
- materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/iron = 4)
/obj/item/coin/plasma
@@ -383,7 +383,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "plasma"
icon_state = "coin_plasma_heads"
value = 40
- materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/toxin/plasma = 4)
/obj/item/coin/uranium
@@ -391,7 +391,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "uranium"
icon_state = "coin_uranium_heads"
value = 25
- materials = list(MAT_URANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/uranium = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/uranium = 4)
/obj/item/coin/bananium
@@ -399,7 +399,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
cmineral = "bananium"
icon_state = "coin_bananium_heads"
value = 200 //makes the clown cry
- materials = list(MAT_BANANIUM = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/bananium = MINERAL_MATERIAL_AMOUNT*0.2)
grind_results = list(/datum/reagent/consumable/banana = 4)
/obj/item/coin/adamantine
@@ -419,7 +419,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
icon_state = "coin_iron_heads"
desc = "Hey, this coin's the same on both sides!"
sideslist = list("heads")
- materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT*0.2)
+ materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT*0.2)
value = 1
grind_results = list(/datum/reagent/iron = 4)
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 6b37cc0cc52..3886d23d30f 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -1,6 +1,7 @@
/mob/living/carbon/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE)
+ SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-blocked)/100
if(!damage || (!forced && hit_percent <= 0))
return 0
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 54cd1a64185..fc4b5485bea 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1502,6 +1502,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
return TRUE
/datum/species/proc/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/H, forced = FALSE, spread_damage = FALSE)
+ SEND_SIGNAL(H, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-(blocked+armor))/100
hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100
if(!damage || (!forced && hit_percent <= 0))
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index d7272adafb2..32133d07ae5 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -9,6 +9,7 @@
standard 0 if fail
*/
/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE)
+ SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMGE, damage, damagetype, def_zone)
var/hit_percent = (100-blocked)/100
if(!damage || (!forced && hit_percent <= 0))
return 0
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 32e3bcfd035..61c9f8d6cdb 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -88,8 +88,8 @@
var/obj/item/stack/S = I
if(is_type_in_list(S, list(/obj/item/stack/sheet/metal, /obj/item/stack/rods, /obj/item/stack/tile/plasteel)))
- if(S.materials[MAT_METAL])
- S.cost = S.materials[MAT_METAL] * 0.25
+ if(S.materials[/datum/material/iron])
+ S.cost = S.materials[/datum/material/iron] * 0.25
S.source = get_or_create_estorage(/datum/robot_energy_storage/metal)
else if(istype(S, /obj/item/stack/sheet/glass))
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 52698bedca5..c0a75b4097b 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -21,7 +21,7 @@
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=10)
+ materials = list(/datum/material/iron=10)
pressure_resistance = 2
grind_results = list(/datum/reagent/iron = 2, /datum/reagent/iodine = 1)
var/colour = "black" //what colour the ink is!
@@ -79,7 +79,7 @@
throwforce = 5
throw_speed = 4
colour = "crimson"
- materials = list(MAT_GOLD = 750)
+ materials = list(/datum/material/gold = 750)
sharpness = IS_SHARP
resistance_flags = FIRE_PROOF
unique_reskin = list("Oak" = "pen-fountain-o",
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 7235e0e658a..1c89c5707f3 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -8,7 +8,7 @@
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- materials = list(MAT_METAL=60)
+ materials = list(/datum/material/iron=60)
item_color = "cargo"
pressure_resistance = 2
attack_verb = list("stamped")
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index 6882e532135..43f32ea927b 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -14,7 +14,7 @@
w_class = WEIGHT_CLASS_SMALL
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_NECK
- materials = list(MAT_METAL = 50, MAT_GLASS = 150)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 150)
var/flash_enabled = TRUE
var/state_on = "camera"
var/state_off = "camera_off"
diff --git a/code/modules/photography/camera/film.dm b/code/modules/photography/camera/film.dm
index 5d69824bade..5d7606d8551 100644
--- a/code/modules/photography/camera/film.dm
+++ b/code/modules/photography/camera/film.dm
@@ -11,4 +11,4 @@
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
- materials = list(MAT_METAL = 10, MAT_GLASS = 10)
+ materials = list(/datum/material/iron = 10, /datum/material/glass = 10)
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 52c40b49d03..e6907154101 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -374,7 +374,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=10, MAT_GLASS=5)
+ materials = list(/datum/material/iron=10, /datum/material/glass=5)
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index f1173b21520..e7d7e5d7a3e 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -13,7 +13,7 @@
w_class = WEIGHT_CLASS_SMALL
var/charge = 0 // note %age conveted to actual charge in New
var/maxcharge = 1000
- materials = list(MAT_METAL=700, MAT_GLASS=50)
+ materials = list(/datum/material/iron=700, /datum/material/glass=50)
grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5)
var/rigged = FALSE // true if rigged to explode
var/chargerate = 100 //how much power is given every tick in a recharger
@@ -170,7 +170,7 @@
name = "\improper Nanotrasen brand rechargeable AA battery"
desc = "You can't top the plasma top." //TOTALLY TRADEMARK INFRINGEMENT
maxcharge = 500
- materials = list(MAT_GLASS=40)
+ materials = list(/datum/material/glass=40)
/obj/item/stock_parts/cell/crap/empty/Initialize()
. = ..()
@@ -181,7 +181,7 @@
name = "upgraded power cell"
desc = "A power cell with a slightly higher capacity than normal!"
maxcharge = 2500
- materials = list(MAT_GLASS=50)
+ materials = list(/datum/material/glass=50)
chargerate = 1000
/obj/item/stock_parts/cell/upgraded/plus
@@ -192,7 +192,7 @@
/obj/item/stock_parts/cell/secborg
name = "security borg rechargeable D battery"
maxcharge = 600 //600 max charge / 100 charge per shot = six shots
- materials = list(MAT_GLASS=40)
+ materials = list(/datum/material/glass=40)
/obj/item/stock_parts/cell/secborg/empty/Initialize()
. = ..()
@@ -216,7 +216,7 @@
name = "high-capacity power cell"
icon_state = "hcell"
maxcharge = 10000
- materials = list(MAT_GLASS=60)
+ materials = list(/datum/material/glass=60)
chargerate = 1500
/obj/item/stock_parts/cell/high/plus
@@ -235,7 +235,7 @@
name = "super-capacity power cell"
icon_state = "scell"
maxcharge = 20000
- materials = list(MAT_GLASS=300)
+ materials = list(/datum/material/glass=300)
chargerate = 2000
/obj/item/stock_parts/cell/super/empty/Initialize()
@@ -247,7 +247,7 @@
name = "hyper-capacity power cell"
icon_state = "hpcell"
maxcharge = 30000
- materials = list(MAT_GLASS=400)
+ materials = list(/datum/material/glass=400)
chargerate = 3000
/obj/item/stock_parts/cell/hyper/empty/Initialize()
@@ -260,7 +260,7 @@
desc = "A rechargeable transdimensional power cell."
icon_state = "bscell"
maxcharge = 40000
- materials = list(MAT_GLASS=600)
+ materials = list(/datum/material/glass=600)
chargerate = 4000
/obj/item/stock_parts/cell/bluespace/empty/Initialize()
@@ -272,7 +272,7 @@
name = "infinite-capacity power cell!"
icon_state = "icell"
maxcharge = 30000
- materials = list(MAT_GLASS=1000)
+ materials = list(/datum/material/glass=1000)
rating = 100
chargerate = 30000
@@ -347,7 +347,7 @@
name = "miniature power cell"
desc = "A tiny power cell with a very low power capacity. Used in light fixtures to power them in the event of an outage."
maxcharge = 120 //Emergency lights use 0.2 W per tick, meaning ~10 minutes of emergency power from a cell
- materials = list(MAT_GLASS = 20)
+ materials = list(/datum/material/glass = 20)
w_class = WEIGHT_CLASS_TINY
/obj/item/stock_parts/cell/emergency_light/Initialize()
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index c00f37cf87a..fa16a284027 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -24,7 +24,7 @@
name = "small light fixture frame"
icon_state = "bulb-construct-item"
result_path = /obj/structure/light_construct/small
- materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
/obj/item/wallframe/light_fixture/try_build(turf/on_wall, user)
if(!..())
@@ -762,7 +762,7 @@
var/status = LIGHT_OK // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN
var/base_state
var/switchcount = 0 // number of times switched
- materials = list(MAT_GLASS=100)
+ materials = list(/datum/material/glass=100)
grind_results = list(/datum/reagent/silicon = 5, /datum/reagent/nitrogen = 10) //Nitrogen is used as a cheaper alternative to argon in incandescent lighbulbs
var/rigged = FALSE // true if rigged to explode
var/brightness = 2 //how much light it gives off
diff --git a/code/modules/power/pipecleaners.dm b/code/modules/power/pipecleaners.dm
index 450741cf57c..79f5ef83f9e 100644
--- a/code/modules/power/pipecleaners.dm
+++ b/code/modules/power/pipecleaners.dm
@@ -194,7 +194,7 @@ By design, d1 is the smallest direction and d2 is the highest
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=10, MAT_GLASS=5)
+ materials = list(/datum/material/iron=10, /datum/material/glass=5)
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index 1196d7aef03..1ea4baa820b 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -7,7 +7,7 @@
slot_flags = ITEM_SLOT_BELT
throwforce = 0
w_class = WEIGHT_CLASS_TINY
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
var/fire_sound = null //What sound should play when this ammo is fired
var/caliber = null //Which kind of guns it can be loaded into
var/projectile_type = null //The bullet type to create when New() is called
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index d5cbeb8ff8e..d867321deea 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -6,14 +6,14 @@
icon_state = "blshell"
caliber = "shotgun"
projectile_type = /obj/item/projectile/bullet/shotgun_slug
- materials = list(MAT_METAL=4000)
+ materials = list(/datum/material/iron=4000)
/obj/item/ammo_casing/shotgun/beanbag
name = "beanbag slug"
desc = "A weak beanbag slug for riot control."
icon_state = "bshell"
projectile_type = /obj/item/projectile/bullet/shotgun_beanbag
- materials = list(MAT_METAL=250)
+ materials = list(/datum/material/iron=250)
/obj/item/ammo_casing/shotgun/incendiary
name = "incendiary slug"
@@ -34,7 +34,7 @@
desc = "A stunning taser slug."
icon_state = "stunshell"
projectile_type = /obj/item/projectile/bullet/shotgun_stunslug
- materials = list(MAT_METAL=250)
+ materials = list(/datum/material/iron=250)
/obj/item/ammo_casing/shotgun/meteorslug
name = "meteorslug shell"
@@ -71,7 +71,7 @@
projectile_type = /obj/item/projectile/bullet/pellet/shotgun_rubbershot
pellets = 6
variance = 25
- materials = list(MAT_METAL=4000)
+ materials = list(/datum/material/iron=4000)
/obj/item/ammo_casing/shotgun/incapacitate
name = "custom incapacitating shot"
@@ -87,7 +87,7 @@
desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards."
icon_state = "improvshell"
projectile_type = /obj/item/projectile/bullet/pellet/shotgun_improvised
- materials = list(MAT_METAL=250)
+ materials = list(/datum/material/iron=250)
pellets = 10
variance = 25
diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm
index 5d9c650c784..a5a3dd23d53 100644
--- a/code/modules/projectiles/ammunition/caseless/foam.dm
+++ b/code/modules/projectiles/ammunition/caseless/foam.dm
@@ -5,7 +5,7 @@
caliber = "foam_force"
icon = 'icons/obj/guns/toy.dmi'
icon_state = "foamdart"
- materials = list(MAT_METAL = 11.25)
+ materials = list(/datum/material/iron = 11.25)
harmful = FALSE
var/modified = FALSE
@@ -62,4 +62,4 @@
desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up."
projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot
icon_state = "foamdart_riot"
- materials = list(MAT_METAL = 1125)
+ materials = list(/datum/material/iron = 1125)
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index fdefd897931..f7dc1d3bb04 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -8,7 +8,7 @@
item_state = "syringe_kit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
throwforce = 2
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
index b0780993b7e..5c1f2eed836 100644
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
@@ -13,7 +13,7 @@
ammo_type = /obj/item/ammo_casing/c38
max_ammo = 6
multiple_sprites = 1
- materials = list(MAT_METAL = 20000)
+ materials = list(/datum/material/iron = 20000)
/obj/item/ammo_box/c38/trac
name = "speed loader (.38 TRAC)"
@@ -75,9 +75,9 @@
icon_state = "foambox"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart
max_ammo = 40
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
/obj/item/ammo_box/foambox/riot
icon_state = "foambox_riot"
ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
- materials = list(MAT_METAL = 50000)
\ No newline at end of file
+ materials = list(/datum/material/iron = 50000)
\ No newline at end of file
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 7c3f041430b..2405df5259e 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -9,7 +9,7 @@
item_state = "gun"
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
w_class = WEIGHT_CLASS_NORMAL
throwforce = 5
throw_speed = 3
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index 66e47514ed0..758b6fbbc8e 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -4,7 +4,7 @@
icon_state = "laser"
item_state = "laser"
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
ammo_x_offset = 1
shaded_charge = 1
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index ee83b404bf5..a858f40701f 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -89,7 +89,7 @@
icon_state = "crossbow"
item_state = "crossbow"
w_class = WEIGHT_CLASS_SMALL
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
suppressed = TRUE
ammo_type = list(/obj/item/ammo_casing/energy/bolt)
weapon_weight = WEAPON_LIGHT
@@ -112,7 +112,7 @@
desc = "A reverse engineered weapon using syndicate technology."
icon_state = "crossbowlarge"
w_class = WEIGHT_CLASS_NORMAL
- materials = list(MAT_METAL=4000)
+ materials = list(/datum/material/iron=4000)
suppressed = null
ammo_type = list(/obj/item/ammo_casing/energy/bolt/large)
pin = null
diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm
index 1c43ed6dab3..317969e806c 100644
--- a/code/modules/projectiles/guns/misc/chem_gun.dm
+++ b/code/modules/projectiles/guns/misc/chem_gun.dm
@@ -9,7 +9,7 @@
throw_speed = 3
throw_range = 7
force = 4
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
clumsy_check = FALSE
fire_sound = 'sound/items/syringeproj.ogg'
var/time_per_syringe = 250
diff --git a/code/modules/projectiles/guns/misc/grenade_launcher.dm b/code/modules/projectiles/guns/misc/grenade_launcher.dm
index 4bc388a5e70..19bf7cbb93d 100644
--- a/code/modules/projectiles/guns/misc/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/misc/grenade_launcher.dm
@@ -10,7 +10,7 @@
force = 5
var/list/grenades = new/list()
var/max_grenades = 3
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
/obj/item/gun/grenadelauncher/examine(mob/user)
. = ..()
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 5cb196088ad..9753e2f59af 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -7,7 +7,7 @@
throw_speed = 3
throw_range = 7
force = 4
- materials = list(MAT_METAL=2000)
+ materials = list(/datum/material/iron=2000)
clumsy_check = 0
fire_sound = 'sound/items/syringeproj.ogg'
var/list/syringes = list()
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index a73ef998e7f..1005ccccf6d 100755
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -114,7 +114,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "beaker"
item_state = "beaker"
- materials = list(MAT_GLASS=500)
+ materials = list(/datum/material/glass=500)
/obj/item/reagent_containers/glass/beaker/Initialize()
. = ..()
@@ -162,7 +162,7 @@
name = "large beaker"
desc = "A large beaker. Can hold up to 100 units."
icon_state = "beakerlarge"
- materials = list(MAT_GLASS=2500)
+ materials = list(/datum/material/glass=2500)
volume = 100
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50,100)
@@ -171,7 +171,7 @@
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)
+ materials = list(/datum/material/glass=2500, /datum/material/plastic=3000)
volume = 120
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,60,120)
@@ -185,7 +185,7 @@
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)
+ materials = list(/datum/material/glass=2500, /datum/material/plastic=3000, /datum/material/gold=1000, /datum/material/titanium=1000)
volume = 180
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,60,120,180)
@@ -195,7 +195,7 @@
desc = "A cryostasis beaker that allows for chemical storage without \
reactions. Can hold up to 50 units."
icon_state = "beakernoreact"
- materials = list(MAT_METAL=3000)
+ materials = list(/datum/material/iron=3000)
reagent_flags = OPENCONTAINER | NO_REACT
volume = 50
amount_per_transfer_from_this = 10
@@ -206,7 +206,7 @@
and Element Cuban combined with the Compound Pete. Can hold up to \
300 units."
icon_state = "beakerbluespace"
- materials = list(MAT_GLASS = 5000, MAT_PLASMA = 3000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000)
+ materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000)
volume = 300
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300)
@@ -247,7 +247,7 @@
item_state = "bucket"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
- materials = list(MAT_METAL=200)
+ materials = list(/datum/material/iron=200)
w_class = WEIGHT_CLASS_NORMAL
amount_per_transfer_from_this = 20
possible_transfer_amounts = list(5,10,15,20,25,30,50,70)
@@ -320,7 +320,7 @@
icon_state = "smallbottle"
item_state = "bottle"
list_reagents = list(/datum/reagent/water = 49.5, /datum/reagent/fluorine = 0.5)//see desc, don't think about it too hard
- materials = list(MAT_GLASS=0)
+ materials = list(/datum/material/glass=0)
volume = 50
amount_per_transfer_from_this = 10
@@ -330,7 +330,7 @@
/obj/item/reagent_containers/glass/beaker/waterbottle/large
desc = "A fresh commercial-sized bottle of water."
icon_state = "largebottle"
- materials = list(MAT_GLASS=0)
+ materials = list(/datum/material/glass=0)
list_reagents = list(/datum/reagent/water = 100)
volume = 100
amount_per_transfer_from_this = 20
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 0a959b8fe8d..c6eb3373e17 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -12,7 +12,7 @@
var/mode = SYRINGE_DRAW
var/busy = FALSE // needed for delayed drawing of blood
var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun
- materials = list(MAT_METAL=10, MAT_GLASS=20)
+ materials = list(/datum/material/iron=10, /datum/material/glass=20)
reagent_flags = TRANSPARENT
/obj/item/reagent_containers/syringe/Initialize()
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 5cbe9a6f163..e72cd57e199 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -7,15 +7,6 @@ For the materials datum, it assumes you need reagents unless specified otherwise
you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum),
they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents.
The currently supporting non-reagent materials. All material amounts are set as the define MINERAL_MATERIAL_AMOUNT, which defaults to 2000
-- MAT_METAL (/obj/item/stack/metal).
-- MAT_GLASS (/obj/item/stack/glass).
-- MAT_PLASMA (/obj/item/stack/plasma).
-- MAT_SILVER (/obj/item/stack/silver).
-- MAT_GOLD (/obj/item/stack/gold).
-- MAT_URANIUM (/obj/item/stack/uranium).
-- MAT_DIAMOND (/obj/item/stack/diamond).
-- MAT_BANANIUM (/obj/item/stack/bananium).
-(Insert new ones here)
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
@@ -57,6 +48,19 @@ other types of metals and chemistry for reagents).
SSresearch.techweb_designs -= id
return ..()
+/datum/design/proc/InitializeMaterials()
+ var/list/temp_list = list()
+ for(var/i in materials) //Go through all of our materials, get the subsystem instance, and then replace the list.
+ var/amount = materials[i]
+ if(!istext(i)) //Not a category, so get the ref the normal way
+ var/datum/material/M = getmaterialref(i)
+ temp_list[M] = amount
+ else
+ temp_list[i] = amount
+ materials = temp_list
+ for(var/i in materials)
+ to_chat("[i] [materials[i]]")
+
/datum/design/proc/icon_html(client/user)
var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/research_designs)
sheet.send(user)
@@ -70,7 +74,7 @@ other types of metals and chemistry for reagents).
name = "Component Design Disk"
desc = "A disk for storing device design data for construction in lathes."
icon_state = "datadisk1"
- materials = list(MAT_METAL=300, MAT_GLASS=100)
+ materials = list(/datum/material/iron =300, /datum/material/glass =100)
var/list/blueprints = list()
var/max_blueprints = 1
@@ -84,5 +88,5 @@ other types of metals and chemistry for reagents).
/obj/item/disk/design_disk/adv
name = "Advanced Component Design Disk"
desc = "A disk for storing device design data for construction in lathes. This one has extra storage space."
- materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50)
+ materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50)
max_blueprints = 5
diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm
index 8dadaa4c8e0..2ce56e9d18f 100644
--- a/code/modules/research/designs/AI_module_designs.dm
+++ b/code/modules/research/designs/AI_module_designs.dm
@@ -14,7 +14,7 @@
name = "Module Design (Safeguard)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "safeguard_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/aiModule/supplied/safeguard
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -23,7 +23,7 @@
name = "Module Design (OneHuman)"
desc = "Allows for the construction of a OneHuman AI Module."
id = "onehuman_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 6000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 6000)
build_path = /obj/item/aiModule/zeroth/oneHuman
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -32,7 +32,7 @@
name = "Module Design (ProtectStation)"
desc = "Allows for the construction of a ProtectStation AI Module."
id = "protectstation_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/aiModule/supplied/protectStation
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -41,7 +41,7 @@
name = "Module Design (Quarantine)"
desc = "Allows for the construction of a Quarantine AI Module."
id = "quarantine_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/aiModule/supplied/quarantine
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -50,7 +50,7 @@
name = "Module Design (OxygenIsToxicToHumans)"
desc = "Allows for the construction of a Safeguard AI Module."
id = "oxygen_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/aiModule/supplied/oxygen
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -59,7 +59,7 @@
name = "Module Design (Freeform)"
desc = "Allows for the construction of a Freeform AI Module."
id = "freeform_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 10000)//Custom inputs should be more expensive to get
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 10000)//Custom inputs should be more expensive to get
build_path = /obj/item/aiModule/supplied/freeform
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -68,7 +68,7 @@
name = "Module Design (Reset)"
desc = "Allows for the construction of a Reset AI Module."
id = "reset_module"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/aiModule/reset
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -77,7 +77,7 @@
name = "Module Design (Purge)"
desc = "Allows for the construction of a Purge AI Module."
id = "purge_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/reset/purge
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -86,7 +86,7 @@
name = "Module Design (Law Removal)"
desc = "Allows for the construction of a Law Removal AI Core Module."
id = "remove_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/remove
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -95,7 +95,7 @@
name = "AI Core Module (Freeform)"
desc = "Allows for the construction of a Freeform AI Core Module."
id = "freeformcore_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 10000)//Ditto
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 10000)//Ditto
build_path = /obj/item/aiModule/core/freeformcore
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -104,7 +104,7 @@
name = "Core Module Design (Asimov)"
desc = "Allows for the construction of an Asimov AI Core Module."
id = "asimov_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/asimov
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -114,7 +114,7 @@
desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
id = "paladin_module"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/paladin
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -123,7 +123,7 @@
name = "Core Module Design (T.Y.R.A.N.T.)"
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
id = "tyrant_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/tyrant
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -132,7 +132,7 @@
name = "Core Module Design (Overlord)"
desc = "Allows for the construction of an Overlord AI Module."
id = "overlord_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/overlord
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -141,7 +141,7 @@
name = "Core Module Design (Corporate)"
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/corp
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -150,7 +150,7 @@
name = "Core Module Design (Default)"
desc = "Allows for the construction of a Default AI Core Module."
id = "default_module"
- materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/aiModule/core/full/custom
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 8b431d4fc1a..e6ef511dde7 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -6,7 +6,7 @@
name = "Bucket"
id = "bucket"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 200)
+ materials = list(/datum/material/iron = 200)
build_path = /obj/item/reagent_containers/glass/bucket
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -15,7 +15,7 @@
name = "Mop"
id = "mop"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 1000)
+ materials = list(/datum/material/iron = 1000)
build_path = /obj/item/mop
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -24,7 +24,7 @@
name = "Pocket Crowbar"
id = "crowbar"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50)
+ materials = list(/datum/material/iron = 50)
build_path = /obj/item/crowbar
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -33,7 +33,7 @@
name = "Flashlight"
id = "flashlight"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 20)
build_path = /obj/item/flashlight
category = list("initial","Tools")
@@ -41,7 +41,7 @@
name = "Fire Extinguisher"
id = "extinguisher"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 90)
+ materials = list(/datum/material/iron = 90)
build_path = /obj/item/extinguisher
category = list("initial","Tools")
@@ -49,7 +49,7 @@
name = "Pocket Fire Extinguisher"
id = "pocketfireextinguisher"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 40)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 40)
build_path = /obj/item/extinguisher/mini
category = list("initial","Tools")
@@ -57,7 +57,7 @@
name = "Multitool"
id = "multitool"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 20)
build_path = /obj/item/multitool
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -66,7 +66,7 @@
name = "Analyzer"
id = "analyzer"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 30, /datum/material/glass = 20)
build_path = /obj/item/analyzer
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -75,7 +75,7 @@
name = "T-Ray Scanner"
id = "tscanner"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 150)
+ materials = list(/datum/material/iron = 150)
build_path = /obj/item/t_scanner
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -84,7 +84,7 @@
name = "Welding Tool"
id = "welding_tool"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 70, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 70, /datum/material/glass = 20)
build_path = /obj/item/weldingtool
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -93,7 +93,7 @@
name = "Emergency Welding Tool"
id = "mini_welding_tool"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 10)
+ materials = list(/datum/material/iron = 30, /datum/material/glass = 10)
build_path = /obj/item/weldingtool/mini
category = list("initial","Tools")
@@ -101,7 +101,7 @@
name = "Screwdriver"
id = "screwdriver"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 75)
+ materials = list(/datum/material/iron = 75)
build_path = /obj/item/screwdriver
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -110,7 +110,7 @@
name = "Wirecutters"
id = "wirecutters"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 80)
+ materials = list(/datum/material/iron = 80)
build_path = /obj/item/wirecutters
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -119,7 +119,7 @@
name = "Wrench"
id = "wrench"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 150)
+ materials = list(/datum/material/iron = 150)
build_path = /obj/item/wrench
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -128,7 +128,7 @@
name = "Welding Helmet"
id = "welding_helmet"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 1750, MAT_GLASS = 400)
+ materials = list(/datum/material/iron = 1750, /datum/material/glass = 400)
build_path = /obj/item/clothing/head/welding
category = list("initial","Tools")
@@ -136,7 +136,7 @@
name = "Cable Coil"
id = "cable_coil"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 5)
+ materials = list(/datum/material/iron = 10, /datum/material/glass = 5)
build_path = /obj/item/stack/cable_coil
category = list("initial","Tools","Tool Designs")
maxstack = MAXCOIL
@@ -146,7 +146,7 @@
name = "Toolbox"
id = "tool_box"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500)
+ materials = list(MAT_CATEGORY_RIGID = 500)
build_path = /obj/item/storage/toolbox
category = list("initial","Tools")
@@ -154,7 +154,7 @@
name = "APC Module"
id = "power control"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
build_path = /obj/item/electronics/apc
category = list("initial", "Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -163,7 +163,7 @@
name = "Airlock Electronics"
id = "airlock_board"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
build_path = /obj/item/electronics/airlock
category = list("initial", "Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -172,7 +172,7 @@
name = "Firelock Circuitry"
id = "firelock_board"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
build_path = /obj/item/electronics/firelock
category = list("initial", "Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -181,7 +181,7 @@
name = "Air Alarm Electronics"
id = "airalarm_electronics"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
build_path = /obj/item/electronics/airalarm
category = list("initial", "Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -190,7 +190,7 @@
name = "Fire Alarm Electronics"
id = "firealarm_electronics"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
build_path = /obj/item/electronics/firealarm
category = list("initial", "Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -199,7 +199,7 @@
name = "Camera"
id = "camera"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 100)
build_path = /obj/item/camera
category = list("initial", "Misc")
@@ -207,7 +207,7 @@
name = "Camera Film Cartridge"
id = "camera_film"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 10)
+ materials = list(/datum/material/iron = 10, /datum/material/glass = 10)
build_path = /obj/item/camera_film
category = list("initial", "Misc")
@@ -215,7 +215,7 @@
name = "Earmuffs"
id = "earmuffs"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/ears/earmuffs
category = list("initial", "Misc")
@@ -223,7 +223,7 @@
name = "Pipe Painter"
id = "pipe_painter"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000)
build_path = /obj/item/pipe_painter
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -232,7 +232,7 @@
name = "Airlock Painter"
id = "airlock_painter"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
build_path = /obj/item/airlock_painter
category = list("initial","Tools","Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -241,7 +241,7 @@
name = "Emergency Oxygen Tank"
id = "emergency_oxygen"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
build_path = /obj/item/tank/internals/emergency_oxygen/empty
category = list("initial","Misc","Equipment")
@@ -249,7 +249,7 @@
name = "Extended-Capacity Emergency Oxygen Tank"
id = "emergency_oxygen_engi"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 750)
+ materials = list(/datum/material/iron = 750)
build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty
category = list("hacked","Misc","Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO
@@ -258,7 +258,7 @@
name = "Plasmaman Belt Tank"
id = "plasmaman_tank_belt"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 800)
+ materials = list(/datum/material/iron = 800)
build_path = /obj/item/tank/internals/plasmaman/belt/empty
category = list("hacked","Misc","Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO
@@ -267,7 +267,7 @@
name = "Metal"
id = "metal"
build_type = AUTOLATHE
- materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/metal
category = list("initial","Construction")
maxstack = 50
@@ -276,7 +276,7 @@
name = "Glass"
id = "glass"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/glass
category = list("initial","Construction")
maxstack = 50
@@ -285,7 +285,7 @@
name = "Reinforced Glass"
id = "rglass"
build_type = AUTOLATHE | SMELTER | PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/rglass
category = list("initial","Construction","Stock Parts")
maxstack = 50
@@ -294,7 +294,7 @@
name = "Metal Rod"
id = "rods"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 1000)
+ materials = list(/datum/material/iron = 1000)
build_path = /obj/item/stack/rods
category = list("initial","Construction")
maxstack = 50
@@ -303,7 +303,7 @@
name = "Compressed Matter Cartridge"
id = "rcd_ammo"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 12000, MAT_GLASS=8000)
+ materials = list(/datum/material/iron = 12000, /datum/material/glass = 8000)
build_path = /obj/item/rcd_ammo
category = list("initial","Construction")
@@ -311,7 +311,7 @@
name = "Kitchen Knife"
id = "kitchen_knife"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 12000)
+ materials = list(/datum/material/iron = 12000)
build_path = /obj/item/kitchen/knife
category = list("initial","Dinnerware")
@@ -319,7 +319,7 @@
name = "Fork"
id = "fork"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 80)
+ materials = list(/datum/material/iron = 80)
build_path = /obj/item/kitchen/fork
category = list("initial","Dinnerware")
@@ -327,7 +327,7 @@
name = "Tray"
id = "tray"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 3000)
+ materials = list(/datum/material/iron = 3000)
build_path = /obj/item/storage/bag/tray
category = list("initial","Dinnerware")
@@ -335,7 +335,7 @@
name = "Bowl"
id = "bowl"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
build_path = /obj/item/reagent_containers/glass/bowl
category = list("initial","Dinnerware")
@@ -343,7 +343,7 @@
name = "Drinking Glass"
id = "drinking_glass"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
build_path = /obj/item/reagent_containers/food/drinks/drinkingglass
category = list("initial","Dinnerware")
@@ -351,7 +351,7 @@
name = "Shot Glass"
id = "shot_glass"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 100)
+ materials = list(/datum/material/glass = 100)
build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass
category = list("initial","Dinnerware")
@@ -359,7 +359,7 @@
name = "Shaker"
id = "shaker"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 1500)
+ materials = list(/datum/material/iron = 1500)
build_path = /obj/item/reagent_containers/food/drinks/shaker
category = list("initial","Dinnerware")
@@ -367,7 +367,7 @@
name = "Cultivator"
id = "cultivator"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
build_path = /obj/item/cultivator
category = list("initial","Misc", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -376,7 +376,7 @@
name = "Plant Analyzer"
id = "plant_analyzer"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 30, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 30, /datum/material/glass = 20)
build_path = /obj/item/plant_analyzer
category = list("initial","Misc", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -385,7 +385,7 @@
name = "Shovel"
id = "shovel"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50)
+ materials = list(/datum/material/iron = 50)
build_path = /obj/item/shovel
category = list("initial","Misc", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -394,7 +394,7 @@
name = "Spade"
id = "spade"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 50)
+ materials = list(/datum/material/iron = 50)
build_path = /obj/item/shovel/spade
category = list("initial","Misc", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -403,7 +403,7 @@
name = "Hatchet"
id = "hatchet"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 15000)
+ materials = list(/datum/material/iron = 15000)
build_path = /obj/item/hatchet
category = list("initial","Misc", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -412,7 +412,7 @@
name = "Tinfoil Hat"
id = "tinfoil_hat"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 5500)
+ materials = list(/datum/material/iron = 5500)
build_path = /obj/item/clothing/head/foilhat
category = list("hacked", "Misc")
@@ -420,7 +420,7 @@
name = "Scalpel"
id = "scalpel"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000)
build_path = /obj/item/scalpel
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -429,7 +429,7 @@
name = "Circular Saw"
id = "circular_saw"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000)
build_path = /obj/item/circular_saw
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -438,7 +438,7 @@
name = "Surgical Drill"
id = "surgicaldrill"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000)
build_path = /obj/item/surgicaldrill
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -447,7 +447,7 @@
name = "Retractor"
id = "retractor"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 6000, MAT_GLASS = 3000)
+ materials = list(/datum/material/iron = 6000, /datum/material/glass = 3000)
build_path = /obj/item/retractor
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -456,7 +456,7 @@
name = "Cautery"
id = "cautery"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 2500, MAT_GLASS = 750)
+ materials = list(/datum/material/iron = 2500, /datum/material/glass = 750)
build_path = /obj/item/cautery
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -465,7 +465,7 @@
name = "Hemostat"
id = "hemostat"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 2500)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500)
build_path = /obj/item/hemostat
category = list("initial", "Medical", "Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -474,7 +474,7 @@
name = "Beaker"
id = "beaker"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
build_path = /obj/item/reagent_containers/glass/beaker
category = list("initial", "Medical", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE
@@ -483,7 +483,7 @@
name = "Large Beaker"
id = "large_beaker"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_GLASS = 2500)
+ materials = list(/datum/material/glass = 2500)
build_path = /obj/item/reagent_containers/glass/beaker/large
category = list("initial", "Medical", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE
@@ -492,7 +492,7 @@
name = "Health Analyzer"
id = "healthanalyzer"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
build_path = /obj/item/healthanalyzer
category = list("initial", "Medical", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -501,7 +501,7 @@
name = "Pill Bottle"
id = "pillbottle"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 20, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 20, /datum/material/glass = 100)
build_path = /obj/item/storage/pill_bottle
category = list("initial", "Medical", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -510,7 +510,7 @@
name = "Beanbag Slug"
id = "beanbag_slug"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 2000)
+ materials = list(/datum/material/iron = 2000)
build_path = /obj/item/ammo_casing/shotgun/beanbag
category = list("initial", "Security")
@@ -518,7 +518,7 @@
name = "Rubber Shot"
id = "rubber_shot"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/rubbershot
category = list("initial", "Security")
@@ -526,7 +526,7 @@
name = "Speed Loader (.38)"
id = "c38"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 20000)
+ materials = list(/datum/material/iron = 20000)
build_path = /obj/item/ammo_box/c38
category = list("initial", "Security")
@@ -534,7 +534,7 @@
name = "Universal Recorder"
id = "recorder"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 60, MAT_GLASS = 30)
+ materials = list(/datum/material/iron = 60, /datum/material/glass = 30)
build_path = /obj/item/taperecorder/empty
category = list("initial", "Misc")
@@ -542,7 +542,7 @@
name = "Tape"
id = "tape"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 20, MAT_GLASS = 5)
+ materials = list(/datum/material/iron = 20, /datum/material/glass = 5)
build_path = /obj/item/tape/random
category = list("initial", "Misc")
@@ -550,7 +550,7 @@
name = "Igniter"
id = "igniter"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
build_path = /obj/item/assembly/igniter
category = list("initial", "Misc")
@@ -558,7 +558,7 @@
name = "Remote Signaling Device"
id = "signaler"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 400, MAT_GLASS = 120)
+ materials = list(/datum/material/iron = 400, /datum/material/glass = 120)
build_path = /obj/item/assembly/signaler
category = list("initial", "T-Comm")
@@ -566,7 +566,7 @@
name = "Radio Headset"
id = "radio_headset"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 75)
+ materials = list(/datum/material/iron = 75)
build_path = /obj/item/radio/headset
category = list("initial", "T-Comm")
@@ -574,7 +574,7 @@
name = "Station Bounced Radio"
id = "bounced_radio"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 75, MAT_GLASS = 25)
+ materials = list(/datum/material/iron = 75, /datum/material/glass = 25)
build_path = /obj/item/radio/off
category = list("initial", "T-Comm")
@@ -582,7 +582,7 @@
name = "Intercom Frame"
id = "intercom_frame"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 75, MAT_GLASS = 25)
+ materials = list(/datum/material/iron = 75, /datum/material/glass = 25)
build_path = /obj/item/wallframe/intercom
category = list("initial", "T-Comm")
@@ -590,7 +590,7 @@
name = "Infrared Emitter"
id = "infrared_emitter"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
build_path = /obj/item/assembly/infra
category = list("initial", "Misc")
@@ -598,7 +598,7 @@
name = "Health Sensor"
id = "health_sensor"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 800, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 800, /datum/material/glass = 200)
build_path = /obj/item/assembly/health
category = list("initial", "Medical")
@@ -606,7 +606,7 @@
name = "Timer"
id = "timer"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
build_path = /obj/item/assembly/timer
category = list("initial", "Misc")
@@ -614,7 +614,7 @@
name = "Voice Analyser"
id = "voice_analyser"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 50)
build_path = /obj/item/assembly/voice
category = list("initial", "Misc")
@@ -622,7 +622,7 @@
name = "Light Tube"
id = "light_tube"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 100)
+ materials = list(/datum/material/glass = 100)
build_path = /obj/item/light/tube
category = list("initial", "Construction")
@@ -630,7 +630,7 @@
name = "Light Bulb"
id = "light_bulb"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 100)
+ materials = list(/datum/material/glass = 100)
build_path = /obj/item/light/bulb
category = list("initial", "Construction")
@@ -638,7 +638,7 @@
name = "Camera Assembly"
id = "camera_assembly"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 400, MAT_GLASS = 250)
+ materials = list(/datum/material/iron = 400, /datum/material/glass = 250)
build_path = /obj/item/wallframe/camera
category = list("initial", "Construction")
@@ -646,7 +646,7 @@
name = "Newscaster Frame"
id = "newscaster_frame"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 14000, MAT_GLASS = 8000)
+ materials = list(/datum/material/iron = 14000, /datum/material/glass = 8000)
build_path = /obj/item/wallframe/newscaster
category = list("initial", "Construction")
@@ -654,7 +654,7 @@
name = "Syringe"
id = "syringe"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 10, MAT_GLASS = 20)
+ materials = list(/datum/material/iron = 10, /datum/material/glass = 20)
build_path = /obj/item/reagent_containers/syringe
category = list("initial", "Medical", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -663,7 +663,7 @@
name = "Proximity Sensor"
id = "prox_sensor"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 800, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 800, /datum/material/glass = 200)
build_path = /obj/item/assembly/prox_sensor
category = list("initial", "Misc")
@@ -671,7 +671,7 @@
name = "Box of Foam Darts"
id = "foam_dart"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
build_path = /obj/item/ammo_box/foambox
category = list("initial", "Misc")
@@ -680,7 +680,7 @@
name = "Flamethrower"
id = "flamethrower"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
build_path = /obj/item/flamethrower/full
category = list("hacked", "Security")
@@ -688,7 +688,7 @@
name = "Rapid Construction Device (RCD)"
id = "rcd"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
build_path = /obj/item/construction/rcd
category = list("hacked", "Construction")
@@ -696,7 +696,7 @@
name = "Rapid Pipe Dispenser (RPD)"
id = "rpd"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 75000, MAT_GLASS = 37500)
+ materials = list(/datum/material/iron = 75000, /datum/material/glass = 37500)
build_path = /obj/item/pipe_dispenser
category = list("hacked", "Construction")
@@ -704,7 +704,7 @@
name = "Electropack"
id = "electropack"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 2500)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 2500)
build_path = /obj/item/electropack
category = list("hacked", "Tools")
@@ -712,7 +712,7 @@
name = "Industrial Welding Tool"
id = "large_welding_tool"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 70, MAT_GLASS = 60)
+ materials = list(/datum/material/iron = 70, /datum/material/glass = 60)
build_path = /obj/item/weldingtool/largetank
category = list("hacked", "Tools")
@@ -720,7 +720,7 @@
name = "Handcuffs"
id = "handcuffs"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500)
+ materials = list(/datum/material/iron = 500)
build_path = /obj/item/restraints/handcuffs
category = list("hacked", "Security")
@@ -728,7 +728,7 @@
name = "Modular Receiver"
id = "receiver"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 15000)
+ materials = list(/datum/material/iron = 15000)
build_path = /obj/item/weaponcrafting/receiver
category = list("hacked", "Security")
@@ -736,7 +736,7 @@
name = "Shotgun Slug"
id = "shotgun_slug"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun
category = list("hacked", "Security")
@@ -744,7 +744,7 @@
name = "Buckshot Shell"
id = "buckshot_shell"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/buckshot
category = list("hacked", "Security")
@@ -752,7 +752,7 @@
name = "Shotgun Dart"
id = "shotgun_dart"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/dart
category = list("hacked", "Security")
@@ -760,7 +760,7 @@
name = "Incendiary Slug"
id = "incendiary_slug"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_casing/shotgun/incendiary
category = list("hacked", "Security")
@@ -768,7 +768,7 @@
name = "Foam Riot Dart"
id = "riot_dart"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal!
+ materials = list(/datum/material/iron = 1000) //Discount for making individually - no box = less metal!
build_path = /obj/item/ammo_casing/caseless/foam_dart/riot
category = list("hacked", "Security")
@@ -776,7 +776,7 @@
name = "Foam Riot Dart Box"
id = "riot_darts"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 50000) //Comes with 40 darts
+ materials = list(/datum/material/iron = 50000) //Comes with 40 darts
build_path = /obj/item/ammo_box/foambox/riot
category = list("hacked", "Security")
@@ -784,7 +784,7 @@
name = "Speed Loader (.357)"
id = "a357"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/a357
category = list("hacked", "Security")
@@ -792,7 +792,7 @@
name = "Ammo Box (10mm)"
id = "c10mm"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c10mm
category = list("hacked", "Security")
@@ -800,7 +800,7 @@
name = "Ammo Box (.45)"
id = "c45"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c45
category = list("hacked", "Security")
@@ -808,7 +808,7 @@
name = "Ammo Box (9mm)"
id = "c9mm"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 30000)
+ materials = list(/datum/material/iron = 30000)
build_path = /obj/item/ammo_box/c9mm
category = list("hacked", "Security")
@@ -816,7 +816,7 @@
name = "Butcher's Cleaver"
id = "cleaver"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 18000)
+ materials = list(/datum/material/iron = 18000)
build_path = /obj/item/kitchen/knife/butcher
category = list("hacked", "Dinnerware")
@@ -824,7 +824,7 @@
name = "Spraycan"
id = "spraycan"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
build_path = /obj/item/toy/crayon/spraycan
category = list("initial", "Tools")
@@ -832,7 +832,7 @@
name = "Destination Tagger"
id = "desttagger"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 250, MAT_GLASS = 125)
+ materials = list(/datum/material/iron = 250, /datum/material/glass = 125)
build_path = /obj/item/destTagger
category = list("initial", "Electronics")
@@ -840,7 +840,7 @@
name = "Hand Labeler"
id = "handlabel"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 125)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 125)
build_path = /obj/item/hand_labeler
category = list("initial", "Electronics")
@@ -848,7 +848,7 @@
name = "Geiger Counter"
id = "geigercounter"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 150)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 150)
build_path = /obj/item/geiger_counter
category = list("initial", "Tools")
@@ -856,7 +856,7 @@
name = "Turret Control Frame"
id = "turret_control"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 12000)
+ materials = list(/datum/material/iron = 12000)
build_path = /obj/item/wallframe/turret_control
category = list("initial", "Construction")
@@ -864,7 +864,7 @@
name = "Conveyor Belt"
id = "conveyor_belt"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 5000)
+ materials = list(/datum/material/iron = 5000)
build_path = /obj/item/conveyor_construct
category = list("initial", "Construction")
@@ -872,7 +872,7 @@
name = "Conveyor Belt Switch"
id = "conveyor_switch"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 450, MAT_GLASS = 190)
+ materials = list(/datum/material/iron = 450, /datum/material/glass = 190)
build_path = /obj/item/conveyor_switch_construct
category = list("initial", "Construction")
@@ -880,7 +880,7 @@
name = "Laptop Frame"
id = "laptop"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 1000)
build_path = /obj/item/modular_computer/laptop/buildable
category = list("initial","Misc")
@@ -888,7 +888,7 @@
name = "Tablet Frame"
id = "tablet"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000)
build_path = /obj/item/modular_computer/tablet
category = list("initial","Misc")
@@ -896,7 +896,7 @@
name = "Slime Scanner"
id = "slime_scanner"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 200)
build_path = /obj/item/slime_scanner
category = list("initial", "Misc")
@@ -904,7 +904,7 @@
name = "Pet Carrier"
id = "pet_carrier"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 7500, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 7500, /datum/material/glass = 100)
build_path = /obj/item/pet_carrier
category = list("initial", "Misc")
@@ -912,7 +912,7 @@
name = "Light Fixture Battery"
id = "miniature_power_cell"
build_type = AUTOLATHE
- materials = list(MAT_GLASS = 20)
+ materials = list(/datum/material/glass = 20)
build_path = /obj/item/stock_parts/cell/emergency_light
category = list("initial", "Electronics")
@@ -920,7 +920,7 @@
name = "Package Wrapping"
id = "packagewrap"
build_type = AUTOLATHE | PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 200)
build_path = /obj/item/stack/packageWrap
category = list("initial", "Misc", "Equipment")
maxstack = 30
@@ -929,7 +929,7 @@
name = "Holodisk"
id = "holodisk"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
build_path = /obj/item/disk/holodisk
category = list("initial", "Misc")
@@ -937,7 +937,7 @@
name = "Blue Circuit Tile"
id = "circuit"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/stack/tile/circuit
category = list("initial", "Misc")
maxstack = 50
@@ -946,7 +946,7 @@
name = "Green Circuit Tile"
id = "circuitgreen"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/stack/tile/circuit/green
category = list("initial", "Misc")
maxstack = 50
@@ -955,7 +955,7 @@
name = "Red Circuit Tile"
id = "circuitred"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/stack/tile/circuit/red
category = list("initial", "Misc")
maxstack = 50
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index c96f58e5c52..324491e2a3f 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -6,7 +6,7 @@
name = "10 Milk"
id = "milk"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 20)
+ materials = list(/datum/material/biomass= 20)
make_reagents = list(/datum/reagent/consumable/milk = 10)
category = list("initial","Food")
@@ -14,7 +14,7 @@
name = "10 Cream"
id = "cream"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 30)
+ materials = list(/datum/material/biomass= 30)
make_reagents = list(/datum/reagent/consumable/cream = 10)
category = list("initial","Food")
@@ -22,7 +22,7 @@
name = "Milk Carton"
id = "milk_carton"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 100)
+ materials = list(/datum/material/biomass= 100)
build_path = /obj/item/reagent_containers/food/condiment/milk
category = list("initial","Food")
@@ -30,7 +30,7 @@
name = "Cream Carton"
id = "cream_carton"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
+ materials = list(/datum/material/biomass= 300)
build_path = /obj/item/reagent_containers/food/drinks/bottle/cream
category = list("initial","Food")
@@ -38,7 +38,7 @@
name = "10u Black Pepper"
id = "black_pepper"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 25)
+ materials = list(/datum/material/biomass= 25)
make_reagents = list(/datum/reagent/consumable/blackpepper = 10)
category = list("initial","Food")
@@ -46,7 +46,7 @@
name = "Pepper Mill"
id = "pepper_mill"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 50)
+ materials = list(/datum/material/biomass= 50)
build_path = /obj/item/reagent_containers/food/condiment/peppermill
make_reagents = list()
category = list("initial","Food")
@@ -55,7 +55,7 @@
name = "10u Universal Enzyme"
id = "enzyme"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 30)
+ materials = list(/datum/material/biomass= 30)
make_reagents = list(/datum/reagent/consumable/enzyme = 10)
category = list("initial","Food")
@@ -63,7 +63,7 @@
name = "Flour Sack"
id = "flour_sack"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 150)
+ materials = list(/datum/material/biomass= 150)
build_path = /obj/item/reagent_containers/food/condiment/flour
category = list("initial","Food")
@@ -71,7 +71,7 @@
name = "Monkey Cube"
id = "mcube"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 250)
+ materials = list(/datum/material/biomass= 250)
build_path = /obj/item/reagent_containers/food/snacks/monkeycube
category = list("initial", "Food")
@@ -79,7 +79,7 @@
name = "E-Z Nutrient"
id = "ez_nut"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 10)
+ materials = list(/datum/material/biomass= 10)
build_path = /obj/item/reagent_containers/glass/bottle/nutrient/ez
category = list("initial","Botany Chemicals")
@@ -87,7 +87,7 @@
name = "Left 4 Zed"
id = "l4z_nut"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 20)
+ materials = list(/datum/material/biomass= 20)
build_path = /obj/item/reagent_containers/glass/bottle/nutrient/l4z
category = list("initial","Botany Chemicals")
@@ -95,7 +95,7 @@
name = "Robust Harvest"
id = "rh_nut"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 25)
+ materials = list(/datum/material/biomass= 25)
build_path = /obj/item/reagent_containers/glass/bottle/nutrient/rh
category = list("initial","Botany Chemicals")
@@ -103,7 +103,7 @@
name = "Weed Killer"
id = "weed_killer"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 50)
+ materials = list(/datum/material/biomass= 50)
build_path = /obj/item/reagent_containers/glass/bottle/killer/weedkiller
category = list("initial","Botany Chemicals")
@@ -111,7 +111,7 @@
name = "Pest Killer"
id = "pest_spray"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 50)
+ materials = list(/datum/material/biomass= 50)
build_path = /obj/item/reagent_containers/glass/bottle/killer/pestkiller
category = list("initial","Botany Chemicals")
@@ -119,7 +119,7 @@
name = "Empty Bottle"
id = "botany_bottle"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 5)
+ materials = list(/datum/material/biomass= 5)
build_path = /obj/item/reagent_containers/glass/bottle/nutrient/empty
category = list("initial", "Botany Chemicals")
@@ -127,7 +127,7 @@
name = "Roll of Cloth"
id = "cloth"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 50)
+ materials = list(/datum/material/biomass= 50)
build_path = /obj/item/stack/sheet/cloth
category = list("initial","Organic Materials")
@@ -135,7 +135,7 @@
name = "Sheet of Cardboard"
id = "cardboard"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 25)
+ materials = list(/datum/material/biomass= 25)
build_path = /obj/item/stack/sheet/cardboard
category = list("initial","Organic Materials")
@@ -143,7 +143,7 @@
name = "Sheet of Leather"
id = "leather"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 150)
+ materials = list(/datum/material/biomass= 150)
build_path = /obj/item/stack/sheet/leather
category = list("initial","Organic Materials")
@@ -151,7 +151,7 @@
name = "Security Belt"
id = "secbelt"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
+ materials = list(/datum/material/biomass= 300)
build_path = /obj/item/storage/belt/security
category = list("initial","Organic Materials")
@@ -159,7 +159,7 @@
name = "Medical Belt"
id = "medbel"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
+ materials = list(/datum/material/biomass= 300)
build_path = /obj/item/storage/belt/medical
category = list("initial","Organic Materials")
@@ -167,7 +167,7 @@
name = "Janitorial Belt"
id = "janibelt"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
+ materials = list(/datum/material/biomass= 300)
build_path = /obj/item/storage/belt/janitor
category = list("initial","Organic Materials")
@@ -175,7 +175,7 @@
name = "Shoulder Holster"
id = "s_holster"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 400)
+ materials = list(/datum/material/biomass= 400)
build_path = /obj/item/storage/belt/holster
category = list("initial","Organic Materials")
@@ -183,6 +183,6 @@
name = "Rice Hat"
id = "rice_hat"
build_type = BIOGENERATOR
- materials = list(MAT_BIOMASS = 300)
+ materials = list(/datum/material/biomass= 300)
build_path = /obj/item/clothing/head/rice_hat
category = list("initial","Organic Materials")
diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm
index e3f231578b2..cc44bb6e37f 100644
--- a/code/modules/research/designs/bluespace_designs.dm
+++ b/code/modules/research/designs/bluespace_designs.dm
@@ -8,7 +8,7 @@
desc = "A bluespace tracking beacon."
id = "beacon"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 100)
build_path = /obj/item/beacon
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY
@@ -18,7 +18,7 @@
desc = "A backpack that opens into a localized pocket of bluespace."
id = "bag_holding"
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 3000, MAT_DIAMOND = 1500, MAT_URANIUM = 250, MAT_BLUESPACE = 2000)
+ materials = list(/datum/material/gold = 3000, /datum/material/diamond = 1500, /datum/material/uranium = 250, /datum/material/bluespace = 2000)
build_path = /obj/item/storage/backpack/holding
category = list("Bluespace Designs")
dangerous_construction = TRUE
@@ -29,7 +29,7 @@
desc = "A small blue crystal with mystical properties."
id = "bluespace_crystal"
build_type = PROTOLATHE
- materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500)
+ materials = list(/datum/material/diamond = 1500, /datum/material/plasma = 1500)
build_path = /obj/item/stack/ore/bluespace_crystal/artificial
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -39,7 +39,7 @@
desc = "Little thingie that can track its position at all times."
id = "telesci_gps"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 1000)
build_path = /obj/item/gps
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO
@@ -49,7 +49,7 @@
desc = "A device that can desynchronize the user from spacetime."
id = "desynchronizer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_BLUESPACE = 1000)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 1500, /datum/material/bluespace = 1000)
build_path = /obj/item/desynchronizer
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -59,7 +59,7 @@
desc = "A mining satchel that can hold an infinite amount of ores."
id = "minerbag_holding"
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 250, MAT_URANIUM = 500) //quite cheap, for more convenience
+ materials = list(/datum/material/gold = 250, /datum/material/uranium = 500) //quite cheap, for more convenience
build_path = /obj/item/storage/bag/ore/holding
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -69,7 +69,7 @@
desc = "An experimental device that is able to swap the locations of two entities by switching their particles' spin values. Must be linked to another device to function."
id = "swapper"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 1000, MAT_BLUESPACE = 2000, MAT_GOLD = 1500, MAT_SILVER = 1000)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 1000, /datum/material/bluespace = 2000, /datum/material/gold = 1500, /datum/material/silver = 1000)
build_path = /obj/item/swapper
category = list("Bluespace Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 5a7fd68ccbe..94db73dbd47 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -4,7 +4,7 @@
name = "Computer Design ( NULL ENTRY )"
desc = "I promise this doesn't give you syndicate goodies!"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 1000)
+ materials = list(/datum/material/glass = 1000)
/datum/design/board/arcade_battle
name = "Computer Design (Battle Arcade Machine)"
@@ -50,7 +50,7 @@
name = "Computer Design (AI Upload)"
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
id = "aiupload"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/circuitboard/computer/aiupload
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -59,7 +59,7 @@
name = "Computer Design (Cyborg Upload)"
desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console."
id = "borgupload"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/circuitboard/computer/borgupload
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm
index a8813b726d0..683fd8b61ec 100644
--- a/code/modules/research/designs/computer_part_designs.dm
+++ b/code/modules/research/designs/computer_part_designs.dm
@@ -6,7 +6,7 @@
name = "Hard Disk Drive"
id = "hdd_basic"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 400, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 400, /datum/material/glass = 100)
build_path = /obj/item/computer_hardware/hard_drive
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -15,7 +15,7 @@
name = "Advanced Hard Disk Drive"
id = "hdd_advanced"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 800, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 800, /datum/material/glass = 200)
build_path = /obj/item/computer_hardware/hard_drive/advanced
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -24,7 +24,7 @@
name = "Super Hard Disk Drive"
id = "hdd_super"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1600, MAT_GLASS = 400)
+ materials = list(/datum/material/iron = 1600, /datum/material/glass = 400)
build_path = /obj/item/computer_hardware/hard_drive/super
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -33,7 +33,7 @@
name = "Cluster Hard Disk Drive"
id = "hdd_cluster"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3200, MAT_GLASS = 800)
+ materials = list(/datum/material/iron = 3200, /datum/material/glass = 800)
build_path = /obj/item/computer_hardware/hard_drive/cluster
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -42,7 +42,7 @@
name = "Solid State Drive"
id = "ssd_small"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 800, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 800, /datum/material/glass = 200)
build_path = /obj/item/computer_hardware/hard_drive/small
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -51,7 +51,7 @@
name = "Micro Solid State Drive"
id = "ssd_micro"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 400, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 400, /datum/material/glass = 100)
build_path = /obj/item/computer_hardware/hard_drive/micro
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -61,7 +61,7 @@
name = "Network Card"
id = "netcard_basic"
build_type = IMPRINTER
- materials = list(MAT_METAL = 250, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 250, /datum/material/glass = 100)
build_path = /obj/item/computer_hardware/network_card
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -70,7 +70,7 @@
name = "Advanced Network Card"
id = "netcard_advanced"
build_type = IMPRINTER
- materials = list(MAT_METAL = 500, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 200)
build_path = /obj/item/computer_hardware/network_card/advanced
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -79,7 +79,7 @@
name = "Wired Network Card"
id = "netcard_wired"
build_type = IMPRINTER
- materials = list(MAT_METAL = 2500, MAT_GLASS = 400)
+ materials = list(/datum/material/iron = 2500, /datum/material/glass = 400)
build_path = /obj/item/computer_hardware/network_card/wired
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -89,7 +89,7 @@
name = "Data Disk"
id = "portadrive_basic"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 800)
+ materials = list(/datum/material/glass = 800)
build_path = /obj/item/computer_hardware/hard_drive/portable
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -98,7 +98,7 @@
name = "Advanced Data Disk"
id = "portadrive_advanced"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 1600)
+ materials = list(/datum/material/glass = 1600)
build_path = /obj/item/computer_hardware/hard_drive/portable/advanced
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -107,7 +107,7 @@
name = "Super Data Disk"
id = "portadrive_super"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 3200)
+ materials = list(/datum/material/glass = 3200)
build_path = /obj/item/computer_hardware/hard_drive/portable/super
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -117,7 +117,7 @@
name = "ID Card Slot"
id = "cardslot"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600)
+ materials = list(/datum/material/iron = 600)
build_path = /obj/item/computer_hardware/card_slot
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -127,7 +127,7 @@
name = "Intellicard Slot"
id = "aislot"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600)
+ materials = list(/datum/material/iron = 600)
build_path = /obj/item/computer_hardware/ai_slot
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -137,7 +137,7 @@
name = "Miniprinter"
id = "miniprinter"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600)
+ materials = list(/datum/material/iron = 600)
build_path = /obj/item/computer_hardware/printer/mini
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -147,7 +147,7 @@
name = "Area Power Connector"
id = "APClink"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000)
+ materials = list(/datum/material/iron = 2000)
build_path = /obj/item/computer_hardware/recharger/APC
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -157,7 +157,7 @@
name = "Power Cell Controller"
id = "bat_control"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 400)
+ materials = list(/datum/material/iron = 400)
build_path = /obj/item/computer_hardware/battery
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -166,7 +166,7 @@
name = "Battery Module"
id = "bat_normal"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 400)
+ materials = list(/datum/material/iron = 400)
build_path = /obj/item/stock_parts/cell/computer
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -175,7 +175,7 @@
name = "Advanced Battery Module"
id = "bat_advanced"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 800)
+ materials = list(/datum/material/iron = 800)
build_path = /obj/item/stock_parts/cell/computer/advanced
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -184,7 +184,7 @@
name = "Super Battery Module"
id = "bat_super"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1600)
+ materials = list(/datum/material/iron = 1600)
build_path = /obj/item/stock_parts/cell/computer/super
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -193,7 +193,7 @@
name = "Nano Battery Module"
id = "bat_nano"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200)
+ materials = list(/datum/material/iron = 200)
build_path = /obj/item/stock_parts/cell/computer/nano
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -202,7 +202,7 @@
name = "Micro Battery Module"
id = "bat_micro"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 400)
+ materials = list(/datum/material/iron = 400)
build_path = /obj/item/stock_parts/cell/computer/micro
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -212,7 +212,7 @@
name = "Processor Board"
id = "cpu_normal"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 1600)
+ materials = list(/datum/material/glass = 1600)
build_path = /obj/item/computer_hardware/processor_unit
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -221,7 +221,7 @@
name = "Microprocessor"
id = "cpu_small"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 800)
+ materials = list(/datum/material/glass = 800)
build_path = /obj/item/computer_hardware/processor_unit/small
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -230,7 +230,7 @@
name = "Photonic Processor Board"
id = "pcpu_normal"
build_type = IMPRINTER
- materials = list(MAT_GLASS= 6400, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 6400, /datum/material/gold = 2000)
build_path = /obj/item/computer_hardware/processor_unit/photonic
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -239,7 +239,7 @@
name = "Photonic Microprocessor"
id = "pcpu_small"
build_type = IMPRINTER
- materials = list(MAT_GLASS = 3200, MAT_GOLD = 1000)
+ materials = list(/datum/material/glass = 3200, /datum/material/gold = 1000)
build_path = /obj/item/computer_hardware/processor_unit/photonic/small
category = list("Computer Parts")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm
index 96d797650d1..109a41207d8 100644
--- a/code/modules/research/designs/electronics_designs.dm
+++ b/code/modules/research/designs/electronics_designs.dm
@@ -8,7 +8,7 @@
desc = "Allows for the construction of an intellicard."
id = "intellicard"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 200)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 200)
build_path = /obj/item/aicard
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -18,7 +18,7 @@
desc = "Allows for the construction of a pAI Card."
id = "paicard"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_METAL = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
build_path = /obj/item/paicard
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_ALL
@@ -28,7 +28,7 @@
desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading."
id = "ai_cam_upgrade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 15000, MAT_SILVER = 15000, MAT_DIAMOND = 20000, MAT_PLASMA = 10000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 5000, /datum/material/gold = 15000, /datum/material/silver = 15000, /datum/material/diamond = 20000, /datum/material/plasma = 10000)
build_path = /obj/item/surveillance_upgrade
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -41,7 +41,7 @@
desc = "Allows for the construction of a nanite remote."
id = "nanite_remote"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_METAL = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
build_path = /obj/item/nanite_remote
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -51,7 +51,7 @@
desc = "Allows for the construction of a nanite communication remote."
id = "nanite_comm_remote"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_METAL = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
build_path = /obj/item/nanite_remote/comm
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -61,7 +61,7 @@
desc = "Allows for the construction of a nanite scanner."
id = "nanite_scanner"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_METAL = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
build_path = /obj/item/nanite_scanner
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -75,7 +75,7 @@
desc = "Produce additional disks for storing device designs."
id = "design_disk"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
build_path = /obj/item/disk/design_disk
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -85,7 +85,7 @@
desc = "Produce additional disks for storing device designs."
id = "design_disk_adv"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver=50)
build_path = /obj/item/disk/design_disk/adv
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -95,7 +95,7 @@
desc = "Produce additional disks for storing technology data."
id = "tech_disk"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
build_path = /obj/item/disk/tech_disk
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -105,7 +105,7 @@
desc = "Stores nanite programs."
id = "nanite_disk"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
build_path = /obj/item/disk/nanite_program
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index 5a581d13510..8f18869d053 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -422,7 +422,7 @@
name = "Machine Design (Weapon Recharger Board)"
desc = "The circuit board for a Weapon Recharger."
id = "recharger"
- materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000)
+ materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
build_path = /obj/item/circuitboard/machine/recharger
category = list("Misc. Machinery")
departmental_flags = DEPARTMENTAL_FLAG_ALL
diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm
index 09264d95530..6d0de74cf5a 100644
--- a/code/modules/research/designs/mecha_designs.dm
+++ b/code/modules/research/designs/mecha_designs.dm
@@ -110,7 +110,7 @@
name = "\"Phazon\" Central Control module"
desc = "Allows for the construction of a \"Phazon\" Central Control module."
id = "phazon_main"
- materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100)
+ materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100)
build_path = /obj/item/circuitboard/mecha/phazon/main
category = list("Exosuit Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -119,7 +119,7 @@
name = "\"Phazon\" Peripherals Control module"
desc = "Allows for the construction of a \"Phazon\" Peripheral Control module."
id = "phazon_peri"
- materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100)
+ materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100)
build_path = /obj/item/circuitboard/mecha/phazon/peripherals
category = list("Exosuit Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -128,7 +128,7 @@
name = "\"Phazon\" Weapons & Targeting Control module"
desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module."
id = "phazon_targ"
- materials = list(MAT_GLASS = 1000, MAT_BLUESPACE = 100)
+ materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 100)
build_path = /obj/item/circuitboard/mecha/phazon/targeting
category = list("Exosuit Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -143,7 +143,7 @@
id = "mech_scattershot"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -153,7 +153,7 @@
id = "mech_scattershot_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/scattershot
- materials = list(MAT_METAL=6000)
+ materials = list(/datum/material/iron=6000)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -164,7 +164,7 @@
id = "mech_carbine"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -174,7 +174,7 @@
id = "mech_carbine_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/incendiary
- materials = list(MAT_METAL=6000)
+ materials = list(/datum/material/iron=6000)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -185,7 +185,7 @@
id = "mech_ion"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
- materials = list(MAT_METAL=20000,MAT_SILVER=6000,MAT_URANIUM=2000)
+ materials = list(/datum/material/iron=20000,/datum/material/silver=6000,/datum/material/uranium=2000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -195,7 +195,7 @@
id = "mech_tesla"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla
- materials = list(MAT_METAL=20000,MAT_SILVER=8000)
+ materials = list(/datum/material/iron=20000,/datum/material/silver=8000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -205,7 +205,7 @@
id = "mech_laser"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -215,7 +215,7 @@
id = "mech_laser_heavy"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -225,7 +225,7 @@
id = "mech_disabler"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/disabler
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -235,7 +235,7 @@
id = "mech_grenade_launcher"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang
- materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000)
+ materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -245,7 +245,7 @@
id = "mech_grenade_launcher_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/flashbang
- materials = list(MAT_METAL=4000,MAT_GOLD=500,MAT_SILVER=500)
+ materials = list(/datum/material/iron=4000,/datum/material/gold=500,/datum/material/iron=500)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -256,7 +256,7 @@
id = "mech_missile_rack"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/breaching
- materials = list(MAT_METAL=22000,MAT_GOLD=6000,MAT_SILVER=8000)
+ materials = list(/datum/material/iron=22000,/datum/material/gold=6000,/datum/material/silver=8000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -266,7 +266,7 @@
id = "mech_missile_rack_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/missiles_br
- materials = list(MAT_METAL=8000,MAT_GOLD=500,MAT_SILVER=500)
+ materials = list(/datum/material/iron=8000,/datum/material/gold=500,/datum/material/iron=500)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -277,7 +277,7 @@
id = "clusterbang_launcher"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang
- materials = list(MAT_METAL=20000,MAT_GOLD=10000,MAT_URANIUM=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/gold=10000,/datum/material/uranium=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -287,7 +287,7 @@
id = "clusterbang_launcher_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/clusterbang
- materials = list(MAT_METAL=6000,MAT_GOLD=1500,MAT_URANIUM=1500)
+ materials = list(/datum/material/iron=6000,/datum/material/gold=1500,/datum/material/uranium=1500)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -298,7 +298,7 @@
id = "mech_wormhole_gen"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/wormhole_generator
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -308,7 +308,7 @@
id = "mech_teleporter"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/teleporter
- materials = list(MAT_METAL=10000,MAT_DIAMOND=10000)
+ materials = list(/datum/material/iron=10000,/datum/material/diamond=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -318,7 +318,7 @@
id = "mech_rcd"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/rcd
- materials = list(MAT_METAL=30000,MAT_GOLD=20000,MAT_PLASMA=25000,MAT_SILVER=20000)
+ materials = list(/datum/material/iron=30000,/datum/material/gold=20000,/datum/material/plasma=25000,/datum/material/silver=20000)
construction_time = 1200
category = list("Exosuit Equipment")
@@ -328,7 +328,7 @@
id = "mech_gravcatapult"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/gravcatapult
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -338,7 +338,7 @@
id = "mech_repair_droid"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/repair_droid
- materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_GOLD=1000,MAT_SILVER=2000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/gold=1000,/datum/material/silver=2000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -348,7 +348,7 @@
id = "mech_energy_relay"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tesla_energy_relay
- materials = list(MAT_METAL=10000,MAT_GLASS=2000,MAT_GOLD=2000,MAT_SILVER=3000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 2000,/datum/material/gold=2000,/datum/material/silver=3000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -358,7 +358,7 @@
id = "mech_ccw_armor"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster
- materials = list(MAT_METAL=20000,MAT_SILVER=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/silver=5000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -368,7 +368,7 @@
id = "mech_proj_armor"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster
- materials = list(MAT_METAL=20000,MAT_GOLD=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/gold=5000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -378,7 +378,7 @@
id = "mech_diamond_drill"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill
- materials = list(MAT_METAL=10000,MAT_DIAMOND=6500)
+ materials = list(/datum/material/iron=10000,/datum/material/diamond=6500)
construction_time = 100
category = list("Exosuit Equipment")
@@ -388,7 +388,7 @@
id = "mech_generator_nuclear"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/generator/nuclear
- materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=500)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 1000,/datum/material/silver=500)
construction_time = 100
category = list("Exosuit Equipment")
@@ -398,7 +398,7 @@
id = "mech_plasma_cutter"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
- materials = list(MAT_METAL = 8000, MAT_GLASS = 1000, MAT_PLASMA = 2000)
+ materials = list(/datum/material/iron = 8000, /datum/material/glass = 1000, /datum/material/plasma = 2000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -408,7 +408,7 @@
id = "mech_lmg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -418,7 +418,7 @@
id = "mech_lmg_ammo"
build_type = PROTOLATHE | MECHFAB
build_path = /obj/item/mecha_ammo/lmg
- materials = list(MAT_METAL=4000)
+ materials = list(/datum/material/iron=4000)
construction_time = 20
category = list("Exosuit Ammunition", "Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -429,7 +429,7 @@
id = "mech_sleeper"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/medical/sleeper
- materials = list(MAT_METAL=5000,MAT_GLASS=10000)
+ materials = list(/datum/material/iron=5000, /datum/material/glass = 10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -439,7 +439,7 @@
id = "mech_syringe_gun"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun
- materials = list(MAT_METAL=3000,MAT_GLASS=2000)
+ materials = list(/datum/material/iron=3000, /datum/material/glass = 2000)
construction_time = 200
category = list("Exosuit Equipment")
@@ -448,7 +448,7 @@
desc = "Equipment for medical exosuits. A mounted medical nanite projector which will treat patients with a focused beam."
id = "mech_medi_beam"
build_type = MECHFAB
- materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000)
construction_time = 250
build_path = /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam
category = list("Exosuit Equipment")
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 80b5117e02f..d58343c4f42 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -4,7 +4,7 @@
id = "borg_suit"
build_type = MECHFAB
build_path = /obj/item/robot_suit
- materials = list(MAT_METAL=15000)
+ materials = list(/datum/material/iron=15000)
construction_time = 500
category = list("Cyborg")
@@ -13,7 +13,7 @@
id = "borg_chest"
build_type = MECHFAB
build_path = /obj/item/bodypart/chest/robot
- materials = list(MAT_METAL=40000)
+ materials = list(/datum/material/iron=40000)
construction_time = 350
category = list("Cyborg")
@@ -22,7 +22,7 @@
id = "borg_head"
build_type = MECHFAB
build_path = /obj/item/bodypart/head/robot
- materials = list(MAT_METAL=5000)
+ materials = list(/datum/material/iron=5000)
construction_time = 350
category = list("Cyborg")
@@ -31,7 +31,7 @@
id = "borg_l_arm"
build_type = MECHFAB
build_path = /obj/item/bodypart/l_arm/robot
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 200
category = list("Cyborg")
@@ -40,7 +40,7 @@
id = "borg_r_arm"
build_type = MECHFAB
build_path = /obj/item/bodypart/r_arm/robot
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 200
category = list("Cyborg")
@@ -49,7 +49,7 @@
id = "borg_l_leg"
build_type = MECHFAB
build_path = /obj/item/bodypart/l_leg/robot
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 200
category = list("Cyborg")
@@ -58,7 +58,7 @@
id = "borg_r_leg"
build_type = MECHFAB
build_path = /obj/item/bodypart/r_leg/robot
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 200
category = list("Cyborg")
@@ -68,7 +68,7 @@
id = "ripley_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/ripley
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("Ripley")
@@ -78,7 +78,7 @@
id = "firefighter_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/firefighter
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("Firefighter")
@@ -87,7 +87,7 @@
id = "ripley_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/ripley_torso
- materials = list(MAT_METAL=20000, MAT_GLASS=7500)
+ materials = list(/datum/material/iron=20000,/datum/material/glass = 7500)
construction_time = 200
category = list("Ripley","Firefighter")
@@ -96,7 +96,7 @@
id = "ripley_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/ripley_left_arm
- materials = list(MAT_METAL=15000)
+ materials = list(/datum/material/iron=15000)
construction_time = 150
category = list("Ripley","Firefighter")
@@ -105,7 +105,7 @@
id = "ripley_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/ripley_right_arm
- materials = list(MAT_METAL=15000)
+ materials = list(/datum/material/iron=15000)
construction_time = 150
category = list("Ripley","Firefighter")
@@ -114,7 +114,7 @@
id = "ripley_left_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/ripley_left_leg
- materials = list(MAT_METAL=15000)
+ materials = list(/datum/material/iron=15000)
construction_time = 150
category = list("Ripley","Firefighter")
@@ -123,7 +123,7 @@
id = "ripley_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/ripley_right_leg
- materials = list(MAT_METAL=15000)
+ materials = list(/datum/material/iron=15000)
construction_time = 150
category = list("Ripley","Firefighter")
@@ -133,7 +133,7 @@
id = "odysseus_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/odysseus
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("Odysseus")
@@ -142,7 +142,7 @@
id = "odysseus_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_torso
- materials = list(MAT_METAL=12000)
+ materials = list(/datum/material/iron=12000)
construction_time = 180
category = list("Odysseus")
@@ -151,7 +151,7 @@
id = "odysseus_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_head
- materials = list(MAT_METAL=6000,MAT_GLASS=10000)
+ materials = list(/datum/material/iron=6000,/datum/material/glass = 10000)
construction_time = 100
category = list("Odysseus")
@@ -160,7 +160,7 @@
id = "odysseus_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_left_arm
- materials = list(MAT_METAL=6000)
+ materials = list(/datum/material/iron=6000)
construction_time = 120
category = list("Odysseus")
@@ -169,7 +169,7 @@
id = "odysseus_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_right_arm
- materials = list(MAT_METAL=6000)
+ materials = list(/datum/material/iron=6000)
construction_time = 120
category = list("Odysseus")
@@ -178,7 +178,7 @@
id = "odysseus_left_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_left_leg
- materials = list(MAT_METAL=7000)
+ materials = list(/datum/material/iron=7000)
construction_time = 130
category = list("Odysseus")
@@ -187,7 +187,7 @@
id = "odysseus_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/odysseus_right_leg
- materials = list(MAT_METAL=7000)
+ materials = list(/datum/material/iron=7000)
construction_time = 130
category = list("Odysseus")
@@ -197,7 +197,7 @@
id = "gygax_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/gygax
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("Gygax")
@@ -206,7 +206,7 @@
id = "gygax_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_torso
- materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_DIAMOND=2000)
+ materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/diamond=2000)
construction_time = 300
category = list("Gygax")
@@ -215,7 +215,7 @@
id = "gygax_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_head
- materials = list(MAT_METAL=10000,MAT_GLASS=5000, MAT_DIAMOND=2000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 5000, /datum/material/diamond=2000)
construction_time = 200
category = list("Gygax")
@@ -224,7 +224,7 @@
id = "gygax_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_left_arm
- materials = list(MAT_METAL=15000, MAT_DIAMOND=1000)
+ materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
construction_time = 200
category = list("Gygax")
@@ -233,7 +233,7 @@
id = "gygax_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_right_arm
- materials = list(MAT_METAL=15000, MAT_DIAMOND=1000)
+ materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
construction_time = 200
category = list("Gygax")
@@ -242,7 +242,7 @@
id = "gygax_left_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_left_leg
- materials = list(MAT_METAL=15000, MAT_DIAMOND=2000)
+ materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
construction_time = 200
category = list("Gygax")
@@ -251,7 +251,7 @@
id = "gygax_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_right_leg
- materials = list(MAT_METAL=15000, MAT_DIAMOND=2000)
+ materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
construction_time = 200
category = list("Gygax")
@@ -260,7 +260,7 @@
id = "gygax_armor"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/gygax_armor
- materials = list(MAT_METAL=15000,MAT_DIAMOND=10000,MAT_TITANIUM=10000)
+ materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000)
construction_time = 600
category = list("Gygax")
@@ -270,7 +270,7 @@
id = "durand_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/durand
- materials = list(MAT_METAL=25000)
+ materials = list(/datum/material/iron=25000)
construction_time = 100
category = list("Durand")
@@ -279,7 +279,7 @@
id = "durand_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_torso
- materials = list(MAT_METAL=25000,MAT_GLASS=10000,MAT_SILVER=10000)
+ materials = list(/datum/material/iron=25000, /datum/material/glass = 10000,/datum/material/silver=10000)
construction_time = 300
category = list("Durand")
@@ -288,7 +288,7 @@
id = "durand_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_head
- materials = list(MAT_METAL=10000,MAT_GLASS=15000,MAT_SILVER=2000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 15000,/datum/material/silver=2000)
construction_time = 200
category = list("Durand")
@@ -297,7 +297,7 @@
id = "durand_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_left_arm
- materials = list(MAT_METAL=10000,MAT_SILVER=4000)
+ materials = list(/datum/material/iron=10000,/datum/material/silver=4000)
construction_time = 200
category = list("Durand")
@@ -306,7 +306,7 @@
id = "durand_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_right_arm
- materials = list(MAT_METAL=10000,MAT_SILVER=4000)
+ materials = list(/datum/material/iron=10000,/datum/material/silver=4000)
construction_time = 200
category = list("Durand")
@@ -315,7 +315,7 @@
id = "durand_left_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_left_leg
- materials = list(MAT_METAL=15000,MAT_SILVER=4000)
+ materials = list(/datum/material/iron=15000,/datum/material/silver=4000)
construction_time = 200
category = list("Durand")
@@ -324,7 +324,7 @@
id = "durand_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_right_leg
- materials = list(MAT_METAL=15000,MAT_SILVER=4000)
+ materials = list(/datum/material/iron=15000,/datum/material/silver=4000)
construction_time = 200
category = list("Durand")
@@ -333,7 +333,7 @@
id = "durand_armor"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/durand_armor
- materials = list(MAT_METAL=30000,MAT_URANIUM=25000,MAT_TITANIUM=20000)
+ materials = list(/datum/material/iron=30000,/datum/material/uranium=25000,/datum/material/titanium=20000)
construction_time = 600
category = list("Durand")
@@ -343,7 +343,7 @@
id = "honk_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/honker
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("H.O.N.K")
@@ -352,7 +352,7 @@
id = "honk_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_torso
- materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_BANANIUM=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/bananium=10000)
construction_time = 300
category = list("H.O.N.K")
@@ -361,7 +361,7 @@
id = "honk_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_head
- materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/bananium=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -370,7 +370,7 @@
id = "honk_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_left_arm
- materials = list(MAT_METAL=15000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=15000,/datum/material/bananium=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -379,7 +379,7 @@
id = "honk_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_right_arm
- materials = list(MAT_METAL=15000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=15000,/datum/material/bananium=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -388,7 +388,7 @@
id = "honk_left_leg"
build_type = MECHFAB
build_path =/obj/item/mecha_parts/part/honker_left_leg
- materials = list(MAT_METAL=20000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -397,7 +397,7 @@
id = "honk_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/honker_right_leg
- materials = list(MAT_METAL=20000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
construction_time = 200
category = list("H.O.N.K")
@@ -408,7 +408,7 @@
id = "phazon_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/phazon
- materials = list(MAT_METAL=20000)
+ materials = list(/datum/material/iron=20000)
construction_time = 100
category = list("Phazon")
@@ -417,7 +417,7 @@
id = "phazon_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_torso
- materials = list(MAT_METAL=35000,MAT_GLASS=10000,MAT_PLASMA=20000)
+ materials = list(/datum/material/iron=35000,/datum/material/glass = 10000,/datum/material/plasma=20000)
construction_time = 300
category = list("Phazon")
@@ -426,7 +426,7 @@
id = "phazon_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_head
- materials = list(MAT_METAL=15000,MAT_GLASS=5000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=15000,/datum/material/glass = 5000,/datum/material/plasma=10000)
construction_time = 200
category = list("Phazon")
@@ -435,7 +435,7 @@
id = "phazon_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_left_arm
- materials = list(MAT_METAL=20000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/plasma=10000)
construction_time = 200
category = list("Phazon")
@@ -444,7 +444,7 @@
id = "phazon_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_right_arm
- materials = list(MAT_METAL=20000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/plasma=10000)
construction_time = 200
category = list("Phazon")
@@ -453,7 +453,7 @@
id = "phazon_left_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_left_leg
- materials = list(MAT_METAL=20000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/plasma=10000)
construction_time = 200
category = list("Phazon")
@@ -462,7 +462,7 @@
id = "phazon_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_right_leg
- materials = list(MAT_METAL=20000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/plasma=10000)
construction_time = 200
category = list("Phazon")
@@ -471,7 +471,7 @@
id = "phazon_armor"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/phazon_armor
- materials = list(MAT_METAL=25000,MAT_PLASMA=20000,MAT_TITANIUM=20000)
+ materials = list(/datum/material/iron=25000,/datum/material/plasma=20000,/datum/material/titanium=20000)
construction_time = 300
category = list("Phazon")
@@ -481,7 +481,7 @@
id = "ripleyupgrade"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/ripleyupgrade
- materials = list(MAT_METAL=10000,MAT_PLASMA=10000)
+ materials = list(/datum/material/iron=10000,/datum/material/plasma=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -490,7 +490,7 @@
id = "mech_hydraulic_clamp"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -499,7 +499,7 @@
id = "mech_drill"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/drill
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -508,7 +508,7 @@
id = "mech_mscanner"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner
- materials = list(MAT_METAL=5000,MAT_GLASS=2500)
+ materials = list(/datum/material/iron=5000,/datum/material/glass = 2500)
construction_time = 50
category = list("Exosuit Equipment")
@@ -517,7 +517,7 @@
id = "mech_extinguisher"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/extinguisher
- materials = list(MAT_METAL=10000)
+ materials = list(/datum/material/iron=10000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -526,7 +526,7 @@
id = "mech_generator"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/generator
- materials = list(MAT_METAL=10000,MAT_GLASS=1000,MAT_SILVER=2000,MAT_PLASMA=5000)
+ materials = list(/datum/material/iron=10000,/datum/material/glass = 1000,/datum/material/silver=2000,/datum/material/plasma=5000)
construction_time = 100
category = list("Exosuit Equipment")
@@ -535,7 +535,7 @@
id = "mech_mousetrap_mortar"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar
- materials = list(MAT_METAL=20000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
construction_time = 300
category = list("Exosuit Equipment")
@@ -544,7 +544,7 @@
id = "mech_banana_mortar"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar
- materials = list(MAT_METAL=20000,MAT_BANANIUM=5000)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=5000)
construction_time = 300
category = list("Exosuit Equipment")
@@ -553,7 +553,7 @@
id = "mech_honker"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker
- materials = list(MAT_METAL=20000,MAT_BANANIUM=10000)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=10000)
construction_time = 500
category = list("Exosuit Equipment")
@@ -562,7 +562,7 @@
id = "mech_punching_face"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove
- materials = list(MAT_METAL=20000,MAT_BANANIUM=7500)
+ materials = list(/datum/material/iron=20000,/datum/material/bananium=7500)
construction_time = 400
category = list("Exosuit Equipment")
@@ -575,7 +575,7 @@
id = "borg_upgrade_rename"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/rename
- materials = list(MAT_METAL = 5000)
+ materials = list(/datum/material/iron = 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -584,7 +584,7 @@
id = "borg_upgrade_restart"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/restart
- materials = list(MAT_METAL = 20000 , MAT_GLASS = 5000)
+ materials = list(/datum/material/iron = 20000 , /datum/material/glass = 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -593,7 +593,7 @@
id = "borg_upgrade_thrusters"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/thrusters
- materials = list(MAT_METAL = 10000, MAT_GLASS = 6000, MAT_PLASMA = 5000, MAT_URANIUM = 6000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 6000, /datum/material/plasma = 5000, /datum/material/uranium = 6000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -602,7 +602,7 @@
id = "borg_upgrade_disablercooler"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/disablercooler
- materials = list(MAT_METAL = 20000 , MAT_GLASS = 6000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 20000 , /datum/material/glass = 6000, /datum/material/gold = 2000, /datum/material/diamond = 2000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -611,7 +611,7 @@
id = "borg_upgrade_diamonddrill"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/ddrill
- materials = list(MAT_METAL=10000, MAT_GLASS = 6000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass = 6000, /datum/material/diamond = 2000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
@@ -620,7 +620,7 @@
id = "borg_upgrade_holding"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/soh
- materials = list(MAT_METAL = 10000, MAT_GOLD = 2000, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 10000, /datum/material/gold = 2000, /datum/material/uranium = 1000)
construction_time = 40
category = list("Cyborg Upgrade Modules")
@@ -629,7 +629,7 @@
id = "borg_upgrade_lavaproof"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/lavaproof
- materials = list(MAT_METAL = 10000, MAT_PLASMA = 4000, MAT_TITANIUM = 5000)
+ materials = list(/datum/material/iron = 10000, /datum/material/plasma = 4000, /datum/material/titanium = 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -638,7 +638,7 @@
id = "borg_syndicate_module"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/syndicate
- materials = list(MAT_METAL = 15000, MAT_GLASS = 15000, MAT_DIAMOND = 10000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/diamond = 10000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -647,7 +647,7 @@
id = "borg_transform_clown"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/transform/clown
- materials = list(MAT_METAL = 15000, MAT_GLASS = 15000, MAT_BANANIUM = 1000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/bananium = 1000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -656,7 +656,7 @@
id = "borg_upgrade_selfrepair"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/selfrepair
- materials = list(MAT_METAL = 15000, MAT_GLASS = 15000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
@@ -665,7 +665,7 @@
id = "borg_upgrade_expandedsynthesiser"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/hypospray/expanded
- materials = list(MAT_METAL = 15000, MAT_GLASS = 15000, MAT_PLASMA = 8000, MAT_URANIUM = 8000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/plasma = 8000, /datum/material/uranium = 8000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
@@ -674,7 +674,7 @@
id = "borg_upgrade_piercinghypospray"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/piercing_hypospray
- materials = list(MAT_METAL = 15000, MAT_GLASS = 15000, MAT_TITANIUM = 5000, MAT_DIAMOND = 3000)
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/titanium = 5000, /datum/material/diamond = 3000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
@@ -683,7 +683,7 @@
id = "borg_upgrade_defibrillator"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/defib
- materials = list(MAT_METAL = 8000, MAT_GLASS = 5000, MAT_SILVER = 4000, MAT_GOLD = 3000)
+ materials = list(/datum/material/iron = 8000, /datum/material/glass = 5000, /datum/material/silver = 4000, /datum/material/gold = 3000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
@@ -692,7 +692,7 @@
id = "borg_upgrade_surgicalprocessor"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/processor
- materials = list(MAT_METAL = 5000, MAT_GLASS = 4000, MAT_SILVER = 4000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 4000, /datum/material/silver = 4000)
construction_time = 40
category = list("Cyborg Upgrade Modules")
@@ -701,7 +701,7 @@
id = "borg_upgrade_trashofholding"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/tboh
- materials = list(MAT_GOLD = 2000, MAT_URANIUM = 1000)
+ materials = list(/datum/material/gold = 2000, /datum/material/uranium = 1000)
construction_time = 40
category = list("Cyborg Upgrade Modules")
@@ -710,7 +710,7 @@
id = "borg_upgrade_advancedmop"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/amop
- materials = list(MAT_METAL = 2000, MAT_GLASS = 2000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 2000)
construction_time = 40
category = list("Cyborg Upgrade Modules")
@@ -719,7 +719,7 @@
id = "borg_upgrade_expand"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/expand
- materials = list(MAT_METAL = 200000, MAT_TITANIUM = 5000)
+ materials = list(/datum/material/iron = 200000, /datum/material/titanium = 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -728,7 +728,7 @@
id = "borg_ai_control"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/ai
- materials = list(MAT_METAL = 1200, MAT_GLASS = 1500, MAT_GOLD = 200)
+ materials = list(/datum/material/iron = 1200, /datum/material/glass = 1500, /datum/material/gold = 200)
construction_time = 50
category = list("Misc")
@@ -737,7 +737,7 @@
id = "borg_upgrade_rped"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/rped
- materials = list(MAT_METAL = 10000, MAT_GLASS = 5000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -746,7 +746,7 @@
id = "borg_upgrade_pinpointer"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/pinpointer
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -756,7 +756,7 @@
id = "mecha_tracking"
build_type = MECHFAB
build_path =/obj/item/mecha_parts/mecha_tracking
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
construction_time = 50
category = list("Misc")
@@ -765,7 +765,7 @@
id = "mecha_tracking_ai_control"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_tracking/ai_control
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 200)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/silver = 200)
construction_time = 50
category = list("Misc")
@@ -774,7 +774,7 @@
desc = "When a problem arises, SCIENCE is the solution."
id = "sflash"
build_type = MECHFAB
- materials = list(MAT_METAL = 750, MAT_GLASS = 750)
+ materials = list(/datum/material/iron = 750, /datum/material/glass = 750)
construction_time = 100
build_path = /obj/item/assembly/flash/handheld
category = list("Misc")
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index d672dc012f6..e4d813a4207 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -7,7 +7,7 @@
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
id = "mmi"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
construction_time = 75
build_path = /obj/item/mmi
category = list("Misc","Medical Designs")
@@ -18,7 +18,7 @@
desc = "The latest in Artificial Intelligences."
id = "mmi_posi"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG.
+ materials = list(/datum/material/iron = 1700, /datum/material/glass = 1350, /datum/material/gold = 500) //Gold, because SWAG.
construction_time = 75
build_path = /obj/item/mmi/posibrain
category = list("Misc", "Medical Designs")
@@ -29,7 +29,7 @@
desc = "A bluespace beaker, powered by experimental bluespace technology and Element Cuban combined with the Compound Pete. Can hold up to 300 units."
id = "bluespacebeaker"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 5000, MAT_PLASMA = 3000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000)
+ materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000)
build_path = /obj/item/reagent_containers/glass/beaker/bluespace
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -39,7 +39,7 @@
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
id = "splitbeaker"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000)
+ materials = list(/datum/material/iron = 3000)
build_path = /obj/item/reagent_containers/glass/beaker/noreact
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -49,7 +49,7 @@
id = "xlarge_beaker"
build_type = PROTOLATHE
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
- materials = list(MAT_GLASS = 2500, MAT_PLASTIC = 3000)
+ materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000)
build_path = /obj/item/reagent_containers/glass/beaker/plastic
category = list("Medical Designs")
@@ -58,7 +58,7 @@
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)
+ materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000, /datum/material/gold = 1000, /datum/material/titanium = 1000)
build_path = /obj/item/reagent_containers/glass/beaker/meta
category = list("Medical Designs")
@@ -67,7 +67,7 @@
desc = "An advanced syringe that can hold 60 units of chemicals"
id = "bluespacesyringe"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 2000, MAT_PLASMA = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 500)
+ materials = list(/datum/material/glass = 2000, /datum/material/plasma = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 500)
build_path = /obj/item/reagent_containers/syringe/bluespace
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -77,7 +77,7 @@
desc = "Produce additional disks for storing genetic data."
id = "cloning_disk"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER = 50)
+ materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver = 50)
build_path = /obj/item/disk/data
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -87,7 +87,7 @@
desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units."
id = "noreactsyringe"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 2000, MAT_GOLD = 1000)
+ materials = list(/datum/material/glass = 2000, /datum/material/gold = 1000)
build_path = /obj/item/reagent_containers/syringe/noreact
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -97,7 +97,7 @@
desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units."
id = "piercesyringe"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 2000, MAT_DIAMOND = 1000)
+ materials = list(/datum/material/glass = 2000, /datum/material/diamond = 1000)
build_path = /obj/item/reagent_containers/syringe/piercing
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -107,7 +107,7 @@
desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures."
id = "bluespacebodybag"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500)
+ materials = list(/datum/material/iron = 3000, /datum/material/plasma = 2000, /datum/material/diamond = 500, /datum/material/bluespace = 500)
build_path = /obj/item/bodybag/bluespace
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -117,7 +117,7 @@
desc = "A refill pack for the auto-extinguisher on Plasma-man suits."
id = "plasmarefiller" //Why did this have no plasmatech
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_PLASMA = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/plasma = 1000)
build_path = /obj/item/extinguisher_refill
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_ALL
@@ -127,7 +127,7 @@
desc = "Allows tracking of someone's location if their suit sensors are turned to tracking beacon."
id = "crewpinpointer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 1500, MAT_GOLD = 200)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 1500, /datum/material/gold = 200)
build_path = /obj/item/pinpointer/crew
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -138,7 +138,7 @@
id = "defibrillator"
build_type = PROTOLATHE
build_path = /obj/item/defibrillator
- materials = list(MAT_METAL = 8000, MAT_GLASS = 4000, MAT_SILVER = 3000, MAT_GOLD = 1500)
+ materials = list(/datum/material/iron = 8000, /datum/material/glass = 4000, /datum/material/silver = 3000, /datum/material/gold = 1500)
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -147,7 +147,7 @@
desc = "An all-in-one mounted frame for holding defibrillators, complete with ID-locked clamps and recharging cables."
id = "defibmount"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000)
build_path = /obj/item/wallframe/defib_mount
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -158,7 +158,7 @@
id = "defibrillator_compact"
build_type = PROTOLATHE
build_path = /obj/item/defibrillator/compact
- materials = list(MAT_METAL = 16000, MAT_GLASS = 8000, MAT_SILVER = 6000, MAT_GOLD = 3000)
+ materials = list(/datum/material/iron = 16000, /datum/material/glass = 8000, /datum/material/silver = 6000, /datum/material/gold = 3000)
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -168,7 +168,7 @@
id = "genescanner"
build_path = /obj/item/sequence_scanner
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500)
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -178,7 +178,7 @@
id = "healthanalyzer_advanced"
build_path = /obj/item/healthanalyzer/advanced
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 2000, MAT_GOLD = 1500)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 2000, /datum/material/gold = 1500)
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -188,7 +188,7 @@
id = "medigel"
build_path = /obj/item/reagent_containers/medigel
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 2500, /datum/material/glass = 500)
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -196,7 +196,7 @@
name = "Surgical Drapes"
id = "surgical_drapes"
build_type = PROTOLATHE
- materials = list(MAT_PLASTIC = 2000)
+ materials = list(/datum/material/plastic = 2000)
build_path = /obj/item/surgical_drapes
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -207,7 +207,7 @@
id = "laserscalpel"
build_path = /obj/item/scalpel/advanced
build_type = PROTOLATHE
- materials = list(MAT_METAL = 6000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 1500, MAT_DIAMOND = 200, MAT_TITANIUM = 4000)
+ materials = list(/datum/material/iron = 6000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 1500, /datum/material/diamond = 200, /datum/material/titanium = 4000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -217,7 +217,7 @@
id = "mechanicalpinches"
build_path = /obj/item/retractor/advanced
build_type = PROTOLATHE
- materials = list(MAT_METAL = 12000, MAT_GLASS = 4000, MAT_SILVER = 4000, MAT_TITANIUM = 5000)
+ materials = list(/datum/material/iron = 12000, /datum/material/glass = 4000, /datum/material/silver = 4000, /datum/material/titanium = 5000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -227,7 +227,7 @@
id = "searingtool"
build_path = /obj/item/cautery/advanced
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_PLASMA = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 3000)
+ materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/plasma = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 3000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
@@ -237,7 +237,7 @@
id = "med_spray_bottle"
build_type = PROTOLATHE
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
- materials = list(MAT_PLASTIC = 2000)
+ materials = list(/datum/material/plastic = 2000)
build_path = /obj/item/reagent_containers/spray/medical
category = list("Medical Designs")
@@ -247,7 +247,7 @@
id = "chem_pack"
build_type = PROTOLATHE
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
- materials = list(MAT_PLASTIC = 2000)
+ materials = list(/datum/material/plastic = 2000)
build_path = /obj/item/reagent_containers/chem_pack
category = list("Medical Designs")
@@ -257,7 +257,7 @@
id = "blood_pack"
build_type = PROTOLATHE
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
- materials = list(MAT_PLASTIC = 1000)
+ materials = list(/datum/material/plastic = 1000)
build_path = /obj/item/reagent_containers/blood
category = list("Medical Designs")
@@ -271,7 +271,7 @@
id = "ci-welding"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 600, MAT_GLASS = 400)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 400)
build_path = /obj/item/organ/eyes/robotic/shield
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -282,7 +282,7 @@
id = "ci-gloweyes"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 600, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 1000)
build_path = /obj/item/organ/eyes/robotic/glow
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -293,7 +293,7 @@
id = "ci-breather"
build_type = PROTOLATHE | MECHFAB
construction_time = 35
- materials = list(MAT_METAL = 600, MAT_GLASS = 250)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 250)
build_path = /obj/item/organ/cyberimp/mouth/breathing_tube
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -303,7 +303,7 @@
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm."
id = "ci-surgery"
build_type = PROTOLATHE | MECHFAB
- materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
+ materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500)
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/surgery
category = list("Misc", "Medical Designs")
@@ -314,7 +314,7 @@
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm."
id = "ci-toolset"
build_type = PROTOLATHE | MECHFAB
- materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
+ materials = list (/datum/material/iron = 2500, /datum/material/glass = 1500, /datum/material/silver = 1500)
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/toolset
category = list("Misc", "Medical Designs")
@@ -326,7 +326,7 @@
id = "ci-medhud"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 500)
build_path = /obj/item/organ/cyberimp/eyes/hud/medical
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -337,7 +337,7 @@
id = "ci-sechud"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 750, MAT_GOLD = 750)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 750, /datum/material/gold = 750)
build_path = /obj/item/organ/cyberimp/eyes/hud/security
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -348,7 +348,7 @@
id = "ci-diaghud"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600)
build_path = /obj/item/organ/cyberimp/eyes/hud/diagnostic
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -359,7 +359,7 @@
id = "ci-xray"
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 1000, MAT_BLUESPACE = 1000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/uranium = 1000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000)
build_path = /obj/item/organ/eyes/robotic/xray
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -370,7 +370,7 @@
id = "ci-thermals"
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 600, /datum/material/gold = 600, /datum/material/plasma = 1000, /datum/material/diamond = 2000)
build_path = /obj/item/organ/eyes/robotic/thermals
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -381,7 +381,7 @@
id = "ci-antidrop"
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 400, MAT_GOLD = 400)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 400, /datum/material/gold = 400)
build_path = /obj/item/organ/cyberimp/brain/anti_drop
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -392,7 +392,7 @@
id = "ci-antistun"
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/silver = 500, /datum/material/gold = 1000)
build_path = /obj/item/organ/cyberimp/brain/anti_stun
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -403,7 +403,7 @@
id = "ci-nutriment"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/gold = 500)
build_path = /obj/item/organ/cyberimp/chest/nutriment
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -414,7 +414,7 @@
id = "ci-nutrimentplus"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/gold = 500, /datum/material/uranium = 750)
build_path = /obj/item/organ/cyberimp/chest/nutriment/plus
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -425,7 +425,7 @@
id = "ci-reviver"
build_type = PROTOLATHE | MECHFAB
construction_time = 60
- materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500)
+ materials = list(/datum/material/iron = 800, /datum/material/glass = 800, /datum/material/gold = 300, /datum/material/uranium = 500)
build_path = /obj/item/organ/cyberimp/chest/reviver
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -436,7 +436,7 @@
id = "ci-thrusters"
build_type = PROTOLATHE | MECHFAB
construction_time = 80
- materials = list(MAT_METAL = 4000, MAT_GLASS = 2000, MAT_SILVER = 1000, MAT_DIAMOND = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/glass = 2000, /datum/material/silver = 1000, /datum/material/diamond = 1000)
build_path = /obj/item/organ/cyberimp/chest/thrusters
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -450,7 +450,7 @@
desc = "A sterile automatic implant injector."
id = "implanter"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 200)
build_path = /obj/item/implanter
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -460,7 +460,7 @@
desc = "A glass case for containing an implant."
id = "implantcase"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500)
+ materials = list(/datum/material/glass = 500)
build_path = /obj/item/implantcase
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -470,7 +470,7 @@
desc = "Makes death amusing."
id = "implant_trombone"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500)
+ materials = list(/datum/material/glass = 500, /datum/material/bananium = 500)
build_path = /obj/item/implantcase/sad_trombone
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_ALL //if you get bananium you get the sad trombones.
@@ -480,7 +480,7 @@
desc = "A glass case containing an implant."
id = "implant_chem"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 700)
+ materials = list(/datum/material/glass = 700)
build_path = /obj/item/implantcase/chem
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -490,7 +490,7 @@
desc = "A glass case containing an implant."
id = "implant_tracking"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/implantcase/tracking
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -503,7 +503,7 @@
id = "cybernetic_liver"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/liver/cybernetic
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -514,7 +514,7 @@
id = "cybernetic_liver_u"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/liver/cybernetic/upgraded
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -525,7 +525,7 @@
id = "cybernetic_heart"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/heart/cybernetic
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -536,7 +536,7 @@
id = "cybernetic_heart_u"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER=500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver=500)
build_path = /obj/item/organ/heart/cybernetic/upgraded
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -547,7 +547,7 @@
id = "cybernetic_lungs"
build_type = PROTOLATHE | MECHFAB
construction_time = 40
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/organ/lungs/cybernetic
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -558,7 +558,7 @@
id = "cybernetic_lungs_u"
build_type = PROTOLATHE | MECHFAB
construction_time = 50
- materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 500)
build_path = /obj/item/organ/lungs/cybernetic/upgraded
category = list("Misc", "Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
diff --git a/code/modules/research/designs/mining_designs.dm b/code/modules/research/designs/mining_designs.dm
index 18934d021cf..c5c80de7322 100644
--- a/code/modules/research/designs/mining_designs.dm
+++ b/code/modules/research/designs/mining_designs.dm
@@ -7,7 +7,7 @@
desc = "Allows for the construction of circuit boards used to build an Express Supply Console."//who?
id = "cargoexpress"//the coder reading this
build_type = IMPRINTER
- materials = list(MAT_GLASS = 1000)
+ materials = list(/datum/material/glass = 1000)
build_path = /obj/item/circuitboard/computer/cargo/express
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -17,7 +17,7 @@
desc = "Allows the Cargo Express Console to call down the Bluespace Drop Pod, greatly increasing user safety."//who?
id = "bluespace_pod"//the coder reading this
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 1000)
+ materials = list(/datum/material/glass = 1000)
build_path = /obj/item/disk/cargo/bluespace_pod
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -27,7 +27,7 @@
desc = "Yours is the drill that will pierce through the rock walls."
id = "drill"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 6000, MAT_GLASS = 1000) //expensive, but no need for miners.
+ materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000) //expensive, but no need for miners.
build_path = /obj/item/pickaxe/drill
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -37,7 +37,7 @@
desc = "Yours is the drill that will pierce the heavens!"
id = "drill_diamond"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 6000, MAT_GLASS = 1000, MAT_DIAMOND = 2000) //Yes, a whole diamond is needed.
+ materials = list(/datum/material/iron = 6000, /datum/material/glass = 1000, /datum/material/diamond = 2000) //Yes, a whole diamond is needed.
build_path = /obj/item/pickaxe/drill/diamonddrill
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -47,7 +47,7 @@
desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
id = "plasmacutter"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1500, MAT_GLASS = 500, MAT_PLASMA = 400)
+ materials = list(/datum/material/iron = 1500, /datum/material/glass = 500, /datum/material/plasma = 400)
build_path = /obj/item/gun/energy/plasmacutter
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -57,7 +57,7 @@
desc = "It's an advanced plasma cutter, oh my god."
id = "plasmacutter_adv"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 1000, MAT_PLASMA = 2000, MAT_GOLD = 500)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000, /datum/material/plasma = 2000, /datum/material/gold = 500)
build_path = /obj/item/gun/energy/plasmacutter/adv
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -67,7 +67,7 @@
desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well."
id = "jackhammer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 6000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_DIAMOND = 6000)
+ materials = list(/datum/material/iron = 6000, /datum/material/glass = 2000, /datum/material/silver = 2000, /datum/material/diamond = 6000)
build_path = /obj/item/pickaxe/drill/jackhammer
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -77,7 +77,7 @@
desc = "An upgraded version of the resonator that allows more fields to be active at once."
id = "superresonator"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/glass = 1500, /datum/material/silver = 1000, /datum/material/uranium = 1000)
build_path = /obj/item/resonator/upgraded
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -87,7 +87,7 @@
desc = "A device which allows kinetic accelerators to be wielded by any organism."
id = "triggermod"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000)
build_path = /obj/item/borg/upgrade/modkit/trigger_guard
category = list("Mining Designs")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -97,7 +97,7 @@
desc = "A device which allows kinetic accelerators to deal more damage."
id = "damagemod"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000)
build_path = /obj/item/borg/upgrade/modkit/damage
category = list("Mining Designs", "Cyborg Upgrade Modules")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -107,7 +107,7 @@
desc = "A device which decreases the cooldown of a Kinetic Accelerator."
id = "cooldownmod"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000)
build_path = /obj/item/borg/upgrade/modkit/cooldown
category = list("Mining Designs", "Cyborg Upgrade Modules")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -117,7 +117,7 @@
desc = "A device which allows kinetic accelerators to fire at a further range."
id = "rangemod"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1500, /datum/material/gold = 1500, /datum/material/uranium = 1000)
build_path = /obj/item/borg/upgrade/modkit/range
category = list("Mining Designs", "Cyborg Upgrade Modules")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
@@ -127,7 +127,7 @@
desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock."
id = "hypermod"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 8000, /datum/material/glass = 1500, /datum/material/silver = 2000, /datum/material/gold = 2000, /datum/material/diamond = 2000)
build_path = /obj/item/borg/upgrade/modkit/aoe/turfs
category = list("Mining Designs", "Cyborg Upgrade Modules")
departmental_flags = DEPARTMENTAL_FLAG_CARGO
diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm
index 8495383952a..73f0ea1d2a3 100644
--- a/code/modules/research/designs/misc_designs.dm
+++ b/code/modules/research/designs/misc_designs.dm
@@ -8,7 +8,7 @@
desc = "A heads-up display that scans the humans in view and provides accurate data about their health status."
id = "health_hud"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/hud/health
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -18,7 +18,7 @@
desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness."
id = "health_hud_night"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_SILVER = 350)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/silver = 350)
build_path = /obj/item/clothing/glasses/hud/health/night
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -28,7 +28,7 @@
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status."
id = "security_hud"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/hud/security
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -38,7 +38,7 @@
desc = "A heads-up display which provides id data and vision in complete darkness."
id = "security_hud_night"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_GOLD = 350)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/gold = 350)
build_path = /obj/item/clothing/glasses/hud/security/night
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -48,7 +48,7 @@
desc = "A HUD used to analyze and determine faults within robotic machinery."
id = "diagnostic_hud"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/hud/diagnostic
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -58,7 +58,7 @@
desc = "Upgraded version of the diagnostic HUD designed to function during a power failure."
id = "diagnostic_hud_night"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/uranium = 1000, /datum/material/plasma = 300)
build_path = /obj/item/clothing/glasses/hud/diagnostic/night
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -72,7 +72,7 @@
desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd."
id = "weldingmask"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000)
build_path = /obj/item/clothing/mask/gas/welding
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -82,7 +82,7 @@
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
id = "portaseeder"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 400)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 400)
build_path = /obj/item/storage/bag/plants/portaseeder
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -92,7 +92,7 @@
desc = "Damn son, where'd you find this?"
id = "air_horn"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000)
+ materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000)
build_path = /obj/item/bikehorn/airhorn
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ALL //HONK!
@@ -102,7 +102,7 @@
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
id = "mesons"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/meson
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING
@@ -112,7 +112,7 @@
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, regardless of lighting condition. The T-ray Scanner mode lets you see underfloor objects such as cables and pipes."
id = "engine_goggles"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_PLASMA = 100)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/plasma = 100)
build_path = /obj/item/clothing/glasses/meson/engine
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -122,7 +122,7 @@
desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
id = "tray_goggles"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/meson/engine/tray
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -132,7 +132,7 @@
desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display."
id = "nvgmesons"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000)
build_path = /obj/item/clothing/glasses/meson/night
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO
@@ -142,7 +142,7 @@
desc = "Goggles that let you see through darkness unhindered."
id = "night_visision_goggles"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_PLASMA = 350, MAT_URANIUM = 1000)
+ materials = list(/datum/material/iron = 600, /datum/material/glass = 600, /datum/material/plasma = 350, /datum/material/uranium = 1000)
build_path = /obj/item/clothing/glasses/night
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY
@@ -152,7 +152,7 @@
desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle."
id = "magboots"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4500, MAT_SILVER = 1500, MAT_GOLD = 2500)
+ materials = list(/datum/material/iron = 4500, /datum/material/silver = 1500, /datum/material/gold = 2500)
build_path = /obj/item/clothing/shoes/magboots
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -162,7 +162,7 @@
desc = "A device which can project temporary forcefields to seal off an area."
id = "forcefield_projector"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2500, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000)
build_path = /obj/item/forcefield_projector
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -172,7 +172,7 @@
desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine."
id = "scigoggles"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500)
build_path = /obj/item/clothing/glasses/science
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -182,7 +182,7 @@
desc = "A disk for storing plant genetic data."
id = "diskplantgene"
build_type = PROTOLATHE
- materials = list(MAT_METAL=200, MAT_GLASS=100)
+ materials = list(/datum/material/iron=200, /datum/material/glass = 100)
build_path = /obj/item/disk/plantgene
category = list("Electronics")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -192,7 +192,7 @@
desc = "A roasting stick for cooking sausages in exotic ovens."
id = "roastingstick"
build_type = PROTOLATHE
- materials = list(MAT_METAL=1000, MAT_GLASS=500, MAT_BLUESPACE = 250)
+ materials = list(/datum/material/iron=1000, /datum/material/glass = 500, /datum/material/bluespace = 250)
build_path = /obj/item/melee/roastingstick
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -202,7 +202,7 @@
desc = "Used to track portable teleportation beacons and targets with embedded tracking implants."
id = "locator"
build_type = PROTOLATHE
- materials = list(MAT_METAL=1000, MAT_GLASS=500, MAT_SILVER = 500)
+ materials = list(/datum/material/iron=1000, /datum/material/glass = 500, /datum/material/silver = 500)
build_path = /obj/item/locator
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -212,7 +212,7 @@
desc = "Allows for the construction of a quantum keycard."
id = "quantum_keycard"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 500, MAT_METAL = 500, MAT_SILVER = 500, MAT_BLUESPACE = 1000)
+ materials = list(/datum/material/glass = 500, /datum/material/iron = 500, /datum/material/silver = 500, /datum/material/bluespace = 1000)
build_path = /obj/item/quantum_keycard
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -222,7 +222,7 @@
desc = "An advanced tool capable of instantly neutralizing anomalies, designed to capture the fleeting aberrations created by the engine."
id = "anomaly_neutralizer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GOLD = 2000, MAT_PLASMA = 5000, MAT_URANIUM = 2000)
+ materials = list(/datum/material/iron = 2000, /datum/material/gold = 2000, /datum/material/plasma = 5000, /datum/material/uranium = 2000)
build_path = /obj/item/anomaly_neutralizer
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -232,7 +232,7 @@
desc = "A refill canister for Donksoft Toy Vendors."
id = "donksoft_refill"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 25000, MAT_GLASS = 15000, MAT_PLASMA = 20000, MAT_GOLD = 10000, MAT_SILVER = 10000)
+ materials = list(/datum/material/iron = 25000, /datum/material/glass = 15000, /datum/material/plasma = 20000, /datum/material/gold = 10000, /datum/material/silver = 10000)
build_path = /obj/item/vending_refill/donksoft
category = list("Equipment")
@@ -241,7 +241,7 @@
desc = "An empty oxygen tank."
id = "oxygen_tank"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000)
+ materials = list(/datum/material/iron = 2000)
build_path = /obj/item/tank/internals/oxygen/empty
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -251,7 +251,7 @@
desc = "An empty oxygen tank."
id = "plasma_tank"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000)
+ materials = list(/datum/material/iron = 2000)
build_path = /obj/item/tank/internals/plasma/empty
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -265,7 +265,7 @@
desc = "An upgraded mop with a large internal capacity for holding water or other cleaning chemicals."
id = "advmop"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2500, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 2500, /datum/material/glass = 200)
build_path = /obj/item/mop/advanced
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -275,7 +275,7 @@
desc = "An advanced trash bag with bluespace properties; capable of holding a plethora of garbage."
id = "blutrash"
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500)
+ materials = list(/datum/material/gold = 1500, /datum/material/uranium = 250, /datum/material/plasma = 1500)
build_path = /obj/item/storage/bag/trash/bluespace
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -285,7 +285,7 @@
desc = "A floor buffer that can be attached to vehicular janicarts."
id = "buffer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 200)
build_path = /obj/item/janiupgrade
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -295,7 +295,7 @@
desc = "A spray bottle, with an unscrewable top."
id = "spraybottle"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 200)
build_path = /obj/item/reagent_containers/spray
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -305,7 +305,7 @@
desc = "A trap used to catch space bears and other legged creatures."
id = "beartrap"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_TITANIUM = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/titanium = 1000)
build_path = /obj/item/restraints/legcuffs/beartrap
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -319,7 +319,7 @@
desc = "A holograpic projector used to project various warning signs."
id = "holosign"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000)
build_path = /obj/item/holosign_creator
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -329,7 +329,7 @@
desc = "A holograpic projector used to project hard light wet floor barriers."
id = "holobarrier_jani"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 1000, MAT_SILVER = 1000)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 1000, /datum/material/silver = 1000)
build_path = /obj/structure/holosign/barrier/wetsign
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
@@ -340,7 +340,7 @@
desc = "A holographic projector that creates holographic security barriers."
id = "holosignsec"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/security
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -350,7 +350,7 @@
desc = "A holographic projector that creates holographic engineering barriers."
id = "holosignengi"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/engineering
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -360,7 +360,7 @@
desc = "A holographic projector that creates holographic barriers that prevent changes in atmospheric conditions."
id = "holosignatmos"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000)
build_path = /obj/item/holosign_creator/atmos
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -370,7 +370,7 @@
desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases."
build_type = PROTOLATHE
build_path = /obj/item/holosign_creator/medical
- materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 500, /datum/material/silver = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease)
id = "holobarrier_med"
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -384,7 +384,7 @@
desc = "An experimental suit of armour capable of utilizing an implanted anomaly core to protect the user."
id = "reactive_armour"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_DIAMOND = 5000, MAT_URANIUM = 8000, MAT_SILVER = 4500, MAT_GOLD = 5000)
+ materials = list(/datum/material/iron = 10000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000)
build_path = /obj/item/reactive_armour_shell
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -398,7 +398,7 @@
desc = "A robust flashlight used by security."
id = "seclite"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2500)
+ materials = list(/datum/material/iron = 2500)
build_path = /obj/item/flashlight/seclite
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -408,7 +408,7 @@
desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
id = "detective_scanner"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 2500, MAT_SILVER = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 2500, /datum/material/silver = 2000)
build_path = /obj/item/detective_scanner
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -418,7 +418,7 @@
desc = "Manufactured by UhangInc, used to blind and down an opponent quickly. Printed pepper sprays do not contain reagents."
id = "pepperspray"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000)
build_path = /obj/item/reagent_containers/spray/pepper/empty
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -428,7 +428,7 @@
desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests."
id = "bola_energy"
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 500, MAT_PLASMA = 500, MAT_TITANIUM = 500)
+ materials = list(/datum/material/silver = 500, /datum/material/plasma = 500, /datum/material/titanium = 500)
build_path = /obj/item/restraints/legcuffs/bola/energy
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -438,7 +438,7 @@
desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use."
id = "zipties"
build_type = PROTOLATHE
- materials = list(MAT_PLASTIC = 250)
+ materials = list(/datum/material/plastic = 250)
build_path = /obj/item/restraints/handcuffs/cable/zipties
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -448,7 +448,7 @@
desc = "An empty evidence bag."
id = "evidencebag"
build_type = PROTOLATHE
- materials = list(MAT_PLASTIC = 100)
+ materials = list(/datum/material/plastic = 100)
build_path = /obj/item/evidencebag
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm
index 9def198276c..fdbeab1968f 100644
--- a/code/modules/research/designs/power_designs.dm
+++ b/code/modules/research/designs/power_designs.dm
@@ -7,7 +7,7 @@
desc = "A basic power cell that holds 1 MJ of energy."
id = "basic_cell"
build_type = PROTOLATHE | AUTOLATHE |MECHFAB
- materials = list(MAT_METAL = 700, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 700, /datum/material/glass = 50)
construction_time=100
build_path = /obj/item/stock_parts/cell/empty
category = list("Misc","Power Designs","Machinery","initial")
@@ -18,7 +18,7 @@
desc = "A power cell that holds 10 MJ of energy."
id = "high_cell"
build_type = PROTOLATHE | AUTOLATHE | MECHFAB
- materials = list(MAT_METAL = 700, MAT_GLASS = 60)
+ materials = list(/datum/material/iron = 700, /datum/material/glass = 60)
construction_time=100
build_path = /obj/item/stock_parts/cell/high/empty
category = list("Misc","Power Designs")
@@ -29,7 +29,7 @@
desc = "A power cell that holds 20 MJ of energy."
id = "super_cell"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 700, MAT_GLASS = 70)
+ materials = list(/datum/material/iron = 700, /datum/material/glass = 70)
construction_time=100
build_path = /obj/item/stock_parts/cell/super/empty
category = list("Misc","Power Designs")
@@ -40,7 +40,7 @@
desc = "A power cell that holds 30 MJ of energy."
id = "hyper_cell"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 700, MAT_GOLD = 150, MAT_SILVER = 150, MAT_GLASS = 80)
+ materials = list(/datum/material/iron = 700, /datum/material/gold = 150, /datum/material/silver = 150, /datum/material/glass = 80)
construction_time=100
build_path = /obj/item/stock_parts/cell/hyper/empty
category = list("Misc","Power Designs")
@@ -51,7 +51,7 @@
desc = "A power cell that holds 40 MJ of energy."
id = "bluespace_cell"
build_type = PROTOLATHE | MECHFAB
- materials = list(MAT_METAL = 800, MAT_GOLD = 120, MAT_GLASS = 160, MAT_DIAMOND = 160, MAT_TITANIUM = 300, MAT_BLUESPACE = 100)
+ materials = list(/datum/material/iron = 800, /datum/material/gold = 120, /datum/material/glass = 160, /datum/material/diamond = 160, /datum/material/titanium = 300, /datum/material/bluespace = 100)
construction_time=100
build_path = /obj/item/stock_parts/cell/bluespace/empty
category = list("Misc","Power Designs")
@@ -62,7 +62,7 @@
desc = "A device to automatically replace lights. Refill with working light bulbs."
id = "light_replacer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
+ materials = list(/datum/material/iron = 1500, /datum/material/silver = 150, /datum/material/glass = 3000)
build_path = /obj/item/lightreplacer
category = list("Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -72,7 +72,7 @@
desc = "The NT-75 Electromagnetic Power Inducer can wirelessly induce electric charge in an object, allowing you to recharge power cells without having to remove them."
id = "inducer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 1000)
build_path = /obj/item/inducer/sci
category = list("Power Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm
index f52bc500498..35f40fb422f 100644
--- a/code/modules/research/designs/smelting_designs.dm
+++ b/code/modules/research/designs/smelting_designs.dm
@@ -4,7 +4,7 @@
name = "Plasma + Iron alloy"
id = "plasteel"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/plasteel
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -15,7 +15,7 @@
name = "Plasma + Titanium alloy"
id = "plastitanium"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT, MAT_PLASMA = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT, /datum/material/plasma = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/mineral/plastitanium
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -25,7 +25,7 @@
name = "Plasma + Glass alloy"
id = "plasmaglass"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/plasmaglass
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -35,7 +35,7 @@
name = "Plasma + Metal + Glass alloy"
id = "plasmareinforcedglass"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_METAL = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/plasmarglass
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -45,7 +45,7 @@
name = "Titanium + Glass alloy"
id = "titaniumglass"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/titaniumglass
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -55,7 +55,7 @@
name = "Plasma + Titanium + Glass alloy"
id = "plastitaniumglass"
build_type = SMELTER | PROTOLATHE
- materials = list(MAT_PLASMA = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_TITANIUM = MINERAL_MATERIAL_AMOUNT * 0.5, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
+ materials = list(/datum/material/plasma = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/titanium = MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass = MINERAL_MATERIAL_AMOUNT)
build_path = /obj/item/stack/sheet/plastitaniumglass
category = list("initial", "Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -66,7 +66,7 @@
desc = "A sheet of reverse-engineered alien alloy."
id = "alienalloy"
build_type = PROTOLATHE | SMELTER
- materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000)
+ materials = list(/datum/material/iron = 4000, /datum/material/plasma = 4000)
build_path = /obj/item/stack/sheet/mineral/abductor
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm
index ea67fad434c..ce8a46ea879 100644
--- a/code/modules/research/designs/stock_parts_designs.dm
+++ b/code/modules/research/designs/stock_parts_designs.dm
@@ -7,7 +7,7 @@
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
id = "rped"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 5000) //hardcore
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000) //hardcore
build_path = /obj/item/storage/part_replacer
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -17,7 +17,7 @@
desc = "Powered by bluespace technology, this RPED variant can upgrade buildings from a distance, without needing to remove the panel first."
id = "bs_rped"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 15000, MAT_GLASS = 5000, MAT_SILVER = 2500) //hardcore
+ materials = list(/datum/material/iron = 15000, /datum/material/glass = 5000, /datum/material/silver = 2500) //hardcore
build_path = /obj/item/storage/part_replacer/bluespace
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -28,7 +28,7 @@
desc = "A stock part used in the construction of various devices."
id = "basic_capacitor"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
build_path = /obj/item/stock_parts/capacitor
category = list("Stock Parts","Machinery","initial")
lathe_time_factor = 0.2
@@ -39,7 +39,7 @@
desc = "A stock part used in the construction of various devices."
id = "adv_capacitor"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 150)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 150)
build_path = /obj/item/stock_parts/capacitor/adv
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -50,7 +50,7 @@
desc = "A stock part used in the construction of various devices."
id = "super_capacitor"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100)
build_path = /obj/item/stock_parts/capacitor/super
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -61,7 +61,7 @@
desc = "A stock part used in the construction of various devices."
id = "quadratic_capacitor"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100, MAT_DIAMOND = 100)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/gold = 100, /datum/material/diamond = 100)
build_path = /obj/item/stock_parts/capacitor/quadratic
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -73,7 +73,7 @@
desc = "A stock part used in the construction of various devices."
id = "basic_scanning"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 50)
build_path = /obj/item/stock_parts/scanning_module
category = list("Stock Parts","Machinery","initial")
lathe_time_factor = 0.2
@@ -84,7 +84,7 @@
desc = "A stock part used in the construction of various devices."
id = "adv_scanning"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 100)
build_path = /obj/item/stock_parts/scanning_module/adv
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -95,7 +95,7 @@
desc = "A stock part used in the construction of various devices."
id = "phasic_scanning"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/silver = 60)
build_path = /obj/item/stock_parts/scanning_module/phasic
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -106,7 +106,7 @@
desc = "A stock part used in the construction of various devices."
id = "triphasic_scanning"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 30, MAT_BLUESPACE = 30)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/diamond = 30, /datum/material/bluespace = 30)
build_path = /obj/item/stock_parts/scanning_module/triphasic
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -118,7 +118,7 @@
desc = "A stock part used in the construction of various devices."
id = "micro_mani"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 100)
+ materials = list(/datum/material/iron = 100)
build_path = /obj/item/stock_parts/manipulator
category = list("Stock Parts","Machinery","initial")
lathe_time_factor = 0.2
@@ -129,7 +129,7 @@
desc = "A stock part used in the construction of various devices."
id = "nano_mani"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150)
+ materials = list(/datum/material/iron = 150)
build_path = /obj/item/stock_parts/manipulator/nano
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -140,7 +140,7 @@
desc = "A stock part used in the construction of various devices."
id = "pico_mani"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200)
+ materials = list(/datum/material/iron = 200)
build_path = /obj/item/stock_parts/manipulator/pico
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -151,7 +151,7 @@
desc = "A stock part used in the construction of various devices."
id = "femto_mani"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30)
+ materials = list(/datum/material/iron = 200, /datum/material/diamond = 30, /datum/material/titanium = 30)
build_path = /obj/item/stock_parts/manipulator/femto
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -163,7 +163,7 @@
desc = "A stock part used in the construction of various devices."
id = "basic_micro_laser"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 100, MAT_GLASS = 50)
+ materials = list(/datum/material/iron = 100, /datum/material/glass = 50)
build_path = /obj/item/stock_parts/micro_laser
category = list("Stock Parts","Machinery","initial")
lathe_time_factor = 0.2
@@ -174,7 +174,7 @@
desc = "A stock part used in the construction of various devices."
id = "high_micro_laser"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150, MAT_GLASS = 100)
+ materials = list(/datum/material/iron = 150, /datum/material/glass = 100)
build_path = /obj/item/stock_parts/micro_laser/high
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -185,7 +185,7 @@
desc = "A stock part used in the construction of various devices."
id = "ultra_micro_laser"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 150, /datum/material/uranium = 60)
build_path = /obj/item/stock_parts/micro_laser/ultra
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -196,7 +196,7 @@
desc = "A stock part used in the construction of various devices."
id = "quadultra_micro_laser"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60)
+ materials = list(/datum/material/iron = 200, /datum/material/glass = 200, /datum/material/uranium = 100, /datum/material/diamond = 60)
build_path = /obj/item/stock_parts/micro_laser/quadultra
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -207,7 +207,7 @@
desc = "A stock part used in the construction of various devices."
id = "basic_matter_bin"
build_type = PROTOLATHE | AUTOLATHE
- materials = list(MAT_METAL = 100)
+ materials = list(/datum/material/iron = 100)
build_path = /obj/item/stock_parts/matter_bin
category = list("Stock Parts","Machinery","initial")
lathe_time_factor = 0.2
@@ -218,7 +218,7 @@
desc = "A stock part used in the construction of various devices."
id = "adv_matter_bin"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 150)
+ materials = list(/datum/material/iron = 150)
build_path = /obj/item/stock_parts/matter_bin/adv
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -229,7 +229,7 @@
desc = "A stock part used in the construction of various devices."
id = "super_matter_bin"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200)
+ materials = list(/datum/material/iron = 200)
build_path = /obj/item/stock_parts/matter_bin/super
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -240,7 +240,7 @@
desc = "A stock part used in the construction of various devices."
id = "bluespace_matter_bin"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 250, MAT_DIAMOND = 100, MAT_BLUESPACE = 100)
+ materials = list(/datum/material/iron = 250, /datum/material/diamond = 100, /datum/material/bluespace = 100)
build_path = /obj/item/stock_parts/matter_bin/bluespace
category = list("Stock Parts")
lathe_time_factor = 0.2
@@ -252,7 +252,7 @@
desc = "A compact module capable of sensing extradimensional activity."
id = "s-ansible"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_SILVER = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/silver = 100)
build_path = /obj/item/stock_parts/subspace/ansible
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -262,7 +262,7 @@
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
id = "s-filter"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_SILVER = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/silver = 100)
build_path = /obj/item/stock_parts/subspace/filter
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -272,7 +272,7 @@
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
id = "s-amplifier"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_GOLD = 100, MAT_URANIUM = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/gold = 100, /datum/material/uranium = 100)
build_path = /obj/item/stock_parts/subspace/amplifier
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -282,7 +282,7 @@
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
id = "s-treatment"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_SILVER = 200)
+ materials = list(/datum/material/iron = 100, /datum/material/silver = 200)
build_path = /obj/item/stock_parts/subspace/treatment
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -292,7 +292,7 @@
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-analyzer"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 100, MAT_GOLD = 100)
+ materials = list(/datum/material/iron = 100, /datum/material/gold = 100)
build_path = /obj/item/stock_parts/subspace/analyzer
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -302,7 +302,7 @@
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-crystal"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 800, MAT_SILVER = 100, MAT_GOLD = 100)
+ materials = list(/datum/material/glass = 800, /datum/material/silver = 100, /datum/material/gold = 100)
build_path = /obj/item/stock_parts/subspace/crystal
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
@@ -312,7 +312,7 @@
desc = "A large piece of equipment used to open a window into the subspace dimension."
id = "s-transmitter"
build_type = PROTOLATHE
- materials = list(MAT_GLASS = 100, MAT_SILVER = 100, MAT_URANIUM = 100)
+ materials = list(/datum/material/glass = 100, /datum/material/silver = 100, /datum/material/uranium = 100)
build_path = /obj/item/stock_parts/subspace/transmitter
category = list("Stock Parts")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm
index e381e5458bd..0dc8972f9d8 100644
--- a/code/modules/research/designs/tool_designs.dm
+++ b/code/modules/research/designs/tool_designs.dm
@@ -8,7 +8,7 @@
desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit"
id = "handdrill"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
+ materials = list(/datum/material/iron = 3500, /datum/material/silver = 1500, /datum/material/titanium = 2500)
build_path = /obj/item/screwdriver/power
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -19,7 +19,7 @@
id = "jawsoflife" // added one more requirment since the Jaws of Life are a bit OP
build_path = /obj/item/crowbar/power
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
+ materials = list(/datum/material/iron = 4500, /datum/material/silver = 2500, /datum/material/titanium = 3500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -28,7 +28,7 @@
desc = "An experimental welder capable of self-fuel generation."
id = "exwelder"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/plasma = 1500, /datum/material/uranium = 200)
build_path = /obj/item/weldingtool/experimental
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
@@ -38,7 +38,7 @@
desc = "Adds the computer frame and machine frame to the RCD."
id = "rcd_upgrade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 2500, /datum/material/silver = 1500, /datum/material/titanium = 2000)
build_path = /obj/item/rcd_upgrade
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -53,7 +53,7 @@
id = "alien_wrench"
build_path = /obj/item/wrench/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -63,7 +63,7 @@
id = "alien_wirecutters"
build_path = /obj/item/wirecutters/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -73,7 +73,7 @@
id = "alien_screwdriver"
build_path = /obj/item/screwdriver/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -83,7 +83,7 @@
id = "alien_crowbar"
build_path = /obj/item/crowbar/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -93,7 +93,7 @@
id = "alien_welder"
build_path = /obj/item/weldingtool/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -103,7 +103,7 @@
id = "alien_multitool"
build_path = /obj/item/multitool/abductor
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
+ materials = list(/datum/material/iron = 5000, /datum/material/silver = 2500, /datum/material/plasma = 5000, /datum/material/titanium = 2000, /datum/material/diamond = 2000)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
@@ -117,7 +117,7 @@
id = "alien_scalpel"
build_path = /obj/item/scalpel/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -127,7 +127,7 @@
id = "alien_hemostat"
build_path = /obj/item/hemostat/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -137,7 +137,7 @@
id = "alien_retractor"
build_path = /obj/item/retractor/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -147,7 +147,7 @@
id = "alien_saw"
build_path = /obj/item/circular_saw/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -157,7 +157,7 @@
id = "alien_drill"
build_path = /obj/item/surgicaldrill/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 10000, /datum/material/silver = 2500, /datum/material/plasma = 1000, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
@@ -167,6 +167,6 @@
id = "alien_cautery"
build_path = /obj/item/cautery/alien
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 1500, /datum/material/plasma = 500, /datum/material/titanium = 1500)
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 11787dab202..9e55253c24d 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -13,7 +13,7 @@
desc = "Designed to quickly reload revolvers. TRAC bullets embed a tracking implant within the target's body."
id = "c38_trac"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 20000, MAT_SILVER = 5000, MAT_GOLD = 1000)
+ materials = list(/datum/material/iron = 20000, /datum/material/silver = 5000, /datum/material/gold = 1000)
build_path = /obj/item/ammo_box/c38/trac
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -23,7 +23,7 @@
desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload."
id = "c38_hotshot"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000)
+ materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000)
build_path = /obj/item/ammo_box/c38/hotshot
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -33,7 +33,7 @@
desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload."
id = "c38_iceblox"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 20000, MAT_PLASMA = 5000)
+ materials = list(/datum/material/iron = 20000, /datum/material/plasma = 5000)
build_path = /obj/item/ammo_box/c38/iceblox
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -79,7 +79,7 @@
desc = "This safety firing pin allows firearms to be operated within proximity to a firing range."
id = "pin_testing"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 500, MAT_GLASS = 300)
+ materials = list(/datum/material/iron = 500, /datum/material/glass = 300)
build_path = /obj/item/firing_pin/test_range
category = list("Firing Pins")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -89,7 +89,7 @@
desc = "This is a security firing pin which only authorizes users who are mindshield-implanted."
id = "pin_loyalty"
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 600, MAT_DIAMOND = 600, MAT_URANIUM = 200)
+ materials = list(/datum/material/silver = 600, /datum/material/diamond = 600, /datum/material/uranium = 200)
build_path = /obj/item/firing_pin/implant/mindshield
category = list("Firing Pins")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -99,7 +99,7 @@
desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers."
id = "stunrevolver"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 10000, /datum/material/silver = 10000)
build_path = /obj/item/gun/energy/tesla_revolver
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -109,7 +109,7 @@
desc = "An energy gun with an experimental miniaturized reactor."
id = "nuclear_gun"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 2000, /datum/material/uranium = 3000, /datum/material/titanium = 1000)
build_path = /obj/item/gun/energy/e_gun/nuclear
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -119,7 +119,7 @@
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
id = "tele_shield"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
+ materials = list(/datum/material/iron = 4000, /datum/material/glass = 4000, /datum/material/silver = 300, /datum/material/titanium = 200)
build_path = /obj/item/shield/riot/tele
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -129,7 +129,7 @@
desc = "A powerful long ranged anti-material rifle that fires charged particle beams to obliterate targets."
id = "beamrifle"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 10000, MAT_GLASS = 5000, MAT_DIAMOND = 5000, MAT_URANIUM = 8000, MAT_SILVER = 4500, MAT_GOLD = 5000)
+ materials = list(/datum/material/iron = 10000, /datum/material/glass = 5000, /datum/material/diamond = 5000, /datum/material/uranium = 8000, /datum/material/silver = 4500, /datum/material/gold = 5000)
build_path = /obj/item/gun/energy/beam_rifle
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -139,7 +139,7 @@
desc = "Your opponent will bubble into a messy pile of goop."
id = "decloner"
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000)
+ materials = list(/datum/material/gold = 5000,/datum/material/uranium = 10000)
reagents_list = list(/datum/reagent/toxin/mutagen = 40)
build_path = /obj/item/gun/energy/decloner
category = list("Weapons")
@@ -150,7 +150,7 @@
desc = "A gun that fires many syringes."
id = "rapidsyringe"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000)
build_path = /obj/item/gun/syringe/rapidsyringe
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL //uwu
@@ -160,7 +160,7 @@
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
id = "temp_gun"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 500, /datum/material/silver = 3000)
build_path = /obj/item/gun/energy/temperature
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -170,7 +170,7 @@
desc = "A tool that discharges controlled radiation which induces mutation in plant cells. Harmless to other organic life."
id = "flora_gun"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 2000, /datum/material/glass = 500)
reagents_list = list(/datum/reagent/uranium/radium = 20)
build_path = /obj/item/gun/energy/floragun
category = list("Weapons")
@@ -181,7 +181,7 @@
desc = "A grenade that affects a larger area and use larger containers."
id = "large_Grenade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000)
+ materials = list(/datum/material/iron = 3000)
build_path = /obj/item/grenade/chem_grenade/large
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -191,7 +191,7 @@
desc = "An advanced grenade that is able to self ignite its mixture."
id = "pyro_Grenade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_PLASMA = 500)
+ materials = list(/datum/material/iron = 2000, /datum/material/plasma = 500)
build_path = /obj/item/grenade/chem_grenade/pyro
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -201,7 +201,7 @@
desc = "An advanced grenade that rapidly cools its contents upon detonation."
id = "cryo_Grenade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 500)
build_path = /obj/item/grenade/chem_grenade/cryo
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -211,7 +211,7 @@
desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter."
id = "adv_Grenade"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
+ materials = list(/datum/material/iron = 3000, /datum/material/glass = 500)
build_path = /obj/item/grenade/chem_grenade/adv_release
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL
@@ -221,7 +221,7 @@
desc = "Not quite as menacing as it sounds"
id = "xray_laser"
build_type = PROTOLATHE
- materials = list(MAT_GOLD = 5000, MAT_URANIUM = 4000, MAT_METAL = 5000, MAT_TITANIUM = 2000, MAT_BLUESPACE = 2000)
+ materials = list(/datum/material/gold = 5000, /datum/material/uranium = 4000, /datum/material/iron = 5000, /datum/material/titanium = 2000, /datum/material/bluespace = 2000)
build_path = /obj/item/gun/energy/xray
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -231,7 +231,7 @@
desc = "How to dismantle a cyborg : The gun."
id = "ioncarbine"
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 6000, MAT_METAL = 8000, MAT_URANIUM = 2000)
+ materials = list(/datum/material/silver = 6000, /datum/material/iron = 8000, /datum/material/uranium = 2000)
build_path = /obj/item/gun/energy/ionrifle/carbine
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -241,7 +241,7 @@
desc = "A projector that emits high density quantum-coupled bluespace beams."
id = "wormholeprojector"
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 2000, MAT_METAL = 5000, MAT_DIAMOND = 2000, MAT_BLUESPACE = 3000)
+ materials = list(/datum/material/silver = 2000, /datum/material/iron = 5000, /datum/material/diamond = 2000, /datum/material/bluespace = 3000)
build_path = /obj/item/gun/energy/wormhole_projector
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -253,7 +253,7 @@
desc = "A 20 round magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 4000)
+ materials = list(/datum/material/iron = 4000)
build_path = /obj/item/ammo_box/magazine/wt550m9
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -262,7 +262,7 @@
name = "WT-550 Auto Gun Armour Piercing Magazine (4.6x30mm AP)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg_ap"
- materials = list(MAT_METAL = 6000, MAT_SILVER = 600)
+ materials = list(/datum/material/iron = 6000, /datum/material/silver = 600)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -270,7 +270,7 @@
name = "WT-550 Auto Gun Incendiary Magazine (4.6x30mm IC)"
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
id = "mag_oldsmg_ic"
- materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000)
+ materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -279,7 +279,7 @@
desc = "A stunning shell for a shotgun."
id = "stunshell"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 200)
+ materials = list(/datum/material/iron = 200)
build_path = /obj/item/ammo_casing/shotgun/stunslug
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -289,7 +289,7 @@
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
id = "techshotshell"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 1000, MAT_GLASS = 200)
+ materials = list(/datum/material/iron = 1000, /datum/material/glass = 200)
build_path = /obj/item/ammo_casing/shotgun/techshell
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE
@@ -299,7 +299,7 @@
desc = "A reverse-engineered suppressor that fits on most small arms with threaded barrels."
id = "suppressor"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
+ materials = list(/datum/material/iron = 2000, /datum/material/silver = 500)
build_path = /obj/item/suppressor
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -309,7 +309,7 @@
desc = "A multi-mode device that blasts one-point bluespace-gravitational bolts that locally distort gravity."
id = "gravitygun"
build_type = PROTOLATHE
- materials = list(MAT_SILVER = 8000, MAT_URANIUM = 8000, MAT_GLASS = 12000, MAT_METAL = 12000, MAT_DIAMOND = 3000, MAT_BLUESPACE = 3000)
+ materials = list(/datum/material/silver = 8000, /datum/material/uranium = 8000, /datum/material/glass = 12000, /datum/material/iron = 12000, /datum/material/diamond = 3000, /datum/material/bluespace = 3000)
build_path = /obj/item/gun/energy/gravity_gun
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -319,7 +319,7 @@
desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters."
id = "largecrossbow"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500)
+ materials = list(/datum/material/iron = 5000, /datum/material/glass = 1500, /datum/material/uranium = 1500, /datum/material/silver = 1500)
build_path = /obj/item/gun/energy/kinetic_accelerator/crossbow/large
category = list("Weapons")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -329,7 +329,7 @@
desc = "A shotgun dart designed with similar internals to that of a cryostasis beaker, allowing reagents to not react when inside."
id = "shotgundartcryostasis"
build_type = PROTOLATHE
- materials = list(MAT_METAL = 3500)
+ materials = list(/datum/material/iron = 3500)
build_path = /obj/item/ammo_casing/shotgun/dart/noreact
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index ac76e8b9fea..3f6eb278e28 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -63,7 +63,7 @@ Note: Must be placed within 3 tiles of the R&D Console
if(storage) //Also sends salvaged materials to a linked protolathe, if any.
for(var/material in thing.materials)
var/can_insert = min((storage.max_amount - storage.total_amount), (max(thing.materials[material]*(decon_mod/10), thing.materials[material])))
- storage.insert_amount(can_insert, material)
+ storage.insert_amount_mat(can_insert, material)
. += can_insert
if (.)
linked_console.linked_lathe.materials.silo_log(src, "reclaimed", 1, "[thing.name]", thing.materials)
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 9beff5ae6da..989d542f37b 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -441,7 +441,7 @@
if(linked_console.linked_lathe)
var/datum/component/material_container/linked_materials = linked_console.linked_lathe.GetComponent(/datum/component/material_container)
for(var/material in exp_on.materials)
- linked_materials.insert_amount( min((linked_materials.max_amount - linked_materials.total_amount), (exp_on.materials[material])), material)
+ linked_materials.insert_amount_mat( min((linked_materials.max_amount - linked_materials.total_amount), (exp_on.materials[material])), material)
if(prob(EFFECT_PROB_LOW) && criticalReaction)
visible_message("
[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!")
new /obj/item/stack/sheet/plasteel(get_turf(pick(oview(1,src))))
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 7d01b4da50c..b201ec76397 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -91,19 +91,19 @@
I.materials = matlist.Copy()
SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]"))
-/obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material
+/obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, var/mat) // now returns how many times the item can be built with the material
if (!materials.mat_container) // no connected silo
return 0
var/list/all_materials = being_built.reagents_list + being_built.materials
- var/A = materials.mat_container.amount(M)
+ var/A = materials.mat_container.get_material_amount(mat)
if(!A)
- A = reagents.get_reagent_amount(M)
+ A = reagents.get_reagent_amount(mat)
// these types don't have their .materials set in do_print, so don't allow
// them to be constructed efficiently
var/ef = efficient_with(being_built.build_path) ? efficiency_coeff : 1
- return round(A / max(1, all_materials[M] / ef))
+ return round(A / max(1, all_materials[mat] / ef))
/obj/machinery/rnd/production/proc/efficient_with(path)
return !ispath(path, /obj/item/stack/sheet) && !ispath(path, /obj/item/stack/ore/bluespace_crystal)
@@ -147,7 +147,7 @@
if(!reagents.has_reagent(R, D.reagents_list[R]*amount/coeff))
say("Not enough reagents to complete prototype[amount > 1? "s" : ""].")
return FALSE
- materials.mat_container.use_amount(efficient_mats, amount)
+ materials.mat_container.use_materials(efficient_mats, amount)
materials.silo_log(src, "built", -amount, "[D.name]", efficient_mats)
for(var/R in D.reagents_list)
reagents.remove_reagent(R, D.reagents_list[R]*amount/coeff)
@@ -208,11 +208,13 @@
var/list/l = list()
l += "
Material Storage:
"
for(var/mat_id in materials.mat_container.materials)
- var/datum/material/M = materials.mat_container.materials[mat_id]
- l += "* [M.amount] of [M.name]: "
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
Eject [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "
5x [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
All[RDSCREEN_NOBREAK]"
+ var/datum/material/M = mat_id
+ var/amount = materials.mat_container.materials[mat_id]
+ var/ref = REF(M)
+ l += "* [amount] of [M.name]: "
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "
Eject [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "
5x [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "
All[RDSCREEN_NOBREAK]"
l += ""
l += "
[RDSCREEN_NOBREAK]"
return l
@@ -300,7 +302,8 @@
if(ls["disposeall"]) //Causes the protolathe to dispose of all it's reagents.
reagents.clear_reagents()
if(ls["ejectsheet"]) //Causes the protolathe to eject a sheet of material
- eject_sheets(ls["ejectsheet"], ls["eject_amt"])
+ var/datum/material/M = locate(ls["ejectsheet"])
+ eject_sheets(M, ls["eject_amt"])
updateUsrDialog()
/obj/machinery/rnd/production/proc/eject_sheets(eject_sheet, eject_amt)
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index 3f6994f044f..d2cb2f9a5cd 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -52,8 +52,8 @@ Nothing else in the console has ID requirements.
research_control = FALSE
/proc/CallMaterialName(ID)
- if (copytext(ID, 1, 2) == "$" && GLOB.materials_list[ID])
- var/datum/material/material = GLOB.materials_list[ID]
+ if (istype(ID, /datum/material))
+ var/datum/material/material = ID
return material.name
else if(GLOB.chemical_reagents_list[ID])
@@ -383,11 +383,12 @@ Nothing else in the console has ID requirements.
l += ui_protolathe_header()
l += "
Material Storage:
"
for(var/mat_id in mat_container.materials)
- var/datum/material/M = mat_container.materials[mat_id]
- l += "* [M.amount] of [M.name]: "
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
Eject [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "
5x [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
All[RDSCREEN_NOBREAK]"
+ var/datum/material/M = mat_id
+ var/amount = mat_container.materials[mat_id]
+ l += "* [amount] of [M.name]: "
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "
Eject [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "
5x [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "
All[RDSCREEN_NOBREAK]"
l += ""
l += "
[RDSCREEN_NOBREAK]"
return l
@@ -516,11 +517,12 @@ Nothing else in the console has ID requirements.
l += ui_circuit_header()
l += "
Material Storage:"
for(var/mat_id in mat_container.materials)
- var/datum/material/M = mat_container.materials[mat_id]
- l += "* [M.amount] of [M.name]: "
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
Eject [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT*5) l += "
5x [RDSCREEN_NOBREAK]"
- if(M.amount >= MINERAL_MATERIAL_AMOUNT) l += "
All[RDSCREEN_NOBREAK]
"
+ var/datum/material/M = mat_id
+ var/amount = mat_container.materials[mat_id]
+ l += "* [amount] of [M.name]: "
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "Eject [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT*5) l += "5x [RDSCREEN_NOBREAK]"
+ if(amount >= MINERAL_MATERIAL_AMOUNT) l += "All[RDSCREEN_NOBREAK]
"
return l
/obj/machinery/computer/rdconsole/proc/ui_techdisk() //Legacy code
@@ -1020,7 +1022,7 @@ Nothing else in the console has ID requirements.
D.category -= "Imported"
else
for(var/x in D.materials)
- if( !(x in list(MAT_METAL, MAT_GLASS)))
+ if( !(x in list(/datum/material/iron, /datum/material/glass)))
autolathe_friendly = FALSE
D.category -= "Imported"
diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm
index 268e6a1be99..7c7d0af8b79 100644
--- a/code/modules/research/research_disk.dm
+++ b/code/modules/research/research_disk.dm
@@ -3,7 +3,7 @@
name = "technology disk"
desc = "A disk for storing technology data for further research."
icon_state = "datadisk0"
- materials = list(MAT_METAL=300, MAT_GLASS=100)
+ materials = list(/datum/material/iron=300, /datum/material/glass=100)
var/datum/techweb/stored_research
/obj/item/disk/tech_disk/Initialize()
diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm
index 6cb59637994..26588f6450a 100644
--- a/code/modules/research/stock_parts.dm
+++ b/code/modules/research/stock_parts.dm
@@ -132,31 +132,31 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
name = "capacitor"
desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor"
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
/obj/item/stock_parts/scanning_module
name = "scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module"
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
/obj/item/stock_parts/manipulator
name = "micro-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani"
- materials = list(MAT_METAL=30)
+ materials = list(/datum/material/iron=30)
/obj/item/stock_parts/micro_laser
name = "micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "micro_laser"
- materials = list(MAT_METAL=10, MAT_GLASS=20)
+ materials = list(/datum/material/iron=10, /datum/material/glass=20)
/obj/item/stock_parts/matter_bin
name = "matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "matter_bin"
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
//Rating 2
@@ -165,35 +165,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
desc = "An advanced capacitor used in the construction of a variety of devices."
icon_state = "adv_capacitor"
rating = 2
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
/obj/item/stock_parts/scanning_module/adv
name = "advanced scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "adv_scan_module"
rating = 2
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
/obj/item/stock_parts/manipulator/nano
name = "nano-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "nano_mani"
rating = 2
- materials = list(MAT_METAL=30)
+ materials = list(/datum/material/iron=30)
/obj/item/stock_parts/micro_laser/high
name = "high-power micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "high_micro_laser"
rating = 2
- materials = list(MAT_METAL=10, MAT_GLASS=20)
+ materials = list(/datum/material/iron=10, /datum/material/glass=20)
/obj/item/stock_parts/matter_bin/adv
name = "advanced matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "advanced_matter_bin"
rating = 2
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
//Rating 3
@@ -202,35 +202,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
desc = "A super-high capacity capacitor used in the construction of a variety of devices."
icon_state = "super_capacitor"
rating = 3
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
/obj/item/stock_parts/scanning_module/phasic
name = "phasic scanning module"
desc = "A compact, high resolution phasic scanning module used in the construction of certain devices."
icon_state = "super_scan_module"
rating = 3
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
/obj/item/stock_parts/manipulator/pico
name = "pico-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "pico_mani"
rating = 3
- materials = list(MAT_METAL=30)
+ materials = list(/datum/material/iron=30)
/obj/item/stock_parts/micro_laser/ultra
name = "ultra-high-power micro-laser"
icon_state = "ultra_high_micro_laser"
desc = "A tiny laser used in certain devices."
rating = 3
- materials = list(MAT_METAL=10, MAT_GLASS=20)
+ materials = list(/datum/material/iron=10, /datum/material/glass=20)
/obj/item/stock_parts/matter_bin/super
name = "super matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "super_matter_bin"
rating = 3
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
//Rating 4
@@ -239,35 +239,35 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
desc = "An capacity capacitor used in the construction of a variety of devices."
icon_state = "quadratic_capacitor"
rating = 4
- materials = list(MAT_METAL=50, MAT_GLASS=50)
+ materials = list(/datum/material/iron=50, /datum/material/glass=50)
/obj/item/stock_parts/scanning_module/triphasic
name = "triphasic scanning module"
desc = "A compact, ultra resolution triphasic scanning module used in the construction of certain devices."
icon_state = "triphasic_scan_module"
rating = 4
- materials = list(MAT_METAL=50, MAT_GLASS=20)
+ materials = list(/datum/material/iron=50, /datum/material/glass=20)
/obj/item/stock_parts/manipulator/femto
name = "femto-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "femto_mani"
rating = 4
- materials = list(MAT_METAL=30)
+ materials = list(/datum/material/iron=30)
/obj/item/stock_parts/micro_laser/quadultra
name = "quad-ultra micro-laser"
icon_state = "quadultra_micro_laser"
desc = "A tiny laser used in certain devices."
rating = 4
- materials = list(MAT_METAL=10, MAT_GLASS=20)
+ materials = list(/datum/material/iron=10, /datum/material/glass=20)
/obj/item/stock_parts/matter_bin/bluespace
name = "bluespace matter bin"
desc = "A container designed to hold compressed matter awaiting reconstruction."
icon_state = "bluespace_matter_bin"
rating = 4
- materials = list(MAT_METAL=80)
+ materials = list(/datum/material/iron=80)
// Subspace stock parts
@@ -275,43 +275,43 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
name = "subspace ansible"
icon_state = "subspace_ansible"
desc = "A compact module capable of sensing extradimensional activity."
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
/obj/item/stock_parts/subspace/filter
name = "hyperwave filter"
icon_state = "hyperwave_filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
/obj/item/stock_parts/subspace/amplifier
name = "subspace amplifier"
icon_state = "subspace_amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
/obj/item/stock_parts/subspace/treatment
name = "subspace treatment disk"
icon_state = "treatment_disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
/obj/item/stock_parts/subspace/analyzer
name = "subspace wavelength analyzer"
icon_state = "wavelength_analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
- materials = list(MAT_METAL=30, MAT_GLASS=10)
+ materials = list(/datum/material/iron=30, /datum/material/glass=10)
/obj/item/stock_parts/subspace/crystal
name = "ansible crystal"
icon_state = "ansible_crystal"
desc = "A crystal made from pure glass used to transmit laser databursts to subspace."
- materials = list(MAT_GLASS=50)
+ materials = list(/datum/material/glass=50)
/obj/item/stock_parts/subspace/transmitter
name = "subspace transmitter"
icon_state = "subspace_transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
- materials = list(MAT_METAL=50)
+ materials = list(/datum/material/iron=50)
/obj/item/research//Makes testing much less of a pain -Sieve
name = "research"
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 84082b0b5ba..473c877d796 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -980,7 +980,7 @@
icon_state = "tile-bluespace"
w_class = WEIGHT_CLASS_NORMAL
force = 6
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
throwforce = 10
throw_speed = 3
throw_range = 7
@@ -996,7 +996,7 @@
icon_state = "tile-sepia"
w_class = WEIGHT_CLASS_NORMAL
force = 6
- materials = list(MAT_METAL=500)
+ materials = list(/datum/material/iron=500)
throwforce = 10
throw_speed = 0.1
throw_range = 28
diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm
index b4aa70b0f3f..777739f3422 100644
--- a/code/modules/ruins/lavaland_ruin_code.dm
+++ b/code/modules/ruins/lavaland_ruin_code.dm
@@ -34,7 +34,7 @@
desc = "Allows for the construction of a Golem Shell."
id = "golem"
build_type = AUTOLATHE
- materials = list(MAT_METAL = 40000)
+ materials = list(/datum/material/iron = 40000)
build_path = /obj/item/golem_shell
category = list("Imported")
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index 7a40a5c1588..a36e895d8fa 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -131,14 +131,14 @@
name = "Surgery Procedure Disk"
desc = "A disk that contains advanced surgery procedures, must be loaded into an Operating Console."
icon_state = "datadisk1"
- materials = list(MAT_METAL=300, MAT_GLASS=100)
+ materials = list(/datum/material/iron=300, /datum/material/glass=100)
var/list/surgeries
/obj/item/disk/surgery/debug
name = "Debug Surgery Disk"
desc = "A disk that contains all existing surgery procedures."
icon_state = "datadisk1"
- materials = list(MAT_METAL=300, MAT_GLASS=100)
+ materials = list(/datum/material/iron=300, /datum/material/glass=100)
/obj/item/disk/surgery/debug/Initialize()
. = ..()
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 91de8ccf5e1..62fea926f0c 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -3,7 +3,7 @@
desc = "Retracts stuff."
icon = 'icons/obj/surgery.dmi'
icon_state = "retractor"
- materials = list(MAT_METAL=6000, MAT_GLASS=3000)
+ materials = list(/datum/material/iron=6000, /datum/material/glass=3000)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
w_class = WEIGHT_CLASS_TINY
@@ -14,7 +14,7 @@
desc = "Micro-mechanical manipulator for retracting stuff."
icon = 'icons/obj/surgery.dmi'
icon_state = "retractor"
- materials = list(MAT_METAL=6000, MAT_GLASS=3000)
+ materials = list(/datum/material/iron=6000, /datum/material/glass=3000)
w_class = WEIGHT_CLASS_TINY
toolspeed = 0.5
@@ -24,7 +24,7 @@
desc = "You think you have seen this before."
icon = 'icons/obj/surgery.dmi'
icon_state = "hemostat"
- materials = list(MAT_METAL=5000, MAT_GLASS=2500)
+ materials = list(/datum/material/iron=5000, /datum/material/glass=2500)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
w_class = WEIGHT_CLASS_TINY
@@ -36,7 +36,7 @@
desc = "Tiny servos power a pair of pincers to stop bleeding."
icon = 'icons/obj/surgery.dmi'
icon_state = "hemostat"
- materials = list(MAT_METAL=5000, MAT_GLASS=2500)
+ materials = list(/datum/material/iron=5000, /datum/material/glass=2500)
w_class = WEIGHT_CLASS_TINY
toolspeed = 0.5
attack_verb = list("attacked", "pinched")
@@ -47,7 +47,7 @@
desc = "This stops bleeding."
icon = 'icons/obj/surgery.dmi'
icon_state = "cautery"
- materials = list(MAT_METAL=2500, MAT_GLASS=750)
+ materials = list(/datum/material/iron=2500, /datum/material/glass=750)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
w_class = WEIGHT_CLASS_TINY
@@ -59,7 +59,7 @@
desc = "A heated element that cauterizes wounds."
icon = 'icons/obj/surgery.dmi'
icon_state = "cautery"
- materials = list(MAT_METAL=2500, MAT_GLASS=750)
+ materials = list(/datum/material/iron=2500, /datum/material/glass=750)
w_class = WEIGHT_CLASS_TINY
toolspeed = 0.5
attack_verb = list("burnt")
@@ -73,7 +73,7 @@
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
hitsound = 'sound/weapons/circsawhit.ogg'
- materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=6000)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
force = 15
@@ -87,7 +87,7 @@
icon = 'icons/obj/surgery.dmi'
icon_state = "drill"
hitsound = 'sound/weapons/circsawhit.ogg'
- materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=6000)
force = 10
w_class = WEIGHT_CLASS_SMALL
toolspeed = 0.5
@@ -109,7 +109,7 @@
throwforce = 5
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=4000, MAT_GLASS=1000)
+ materials = list(/datum/material/iron=4000, /datum/material/glass=1000)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP_ACCURATE
@@ -128,7 +128,7 @@
throwforce = 5
throw_speed = 3
throw_range = 5
- materials = list(MAT_METAL=4000, MAT_GLASS=1000)
+ materials = list(/datum/material/iron=4000, /datum/material/glass=1000)
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
toolspeed = 0.5
hitsound = 'sound/weapons/bladeslice.ogg'
@@ -155,7 +155,7 @@
throwforce = 9
throw_speed = 2
throw_range = 5
- materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=6000)
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharpness = IS_SHARP
@@ -175,7 +175,7 @@
throwforce = 9
throw_speed = 2
throw_range = 5
- materials = list(MAT_METAL=10000, MAT_GLASS=6000)
+ materials = list(/datum/material/iron=10000, /datum/material/glass=6000)
toolspeed = 0.5
attack_verb = list("attacked", "slashed", "sawed", "cut")
sharpness = IS_SHARP
diff --git a/icons/mob/inhands/equipment/toolbox_lefthand.dmi b/icons/mob/inhands/equipment/toolbox_lefthand.dmi
index 39094263756..4cee2d7d43a 100644
Binary files a/icons/mob/inhands/equipment/toolbox_lefthand.dmi and b/icons/mob/inhands/equipment/toolbox_lefthand.dmi differ
diff --git a/icons/mob/inhands/equipment/toolbox_righthand.dmi b/icons/mob/inhands/equipment/toolbox_righthand.dmi
index 533f0a591cc..8f1755669fc 100644
Binary files a/icons/mob/inhands/equipment/toolbox_righthand.dmi and b/icons/mob/inhands/equipment/toolbox_righthand.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index ffed5bfbb7a..28dceb37651 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 6c953189ffe..4dd91d01001 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -59,6 +59,7 @@
#include "code\__DEFINES\logging.dm"
#include "code\__DEFINES\machines.dm"
#include "code\__DEFINES\maps.dm"
+#include "code\__DEFINES\materials.dm"
#include "code\__DEFINES\maths.dm"
#include "code\__DEFINES\MC.dm"
#include "code\__DEFINES\medal.dm"
@@ -247,6 +248,7 @@
#include "code\controllers\subsystem\lighting.dm"
#include "code\controllers\subsystem\machines.dm"
#include "code\controllers\subsystem\mapping.dm"
+#include "code\controllers\subsystem\materials.dm"
#include "code\controllers\subsystem\medals.dm"
#include "code\controllers\subsystem\minor_mapping.dm"
#include "code\controllers\subsystem\mobs.dm"
@@ -356,6 +358,7 @@
#include "code\datums\components\earprotection.dm"
#include "code\datums\components\edit_complainer.dm"
#include "code\datums\components\empprotection.dm"
+#include "code\datums\components\explodable.dm"
#include "code\datums\components\footstep.dm"
#include "code\datums\components\forced_gravity.dm"
#include "code\datums\components\forensics.dm"
@@ -477,6 +480,7 @@
#include "code\datums\elements\_element.dm"
#include "code\datums\elements\cleaning.dm"
#include "code\datums\elements\earhealing.dm"
+#include "code\datums\elements\firestacker.dm"
#include "code\datums\helper_datums\events.dm"
#include "code\datums\helper_datums\getrev.dm"
#include "code\datums\helper_datums\icon_snapshot.dm"
@@ -493,6 +497,8 @@
#include "code\datums\martial\psychotic_brawl.dm"
#include "code\datums\martial\sleeping_carp.dm"
#include "code\datums\martial\wrestling.dm"
+#include "code\datums\materials\_material.dm"
+#include "code\datums\materials\basemats.dm"
#include "code\datums\mood_events\drink_events.dm"
#include "code\datums\mood_events\drug_events.dm"
#include "code\datums\mood_events\generic_negative_events.dm"