// delete the entity public void deleteEntity(UEntity uEntity) { for (int i = (int)uEntity.mWorldID; i < mEntityCount - 1; i++) { mUEntity [i] = mUEntity [i + 1]; mUEntity [i].mWorldID = (uint)i; } mEntityCount--; }
// register the entity public void registerEntity(UEntity uEntity) { if (mEntityCount < mMaxEntityCount) { mUEntity [mEntityCount] = uEntity; mUEntity [mEntityCount].mWorld = this; mUEntity [mEntityCount].mWorldID = mEntityCount; mEntityCount++; } else { mMaxEntityCount *= 2; UEntity[] uEntitys = new UEntity[mMaxEntityCount]; for (int i = 0; i < mEntityCount; i++) { uEntitys [i] = mUEntity [i]; } mUEntity = uEntitys; mUEntity [mEntityCount] = uEntity; mUEntity [mEntityCount].mWorld = this; mUEntity [mEntityCount].mWorldID = mEntityCount; mEntityCount++; } }
// register the entity after world initing public void registerEntityAfterInit(UEntity uEntity) { this.registerEntity(uEntity); uEntity.mAllBitBunch.SetCount((int)this.mComponentCount); }
public virtual void Update(UEntity uEntity) { }