mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-07-17 11:14:11 +01:00
Add skybox planet sprite for Virgo3b, modify midpoint
This commit is contained in:
@@ -60,7 +60,6 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define INIT_ORDER_INPUT 37
|
||||
#define INIT_ORDER_CHEMISTRY 35
|
||||
#define INIT_ORDER_VIS 32
|
||||
#define INIT_ORDER_SKYBOX 30
|
||||
#define INIT_ORDER_MAPPING 25
|
||||
#define INIT_ORDER_SOUNDS 23
|
||||
#define INIT_ORDER_INSTRUMENTS 22
|
||||
@@ -87,10 +86,12 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
#define INIT_ORDER_AI_FAST -23
|
||||
#define INIT_ORDER_GAME_MASTER -24
|
||||
#define INIT_ORDER_PERSISTENCE -25
|
||||
#define INIT_ORDER_SKYBOX -30 //Visual only, irrelevant to gameplay, but needs to be late enough to have overmap populated fully
|
||||
#define INIT_ORDER_TICKER -50
|
||||
#define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init.
|
||||
|
||||
|
||||
|
||||
// Subsystem fire priority, from lowest to highest priority
|
||||
// If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child)
|
||||
#define FIRE_PRIORITY_SHUTTLES 5
|
||||
|
||||
@@ -93,13 +93,17 @@ SUBSYSTEM_DEF(skybox)
|
||||
. = ..()
|
||||
|
||||
/datum/controller/subsystem/skybox/proc/get_skybox(z)
|
||||
if(!subsystem_initialized)
|
||||
return // WAIT
|
||||
if(!skybox_cache["[z]"])
|
||||
skybox_cache["[z]"] = generate_skybox(z)
|
||||
return skybox_cache["[z]"]
|
||||
|
||||
/datum/controller/subsystem/skybox/proc/generate_skybox(z)
|
||||
var/datum/skybox_settings/settings = global.using_map.get_skybox_datum(z)
|
||||
|
||||
|
||||
var/new_overlays = list()
|
||||
|
||||
var/image/res = image(settings.icon)
|
||||
res.appearance_flags = KEEP_TOGETHER
|
||||
|
||||
@@ -111,23 +115,26 @@ SUBSYSTEM_DEF(skybox)
|
||||
stars.appearance_flags = RESET_COLOR
|
||||
base.overlays += stars
|
||||
|
||||
res.overlays += base
|
||||
new_overlays += base
|
||||
|
||||
if(global.using_map.use_overmap && settings.use_overmap_details)
|
||||
var/obj/effect/overmap/visitable/O = get_overmap_sector(z)
|
||||
if(istype(O))
|
||||
var/image/overmap = image(settings.icon)
|
||||
overmap.overlays += O.generate_skybox()
|
||||
var/image/self_image = O.generate_skybox(z)
|
||||
new_overlays += self_image
|
||||
for(var/obj/effect/overmap/visitable/other in O.loc)
|
||||
if(other != O)
|
||||
overmap.overlays += other.get_skybox_representation()
|
||||
overmap.appearance_flags = RESET_COLOR
|
||||
res.overlays += overmap
|
||||
new_overlays += other.get_skybox_representation(z)
|
||||
|
||||
// Allow events to apply custom overlays to skybox! (Awesome!)
|
||||
for(var/datum/event/E in SSevents.active_events)
|
||||
if(E.has_skybox_image && E.isRunning && (z in E.affecting_z))
|
||||
res.overlays += E.get_skybox_image()
|
||||
new_overlays += E.get_skybox_image()
|
||||
|
||||
for(var/image/I in new_overlays)
|
||||
I.appearance_flags |= RESET_COLOR
|
||||
|
||||
res.overlays = new_overlays
|
||||
|
||||
return res
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/glass = 1
|
||||
var/datum/tgui_module/appearance_changer/mirror/M
|
||||
|
||||
/obj/structure/mirror/New(var/loc, var/dir, var/building = 0, mob/user as mob)
|
||||
/obj/structure/mirror/Initialize(mapload, var/dir, var/building = 0, mob/user as mob)
|
||||
M = new(src, null)
|
||||
if(building)
|
||||
glass = 0
|
||||
|
||||
@@ -37,12 +37,12 @@
|
||||
return ..()
|
||||
|
||||
//Overlay of how this object should look on other skyboxes
|
||||
/obj/effect/overmap/proc/get_skybox_representation()
|
||||
/obj/effect/overmap/proc/get_skybox_representation(zlevel)
|
||||
if(!cached_skybox_image)
|
||||
build_skybox_representation()
|
||||
build_skybox_representation(zlevel)
|
||||
return cached_skybox_image
|
||||
|
||||
/obj/effect/overmap/proc/build_skybox_representation()
|
||||
/obj/effect/overmap/proc/build_skybox_representation(zlevel)
|
||||
if(!skybox_icon)
|
||||
return
|
||||
var/image/I = image(icon = skybox_icon, icon_state = skybox_icon_state)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
for(var/thing in restricted_waypoints[shuttle_name])
|
||||
.[thing] = name
|
||||
|
||||
/obj/effect/overmap/visitable/proc/generate_skybox()
|
||||
/obj/effect/overmap/visitable/proc/generate_skybox(zlevel)
|
||||
return
|
||||
|
||||
/obj/effect/overmap/visitable/proc/cleanup()
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 679 KiB |
+25173
-8
File diff suppressed because it is too large
Load Diff
@@ -238,7 +238,8 @@
|
||||
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
|
||||
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
|
||||
base = 1
|
||||
icon_state = "reddwarf"
|
||||
icon = 'icons/obj/overmap_vr.dmi'
|
||||
icon_state = "virgo3b"
|
||||
initial_generic_waypoints = list(
|
||||
"tether_dockarm_d1a1", //Bottom left,
|
||||
"tether_dockarm_d1a2", //Top left,
|
||||
@@ -288,6 +289,15 @@
|
||||
else if(istype(AM, /obj/effect/overmap/visitable/ship))
|
||||
atc.msg(message)
|
||||
|
||||
/obj/effect/overmap/visitable/sector/virgo3b/generate_skybox(zlevel)
|
||||
var/static/image/bigone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "large")
|
||||
var/static/image/smallone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "small")
|
||||
|
||||
if(zlevel == Z_LEVEL_TRANSIT)
|
||||
return bigone
|
||||
else
|
||||
return smallone
|
||||
|
||||
// For making the 6-in-1 holomap, we calculate some offsets
|
||||
#define TETHER_MAP_SIZE 140 // Width and height of compiled in tether z levels.
|
||||
#define TETHER_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns
|
||||
@@ -328,6 +338,7 @@
|
||||
z = Z_LEVEL_TRANSIT
|
||||
name = "Transit"
|
||||
flags = MAP_LEVEL_STATION|MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_XENOARCH_EXEMPT
|
||||
base_turf = /turf/space/v3b_midpoint // Special type that spawns fall triggers
|
||||
|
||||
/datum/map_z_level/tether/station/space_low
|
||||
z = Z_LEVEL_SPACE_LOW
|
||||
|
||||
@@ -215,3 +215,72 @@ VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor)
|
||||
dir = EAST
|
||||
/turf/simulated/sky/virgo3b/moving/west
|
||||
dir = WEST
|
||||
|
||||
/turf/simulated/floor/midpoint_glass
|
||||
name = "glass floor"
|
||||
desc = "Dont jump on it, or do, I'm not your mom."
|
||||
icon = 'icons/turf/flooring/glass.dmi'
|
||||
icon_state = "glass-0"
|
||||
base_icon_state = "glass"
|
||||
|
||||
/turf/simulated/floor/midpoint_glass/reinf
|
||||
name = "reinforced glass floor"
|
||||
desc = "Do jump on it, it can take it."
|
||||
icon = 'icons/turf/flooring/reinf_glass.dmi'
|
||||
icon_state = "reinf_glass-0"
|
||||
base_icon_state = "reinf_glass"
|
||||
|
||||
/turf/simulated/floor/midpoint_glass/Initialize()
|
||||
. = ..()
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/turf/simulated/floor/midpoint_glass/LateInitialize()
|
||||
do_icons()
|
||||
|
||||
/turf/simulated/floor/midpoint_glass/proc/do_icons()
|
||||
var/new_junction = NONE
|
||||
|
||||
for(var/direction in cardinal) //Cardinal case first.
|
||||
var/turf/T = get_step(src, direction)
|
||||
if(istype(T, type))
|
||||
new_junction |= direction
|
||||
|
||||
if(!(new_junction & (NORTH|SOUTH)) || !(new_junction & (EAST|WEST)))
|
||||
icon_state = "[base_icon_state]-[new_junction]"
|
||||
return
|
||||
|
||||
if(new_junction & NORTH)
|
||||
if(new_junction & WEST)
|
||||
var/turf/T = get_step(src, NORTHWEST)
|
||||
if(istype(T, type))
|
||||
new_junction |= (1<<7)
|
||||
|
||||
if(new_junction & EAST)
|
||||
var/turf/T = get_step(src, NORTHEAST)
|
||||
if(istype(T, type))
|
||||
new_junction |= (1<<4)
|
||||
|
||||
if(new_junction & SOUTH)
|
||||
if(new_junction & WEST)
|
||||
var/turf/T = get_step(src, SOUTHWEST)
|
||||
if(istype(T, type))
|
||||
new_junction |= (1<<6)
|
||||
|
||||
if(new_junction & EAST)
|
||||
var/turf/T = get_step(src, SOUTHEAST)
|
||||
if(istype(T, type))
|
||||
new_junction |= (1<<5)
|
||||
|
||||
icon_state = "[base_icon_state]-[new_junction]"
|
||||
|
||||
add_vis_overlay('icons/effects/effects.dmi', "white", plane = SPACE_PLANE, add_vis_flags = VIS_INHERIT_ID|VIS_UNDERLAY)
|
||||
|
||||
/turf/space/v3b_midpoint/Initialize()
|
||||
. = ..()
|
||||
new /obj/effect/step_trigger/teleporter/planetary_fall/virgo3b(src)
|
||||
|
||||
/turf/space/v3b_midpoint/ChangeTurf(turf/N, tell_universe, force_lighting_update, preserve_outdoors)
|
||||
. = ..()
|
||||
for(var/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b/F in src)
|
||||
qdel(F)
|
||||
|
||||
Reference in New Issue
Block a user