public PatternResult Register(PatternIdent patternIdent) { if (InstanceId != 0) { throw new InvalidOperationException(); } if (!m_IdLink.ContainsValue(patternIdent.Name)) { var id = m_IdCounter++; m_IdLink[id] = patternIdent.Name; var patternResult = new PatternResult { Id = id, Internal = patternIdent }; m_ResultLink[patternIdent.Name] = patternResult; PatternRegister?.Invoke(patternResult); } else { Debug.LogWarning($"Some systems are trying to register an already existing pattern! (p={patternIdent.Name})"); } m_StringLink[patternIdent.Name] = patternIdent; return(GetPatternResult(patternIdent)); }
public bool FullEquals(PatternResult other) { return(Internal == other.Internal); }
public bool Equals(PatternResult other) { return(Id == other.Id); }
public void ForceLink(PatternResult patternResult) { m_IdLink[patternResult.Id] = patternResult.Internal.Name; m_ResultLink[patternResult.Internal.Name] = patternResult; m_StringLink[patternResult.Internal.Name] = patternResult.Internal; }