diff --git a/code/modules/asset_cache/assets/vending.dm b/code/modules/asset_cache/assets/vending.dm index e8b92e59392..e7d2fb9bc37 100644 --- a/code/modules/asset_cache/assets/vending.dm +++ b/code/modules/asset_cache/assets/vending.dm @@ -2,7 +2,16 @@ name = "vending" /datum/asset/spritesheet/vending/create_spritesheets() - for (var/k in GLOB.vending_products) + // initialising the list of items we need + var/target_items = list() + for(var/obj/machinery/vending/vendor as anything in typesof(/obj/machinery/vending)) + vendor = new vendor() // It seems `initial(list var)` has nothing. need to make a type. + for(var/each in list(vendor.products, vendor.premium, vendor.contraband)) + target_items |= each + qdel(vendor) + + // building icons for each item + for (var/k in target_items) var/atom/item = k if (!ispath(item, /atom)) continue diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index a9269066f73..3da67a8b601 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -329,7 +329,6 @@ if (dump_amount >= 16) return -GLOBAL_LIST_EMPTY(vending_products) /** * Build the inventory of the vending machine from it's product and record lists * @@ -357,7 +356,6 @@ GLOBAL_LIST_EMPTY(vending_products) var/obj/item/temp = typepath var/datum/data/vending_product/R = new /datum/data/vending_product() - GLOB.vending_products[typepath] = 1 R.name = initial(temp.name) R.product_path = typepath if(!start_empty) diff --git a/modular_skyrat/modules/assault_operatives/code/vending_machine.dm b/modular_skyrat/modules/assault_operatives/code/vending_machine.dm index aba44a800fa..c9da48b3281 100644 --- a/modular_skyrat/modules/assault_operatives/code/vending_machine.dm +++ b/modular_skyrat/modules/assault_operatives/code/vending_machine.dm @@ -64,7 +64,6 @@ var/atom/temp = typepath var/datum/data/vending_product/vending_product = new /datum/data/vending_product() - GLOB.vending_products[typepath] = 1 vending_product.name = initial(temp.name) vending_product.product_path = typepath if(!start_empty) diff --git a/modular_skyrat/modules/modular_vending/code/vending.dm b/modular_skyrat/modules/modular_vending/code/vending.dm index c6453ed31e9..772e0d01eec 100644 --- a/modular_skyrat/modules/modular_vending/code/vending.dm +++ b/modular_skyrat/modules/modular_vending/code/vending.dm @@ -12,7 +12,9 @@ /obj/machinery/vending/Initialize(mapload) if(skyrat_products) - products += skyrat_products + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in skyrat_products) + products[item_to_add] = skyrat_products[item_to_add] if(skyrat_product_categories) for(var/category in skyrat_product_categories) @@ -27,10 +29,14 @@ product_categories += category if(skyrat_premium) - premium += skyrat_premium + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in skyrat_premium) + premium[item_to_add] = skyrat_premium[item_to_add] if(skyrat_contraband) - contraband += skyrat_contraband + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in skyrat_contraband) + contraband[item_to_add] = skyrat_contraband[item_to_add] // Time to make clothes amounts consistent! for (var/obj/item/clothing/item in products)