// Returns unique identifier incase one wasn't provided public int AddInteractable(IInteractable a_interactable, InteractionEventType a_eventType = null, InteractableTypeReference a_identifier = null) { int finalIdentifier; if (a_identifier == null) { finalIdentifier = finalIdentifier = GenerateUniqueIdentifier(); } else { finalIdentifier = a_identifier.GUID; } #if DEBUG if (m_interactables.ContainsKey(finalIdentifier)) { throw new System.InvalidOperationException("identifier already registered: " + finalIdentifier); } #endif m_interactables.Add(finalIdentifier, a_interactable); m_registeredIdentifiers.Add(finalIdentifier); // add eventType filter if (a_eventType != null) { m_interactablesEventTypeFilter.Add(finalIdentifier, a_eventType); } return(finalIdentifier); }
// Returns unique identifier incase one wasn't provided public int AddIntercepter(IInteractionIntercepter a_intercepter, InteractableTypeReference a_identifier = null) { int finalIdentifier; if (a_identifier == null) { finalIdentifier = finalIdentifier = GenerateUniqueIdentifier(); } else { finalIdentifier = a_identifier.GUID; } #if DEBUG if (m_interactables.ContainsKey(finalIdentifier)) { throw new System.InvalidOperationException("identifier already registered: " + finalIdentifier); } #endif m_interceptors.Add(finalIdentifier, a_intercepter); m_registeredIdentifiers.Add(finalIdentifier); return(finalIdentifier); }