realistic transit turfs - transit turfs will now physically throw you out of the transit area instead of simply teleporting you

This commit is contained in:
deathride58
2019-02-21 01:38:18 -05:00
parent 74c87b3d56
commit 5d9e3e0092
4 changed files with 41 additions and 4 deletions
+3 -1
View File
@@ -435,11 +435,13 @@ GLOBAL_LIST_EMPTY(the_station_areas)
GLOB.the_gateway.awaygate = new_gate
GLOB.the_gateway.wait = world.time
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override)
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override, border_type_override)
UNTIL(initialized && !clearing_reserved_turfs)
var/datum/turf_reservation/reserve = new type
if(turf_type_override)
reserve.turf_type = turf_type_override
if(border_type_override)
reserve.borderturf = border_type_override
if(!z)
for(var/i in levels_by_trait(ZTRAIT_RESERVED))
if(reserve.Reserve(width, height, i))
+6 -1
View File
@@ -443,17 +443,22 @@ SUBSYSTEM_DEF(shuttle)
*/
var/transit_path = /turf/open/space/transit
var/border_path = /turf/open/space/transit/border
switch(travel_dir)
if(NORTH)
transit_path = /turf/open/space/transit/north
border_path = /turf/open/space/transit/border/north
if(SOUTH)
transit_path = /turf/open/space/transit/south
border_path = /turf/open/space/transit/border/south
if(EAST)
transit_path = /turf/open/space/transit/east
border_path = /turf/open/space/transit/border/east
if(WEST)
transit_path = /turf/open/space/transit/west
border_path = /turf/open/space/transit/border/west
var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path)
var/datum/turf_reservation/proposal = SSmapping.RequestBlockReservation(transit_width, transit_height, null, /datum/turf_reservation/transit, transit_path, border_path)
if(!istype(proposal))
return FALSE