From 860974ec9d7637a56e00ebf0c4960cc88ba44e28 Mon Sep 17 00:00:00 2001 From: Wildkins Date: Wed, 9 Dec 2020 04:10:15 -0500 Subject: [PATCH] Refactor vending spritesheets (again) (#10706) --- code/game/machinery/vending.dm | 10 +- code/game/machinery/vending_types.dm | 83 ++++++++++- code/modules/client/asset_cache.dm | 154 ++++++-------------- code/unit_tests/map_tests.dm | 25 ++++ code/unit_tests/object_tests.dm | 25 +++- html/changelogs/johnwildkins-vendingfix.yml | 6 + maps/aurora/aurora-1_centcomm.dmm | 71 ++------- maps/aurora/aurora-4_mainlevel.dmm | 9 +- maps/exodus/exodus-2_centcomm.dmm | 24 +-- maps/templates/backup/syndicate_base.dmm | 6 +- maps/templates/syndicate_base.dmm | 6 +- 11 files changed, 203 insertions(+), 216 deletions(-) create mode 100644 html/changelogs/johnwildkins-vendingfix.yml diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index b9c42aefb61..beda7abd3b2 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -143,17 +143,13 @@ src.ads_list += text2list(src.product_ads, ";") add_screen_overlay() - - src.build_inventory() + build_inventory() power_change() - if(mapload) - return INITIALIZE_HINT_LATELOAD + return INITIALIZE_HINT_LATELOAD /obj/machinery/vending/LateInitialize() - var/path = "/datum/asset/spritesheet/vending/" - path = path + ckey(replacetext("[type]", "/obj/machinery/vending/", "")) - v_asset = get_asset_datum(text2path(path)) + v_asset = get_asset_datum(/datum/asset/spritesheet/vending) /obj/machinery/vending/proc/reset_light() set_light(initial(light_range), initial(light_power), initial(light_color)) diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 7058c8d43b6..482ec0389df 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -130,10 +130,32 @@ if(!ui) ui = new(user, src, "machinery-vending", 900, 600, capitalize(name), state=state) - v_asset = get_asset_datum(/datum/asset/spritesheet/vending/boozeomat) + v_asset = get_asset_datum(/datum/asset/spritesheet/vending) ui.open(v_asset) +/obj/machinery/vending/boozeomat/merchant + // boozeomat variant used on the merchant station + products = list( + /obj/item/reagent_containers/food/drinks/drinkingglass = 12, + /obj/item/reagent_containers/food/drinks/ice = 12, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 6, + /obj/item/reagent_containers/food/drinks/bottle/tequila = 6, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 2, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 6, + /obj/item/reagent_containers/food/drinks/bottle/rum = 6, + /obj/item/reagent_containers/food/drinks/bottle/wine = 6, + /obj/item/reagent_containers/food/drinks/bottle/cognac = 6, + /obj/item/reagent_containers/food/drinks/bottle/victorygin = 6, + /obj/item/reagent_containers/food/drinks/bottle/boukha = 6, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 12, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 6, + /obj/item/reagent_containers/food/drinks/bottle/brandy = 6, + /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 6) + random_itemcount = 1 + req_access = list() + restock_items = 1 + /obj/machinery/vending/assist vend_id = "tools" products = list( @@ -155,6 +177,21 @@ restock_items = 1 light_color = COLOR_GUNMETAL +/obj/machinery/vending/assist/synd + name = "Parts vendor" + desc = "Just a normal vending machine - nothing to see here." + contraband = null + random_itemcount = 0 + products = list( + /obj/item/device/assembly/prox_sensor = 5, + /obj/item/device/assembly/signaler = 4, + /obj/item/device/assembly/infra = 4, + /obj/item/device/assembly/prox_sensor = 4, + /obj/item/handcuffs = 8, + /obj/item/device/flash = 4, + /obj/item/clothing/glasses/sunglasses = 4 + ) + /obj/machinery/vending/coffee name = "Hot Drinks machine" @@ -196,6 +233,17 @@ temperature_setting = -1 light_color = COLOR_BROWN +/obj/machinery/vending/coffee/free + name = "Free Hot Drinks machine" + desc = "A vending machine which dispenses complimentary hot drinks." + random_itemcount = 0 + products = list( + /obj/item/reagent_containers/food/drinks/coffee = 12, + /obj/item/reagent_containers/food/drinks/tea = 8, + /obj/item/reagent_containers/food/drinks/h_chocolate = 8, + /obj/item/reagent_containers/food/snacks/donut/normal = 6 + ) + prices = list() /obj/machinery/vending/snack name = "Getmore Chocolate Corp" @@ -374,6 +422,27 @@ ) light_color = COLOR_BLUE_GRAY +/obj/machinery/vending/cigarette/merchant + // Mapped in merchant station + premium = list() + prices = list() + products = list( + /obj/item/storage/box/fancy/cigarettes = 10, + /obj/item/storage/box/fancy/matches = 10, + /obj/item/flame/lighter/random = 4, + /obj/item/storage/box/fancy/cigarettes/cigar = 5, + /obj/item/storage/box/fancy/cigarettes/acmeco = 5 + ) + +/obj/machinery/vending/cigarette/hacked + name = "hacked cigarette machine" + prices = list() + products = list( + /obj/item/storage/box/fancy/cigarettes = 10, + /obj/item/storage/box/fancy/matches = 10, + /obj/item/flame/lighter/zippo = 4, + /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2 + ) /obj/machinery/vending/medical name = "NanoMed Plus" @@ -773,6 +842,16 @@ random_itemcount = 0 light_color = COLOR_STEEL +/obj/machinery/vending/dinnerware/plastic + name = "Utensil Vendor" + desc = "A kitchen and restaurant utensil vendor." + products = list( + /obj/item/material/kitchen/utensil/fork/plastic = 12, + /obj/item/material/kitchen/utensil/spoon/plastic = 12, + /obj/item/material/kitchen/utensil/knife/plastic = 12, + /obj/item/reagent_containers/food/drinks/drinkingglass = 12 + ) + /obj/machinery/vending/sovietsoda name = "BODA" desc = "An old sweet water vending machine, how did this end up here?" @@ -965,7 +1044,7 @@ /obj/item/clothing/suit/storage/toggle/labcoat = 4, /obj/item/clothing/under/rank/roboticist = 4, /obj/item/stack/cable_coil = 4, - /obj/item/device/flash = 4, + /obj/item/device/flash/synthetic = 4, /obj/item/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3, /obj/item/device/assembly/signaler = 3, diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 300a1297ca8..64585baf26d 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -289,6 +289,9 @@ var/list/asset_datums = list() return out.Join("\n") /datum/asset/spritesheet/proc/Insert(sprite_name, icon/I, icon_state="", dir=SOUTH, frame=1, moving=FALSE, icon/forced=FALSE) + if (sprites[sprite_name]) + return + if(!forced) I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving) else @@ -298,9 +301,6 @@ var/list/asset_datums = list() var/size_id = "[I.Width()]x[I.Height()]" var/size = sizes[size_id] - if (sprites[sprite_name]) - CRASH("duplicate sprite \"[sprite_name]\" in sheet [name] ([type])") - if (size) var/position = size[SPRSZ_COUNT]++ var/icon/sheet = size[SPRSZ_ICON] @@ -482,117 +482,49 @@ var/list/asset_datums = list() /datum/asset/spritesheet/vending name = "vending" - var/obj/machinery/vending/v_type = null delayed = TRUE -/datum/asset/spritesheet/vending/New() - if(ispath(v_type)) - v_type = new v_type - - if(istype(v_type) && v_type.name) - name = ckey(v_type.name) - - . = ..() - /datum/asset/spritesheet/vending/register() - if(!istype(v_type)) - return - for(var/products in list(v_type?.products, v_type?.contraband, v_type?.premium)) - for(var/o_path in products) - var/obj/O = new o_path - var/i_type = ckey("[O.type]") - var/icon/I = icon(O.icon, O.icon_state) - if(istype(O, /obj/item/seeds)) - // thanks seeds for being overlays defined at runtime - var/obj/item/seeds/S = O - I = S.update_appearance(TRUE) - Insert(i_type, I, forced=I) - else - if(i_type in sprites) - continue - if(O.overlay_queued) - O.compile_overlays() - if(O.overlays.len) - I = getFlatIcon(O) - Insert(i_type, I, forced=I) + var/list/vending_products = list() + for(var/v_type in typesof(/obj/machinery/vending)) + var/obj/machinery/vending/V = new v_type + for(var/list/p in list(V.products, V.contraband, V.premium)) + for(var/k in p) + vending_products += k + for(var/path in vending_products) + var/obj/O = new path + var/icon_file = O.icon + var/icon_state = O.icon_state + var/icon/I + var/icon_states_list = icon_states(icon_file) + if(icon_state in icon_states_list) + I = icon(icon_file, icon_state, SOUTH) + var/c = O.color + if(!isnull(c) && c != "#FFFFFF") + I.Blend(c, ICON_MULTIPLY) + else + var/icon_states_string + for(var/s in icon_states_list) + if(!icon_states_string) + icon_states_string = "[json_encode(s)](\ref[s])" else - Insert(i_type, O.icon, O.icon_state) + icon_states_string += ", [json_encode(s)](\ref[s])" + error("[O] has an invalid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state]), icon_states=[icon_states_string]") + I = icon('icons/turf/floors.dmi', "", SOUTH) - ..() + var/imgid = ckey("[path]") -// v_type needs to be the path to the vending machine - -/datum/asset/spritesheet/vending/vendors - v_type = /obj/machinery/vending/vendors - -/datum/asset/spritesheet/vending/boozeomat - v_type = /obj/machinery/vending/boozeomat - -/datum/asset/spritesheet/vending/assist - v_type = /obj/machinery/vending/assist - -/datum/asset/spritesheet/vending/coffee - v_type = /obj/machinery/vending/coffee - -/datum/asset/spritesheet/vending/snack - v_type = /obj/machinery/vending/snack - -/datum/asset/spritesheet/vending/cola - v_type = /obj/machinery/vending/cola - -/datum/asset/spritesheet/vending/cigarette - v_type = /obj/machinery/vending/cigarette - -/datum/asset/spritesheet/vending/medical - v_type = /obj/machinery/vending/medical - -/datum/asset/spritesheet/vending/phoronresearch - v_type = /obj/machinery/vending/phoronresearch - -/datum/asset/spritesheet/vending/wallmed1 - v_type = /obj/machinery/vending/wallmed1 - -/datum/asset/spritesheet/vending/wallmed2 - v_type = /obj/machinery/vending/wallmed2 - -/datum/asset/spritesheet/vending/security - v_type = /obj/machinery/vending/security - -/datum/asset/spritesheet/vending/hydronutrients - v_type = /obj/machinery/vending/hydronutrients - -/datum/asset/spritesheet/vending/hydroseeds - v_type = /obj/machinery/vending/hydroseeds - -/datum/asset/spritesheet/vending/magivend - v_type = /obj/machinery/vending/magivend - -/datum/asset/spritesheet/vending/dinnerware - v_type = /obj/machinery/vending/dinnerware - -/datum/asset/spritesheet/vending/sovietsoda - v_type = /obj/machinery/vending/sovietsoda - -/datum/asset/spritesheet/vending/tool - v_type = /obj/machinery/vending/tool - -/datum/asset/spritesheet/vending/engivend - v_type = /obj/machinery/vending/engivend - -/datum/asset/spritesheet/vending/tacticool - v_type = /obj/machinery/vending/tacticool - -/datum/asset/spritesheet/vending/tacticoolert - v_type = /obj/machinery/vending/tacticool/ert - -/datum/asset/spritesheet/vending/engineering - v_type = /obj/machinery/vending/engineering - -/datum/asset/spritesheet/vending/robotics - v_type = /obj/machinery/vending/robotics - -/datum/asset/spritesheet/vending/zora - v_type = /obj/machinery/vending/zora - -/datum/asset/spritesheet/vending/battlemonsters - v_type = /obj/machinery/vending/battlemonsters + if(istype(O, /obj/item/seeds)) + // thanks seeds for being overlays defined at runtime + var/obj/item/seeds/S = O + I = S.update_appearance(TRUE) + Insert(imgid, I, forced=I) + else + if(O.overlay_queued) + O.compile_overlays() + if(O.overlays.len) + I = getFlatIcon(O) // forgive me for my performance sins + Insert(imgid, I, forced=I) + else + Insert(imgid, I) + return ..() diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm index d13f59d1055..2ec930489ad 100644 --- a/code/unit_tests/map_tests.dm +++ b/code/unit_tests/map_tests.dm @@ -263,5 +263,30 @@ datum/unit_test/wire_test/start_test() return 1 +/datum/unit_test/mapped_products + name = "MAP: Check for mapped vending products" + +/datum/unit_test/mapped_products/start_test() + var/checks = 0 + var/failed_checks = 0 + var/list/obj/machinery/vending/V_to_test = list() + + for(var/obj/machinery/vending/T in world) + checks++ + V_to_test += T + for(var/obj/machinery/vending/V in V_to_test) + var/obj/machinery/vending/temp_V = new V.type + if(length(difflist(V.products, temp_V.products)) || length(difflist(V.contraband, temp_V.contraband)) || length(difflist(V.premium, temp_V.premium))) + failed_checks++ + + log_unit_test("Vending machine [V] at ([V.x],[V.y],[V.z] on [V.loc] has mapped-in products, contraband, or premium items.") + + if(failed_checks) + fail("\[[failed_checks] / [checks]\] Some vending machines have mapped-in product lists.") + else + pass("All \[[checks]\] vending machines have valid product lists.") + + return 1 + #undef SUCCESS #undef FAILURE diff --git a/code/unit_tests/object_tests.dm b/code/unit_tests/object_tests.dm index 08ad450fbbd..29e228c4e1b 100644 --- a/code/unit_tests/object_tests.dm +++ b/code/unit_tests/object_tests.dm @@ -58,4 +58,27 @@ log_unit_test("[ascii_red]--------------- Flooring build_type [type] is non-unique; exists [i] times.") fail("Found non-unique build_types in flooring decl.") - return TRUE \ No newline at end of file + return TRUE + +/datum/unit_test/check_vending_products + name = "OBJECTS: All vending products shall be /obj subtypes" + +/datum/unit_test/check_vending_products/start_test() + var/list/vending_products = list() + var/list/valid_keys = list() + for(var/v_type in typesof(/obj/machinery/vending)) + var/obj/machinery/vending/V = new v_type + for(var/list/p in list(V.products, V.contraband, V.premium)) + for(var/k in p) + vending_products += k + if(!ispath(k, /obj)) + log_unit_test("Vending product [k] in vending machine [V] is not a subtype of /obj") + else + valid_keys += k + + if(length(valid_keys) == length(vending_products)) + pass("All vending products are /obj subtypes") + else + fail("Some vending products are not /obj subtypes") + + return TRUE diff --git a/html/changelogs/johnwildkins-vendingfix.yml b/html/changelogs/johnwildkins-vendingfix.yml new file mode 100644 index 00000000000..67458960cf3 --- /dev/null +++ b/html/changelogs/johnwildkins-vendingfix.yml @@ -0,0 +1,6 @@ +author: JohnWildkins + +delete-after: True + +changes: + - bugfix: "Vending machines spawned after mapload and/or by admins should no longer have missing icons." diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm index c6581902435..4035320e562 100644 --- a/maps/aurora/aurora-1_centcomm.dmm +++ b/maps/aurora/aurora-1_centcomm.dmm @@ -2307,12 +2307,8 @@ /turf/unsimulated/floor/plating, /area/centcom/specops) "ajY" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; - pixel_x = 5; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8, /obj/item/reagent_containers/food/snacks/donut/normal = 6); - random_itemcount = 0 +/obj/machinery/vending/coffee/free{ + pixel_x = 5;random_itemcount = 0 }, /obj/effect/floor_decal/corner/red/diagonal{ dir = 8 @@ -5756,11 +5752,8 @@ /obj/effect/floor_decal/spline/plain{ dir = 4 }, -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = -1; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /turf/unsimulated/floor, /area/centcom/spawning) @@ -11059,12 +11052,7 @@ /turf/unsimulated/floor/plating, /area/shuttle/syndicate_elite) "dyI" = ( -/obj/machinery/vending/assist{ - contraband = null; - name = "Part vendor"; - products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/clothing/glasses/sunglasses = 4); - random_itemcount = 0 - }, +/obj/machinery/vending/assist/synd, /obj/effect/floor_decal/corner/red/diagonal, /turf/simulated/floor/tiled/dark, /area/shuttle/mercenary) @@ -13361,11 +13349,8 @@ /turf/unsimulated/floor/plating, /area/centcom/legion) "eVL" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = -1; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /turf/unsimulated/floor{ icon_state = "wood" @@ -14437,12 +14422,7 @@ /area/centcom/specops) "fGh" = ( /obj/effect/floor_decal/corner/red/diagonal, -/obj/machinery/vending/boozeomat{ - products = list(/obj/item/reagent_containers/food/drinks/drinkingglass = 12, /obj/item/reagent_containers/food/drinks/ice = 12, /obj/item/reagent_containers/food/drinks/bottle/whiskey = 6, /obj/item/reagent_containers/food/drinks/bottle/tequila = 6, /obj/item/reagent_containers/food/drinks/bottle/champagne = 2, /obj/item/reagent_containers/food/drinks/bottle/vodka = 6, /obj/item/reagent_containers/food/drinks/bottle/rum = 6, /obj/item/reagent_containers/food/drinks/bottle/wine = 6, /obj/item/reagent_containers/food/drinks/bottle/cognac = 6, /obj/item/reagent_containers/food/drinks/bottle/victorygin = 6, /obj/item/reagent_containers/food/drinks/bottle/boukha = 6, /obj/item/reagent_containers/food/drinks/bottle/small/beer = 12, /obj/item/reagent_containers/food/drinks/bottle/absinthe = 6, /obj/item/reagent_containers/food/drinks/bottle/brandy = 6, /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 6); - random_itemcount = 1; - req_access = list(); - restock_items = 1 - }, +/obj/machinery/vending/boozeomat/merchant, /turf/simulated/floor/tiled, /area/merchant_station) "fGK" = ( @@ -15096,11 +15076,8 @@ }, /area/antag/raider) "fYz" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = -1; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /turf/unsimulated/floor{ icon_state = "dark2" @@ -17692,12 +17669,8 @@ /turf/unsimulated/floor, /area/centcom/evac) "hBo" = ( -/obj/machinery/vending/cigarette{ - name = "Cigarette Machine"; +/obj/machinery/vending/cigarette/merchant{ pixel_x = 2; - premium = list(); - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/random = 4, /obj/item/storage/box/fancy/cigarettes/cigar = 5, /obj/item/storage/box/fancy/cigarettes/acmeco = 5) }, /turf/simulated/floor/lino/grey, /area/merchant_station) @@ -20527,11 +20500,8 @@ }, /area/centcom/bar) "jvz" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = 2; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /obj/machinery/light{ icon_state = "tube1" @@ -29980,12 +29950,7 @@ name = "adjusted light fixture"; pixel_y = 16 }, -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8, /obj/item/reagent_containers/food/snacks/donut/normal = 6); - random_itemcount = 0 - }, +/obj/machinery/vending/coffee/free, /obj/effect/floor_decal/corner/paleblue/full, /turf/simulated/floor/tiled/dark, /area/shuttle/merchant) @@ -30916,11 +30881,8 @@ }, /area/shuttle/specops) "pZr" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = -1; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /obj/effect/floor_decal/corner/grey/diagonal{ dir = 4 @@ -34098,11 +34060,8 @@ }, /area/centcom/control) "ssN" = ( -/obj/machinery/vending/coffee{ - name = "Free Hot Drinks machine"; +/obj/machinery/vending/coffee/free{ pixel_x = -1; - prices = list(); - products = list(/obj/item/reagent_containers/food/drinks/coffee = 12, /obj/item/reagent_containers/food/drinks/tea = 8, /obj/item/reagent_containers/food/drinks/h_chocolate = 8) }, /turf/unsimulated/floor, /area/centcom/control) @@ -40494,11 +40453,7 @@ dir = 4; icon_state = "tube1" }, -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /turf/unsimulated/floor, /area/antag/mercenary) "wCK" = ( diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm index f508ee85811..4c4db8ccd7c 100644 --- a/maps/aurora/aurora-4_mainlevel.dmm +++ b/maps/aurora/aurora-4_mainlevel.dmm @@ -35309,9 +35309,7 @@ /turf/simulated/floor/tiled, /area/assembly/robotics) "biz" = ( -/obj/machinery/vending/robotics{ - products = list(/obj/item/clothing/suit/storage/toggle/labcoat = 4, /obj/item/clothing/under/rank/roboticist = 4, /obj/item/stack/cable_coil = 4, /obj/item/cell/high = 12, /obj/item/device/assembly/prox_sensor = 8, /obj/item/device/assembly/signaler = 3, /obj/item/device/healthanalyzer = 8, /obj/item/surgery/scalpel = 2, /obj/item/surgery/circular_saw = 2, /obj/item/tank/anesthetic = 2, /obj/item/clothing/mask/breath/medical = 5, /obj/item/screwdriver = 5, /obj/item/crowbar = 5) - }, +/obj/machinery/vending/robotics, /obj/structure/sign/nosmoking_1{ pixel_y = 28 }, @@ -67696,11 +67694,8 @@ /turf/simulated/floor/tiled, /area/maintenance/security_starboard) "tIQ" = ( -/obj/machinery/vending/dinnerware{ - desc = "A kitchen and restaurant utensil vendor."; - name = "Utensil Vendor"; +/obj/machinery/vending/dinnerware/plastic{ pixel_x = -4; - products = list(/obj/item/material/kitchen/utensil/fork/plastic = 12, /obj/item/material/kitchen/utensil/spoon/plastic = 12, /obj/item/material/kitchen/utensil/knife/plastic = 12, /obj/item/reagent_containers/food/drinks/drinkingglass = 12) }, /obj/effect/floor_decal/corner/grey/diagonal, /turf/simulated/floor/tiled/white, diff --git a/maps/exodus/exodus-2_centcomm.dmm b/maps/exodus/exodus-2_centcomm.dmm index b813f67c9bd..41655ea5f55 100644 --- a/maps/exodus/exodus-2_centcomm.dmm +++ b/maps/exodus/exodus-2_centcomm.dmm @@ -2718,11 +2718,7 @@ }, /area/shuttle/mercenary) "ani" = ( -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /turf/unsimulated/floor{ icon_state = "cult"; name = "plating" @@ -3410,11 +3406,7 @@ }, /area/shuttle/mercenary) "aoA" = ( -/obj/machinery/vending/assist{ - contraband = null; - name = "AntagCorpVend"; - products = list(/obj/item/device/assembly/prox_sensor = 5, /obj/item/device/assembly/signaler = 4, /obj/item/device/assembly/infra = 4, /obj/item/device/assembly/prox_sensor = 4, /obj/item/handcuffs = 8, /obj/item/device/flash = 4, /obj/item/clothing/glasses/sunglasses = 4) - }, +/obj/machinery/vending/assist/synd, /obj/machinery/light{ dir = 4 }, @@ -3525,11 +3517,7 @@ }, /area/centcom) "aoL" = ( -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /turf/simulated/floor/shuttle{ icon_state = "floor6" }, @@ -6671,11 +6659,7 @@ name = "\improper Raider Base" }) "azC" = ( -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /obj/effect/decal/cleanable/dirt, /turf/unsimulated/floor{ dir = 8; diff --git a/maps/templates/backup/syndicate_base.dmm b/maps/templates/backup/syndicate_base.dmm index 491e53b364f..33357664f2d 100644 --- a/maps/templates/backup/syndicate_base.dmm +++ b/maps/templates/backup/syndicate_base.dmm @@ -769,11 +769,7 @@ }, /area/derelict) "bW" = ( -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/lino, /area/derelict) diff --git a/maps/templates/syndicate_base.dmm b/maps/templates/syndicate_base.dmm index 158e2b2dbbc..b058950ff63 100644 --- a/maps/templates/syndicate_base.dmm +++ b/maps/templates/syndicate_base.dmm @@ -769,11 +769,7 @@ }, /area/derelict) "bW" = ( -/obj/machinery/vending/cigarette{ - name = "hacked cigarette machine"; - prices = list(); - products = list(/obj/item/storage/box/fancy/cigarettes = 10, /obj/item/storage/box/fancy/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) - }, +/obj/machinery/vending/cigarette/hacked, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/lino, /area/derelict)