protected void SetVisibility(SessionId id, bool visible, bool isJoin) { try { bool IsVisible = VisibleToSessions.Contains(id); if (visible != IsVisible || isJoin) { if (visible) { VisibleToSessions.Add(id); } else { VisibleToSessions.Remove(id); } foreach (var mesh in ScriptableShowMeshes) { mesh.SetIsVisible(id, visible); } foreach (var mesh in ScriptableHideMeshes) { mesh.SetIsVisible(id, !visible); } if (ToggleCollisions) { AgentPrivate agent = ScenePrivate.FindAgent(id); if (agent != null && agent.IsValid) { foreach (var rb in ShowColliders) { agent.IgnoreCollisionWith(rb, !visible); } foreach (var rb in HideColliders) { agent.IgnoreCollisionWith(rb, visible); } } } } } catch (Exception) { Log.Write(LogLevel.Warning, "Error setting mesh visibility for quest"); } }
private void SetAccess(AgentPrivate agent) { bool isBanned = IsBanned(agent); if (DebugLogging) { Log.Write("Setting Access: " + !isBanned); } agent.IgnoreCollisionWith(_rb, !isBanned); }