From fb67f68175861733f864ec505753b263cb2fe562 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 7 Jan 2023 22:25:21 +0100 Subject: [PATCH] [MIRROR] Fixes vendor showing weird glass icons [MDB IGNORE] (#18242) * Fixes vendor showing weird glass icons (#71929) ## About The Pull Request Fixes vendor showing weird glass icons ## Why It's Good For The Game bug fix good ## Changelog :cl: fix: vendor no longer shows glass icons in a specific condition /:cl: * Fixes vendor showing weird glass icons * removes GLOB.vending_products * removes glob * changes asset file * Nothing like using CI to test for asset runtimes Co-authored-by: EvilDragonfiend <87972842+EvilDragonfiend@users.noreply.github.com> Co-authored-by: Funce --- code/modules/asset_cache/assets/vending.dm | 11 ++++++++++- code/modules/vending/_vending.dm | 2 -- .../assault_operatives/code/vending_machine.dm | 1 - .../modules/modular_vending/code/vending.dm | 12 +++++++++--- 4 files changed, 19 insertions(+), 7 deletions(-) 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)