public AssetProvider(Checksum solutionChecksum, SolutionAssetCache assetCache, IAssetSource assetSource, ISerializerService serializerService) { _solutionChecksum = solutionChecksum; _assetCache = assetCache; _assetSource = assetSource; _serializerService = serializerService; }
public static IEnumerable <TAsset> List <TAsset>(string path, IAssetSource filter = null) where TAsset : class, IAsset { var type = LookupType(typeof(TAsset)); if (type != null) { if (type.Compound) { // Find the asset in the compound list foreach (var asset in s_loadedCompoundAssets.Values) { if (asset.Asset is TAsset && AssetPath.GetDirectoryName(asset.Path) == path && (filter == null || asset.Sources.Contains(filter))) { yield return((TAsset)asset.Asset); } } } else { // Find the asset in the basic list foreach (var asset in s_loadedBasicAssets.Values) { if (asset.Asset is TAsset && AssetPath.GetDirectoryName(asset.Path) == path && (filter == null || asset.Source == filter)) { yield return((TAsset)asset.Asset); } } } } }
public AssetProvider(int scopeId, SolutionAssetCache assetCache, IAssetSource assetSource, ISerializerService serializerService) { _scopeId = scopeId; _assetCache = assetCache; _assetSource = assetSource; _serializerService = serializerService; }
public static void Main(string[] args) { // Create localizer IAssetBuilder builder = new AssetBuilder.OneBuildInstance(); IAsset asset = builder.Build(); StringLocalizerRoot localizer = new StringLocalizerRoot(asset, new CulturePolicy()); // Install TutorialLibrary's IAssetSources Assembly library = typeof(MyClass).Assembly; builder.AddLibraryAssetSources(library).Build(); #region Snippet // Install additional localization that was not available in the TutorialLibrary. IAssetSource assetSource = XmlLinesReader.Default.FileAssetSource("TutorialLibrary2-fi.xml"); builder.AddSource(assetSource).Build(); #endregion Snippet // Create class ILine <MyClass> classLocalizer = localizer.Type <MyClass>(); MyClassB myClass = new MyClassB(classLocalizer); // Use the culture that was provided with the class library (AssetSources) CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("de"); Console.WriteLine(myClass.Do()); // Use the culture that was supplied above CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("fi"); Console.WriteLine(myClass.Do()); }
private static AssetLoadTask BuildLoadAllTask(bool reloadIfSourceUnchanged, IAssetSource forceReloadSource) { var result = new AssetLoadTask(); var pathsSeen = new HashSet <string>(); for (int i = s_assetSources.Count - 1; i >= 0; --i) { var source = s_assetSources[i]; foreach (var path in source.AllLoadablePaths) { if (!pathsSeen.Contains(path)) { var existing = LookupBasic(path); if (existing == null || existing.Source != source || reloadIfSourceUnchanged || source == forceReloadSource) { result.AddPath(path); } pathsSeen.Add(path); } } } return(result); }
public static IEnumerable <TAsset> Find <TAsset>(string path, IAssetSource filter = null) where TAsset : class, IAsset { var pathWithSlash = (path != "") ? path + "/" : ""; var type = LookupType(typeof(TAsset)); if (type != null) { if (type.Compound) { // Find the asset in the compound list foreach (var asset in s_loadedCompoundAssets.Values) { if (asset.Asset is TAsset && asset.Path.StartsWith(pathWithSlash, StringComparison.InvariantCulture) && (filter == null || asset.Sources.Contains(filter))) { yield return((TAsset)asset.Asset); } } } else { // Find the asset in the basic list foreach (var asset in s_loadedBasicAssets.Values) { if (asset.Asset is TAsset && asset.Path.StartsWith(pathWithSlash, StringComparison.InvariantCulture) && (filter == null || asset.Source == filter)) { yield return((TAsset)asset.Asset); } } } } }
public static void RemoveSource(IAssetSource source) { if (s_assetSources.Contains(source)) { App.Log("Removing {0} assets", source.Name); s_assetSources.Remove(source); } }
public static void AddSource(IAssetSource source) { if (!s_assetSources.Contains(source)) { App.Log("Adding {0} assets", source.Name); s_assetSources.Add(source); } }
/// <summary> /// Create observer for one file. /// </summary> /// <param name="assetSource"></param> /// <param name="fileProvider"></param> /// <param name="observer"></param> /// <param name="filePath"></param> public FileProviderObserver(IAssetSource assetSource, IFileProvider fileProvider, IObserver <IAssetSourceEvent> observer, string filePath) { this.assetSource = assetSource ?? throw new ArgumentNullException(nameof(assetSource)); this.observer = observer ?? throw new ArgumentNullException(nameof(observer)); this.FilePath = filePath ?? throw new ArgumentNullException(nameof(filePath)); this.fileProvider = fileProvider ?? throw new ArgumentNullException(nameof(fileProvider)); existed = fileProvider.GetFileInfo(filePath).Exists ? 1 : 0; IChangeToken changeToken = fileProvider.Watch(filePath); watcher = changeToken.RegisterChangeCallback(OnEvent, this); }
public static TAsset[] LoadAll <TAsset>(this IAssetSource source, string dir) where TAsset : IBasicAsset { var paths = source.ListAll <TAsset>(dir).ToArray(); var results = new TAsset[paths.Length]; for (int i = 0; i < paths.Length; ++i) { var path = paths[i]; results[i] = source.Load <TAsset>(path); } return(results); }
public static TAsset Load <TAsset>(this IAssetSource source, string path) where TAsset : IBasicAsset { var asset = source.LoadBasic(path); if (asset is TAsset) { return((TAsset)asset); } else { asset.Dispose(); throw new AssetLoadException(path, "Asset is of incorrect type"); } }
/// <summary> /// Create observer for one file. /// </summary> /// <param name="assetSource"></param> /// <param name="observer"></param> /// <param name="filePath"></param> public FileObserver(IAssetSource assetSource, IObserver <IAssetSourceEvent> observer, string filePath) { this.AssetSource = assetSource ?? throw new ArgumentNullException(nameof(assetSource)); Observer = observer ?? throw new ArgumentNullException(nameof(observer)); FilePath = filePath ?? throw new ArgumentNullException(nameof(filePath)); FileInfo fi = new FileInfo(filePath); watcher = new FileSystemWatcher(fi.Directory.FullName, fi.Name); watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.CreationTime | NotifyFilters.FileName; watcher.IncludeSubdirectories = false; watcher.Changed += OnEvent; watcher.Created += OnEvent; watcher.Deleted += OnEvent; }
/// <summary> /// Initializes a new instance of the <see cref="AssetManager"/> class /// with a <see cref="IAssetSource"/>. /// </summary> /// <param name="assetSource"></param> public AssetManager(IAssetSource assetSource) { if (assetSource == null) { throw new NullReferenceException(nameof(assetSource)); } _assetSource = assetSource; _loadedAssets = new MultiValueDicionary <string, object>( new ConcurrentDictionary <string, ICollection <object> >(StringComparer.OrdinalIgnoreCase), () => new ConcurrentList <object>()); _disposableAssets = new ConcurrentList <IDisposable>(); _disposed = false; }
public AssetProvider CreateAssetProvider( PinnedSolutionInfo solutionInfo, SolutionAssetCache assetCache, IAssetSource assetSource ) { var serializerService = Services.GetRequiredService <ISerializerService>(); return(new AssetProvider( solutionInfo.ScopeId, assetCache, assetSource, serializerService )); }
public static IEnumerable <string> ListAll <TAsset>(this IAssetSource source, string dir) where TAsset : IBasicAsset { var extension = Assets.GetExtension <TAsset>(); if (extension != null) { foreach (var path in source.AllLoadablePaths) { if (AssetPath.GetDirectoryName(path) == dir && AssetPath.GetExtension(path) == extension) { yield return(path); } } } }
private static void LoadBasicAsset(string path, IAssetSource source, bool reloadIfSourceUnchanged) { var existingBasic = LookupBasic(path); if (existingBasic != null) { // Reload an existing asset if (reloadIfSourceUnchanged || existingBasic.Source != source) { source.ReloadBasic(existingBasic.Asset); existingBasic.Source = source; } } else { // Create a new asset var asset = source.LoadBasic(path); var loadedAsset = new LoadedBasicAsset(path, asset); loadedAsset.Source = source; s_loadedBasicAssets.Add(path, loadedAsset); } }
public async Task LoadAssets(IAssetSource assetSource) { var shaderFileName = assetSource.GetAbsolutePath(ShaderFilename); var shaderFilenameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(shaderFileName); var compiledShadersExist = new string[] { $"{shaderFilenameWithoutExtension}.vs.spirv", $"{shaderFilenameWithoutExtension}.fs.spirv" }.Aggregate(true, (shadersExist, fileName) => shadersExist && assetSource.Exists(assetSource.GetAbsolutePath(fileName)) ); var isVulkan = Game.Services.Resolve <Services.GraphicsDeviceFeatures>().BackendType == GraphicsBackend.Vulkan; if ((!_isWindows || isVulkan) && compiledShadersExist) { // TODO: Wait for https://github.com/mellinoe/veldrid-spirv/pull/2 and remove this? Or keep em for mobile? _vertexShaderSource = await ShaderImporter.Instance.Import(assetSource.Load( AssetType.Shader, assetSource.GetAbsolutePath($"{shaderFilenameWithoutExtension}.vs.spirv") )); _fragmentShaderSource = await ShaderImporter.Instance.Import(assetSource.Load( AssetType.Shader, assetSource.GetAbsolutePath($"{shaderFilenameWithoutExtension}.fs.spirv") )); } else if (assetSource.Exists(shaderFileName)) { var shaderSource = await ShaderImporter.Instance.Import( assetSource.Load(AssetType.Shader, shaderFileName) ); _vertexShaderSource = _fragmentShaderSource = shaderSource; } else { throw new FileNotFoundException($"Shader not found: {ShaderFilename}"); } }
public static void ReloadSource(IAssetSource source) { var task = BuildLoadAllTask(false, source); task.LoadAll(); }
public static void Main(string[] args) { // 1. Line { #region Snippet_1a ILine key = LineRoot.Global.PluralRules("Unicode.CLDR35").Key("Key").Format("Hello, {0}"); #endregion Snippet_1a } { #region Snippet_1b ILineRoot root = new LineRoot(); ILine hint1 = root.PluralRules("Unicode.CLDR35"); ILine section1 = hint1.Section("Section2"); ILine section1_1 = hint1.Section("Section1.1"); ILine key1_1_1 = section1_1.Key("Key1"); ILine key1_1_2 = section1_1.Key("Key2"); ILine value1_1_1 = key1_1_1.Format("Hello, {0}"); // ... #endregion Snippet_1b } // 2. Parts { #region Snippet_2a IAsset resourceAsset = new ResourceDictionary(new Dictionary <ILine, byte[]>()); ILine line = LineRoot.Global.Asset(resourceAsset); #endregion Snippet_2a } { #region Snippet_2b ILine line = LineRoot.Global.Logger(Console.Out, LineStatusSeverity.Ok); #endregion Snippet_2b } { #region Snippet_2c ICulturePolicy culturePolicy = new CulturePolicy().SetToCurrentCulture(); ILine line = LineRoot.Global.CulturePolicy(culturePolicy); #endregion Snippet_2c } { #region Snippet_2d #endregion Snippet_2d } { #region Snippet_2e #endregion Snippet_2e } { #region Snippet_2f #endregion Snippet_2f } { #region Snippet_2g #endregion Snippet_2g } { #region Snippet_2h #endregion Snippet_2h } // 3. Hints { #region Snippet_3_ IAsset asset = LineReaderMap.Default.FileAsset("ILine\\Hints.ini"); ILineRoot root = new LineRoot(asset); Console.WriteLine(root.Key("Error").Value(DateTime.Now)); Console.WriteLine(root.Key("Ok")); #endregion Snippet_3_ } { #region Snippet_3a ILine line1 = LineRoot.Global.StringFormat(TextFormat.Default).String("Text"); ILine line2 = LineRoot.Global.StringFormat("Lexical.Localization.StringFormat.TextFormat,Lexical.Localization") .String("Text"); #endregion Snippet_3a Console.WriteLine(line2); } { #region Snippet_3b IPluralRules pluralRules = PluralRulesResolver.Default.Resolve("Unicode.CLDR35"); ILine line1 = LineRoot.Global.PluralRules(pluralRules); ILine line2 = LineRoot.Global.PluralRules("Unicode.CLDR35"); ILine line3 = LineRoot.Global.PluralRules("[Category=cardinal,Case=one]n=1[Category=cardinal,Case=other]true"); #endregion Snippet_3b Console.WriteLine(line2); } { #region Snippet_3c IFormatProvider customFormat = new CustomFormat(); ILine line1 = LineRoot.Global.FormatProvider(customFormat).Format("{0:DATE}").Value(DateTime.Now); ILine line2 = LineRoot.Global.FormatProvider("docs.CustomFormat,docs").Format("{0:DATE}").Value(DateTime.Now); #endregion Snippet_3c Console.WriteLine(line1); Console.WriteLine(line2); } { #region Snippet_3e ResolveSource[] resolveSequence = new ResolveSource[] { ResolveSource.Inline, ResolveSource.Asset, ResolveSource.Line }; IStringResolver stringResolver = new StringResolver(Resolvers.Default, resolveSequence); ILine line = LineRoot.Global.StringResolver(stringResolver); #endregion Snippet_3e Console.WriteLine(line); } { #region Snippet_3f ILine line = LineRoot.Global.StringResolver("Lexical.Localization.StringFormat.StringResolver"); #endregion Snippet_3f Console.WriteLine(line); } { #region Snippet_3g ResolveSource[] resolveSequence = new ResolveSource[] { ResolveSource.Inline, ResolveSource.Asset, ResolveSource.Line }; IResourceResolver resourceResolver = new ResourceResolver(Resolvers.Default, resolveSequence); ILine line = LineRoot.Global.ResourceResolver(resourceResolver); #endregion Snippet_3g Console.WriteLine(line); } { #region Snippet_3h ILine line = LineRoot.Global.ResourceResolver("Lexical.Localization.Resource.ResourceResolver"); #endregion Snippet_3h Console.WriteLine(line); } // 4. Keys { #region Snippet_4a #endregion Snippet_4a } { #region Snippet_4b #endregion Snippet_4b } { #region Snippet_4c #endregion Snippet_4c } { #region Snippet_4d #endregion Snippet_4d } { #region Snippet_4e #endregion Snippet_4e } { #region Snippet_4f #endregion Snippet_4f } { #region Snippet_4g #endregion Snippet_4g } { #region Snippet_4h #endregion Snippet_4h } // 5. Non-canonicals { #region Snippet_5a Assembly asm = typeof(ILine_Examples).Assembly; ILine line1 = LineRoot.Global.Assembly(asm); ILine line2 = LineRoot.Global.Assembly("docs"); #endregion Snippet_5a } { #region Snippet_5b CultureInfo culture = CultureInfo.GetCultureInfo("en"); ILine line1 = LineRoot.Global.Culture(culture); ILine line2 = LineRoot.Global.Culture("en"); #endregion Snippet_5b } { #region Snippet_5c ILine line1 = LineRoot.Global.Type <ILine_Examples>(); ILine line2 = LineRoot.Global.Type(typeof(ILine_Examples)); #endregion Snippet_5c } { #region Snippet_5d #endregion Snippet_5d } { #region Snippet_5e #endregion Snippet_5e } { #region Snippet_5f #endregion Snippet_5f } { #region Snippet_5g #endregion Snippet_5g } { #region Snippet_5h #endregion Snippet_5h } // 6. Canonicals { #region Snippet_6a ILine line = LineRoot.Global.Key("Ok"); #endregion Snippet_6a } { #region Snippet_6b ILine line = LineRoot.Global.Section("Resources").Key("Ok"); #endregion Snippet_6b } { #region Snippet_6c ILine line = LineRoot.Global.Location(@"c:\dir"); #endregion Snippet_6c } { #region Snippet_6d ILine line = LineRoot.Global.BaseName("docs.Resources"); #endregion Snippet_6d } { #region Snippet_6e #endregion Snippet_6e } { #region Snippet_6f #endregion Snippet_6f } { #region Snippet_6g #endregion Snippet_6g } { #region Snippet_6h #endregion Snippet_6h } // 7. Strings { #region Snippet_7a IString str = CSharpFormat.Default.Parse("ErrorCode = 0x{0:X8}"); ILine line = LineRoot.Global.Key("Error").String(str); #endregion Snippet_7a } { #region Snippet_7b ILine line = LineRoot.Global.Key("Error").StringFormat(CSharpFormat.Default).String("ErrorCode = 0x{0:X8}"); #endregion Snippet_7b } { #region Snippet_7c ILine line = LineRoot.Global.Key("Error").Format("ErrorCode = 0x{0:X8}"); #endregion Snippet_7c } { #region Snippet_7c2 int code = 0x100; ILine line = LineRoot.Global.Key("Error").Format($"ErrorCode = 0x{code:X8}"); #endregion Snippet_7c2 Console.WriteLine(line); } { #region Snippet_7d ILine line = LineRoot.Global.Key("Hello").Text("Hello World"); #endregion Snippet_7d } { #region Snippet_7e ILine line = LineRoot.Global.Section("Section").Key("Success") .Format("Success") // Add inlining to the root culture "" .Inline("Culture:en", "Success") // Add inlining to culture "en" .Inline("Culture:fi", "Onnistui") // Add inlining to culture "fi" .Inline("Culture:sv", "Det funkar"); // Add inlining to culture "sv" #endregion Snippet_7e } { #region Snippet_7f ILine line = LineRoot.Global.Section("Section").Key("Success") .Format("Success") // Add inlining to the root culture "" .en("Success") // Add inlining to culture "en" .fi("Onnistui") // Add inlining to culture "fi" .sv("Det funkar"); // Add inlining to culture "sv" #endregion Snippet_7f } // Enumerations { #region Snippet_7l ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>().Format("{0}"); #endregion Snippet_7l } { #region Snippet_7l2 ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>().InlineEnum <CarFeature>().Format("{0}"); #endregion Snippet_7l2 } { #region Snippet_7l3 IAssetSource assetSource = LineReaderMap.Default.FileAssetSource(@"ILine\CarFeature.ini"); LineRoot.Builder.AddSource(assetSource).Build(); #endregion Snippet_7l3 } { #region Snippet_7m ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>() .InlineEnum <CarFeature>() .InlineEnum(CarFeature.Electric, "fi", "Sähkö") .InlineEnum(CarFeature.Petrol, "fi", "Bensiini") .InlineEnum(CarFeature.NaturalGas, "fi", "Maakaasu") .InlineEnum(CarFeature.TwoDoors, "fi", "Kaksiovinen") .InlineEnum(CarFeature.FourDoors, "fi", "Neliovinen") .InlineEnum(CarFeature.FiveDoors, "fi", "Viisiovinen") .InlineEnum(CarFeature.Red, "fi", "Punainen") .InlineEnum(CarFeature.Black, "fi", "Musta") .InlineEnum(CarFeature.White, "fi", "Valkoinen") .Format("{0}"); #endregion Snippet_7m CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo(""); #region Snippet_7m2 Console.WriteLine(carFeature.Key(CarFeature.Petrol)); Console.WriteLine(carFeature.Key(CarFeature.Petrol).Culture("fi")); Console.WriteLine(carFeature.Key(CarFeature.Petrol).Culture("sv")); #endregion Snippet_7m2 #region Snippet_7m3 CarFeature features = CarFeature.Petrol | CarFeature.FiveDoors | CarFeature.Black; Console.WriteLine(carFeature.Value(features)); #endregion Snippet_7m3 #region Snippet_7m5 Console.WriteLine(carFeature.Formulate($"{CarFeature.Petrol | CarFeature.Black:|}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{CarFeature.Petrol | CarFeature.Black: |}").Culture("fi")); #endregion Snippet_7m5 } { #region Snippet_7m6 ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>().InlineEnum <CarFeature>() .InlineEnum(CarFeature.Electric, "de", "Elektroauto") .InlineEnum(CarFeature.Petrol, "de", "Benzinwagen") .InlineEnum(CarFeature.NaturalGas, "de", "Erdgasauto") .InlineEnum(CarFeature.TwoDoors, "de", "Zweitürig") .InlineEnum(CarFeature.FourDoors, "de", "Viertürig") .InlineEnum(CarFeature.FiveDoors, "de", "Fünftürige") .InlineEnum(CarFeature.Red, "de", "Rot") .InlineEnum(CarFeature.Black, "de", "Schwartz") .InlineEnum(CarFeature.White, "de", "Weiß") .Format("{0}"); ILine message = LineRoot.Global.Assembly("docs").Type("MyClass").Key("Msg") .Format("Your car has following features: {0}") .de("Ihr Auto hat folgende Eigenschaften: {0}"); Console.WriteLine(message.Value(CarFeature.Petrol | CarFeature.Red | CarFeature.TwoDoors).Culture("fi")); Console.WriteLine(message.Value(CarFeature.Petrol | CarFeature.Red | CarFeature.TwoDoors).Culture("sv")); Console.WriteLine(message.Value(CarFeature.Petrol | CarFeature.Red | CarFeature.TwoDoors).Culture("de")); #endregion Snippet_7m6 } { #region Snippet_7m7 ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>().InlineEnum <CarFeature>() .InlineEnum(CarFeature.Electric, "de", "Elektroauto") .InlineEnum(CarFeature.Petrol, "de", "Benzinwagen") .InlineEnum(CarFeature.NaturalGas, "de", "Erdgasauto") .InlineEnum(CarFeature.TwoDoors, "de", "Zweitürig") .InlineEnum(CarFeature.FourDoors, "de", "Viertürig") .InlineEnum(CarFeature.FiveDoors, "de", "Fünftürige") .InlineEnum(CarFeature.Red, "de", "Rot") .InlineEnum(CarFeature.Black, "de", "Schwartz") .InlineEnum(CarFeature.White, "de", "Weiß") .Format("{0}"); ILine message = LineRoot.Global.Assembly("docs").Type("MyClass").Key("Msg") .Format("Your car has following features: {0}") .de("Ihr Auto hat folgende Eigenschaften: {0}"); CarFeature features = CarFeature.Petrol | CarFeature.Red | CarFeature.TwoDoors; // Inlined enum strings don't work as Enum (unless tool is used) Console.WriteLine(message.Value(features).Culture("de")); // But works when ILine reference is used. Console.WriteLine(message.Value(carFeature.Value(features)).Culture("de")); #endregion Snippet_7m7 } { ILine carFeature = LineRoot.Global.Assembly("docs").Type <CarFeature>().InlineEnum <CarFeature>(); CarFeature features = CarFeature.Petrol | CarFeature.FiveDoors | CarFeature.Black; Console.WriteLine(carFeature.Formulate($"{features:g}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:G}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:f}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:F}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:d}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:D}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:x}").Culture("fi")); Console.WriteLine(carFeature.Formulate($"{features:X}").Culture("fi")); } // 8. Values { #region Snippet_8a ILine line = LineRoot.Global.Key("Error").Format("ErrorCode={0}").Value(0x100); LineString result = line.ResolveString(); #endregion Snippet_8a } { #region Snippet_8b #endregion Snippet_8b } { #region Snippet_8c #endregion Snippet_8c } { #region Snippet_8d #endregion Snippet_8d } { #region Snippet_8e #endregion Snippet_8e } { #region Snippet_8f #endregion Snippet_8f } { #region Snippet_8g #endregion Snippet_8g } { #region Snippet_8h #endregion Snippet_8h } // 10. Resources { #region Snippet_10a ILine line = LineRoot.Global.Key("Error").Resource(new byte[] { 1, 2, 3 }); LineResourceBytes result = line.ResolveBytes(); #endregion Snippet_10a } { #region Snippet_10b ILine line = LineRoot.Global.Key("Error").Resource(new byte[] { 1, 2, 3 }); using (LineResourceStream result = line.ResolveStream()) { } #endregion Snippet_10b } { #region Snippet_10c #endregion Snippet_10c } { #region Snippet_10d #endregion Snippet_10d } { #region Snippet_10e #endregion Snippet_10e } { #region Snippet_10f #endregion Snippet_10f } { #region Snippet_10g #endregion Snippet_10g } { #region Snippet_10h #endregion Snippet_10h } }
public LoadedBasicAsset(string path, IBasicAsset asset) { Path = path; Asset = asset; Source = null; }
public static AssetLoadTask StartReloadSource(IAssetSource source) { return(BuildLoadAllTask(false, source)); }
/// <summary> /// Change type /// </summary> /// <param name="source"></param> /// <param name="changeType"></param> public AssetSourceChangedEvent(IAssetSource source, WatcherChangeTypes changeType) { Source = source; ChangeType = changeType; }
internal void InitializeAssetSource(IAssetSource assetSource) { Contract.ThrowIfFalse(_solutionAssetSource == null); _solutionAssetSource = assetSource; }
/// <summary> /// Add <paramref name="assetSource"/> to sources. /// </summary> /// <param name="assetBuilder"></param> /// <param name="assetSource"></param> public static IAssetBuilder AddSource(this IAssetBuilder assetBuilder, IAssetSource assetSource) { assetBuilder.Sources.Add(assetSource); return(assetBuilder); }
public static IEnumerable <TAsset> Find <TAsset>(IAssetSource filter = null) where TAsset : class, IBasicAsset { return(Find <TAsset>("", filter)); }
public static void Main(string[] args) { { #region Snippet_0a ILineFileFormat format = LineReaderMap.Default["ini"]; #endregion Snippet_0a } { #region Snippet_0b ILineFileFormat format = IniLinesReader.Default; #endregion Snippet_0b ILineFileFormat format2a = LineReaderMap.Default["json"]; ILineFileFormat format2b = JsonLinesReader.Default; ILineFileFormat format3a = LineReaderMap.Default["xml"]; ILineFileFormat format3b = XmlLinesReader.Default; ILineFileFormat format4a = LineReaderMap.Default["resx"]; ILineFileFormat format4b = ResxLinesReader.Default; ILineFileFormat format5a = LineReaderMap.Default["resources"]; ILineFileFormat format5b = ResourcesLineReader.Default; } { #region Snippet_1a IEnumerable <ILine> key_lines = LineReaderMap.Default.ReadLines( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_1a } { #region Snippet_1b IEnumerable <KeyValuePair <string, IString> > string_lines = LineReaderMap.Default.ReadStringLines( filename: "localization.ini", lineFormat: LineFormat.Parameters, throwIfNotFound: true); #endregion Snippet_1b } { #region Snippet_1c ILineTree tree = LineReaderMap.Default.ReadLineTree( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_1c } { #region Snippet_2a IEnumerable <ILine> key_lines_reader = LineReaderMap.Default.FileReader( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_2a } { #region Snippet_2b IEnumerable <KeyValuePair <string, IString> > string_lines_reader = LineReaderMap.Default.FileReaderAsStringLines( filename: "localization.ini", lineFormat: LineFormat.Parameters, throwIfNotFound: true); #endregion Snippet_2b var lines = string_lines_reader.ToArray(); } { #region Snippet_2c IEnumerable <ILineTree> tree_reader = LineReaderMap.Default.FileReaderAsLineTree( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_2c var lines = tree_reader.ToArray(); } { #region Snippet_3a Assembly asm = typeof(LocalizationReader_Examples).Assembly; IEnumerable <ILine> key_lines_reader = LineReaderMap.Default.EmbeddedReader( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_3a var lines = key_lines_reader.ToArray(); } { Assembly asm = typeof(LocalizationReader_Examples).Assembly; #region Snippet_3b IEnumerable <KeyValuePair <string, IString> > string_lines_reader = LineReaderMap.Default.EmbeddedReaderAsStringLines( assembly: asm, resourceName: "docs.localization.ini", lineFormat: LineFormat.Parameters, throwIfNotFound: true); #endregion Snippet_3b var lines = string_lines_reader.ToArray(); } { Assembly asm = typeof(LocalizationReader_Examples).Assembly; #region Snippet_3c IEnumerable <ILineTree> tree_reader = LineReaderMap.Default.EmbeddedReaderAsLineTree( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_3c var lines = tree_reader.ToArray(); } { #region Snippet_4a IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); IEnumerable <ILine> key_lines_reader = LineReaderMap.Default.FileProviderReader( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_4a var lines = key_lines_reader.ToArray(); } { #region Snippet_4b IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); IEnumerable <KeyValuePair <string, IString> > string_lines_reader = LineReaderMap.Default.FileProviderReaderAsStringLines( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_4b var lines = string_lines_reader.ToArray(); } { #region Snippet_4c IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); IEnumerable <ILineTree> tree_reader = LineReaderMap.Default.FileProviderReaderAsLineTree( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_4c var lines = tree_reader.ToArray(); } { #region Snippet_5a using (Stream s = new FileStream("localization.ini", FileMode.Open, FileAccess.Read)) { IEnumerable <ILine> key_lines = IniLinesReader.Default.ReadLines(s); } #endregion Snippet_5a } { #region Snippet_5b using (Stream s = new FileStream("localization.ini", FileMode.Open, FileAccess.Read)) { IEnumerable <KeyValuePair <string, IString> > string_lines = IniLinesReader.Default.ReadStringLines( stream: s, lineFormat: LineFormat.Parameters); } #endregion Snippet_5b } { #region Snippet_5c using (Stream s = new FileStream("localization.ini", FileMode.Open, FileAccess.Read)) { ILineTree tree = IniLinesReader.Default.ReadLineTree(s); } #endregion Snippet_5c } { #region Snippet_6a string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; using (TextReader tr = new StringReader(text)) { IEnumerable <ILine> key_lines = IniLinesReader.Default.ReadLines(tr); } #endregion Snippet_6a } { string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; #region Snippet_6b using (TextReader tr = new StringReader(text)) { IEnumerable <KeyValuePair <string, IString> > string_lines = IniLinesReader.Default.ReadStringLines( srcText: tr, lineFormat: LineFormat.Parameters); } #endregion Snippet_6b } { string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; #region Snippet_6c using (TextReader tr = new StringReader(text)) { ILineTree tree = IniLinesReader.Default.ReadLineTree(tr); } #endregion Snippet_6c } { #region Snippet_7a string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; IEnumerable <ILine> key_lines = IniLinesReader.Default.ReadString( srcText: text); #endregion Snippet_7a } { string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; #region Snippet_7b IEnumerable <KeyValuePair <string, IString> > string_lines = IniLinesReader.Default.ReadStringAsStringLines( srcText: text, lineFormat: LineFormat.Parameters); #endregion Snippet_7b } { string text = "Culture:en:Type:MyController:Key:Hello = Hello World!\n"; #region Snippet_7c ILineTree tree = IniLinesReader.Default.ReadStringAsLineTree( srcText: text); #endregion Snippet_7c } { #region Snippet_10a IAsset asset = IniLinesReader.Default.FileAsset( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_10a } { #region Snippet_10b Assembly asm = typeof(LocalizationReader_Examples).Assembly; IAsset asset = IniLinesReader.Default.EmbeddedAsset( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_10b } { #region Snippet_10c IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); IAsset asset = IniLinesReader.Default.FileProviderAsset( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_10c } { Assembly asm = typeof(LocalizationReader_Examples).Assembly; IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); #region Snippet_10a2 IAsset asset = LineReaderMap.Default.FileAsset( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_10a2 #region Snippet_10b2 asset = LineReaderMap.Default.EmbeddedAsset( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_10b2 #region Snippet_10c2 asset = LineReaderMap.Default.FileProviderAsset( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_10c2 } { #region Snippet_11a IAssetSource assetSource = IniLinesReader.Default.FileAssetSource( filename: "localization.ini", throwIfNotFound: true); IAssetBuilder assetBuilder = new AssetBuilder().AddSource(assetSource); IAsset asset = assetBuilder.Build(); #endregion Snippet_11a } { #region Snippet_11b Assembly asm = typeof(LocalizationReader_Examples).Assembly; IAssetSource assetSource = IniLinesReader.Default.EmbeddedAssetSource( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_11b } { #region Snippet_11c IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); IAssetSource assetSource = IniLinesReader.Default.FileProviderAssetSource( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_11c } { #region Snippet_11a2 IAssetSource assetSource = LineReaderMap.Default.FileAssetSource( filename: "localization.ini", throwIfNotFound: true); #endregion Snippet_11a2 } { Assembly asm = typeof(LocalizationReader_Examples).Assembly; #region Snippet_11b2 IAssetSource assetSource = LineReaderMap.Default.EmbeddedAssetSource( assembly: asm, resourceName: "docs.localization.ini", throwIfNotFound: true); #endregion Snippet_11b2 } { IFileProvider fileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory()); #region Snippet_11c2 IAssetSource assetSource = LineReaderMap.Default.FileProviderAssetSource( fileProvider: fileProvider, filepath: "localization.ini", throwIfNotFound: true); #endregion Snippet_11c2 } { #region Snippet_7 #endregion Snippet_7 } { #region Snippet_8 #endregion Snippet_8 } { #region Snippet_9 #endregion Snippet_9 } { #region Snippet_12 #endregion Snippet_12 } { #region Snippet_13 #endregion Snippet_13 } { #region Snippet_14 #endregion Snippet_14 } { #region Snippet_15 #endregion Snippet_15 } { #region Snippet_16 #endregion Snippet_16 } { #region Snippet_17 #endregion Snippet_17 } { #region Snippet_18 #endregion Snippet_18 } { #region Snippet_30a // Create writer ILineReader format = new ExtFileFormatReader(); // Clone formats LineFileFormatMap formats = LineReaderMap.Default.Clone(); // Add to clone formats.Add(format); // Or if in deploying application project, format can be added to the global singleton (LineReaderMap.Default as IDictionary <string, ILineFileFormat>).Add(format); #endregion Snippet_30a } }
public void Inject(IStoryContext context) { this.assetSource = context.AssetSource; }
public static string GetAbsolutePath(this IAssetSource assetSource, string fileName) { return(assetSource.AssetFilenames.First(filePath => filePath.EndsWith(fileName))); }
public static bool Exists(this IAssetSource assetSource, string filePath) { return(assetSource.AssetFilenames.Contains(filePath)); }
public ReloadSourceState(Game game, Func <State> nextState, IAssetSource source) : base(game, nextState) { m_source = source; }