From bb87e70d6c67ee7ab47351857f6178b69b6722b0 Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Mon, 28 Dec 2020 00:40:18 +0000 Subject: [PATCH 1/3] Face structures while pulling --- code/modules/mob/mob_movement.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index e0f88a53b2b..8b2ba3ff5d3 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -169,7 +169,10 @@ n = get_step(mob, direct) . = mob.SelfMove(n, direct, delay) - mob.setDir(direct) + if(mob.pulling && isstructure(mob.pulling)) + mob.setDir(get_dir(mob, mob.pulling)) // Face welding tanks and stuff when pulling + else + mob.setDir(direct) if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully delay = mob.movement_delay() * 2 //Will prevent mob diagonal moves from smoothing accurately, sadly From 52e278cc355ba5ef67240fc7fd921d5dc5a228aa Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Mon, 28 Dec 2020 01:32:52 +0000 Subject: [PATCH 2/3] Variable --- code/game/atoms_movable.dm | 12 +++++++----- code/game/objects/structures.dm | 1 + code/modules/mob/mob_movement.dm | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index d5b3443cc01..d60959706d3 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -3,7 +3,7 @@ appearance_flags = TILE_BOUND glide_size = 8 // Default, adjusted when mobs move based on their movement delays var/last_move = null - var/anchored = 0 + var/anchored = FALSE var/move_resist = MOVE_RESIST_DEFAULT var/move_force = MOVE_FORCE_DEFAULT var/pull_force = PULL_FORCE_DEFAULT @@ -13,13 +13,15 @@ var/datum/thrownthing/throwing = null var/throw_speed = 2 //How many tiles to move per ds when being thrown. Float values are fully supported var/throw_range = 7 - var/no_spin = 0 - var/no_spin_thrown = 0 - var/moved_recently = 0 + var/no_spin = FALSE + var/no_spin_thrown = FALSE + var/moved_recently = FALSE var/mob/pulledby = null var/atom/movable/pulling + /// Face towards the atom while pulling it + var/face_while_pulling = FALSE var/throwforce = 0 - var/canmove = 1 + var/canmove = TRUE var/inertia_dir = 0 var/atom/inertia_last_loc diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index bd8ca8c024b..0ded1e60ced 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -2,6 +2,7 @@ icon = 'icons/obj/structures.dmi' pressure_resistance = 8 max_integrity = 300 + face_while_pulling = TRUE var/climbable var/mob/climber var/broken = FALSE diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 8b2ba3ff5d3..ed75caa8f39 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -169,7 +169,7 @@ n = get_step(mob, direct) . = mob.SelfMove(n, direct, delay) - if(mob.pulling && isstructure(mob.pulling)) + if(mob.pulling?.face_while_pulling) mob.setDir(get_dir(mob, mob.pulling)) // Face welding tanks and stuff when pulling else mob.setDir(direct) From c4ebe82ea7b14e95c83bf922c6cdadebd0d2322d Mon Sep 17 00:00:00 2001 From: SabreML <57483089+SabreML@users.noreply.github.com> Date: Mon, 28 Dec 2020 06:22:30 +0000 Subject: [PATCH 3/3] Exceptions part 1 Curtains, Jani/Engi/Food Cart, Roller Beds, Chairs/Wheelchairs --- code/game/objects/structures/curtains.dm | 1 + code/game/objects/structures/engicart.dm | 1 + code/game/objects/structures/foodcart.dm | 1 + code/game/objects/structures/janicart.dm | 1 + code/game/objects/structures/stool_bed_chair_nest/bed.dm | 1 + code/game/objects/structures/stool_bed_chair_nest/chairs.dm | 1 + 6 files changed, 6 insertions(+) diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index 029b0a761ad..da8b0f48476 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -5,6 +5,7 @@ icon = 'icons/obj/curtain.dmi' name = "curtain" icon_state = "closed" + face_while_pulling = FALSE layer = SHOWER_CLOSED_LAYER opacity = 1 density = 0 diff --git a/code/game/objects/structures/engicart.dm b/code/game/objects/structures/engicart.dm index a77dc35b909..52e1d0ca8e1 100644 --- a/code/game/objects/structures/engicart.dm +++ b/code/game/objects/structures/engicart.dm @@ -3,6 +3,7 @@ desc = "A cart for storing engineering items." icon = 'icons/obj/engicart.dmi' icon_state = "cart" + face_while_pulling = FALSE anchored = 0 density = 1 var/obj/item/stack/sheet/glass/myglass = null diff --git a/code/game/objects/structures/foodcart.dm b/code/game/objects/structures/foodcart.dm index 3a9a3414986..0253ad66952 100644 --- a/code/game/objects/structures/foodcart.dm +++ b/code/game/objects/structures/foodcart.dm @@ -3,6 +3,7 @@ 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 diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 58120ca4ed5..75a2d288a9e 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -7,6 +7,7 @@ icon_state = "cart" anchored = 0 density = 1 + face_while_pulling = FALSE container_type = OPENCONTAINER //copypaste sorry var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index d91caa4244f..7d02e861fb2 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -64,6 +64,7 @@ name = "roller bed" icon = 'icons/obj/rollerbed.dmi' icon_state = "down" + face_while_pulling = FALSE resistance_flags = NONE anchored = FALSE comfort = 1 diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index c1fe7dd7013..0c40c15d539 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -11,6 +11,7 @@ max_integrity = 250 integrity_failure = 25 buckle_offset = 0 + face_while_pulling = FALSE var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 1 var/item_chair = /obj/item/chair // if null it can't be picked up