private void GetValidScriptScopes(List <ScriptScope> results, bool allowTemp = true, ScopeFindType values = ScopeFindType.Object) { if (Topmost != this || allowTemp) { visited.Clear(); } if (Topmost != this) { Topmost.GetValidScriptScopes(results, allowTemp, values); return; } if (visited.Contains(this)) { return; } visited.Add(this); if (allowTemp) { foreach (var scriptScopesValue in scriptScopes.Values) { if (!results.Any(a => a.Name == scriptScopesValue.Name && a.Show(values))) { results.Add(scriptScopesValue); } } } else { foreach (var scriptScopesValue in scriptScopes.Values) { if (!scriptScopesValue.Temporary && !results.Any(a => a.Name == scriptScopesValue.Name && a.Show(values))) { results.Add(scriptScopesValue); } } } var Connections = ReferenceManager.Instance.GetConnectionsTo(Topmost.Name); foreach (var eventConnection in Connections) { eventConnection.From.GetValidScriptScopes(results, false); } }
public bool Show(ScopeFindType values) { if (values == ScopeFindType.Any) { return(true); } if (values == ScopeFindType.Object && !IsValue) { return(true); } if (values != ScopeFindType.Object && IsValue) { return(true); } return(false); }
public void GetValidScriptScopesInit(List <ScriptScope> results, bool allowTemp = true, ScopeFindType values = ScopeFindType.Object) { visited.Clear(); GetValidScriptScopes(results, allowTemp, values); }