From 8f3a44f44a436cbadf226dad710964660877f5ef Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sun, 2 May 2021 18:57:04 -0300 Subject: [PATCH] fancy gateway --- code/__DEFINES/layers_planes.dm | 1 + code/modules/awaymissions/gateway.dm | 62 ++++++++++++++++++----- code/modules/lighting/lighting_object.dm | 1 + icons/obj/machines/gateway.dmi | Bin 16139 -> 11967 bytes 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index 8ab33689d3..37584d892d 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -77,6 +77,7 @@ #define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible #define TABLE_LAYER 2.8 #define TRAY_LAYER 2.85 +#define GATEWAY_UNDERLAY_LAYER 2.85 #define BELOW_OBJ_LAYER 2.9 #define LOW_ITEM_LAYER 2.95 //#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 5540cd7529..36ceabe3b4 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -4,10 +4,10 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation) GLOBAL_LIST_EMPTY(gateway_destinations) /** - * Corresponds to single entry in gateway control. - * - * Will NOT be added automatically to GLOB.gateway_destinations list. - */ + * Corresponds to single entry in gateway control. + * + * Will NOT be added automatically to GLOB.gateway_destinations list. + */ /datum/gateway_destination var/name = "Unknown Destination" var/wait = 0 /// How long after roundstart this destination becomes active @@ -85,7 +85,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) . = "Exit gateway unpowered." /datum/gateway_destination/gateway/get_target_turf() - return get_step(target_gateway.portal,SOUTH) + return get_step(target_gateway, SOUTH) /datum/gateway_destination/gateway/post_transfer(atom/movable/AM) . = ..() @@ -144,7 +144,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) name = "gateway" desc = "A mysterious gateway built by unknown hands, it allows for faster than light travel to far-flung locations." icon = 'icons/obj/machines/gateway.dmi' - icon_state = "off" + icon_state = "portal_frame" resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF // 3x2 offset by one row @@ -171,10 +171,14 @@ GLOBAL_LIST_EMPTY(gateway_destinations) var/datum/gateway_destination/target /// bumper object, the thing that starts actual teleport var/obj/effect/gateway_portal_bumper/portal + /// Visual object for handling the viscontents + var/obj/effect/gateway_portal_effect/portal_visuals /obj/machinery/gateway/Initialize() generate_destination() update_icon() + portal_visuals = new + vis_contents += portal_visuals return ..() /obj/machinery/gateway/proc/generate_destination() @@ -191,6 +195,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) if(use_power == ACTIVE_POWER_USE) use_power = IDLE_POWER_USE update_icon() + portal_visuals.reset_visuals() /obj/machinery/gateway/process() if((stat & (NOPOWER)) && use_power) @@ -198,12 +203,6 @@ GLOBAL_LIST_EMPTY(gateway_destinations) deactivate() return -/obj/machinery/gateway/update_icon_state() - if(target) - icon_state = "on" - else - icon_state = "off" - /obj/machinery/gateway/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = MOVE_FORCE_STRONG, gentle = FALSE) return @@ -216,6 +215,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) return target = D target.activate(destination) + portal_visuals.setup_visuals(target) generate_bumper() use_power = ACTIVE_POWER_USE update_icon() @@ -307,7 +307,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) try_to_connect(D) return TRUE if("deactivate") - if(G && G.target) + if(G?.target) G.deactivate() return TRUE @@ -324,3 +324,39 @@ GLOBAL_LIST_EMPTY(gateway_destinations) /obj/item/paper/fluff/gateway info = "Congratulations,

Your station has been selected to carry out the Gateway Project.

The equipment will be shipped to you at the start of the next quarter.
You are to prepare a secure location to house the equipment as outlined in the attached documents.

--Nanotrasen Bluespace Research" name = "Confidential Correspondence, Pg 1" + +/obj/effect/gateway_portal_effect + appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + vis_flags = VIS_INHERIT_ID + layer = GATEWAY_UNDERLAY_LAYER //Slightly lower than gateway itself + var/alpha_icon = 'icons/obj/machines/gateway.dmi' + var/alpha_icon_state = "portal_mask" + var/datum/gateway_destination/our_destination + + +/obj/effect/gateway_portal_effect/proc/setup_visuals(datum/gateway_destination/D) + our_destination = D + update_portal_filters() + +/obj/effect/gateway_portal_effect/proc/reset_visuals() + our_destination = null + update_portal_filters() + +/obj/effect/gateway_portal_effect/proc/update_portal_filters() + clear_filters() + vis_contents = null + + if(!our_destination) + return + + + add_filter("portal_alpha", 1, list("type" = "alpha", "icon" = icon(alpha_icon, alpha_icon_state), "x" = 32, "y" = 32)) + add_filter("portal_blur", 1, list("type" = "blur", "size" = 0.5)) + add_filter("portal_ripple", 1, list("type" = "ripple", "size" = 2, "radius" = 1, "falloff" = 1, "y" = 7)) + + animate(get_filter("portal_ripple"), time = 1.3 SECONDS, loop = -1, easing = LINEAR_EASING, radius = 32) + + var/turf/center_turf = our_destination.get_target_turf() + + vis_contents += block(locate(center_turf.x - 1, center_turf.y - 1, center_turf.z), locate(center_turf.x + 1, center_turf.y + 1, center_turf.z)) diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm index ffa2d86e15..6551b1e336 100644 --- a/code/modules/lighting/lighting_object.dm +++ b/code/modules/lighting/lighting_object.dm @@ -10,6 +10,7 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = LIGHTING_LAYER invisibility = INVISIBILITY_LIGHTING + vis_flags = VIS_HIDE var/needs_update = FALSE var/turf/myturf diff --git a/icons/obj/machines/gateway.dmi b/icons/obj/machines/gateway.dmi index fc45145ae86f3ca8f5e2c974637b25a628b280cd..5ba943bb896bb68ae831e43a5286d9254e6c39c5 100644 GIT binary patch literal 11967 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 b42f2|Q)V?g_Qe3mNC&B_Xen1ITEG8a;Enoc literal 16139 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≧Ecu1nF|ZX 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