From 42328fe27815093e11e6f4f97db51951898f1ca8 Mon Sep 17 00:00:00 2001 From: sebas77 Date: Tue, 19 Jun 2018 00:06:26 +0100 Subject: [PATCH] improving class names --- .../DataStructures/TypeSafeDictionary.cs | 4 +- Svelto.ECS/EnginesRoot.Engines.cs | 4 +- Svelto.ECS/EnginesRoot.Entities.cs | 2 +- Svelto.ECS/{EntityViewsDB.cs => EntityDb.cs} | 4 +- Svelto.ECS/EntityInfoView.cs | 9 +++ Svelto.ECS/EntityView.cs | 52 +++++++++++++++ ...EntityViewBuilder.cs => IEntityBuilder.cs} | 0 .../{IEntityViewsDB.cs => IEntityDB.cs} | 2 +- Svelto.ECS/IEntityStruct.cs | 8 +++ Svelto.ECS/IEntityViewStruct.cs | 63 ------------------- Svelto.ECS/IQueryingEntityViewEngine.cs | 2 +- ...iptor.cs => StaticEntityDescriptorInfo.cs} | 16 ++--- 12 files changed, 86 insertions(+), 80 deletions(-) rename Svelto.ECS/{EntityViewsDB.cs => EntityDb.cs} (97%) create mode 100644 Svelto.ECS/EntityInfoView.cs create mode 100644 Svelto.ECS/EntityView.cs rename Svelto.ECS/{IEntityViewBuilder.cs => IEntityBuilder.cs} (100%) rename Svelto.ECS/{IEntityViewsDB.cs => IEntityDB.cs} (98%) create mode 100644 Svelto.ECS/IEntityStruct.cs rename Svelto.ECS/{EntityDescriptor.cs => StaticEntityDescriptorInfo.cs} (67%) diff --git a/Svelto.ECS/DataStructures/TypeSafeDictionary.cs b/Svelto.ECS/DataStructures/TypeSafeDictionary.cs index d7100c3..da62807 100644 --- a/Svelto.ECS/DataStructures/TypeSafeDictionary.cs +++ b/Svelto.ECS/DataStructures/TypeSafeDictionary.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using Svelto.DataStructures; - using Svelto.DataStructures.Experimental; - using Svelto.Utilities; +using Svelto.DataStructures.Experimental; +using Svelto.Utilities; namespace Svelto.ECS.Internal { diff --git a/Svelto.ECS/EnginesRoot.Engines.cs b/Svelto.ECS/EnginesRoot.Engines.cs index f8de1a6..61fd555 100644 --- a/Svelto.ECS/EnginesRoot.Engines.cs +++ b/Svelto.ECS/EnginesRoot.Engines.cs @@ -43,7 +43,7 @@ namespace Svelto.ECS _groupedEntityToAdd = new DoubleBufferedEntityViews>>(); - _DB = new EntityViewsDB(_groupEntityDB); + _DB = new EntityDb(_groupEntityDB); _scheduler = entityViewScheduler; _scheduler.Schedule(new WeakAction(SubmitEntityViews)); @@ -64,7 +64,7 @@ namespace Svelto.ECS var queryableEntityViewEngine = engine as IQueryingEntityViewEngine; if (queryableEntityViewEngine != null) { - queryableEntityViewEngine.entityViewsDB = _DB; + queryableEntityViewEngine.EntityDb = _DB; queryableEntityViewEngine.Ready(); } } diff --git a/Svelto.ECS/EnginesRoot.Entities.cs b/Svelto.ECS/EnginesRoot.Entities.cs index 0feb640..bff4149 100644 --- a/Svelto.ECS/EnginesRoot.Entities.cs +++ b/Svelto.ECS/EnginesRoot.Entities.cs @@ -195,7 +195,7 @@ namespace Svelto.ECS return new EGID(firstID, toGroupId); } - readonly EntityViewsDB _DB; + readonly EntityDb _DB; //grouped set of entity views, this is the standard way to handle entity views readonly Dictionary> _groupEntityDB; diff --git a/Svelto.ECS/EntityViewsDB.cs b/Svelto.ECS/EntityDb.cs similarity index 97% rename from Svelto.ECS/EntityViewsDB.cs rename to Svelto.ECS/EntityDb.cs index 60515c8..ba895c1 100644 --- a/Svelto.ECS/EntityViewsDB.cs +++ b/Svelto.ECS/EntityDb.cs @@ -5,9 +5,9 @@ using Svelto.Utilities; namespace Svelto.ECS.Internal { - class EntityViewsDB : IEntityViewsDB + class EntityDb : IEntityDB { - internal EntityViewsDB(Dictionary> groupEntityViewsDB) + internal EntityDb(Dictionary> groupEntityViewsDB) { _groupEntityViewsDB = groupEntityViewsDB; } diff --git a/Svelto.ECS/EntityInfoView.cs b/Svelto.ECS/EntityInfoView.cs new file mode 100644 index 0000000..419d531 --- /dev/null +++ b/Svelto.ECS/EntityInfoView.cs @@ -0,0 +1,9 @@ +namespace Svelto.ECS +{ + public struct EntityInfoView : IEntityStruct + { + public EGID ID { get; set; } + + public IEntityBuilder[] entityToBuild; + } +} \ No newline at end of file diff --git a/Svelto.ECS/EntityView.cs b/Svelto.ECS/EntityView.cs new file mode 100644 index 0000000..270b422 --- /dev/null +++ b/Svelto.ECS/EntityView.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using Svelto.DataStructures; +using Svelto.Utilities; + +namespace Svelto.ECS +{ + static class EntityView where T: IEntityStruct, new() + { + internal static readonly FasterList>> cachedFields; + + static EntityView() + { + cachedFields = new FasterList>>(); + + var type = typeof(T); + + var fields = type.GetFields(BindingFlags.Public | + BindingFlags.Instance); + + for (int i = fields.Length - 1; i >= 0; --i) + { + var field = fields[i]; + + ActionCast setter = FastInvoke.MakeSetter(field); + + cachedFields.Add(new KeyValuePair>(field.FieldType, setter)); + } + } + + internal static void InitCache() + {} + + internal static void BuildEntityView(EGID ID, out T entityView) + { + entityView = new T { ID = ID }; + } + } + + ///EntityViews can inherit from the EntityView class + public class EntityView : IEntityViewStruct + { + public EGID ID + { + get { return _ID; } + set { _ID = value; } + } + + EGID _ID; + } +} \ No newline at end of file diff --git a/Svelto.ECS/IEntityViewBuilder.cs b/Svelto.ECS/IEntityBuilder.cs similarity index 100% rename from Svelto.ECS/IEntityViewBuilder.cs rename to Svelto.ECS/IEntityBuilder.cs diff --git a/Svelto.ECS/IEntityViewsDB.cs b/Svelto.ECS/IEntityDB.cs similarity index 98% rename from Svelto.ECS/IEntityViewsDB.cs rename to Svelto.ECS/IEntityDB.cs index 8e5bede..925a49a 100644 --- a/Svelto.ECS/IEntityViewsDB.cs +++ b/Svelto.ECS/IEntityDB.cs @@ -3,7 +3,7 @@ using Svelto.Utilities; namespace Svelto.ECS { - public interface IEntityViewsDB + public interface IEntityDB { /// /// All the EntityView related methods are left for back compatibility, but diff --git a/Svelto.ECS/IEntityStruct.cs b/Svelto.ECS/IEntityStruct.cs new file mode 100644 index 0000000..b429fbe --- /dev/null +++ b/Svelto.ECS/IEntityStruct.cs @@ -0,0 +1,8 @@ +namespace Svelto.ECS +{ + ///EntityStruct MUST implement IEntiyStruct + public interface IEntityStruct + { + EGID ID { get; set; } + } +} \ No newline at end of file diff --git a/Svelto.ECS/IEntityViewStruct.cs b/Svelto.ECS/IEntityViewStruct.cs index a1cf343..21d8a83 100644 --- a/Svelto.ECS/IEntityViewStruct.cs +++ b/Svelto.ECS/IEntityViewStruct.cs @@ -1,70 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using Svelto.DataStructures; -using Svelto.Utilities; - namespace Svelto.ECS { - ///EntityStruct MUST implement IEntiyStruct - public interface IEntityStruct - { - EGID ID { get; set; } - } - ///EntityViewStructs MUST implement IEntityViewStruct public interface IEntityViewStruct:IEntityStruct {} - - ///EntityViews can inherit from the EntityView class - public class EntityView : IEntityViewStruct - { - public EGID ID - { - get { return _ID; } - set { _ID = value; } - } - - EGID _ID; - } - - public struct EntityInfoView : IEntityStruct - { - public EGID ID { get; set; } - - public IEntityBuilder[] entityToBuild; - } - - public static class EntityView where T: IEntityStruct, new() - { - internal static readonly FasterList>> cachedFields; - - static EntityView() - { - cachedFields = new FasterList>>(); - - var type = typeof(T); - - var fields = type.GetFields(BindingFlags.Public | - BindingFlags.Instance); - - for (int i = fields.Length - 1; i >= 0; --i) - { - var field = fields[i]; - - ActionCast setter = FastInvoke.MakeSetter(field); - - cachedFields.Add(new KeyValuePair>(field.FieldType, setter)); - } - } - - internal static void InitCache() - {} - - internal static void BuildEntityView(EGID ID, out T entityView) - { - entityView = new T { ID = ID }; - } - } } diff --git a/Svelto.ECS/IQueryingEntityViewEngine.cs b/Svelto.ECS/IQueryingEntityViewEngine.cs index 441bdc3..2205daf 100644 --- a/Svelto.ECS/IQueryingEntityViewEngine.cs +++ b/Svelto.ECS/IQueryingEntityViewEngine.cs @@ -2,7 +2,7 @@ namespace Svelto.ECS { public interface IQueryingEntityViewEngine : IEngine { - IEntityViewsDB entityViewsDB { set; } + IEntityDB EntityDb { set; } void Ready(); } diff --git a/Svelto.ECS/EntityDescriptor.cs b/Svelto.ECS/StaticEntityDescriptorInfo.cs similarity index 67% rename from Svelto.ECS/EntityDescriptor.cs rename to Svelto.ECS/StaticEntityDescriptorInfo.cs index b0de835..47c43cf 100644 --- a/Svelto.ECS/EntityDescriptor.cs +++ b/Svelto.ECS/StaticEntityDescriptorInfo.cs @@ -15,17 +15,17 @@ namespace Svelto.ECS this.entitiesToBuild = entityToBuild; } - public IEntityBuilder[] entitiesToBuild { get; } + public IEntityBuilder[] entitiesToBuild { get; private set; } } public static class EntityDescriptorTemplate where TType : IEntityDescriptor, new() { - public static readonly EntityDescriptor descriptor = new EntityDescriptor(new TType()); + public static readonly StaticEntityDescriptorInfo descriptor = new StaticEntityDescriptorInfo(new TType()); } - public struct DynamicEntityDescriptorInfo:IEntityDescriptor where TType : IEntityDescriptor, new() + public struct DynamicEntityDescriptorInfo where TType : IEntityDescriptor, new() { - public DynamicEntityDescriptorInfo(FasterList extraEntityViews) + public DynamicEntityDescriptorInfo(FasterList extraEntityViews) : this() { DBC.ECS.Check.Require(extraEntityViews.Count > 0, "don't use a DynamicEntityDescriptorInfo if you don't need to use extra EntityViews"); @@ -39,16 +39,16 @@ namespace Svelto.ECS Array.Copy(extraEntityViews.ToArrayFast(), 0, entitiesToBuild, length, extraEntityViews.Count); } - public IEntityBuilder[] entitiesToBuild { get; } + public IEntityBuilder[] entitiesToBuild { get; private set; } } - public struct EntityDescriptor:IEntityDescriptor where TType : IEntityDescriptor + public struct StaticEntityDescriptorInfo where TType : IEntityDescriptor { - internal EntityDescriptor(TType descriptor) + internal StaticEntityDescriptorInfo(TType descriptor) : this() { entitiesToBuild = descriptor.entitiesToBuild; } - public IEntityBuilder[] entitiesToBuild { get; } + public IEntityBuilder[] entitiesToBuild { get; private set; } } }