예제 #1
0
파일: Entity.cs 프로젝트: bmjoy/Framework-1
 private void Clear()
 {
     Post(new EntityDisposed(this));
     MonoBehaviourToEntity.Unregister(this);
     EntityController.FinishDeleteEntity(this);
     Id   = -1;
     Name = "Destroyed";
     ClearParent();
     Tr = null;
     _eventHub.Clear();
     Tags.Clear();
     Stats.Clear();
 }
예제 #2
0
 public void Store(Entity entity)
 {
     MonoBehaviourToEntity.Unregister(entity);
     entity.Remove <RigidbodyComponent>();
     entity.Get <ModelComponent>().Model = null;
     if (_poolDict.TryGetValue(entity.Get <TypeId>().Id, out var stack))
     {
         if (!stack.IsFull)
         {
             entity.Pooled = true;
             entity.ClearParent();
             entity.Stats.ClearMods();
             stack.Add(entity);
             return;
         }
     }
     entity.Destroy();
 }
예제 #3
0
 public void Handle(EquipmentChanged arg)
 {
     if (!_onlyActiveWhileEquipped)
     {
         return;
     }
     if (arg.Owner == null && _loadedComponents.Count > 0)
     {
         var entity = this.GetEntity();
         MonoBehaviourToEntity.Unregister(entity);
         for (int i = 0; i < _loadedComponents.Count; i++)
         {
             entity.Remove(_loadedComponents[i]);
         }
         _loadedComponents.Clear();
         _loadedModel = null;
     }
     else if (arg.Owner != null && _loadedModel == null)
     {
         SpawnModel(arg.Slot.EquipTr);
     }
 }