diff --git a/code/modules/mining/machine_input_output_plates.dm b/code/modules/mining/machine_input_output_plates.dm index 5b6c5077a0e..89039e8f447 100644 --- a/code/modules/mining/machine_input_output_plates.dm +++ b/code/modules/mining/machine_input_output_plates.dm @@ -16,4 +16,13 @@ density = 0 anchored = 1.0 New() - icon_state = "blank" \ No newline at end of file + icon_state = "blank" + +/obj/machinery/mineral/proc/unload_mineral(var/atom/movable/S) + //S.loc = loc + var/D = turn(dir,180) + world << "D is [D]" + var/turf/T = get_step(src,D) + world << "Turf [T] at [T.x], [T.y], [T.z]" + if(T) + S.loc = T.loc \ No newline at end of file diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index c85a1d9533b..a7232d74705 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -178,9 +178,7 @@ 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 + anchored = 1 var/obj/machinery/mineral/CONSOLE = null var/ore_gold = 0; var/ore_silver = 0; @@ -201,208 +199,200 @@ 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 + 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--; + generate_mineral("/obj/item/stack/sheet/glass") else on = 0 - break - break + 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--; + generate_mineral("/obj/item/stack/sheet/rglass") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/gold") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/silver") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/diamond") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/plasma") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/uranium") + 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--; + generate_mineral("/obj/item/stack/sheet/metal") + 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--; + generate_mineral("/obj/item/stack/sheet/plasteel") + 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--; + generate_mineral("/obj/item/stack/sheet/mineral/clown") + 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 + generate_mineral("/obj/item/stack/sheet/mineral/adamantine") + 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 + generate_mineral("/obj/item/stack/sheet/mineral/mythril") + 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-- + generate_mineral("/obj/item/weapon/ore/slag") + on = 0 else + on = 0 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 + else + break + var/turf/T = get_step(src,dir) + if(T) + var/n = 0 + for(var/obj/item/O in T) + n++ + if(n>10) break - return \ No newline at end of file + if (istype(O,/obj/item/weapon/ore/iron)) + ore_iron++; + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/glass)) + ore_glass++; + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/diamond)) + ore_diamond++; + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/plasma)) + ore_plasma++ + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/gold)) + ore_gold++ + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/silver)) + ore_silver++ + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/uranium)) + ore_uranium++ + O.loc = null + continue + if (istype(O,/obj/item/weapon/ore/clown)) + ore_clown++ + O.loc = null + continue + unload_mineral(O) + + +/obj/machinery/mineral/processing_unit/proc/generate_mineral(var/S) + var/P = text2path(S) + var/O = new P(src) + unload_mineral(O) \ No newline at end of file diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 15502d6057b..570b547866c 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -47,8 +47,7 @@ var/obj/item/stack/sheet/out = new inp.type() out.amount = inp.amount inp.amount = 0 - out.loc = machine.output.loc - + machine.unload_mineral(out) src.updateUsrDialog() return @@ -66,30 +65,10 @@ var/obj/machinery/mineral/stacking_unit_console/CONSOLE var/stk_types = list() var/stk_amt = list() - var/obj/machinery/mineral/input = null - var/obj/machinery/mineral/output = null var/stack_list[0] //Key: Type. Value: Instance of type. var/stack_amt = 50; //ammount to stack before releassing -/obj/machinery/mineral/stacking_machine/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 - if(!istype(output) || !istype(input)) - del(src) - return - processing_objects.Add(src) - return - return - /obj/machinery/mineral/stacking_machine/proc/process_sheet(obj/item/stack/sheet/inp) - if(!istype(inp)) //Non-sheets. Yuck. - return if(!(inp.type in stack_list)) //It's the first of this sheet added var/obj/item/stack/sheet/s = new inp.type(src,0) s.amount = 0 @@ -100,14 +79,11 @@ while(storage.amount > stack_amt) //Get rid of excessive stackage var/obj/item/stack/sheet/out = new inp.type() out.amount = stack_amt - out.loc = output.loc + unload_mineral(out) storage.amount -= stack_amt - /obj/machinery/mineral/stacking_machine/process() - var/obj/item/stack/sheet/O - while (locate(/obj/item/stack/sheet, input.loc)) - O = locate(/obj/item/stack/sheet, input.loc) - if(istype(O,/obj/item/stack/sheet)) - process_sheet(O) - return + var/turf/T = get_step(src, dir) + if(T) + for(var/obj/item/stack/sheet/S in T) + process_sheet(S) diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 05d785de4a4..5279c2636b8 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -7,40 +7,20 @@ icon_state = "unloader" density = 1 anchored = 1.0 - var/obj/machinery/mineral/input = null - var/obj/machinery/mineral/output = null - - -/obj/machinery/mineral/unloading_machine/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 - return - return /obj/machinery/mineral/unloading_machine/process() - if (src.output && src.input) - if (locate(/obj/structure/ore_box, input.loc)) - var/obj/structure/ore_box/BOX = locate(/obj/structure/ore_box, input.loc) - var/i = 0 - for (var/obj/item/weapon/ore/O in BOX.contents) - BOX.contents -= O - O.loc = output.loc - i++ - if (i>=10) + var/turf/T = get_step(src,dir) + if(T) + var/limit + for(var/obj/structure/ore_box/B in T) + for (var/obj/item/weapon/ore/O in B) + B.contents -= O + unload_mineral(O) + limit++ + if (limit>=10) return - if (locate(/obj/item, input.loc)) - var/obj/item/O - var/i - for (i = 0; i<10; i++) - O = locate(/obj/item, input.loc) - if (O) - O.loc = src.output.loc - else - return - return \ No newline at end of file + for(var/obj/item/I in T) + unload_mineral(I) + limit++ + if (limit>=10) + return \ No newline at end of file diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 9023bc9b1d6..ad0d4dd023c 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -7,8 +7,6 @@ icon_state = "coinpress0" density = 1 anchored = 1.0 - var/obj/machinery/mineral/input = null - var/obj/machinery/mineral/output = null var/amt_silver = 0 //amount of silver var/amt_gold = 0 //amount of gold var/amt_diamond = 0 @@ -23,63 +21,41 @@ var/chosen = "metal" //which material will be used to make coins var/coinsToProduce = 10 - -/obj/machinery/mineral/mint/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/mint/process() - if ( src.input) - var/obj/item/stack/sheet/O - O = locate(/obj/item/stack/sheet, input.loc) - if(O) + var/turf/T = get_step(src,dir) + if(T) + for(var/obj/item/stack/sheet/O in T) if (istype(O,/obj/item/stack/sheet/mineral/gold)) amt_gold += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/silver)) amt_silver += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/diamond)) amt_diamond += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/plasma)) amt_plasma += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/uranium)) amt_uranium += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/metal)) amt_iron += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/clown)) amt_clown += 100 * O.amount - del(O) + O.loc = null if (istype(O,/obj/item/stack/sheet/mineral/adamantine)) amt_adamantine += 100 * O.amount - del(O) //Commented out for now. -Durandan + O.loc = null //Commented out for now. -Durandan + return /obj/machinery/mineral/mint/attack_hand(user as mob) //TODO: Adamantine coins! -Durandan var/dat = "Coin Press
" - if (!input) - dat += text("input connection status: ") - dat += text("NOT CONNECTED
") - if (!output) - dat += text("
output connection status: ") - dat += text("NOT CONNECTED
") - dat += text("
Gold inserted: [amt_gold] ") if (chosen == "gold") dat += text("chosen") @@ -149,121 +125,94 @@ coinsToProduce = Clamp(coinsToProduce + text2num(href_list["chooseAmt"]), 0, 1000) if(href_list["makeCoins"]) var/temp_coins = coinsToProduce - if (src.output) - processing = 1; - icon_state = "coinpress1" - var/obj/item/weapon/moneybag/M - switch(chosen) - if("metal") - while(amt_iron > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new/obj/item/weapon/coin/iron(M) - amt_iron -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("gold") - while(amt_gold > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/gold(M) - amt_gold -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("silver") - while(amt_silver > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/silver(M) - amt_silver -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("diamond") - while(amt_diamond > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/diamond(M) - amt_diamond -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("plasma") - while(amt_plasma > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/plasma(M) - amt_plasma -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("uranium") - while(amt_uranium > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/uranium(M) - amt_uranium -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5) - if("clown") - while(amt_clown > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/clown(M) - amt_clown -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("adamantine") - while(amt_adamantine > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/adamantine(M) - amt_adamantine -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - if("mythril") - while(amt_adamantine > 0 && coinsToProduce > 0) - if (locate(/obj/item/weapon/moneybag,output.loc)) - M = locate(/obj/item/weapon/moneybag,output.loc) - else - M = new/obj/item/weapon/moneybag(output.loc) - new /obj/item/weapon/coin/mythril(M) - amt_mythril -= 20 - coinsToProduce-- - newCoins++ - src.updateUsrDialog() - sleep(5); - icon_state = "coinpress0" - processing = 0; - coinsToProduce = temp_coins + processing = 1; + icon_state = "coinpress1" + switch(chosen) + if("metal") + while(amt_iron > 0 && coinsToProduce > 0) + create_coins("obj/item/weapon/coin/iron") + amt_iron -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("gold") + while(amt_gold > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/gold") + amt_gold -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("silver") + while(amt_silver > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/silver") + amt_silver -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("diamond") + while(amt_diamond > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/diamond") + amt_diamond -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("plasma") + while(amt_plasma > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/plasma") + amt_plasma -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("uranium") + while(amt_uranium > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/uranium") + amt_uranium -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5) + if("clown") + while(amt_clown > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/clown") + amt_clown -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("adamantine") + while(amt_adamantine > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/adamantine") + amt_adamantine -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + if("mythril") + while(amt_adamantine > 0 && coinsToProduce > 0) + create_coins("/obj/item/weapon/coin/mythril") + amt_mythril -= 20 + coinsToProduce-- + newCoins++ + src.updateUsrDialog() + sleep(5); + icon_state = "coinpress0" + processing = 0; + coinsToProduce = temp_coins src.updateUsrDialog() - return \ No newline at end of file + return + +/obj/machinery/mineral/mint/proc/create_coins(var/S) + var/turf/T = get_step(src, turn(dir,180)) + if(T) + var/P = text2path(S) + var/obj/item/O = new P(src) + var/obj/item/weapon/moneybag/M = locate(/obj/item/weapon/moneybag/, T) + if(!M) + M = new /obj/item/weapon/moneybag(src) + unload_mineral(M) + O.loc = M