public void LoadTextureGroup(string directory, Dictionary <string, GameTexture> dict) { dict.Clear(); var dir = Path.Combine("resources", directory); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var items = Directory.GetFiles(dir, "*.png"); for (var i = 0; i < items.Length; i++) { var filename = items[i].Replace(dir, "").TrimStart(Path.DirectorySeparatorChar).ToLower(); dict.Add(filename, Core.Graphics.Renderer.LoadTexture(Path.Combine(dir, filename))); } var packItems = GameTexturePacks.GetFolderFrames(directory); if (packItems != null) { foreach (var itm in packItems) { var filename = Path.GetFileName(itm.Filename.ToLower()); if (!dict.ContainsKey(filename)) { dict.Add(filename, Core.Graphics.Renderer.LoadTexture(Path.Combine(dir, filename))); } } } }
//Graphic Loading public override void LoadTilesets(string[] tilesetnames) { mTilesetDict.Clear(); var dir = Path.Combine("resources", "tilesets"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var tilesetFiles = Directory.GetFiles(dir).Select(f => Path.GetFileName(f)); foreach (var t in tilesetnames) { var realFilename = tilesetFiles.FirstOrDefault(file => t.Equals(file, StringComparison.InvariantCultureIgnoreCase)) ?? string.Empty; if (!string.IsNullOrWhiteSpace(t) && (!string.IsNullOrWhiteSpace(realFilename) || GameTexturePacks.GetFrame(Path.Combine("resources", "tilesets", t.ToLower())) != null) && !mTilesetDict.ContainsKey(t.ToLower())) { mTilesetDict.Add( t.ToLower(), Core.Graphics.Renderer.LoadTexture(Path.Combine("resources", "tilesets", t), Path.Combine("resources", "tilesets", realFilename)) ); } } TilesetsLoaded = true; }
public override void LoadTexturePacks() { mTexturePackDict.Clear(); var dir = Path.Combine("resources", "packs"); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var items = Directory.GetFiles(dir, "*.json"); for (var i = 0; i < items.Length; i++) { var json = File.ReadAllText(items[i]); var obj = JObject.Parse(json); var frames = (JArray)obj["frames"]; var img = obj["meta"]["image"].ToString(); if (File.Exists(Path.Combine("resources", "packs", img))) { var platformText = Core.Graphics.Renderer.LoadTexture(Path.Combine("resources", "packs", img)); if (platformText != null) { foreach (var frame in frames) { var filename = frame["filename"].ToString(); var sourceRect = new Rectangle( int.Parse(frame["frame"]["x"].ToString()), int.Parse(frame["frame"]["y"].ToString()), int.Parse(frame["frame"]["w"].ToString()), int.Parse(frame["frame"]["h"].ToString()) ); var rotated = bool.Parse(frame["rotated"].ToString()); var sourceSize = new Rectangle( int.Parse(frame["spriteSourceSize"]["x"].ToString()), int.Parse(frame["spriteSourceSize"]["y"].ToString()), int.Parse(frame["spriteSourceSize"]["w"].ToString()), int.Parse(frame["spriteSourceSize"]["h"].ToString()) ); GameTexturePacks.AddFrame( new GameTexturePackFrame(filename, sourceRect, rotated, sourceSize, platformText) ); } } } } }
public override GameTexture LoadTexture(string filename, string realFilename) { var packFrame = GameTexturePacks.GetFrame(filename); if (packFrame != null) { var tx = new MonoTexture(mGraphicsDevice, filename, packFrame); mAllTextures.Add(tx); return(tx); } var tex = new MonoTexture(mGraphicsDevice, filename, realFilename); mAllTextures.Add(tex); return(tex); }
//Graphic Loading public override void LoadTilesets(string[] tilesetnames) { mTilesetDict.Clear(); foreach (var t in tilesetnames) { if (t != "" && (File.Exists(Path.Combine("resources", "tilesets", t)) || GameTexturePacks.GetFrame(Path.Combine("resources", "tilesets", t.ToLower())) != null) && !mTilesetDict.ContainsKey(t.ToLower())) { mTilesetDict.Add( t.ToLower(), Core.Graphics.Renderer.LoadTexture(Path.Combine("resources", "tilesets", t)) ); } } TilesetsLoaded = true; }