From d8140276b39bff11a4ca2e6d4b8d6cc4afb48330 Mon Sep 17 00:00:00 2001 From: sebas77 Date: Fri, 13 Jul 2018 17:19:02 +0100 Subject: [PATCH] Try queries must not crash if the entity is not found force to inherit from sequencer to improve readibility --- Svelto.ECS/DataStructures/TypeSafeDictionary.cs | 9 ++++++--- Svelto.ECS/EntitiesDB.cs | 4 +--- .../Unity/GenericEntityDescriptorHolder.cs | 14 -------------- Svelto.ECS/Sequencer.cs | 2 +- 4 files changed, 8 insertions(+), 21 deletions(-) delete mode 100644 Svelto.ECS/Extensions/Unity/GenericEntityDescriptorHolder.cs diff --git a/Svelto.ECS/DataStructures/TypeSafeDictionary.cs b/Svelto.ECS/DataStructures/TypeSafeDictionary.cs index 9d33194..c53e17a 100644 --- a/Svelto.ECS/DataStructures/TypeSafeDictionary.cs +++ b/Svelto.ECS/DataStructures/TypeSafeDictionary.cs @@ -52,9 +52,7 @@ namespace Svelto.ECS.Internal { for (var i = 0; i < count; i++) { - var entityView = buffer[i]; - - Add(entityView.ID.entityID, entityView); + Add(buffer[i].ID.entityID, ref buffer[i]); } } catch (Exception e) @@ -169,6 +167,11 @@ namespace Svelto.ECS.Internal return findIndex; } + public bool TryFindElementIndex(int entityGidEntityId, out uint index) + { + return FindIndex(entityGidEntityId, out index); + } + static readonly Type _type = typeof(TValue); } } \ No newline at end of file diff --git a/Svelto.ECS/EntitiesDB.cs b/Svelto.ECS/EntitiesDB.cs index 27f4a1c..ceac8ba 100644 --- a/Svelto.ECS/EntitiesDB.cs +++ b/Svelto.ECS/EntitiesDB.cs @@ -64,9 +64,7 @@ namespace Svelto.ECS.Internal return null; } - if (casted != null) - index = casted.FindElementIndex(entityGID.entityID); - else + if (casted == null || casted.TryFindElementIndex(entityGID.entityID, out index) == false) { index = 0; return null; diff --git a/Svelto.ECS/Extensions/Unity/GenericEntityDescriptorHolder.cs b/Svelto.ECS/Extensions/Unity/GenericEntityDescriptorHolder.cs deleted file mode 100644 index b6e3ac1..0000000 --- a/Svelto.ECS/Extensions/Unity/GenericEntityDescriptorHolder.cs +++ /dev/null @@ -1,14 +0,0 @@ -#if UNITY_5 || UNITY_5_3_OR_NEWER -namespace Svelto.ECS -{ - public class GenericEntityDescriptorHolder: - UnityEngine.MonoBehaviour , IEntityDescriptorHolder - where T: IEntityDescriptor, new() - { - public IEntityBuilder[] GetEntitiesToBuild() - { - return EntityDescriptorTemplate.descriptor.entitiesToBuild; - } - } -} -#endif \ No newline at end of file diff --git a/Svelto.ECS/Sequencer.cs b/Svelto.ECS/Sequencer.cs index 2d72cb4..83c0878 100644 --- a/Svelto.ECS/Sequencer.cs +++ b/Svelto.ECS/Sequencer.cs @@ -47,7 +47,7 @@ namespace Svelto.ECS void Next(IEngine engine, ref T param, C condition) where C : struct, IConvertible; } - public class Sequencer : ISequencer + public abstract class Sequencer : ISequencer { public void SetSequence(Steps steps) {