diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 61942a9c58..53e9e33a7f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -621,4 +621,8 @@ chosen_langtype = langtype highest_priority = pri - . = chosen_langtype \ No newline at end of file + . = chosen_langtype +/atom/movable/proc/ConveyorMove(movedir) + set waitfor = FALSE + if(!anchored && has_gravity()) + step(src, movedir) \ No newline at end of file diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 365d7f1c26..d38b33671d 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -47,6 +47,9 @@ qdel(src) return 0 +/obj/effect/ConveyorMove() + return + /obj/effect/abstract/ex_act(severity, target) return diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index ace0afa838..1c974054dc 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -191,7 +191,7 @@ //Return a jetpack that the mob can use //Back worn jetpacks, hardsuit internal packs, and so on. -//Used in Process_Spacemove() and wherever you want to check for/get a jetpack +//Used in Process_Spacemove() and wherever you want to check for/get a jetpack /mob/proc/get_jetpack() return @@ -207,3 +207,9 @@ var/obj/item/clothing/suit/space/hardsuit/C = wear_suit J = C.jetpack return J + +/mob/has_gravity(turf/T) + var/obj/item/weapon/tank/jetpack/J = get_jetpack() + if(J && J.on) + return FALSE + return ..() \ No newline at end of file diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 0e774288cd..81f36bf221 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -10,3 +10,6 @@ /mob/dead/gib() //ghosts can't be gibbed. return + +/mob/dead/ConveyorMove() //lol + return \ No newline at end of file diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index e1b0a05961..0b45792be5 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -926,3 +926,8 @@ if(riding_datum) riding_datum.handle_vehicle_offsets() riding_datum.handle_vehicle_layer() + +/mob/living/ConveyorMove() + if((movement_type & FLYING) && !stat) + return + ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index 36ad869b05..0b0b46c259 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -27,4 +27,4 @@ /mob/living/simple_animal/butterfly/Initialize() ..() var/newcolor = rgb(rand(0, 255), rand(0, 255), rand(0, 255)) - add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) + add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY) \ No newline at end of file diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 71b73de0e1..060e3e9870 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -108,10 +108,8 @@ affecting = loc.contents - src // moved items will be all in loc sleep(1) for(var/atom/movable/A in affecting) - if(!A.anchored) - if(A.loc == src.loc) // prevents the object from being affected if it's not currently here. - step(A,movedir) - CHECK_TICK + if(A.loc == loc) + A.ConveyorMove(movedir) // attack with item, place item on conveyor /obj/machinery/conveyor/attackby(obj/item/I, mob/user, params)