Exemple #1
0
        public NodeMap <CK, NT> GetNodeMap <CK, NT> () where CK : Component where NT : Node, new()
        {
            Type compClass = typeof(CK);
            Type nodeClass = typeof(NT);

            if (families.ContainsKey(nodeClass))
            {
                Family <NT> family = (Family <NT>)families[nodeClass];
                return(family.GetMap <CK>());
            }
            Family <NT> newFamily = new Family <NT>(nodeClass, this);

            families[nodeClass] = newFamily;
            NodeMap <CK, NT> newMap = newFamily.GetMap <CK>();

            foreach (Entity entity in entities.mEntitys)
            {
                newFamily.AddIfMatch(entity);
            }
            return(newMap);
        }
Exemple #2
0
        public NodeMap <CK, NT> GetMap <CK>() where CK : Component
        {
            if (maps.ContainsKey(typeof(CK)))
            {
                NodeMap <CK, NT> map = (NodeMap <CK, NT>)maps[typeof(CK)];
                return(map);
            }
            else
            {
                NodeMap <CK, NT> newMap = new NodeMap <CK, NT>();

                foreach (NT node in nodes.mNodes)
                {
                    newMap.Add(node);
                }

                maps.Add(typeof(CK), (INodeMap)newMap);

                return(newMap);
            }
        }