diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm index 2365b55154e..2937c9c0b9a 100644 --- a/code/game/machinery/vendors/vending.dm +++ b/code/game/machinery/vendors/vending.dm @@ -354,19 +354,18 @@ if(refill_canister && istype(I, refill_canister)) if(stat & (BROKEN|NOPOWER)) to_chat(user, "[src] does not respond.") - else - //if the panel is open we attempt to refill the machine - var/obj/item/vending_refill/canister = I - if(canister.get_part_rating() == 0) - to_chat(user, "[canister] is empty!") - else - // instantiate canister if needed - var/transferred = restock(canister) - if(transferred) - to_chat(user, "You loaded [transferred] items in [src].") - else - to_chat(user, "There's nothing to restock!") + return + + var/obj/item/vending_refill/canister = I + var/transferred = restock(canister) + if(!transferred && !canister.get_part_rating()) // It transferred no products and has no products left, thus it is empty + to_chat(user, "[canister] is empty!") + else if(transferred) // We transferred some items + to_chat(user, "You loaded [transferred] items in [src].") + else // Nothing transferred, parts are still left, nothing to restock! + to_chat(user, "There's nothing to restock!") return + if(item_slot_check(user, I)) insert_item(user, I) return diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index caebefc24fc..02681064795 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -16,7 +16,7 @@ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 70, ACID = 30) // Built automatically from the corresponding vending machine. - // If null, considered to be full. Otherwise, is list(/typepath = amount). + // If null, considered to be full upon being restocked. var/list/products var/list/contraband var/list/premium @@ -28,15 +28,17 @@ /obj/item/vending_refill/examine(mob/user) . = ..() var/num = get_part_rating() - if (num == INFINITY) + if(num == INFINITY) . += "It's sealed tight, completely full of supplies." - else if (num == 0) + else if(num == 0) . += "It's empty!" - else + else if(!isnull(num)) // If it's null, then the items haven't been properly added yet. . += "It can restock [num] item\s." /obj/item/vending_refill/get_part_rating() . = 0 + if(isnull(products) && isnull(contraband) && isnull(premium)) + return null for(var/key in products) . += products[key] for(var/key in contraband)