Files
CHOMPStation2/code/modules/overmap/overmap_object.dm
2020-05-04 14:27:46 -04:00

73 lines
2.4 KiB
Plaintext

/obj/effect/overmap
name = "map object"
icon = 'icons/obj/overmap.dmi'
icon_state = "object"
var/known = 1 //shows up on nav computers automatically
var/scannable //if set to TRUE will show up on ship sensors for detailed scans
var/scanner_name //name for scans, replaces name once scanned
var/scanner_desc //description for scans
var/skybox_icon //Icon file to use for skybox
var/skybox_icon_state //Icon state to use for skybox
var/skybox_pixel_x //Shift from lower left corner of skybox
var/skybox_pixel_y //Shift from lower left corner of skybox
var/image/cached_skybox_image //Cachey
//Overlay of how this object should look on other skyboxes
/obj/effect/overmap/proc/get_skybox_representation()
if(!cached_skybox_image)
build_skybox_representation()
return cached_skybox_image
/obj/effect/overmap/proc/build_skybox_representation()
if(!skybox_icon)
return
var/image/I = image(icon = skybox_icon, icon_state = skybox_icon_state)
if(isnull(skybox_pixel_x))
skybox_pixel_x = rand(200,600)
if(isnull(skybox_pixel_y))
skybox_pixel_y = rand(200,600)
I.pixel_x = skybox_pixel_x
I.pixel_y = skybox_pixel_y
cached_skybox_image = I
/obj/effect/overmap/proc/expire_skybox_representation()
cached_skybox_image = null
/obj/effect/overmap/proc/update_skybox_representation()
expire_skybox_representation()
build_skybox_representation()
for(var/obj/effect/overmap/visitable/O in loc)
SSskybox.rebuild_skyboxes(O.map_z)
/obj/effect/overmap/proc/get_scan_data(mob/user)
if(scanner_name && (name != scanner_name)) //A silly check, but 'name' is part of appearance, so more expensive than you might think
name = scanner_name
var/dat = {"\[b\]Scan conducted at\[/b\]: [stationtime2text()] [stationdate2text()]\n\[b\]Grid coordinates\[/b\]: [x],[y]\n\n[scanner_desc]"}
return dat
/obj/effect/overmap/Initialize()
. = ..()
if(!global.using_map.use_overmap)
return INITIALIZE_HINT_QDEL
if(known)
//layer = ABOVE_LIGHTING_LAYER
plane = PLANE_LIGHTING_ABOVE
for(var/obj/machinery/computer/ship/helm/H in global.machines)
H.get_known_sectors()
/obj/effect/overmap/Crossed(var/obj/effect/overmap/visitable/other)
if(istype(other))
for(var/obj/effect/overmap/visitable/O in loc)
SSskybox.rebuild_skyboxes(O.map_z)
/obj/effect/overmap/Uncrossed(var/obj/effect/overmap/visitable/other)
if(istype(other))
SSskybox.rebuild_skyboxes(other.map_z)
for(var/obj/effect/overmap/visitable/O in loc)
SSskybox.rebuild_skyboxes(O.map_z)