mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 04:51:32 +01:00
Materials subsystem, material defines instead of strings, structure materials. (#8447)
The shitcode crusade begins.
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user