mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-31 12:01:47 +00:00
* Initial work * more * ass * wsedfwedff * asss * test * stuff * fuck * sss a * kms * asdadwedwdfwefwef * start * test * dwwdew * ewefwfef * Redemption machine (#8) * Redemption machine * Removes debug messages * changes * fuckmyshitup * coin mint works with new material shenanigans (#10) * Auto stash before merge of "materials" and "origin/materials" * woops * furnace (#11) * autolathe manufacturing of toolboxes * eggs in a basket * some small changes * matcolors * documentation * more documentation and effects * done * Color man bad (#12) * fixes designs * ass * more fixes * fuck me * firestacks adder * epic fixes * fixes designs * DONE DIDDILY DOO * removes category macro * ch-ch-ch-changes * fixes some stuff * Fixes display of ore values (#9) * Redemption machine * Removes debug messages * Re-adds value display * Replaces the fire stacking component with an element instead (#13) * fixes examine * fixes ligma bugs * double ligma boofus * fix * misses some defines * fixes ORM * Update code/datums/components/material_container.dm Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com> * fixes * Makes glass objects weaker (#14) * Makes glass objects weaker * uses correct proc * fixes shit * honk honk * better * oh shit oh fuck * fixes * fuck ORMs * fixes the biogen * documentation * ass (#15) * component * changes * ass * ass * doc * Auto stash before merge of "materials-plasmacomponent" and "origin/materials-plasmacomponent" * fixes rounding * fixed
28 lines
1.2 KiB
Plaintext
28 lines
1.2 KiB
Plaintext
/*! 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)
|