/// <summary> /// 读取到配置信息; /// </summary> private AnimatedCursorConfig ReadConfig(IReadOnlyContent content) { using (var stream = content.GetInputStream(ConfigFileName)) { var config = (AnimatedCursorConfig)xmlSerializer.Deserialize(stream); return(config); } }
/// <summary> /// 从资源合集读取到动画光标; /// </summary> public AnimatedCursor Read(IReadOnlyContent content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } AnimatedCursorConfig config = ReadConfig(content); IEnumerable <Texture2D> textures = ReadTextures(content); return(new AnimatedCursor(config, textures)); }
/// <summary> /// 读取到光标; /// </summary> /// <exception cref="FileNotFoundException"></exception> public StaticCursor Read(IReadOnlyContent content) { if (content == null) { throw new ArgumentNullException(nameof(content)); } var config = ReadConfig(content); var texture = ReadTexture(content); return(new StaticCursor(texture, config)); }
private Texture2D ReadTexture(IReadOnlyContent content) { byte[] bytes; using (var stream = content.GetInputStream(TextureFileName)) { bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); } var texture = TextureFactroy.ReadAsCursor(bytes); return(texture); }
private void ReadTextures(IReadOnlyContent content, SortedList <int, Texture2D> sortedList) { byte[] bytes; foreach (var textureEntry in content.EnumerateEntries("*" + TextureExtensionName, SearchOption.TopDirectoryOnly)) { int number = GetNumberByName(textureEntry.Name); using (var stream = content.GetInputStream(textureEntry)) { bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); } var texture = TextureFactroy.ReadAsCursor(bytes); sortedList.Add(number, texture); } }
private static bool TryRead(IReadOnlyContent content, out ICustomCursor cursor) { try { cursor = staticCursorFactroy.Read(content); return(true); } catch { try { cursor = animatedCursorFactroy.Read(content); return(true); } catch { cursor = null; return(false); } } }
private IEnumerable <Texture2D> ReadTextures(IReadOnlyContent content) { sortedList.Clear(); ReadTextures(content, sortedList); return(sortedList.Values); }