public void AddToRegister(string key, ICanCollide gameObject, RegisterSide side) { CheckObjectForNull(gameObject); var register = _collisionRegisters[key]; if (side == RegisterSide.Left) { if (register.RegistredItems.Item1.Contains(gameObject)) { throw new GameObjectAlreadyExistsInRegisterException(); } register.RegistredItems.Item1.Add(gameObject); } else { if (register.RegistredItems.Item2.Contains(gameObject)) { throw new GameObjectAlreadyExistsInRegisterException(); } register.RegistredItems.Item2.Add(gameObject); } }
public void RemoveObjectFromAllRegisterBySide(ICanCollide gameObject, RegisterSide side) { CheckObjectForNull(gameObject); foreach (var register in _collisionRegisters.Values) { if (side == RegisterSide.Left) { register.RegistredItems.Item1.Remove(gameObject); } else { register.RegistredItems.Item2.Remove(gameObject); } } }
public void RemoveObjectFromRegisterBySide(string key, ICanCollide gameObject, RegisterSide side) { CheckObjectForNull(gameObject); if (!_collisionRegisters.ContainsKey(key)) { throw new KeyNotFoundInRegisterException(); } var register = _collisionRegisters[key]; if (side == RegisterSide.Left) { register.RegistredItems.Item1.Remove(gameObject); } else { register.RegistredItems.Item2.Remove(gameObject); } }