public boolean requirementsMet(boolean delayed, World world, Location sLoc, int time, int lightLevel, Biome biome, Material materialBelow, Environment environment)
	{
		if (!delayed && delayRequirementsCheck)
			return true;
		
		// If the mobs alive limit is reached we can't spawn any more of this mob
		if (!withinAliveLimit())
			return false;
		
		// Do we need to check limiter spawn limits?
		if (!bypassMobManagerLimit)
		{
			// Fetch the Limiter world
			MMWorld mmWorld = MMComponent.getLimiter().getWorld(world);
			
			// If the world exists and has met the mob limit for the given mob we can't spawn this mob
			if (mmWorld != null && !mmWorld.withinMobLimit(getMobType(), null))
				return false;
		}
		
		// Check if we have more requirements and that they are met
		return requirements == null
				|| requirements.met(sLoc.getBlockX() >> 4, sLoc.getBlockZ() >> 4, sLoc.getBlockY(), time, lightLevel, biome, materialBelow, environment);
	}