diff --git a/mods/utility_items/code/advanced_landing.dm b/mods/utility_items/code/advanced_landing.dm index 5d71054169c5c..02d6cbd972a8c 100644 --- a/mods/utility_items/code/advanced_landing.dm +++ b/mods/utility_items/code/advanced_landing.dm @@ -176,6 +176,10 @@ /area/bluespaceriver, ) + var/list/shadow_images = list() + var/list/saved_landmarks= list() + + /obj/machinery/computer/shuttle_control/explore/proc/oko_enter() oko = new /mob/observer/eye/landeye oko.name_sufix = "Landing Eye" @@ -216,7 +220,7 @@ landmarky_off = shuttle_landmark.y - origin.y /obj/machinery/computer/shuttle_control/explore/proc/check_zone() - + shadow_images = list() var/turf/eyeturf = get_turf(oko) var/list/image_cache = oko.placement_images var/landable = TRUE @@ -227,6 +231,7 @@ var/area/A = get_area(T) var/zone_good = FALSE I.loc = T + shadow_images += I if(!(T.density)) for(var/type in accesible_areas) if(A.type in typesof(type)) @@ -270,6 +275,8 @@ src.Destroy() SetName(initial(name)) +/obj/shuttle_landmark + var/list/image_shadow /obj/shuttle_landmark/ship/advancedlandmark/Initialize(mapload, obj/shuttle_landmark/ship/master, _name) landmark_tag = "_[shuttle_name] [rand(1,99999)]" @@ -285,11 +292,20 @@ var/datum/shuttle/shuttle_datum = SSshuttle.shuttles[shuttle_name] if(temp in shuttle_datum.shuttle_area) for(var/obj/machinery/computer/shuttle_control/explore/c in temp) + for(var/obj/shuttle_landmark/ship/advancedlandmark/l in c.saved_landmarks) + var/area/landmarkarea = get_area(l) + if(landmarkarea in shuttle_datum.shuttle_area) + continue + else + c.saved_landmarks -= l + qdel(l) if(c.check_zone()) var/turf/eyeturf = get_turf(c.oko) var/turf/T = locate(eyeturf.x + c.landmarkx_off, eyeturf.y + c.landmarky_off , eyeturf.z) landmark = new (T, src) + c.saved_landmarks += landmark c.shuttle_type.set_destination(landmark) + c.shuttle_type.next_location.image_shadow = c.shadow_images /turf var/prev_type @@ -298,3 +314,19 @@ .=..() var/old_prev_type = prev_type prev_type = old_prev_type + + +/datum/shuttle/autodock/process_launch() + .=..() + for(var/i in 1 to LAZYLEN(next_location.image_shadow)) + var/image/I = next_location.image_shadow[i] + var/turf/T = locate(I.loc.x, I.loc.y, I.loc.z) + I = image('mods/utility_items/icons/alphacolors.dmi', T, "dither50") + T.AddOverlays(I) + +/datum/shuttle/autodock/process_arrived() + .=..() + for(var/i in 1 to LAZYLEN(next_location.image_shadow)) + var/image/I = next_location.image_shadow[i] + var/turf/T = locate(I.loc.x, I.loc.y, I.loc.z) + T.ClearOverlays(I) diff --git a/mods/utility_items/icons/alphacolors.dmi b/mods/utility_items/icons/alphacolors.dmi index cbff37c5177e6..e639db16f1f5f 100644 Binary files a/mods/utility_items/icons/alphacolors.dmi and b/mods/utility_items/icons/alphacolors.dmi differ