diff --git a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm index a8fea8ba17c..bd0783a1299 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm @@ -157,7 +157,9 @@ /turf/simulated/floor/wood, /area/shuttle/abandoned) "tV" = ( -/obj/machinery/door/airlock/titanium/glass, +/obj/machinery/door/airlock/multi_tile/glass{ + dir = 1 + }, /turf/simulated/floor/mineral/plastitanium, /area/shuttle/abandoned) "uo" = ( @@ -461,7 +463,7 @@ zO zO zO zO -tV +wF tV zO zO diff --git a/_maps/map_files/shuttles/emergency_raven.dmm b/_maps/map_files/shuttles/emergency_raven.dmm index 86e5bce7e74..06b94bc0d8a 100644 --- a/_maps/map_files/shuttles/emergency_raven.dmm +++ b/_maps/map_files/shuttles/emergency_raven.dmm @@ -1328,6 +1328,10 @@ }, /turf/simulated/floor/plasteel/dark, /area/shuttle/escape) +"JM" = ( +/obj/structure/shuttle/engine/large, +/turf/simulated/floor/plating/airless, +/area/shuttle/escape) "JO" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -1435,6 +1439,9 @@ icon_state = "darkred" }, /area/shuttle/escape) +"So" = ( +/turf/simulated/floor/plating/airless, +/area/shuttle/escape) "Ux" = ( /obj/effect/turf_decal/stripes/white/corner, /obj/effect/decal/cleanable/dirt, @@ -1656,8 +1663,8 @@ dI dE Mm cP -cP -aa +So +JM "} (6,1,1) = {" aa @@ -1690,8 +1697,8 @@ dE dE Nd fn -em -aa +So +So "} (7,1,1) = {" ab @@ -1792,8 +1799,8 @@ dE dE vw fn -em -aa +So +JM "} (10,1,1) = {" ab @@ -1826,8 +1833,8 @@ dE dE cP cP -cP -aa +So +So "} (11,1,1) = {" ab @@ -1860,7 +1867,7 @@ Sa Sa ed cP -aa +cP aa "} (12,1,1) = {" @@ -1894,8 +1901,8 @@ dE dE cP cP -cP -aa +So +JM "} (13,1,1) = {" ab @@ -1928,8 +1935,8 @@ dE dE sr fn -em -aa +So +So "} (14,1,1) = {" ab @@ -2030,8 +2037,8 @@ dE dE NK fn -em -aa +So +JM "} (17,1,1) = {" aa @@ -2064,8 +2071,8 @@ dQ dT qC cP -cP -aa +So +So "} (18,1,1) = {" aa diff --git a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm index 86ca6f8468b..9f0325ba7f5 100644 --- a/code/game/shuttle_engines.dm +++ b/code/game/shuttle_engines.dm @@ -5,9 +5,6 @@ max_integrity = 500 armor = list(melee = 100, bullet = 10, laser = 10, energy = 0, bomb = 0, rad = 0, fire = 50, acid = 70) //default + ignores melee -/obj/structure/shuttle/shuttleRotate(rotation) - return //This override is needed to properly rotate the object when on a shuttle that is rotated. - /obj/structure/shuttle/engine name = "engine" density = TRUE diff --git a/code/modules/awaymissions/mission_code/ruins/oldstation.dm b/code/modules/awaymissions/mission_code/ruins/oldstation.dm index ce6a367de24..6561f0bc5fe 100644 --- a/code/modules/awaymissions/mission_code/ruins/oldstation.dm +++ b/code/modules/awaymissions/mission_code/ruins/oldstation.dm @@ -299,7 +299,7 @@ desc = "A very large bluespace engine used to propel very large ships." bound_width = 64 bound_height = 64 - appearance_flags = 0 + appearance_flags = LONG_GLIDE // areas //Ruin of ancient Space Station diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 021265fd716..12f768c91af 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -508,6 +508,8 @@ //move mobile to new location for(var/atom/movable/AM in T0) + if(AM.loc != T0) //fix for multi-tile objects + continue AM.onShuttleMove(T0, T1, rotation, last_caller) if(rotation) diff --git a/code/modules/shuttle/shuttle_rotate.dm b/code/modules/shuttle/shuttle_rotate.dm index e8b72452e6f..1c169406929 100644 --- a/code/modules/shuttle/shuttle_rotate.dm +++ b/code/modules/shuttle/shuttle_rotate.dm @@ -24,6 +24,19 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate pixel_x = oldPY pixel_y = (oldPX*(-1)) + +/atom/movable/shuttleRotate(rotation, params) + . = ..() + //rotate the physical bounds and offsets for multitile atoms too. Override base "rotate the pixel offsets" for multitile atoms. + //Override non zero bound_x, bound_y, pixel_x, pixel_y to zero. + //Dont take in account starting bound_x, bound_y, pixel_x, pixel_y. + //So it can unintentionally shift physical bounds of things that starts with non zero bound_x, bound_y. + if((bound_height != world.icon_size || bound_width != world.icon_size) && (bound_x == 0) && (bound_y == 0)) //Dont shift things that have non zero bound_x and bound_y, or it move somewhere. + pixel_x = dir & (NORTH|EAST) ? (world.icon_size - bound_width) : 0 + pixel_y = dir & (NORTH|WEST) ? (world.icon_size - bound_width) : 0 + bound_x = pixel_x + bound_y = pixel_y + /************************************Turf rotate procs************************************/ /************************************Mob rotate procs************************************/ @@ -56,9 +69,6 @@ If ever any of these procs are useful for non-shuttles, rename it to proc/rotate d2 = temp update_icon(UPDATE_ICON_STATE) -/obj/structure/shuttle/engine/shuttleRotate(rotation, params) - setDir(angle2dir(rotation+dir2angle(dir))) - //Fixes dpdir on shuttle rotation /obj/structure/disposalpipe/shuttleRotate(rotation, params) . = ..()