// PRAGMA MARK - Public Interface
        public DTEntity()
        {
#if UNITY_EDITOR
            // only do this expensive initialization if we're being created in the unity editor
            DTEntityInitializer.Initialize(this.GetType(), this);
#endif
        }
        public static void Initialize(Type entityType, DTEntity entity)
        {
            if (entity.Initialized)
            {
                return;
            }

            FieldInfo[] componentFields = DTEntityInitializer.GetComponentFields(entityType);
            foreach (FieldInfo componentField in componentFields)
            {
                object component = componentField.GetValue(entity);
                entity.AddComponent(componentField.FieldType, component);
            }

            entity.FinishInitializing();
        }
Exemple #3
0
        private void CreateMap()
        {
            this._map.Clear();

            foreach (TEntity entity in this._data)
            {
                if (entity == null)
                {
                    continue;
                }

                DTEntityInitializer.Initialize <TEntity>(entity);

                IdComponent idComponent = entity.GetComponent <IdComponent>();
                if (idComponent == null)
                {
                    Debug.LogError("IdList - entity does not have IdComponent!");
                    continue;
                }

                this._map[idComponent.id] = entity;
            }
        }
 // PRAGMA MARK - Static
 public static void Initialize <TEntity>(TEntity entity) where TEntity : DTEntity
 {
     DTEntityInitializer.Initialize(typeof(TEntity), entity);
 }