// Objects may not be able to be spawned if they are too close to another object, for example public virtual bool canSpawnObject(float distance, ObjectSpawnData spawnData) { // can't spawn if the sections don't match up if (!infiniteObject.canSpawnInSection(spawnData.section)) { return(false); } for (int i = 0; i < avoidObjectRuleMaps.Count; ++i) { if (!avoidObjectRuleMaps[i].canSpawnObject(distance)) { return(false); // all it takes is one } } return(true); }