예제 #1
0
 public EntityWorld()
 {
     entityManager = new EntityManager(this);
     systemManager = new SystemManager(this);
     tagManager = new TagManager(this);
     groupManager = new GroupManager(this);
 }
예제 #2
0
        internal EntityEditPool(EntityManager entityManager)
        {
            em = entityManager;

            edited = new Bag<EntityEdit>();
            alternateEdited = new Bag<EntityEdit>();
            editedIds = new BitSet();

            pendingDeletion = new BitSet();
        }
        public EntitySubscription(World world, AspectPromise builder)
        {
            aspect = builder.Build(world);
            promise = builder;
            aspectCache = new BitSet();
            em = world.EntityManager;

            activeEntityIds = new BitSet();
            entities = new Bag<int>();

            listeners = new Bag<ISubscriptionListener>();

            insertedIds = new BitSet();
            removedIds = new BitSet();

            inserted = new Bag<int>();
            removed = new Bag<int>();
        }
예제 #4
0
        internal static void Init(AsgardBase instance)
        {
            _instance = instance;
            _manager = instance.EntityManager;

            var orderedList = _rawLookupTypes.OrderBy(t =>
            {
                return t.ToString().GetHashCode();
            });

            ushort index = 0;
            foreach(var item in orderedList)
            {
                _typeLookup[index] = item;
                _typeLookupReverse[item] = index;
                index++;
            }
        }
 public RecyclingEntityFactory(EntityManager em)
 {
     this.em = em;
     recycled = new BitSet();
     limbo = new Queue<int>(64);
 }