mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
## About The Pull Request
Makes more machinery using MAP_SWITCHes so their fancy preview icons
could be displayed in SDMM. MAP_SWITCH takes original icon+icon_state of
machinery as first argument and icon+icon_state (basically a machinery
part because the naming system, like `MAP_SWITCH("computer",
"/obj/machinery/computer/slot_machine")` ) from
icons/obj/fluff/map_previews.dmi
Adds a tool (subsystem) for that need that generates preview icons for
stuff that has overlays. To include them in preview generating you have
to set specific variable to TRUE.
## Why It's Good For The Game
Lets us do this instead of black boring consoles:
(before)
<img width="641" height="575" alt="image"
src="https://github.com/user-attachments/assets/35fc5a19-bc24-4c02-957a-43ddef86e684"
/>
(after)
<img width="641" height="575" alt="image"
src="https://github.com/user-attachments/assets/99310823-747f-4e0a-acf8-60abcc8f2ed1"
/>
## Changelog
🆑
qol: Made machinery with overlays actually be properly displayed in SDMM
editor.
/🆑
75 lines
3.2 KiB
Plaintext
75 lines
3.2 KiB
Plaintext
#define SYNDICATE_CHALLENGE_TIMER (20 MINUTES)
|
|
|
|
/obj/machinery/computer/shuttle/syndicate
|
|
name = "syndicate shuttle terminal"
|
|
desc = "The terminal used to control the syndicate transport shuttle."
|
|
circuit = /obj/item/circuitboard/computer/syndicate_shuttle
|
|
icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate")
|
|
icon_screen = "syndishuttle"
|
|
icon_keyboard = "syndie_key"
|
|
light_color = COLOR_SOFT_RED
|
|
req_access = list(ACCESS_SYNDICATE)
|
|
shuttleId = "syndicate"
|
|
possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom"
|
|
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
|
|
|
/obj/machinery/computer/shuttle/syndicate/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/tool_blocker, TOOL_SCREWDRIVER, TOOL_ACT_PRIMARY)
|
|
|
|
/obj/machinery/computer/shuttle/syndicate/launch_check(mob/user)
|
|
. = ..()
|
|
if(!.)
|
|
return FALSE
|
|
var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
|
|
if(board?.challenge_start_time && world.time < board.challenge_start_time + SYNDICATE_CHALLENGE_TIMER)
|
|
to_chat(user, span_warning("You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(board.challenge_start_time + SYNDICATE_CHALLENGE_TIMER - world.time)] more to allow them to prepare."))
|
|
return FALSE
|
|
board.moved = TRUE
|
|
return TRUE
|
|
|
|
/obj/machinery/computer/shuttle/syndicate/recall
|
|
name = "syndicate shuttle recall terminal"
|
|
desc = "Use this if your friends left you behind."
|
|
possible_destinations = "syndicate_away"
|
|
|
|
/obj/machinery/computer/shuttle/syndicate/drop_pod
|
|
name = "syndicate assault pod control"
|
|
desc = "Controls the drop pod's launch system."
|
|
icon = 'icons/obj/machines/wallmounts.dmi'
|
|
icon_state = "pod_off"
|
|
icon_keyboard = null
|
|
icon_screen = "pod_on"
|
|
light_color = LIGHT_COLOR_BLUE
|
|
req_access = list(ACCESS_SYNDICATE)
|
|
shuttleId = "steel_rain"
|
|
possible_destinations = null
|
|
|
|
/obj/machinery/computer/shuttle/syndicate/drop_pod/launch_check(mob/user)
|
|
. = ..()
|
|
if(!.)
|
|
return FALSE
|
|
if(!is_reserved_level(z))
|
|
to_chat(user, span_warning("Pods are one way!"))
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate
|
|
name = "syndicate shuttle navigation computer"
|
|
desc = "Used to designate a precise transit location for the syndicate shuttle."
|
|
icon_state = MAP_SWITCH("computer", "/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate")
|
|
icon_screen = "syndishuttle"
|
|
icon_keyboard = "syndie_key"
|
|
shuttleId = "syndicate"
|
|
lock_override = CAMERA_LOCK_STATION
|
|
shuttlePortId = "syndicate_custom"
|
|
jump_to_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1)
|
|
view_range = 5.5
|
|
x_offset = 7 //flip both offsets because the shuttle is mapped in facing SOUTH, not NORTH; the docking port is also rotated
|
|
y_offset = 1
|
|
whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava, /turf/closed/mineral, /turf/open/openspace, /turf/open/misc)
|
|
see_hidden = TRUE
|
|
circuit = /obj/item/circuitboard/computer/syndicate_shuttle_docker
|
|
|
|
#undef SYNDICATE_CHALLENGE_TIMER
|