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