コード例 #1
0
ファイル: Memory.cs プロジェクト: fuboss/aiProject
        /// <summary>
        /// Create new memry node or update if exists
        /// </summary>
        /// <param name="actor"></param>
        public void Remember(Actor actor)
        {
            var entity = actor.GetEntity();

            if (_memory.ContainsKey(entity))
            {
                _memory[entity].Remember(actor);
            }
            else
            {
                var entityInfo = new EntityInfo(entity);
                entity.SetEntity(entityInfo);
                entityInfo.Remember(actor);
                _memory.Add(entity, entityInfo);
            }

            //TODO: сделать подобное рекурсивно для всех включенных парентов
            if (entity.Parent != null)
            {
                if (_memory.ContainsKey(entity.Parent))
                {
                    _memory[entity.Parent].Remember(actor);
                }
                else
                {
                    var parentInfo = new EntityInfo(entity.Parent);
                    entity.Parent.SetEntity(parentInfo);
                    parentInfo.Remember(actor);

                    _memory.Add(entity.Parent, parentInfo);
                }
            }
        }
コード例 #2
0
ファイル: Entity.cs プロジェクト: fuboss/aiProject
 public void SetEntity(EntityInfo entityInfo)
 {
     EntityInfo = entityInfo;
     EntityInfo.Updated += EntityInfoUpdated;
 }