Materials subsystem, material defines instead of strings, structure materials. (#8447)

The shitcode crusade begins.
This commit is contained in:
Matt Atlas
2020-03-18 20:19:11 +01:00
committed by GitHub
parent d952493ca0
commit 82437acd43
127 changed files with 687 additions and 646 deletions
@@ -747,7 +747,6 @@
SearchVar(swapmaps_initialized)
SearchVar(swapmaps_loaded)
SearchVar(swapmaps_byname)
SearchVar(name_to_material)
SearchVar(minevendor_list)
SearchVar(total_extraction_beacons)
SearchVar(ore_data)
@@ -21,9 +21,6 @@
global_hud.holomap
)
// This is kinda important. Set up details of what the hell things are made of.
populate_material_list()
// Create autolathe recipes, as above.
populate_lathe_recipes()
+41
View File
@@ -0,0 +1,41 @@
var/datum/controller/subsystem/materials/SSmaterials
/datum/controller/subsystem/materials
name = "Materials"
init_order = SS_INIT_MISC_FIRST
flags = SS_NO_FIRE
var/list/materials
var/list/materials_by_name
/datum/controller/subsystem/materials/New()
NEW_SS_GLOBAL(SSmaterials)
/datum/controller/subsystem/materials/Initialize()
create_material_lists()
. = ..()
/datum/controller/subsystem/materials/proc/create_material_lists()
if(LAZYLEN(materials))
return
materials = list()
materials_by_name = list()
for(var/M in subtypesof(/material))
var/material/material = new M
if(material.name)
materials += material
materials_by_name[lowertext(material.name)] = material
/datum/controller/subsystem/materials/proc/get_material_by_name(var/M)
if(!materials_by_name)
create_material_lists()
. = materials_by_name[M]
if(!.)
log_debug("Material not found: [M].")
/datum/controller/subsystem/materials/proc/material_display_name(var/M)
var/material/material = get_material_by_name(M)
if(material)
return material.display_name