Fixes multitile doors and multitile engines on shuttles. Gives raven it's big engines back (#24781)

* 7 year old fix ™️

* whiteship multi

* Apply suggestions from code review

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>

* Update shuttle_rotate.dm

* Update code/modules/shuttle/shuttle_rotate.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

* Update code/modules/shuttle/shuttle_rotate.dm

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>

---------

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
This commit is contained in:
Qwertytoforty
2024-04-01 15:18:23 +00:00
committed by GitHub
co-authored by 1080pCat Contrabang
parent 5c5f7842df
commit 464d53ecdc
6 changed files with 44 additions and 26 deletions
@@ -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
+24 -17
View File
@@ -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
-3
View File
@@ -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
@@ -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
+2
View File
@@ -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)
+13 -3
View File
@@ -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)
. = ..()