From f486448a953e38bfb6e3fa4c4fd2f151a1eca165 Mon Sep 17 00:00:00 2001 From: PacifistDalek <32213277+PacifistDalek@users.noreply.github.com> Date: Tue, 26 Oct 2021 18:33:03 -0400 Subject: [PATCH] Food Cart Refactor (#16869) * Food Cart Refactor * delete unused old sprites * No longer can be deconstructed or destroyed into smartfridge parts --- _maps/map_files/Delta/delta.dmm | 2 +- _maps/map_files/MetaStation/MetaStation.dmm | 2 +- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- code/game/objects/structures/foodcart.dm | 180 ------------------ .../kitchen_machinery/smartfridge.dm | 38 ++++ icons/obj/foodcart.dmi | Bin 3149 -> 862 bytes paradise.dme | 1 - 7 files changed, 41 insertions(+), 184 deletions(-) delete mode 100644 code/game/objects/structures/foodcart.dm diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm index 49340e999c9..5ffbce661a6 100644 --- a/_maps/map_files/Delta/delta.dmm +++ b/_maps/map_files/Delta/delta.dmm @@ -26016,7 +26016,7 @@ }, /area/security/permabrig) "blf" = ( -/obj/structure/foodcart, +/obj/machinery/smartfridge/foodcart, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/firealarm{ dir = 1; diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index ad41c5fb5fd..ce9bba6d8ad 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -43751,7 +43751,7 @@ name = "\improper Secure Lab" }) "bPO" = ( -/obj/structure/foodcart, +/obj/machinery/smartfridge/foodcart, /turf/simulated/floor/plasteel{ icon_state = "showroomfloor" }, diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index d1cb0d1e5ea..d0a78eba5d1 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -30207,7 +30207,7 @@ }, /area/chapel/main) "bpL" = ( -/obj/structure/foodcart, +/obj/machinery/smartfridge/foodcart, /turf/simulated/floor/plasteel{ icon_state = "cafeteria" }, diff --git a/code/game/objects/structures/foodcart.dm b/code/game/objects/structures/foodcart.dm deleted file mode 100644 index 0253ad66952..00000000000 --- a/code/game/objects/structures/foodcart.dm +++ /dev/null @@ -1,180 +0,0 @@ -/obj/structure/foodcart - name = "food cart" - desc = "A cart for transporting food and drinks." - icon = 'icons/obj/foodcart.dmi' - icon_state = "cart" - face_while_pulling = FALSE - anchored = 0 - density = 1 - //Food slots - var/list/food_slots[6] - //var/obj/item/reagent_containers/food/snacks/food1 = null - //var/obj/item/reagent_containers/food/snacks/food2 = null - //var/obj/item/reagent_containers/food/snacks/food3 = null - //var/obj/item/reagent_containers/food/snacks/food4 = null - //var/obj/item/reagent_containers/food/snacks/food5 = null - //var/obj/item/reagent_containers/food/snacks/food6 = null - //Drink slots - var/list/drink_slots[6] - //var/obj/item/reagent_containers/food/drinks/drink1 = null - //var/obj/item/reagent_containers/food/drinks/drink2 = null - //var/obj/item/reagent_containers/food/drinks/drink3 = null - //var/obj/item/reagent_containers/food/drinks/drink4 = null - //var/obj/item/reagent_containers/food/drinks/drink5 = null - //var/obj/item/reagent_containers/food/drinks/drink6 = null - -/obj/structure/foodcart/proc/put_in_cart(obj/item/I, mob/user) - user.drop_item() - I.loc = src - updateUsrDialog() - to_chat(user, "You put [I] into [src].") - return - -/obj/structure/foodcart/attackby(obj/item/I, mob/user, params) - var/fail_msg = "There are no open spaces for this in [src]." - if(!I.is_robot_module()) - if(istype(I, /obj/item/reagent_containers/food/snacks)) - var/success = 0 - for(var/s=1,s<=6,s++) - if(!food_slots[s]) - put_in_cart(I, user) - food_slots[s]=I - update_icon() - success = 1 - break - if(!success) - to_chat(user, fail_msg) - else if(istype(I, /obj/item/reagent_containers/food/drinks)) - var/success = 0 - for(var/s=1,s<=6,s++) - if(!drink_slots[s]) - put_in_cart(I, user) - drink_slots[s]=I - update_icon() - success = 1 - break - if(!success) - to_chat(user, fail_msg) - else if(istype(I, /obj/item/wrench)) - if(!anchored && !isinspace()) - playsound(src.loc, I.usesound, 50, 1) - user.visible_message( \ - "[user] tightens \the [src]'s casters.", \ - " You have tightened \the [src]'s casters.", \ - "You hear ratchet.") - anchored = 1 - else if(anchored) - playsound(src.loc, I.usesound, 50, 1) - user.visible_message( \ - "[user] loosens \the [src]'s casters.", \ - " You have loosened \the [src]'s casters.", \ - "You hear ratchet.") - anchored = 0 - else - to_chat(usr, "You cannot interface your modules [src]!") - -/obj/structure/foodcart/attack_hand(mob/user) - user.set_machine(src) - var/dat - if(food_slots[1]) - dat += "[food_slots[1]]" - if(food_slots[2]) - dat += "[food_slots[2]]" - if(food_slots[3]) - dat += "[food_slots[3]]" - if(food_slots[4]) - dat += "[food_slots[4]]" - if(food_slots[5]) - dat += "[food_slots[5]]" - if(food_slots[6]) - dat += "[food_slots[6]]" - if(drink_slots[1]) - dat += "[drink_slots[1]]" - if(drink_slots[2]) - dat += "[drink_slots[2]]" - if(drink_slots[3]) - dat += "[drink_slots[3]]" - if(drink_slots[4]) - dat += "[drink_slots[4]]" - if(drink_slots[5]) - dat += "[drink_slots[5]]" - if(drink_slots[6]) - dat += "[drink_slots[6]]" - var/datum/browser/popup = new(user, "foodcart", name, 240, 160) - popup.set_content(dat) - popup.open() - -/obj/structure/foodcart/Topic(href, href_list) - if(!in_range(src, usr)) - return - if(!isliving(usr)) - return - var/mob/living/user = usr - if(href_list["f1"]) - if(food_slots[1]) - user.put_in_hands(food_slots[1]) - to_chat(user, "You take [food_slots[1]] from [src].") - food_slots[1] = null - if(href_list["f2"]) - if(food_slots[2]) - user.put_in_hands(food_slots[2]) - to_chat(user, "You take [food_slots[2]] from [src].") - food_slots[2] = null - if(href_list["f3"]) - if(food_slots[3]) - user.put_in_hands(food_slots[3]) - to_chat(user, "You take [food_slots[3]] from [src].") - food_slots[3] = null - if(href_list["f4"]) - if(food_slots[4]) - user.put_in_hands(food_slots[4]) - to_chat(user, "You take [food_slots[4]] from [src].") - food_slots[4] = null - if(href_list["f5"]) - if(food_slots[5]) - user.put_in_hands(food_slots[5]) - to_chat(user, "You take [food_slots[5]] from [src].") - food_slots[5] = null - if(href_list["f6"]) - if(food_slots[6]) - user.put_in_hands(food_slots[6]) - to_chat(user, "You take [food_slots[6]] from [src].") - food_slots[6] = null - if(href_list["d1"]) - if(drink_slots[1]) - user.put_in_hands(drink_slots[1]) - to_chat(user, "You take [drink_slots[1]] from [src].") - drink_slots[1] = null - if(href_list["d2"]) - if(drink_slots[2]) - user.put_in_hands(drink_slots[2]) - to_chat(user, "You take [drink_slots[2]] from [src].") - drink_slots[2] = null - if(href_list["d3"]) - if(drink_slots[3]) - user.put_in_hands(drink_slots[3]) - to_chat(user, "You take [drink_slots[3]] from [src].") - drink_slots[3] = null - if(href_list["d4"]) - if(drink_slots[4]) - user.put_in_hands(drink_slots[4]) - to_chat(user, "You take [drink_slots[4]] from [src].") - drink_slots[4] = null - if(href_list["d5"]) - if(drink_slots[5]) - user.put_in_hands(drink_slots[5]) - to_chat(user, "You take [drink_slots[5]] from [src].") - drink_slots[5] = null - if(href_list["d6"]) - if(drink_slots[6]) - user.put_in_hands(drink_slots[6]) - to_chat(user, "You take [drink_slots[6]] from [src].") - drink_slots[6] = null - - update_icon() //Not really needed without overlays, but keeping just in case - updateUsrDialog() - -/obj/structure/foodcart/deconstruct(disassembled = TRUE) - if(!(flags & NODECONSTRUCT)) - new /obj/item/stack/sheet/metal(loc, 4) - qdel(src) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 4c712b9ece6..04a7334c4b3 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -396,6 +396,44 @@ /obj/item/seeds )) +/** + * # Food and Drink Cart + * + * Variant of the [Smart Fridge][/obj/machinery/smartfridge] that holds food and drinks in a mobile form + */ +/obj/machinery/smartfridge/foodcart + name = "\improper Food and Drink Cart" + desc = "A portable cart for hawking your food and drink wares around the station" + icon = 'icons/obj/foodcart.dmi' + icon_state = "cart" + anchored = FALSE + use_power = NO_POWER_USE + visible_contents = FALSE + face_while_pulling = FALSE + + +/obj/machinery/smartfridge/foodcart/Initialize(mapload) + . = ..() + accepted_items_typecache = typecacheof(list( + /obj/item/reagent_containers/food/snacks, + /obj/item/reagent_containers/food/drinks, + /obj/item/reagent_containers/food/condiment, + )) + +/obj/machinery/smartfridge/foodcart/screwdriver_act(mob/living/user, obj/item/I) + return + +/obj/machinery/smartfridge/foodcart/crowbar_act(mob/living/user, obj/item/I) + return + +/obj/machinery/smartfridge/foodcart/exchange_parts() + return + +/obj/machinery/smartfridge/foodcart/deconstruct(disassembled = TRUE) + if(!(flags & NODECONSTRUCT)) + new /obj/item/stack/sheet/metal(loc, 4) + qdel(src) + /** * # Circuit Boards Storage * diff --git a/icons/obj/foodcart.dmi b/icons/obj/foodcart.dmi index 360c14f574ad0a0de8b1fbf2216b393d4c0b6a7b..9067c57d8a42fae91061e5af3d11d413810eda0a 100644 GIT binary patch literal 862 zcmV-k1EKthP)q6gVObDIy$@FaSm>4uF6FOD+)j_yF*%4-i-&PB0K38Wl7k3pgMU_$UxFAPYMr z3_>UlHX#cb86PDlFkQC{-T(jq0d!JMQvg8b*k%9#0BCwtSad{Xb7OL8aCB*JZU6vy zoKseCa&`CgQ*iP1f}9kIOcus*j*0B zYJFgbWVNg#ivQYntKFf|vYQdBL%!X%iRd&Ew$<)ZSaz495nx?rmC*=n#Sd2T9sn3< znQ1jCC1^3{9Hf-O0h%12^m;u#seHh`BjBU)r37+Mj)5K=sMZfo2V9r2>`Ew{#76SYafFkFkt}T?yzi8v$$IW*d)rK2Es6mBE-@7>-gK`W-_H~G}{4T ztW+GwVT9xF^V?*xxLYK*%O5pBzLcquDvoe8PqI5hEbnU|R^+Bqq$(sJPqJ*0CHeAa z1%!%0DpHNm7B~5?gtU5C{@w>LU6U_Vgnx?7DqrOf#V&_Xk=A0ZZ?r>_6~(3~b1(z?*4Js ooupPqJD<64|DO0rtNCa63r>STekc~^tN;K207*qoM6N<$f{u1tW&i*H literal 3149 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 O05H-w)2q^Pi1;s!zzPxo diff --git a/paradise.dme b/paradise.dme index 44f2ddc96ac..fd158726a4c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1063,7 +1063,6 @@ #include "code\game\objects\structures\fence.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" -#include "code\game\objects\structures\foodcart.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\guillotine.dm"
h8el(|XrdA|*@N4c=t41($B6-N1%1PaRlJB!wWE7?HMYEefxML@*7omPtSZHS`uk$ zYI^zhf+Bo7XfJm$*4EEYLA@#nP*YPYuH6F@rIy+!3-j7(|4?ET0fH-Rak$j+W(C#!{QOIVn<@u-W9*+sB^C_uUVV{8( z)a;3S{a+*Nf!=b^L5>D*8f{b4gvC1u)y5%yQ9x>`l;sz%ca?q48PWGH?#@33dU}WD zp6lUzyJ!{0V);<_FLw6!S}TUyIrIgW?o%s?t5cOGIjRY^v(kV{rMmy7iHfSK+CA!# zWgwPQyD|+2V}-hyn1I8wibwL)Gs4*mOXEE}JVa921qBo4=AOVGJvt(Q&PIM&$oWw& zf*bdz4wg9$pI<^0%PT4rGxyne5hCo3UpF?Khw?SA<*0gh_r`L0q*u?fY37<1842?9 zr_g=-k+;RDLYl3%Pg=(&6%`jpiAHn-+j`EF{)B6_KFexe^L6@f37)f6EVrvVGaA;h z3D;tndE^X9jic;M_Wx!v#o O05H-w)2q^Pi1;s!zzPxo diff --git a/paradise.dme b/paradise.dme index 44f2ddc96ac..fd158726a4c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1063,7 +1063,6 @@ #include "code\game\objects\structures\fence.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" -#include "code\game\objects\structures\foodcart.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\guillotine.dm"