using UnityEngine; namespace everlaster { public class DisableCollisionOnAddPerson : MVRScript { JSONStorableBool _disableCollisionOnAtomAdded; JSONStorableBool _disableCollisionOnSceneLoaded; public override void Init() { var tf = CreateTextField(new JSONStorableString("info", "\n\nDisable person atom collision:")); tf.height = 100; tf.backgroundColor = Color.clear; _disableCollisionOnAtomAdded = new JSONStorableBool("On Person Added", true); RegisterBool(_disableCollisionOnAtomAdded); CreateToggle(_disableCollisionOnAtomAdded); _disableCollisionOnSceneLoaded = new JSONStorableBool("On Scene Loaded", true); RegisterBool(_disableCollisionOnSceneLoaded); CreateToggle(_disableCollisionOnSceneLoaded); SuperController.singleton.onAtomAddedHandlers += OnAtomAdded; SuperController.singleton.onSceneLoadedHandlers += OnSceneLoaded; } void OnAtomAdded(Atom atom) { if(!enabled || !_disableCollisionOnAtomAdded.val || atom.type != "Person") { return; } DisableCollision(atom); } void OnSceneLoaded() { if(!enabled || !_disableCollisionOnSceneLoaded.val) { return; } foreach(var atom in SuperController.singleton.GetAtoms()) { if(atom.type == "Person") { DisableCollision(atom); } } } static void DisableCollision(Atom atom) => atom.GetStorableByID("AtomControl").SetBoolParamValue("collisionEnabled", false); void OnDestroy() { SuperController.singleton.onAtomAddedHandlers -= OnAtomAdded; SuperController.singleton.onSceneLoadedHandlers -= OnSceneLoaded; } } }