Beispiel #1
0
        /// <summary>
        ///     Converts an <see cref="LSLLibraryDataAdditions"/> flags enum to the corresponding set of subset names.
        /// </summary>
        /// <param name="dataAdditionFlags">The additional library data flags.</param>
        /// <returns>a string representation of the subset</returns>
        public static IEnumerable <string> ToSubsetNames(this LSLLibraryDataAdditions dataAdditionFlags)
        {
            if ((dataAdditionFlags & LSLLibraryDataAdditions.OpenSimOssl) == LSLLibraryDataAdditions.OpenSimOssl)
            {
                yield return("ossl");
            }

            if ((dataAdditionFlags & LSLLibraryDataAdditions.OpenSimWindlight) ==
                LSLLibraryDataAdditions.OpenSimWindlight)
            {
                yield return("os-lightshare");
            }

            if ((dataAdditionFlags & LSLLibraryDataAdditions.OpenSimBulletPhysics) ==
                LSLLibraryDataAdditions.OpenSimBulletPhysics)
            {
                yield return("os-bullet-physics");
            }

            if ((dataAdditionFlags & LSLLibraryDataAdditions.OpenSimModInvoke) ==
                LSLLibraryDataAdditions.OpenSimModInvoke)
            {
                yield return("os-mod-api");
            }


            if ((dataAdditionFlags & LSLLibraryDataAdditions.OpenSimJsonStore) ==
                LSLLibraryDataAdditions.OpenSimJsonStore)
            {
                yield return("os-json-store");
            }
        }
Beispiel #2
0
        private static IEnumerable <string> GetSubsets(LSLLibraryBaseData libraryBaseData,
                                                       LSLLibraryDataAdditions dataAdditions)
        {
            yield return(libraryBaseData.ToSubsetName());

            foreach (var name in dataAdditions.ToSubsetNames())
            {
                yield return(name);
            }
        }
Beispiel #3
0
 /// <summary>
 ///     Constructs an <see cref="LSLEmbeddedLibraryDataProvider"/> using the library data embedded in LibLSLCC's assembly.
 /// </summary>
 /// <param name="liveFiltering">
 ///     If this is set to true, all subsets will be loaded into memory. And when you change the active subsets query
 ///     results will change.  Otherwise if this is false, only subsets present upon construction will be loaded.
 /// </param>
 /// <param name="libraryBaseData">The base library data to use.</param>
 /// <param name="dataAdditions">Addititional library data to import (flags).</param>
 /// <param name="loadOptions">
 ///     Optionally specifies what type's of library definitions will be loaded, defaults to
 ///     <see cref="LSLLibraryDataLoadOptions.All" />
 /// </param>
 /// <exception cref="InvalidOperationException">
 ///     If the embedded library data could not be loaded from the assembly
 ///     manifest.
 /// </exception>
 public LSLEmbeddedLibraryDataProvider(LSLLibraryBaseData libraryBaseData,
                                       LSLLibraryDataAdditions dataAdditions, bool liveFiltering,
                                       LSLLibraryDataLoadOptions loadOptions = LSLLibraryDataLoadOptions.All)
     : this(GetSubsets(libraryBaseData, dataAdditions), liveFiltering, loadOptions)
 {
 }