Fixes smartfridges once and for all.

This commit is contained in:
MrStonedOne
2015-11-09 14:35:16 -08:00
parent 348e93cb62
commit 88eef20b69
@@ -16,7 +16,6 @@
var/max_n_of_items = 1500
var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off"
var/list/item_quants = list()
/obj/machinery/smartfridge/New()
..()
@@ -26,7 +25,6 @@
RefreshParts()
/obj/machinery/smartfridge/construction()
item_quants.Cut()
for(var/datum/A in contents)
qdel(A)
@@ -134,13 +132,6 @@
S.remove_from_storage(O,src)
O.loc = src
var/n ="\ref[O]"
if(item_quants[n])
item_quants[n]++
else
item_quants[n] = 1
sortList(item_quants)
/obj/machinery/smartfridge/attack_paw(mob/user)
return src.attack_hand(user)
@@ -165,24 +156,32 @@
if (contents.len == 0)
dat += "<font color = 'red'>No product loaded!</font>"
else
for (var/O in item_quants)
if(item_quants[O] > 0)
var/N = item_quants[O]
var/obj/item/item = locate(O)
var/obj/item/itemName = sanitize(item.name)
dat += "<FONT color = 'blue'><B>[capitalize(itemName)]</B>:"
dat += " [N] </font>"
dat += "<a href='byond://?src=\ref[src];vend=[O];amount=1'>Vend</A> "
if(N > 5)
dat += "(<a href='byond://?src=\ref[src];vend=[O];amount=5'>x5</A>)"
if(N > 10)
dat += "(<a href='byond://?src=\ref[src];vend=[O];amount=10'>x10</A>)"
if(N > 25)
dat += "(<a href='byond://?src=\ref[src];vend=[O];amount=25'>x25</A>)"
if(N > 1)
dat += "(<a href='?src=\ref[src];vend=\ref[O];amount=[N]'>All</A>)"
var/listofitems = list()
for (var/atom/movable/O in contents)
if (listofitems[O.name])
listofitems[O.name]++
else
listofitems[O.name] = 1
sortList(listofitems)
dat += "<br>"
for (var/O in listofitems)
if(listofitems[O] <= 0)
continue
var/N = listofitems[O]
var/itemName = url_encode(O)
dat += "<FONT color = 'blue'><B>[capitalize(O)]</B>:"
dat += " [N] </font>"
dat += "<a href='byond://?src=\ref[src];vend=[itemName];amount=1'>Vend</A> "
if(N > 5)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=5'>x5</A>)"
if(N > 10)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=10'>x10</A>)"
if(N > 25)
dat += "(<a href='byond://?src=\ref[src];vend=[itemName];amount=25'>x25</A>)"
if(N > 1)
dat += "(<a href='?src=\ref[src];vend=[itemName];amount=[N]'>All</A>)"
dat += "<br>"
dat += "</TT>"
user << browse("<HEAD><TITLE>[src] supplies</TITLE></HEAD><TT>[dat]</TT>", "window=smartfridge")
@@ -197,18 +196,14 @@
var/N = href_list["vend"]
var/amount = text2num(href_list["amount"])
if(item_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
return
item_quants[N] = max(item_quants[N] - amount, 0)
var/i = amount
for(var/obj/O in contents)
if(locate(N) == O)
if(i <= 0)
break
if(O.name == N)
O.loc = src.loc
i--
if(i <= 0)
break
updateUsrDialog()