mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 14:08:31 +01:00
Fixes smartfridges once and for all.
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user