public void FindSceneToEdit() { foreach (IParcelScene scene in Environment.i.world.state.scenesSortedByDistance) { if (WorldStateUtils.IsCharacterInsideScene(scene)) { ParcelScene parcelScene = (ParcelScene)scene; if (sceneToEdit != null && sceneToEdit != parcelScene) { actionController.Clear(); } sceneToEdit = parcelScene; break; } } }
private void SetRaycastInfoData(ref RaycastHitInfo hitInfo, IParcelScene scene) { if (hitInfo.hit.collider == null) { return; } if (!CollidersManager.i.GetColliderInfo(hitInfo.hit.collider, out ColliderInfo info)) { return; } if (scene != null) { hitInfo.isValid = (info.scene == scene) || (scene is GlobalScene globalScene && globalScene.isPortableExperience); } else if (scene == null && WorldStateUtils.IsCharacterInsideScene(info.scene)) { hitInfo.isValid = true; } }