02-28-2018, 03:37 PM
This is true. The source tile is based on the bottom left.
Based on the goon-2016 code:
/obj/machinery/vehicle/proc/eject(mob/ejectee as mob)
if (!ejectee || ejectee.loc != src)
return
if (ejectee.client)
myhud.remove_client(ejectee.client)
src.passengers--
ejectee.set_loc(src.loc)
ejectee.remove_shipcrewmember_powers(src.weapon_class)
if(src.pilot == ejectee)
src.pilot = null
if(passengers)
find_pilot()
else
src.ion_trail.stop()
for (var/obj/item/I in src)
if ( (I in src.components) || I == src.atmostank || I == src.fueltank || I == src.intercom)
continue
I.set_loc(src.loc)
logTheThing("vehicle", ejectee, src.name, "exits pod: <b>%target%</b>")
I reckon putting a check on the line before ejectee.set_loc(src.loc) to assert the facing direction, then just use a offset for that direction.
NB I'm just going to make it a patch. Seems simple enough.
Based on the goon-2016 code:
/obj/machinery/vehicle/proc/eject(mob/ejectee as mob)
if (!ejectee || ejectee.loc != src)
return
if (ejectee.client)
myhud.remove_client(ejectee.client)
src.passengers--
ejectee.set_loc(src.loc)
ejectee.remove_shipcrewmember_powers(src.weapon_class)
if(src.pilot == ejectee)
src.pilot = null
if(passengers)
find_pilot()
else
src.ion_trail.stop()
for (var/obj/item/I in src)
if ( (I in src.components) || I == src.atmostank || I == src.fueltank || I == src.intercom)
continue
I.set_loc(src.loc)
logTheThing("vehicle", ejectee, src.name, "exits pod: <b>%target%</b>")
I reckon putting a check on the line before ejectee.set_loc(src.loc) to assert the facing direction, then just use a offset for that direction.
NB I'm just going to make it a patch. Seems simple enough.