Exemple #1
0
        public EcsEntity GetPrefab(string name)
        {
            EcsEntity prefab = null;

            if (_prefabs.TryGetValue(name, out prefab))
            {
                return(prefab);
            }
            else
            {
                return(null);
            }
        }
Exemple #2
0
        public EcsEntity Instantiate()
        {
            var entity = new EcsEntity(this.World);

            entity.Name       = this.Name + " (Clone)";
            entity.Components = new Dictionary <Type, EcsComponent>();
            foreach (var pair in this.Components)
            {
                var component = pair.Value.Clone();
                component.Entity = entity;
                entity.Components.Add(pair.Key, component);
            }
            return(entity);
        }
Exemple #3
0
        public void AddEntity(EcsEntity entity)
        {
            this.Entities.Add(entity);

            foreach (var pair in entity.Components)
            {
                List <EcsComponent> componentGroup = null;
                if (_componentGroups.TryGetValue(pair.Key, out componentGroup) == false)
                {
                    componentGroup = new List <EcsComponent>();
                    _componentGroups.Add(pair.Key, componentGroup);
                }
                componentGroup.Add(pair.Value);
            }
        }
Exemple #4
0
        public void RemoveEntity(EcsEntity entity)
        {
            var removed = this.Entities.Remove(entity);

            if (removed)
            {
                foreach (var pair in entity.Components)
                {
                    List <EcsComponent> componentGroup = null;
                    if (_componentGroups.TryGetValue(pair.Key, out componentGroup))
                    {
                        componentGroup.Remove(pair.Value);
                    }
                }
            }
        }
Exemple #5
0
 public void AddPrefab(string name, EcsEntity prefab)
 {
     _prefabs.Add(name, prefab);
 }