diff --git a/code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm b/code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm
index fb686820ee..f95b613466 100644
--- a/code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/algae_generator_vr.dm
@@ -232,7 +232,7 @@
// 0 amount = 0 means ejecting a full stack; -1 means eject everything
/obj/machinery/atmospherics/binary/algae_farm/proc/eject_materials(var/material_name, var/amount)
var/recursive = amount == -1 ? 1 : 0
- var/material/matdata = get_material_by_name(material_name)
+ var/datum/material/matdata = get_material_by_name(material_name)
var/stack_type = matdata.stack_type
var/obj/item/stack/material/S = new stack_type(loc)
if(amount <= 0)
@@ -266,7 +266,7 @@
to_chat(user, "\The [src] cannot hold more [S.name].")
return 1
-/material/algae
+/datum/material/algae
name = MAT_ALGAE
stack_type = /obj/item/stack/material/algae
icon_colour = "#557722"
diff --git a/code/controllers/subsystems/supply.dm b/code/controllers/subsystems/supply.dm
index ad14c1e6cd..21edbde50e 100644
--- a/code/controllers/subsystems/supply.dm
+++ b/code/controllers/subsystems/supply.dm
@@ -105,7 +105,7 @@ SUBSYSTEM_DEF(supply)
// Sell phoron and platinum
if(istype(A, /obj/item/stack))
var/obj/item/stack/P = A
- var/material/mat = P.get_material()
+ var/datum/material/mat = P.get_material()
if(mat?.supply_conversion_value)
EC.contents[EC.contents.len]["value"] = P.get_amount() * mat.supply_conversion_value
EC.contents[EC.contents.len]["quantity"] = P.get_amount()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 74f81514d5..3cde479238 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -313,7 +313,7 @@
/obj/machinery/autolathe/dismantle()
for(var/mat in stored_material)
- var/material/M = get_material_by_name(mat)
+ var/datum/material/M = get_material_by_name(mat)
if(!istype(M))
continue
var/obj/item/stack/material/S = new M.stack_type(get_turf(src))
@@ -327,7 +327,7 @@
/obj/machinery/autolathe/proc/eject_materials(var/material, var/amount) // 0 amount = 0 means ejecting a full stack; -1 means eject everything
var/recursive = amount == -1 ? 1 : 0
var/matstring = lowertext(material)
- var/material/M = get_material_by_name(matstring)
+ var/datum/material/M = get_material_by_name(matstring)
var/obj/item/stack/material/S = M.place_sheet(get_turf(src))
if(amount <= 0)
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 05eb9c322c..db27559796 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -14,7 +14,7 @@ Barricades
density = 1.0
var/health = 100
var/maxhealth = 100
- var/material/material
+ var/datum/material/material
/obj/structure/barricade/New(var/newloc, var/material_name)
..(newloc)
diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm
index dcbcce7fbd..08e0979ed5 100644
--- a/code/game/machinery/doors/blast_door.dm
+++ b/code/game/machinery/doors/blast_door.dm
@@ -19,7 +19,7 @@
icon = 'icons/obj/doors/rapid_pdoor.dmi'
icon_state = null
min_force = 20 //minimum amount of force needed to damage the door with a melee weapon
- var/material/implicit_material
+ var/datum/material/implicit_material
// Icon states for different shutter types. Simply change this instead of rewriting the update_icon proc.
var/icon_state_open = null
var/icon_state_opening = null
diff --git a/code/game/machinery/pipe/pipelayer.dm b/code/game/machinery/pipe/pipelayer.dm
index 8b49989e61..e671f2bb52 100644
--- a/code/game/machinery/pipe/pipelayer.dm
+++ b/code/game/machinery/pipe/pipelayer.dm
@@ -145,7 +145,7 @@
/obj/machinery/pipelayer/proc/eject_metal()
var/amount_ejected = 0
while (metal >= 1)
- var/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ var/datum/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
var/obj/item/stack/material/S = new M.stack_type(get_turf(src))
S.amount = min(metal, S.max_amount)
metal -= S.amount
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 521eb421de..fe8ec5876d 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -659,7 +659,7 @@
/obj/machinery/mecha_part_fabricator/proc/eject_materials(var/material, var/amount) // 0 amount = 0 means ejecting a full stack; -1 means eject everything
var/recursive = amount == -1 ? 1 : 0
var/matstring = lowertext(material)
- var/material/M = get_material_by_name(matstring)
+ var/datum/material/M = get_material_by_name(matstring)
var/obj/item/stack/material/S = M.place_sheet(get_turf(src))
if(amount <= 0)
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 0c2cf53961..6e35e74974 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -187,7 +187,7 @@
if ((pass_color || recipe.pass_color))
if(!color)
if(recipe.use_material)
- var/material/MAT = get_material_by_name(recipe.use_material)
+ var/datum/material/MAT = get_material_by_name(recipe.use_material)
if(MAT.icon_colour)
O.color = MAT.icon_colour
else
diff --git a/code/game/objects/items/weapons/material/material_armor.dm b/code/game/objects/items/weapons/material/material_armor.dm
index 91aca12dc1..3d3f7a3c38 100644
--- a/code/game/objects/items/weapons/material/material_armor.dm
+++ b/code/game/objects/items/weapons/material/material_armor.dm
@@ -27,7 +27,7 @@ Protectiveness | Armor %
// Putting these at /clothing/ level saves a lot of code duplication in armor/helmets/gauntlets/etc
/obj/item/clothing
- var/material/material = null // Why isn't this a datum?
+ var/datum/material/material = null // Why isn't this a datum?
var/applies_material_color = TRUE
var/unbreakable = FALSE
var/default_material = null // Set this to something else if you want material attributes on init.
diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm
index f4c8804679..23c04f2a81 100644
--- a/code/game/objects/items/weapons/material/material_weapons.dm
+++ b/code/game/objects/items/weapons/material/material_weapons.dm
@@ -24,7 +24,7 @@
var/thrown_force_divisor = 0.5
var/dulled_divisor = 0.5 //Just drops the damage by half
var/default_material = DEFAULT_WALL_MATERIAL
- var/material/material
+ var/datum/material/material
var/drops_debris = 1
/obj/item/weapon/material/New(var/newloc, var/material_key)
diff --git a/code/game/objects/structures/bonfire.dm b/code/game/objects/structures/bonfire.dm
index f4360f92cf..af52c59b71 100644
--- a/code/game/objects/structures/bonfire.dm
+++ b/code/game/objects/structures/bonfire.dm
@@ -9,7 +9,7 @@
var/burning = FALSE
var/next_fuel_consumption = 0 // world.time of when next item in fuel list gets eatten to sustain the fire.
var/grill = FALSE
- var/material/material
+ var/datum/material/material
var/set_temperature = T0C + 30 //K
var/heating_power = 80000
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index aab0ecf7f0..79c6023ff5 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -11,8 +11,8 @@
var/current_damage = 0
var/cover = 50 //how much cover the girder provides against projectiles.
var/default_material = DEFAULT_WALL_MATERIAL
- var/material/girder_material
- var/material/reinf_material
+ var/datum/material/girder_material
+ var/datum/material/reinf_material
var/reinforcing = 0
var/applies_material_colour = 1
@@ -226,7 +226,7 @@
to_chat(user, "There isn't enough material here to construct a wall.")
return 0
- var/material/M = name_to_material[S.default_type]
+ var/datum/material/M = name_to_material[S.default_type]
if(!istype(M))
return 0
@@ -267,7 +267,7 @@
to_chat(user, "There isn't enough material here to reinforce the girder.")
return 0
- var/material/M = name_to_material[S.default_type]
+ var/datum/material/M = name_to_material[S.default_type]
if(!istype(M) || M.integrity < 50)
to_chat(user, "You cannot reinforce \the [src] with that; it is too soft.")
return 0
@@ -401,7 +401,7 @@
var/turf/simulated/wall/new_T = get_turf(src) // Ref to the wall we just built.
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
// This is different from how other material objects with their own set_material(...) do it, but whatever.
- var/material/M = name_to_material[the_rcd.material_to_use]
+ var/datum/material/M = name_to_material[the_rcd.material_to_use]
new_T.set_material(M, the_rcd.make_rwalls ? M : null, girder_material)
new_T.add_hiddenprint(user)
qdel(src)
diff --git a/code/game/objects/structures/gravemarker.dm b/code/game/objects/structures/gravemarker.dm
index d5b7773910..ff02bb4ae2 100644
--- a/code/game/objects/structures/gravemarker.dm
+++ b/code/game/objects/structures/gravemarker.dm
@@ -17,7 +17,7 @@
var/epitaph = "" //A quick little blurb
// var/dir_locked = 0 //Can it be spun? Not currently implemented
- var/material/material
+ var/datum/material/material
/obj/structure/gravemarker/New(var/newloc, var/material_name)
..(newloc)
diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm
index 95689683a5..19ae278730 100644
--- a/code/game/objects/structures/simple_doors.dm
+++ b/code/game/objects/structures/simple_doors.dm
@@ -7,7 +7,7 @@
icon = 'icons/obj/doors/material_doors.dmi'
icon_state = "metal"
- var/material/material
+ var/datum/material/material
var/state = 0 //closed, 1 == open
var/isSwitchingStates = 0
var/hardness = 1
diff --git a/code/game/objects/structures/simple_doors_vr.dm b/code/game/objects/structures/simple_doors_vr.dm
index 7738674569..f6c9afd496 100644
--- a/code/game/objects/structures/simple_doors_vr.dm
+++ b/code/game/objects/structures/simple_doors_vr.dm
@@ -1,4 +1,4 @@
-/material/flockium
+/datum/material/flockium
name = "flockium"
//stack_type = /obj/item/stack/material/sandstone
icon_base = "flock"
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index 0007bdb9d6..639db4191b 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -17,8 +17,8 @@
can_buckle = 1
buckle_dir = SOUTH
buckle_lying = 1
- var/material/material
- var/material/padding_material
+ var/datum/material/material
+ var/datum/material/padding_material
var/base_icon = "bed"
var/applies_material_colour = 1
diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
index a3426aa816..f04ba27a78 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm
@@ -226,7 +226,7 @@
/obj/structure/bed/chair/sofa/update_icon()
if(applies_material_colour && sofa_material)
- var/material/color_material = get_material_by_name(sofa_material)
+ var/datum/material/color_material = get_material_by_name(sofa_material)
color = color_material.icon_colour
if(sofa_material == "carpet")
diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
index e0432bfb64..1bbc3eee6f 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm
@@ -12,8 +12,8 @@ var/global/list/stool_cache = list() //haha stool
throwforce = 10
w_class = ITEMSIZE_HUGE
var/base_icon = "stool_base"
- var/material/material
- var/material/padding_material
+ var/datum/material/material
+ var/datum/material/padding_material
/obj/item/weapon/stool/padded
icon_state = "stool_padded_preview" //set for the map
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index d5b64f4aad..2e6099aec2 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -155,7 +155,7 @@
var/turf/simulated/wall/T = get_turf(src) // Ref to the wall we just built.
// Apparently set_material(...) for walls requires refs to the material singletons and not strings.
// This is different from how other material objects with their own set_material(...) do it, but whatever.
- var/material/M = name_to_material[the_rcd.material_to_use]
+ var/datum/material/M = name_to_material[the_rcd.material_to_use]
T.set_material(M, the_rcd.make_rwalls ? M : null, M)
T.add_hiddenprint(user)
return TRUE
diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm
index dd49744a8f..c376bc36c1 100644
--- a/code/game/turfs/simulated/wall_icon.dm
+++ b/code/game/turfs/simulated/wall_icon.dm
@@ -31,7 +31,7 @@
update_icon()
-/turf/simulated/wall/proc/set_material(var/material/newmaterial, var/material/newrmaterial, var/material/newgmaterial)
+/turf/simulated/wall/proc/set_material(var/datum/material/newmaterial, var/datum/material/newrmaterial, var/datum/material/newgmaterial)
material = newmaterial
reinf_material = newrmaterial
if(!newgmaterial)
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 20c54b8fea..7f5421a1f5 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -14,9 +14,9 @@
var/global/damage_overlays[16]
var/active
var/can_open = 0
- var/material/girder_material
- var/material/material
- var/material/reinf_material
+ var/datum/material/girder_material
+ var/datum/material/material
+ var/datum/material/reinf_material
var/last_state
var/construction_stage
diff --git a/code/modules/hydroponics/beekeeping/beehive.dm b/code/modules/hydroponics/beekeeping/beehive.dm
index 4172d3dead..e91624724f 100644
--- a/code/modules/hydroponics/beekeeping/beehive.dm
+++ b/code/modules/hydroponics/beekeeping/beehive.dm
@@ -248,7 +248,7 @@
..()
recipes = wax_recipes
-/material/wax
+/datum/material/wax
name = "wax"
stack_type = /obj/item/stack/material/wax
icon_colour = "#fff343"
diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm
index b852e10383..ff567c55f4 100644
--- a/code/modules/materials/material_recipes.dm
+++ b/code/modules/materials/material_recipes.dm
@@ -1,9 +1,9 @@
-/material/proc/get_recipes()
+/datum/material/proc/get_recipes()
if(!recipes)
generate_recipes()
return recipes
-/material/proc/generate_recipes()
+/datum/material/proc/generate_recipes()
recipes = list()
// If is_brittle() returns true, these are only good for a single strike.
@@ -29,7 +29,7 @@
recipes += new/datum/stack_recipe("[display_name] knife", /obj/item/weapon/material/knife/plastic, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("[display_name] blade", /obj/item/weapon/material/butterflyblade, 6, time = 20, one_per_turf = 0, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
-/material/steel/generate_recipes()
+/datum/material/steel/generate_recipes()
..()
recipes += new/datum/stack_recipe_list("office chairs",list( \
new/datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \
@@ -105,7 +105,7 @@
))
recipes += new/datum/stack_recipe("desk bell", /obj/item/weapon/deskbell, 1, on_floor = 1, supplied_material = "[name]")
-/material/plasteel/generate_recipes()
+/datum/material/plasteel/generate_recipes()
..()
recipes += new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1)
recipes += new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1)
@@ -114,16 +114,16 @@
recipes += new/datum/stack_recipe("roller bed", /obj/item/roller, 5, time = 30, on_floor = 1)
recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 10)
-/material/stone/generate_recipes()
+/datum/material/stone/generate_recipes()
..()
recipes += new/datum/stack_recipe("planting bed", /obj/machinery/portable_atmospherics/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1)
-/material/stone/marble/generate_recipes()
+/datum/material/stone/marble/generate_recipes()
..()
recipes += new/datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/wmarble, 1, 4, 20)
recipes += new/datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/bmarble, 1, 4, 20)
-/material/plastic/generate_recipes()
+/datum/material/plastic/generate_recipes()
..()
recipes += new/datum/stack_recipe("plastic crate", /obj/structure/closet/crate/plastic, 10, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1, pass_stack_color = TRUE)
@@ -141,7 +141,7 @@
recipes += new/datum/stack_recipe("plastic fishtank", /obj/item/glass_jar/fish/plastic, 2, time = 30 SECONDS)
recipes += new/datum/stack_recipe("reagent tubing", /obj/item/stack/hose, 1, 4, 20, pass_stack_color = TRUE)
-/material/wood/generate_recipes()
+/datum/material/wood/generate_recipes()
..()
recipes += new/datum/stack_recipe("oar", /obj/item/weapon/oar, 2, time = 30, supplied_material = "[name]", pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("boat", /obj/vehicle/boat, 20, time = 10 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE)
@@ -163,11 +163,11 @@
recipes += new/datum/stack_recipe("wooden standup figure", /obj/structure/barricade/cutout, 5, time = 10 SECONDS, pass_stack_color = TRUE) //VOREStation Add
recipes += new/datum/stack_recipe("noticeboard", /obj/structure/noticeboard, 1)
-/material/wood/log/generate_recipes()
+/datum/material/wood/log/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("bonfire", /obj/structure/bonfire, 5, time = 50, supplied_material = "[name]", pass_stack_color = TRUE)
-/material/cardboard/generate_recipes()
+/datum/material/cardboard/generate_recipes()
..()
recipes += new/datum/stack_recipe("box", /obj/item/weapon/storage/box, pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("donut box", /obj/item/weapon/storage/box/donut/empty, pass_stack_color = TRUE)
@@ -186,7 +186,7 @@
new/datum/stack_recipe("yellow folder", /obj/item/weapon/folder/yellow), \
))
-/material/snow/generate_recipes()
+/datum/material/snow/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10)
recipes += new/datum/stack_recipe("snow brick", /obj/item/stack/material/snowbrick, 2, time = 10)
@@ -194,7 +194,7 @@
recipes += new/datum/stack_recipe("snow robot", /obj/structure/snowman/borg, 2, time = 10)
recipes += new/datum/stack_recipe("snow spider", /obj/structure/snowman/spider, 3, time = 20)
-/material/snowbrick/generate_recipes()
+/datum/material/snowbrick/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] barricade", /obj/structure/barricade, 5, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
@@ -205,7 +205,7 @@
recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]")
-/material/wood/sif/generate_recipes()
+/datum/material/wood/sif/generate_recipes()
..()
recipes += new/datum/stack_recipe("alien wood floor tile", /obj/item/stack/tile/wood/sif, 1, 4, 20, pass_stack_color = TRUE)
for(var/datum/stack_recipe/r_recipe in recipes)
@@ -216,11 +216,11 @@
recipes -= r_recipe
continue
-/material/supermatter/generate_recipes()
+/datum/material/supermatter/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("supermatter shard", /obj/machinery/power/supermatter/shard, 30 , one_per_turf = 1, time = 600, on_floor = 1)
-/material/cloth/generate_recipes()
+/datum/material/cloth/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("woven net", /obj/item/weapon/material/fishing_net, 10, time = 30 SECONDS, pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("bedsheet", /obj/item/weapon/bedsheet, 10, time = 30 SECONDS, pass_stack_color = TRUE)
@@ -238,7 +238,7 @@
recipes += new/datum/stack_recipe("belt pouch", /obj/item/weapon/storage/belt/fannypack/white, 25, time = 1 MINUTE, pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("crude bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE)
-/material/resin/generate_recipes()
+/datum/material/resin/generate_recipes()
recipes = list()
recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door/resin, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE)
recipes += new/datum/stack_recipe("[display_name] barricade", /obj/effect/alien/resin/wall, 5, time = 5 SECONDS, one_per_turf = 1, on_floor = 1, pass_stack_color = TRUE)
diff --git a/code/modules/materials/material_recipes_vr.dm b/code/modules/materials/material_recipes_vr.dm
index ba2a95250a..3dc6975a04 100644
--- a/code/modules/materials/material_recipes_vr.dm
+++ b/code/modules/materials/material_recipes_vr.dm
@@ -1,5 +1,5 @@
-/material/steel/generate_recipes()
+/datum/material/steel/generate_recipes()
. = ..()
recipes += new/datum/stack_recipe_list("mounted chairs", list(
new/datum/stack_recipe("mounted chair", /obj/structure/bed/chair/bay/chair, 2, one_per_turf = 1, on_floor = 1, time = 10),
@@ -80,11 +80,11 @@
new/datum/stack_recipe("orange sofa corner", /obj/structure/bed/chair/sofa/orange/corner, 1, one_per_turf = 1, on_floor = 1), \
))
-/material/durasteel/generate_recipes()
+/datum/material/durasteel/generate_recipes()
. = ..()
recipes += new/datum/stack_recipe("durasteel fishing rod", /obj/item/weapon/material/fishing_rod/modern/strong, 2)
recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 30)
-/material/plastitanium/generate_recipes()
+/datum/material/plastitanium/generate_recipes()
. = ..()
recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 20)
diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm
index 68bb201552..6eb7b990e8 100644
--- a/code/modules/materials/material_sheets.dm
+++ b/code/modules/materials/material_sheets.dm
@@ -14,7 +14,7 @@
)
var/default_type = DEFAULT_WALL_MATERIAL
- var/material/material
+ var/datum/material/material
var/perunit = SHEET_MATERIAL_AMOUNT
var/apply_colour //temp pending icon rewrite
drop_sound = 'sound/items/drop/axe.ogg'
diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm
index 012e64b4ec..32d485e318 100644
--- a/code/modules/materials/materials.dm
+++ b/code/modules/materials/materials.dm
@@ -45,7 +45,7 @@ var/list/name_to_material
//mostly for convenience
/obj/proc/get_material_name()
- var/material/material = get_material()
+ var/datum/material/material = get_material()
if(material)
return material.name
@@ -53,8 +53,8 @@ var/list/name_to_material
/proc/populate_material_list(force_remake=0)
if(name_to_material && !force_remake) return // Already set up!
name_to_material = list()
- for(var/type in typesof(/material) - /material)
- var/material/new_mineral = new type
+ for(var/type in typesof(/datum/material) - /datum/material)
+ var/datum/material/new_mineral = new type
if(!new_mineral.name)
continue
name_to_material[lowertext(new_mineral.name)] = new_mineral
@@ -67,13 +67,13 @@ var/list/name_to_material
return name_to_material[name]
/proc/material_display_name(name)
- var/material/material = get_material_by_name(name)
+ var/datum/material/material = get_material_by_name(name)
if(material)
return material.display_name
return null
// Material definition and procs follow.
-/material
+/datum/material
var/name // Unique name for use in indexing the list.
var/display_name // Prettier name for display.
var/use_name
@@ -137,7 +137,7 @@ var/list/name_to_material
var/rotting_touch_message = "crumbles under your touch"
// Placeholders for light tiles and rglass.
-/material/proc/build_rod_product(var/mob/user, var/obj/item/stack/used_stack, var/obj/item/stack/target_stack)
+/datum/material/proc/build_rod_product(var/mob/user, var/obj/item/stack/used_stack, var/obj/item/stack/target_stack)
if(!rod_product)
to_chat(user, "You cannot make anything out of \the [target_stack]")
return
@@ -150,7 +150,7 @@ var/list/name_to_material
S.add_fingerprint(user)
S.add_to_stacks(user)
-/material/proc/build_wired_product(var/mob/living/user, var/obj/item/stack/used_stack, var/obj/item/stack/target_stack)
+/datum/material/proc/build_wired_product(var/mob/living/user, var/obj/item/stack/used_stack, var/obj/item/stack/target_stack)
if(!wire_product)
to_chat(user, "You cannot make anything out of \the [target_stack]")
return
@@ -165,7 +165,7 @@ var/list/name_to_material
user.put_in_hands(product)
// Make sure we have a display name and shard icon even if they aren't explicitly set.
-/material/New()
+/datum/material/New()
..()
if(!display_name)
display_name = name
@@ -175,15 +175,15 @@ var/list/name_to_material
shard_icon = shard_type
// This is a placeholder for proper integration of windows/windoors into the system.
-/material/proc/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
+/datum/material/proc/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
return 0
// Weapons handle applying a divisor for this value locally.
-/material/proc/get_blunt_damage()
+/datum/material/proc/get_blunt_damage()
return weight //todo
// Return the matter comprising this material.
-/material/proc/get_matter()
+/datum/material/proc/get_matter()
var/list/temp_matter = list()
if(islist(composite_material))
for(var/material_string in composite_material)
@@ -193,61 +193,61 @@ var/list/name_to_material
return temp_matter
// As above.
-/material/proc/get_edge_damage()
+/datum/material/proc/get_edge_damage()
return hardness //todo
// Snowflakey, only checked for alien doors at the moment.
-/material/proc/can_open_material_door(var/mob/living/user)
+/datum/material/proc/can_open_material_door(var/mob/living/user)
return 1
// Currently used for weapons and objects made of uranium to irradiate things.
-/material/proc/products_need_process()
+/datum/material/proc/products_need_process()
return (radioactivity>0) //todo
// Used by walls when qdel()ing to avoid neighbor merging.
-/material/placeholder
+/datum/material/placeholder
name = "placeholder"
// Places a girder object when a wall is dismantled, also applies reinforced material.
-/material/proc/place_dismantled_girder(var/turf/target, var/material/reinf_material, var/material/girder_material)
+/datum/material/proc/place_dismantled_girder(var/turf/target, var/datum/material/reinf_material, var/datum/material/girder_material)
var/obj/structure/girder/G = new(target)
if(reinf_material)
G.reinf_material = reinf_material
G.reinforce_girder()
if(girder_material)
- if(istype(girder_material, /material))
+ if(istype(girder_material, /datum/material))
girder_material = girder_material.name
G.set_material(girder_material)
// General wall debris product placement.
// Not particularly necessary aside from snowflakey cult girders.
-/material/proc/place_dismantled_product(var/turf/target)
+/datum/material/proc/place_dismantled_product(var/turf/target)
place_sheet(target)
// Debris product. Used ALL THE TIME.
-/material/proc/place_sheet(var/turf/target)
+/datum/material/proc/place_sheet(var/turf/target)
if(stack_type)
return new stack_type(target)
// As above.
-/material/proc/place_shard(var/turf/target)
+/datum/material/proc/place_shard(var/turf/target)
if(shard_type)
return new /obj/item/weapon/material/shard(target, src.name)
// Used by walls and weapons to determine if they break or not.
-/material/proc/is_brittle()
+/datum/material/proc/is_brittle()
return !!(flags & MATERIAL_BRITTLE)
-/material/proc/combustion_effect(var/turf/T, var/temperature)
+/datum/material/proc/combustion_effect(var/turf/T, var/temperature)
return
// Used by walls to do on-touch things, after checking for crumbling and open-ability.
-/material/proc/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L)
+/datum/material/proc/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L)
return
// Datum definitions follow.
-/material/uranium
+/datum/material/uranium
name = "uranium"
stack_type = /obj/item/stack/material/uranium
radioactivity = 12
@@ -259,7 +259,7 @@ var/list/name_to_material
door_icon_base = "stone"
supply_conversion_value = 2
-/material/diamond
+/datum/material/diamond
name = "diamond"
stack_type = /obj/item/stack/material/diamond
flags = MATERIAL_UNMELTABLE
@@ -275,7 +275,7 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 6)
supply_conversion_value = 8
-/material/gold
+/datum/material/gold
name = "gold"
stack_type = /obj/item/stack/material/gold
icon_colour = "#EDD12F"
@@ -287,11 +287,11 @@ var/list/name_to_material
sheet_plural_name = "ingots"
supply_conversion_value = 2
-/material/gold/bronze //placeholder for ashtrays
+/datum/material/gold/bronze //placeholder for ashtrays
name = "bronze"
icon_colour = "#EDD12F"
-/material/silver
+/datum/material/silver
name = "silver"
stack_type = /obj/item/stack/material/silver
icon_colour = "#D1E6E3"
@@ -304,7 +304,7 @@ var/list/name_to_material
supply_conversion_value = 2
//R-UST port
-/material/supermatter
+/datum/material/supermatter
name = "supermatter"
icon_colour = "#FFFF00"
stack_type = /obj/item/stack/material/supermatter
@@ -322,7 +322,7 @@ var/list/name_to_material
is_fusion_fuel = 1
stack_origin_tech = list(TECH_MATERIAL = 8, TECH_PHORON = 5, TECH_BLUESPACE = 4)
-/material/phoron
+/datum/material/phoron
name = "phoron"
stack_type = /obj/item/stack/material/phoron
ignition_point = PHORON_MINIMUM_BURN_TEMPERATURE
@@ -338,7 +338,7 @@ var/list/name_to_material
/*
// Commenting this out while fires are so spectacularly lethal, as I can't seem to get this balanced appropriately.
-/material/phoron/combustion_effect(var/turf/T, var/temperature, var/effect_multiplier)
+/datum/material/phoron/combustion_effect(var/turf/T, var/temperature, var/effect_multiplier)
if(isnull(ignition_point))
return 0
if(temperature < ignition_point)
@@ -353,7 +353,7 @@ var/list/name_to_material
return round(totalPhoron/100)
*/
-/material/stone
+/datum/material/stone
name = "sandstone"
stack_type = /obj/item/stack/material/sandstone
icon_base = "stone"
@@ -369,7 +369,7 @@ var/list/name_to_material
sheet_singular_name = "brick"
sheet_plural_name = "bricks"
-/material/stone/marble
+/datum/material/stone/marble
name = "marble"
icon_colour = "#AAAAAA"
weight = 26
@@ -378,7 +378,7 @@ var/list/name_to_material
stack_type = /obj/item/stack/material/marble
supply_conversion_value = 2
-/material/steel
+/datum/material/steel
name = DEFAULT_WALL_MATERIAL
stack_type = /obj/item/stack/material/steel
integrity = 150
@@ -388,7 +388,7 @@ var/list/name_to_material
icon_reinf = "reinf_over"
icon_colour = "#666666"
-/material/steel/hull
+/datum/material/steel/hull
name = MAT_STEELHULL
stack_type = /obj/item/stack/material/steel/hull
integrity = 250
@@ -397,10 +397,10 @@ var/list/name_to_material
icon_reinf = "reinf_mesh"
icon_colour = "#666677"
-/material/steel/hull/place_sheet(var/turf/target) //Deconstructed into normal steel sheets.
+/datum/material/steel/hull/place_sheet(var/turf/target) //Deconstructed into normal steel sheets.
new /obj/item/stack/material/steel(target)
-/material/diona
+/datum/material/diona
name = "biomass"
icon_colour = null
stack_type = null
@@ -408,19 +408,19 @@ var/list/name_to_material
icon_base = "diona"
icon_reinf = "noreinf"
-/material/diona/place_dismantled_product()
+/datum/material/diona/place_dismantled_product()
return
-/material/diona/place_dismantled_girder(var/turf/target)
+/datum/material/diona/place_dismantled_girder(var/turf/target)
spawn_diona_nymph(target)
-/material/steel/holographic
+/datum/material/steel/holographic
name = "holo" + DEFAULT_WALL_MATERIAL
display_name = DEFAULT_WALL_MATERIAL
stack_type = null
shard_type = SHARD_NONE
-/material/plasteel
+/datum/material/plasteel
name = "plasteel"
stack_type = /obj/item/stack/material/plasteel
integrity = 400
@@ -437,7 +437,7 @@ var/list/name_to_material
composite_material = list(DEFAULT_WALL_MATERIAL = SHEET_MATERIAL_AMOUNT, "platinum" = SHEET_MATERIAL_AMOUNT) //todo
supply_conversion_value = 6
-/material/plasteel/hull
+/datum/material/plasteel/hull
name = MAT_PLASTEELHULL
stack_type = /obj/item/stack/material/plasteel/hull
integrity = 600
@@ -446,11 +446,11 @@ var/list/name_to_material
icon_colour = "#777788"
explosion_resistance = 40
-/material/plasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal plasteel sheets.
+/datum/material/plasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal plasteel sheets.
new /obj/item/stack/material/plasteel(target)
// Very rare alloy that is reflective, should be used sparingly.
-/material/durasteel
+/datum/material/durasteel
name = "durasteel"
stack_type = /obj/item/stack/material/durasteel/hull
integrity = 600
@@ -467,7 +467,7 @@ var/list/name_to_material
composite_material = list("plasteel" = SHEET_MATERIAL_AMOUNT, "diamond" = SHEET_MATERIAL_AMOUNT) //shrug
supply_conversion_value = 9
-/material/durasteel/hull //The 'Hardball' of starship hulls.
+/datum/material/durasteel/hull //The 'Hardball' of starship hulls.
name = MAT_DURASTEELHULL
icon_base = "hull"
icon_reinf = "reinf_mesh"
@@ -475,10 +475,10 @@ var/list/name_to_material
explosion_resistance = 90
reflectivity = 0.9
-/material/durasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal durasteel sheets.
+/datum/material/durasteel/hull/place_sheet(var/turf/target) //Deconstructed into normal durasteel sheets.
new /obj/item/stack/material/durasteel(target)
-/material/plasteel/titanium
+/datum/material/plasteel/titanium
name = MAT_TITANIUM
stack_type = /obj/item/stack/material/titanium
conductivity = 2.38
@@ -487,16 +487,16 @@ var/list/name_to_material
icon_colour = "#D1E6E3"
icon_reinf = "reinf_metal"
-/material/plasteel/titanium/hull
+/datum/material/plasteel/titanium/hull
name = MAT_TITANIUMHULL
stack_type = /obj/item/stack/material/titanium/hull
icon_base = "hull"
icon_reinf = "reinf_mesh"
-/material/plasteel/titanium/hull/place_sheet(var/turf/target) //Deconstructed into normal titanium sheets.
+/datum/material/plasteel/titanium/hull/place_sheet(var/turf/target) //Deconstructed into normal titanium sheets.
new /obj/item/stack/material/titanium(target)
-/material/glass
+/datum/material/glass
name = "glass"
stack_type = /obj/item/stack/material/glass
flags = MATERIAL_BRITTLE
@@ -517,7 +517,7 @@ var/list/name_to_material
created_fulltile_window = /obj/structure/window/basic/full
rod_product = /obj/item/stack/material/glass/reinforced
-/material/glass/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
+/datum/material/glass/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
if(!user || !used_stack || !created_window || !created_fulltile_window || !window_options.len)
return 0
@@ -588,10 +588,10 @@ var/list/name_to_material
new build_path(T, build_dir, 1)
return 1
-/material/glass/proc/is_reinforced()
+/datum/material/glass/proc/is_reinforced()
return (hardness > 35) //todo
-/material/glass/reinforced
+/datum/material/glass/reinforced
name = "rglass"
display_name = "reinforced glass"
stack_type = /obj/item/stack/material/glass/reinforced
@@ -611,7 +611,7 @@ var/list/name_to_material
wire_product = null
rod_product = null
-/material/glass/phoron
+/datum/material/glass/phoron
name = "borosilicate glass"
display_name = "borosilicate glass"
stack_type = /obj/item/stack/material/glass/phoronglass
@@ -625,7 +625,7 @@ var/list/name_to_material
wire_product = null
rod_product = /obj/item/stack/material/glass/phoronrglass
-/material/glass/phoron/reinforced
+/datum/material/glass/phoron/reinforced
name = "reinforced borosilicate glass"
display_name = "reinforced borosilicate glass"
stack_type = /obj/item/stack/material/glass/phoronrglass
@@ -640,7 +640,7 @@ var/list/name_to_material
composite_material = list() //todo
rod_product = null
-/material/plastic
+/datum/material/plastic
name = "plastic"
stack_type = /obj/item/stack/material/plastic
flags = MATERIAL_BRITTLE
@@ -655,13 +655,13 @@ var/list/name_to_material
melting_point = T0C+371 //assuming heat resistant plastic
stack_origin_tech = list(TECH_MATERIAL = 3)
-/material/plastic/holographic
+/datum/material/plastic/holographic
name = "holoplastic"
display_name = "plastic"
stack_type = null
shard_type = SHARD_NONE
-/material/graphite
+/datum/material/graphite
name = MAT_GRAPHITE
stack_type = /obj/item/stack/material/graphite
flags = MATERIAL_BRITTLE
@@ -677,7 +677,7 @@ var/list/name_to_material
radiation_resistance = 15
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_MAGNET = 2)
-/material/osmium
+/datum/material/osmium
name = "osmium"
stack_type = /obj/item/stack/material/osmium
icon_colour = "#9999FF"
@@ -687,7 +687,7 @@ var/list/name_to_material
conductivity = 100
supply_conversion_value = 6
-/material/tritium
+/datum/material/tritium
name = "tritium"
stack_type = /obj/item/stack/material/tritium
icon_colour = "#777777"
@@ -697,7 +697,7 @@ var/list/name_to_material
is_fusion_fuel = 1
conductive = 0
-/material/deuterium
+/datum/material/deuterium
name = "deuterium"
stack_type = /obj/item/stack/material/deuterium
icon_colour = "#999999"
@@ -707,7 +707,7 @@ var/list/name_to_material
is_fusion_fuel = 1
conductive = 0
-/material/mhydrogen
+/datum/material/mhydrogen
name = "mhydrogen"
stack_type = /obj/item/stack/material/mhydrogen
icon_colour = "#E6C5DE"
@@ -716,7 +716,7 @@ var/list/name_to_material
is_fusion_fuel = 1
supply_conversion_value = 6
-/material/platinum
+/datum/material/platinum
name = "platinum"
stack_type = /obj/item/stack/material/platinum
icon_colour = "#9999FF"
@@ -727,7 +727,7 @@ var/list/name_to_material
sheet_plural_name = "ingots"
supply_conversion_value = 5
-/material/iron
+/datum/material/iron
name = "iron"
stack_type = /obj/item/stack/material/iron
icon_colour = "#5C5454"
@@ -736,7 +736,7 @@ var/list/name_to_material
sheet_singular_name = "ingot"
sheet_plural_name = "ingots"
-/material/lead
+/datum/material/lead
name = MAT_LEAD
stack_type = /obj/item/stack/material/lead
icon_colour = "#273956"
@@ -749,7 +749,7 @@ var/list/name_to_material
// Particle Smasher and other exotic materials.
-/material/verdantium
+/datum/material/verdantium
name = MAT_VERDANTIUM
stack_type = /obj/item/stack/material/verdantium
icon_base = "metal"
@@ -770,7 +770,7 @@ var/list/name_to_material
sheet_plural_name = "sheets"
supply_conversion_value = 8
-/material/morphium
+/datum/material/morphium
name = MAT_MORPHIUM
stack_type = /obj/item/stack/material/morphium
icon_base = "metal"
@@ -791,13 +791,13 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 8, TECH_ILLEGAL = 1, TECH_PHORON = 4, TECH_BLUESPACE = 4, TECH_ARCANE = 1)
supply_conversion_value = 13
-/material/morphium/hull
+/datum/material/morphium/hull
name = MAT_MORPHIUMHULL
stack_type = /obj/item/stack/material/morphium/hull
icon_base = "hull"
icon_reinf = "reinf_mesh"
-/material/valhollide
+/datum/material/valhollide
name = MAT_VALHOLLIDE
stack_type = /obj/item/stack/material/valhollide
icon_base = "stone"
@@ -820,7 +820,7 @@ var/list/name_to_material
// Adminspawn only, do not let anyone get this.
-/material/alienalloy
+/datum/material/alienalloy
name = "alienalloy"
display_name = "durable alloy"
stack_type = null
@@ -834,31 +834,31 @@ var/list/name_to_material
protectiveness = 80 // 80%
// Likewise.
-/material/alienalloy/elevatorium
+/datum/material/alienalloy/elevatorium
name = "elevatorium"
display_name = "elevator panelling"
icon_colour = "#666666"
// Ditto.
-/material/alienalloy/dungeonium
+/datum/material/alienalloy/dungeonium
name = "dungeonium"
display_name = "ultra-durable"
icon_base = "dungeon"
icon_colour = "#FFFFFF"
-/material/alienalloy/bedrock
+/datum/material/alienalloy/bedrock
name = "bedrock"
display_name = "impassable rock"
icon_base = "rock"
icon_colour = "#FFFFFF"
-/material/alienalloy/alium
+/datum/material/alienalloy/alium
name = "alium"
display_name = "alien"
icon_base = "alien"
icon_colour = "#FFFFFF"
-/material/resin
+/datum/material/resin
name = "resin"
icon_colour = "#35343a"
icon_base = "resin"
@@ -874,13 +874,13 @@ var/list/name_to_material
stack_origin_tech = list(TECH_MATERIAL = 8, TECH_PHORON = 4, TECH_BLUESPACE = 4, TECH_BIO = 7)
stack_type = /obj/item/stack/material/resin
-/material/resin/can_open_material_door(var/mob/living/user)
+/datum/material/resin/can_open_material_door(var/mob/living/user)
var/mob/living/carbon/M = user
if(istype(M) && locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
return 1
return 0
-/material/resin/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L)
+/datum/material/resin/wall_touch_special(var/turf/simulated/wall/W, var/mob/living/L)
var/mob/living/carbon/M = L
if(istype(M) && locate(/obj/item/organ/internal/xenos/hivenode) in M.internal_organs)
to_chat(M, "\The [W] shudders under your touch, starting to become porous.")
@@ -892,7 +892,7 @@ var/list/name_to_material
return 1
return 0
-/material/wood
+/datum/material/wood
name = MAT_WOOD
stack_type = /obj/item/stack/material/wood
icon_colour = "#9c5930"
@@ -915,7 +915,7 @@ var/list/name_to_material
sheet_singular_name = "plank"
sheet_plural_name = "planks"
-/material/wood/log
+/datum/material/wood/log
name = MAT_LOG
icon_base = "log"
stack_type = /obj/item/stack/material/log
@@ -923,25 +923,25 @@ var/list/name_to_material
sheet_plural_name = "pile"
pass_stack_colors = TRUE
-/material/wood/log/sif
+/datum/material/wood/log/sif
name = MAT_SIFLOG
icon_colour = "#0099cc" // Cyan-ish
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2)
stack_type = /obj/item/stack/material/log/sif
-/material/wood/holographic
+/datum/material/wood/holographic
name = "holowood"
display_name = "wood"
stack_type = null
shard_type = SHARD_NONE
-/material/wood/sif
+/datum/material/wood/sif
name = MAT_SIFWOOD
stack_type = /obj/item/stack/material/wood/sif
icon_colour = "#0099cc" // Cyan-ish
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 2) // Alien wood would presumably be more interesting to the analyzer.
-/material/cardboard
+/datum/material/cardboard
name = "cardboard"
stack_type = /obj/item/stack/material/cardboard
flags = MATERIAL_BRITTLE
@@ -961,7 +961,7 @@ var/list/name_to_material
radiation_resistance = 1
pass_stack_colors = TRUE
-/material/snow
+/datum/material/snow
name = MAT_SNOW
stack_type = /obj/item/stack/material/snow
flags = MATERIAL_BRITTLE
@@ -979,7 +979,7 @@ var/list/name_to_material
sheet_plural_name = "pile" //Just a bigger pile
radiation_resistance = 1
-/material/snowbrick //only slightly stronger than snow, used to make igloos mostly
+/datum/material/snowbrick //only slightly stronger than snow, used to make igloos mostly
name = "packed snow"
flags = MATERIAL_BRITTLE
stack_type = /obj/item/stack/material/snowbrick
@@ -997,7 +997,7 @@ var/list/name_to_material
sheet_plural_name = "bricks"
radiation_resistance = 1
-/material/cloth //todo
+/datum/material/cloth //todo
name = "cloth"
stack_origin_tech = list(TECH_MATERIAL = 2)
door_icon_base = "wood"
@@ -1008,7 +1008,7 @@ var/list/name_to_material
conductive = 0
pass_stack_colors = TRUE
-/material/cult
+/datum/material/cult
name = "cult"
display_name = "disturbing stone"
icon_base = "cult"
@@ -1019,21 +1019,21 @@ var/list/name_to_material
sheet_plural_name = "bricks"
conductive = 0
-/material/cult/place_dismantled_girder(var/turf/target)
+/datum/material/cult/place_dismantled_girder(var/turf/target)
new /obj/structure/girder/cult(target, "cult")
-/material/cult/place_dismantled_product(var/turf/target)
+/datum/material/cult/place_dismantled_product(var/turf/target)
new /obj/effect/decal/cleanable/blood(target)
-/material/cult/reinf
+/datum/material/cult/reinf
name = "cult2"
display_name = "human remains"
-/material/cult/reinf/place_dismantled_product(var/turf/target)
+/datum/material/cult/reinf/place_dismantled_product(var/turf/target)
new /obj/effect/decal/remains/human(target)
//TODO PLACEHOLDERS:
-/material/leather
+/datum/material/leather
name = "leather"
icon_colour = "#5C4831"
stack_origin_tech = list(TECH_MATERIAL = 2)
@@ -1043,7 +1043,7 @@ var/list/name_to_material
protectiveness = 3 // 13%
conductive = 0
-/material/carpet
+/datum/material/carpet
name = "carpet"
display_name = "comfy"
use_name = "red upholstery"
@@ -1056,7 +1056,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cotton
+/datum/material/cotton
name = "cotton"
display_name ="cotton"
icon_colour = "#FFFFFF"
@@ -1067,7 +1067,7 @@ var/list/name_to_material
conductive = 0
// This all needs to be OOP'd and use inheritence if its ever used in the future.
-/material/cloth_teal
+/datum/material/cloth_teal
name = "teal"
display_name ="teal"
use_name = "teal cloth"
@@ -1078,7 +1078,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_black
+/datum/material/cloth_black
name = "black"
display_name = "black"
use_name = "black cloth"
@@ -1089,7 +1089,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_green
+/datum/material/cloth_green
name = "green"
display_name = "green"
use_name = "green cloth"
@@ -1100,7 +1100,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_puple
+/datum/material/cloth_puple
name = "purple"
display_name = "purple"
use_name = "purple cloth"
@@ -1111,7 +1111,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_blue
+/datum/material/cloth_blue
name = "blue"
display_name = "blue"
use_name = "blue cloth"
@@ -1122,7 +1122,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_beige
+/datum/material/cloth_beige
name = "beige"
display_name = "beige"
use_name = "beige cloth"
@@ -1133,7 +1133,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_lime
+/datum/material/cloth_lime
name = "lime"
display_name = "lime"
use_name = "lime cloth"
@@ -1144,7 +1144,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_yellow
+/datum/material/cloth_yellow
name = "yellow"
display_name = "yellow"
use_name = "yellow cloth"
@@ -1155,7 +1155,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/cloth_orange
+/datum/material/cloth_orange
name = "orange"
display_name = "orange"
use_name = "orange cloth"
@@ -1166,7 +1166,7 @@ var/list/name_to_material
protectiveness = 1 // 4%
conductive = 0
-/material/toy_foam
+/datum/material/toy_foam
name = "foam"
display_name = "foam"
use_name = "foam"
diff --git a/code/modules/materials/materials_vr.dm b/code/modules/materials/materials_vr.dm
index 6fd104fb3f..460869d32f 100644
--- a/code/modules/materials/materials_vr.dm
+++ b/code/modules/materials/materials_vr.dm
@@ -1,4 +1,4 @@
-/material/flesh
+/datum/material/flesh
name = "flesh"
display_name = "chunk of flesh"
icon_colour = "#dd90aa"
@@ -10,7 +10,7 @@
hardness = 500
weight = 500
-/material/fluff //This is to allow for 2 handed weapons that don't want to have a prefix.
+/datum/material/fluff //This is to allow for 2 handed weapons that don't want to have a prefix.
name = " "
display_name = ""
icon_colour = "#000000"
@@ -19,19 +19,19 @@
hardness = 60
weight = 20 //Strong as iron.
-/material/darkglass
+/datum/material/darkglass
name = "darkglass"
display_name = "darkglass"
icon_base = "darkglass"
icon_colour = "#FFFFFF"
-/material/fancyblack
+/datum/material/fancyblack
name = "fancyblack"
display_name = "fancyblack"
icon_base = "fancyblack"
icon_colour = "#FFFFFF"
-/material/glass/titaniumglass
+/datum/material/glass/titaniumglass
name = MAT_TITANIUMGLASS
display_name = "titanium glass"
stack_type = /obj/item/stack/material/glass/titanium
@@ -48,7 +48,7 @@
rod_product = /obj/item/stack/material/glass/titanium
composite_material = list(MAT_TITANIUM = SHEET_MATERIAL_AMOUNT, "glass" = SHEET_MATERIAL_AMOUNT)
-/material/plastitanium
+/datum/material/plastitanium
name = MAT_PLASTITANIUM
stack_type = /obj/item/stack/material/plastitanium
integrity = 600
@@ -65,7 +65,7 @@
composite_material = list(MAT_TITANIUM = SHEET_MATERIAL_AMOUNT, MAT_PLASTEEL = SHEET_MATERIAL_AMOUNT)
supply_conversion_value = 8
-/material/plastitanium/hull
+/datum/material/plastitanium/hull
name = MAT_PLASTITANIUMHULL
stack_type = /obj/item/stack/material/plastitanium/hull
icon_base = "hull"
@@ -73,10 +73,10 @@
icon_colour = "#585658"
explosion_resistance = 50
-/material/plastitanium/hull/place_sheet(var/turf/target) //Deconstructed into normal plasteel sheets.
+/datum/material/plastitanium/hull/place_sheet(var/turf/target) //Deconstructed into normal plasteel sheets.
new /obj/item/stack/material/plastitanium(target)
-/material/glass/plastaniumglass
+/datum/material/glass/plastaniumglass
name = MAT_PLASTITANIUMGLASS
display_name = "plas-titanium glass"
stack_type = /obj/item/stack/material/glass/plastitanium
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index 93c711b6be..32d47681c3 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -275,7 +275,7 @@
var/can_make = CLAMP(ores_stored[metal],0,sheets_per_tick-sheets)
if(can_make%2>0) can_make--
- var/material/M = get_material_by_name(O.compresses_to)
+ var/datum/material/M = get_material_by_name(O.compresses_to)
if(!istype(M) || !can_make || ores_stored[metal] < 1)
continue
@@ -289,7 +289,7 @@
var/can_make = CLAMP(ores_stored[metal],0,sheets_per_tick-sheets)
- var/material/M = get_material_by_name(O.smelts_to)
+ var/datum/material/M = get_material_by_name(O.smelts_to)
if(!istype(M) || !can_make || ores_stored[metal] < 1)
continue
diff --git a/code/modules/multiz/ladder_assembly_vr.dm b/code/modules/multiz/ladder_assembly_vr.dm
index e46bdca799..4decbdd47d 100644
--- a/code/modules/multiz/ladder_assembly_vr.dm
+++ b/code/modules/multiz/ladder_assembly_vr.dm
@@ -125,7 +125,7 @@
qdel(above)
// Make them constructable in hand
-/material/steel/generate_recipes()
+/datum/material/steel/generate_recipes()
..()
recipes += new/datum/stack_recipe("ladder assembly", /obj/structure/ladder_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1)
diff --git a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm
index 73543ead92..740ef842c2 100644
--- a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm
+++ b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm
@@ -19,7 +19,7 @@
/obj/item/weapon/fuel_assembly/Initialize()
. = ..()
- var/material/material = get_material_by_name(fuel_type)
+ var/datum/material/material = get_material_by_name(fuel_type)
if(istype(material))
name = "[material.use_name] fuel rod assembly"
desc = "A fuel rod for a fusion reactor. This one is made from [material.use_name]."
diff --git a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm
index d38fd76e86..71dcc7684f 100644
--- a/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm
+++ b/code/modules/power/fusion/fuel_assembly/fuel_compressor.dm
@@ -49,7 +49,7 @@
if(istype(thing, /obj/item/stack/material))
var/obj/item/stack/material/M = thing
- var/material/mat = M.get_material()
+ var/datum/material/mat = M.get_material()
if(!mat.is_fusion_fuel)
to_chat(user, "It would be pointless to make a fuel rod out of [mat.use_name].")
return
diff --git a/code/modules/projectiles/broken.dm b/code/modules/projectiles/broken.dm
index a63f685ba1..15f63f4c54 100644
--- a/code/modules/projectiles/broken.dm
+++ b/code/modules/projectiles/broken.dm
@@ -37,7 +37,7 @@
var/res_name = ""
if(ispath(res,/obj/item/stack/material))
var/obj/item/stack/material/mat_stack = res
- var/material/mat = get_material_by_name("[initial(mat_stack.default_type)]")
+ var/datum/material/mat = get_material_by_name("[initial(mat_stack.default_type)]")
if(material_needs[resource]>1)
res_name = "[mat.use_name] [mat.sheet_plural_name]"
else
diff --git a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
index 7745c9c623..8476e28bee 100644
--- a/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
+++ b/code/modules/projectiles/guns/magnetic/magnetic_construction.dm
@@ -11,7 +11,7 @@
if(istype(thing, /obj/item/stack/material) && construction_stage == 1)
var/obj/item/stack/material/reinforcing = thing
- var/material/reinforcing_with = reinforcing.get_material()
+ var/datum/material/reinforcing_with = reinforcing.get_material()
if(reinforcing_with.name == DEFAULT_WALL_MATERIAL) // Steel
if(reinforcing.get_amount() < 5)
to_chat(user, "You need at least 5 [reinforcing.singular_name]\s for this task.")
diff --git a/code/modules/radiation/radiation.dm b/code/modules/radiation/radiation.dm
index c107390094..cb701027d8 100644
--- a/code/modules/radiation/radiation.dm
+++ b/code/modules/radiation/radiation.dm
@@ -36,7 +36,7 @@
cached_rad_resistance += O.rad_resistance
else if(O.density) //So open doors don't get counted
- var/material/M = O.get_material()
+ var/datum/material/M = O.get_material()
if(!M) continue
cached_rad_resistance += (M.weight + M.radiation_resistance) / config.radiation_material_resistance_divisor
// Looks like storing the contents length is meant to be a basic check if the cache is stale due to items enter/exiting. Better than nothing so I'm leaving it as is. ~Leshana
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 34b3510031..d12441c8fe 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -226,7 +226,7 @@
var/recursive = amount == -1 ? 1 : 0
material = lowertext(material)
var/obj/item/stack/material/mattype
- var/material/MAT = get_material_by_name(material)
+ var/datum/material/MAT = get_material_by_name(material)
if(!MAT)
return
diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm
index 5f58c50f3d..e317c665d0 100644
--- a/code/modules/research/rdmachines.dm
+++ b/code/modules/research/rdmachines.dm
@@ -18,7 +18,7 @@
return
/obj/machinery/r_n_d/proc/getMaterialType(var/name)
- var/material/M = get_material_by_name(name)
+ var/datum/material/M = get_material_by_name(name)
if(M && M.stack_type)
return M.stack_type
return null
diff --git a/code/modules/tables/debug.dm b/code/modules/tables/debug.dm
index d1b7a968a9..688758cace 100644
--- a/code/modules/tables/debug.dm
+++ b/code/modules/tables/debug.dm
@@ -7,7 +7,7 @@
material = get_material_by_name("debugium")
..()
-/material/debug
+/datum/material/debug
name = "debugium"
stack_type = /obj/item/stack/material/debug
icon_base = "debug"
diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm
index 2857d022a9..32aca8f090 100644
--- a/code/modules/tables/tables.dm
+++ b/code/modules/tables/tables.dm
@@ -20,8 +20,8 @@ var/list/table_icon_cache = list()
var/can_plate = 1
var/manipulating = 0
- var/material/material = null
- var/material/reinforced = null
+ var/datum/material/material = null
+ var/datum/material/reinforced = null
// Gambling tables. I'd prefer reinforced with carpet/felt/cloth/whatever, but AFAIK it's either harder or impossible to get /obj/item/stack/material of those.
// Convert if/when you can easily get stacks of these.
@@ -237,7 +237,7 @@ var/list/table_icon_cache = list()
// Returns the material to set the table to.
/obj/structure/table/proc/common_material_add(obj/item/stack/material/S, mob/user, verb) // Verb is actually verb without 'e' or 'ing', which is added. Works for 'plate'/'plating' and 'reinforce'/'reinforcing'.
- var/material/M = S.get_material()
+ var/datum/material/M = S.get_material()
if(!istype(M))
to_chat(user, "You cannot [verb]e \the [src] with \the [S].")
return null
@@ -253,7 +253,7 @@ var/list/table_icon_cache = list()
return M
// Returns the material to set the table to.
-/obj/structure/table/proc/common_material_remove(mob/user, material/M, delay, what, type_holding, sound)
+/obj/structure/table/proc/common_material_remove(mob/user, datum/material/M, delay, what, type_holding, sound)
if(!M.stack_type)
to_chat(user, "You are unable to remove the [what] from this [src]!")
return M
@@ -322,7 +322,7 @@ var/list/table_icon_cache = list()
if(full_return || prob(20))
new /obj/item/stack/material/steel(src.loc)
else
- var/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
+ var/datum/material/M = get_material_by_name(DEFAULT_WALL_MATERIAL)
S = M.place_shard(loc)
if(S) shards += S
qdel(src)
diff --git a/code/modules/vehicles/boat.dm b/code/modules/vehicles/boat.dm
index ea17e29678..170ad4aa81 100644
--- a/code/modules/vehicles/boat.dm
+++ b/code/modules/vehicles/boat.dm
@@ -10,7 +10,7 @@
move_delay = 3 // Rather slow, but still faster than swimming, and won't get you wet.
max_buckled_mobs = 2
anchored = FALSE
- var/material/material = null
+ var/datum/material/material = null
var/riding_datum_type = /datum/riding/boat/small
/obj/vehicle/boat/sifwood/New(newloc, material_name)
@@ -43,7 +43,7 @@
icon_state = "oar"
item_state = "oar"
force = 12
- var/material/material = null
+ var/datum/material/material = null
/obj/item/weapon/oar/sifwood/New(newloc, material_name)
..(newloc, MAT_SIFWOOD)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 4d3e7922e8..a35fa5bf1b 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -717,7 +717,7 @@
return
var/list/nom = null
- var/material/M = null
+ var/datum/material/M = null
if(istype(I, /obj/item/weapon/ore)) //Raw unrefined ore. Some things are just better untempered!
var/obj/item/weapon/ore/O = I
//List in list, define by material property of ore in code/mining/modules/ore.dm.
diff --git a/code/unit_tests/research_tests.dm b/code/unit_tests/research_tests.dm
index 24d307c5e6..9d0174cabe 100644
--- a/code/unit_tests/research_tests.dm
+++ b/code/unit_tests/research_tests.dm
@@ -54,7 +54,7 @@
design = new design_type() // Unfortunately we have to actually instantiate to get a list.
for(var/material_name in design.materials)
- var/material/material = get_material_by_name(material_name)
+ var/datum/material/material = get_material_by_name(material_name)
if(!material)
log_unit_test("The entry [design_type] has invalid material type [material_name]")
number_of_issues++