mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
141 lines
2.8 KiB
Plaintext
141 lines
2.8 KiB
Plaintext
/datum/smelting_recipe
|
|
var/name=""
|
|
var/list/ingredients=list() // phazon=1, iron=1
|
|
var/yieldtype=null
|
|
|
|
// Note: Returns -1 if not enough ore!
|
|
/datum/smelting_recipe/proc/checkIngredients(var/obj/machinery/mineral/processing_unit/P)
|
|
var/sufficient_ore=1
|
|
var/matching_ingredient_count=0
|
|
for(var/ore_id in P.ore.storage)
|
|
var/datum/material/po=P.ore.getMaterial(ore_id)
|
|
var/required=(ore_id in ingredients)
|
|
var/selected=(ore_id in P.selected)
|
|
|
|
// Selected but not in ingredients
|
|
if(selected && !required)
|
|
return 0
|
|
|
|
// Unselected but in ingredients
|
|
if(!selected && required)
|
|
return 0
|
|
|
|
var/min_ore_required=ingredients[ore_id]
|
|
|
|
// Selected, in ingredients, but not enough in stock.
|
|
if(selected && required)
|
|
if(po.stored < min_ore_required)
|
|
sufficient_ore=0
|
|
continue
|
|
|
|
matching_ingredient_count++
|
|
|
|
if(!sufficient_ore)
|
|
return -1 // -1 means not enough ore. NOT A TYPO.
|
|
|
|
return matching_ingredient_count == ingredients.len
|
|
|
|
// RECIPES BEEP BOOP
|
|
/datum/smelting_recipe/glass
|
|
name="Glass"
|
|
ingredients=list(
|
|
"glass"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/glass
|
|
|
|
/datum/smelting_recipe/rglass
|
|
name="Reinforced Glass"
|
|
ingredients=list(
|
|
"glass"=1,
|
|
"iron"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/rglass
|
|
|
|
/datum/smelting_recipe/gold
|
|
name="Gold"
|
|
ingredients=list(
|
|
"gold"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/gold
|
|
|
|
/datum/smelting_recipe/silver
|
|
name="Silver"
|
|
ingredients=list(
|
|
"silver"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/silver
|
|
|
|
/datum/smelting_recipe/diamond
|
|
name="Diamond"
|
|
ingredients=list(
|
|
"diamond"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/diamond
|
|
|
|
/datum/smelting_recipe/plasma
|
|
name="Plasma"
|
|
ingredients=list(
|
|
"plasma"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/plasma
|
|
|
|
/datum/smelting_recipe/uranium
|
|
name="Uranium"
|
|
ingredients=list(
|
|
"uranium"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/uranium
|
|
|
|
/datum/smelting_recipe/metal
|
|
name="Metal"
|
|
ingredients=list(
|
|
"iron"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/metal
|
|
|
|
/datum/smelting_recipe/plasteel
|
|
name="Plasteel"
|
|
ingredients=list(
|
|
"iron"=1,
|
|
"plasma"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/plasteel
|
|
|
|
/datum/smelting_recipe/clown
|
|
name="Bananium"
|
|
ingredients=list(
|
|
"clown"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/clown
|
|
|
|
/datum/smelting_recipe/plasma_glass
|
|
name="Plasma Glass"
|
|
ingredients=list(
|
|
"plasma"=1,
|
|
"glass"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/glass/plasmaglass
|
|
|
|
/datum/smelting_recipe/plasma_rglass
|
|
name="Reinforced Plasma Glass"
|
|
ingredients=list(
|
|
"plasma"=1,
|
|
"glass"=1,
|
|
"iron"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/glass/plasmarglass
|
|
|
|
/datum/smelting_recipe/phazon
|
|
name="phazon"
|
|
ingredients=list(
|
|
"phazon"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/phazon
|
|
|
|
/datum/smelting_recipe/plastic
|
|
name="plastic"
|
|
ingredients=list(
|
|
"plastic"=1
|
|
)
|
|
yieldtype=/obj/item/stack/sheet/mineral/plastic
|