Ports the weather system from Nebula. (#18706)

* part 1

* compiles?

* IT WORKS

* vis contents

* fixes

* umbrelloid

* umbrella 2

* dsasdd

* stuff

* lmao

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
Matt Atlas
2024-03-24 14:05:00 +00:00
committed by GitHub
co-authored by Matt Atlas
parent 82beece3db
commit 57067892d8
73 changed files with 1368 additions and 31 deletions
+21
View File
@@ -0,0 +1,21 @@
/obj/abstract
name = ""
icon = 'icons/effects/landmarks.dmi'
icon_state = "x2"
simulated = FALSE
density = FALSE
anchored = TRUE
abstract_type = /obj/abstract
invisibility = INVISIBILITY_ABSTRACT
/obj/abstract/Initialize()
. = ..()
verbs.Cut()
//Let mappers see the damn thing by just making them invisible here
opacity = FALSE
alpha = 0
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/abstract/ex_act()
SHOULD_CALL_PARENT(FALSE)
return
@@ -0,0 +1,21 @@
/obj/abstract/exterior_marker
var/set_outside
/obj/abstract/exterior_marker/Initialize()
..()
var/turf/T = loc
if(istype(T))
T.set_outside(set_outside)
return INITIALIZE_HINT_QDEL
/obj/abstract/exterior_marker/outside
name = "Outside"
set_outside = OUTSIDE_NO
/obj/abstract/exterior_marker/inside
name = "Inside"
set_outside = OUTSIDE_YES
/obj/abstract/exterior_marker/use_area
name = "Use Area Outside"
set_outside = OUTSIDE_AREA
@@ -0,0 +1,16 @@
/obj/abstract/weather_marker
name = "Weather Marker"
/// The weather type we want. This needs to be a weather singleton type, such as /singleton/state/weather/rain/storm.
/// These should be used for forcing weather in an away site or an event map.
var/weather_type
/obj/abstract/weather_marker/Initialize()
..()
return INITIALIZE_HINT_LATELOAD
/obj/abstract/weather_marker/LateInitialize()
. = ..()
if(!ispath(weather_type))
log_debug("Invalid weather type mapped in at [x] [y] [z]!")
return INITIALIZE_HINT_QDEL
SSweather.setup_weather_system(z, weather_type)