mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 01:34:01 +00:00
* Clean up subsystem Initialize(), require an explicit result returned, give a formal way to fail (for SSlua) * [PR for MIRROR PR] Changes for 16248 (#16277) * Merge skyrat changes, update SR SS's, and remove lobby_eye * Apply suggestions from code review Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * Update modular_skyrat/modules/autotransfer/code/autotransfer.dm Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * restore lobby_cam for now Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: Tastyfish <crazychris32@gmail.com> Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
32 lines
907 B
Plaintext
32 lines
907 B
Plaintext
SUBSYSTEM_DEF(sun)
|
|
name = "Sun"
|
|
wait = 1 MINUTES
|
|
|
|
var/azimuth = 0 ///clockwise, top-down rotation from 0 (north) to 359
|
|
var/azimuth_mod = 1 ///multiplier against base_rotation
|
|
var/base_rotation = 6 ///base rotation in degrees per fire
|
|
|
|
/datum/controller/subsystem/sun/Initialize()
|
|
azimuth = rand(0, 359)
|
|
azimuth_mod = round(rand(50, 200)/100, 0.01) // 50% - 200% of standard rotation
|
|
if(prob(50))
|
|
azimuth_mod *= -1
|
|
return SS_INIT_SUCCESS
|
|
|
|
/datum/controller/subsystem/sun/fire(resumed = FALSE)
|
|
azimuth += azimuth_mod * base_rotation
|
|
azimuth = round(azimuth, 0.01)
|
|
if(azimuth >= 360)
|
|
azimuth -= 360
|
|
if(azimuth < 0)
|
|
azimuth += 360
|
|
complete_movement()
|
|
|
|
/datum/controller/subsystem/sun/proc/complete_movement()
|
|
SEND_SIGNAL(src, COMSIG_SUN_MOVED, azimuth)
|
|
|
|
/datum/controller/subsystem/sun/vv_edit_var(var_name, var_value)
|
|
. = ..()
|
|
if(var_name == NAMEOF(src, azimuth))
|
|
complete_movement()
|