From ed29bb1f202c4e02745c723572bf9b6d0ccf6f85 Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Mon, 9 Aug 2021 17:14:28 +0100 Subject: [PATCH] Vending machines, smartfridges, and locker passing --- code/game/machinery/vending.dm | 7 ++++--- .../food_and_drinks/kitchen_machinery/smartfridge.dm | 1 + code/modules/mob/mob_movement.dm | 9 +++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index babae081e9d..f7a1fd5e41c 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -16,9 +16,10 @@ desc = "A generic vending machine." icon = 'icons/obj/vending.dmi' icon_state = "generic" - layer = 2.9 - anchored = 1 - density = 1 + layer = BELOW_OBJ_LAYER + anchored = TRUE + density = TRUE + face_while_pulling = TRUE max_integrity = 300 integrity_failure = 100 armor = list(melee = 20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index a1db59b83a5..6d1f482adf9 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -13,6 +13,7 @@ use_power = IDLE_POWER_USE idle_power_usage = 5 active_power_usage = 100 + face_while_pulling = TRUE /// The maximum number of items the fridge can hold. Multiplicated by the matter bin component's rating. var/max_n_of_items = 1500 /// Associative list (/text => /number) tracking the amounts of a specific item held by the fridge. diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index ed75caa8f39..21b357146cb 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -168,8 +168,13 @@ direct = newdir n = get_step(mob, direct) - . = mob.SelfMove(n, direct, delay) - if(mob.pulling?.face_while_pulling) + var/prev_pulling_loc = null + if(mob.pulling) + prev_pulling_loc = mob.pulling.loc + + . = mob.SelfMove(n, direct, delay) // The actual movement + + if(prev_pulling_loc && mob.pulling?.face_while_pulling && (mob.pulling.loc != prev_pulling_loc)) mob.setDir(get_dir(mob, mob.pulling)) // Face welding tanks and stuff when pulling else mob.setDir(direct)