mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 17:14:47 +01:00
[MIRROR] Minor Gravity Fixes [MDB IGNORE] (#20127)
* Minor Gravity Fixes (#74285) ## About The Pull Request Fixes forced gravity not updating a mob (trait was added too early, before hook signals are registered) Fixes spawning a mob in space not causing floats (default grav was 0, so == null was wrong) Runs shake_everyone() (Our gravity gen reaction hook) AFTER gravity changes, ensuring mobs hook into it ## Why It's Good For The Game Closes #74271 Closes #74272 (Caused by being in nograv but not floating) Closes #74274 ## Changelog 🆑 fix: Fixes a bunch of minor gravity bugs, report em if you see more yeah? /🆑 * Minor Gravity Fixes --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
This commit is contained in:
@@ -224,4 +224,4 @@
|
||||
var/list/imaginary_group = null
|
||||
|
||||
/// What our current gravity state is. Used to avoid duplicate animates and such
|
||||
var/gravity_state = 0
|
||||
var/gravity_state = null
|
||||
|
||||
@@ -311,14 +311,16 @@ GLOBAL_LIST_EMPTY(gravity_generators)
|
||||
update_use_power(ACTIVE_POWER_USE)
|
||||
|
||||
soundloop.start()
|
||||
if (!gravity_in_level())
|
||||
var/old_gravity = gravity_in_level()
|
||||
complete_state_update()
|
||||
gravity_field = new(src, 2, TRUE, 6)
|
||||
|
||||
if (!old_gravity)
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
investigate_log("was brought online and is now producing gravity for this level.", INVESTIGATE_GRAVITY)
|
||||
message_admins("The gravity generator was brought online [ADMIN_VERBOSEJMP(src)]")
|
||||
shake_everyone()
|
||||
gravity_field = new(src, 2, TRUE, 6)
|
||||
|
||||
complete_state_update()
|
||||
|
||||
/obj/machinery/gravity_generator/main/proc/disable()
|
||||
charging_state = POWER_IDLE
|
||||
@@ -327,13 +329,15 @@ GLOBAL_LIST_EMPTY(gravity_generators)
|
||||
|
||||
soundloop.stop()
|
||||
QDEL_NULL(gravity_field)
|
||||
if (gravity_in_level())
|
||||
var/old_gravity = gravity_in_level()
|
||||
complete_state_update()
|
||||
|
||||
if (old_gravity)
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
investigate_log("was brought offline and there is now no gravity for this level.", INVESTIGATE_GRAVITY)
|
||||
message_admins("The gravity generator was brought offline with no backup generator. [ADMIN_VERBOSEJMP(src)]")
|
||||
shake_everyone()
|
||||
|
||||
complete_state_update()
|
||||
|
||||
/obj/machinery/gravity_generator/main/proc/complete_state_update()
|
||||
update_appearance()
|
||||
@@ -431,11 +435,6 @@ GLOBAL_LIST_EMPTY(gravity_generators)
|
||||
GLOB.gravity_generators["[z]"] -= src
|
||||
SSmapping.calculate_z_level_gravity(z)
|
||||
|
||||
/obj/machinery/gravity_generator/main/proc/change_setting(value)
|
||||
if(value != setting)
|
||||
setting = value
|
||||
shake_everyone()
|
||||
|
||||
/obj/machinery/gravity_generator/main/proc/blackout()
|
||||
charge_count = 0
|
||||
breaker = FALSE
|
||||
|
||||
Reference in New Issue
Block a user