// 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);
    }