Files
CHOMPStation2/code/modules/research/rdmachines.dm
MagmaRam 190a2bc70c Replaces [stack]/fifty atoms with atoms that spawn the normal stack
The stack/fifty objects were really buggy, this should fix all of that in one go.
2016-12-17 17:27:04 -06:00

65 lines
1.9 KiB
Plaintext

//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
/obj/machinery/r_n_d
name = "R&D Device"
icon = 'icons/obj/machines/research.dmi'
density = 1
anchored = 1
use_power = 1
var/busy = 0
var/obj/machinery/computer/rdconsole/linked_console
var/list/materials = list()
/obj/machinery/r_n_d/attack_hand(mob/user as mob)
return
/obj/machinery/r_n_d/proc/getMaterialType(var/name)
switch(name)
if(DEFAULT_WALL_MATERIAL)
return /obj/item/stack/material/steel
if("glass")
return /obj/item/stack/material/glass
if("gold")
return /obj/item/stack/material/gold
if("silver")
return /obj/item/stack/material/silver
if("phoron")
return /obj/item/stack/material/phoron
if("uranium")
return /obj/item/stack/material/uranium
if("diamond")
return /obj/item/stack/material/diamond
return null
/obj/machinery/r_n_d/proc/getMaterialName(var/type)
switch(type)
if(/obj/item/stack/material/steel)
return DEFAULT_WALL_MATERIAL
if(/obj/item/stack/material/glass)
return "glass"
if(/obj/item/stack/material/gold)
return "gold"
if(/obj/item/stack/material/silver)
return "silver"
if(/obj/item/stack/material/phoron)
return "phoron"
if(/obj/item/stack/material/uranium)
return "uranium"
if(/obj/item/stack/material/diamond)
return "diamond"
/obj/machinery/r_n_d/proc/eject(var/material, var/amount)
if(!(material in materials))
return
var/obj/item/stack/material/sheetType = getMaterialType(material)
var/perUnit = initial(sheetType.perunit)
var/eject = round(materials[material] / perUnit)
eject = amount == -1 ? eject : min(eject, amount)
if(eject < 1)
return
var/obj/item/stack/material/S = new sheetType(loc)
S.amount = eject
materials[material] -= eject * perUnit