public int PositionToIndex(Entity.BaseGameEntity ent) { int cellX = (int)(ent.GetEntityPosition().X / (partitionSize * 128) / partitionSize); int cellY = (int)(ent.GetEntityPosition().Y / (partitionSize * 128) / partitionSize); return(cellX * numCellsX + cellY); }
public void AddEntity(Entity.BaseGameEntity entity) { int cellX = (int)(entity.GetEntityPosition().X / (partitionSize * 128) / partitionSize); int cellY = (int)(entity.GetEntityPosition().Y / (partitionSize * 128) / partitionSize); //Console.WriteLine("Adding entity to partition: "+ cellX + " " + cellY); entity.SetPartitionCell(cellX, cellY); cells[PositionToIndex(entity)].AddEntity(entity); }