Ejemplo n.º 1
0
        public Entity CreateEntity(ElementTag tag)
        {
            var en = new Entity(tag, this, orderContainer);

            entities.Add(tag, en);
            notify.NotifyChange(en);
            components.Add(en.Tag, new List <ID3DComponent>());
            return(en);
        }
Ejemplo n.º 2
0
 public int Get <TSys>(ElementTag tag)
     where TSys : IComponentSystem
 {
     if (!componentOrderIndex.ContainsKey(tag))
     {
         return(int.MaxValue);
     }
     return(componentOrderIndex[tag][typeof(TSys)]);
 }
Ejemplo n.º 3
0
        public EntityOrderContainer RegisterOrder <TSys>(ElementTag tag, int index)
            where TSys : IComponentSystem
        {
            OrderSystemContainer ordering;

            if (!componentOrderIndex.TryGetValue(tag, out ordering))
            {
                ordering = new OrderSystemContainer();
                componentOrderIndex.Add(tag, ordering);
            }
            ordering.Add(typeof(TSys), index);

            return(this);
        }
Ejemplo n.º 4
0
 public Entity(ElementTag tag, IComponentManager manager, EntityOrderContainer order)
 {
     this.order   = order;
     this.manager = manager;
     Tag          = tag;
 }
Ejemplo n.º 5
0
 public bool Has <T>(ElementTag tag) where T : ID3DComponent
 {
     return(components[tag].Any(x => x is T));
 }
Ejemplo n.º 6
0
 public IEnumerable <ID3DComponent> GetComponents(ElementTag tagEntity)
 {
     return(components[tagEntity].ToArray());
 }
Ejemplo n.º 7
0
 public IEnumerable <T> GetComponents <T>(ElementTag tagEntity) where T : ID3DComponent
 {
     return(components[tagEntity].OfType <T>());
 }
Ejemplo n.º 8
0
 public T GetComponent <T>(ElementTag tagEntity) where T : ID3DComponent
 {
     return(components[tagEntity].OfType <T>().FirstOrDefault());
 }
Ejemplo n.º 9
0
 public void RemoveComponent(ElementTag tagEntity, ID3DComponent com)
 {
     components[tagEntity].Remove(com);
 }
Ejemplo n.º 10
0
 public ID3DComponent AddComponent(ElementTag tagEntity, ID3DComponent com)
 {
     com.EntityTag = tagEntity;
     components[tagEntity].Add(com);
     return(com);
 }
Ejemplo n.º 11
0
 public Entity GetEntity(ElementTag tag)
 {
     return(entities[tag]);
 }
Ejemplo n.º 12
0
 protected D3DComponent()
 {
     Tag = new ElementTag(Guid.NewGuid().ToString());
 }