コード例 #1
0
        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)));
                    }
                }
            }
        }
コード例 #2
0
        //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;
        }
コード例 #3
0
        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)
                                );
                        }
                    }
                }
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        //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;
        }