VR pod and mob TF fixes & adjustments (#17397)

* Makes VR not crash the server

- Makes mouse rays no longer crash the server under certain circumstances
- Makes VR pods no longer crash the server (Method #1)
- Makes VR pods no longer crash the server (Method #2)
- I think there was a third method to crash the server with VR pods. That got fixed too. If it existed.
- Updates TF and makes it no longer cause runtimes & crashes.
- Makes it so you can no longer repeatedly spawn in VR and clog up the server with hundreds of yourself (humanoids are expensive!)
- Adds a greyscale effect for reconverting TF rays
- Added a toggle for VR pods to spawn people with clothing or not
- Ghosts now have a button to enter the VR space if it's spawned in!
- Ghosts can now enter VR if it's spawned in!
- Adds the ability to TF into different creatures while in VR

* turfs

* moving stuff around

also small drippy fix while at it

* shhhh

* Update ar_console.dm
This commit is contained in:
Cameron Lennox
2025-03-21 16:58:25 -04:00
committed by GitHub
parent 86ee9df7f9
commit 95e3bf67c4
24 changed files with 937 additions and 65 deletions
@@ -29,13 +29,14 @@
spawn(50)
if(QDELETED(character) || QDELETED(pref))
return // They might have been deleted during the wait
if(pref.resleeve_scan)
var/datum/transhuman/body_record/BR = new()
BR.init_from_mob(character, pref.resleeve_scan, pref.resleeve_lock)
if(pref.mind_scan)
var/datum/transcore_db/our_db = SStranscore.db_by_key(null)
if(our_db)
our_db.m_backup(character.mind,character.nif,one_time = TRUE)
if(!character.virtual_reality_mob && !(/mob/living/carbon/human/proc/exit_vr in character.verbs)) //Janky fix to prevent resleeving VR avatars but beats refactoring transcore
if(pref.resleeve_scan)
var/datum/transhuman/body_record/BR = new()
BR.init_from_mob(character, pref.resleeve_scan, pref.resleeve_lock)
if(pref.mind_scan)
var/datum/transcore_db/our_db = SStranscore.db_by_key(null)
if(our_db)
our_db.m_backup(character.mind,character.nif,one_time = TRUE)
if(pref.resleeve_lock)
character.resleeve_lock = character.ckey
character.original_player = character.ckey