Esempio n. 1
0
        protected override Font Load(string path)
        {
            Pathfinder pathfinder = Pathfinder.Find(path, "fonts", Pathfinder.FileType.json);

            if (pathfinder.Path == null)
            {
                // Load fallback asset.
                Error.LogError("Failed to find font config <" + path + ">. Loading fallback asset <" + fallback + ">.");
                pathfinder = Pathfinder.Find(fallback, "fonts", Pathfinder.FileType.json);
                if (pathfinder.Path == null)
                {
                    Error.LogErrorAndShutdown("Failed to find fallback asset.");
                }
            }
            Font font = JsonHelper <Font> .Load(pathfinder.Path);

            Pathfinder.SetCurrentPath(pathfinder);
            Pathfinder pathfinder2 = Pathfinder.Find(font.FontFile, "fonts", Pathfinder.FileType.xnb);

            if (pathfinder2.Path == null)
            {
                // Load fallback asset.
                Error.LogError("Failed to find font <" + font.FontFile + ">. Loading fallback asset <" + fallback2 + ">.");
                pathfinder2 = Pathfinder.Find(fallback2, "fonts", Pathfinder.FileType.xnb);
                if (pathfinder.Path == null)
                {
                    Error.LogErrorAndShutdown("Failed to find fallback asset.");
                }
            }
            contentManager.RootDirectory = pathfinder2.ContentPath;
            font.SetFont(contentManager.Load <SpriteFont>(pathfinder2.ContentFile));
            Pathfinder.ClearCurrentPath();

            return(font);
        }
Esempio n. 2
0
        protected override Font Load(string path)
        {
            Pathfinder pathfinder = Pathfinder.Find(path, "fonts", Pathfinder.FileType.xml);

            if (pathfinder.Path == null)
            {
                // Load fallback asset.
                pathfinder = Pathfinder.Find("system:default", "fonts", Pathfinder.FileType.xml);
            }
            Font font = XmlHelper <Font> .Load(pathfinder.Path);

            Pathfinder.SetCurrentPath(pathfinder);
            Pathfinder pathfinder2 = Pathfinder.Find(font.FontFile, "fonts", Pathfinder.FileType.xnb);

            if (pathfinder2.Path == null)
            {
                // Load fallback asset.
                pathfinder2 = Pathfinder.Find("system:Pixellari_16px", "fonts", Pathfinder.FileType.xnb);
            }
            contentManager.RootDirectory = pathfinder2.ContentPath;
            font.SetFont(contentManager.Load <SpriteFont>(pathfinder2.ContentFile));
            Pathfinder.ClearCurrentPath();

            return(font);
        }
Esempio n. 3
0
        protected override Sprite Load(string path)
        {
            // TODO: if spriteconfig does not exist, try to load image as a default basic sprite?

            /*
             * // The below code can write an XML object to see what the XML structure should be like.
             * Sprite sprite2 = new Sprite();
             * sprite2.SetTexture(textureLibrary.Register("ball"));
             * sprite2.XCenter = 64f;
             * sprite2.YCenter = 64f;
             * XmlHelper<Sprite>.Save(Path.Combine(GlobalServices.SaveDirectory, "testsprite.xml") ,sprite2);
             */

            Pathfinder pathfinder = Pathfinder.Find(path, "sprites", Pathfinder.FileType.xml);

            if (pathfinder.Path == null)
            {
                // Load fallback asset.
                pathfinder = Pathfinder.Find("system:default", "sprites", Pathfinder.FileType.xml);
            }
            Sprite sprite = XmlHelper <Sprite> .Load(pathfinder.Path);

            Pathfinder.SetCurrentPath(pathfinder);
            sprite.SetTexture(textureLibrary.Register(sprite.TextureFile));
            Pathfinder.ClearCurrentPath(); // TODO: This develops loose ends too easily.
            return(sprite);
        }
Esempio n. 4
0
        public void Finalize(TextureLibrary textureLibrary, Pathfinder defaultPath)
        {
            Pathfinder.SetCurrentPath(defaultPath);

            if (DefaultFrame == null)
            {
                DefaultFrame = new _FrameRange();
            }
            if (DefaultFrame.Spritesheet != null)
            {
                DefaultFrame.Texture = textureLibrary.Register(DefaultFrame.Spritesheet);
            }
            if (DefaultFrame.X == null)
            {
                DefaultFrame.X = 0;
            }
            if (DefaultFrame.Y == null)
            {
                DefaultFrame.Y = 0;
            }
            if (DefaultFrame.Texture != null)
            {
                if (DefaultFrame.Width == null)
                {
                    DefaultFrame.Width = DefaultFrame.Texture.Width;
                }
                if (DefaultFrame.Height == null)
                {
                    DefaultFrame.Height = DefaultFrame.Texture.Height;
                }
            }
            else
            {
                DefaultFrame.Width  = 0;
                DefaultFrame.Height = 0;
            }
            if (DefaultFrame.AnchorX == null)
            {
                DefaultFrame.AnchorX = 0f;
            }
            if (DefaultFrame.AnchorY == null)
            {
                DefaultFrame.AnchorY = 0f;
            }
            if (DefaultFrame.Count == null)
            {
                DefaultFrame.Count = 1;
            }
            if (DefaultFrame.Frametime == null)
            {
                DefaultFrame.Frametime = 1f;
            }

            if (Animations == null)
            {
                Animations = new List <_Animation>(new _Animation[] { new _Animation() });
            }
            foreach (_Animation animation in Animations)
            {
                if (animation.Name == null)
                {
                    animation.Name = "default";
                }
                if (animation.Speed == null)
                {
                    animation.Speed = 1f;
                }
                if (animation.FrameRanges == null)
                {
                    animation.FrameRanges = new List <_FrameRange>();
                    animation.FrameRanges.Add(DefaultFrame);
                }
                else
                {
                    foreach (_FrameRange frame in animation.FrameRanges)
                    {
                        if (frame.Spritesheet == null)
                        {
                            frame.Spritesheet = DefaultFrame.Spritesheet;
                            frame.Texture     = DefaultFrame.Texture;
                        }
                        else
                        {
                            frame.Texture = textureLibrary.Register(frame.Spritesheet);
                        }
                        if (frame.X == null)
                        {
                            frame.X = DefaultFrame.X;
                        }
                        if (frame.Y == null)
                        {
                            frame.Y = DefaultFrame.Y;
                        }
                        if (frame.Width == null)
                        {
                            frame.Width = DefaultFrame.Width;
                        }
                        if (frame.Height == null)
                        {
                            frame.Height = DefaultFrame.Height;
                        }
                        if (frame.AnchorX == null)
                        {
                            frame.AnchorX = DefaultFrame.AnchorX;
                        }
                        if (frame.AnchorY == null)
                        {
                            frame.AnchorY = DefaultFrame.AnchorY;
                        }
                        if (frame.Count == null)
                        {
                            frame.Count = DefaultFrame.Count;
                        }
                        if (frame.Frametime == null)
                        {
                            frame.Frametime = 1f;                          // Do not inherit this from DefaultFrame.
                        }
                    }
                }

                if (DefaultAnimation == null)
                {
                    DefaultAnimation = animation.Name;
                }
            }

            Pathfinder.ClearCurrentPath(); // TODO: This develops loose ends too easily.
        }