/**********************Mineral processing unit console**************************/ /obj/machinery/mineral/processing_unit_console name = "production machine console" icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" density = 1 anchored = 1 var/obj/machinery/mineral/processing_unit/machine = null var/machinedir = EAST /obj/machinery/mineral/processing_unit_console/New() ..() spawn(7) src.machine = locate(/obj/machinery/mineral/processing_unit, get_step(src, machinedir)) if (machine) machine.CONSOLE = src else del(src) /obj/machinery/mineral/processing_unit_console/attack_hand(user as mob) var/dat = "Smelter control console

" //iron if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_adamantine) if(machine.ore_iron) if (machine.selected_iron==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Iron: [machine.ore_iron]
") else machine.selected_iron = 0 //sand - glass if(machine.ore_glass) if (machine.selected_glass==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Sand: [machine.ore_glass]
") else machine.selected_glass = 0 //plasma if(machine.ore_plasma) if (machine.selected_plasma==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Plasma: [machine.ore_plasma]
") else machine.selected_plasma = 0 //uranium if(machine.ore_uranium) if (machine.selected_uranium==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Uranium: [machine.ore_uranium]
") else machine.selected_uranium = 0 //gold if(machine.ore_gold) if (machine.selected_gold==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Gold: [machine.ore_gold]
") else machine.selected_gold = 0 //silver if(machine.ore_silver) if (machine.selected_silver==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Silver: [machine.ore_silver]
") else machine.selected_silver = 0 //diamond if(machine.ore_diamond) if (machine.selected_diamond==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Diamond: [machine.ore_diamond]
") else machine.selected_diamond = 0 //bananium if(machine.ore_clown) if (machine.selected_clown==1) dat += text("Smelting ") else dat += text("Not smelting ") dat += text("Bananium: [machine.ore_clown]
") else machine.selected_clown = 0 //On or off dat += text("Machine is currently ") if (machine.on==1) dat += text("On ") else dat += text("Off ") else dat+="---No Materials Loaded---" user << browse("[dat]", "window=console_processing_unit") /obj/machinery/mineral/processing_unit_console/Topic(href, href_list) if(..()) return usr.set_machine(src) src.add_fingerprint(usr) if(href_list["sel_iron"]) if (href_list["sel_iron"] == "yes") machine.selected_iron = 1 else machine.selected_iron = 0 if(href_list["sel_glass"]) if (href_list["sel_glass"] == "yes") machine.selected_glass = 1 else machine.selected_glass = 0 if(href_list["sel_plasma"]) if (href_list["sel_plasma"] == "yes") machine.selected_plasma = 1 else machine.selected_plasma = 0 if(href_list["sel_uranium"]) if (href_list["sel_uranium"] == "yes") machine.selected_uranium = 1 else machine.selected_uranium = 0 if(href_list["sel_gold"]) if (href_list["sel_gold"] == "yes") machine.selected_gold = 1 else machine.selected_gold = 0 if(href_list["sel_silver"]) if (href_list["sel_silver"] == "yes") machine.selected_silver = 1 else machine.selected_silver = 0 if(href_list["sel_diamond"]) if (href_list["sel_diamond"] == "yes") machine.selected_diamond = 1 else machine.selected_diamond = 0 if(href_list["sel_clown"]) if (href_list["sel_clown"] == "yes") machine.selected_clown = 1 else machine.selected_clown = 0 if(href_list["set_on"]) if (href_list["set_on"] == "on") machine.on = 1 else machine.on = 0 src.updateUsrDialog() return /**********************Mineral processing unit**************************/ /obj/machinery/mineral/processing_unit name = "furnace" icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "furnace" density = 1 anchored = 1.0 var/obj/machinery/mineral/input = null var/obj/machinery/mineral/output = null var/obj/machinery/mineral/CONSOLE = null var/ore_gold = 0; var/ore_silver = 0; var/ore_diamond = 0; var/ore_glass = 0; var/ore_plasma = 0; var/ore_uranium = 0; var/ore_iron = 0; var/ore_clown = 0; var/ore_adamantine = 0; var/selected_gold = 0 var/selected_silver = 0 var/selected_diamond = 0 var/selected_glass = 0 var/selected_plasma = 0 var/selected_uranium = 0 var/selected_iron = 0 var/selected_clown = 0 var/on = 0 //0 = off, 1 =... oh you know! /obj/machinery/mineral/processing_unit/New() ..() spawn( 5 ) for (var/dir in cardinal) src.input = locate(/obj/machinery/mineral/input, get_step(src, dir)) if(src.input) break for (var/dir in cardinal) src.output = locate(/obj/machinery/mineral/output, get_step(src, dir)) if(src.output) break processing_objects.Add(src) return return /obj/machinery/mineral/processing_unit/process() if (src.output && src.input) var/i for (i = 0; i < 10; i++) if (on) if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_glass > 0) ore_glass--; new /obj/item/stack/sheet/glass(output.loc) else on = 0 continue if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) if (ore_glass > 0 && ore_iron > 0) ore_glass--; ore_iron--; new /obj/item/stack/sheet/rglass(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_gold > 0) ore_gold--; new /obj/item/stack/sheet/mineral/gold(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_silver > 0) ore_silver--; new /obj/item/stack/sheet/mineral/silver(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_diamond > 0) ore_diamond--; new /obj/item/stack/sheet/mineral/diamond(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_plasma > 0) ore_plasma--; new /obj/item/stack/sheet/mineral/plasma(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) if (ore_uranium > 0) ore_uranium--; new /obj/item/stack/sheet/mineral/uranium(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) if (ore_iron > 0) ore_iron--; new /obj/item/stack/sheet/metal(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) if (ore_iron > 0 && ore_plasma > 0) ore_iron--; ore_plasma--; new /obj/item/stack/sheet/plasteel(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1) if (ore_clown > 0) ore_clown--; new /obj/item/stack/sheet/mineral/clown(output.loc) else on = 0 continue //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) if (ore_uranium >= 2 && ore_diamond >= 1) ore_uranium -= 2 ore_diamond -= 1 new /obj/item/stack/sheet/mineral/adamantine(output.loc) else on = 0 continue if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) if (ore_silver >= 1 && ore_plasma >= 3) ore_silver -= 1 ore_plasma -= 3 new /obj/item/stack/sheet/mineral/mythril(output.loc) else on = 0 continue*/ //if a non valid combination is selected var/b = 1 //this part checks if all required ores are available if (!(selected_gold || selected_silver ||selected_diamond || selected_uranium | selected_plasma || selected_iron || selected_iron)) b = 0 if (selected_gold == 1) if (ore_gold <= 0) b = 0 if (selected_silver == 1) if (ore_silver <= 0) b = 0 if (selected_diamond == 1) if (ore_diamond <= 0) b = 0 if (selected_uranium == 1) if (ore_uranium <= 0) b = 0 if (selected_plasma == 1) if (ore_plasma <= 0) b = 0 if (selected_iron == 1) if (ore_iron <= 0) b = 0 if (selected_glass == 1) if (ore_glass <= 0) b = 0 if (selected_clown == 1) if (ore_clown <= 0) b = 0 if (b) //if they are, deduct one from each, produce slag and shut the machine off if (selected_gold == 1) ore_gold-- if (selected_silver == 1) ore_silver-- if (selected_diamond == 1) ore_diamond-- if (selected_uranium == 1) ore_uranium-- if (selected_plasma == 1) ore_plasma-- if (selected_iron == 1) ore_iron-- if (selected_clown == 1) ore_clown-- new /obj/item/weapon/ore/slag(output.loc) on = 0 else on = 0 break break else break for (i = 0; i < 10; i++) var/obj/item/O O = locate(/obj/item, input.loc) if (O) if (istype(O,/obj/item/weapon/ore/iron)) ore_iron++; del(O) continue if (istype(O,/obj/item/weapon/ore/glass)) ore_glass++; del(O) continue if (istype(O,/obj/item/weapon/ore/diamond)) ore_diamond++; del(O) continue if (istype(O,/obj/item/weapon/ore/plasma)) ore_plasma++ del(O) continue if (istype(O,/obj/item/weapon/ore/gold)) ore_gold++ del(O) continue if (istype(O,/obj/item/weapon/ore/silver)) ore_silver++ del(O) continue if (istype(O,/obj/item/weapon/ore/uranium)) ore_uranium++ del(O) continue if (istype(O,/obj/item/weapon/ore/clown)) ore_clown++ del(O) continue O.loc = src.output.loc else break return ///////////////////////////////////////////////// // Recycling Furnace /obj/machinery/mineral/processing_unit/recycle name = "recycling furnace" var/gold = 0; var/silver = 0; var/diamond = 0; var/glass = 0; var/plasma = 0; var/uranium = 0; var/iron = 0; var/clown = 0; var/adamantine = 0; var/list/ALLOWED_TYPES=list( /obj/item, /obj/machinery/portable_atmospherics/canister, ) /obj/machinery/mineral/processing_unit/recycle/process() if (src.output && src.input) var/i //if(!(stat & (BROKEN|UNPOWERED))) for (i = 0; i < 10; i++) if (glass >= 1) glass--; new /obj/item/stack/sheet/glass(output.loc) if (gold >= 1) gold--; new /obj/item/stack/sheet/mineral/gold(output.loc) if (silver >= 1) silver--; new /obj/item/stack/sheet/mineral/silver(output.loc) if (diamond >= 1) diamond--; new /obj/item/stack/sheet/mineral/diamond(output.loc) if (plasma >= 1) plasma--; new /obj/item/stack/sheet/mineral/plasma(output.loc) if (uranium >= 1) uranium--; new /obj/item/stack/sheet/mineral/uranium(output.loc) if (iron >= 1) iron--; new /obj/item/stack/sheet/metal(output.loc) if (clown >= 1) clown--; new /obj/item/stack/sheet/mineral/clown(output.loc) for (i = 0; i < 10; i++) var/obj/O for(O in input.loc.contents) var/allowed=0 for(var/T in ALLOWED_TYPES) if(istype(O,T)) allowed=1 break if(O && allowed) if (O.recycle(src)) del(O) else O.loc = src.output.loc /obj/machinery/mineral/processing_unit/recycle/attack_ai(var/mob/user as mob) return src.attack_hand(user) /obj/machinery/mineral/processing_unit/recycle/attack_paw(var/mob/user as mob) return src.attack_hand(user) /obj/machinery/mineral/processing_unit/recycle/attack_hand(var/mob/user as mob) return src.interact(user) /obj/machinery/mineral/processing_unit/recycle/interact(var/mob/user as mob) user.set_machine(src) var/found=0 var/html = {" Recyk Processor

Recyk PRO-1000

Current Status: (Close)

(Units are sheets)

"} //"[valve_open?("Open"):("Closed")]
user << browse(html, "window=recyk_furnace;size=600x300") onclose(user, "canister") return /obj/machinery/mineral/processing_unit/recycle/Topic(href, href_list) //Do not use "if(..()) return" here, canisters will stop working in unpowered areas like space or on the derelict. if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr)) if(1)//if(!isAdminGhost(usr)) usr << browse(null, "window=recyk_furnace") onclose(usr, "recyk_furnace") return