diff --git a/src/DebugUtils/MetaAttributes/MetaIDAttribute.cs b/src/DebugUtils/MetaAttributes/MetaIDAttribute.cs index 7ccdaef..c42f9bf 100644 --- a/src/DebugUtils/MetaAttributes/MetaIDAttribute.cs +++ b/src/DebugUtils/MetaAttributes/MetaIDAttribute.cs @@ -160,6 +160,8 @@ namespace DCFApixels.DragonECS private Entry[] _entries; private int _collisionsCount; private int _listsCount; + private HashSet _collidingIDs; + public int CollisionsCount { get { return _collisionsCount; } @@ -181,6 +183,15 @@ namespace DCFApixels.DragonECS } } + public bool IsCollidingID(string id) + { + if(_collidingIDs== null) + { + return false; + } + return _collidingIDs.Contains(id); + } + public CollisionList(IEnumerable metas) { var metasCount = metas.Count(); @@ -223,6 +234,7 @@ namespace DCFApixels.DragonECS if (hasCollision) { + _collidingIDs = new HashSet(); for (int i = 0; i < _listsCount; i++) { ref var list = ref _linkedLists[i]; @@ -231,6 +243,10 @@ namespace DCFApixels.DragonECS _linkedLists[i--] = _linkedLists[--_listsCount]; } } + for (int i = 0; i < _listsCount; i++) + { + _collidingIDs.Add(this[i].MetaID); + } } else {