Example #1
0
        public MonoFont GetFont(int resourceGroup, string category, string name)
        {
            MonoFontDataVariables vars = fonts[category][name];

            MonoFont font = new MonoFont(
                SpriteSheet.GetSingleSprite(resourceManager, vars.Texture, resourceGroup),
                vars.Characters,
                vars.CharWidth,
                vars.CharHeight,
                vars.GridSize,
                vars.HorizontalSpace,
                vars.VerticalSpace);

            return(font);
        }
Example #2
0
        void Stage2()
        {
            HandleVariables();

            CategorizeVariables();

            HandleAdresses();

            //Convert \@ and \$ to normal.
            foreach (Element element in elementList)
            {
                for (int i = 0; i < element.Parameters.Length; i++)
                {
                    bool   lastWasBackslash = false;
                    string line             = "";
                    foreach (char c in element.Parameters[i])
                    {
                        if (lastWasBackslash)
                        {
                        }
                        if (lastWasBackslash && c == '\\')
                        {
                            line += '\\';
                        }
                        else if (c != '\\')
                        {
                            line += c;
                        }
                        lastWasBackslash = c == '\\' && !lastWasBackslash;
                    }
                    element.Parameters[i] = line;
                }
            }

            //Sort the elements into the groups.
            foreach (Element element in elementList)
            {
                switch (element.CategoryType)
                {
                case CommandType.CatValue:
                    if (!values.ContainsKey(element.Category))
                    {
                        values.Add(element.Category, new Dictionary <string, string>());
                    }

                    values[element.Category].Add(element.DataName, element.Parameters[0]);
                    break;

                case CommandType.CatTexture:
                    if (!textures.ContainsKey(element.Category))
                    {
                        textures.Add(element.Category, new Dictionary <string, SpriteLoadData>());
                    }

                    if (element.ContentDir != "")
                    {
                        if (element.Spritesheet == "")
                        {
                            element.Parameters[0] = Path.Combine(element.ContentDir, element.Parameters[0]);
                        }
                        else
                        {
                            element.Spritesheet = Path.Combine(element.ContentDir, element.Spritesheet);
                        }
                    }

                    element.Spritesheet   = element.Spritesheet.Replace('/', '\\');
                    element.Parameters[0] = element.Parameters[0].Replace('/', '\\');
                    textures[element.Category].Add(element.DataName, new SpriteLoadData(element.Spritesheet, element.Parameters[0]));
                    break;

                case CommandType.CatColor:
                    if (!colors.ContainsKey(element.Category))
                    {
                        colors.Add(element.Category, new Dictionary <string, Color>());
                    }

                    Color color;
                    if (element.Parameters.Length == 3)
                    {
                        color = new Color(Convert.ToInt32(element.Parameters[0]),
                                          Convert.ToInt32(element.Parameters[1]),
                                          Convert.ToInt32(element.Parameters[2]));
                    }
                    else
                    {
                        color = new Color(Convert.ToInt32(element.Parameters[0]),
                                          Convert.ToInt32(element.Parameters[1]),
                                          Convert.ToInt32(element.Parameters[2]),
                                          Convert.ToInt32(element.Parameters[3]));
                    }

                    colors[element.Category].Add(element.DataName, color);
                    break;

                case CommandType.CatFont:
                    if (!fonts.ContainsKey(element.Category))
                    {
                        fonts.Add(element.Category, new Dictionary <string, MonoFontDataVariables>());
                    }

                    MonoFontDataVariables data = new MonoFontDataVariables();
                    data.Texture = element.Parameters[0].Replace('/', '\\');
                    if (element.ContentDir != "")
                    {
                        data.Texture = Path.Combine(element.ContentDir, data.Texture);
                    }
                    data.Characters      = element.Parameters[1].Split(new [] { "|#|" }, StringSplitOptions.RemoveEmptyEntries);
                    data.CharWidth       = Convert.ToInt32(element.Parameters[2]);
                    data.CharHeight      = Convert.ToInt32(element.Parameters[3]);
                    data.GridSize        = Convert.ToInt32(element.Parameters[4]);
                    data.HorizontalSpace = Convert.ToInt32(element.Parameters[5]);
                    data.VerticalSpace   = Convert.ToInt32(element.Parameters[6]);

                    fonts[element.Category].Add(element.DataName, data);

                    break;
                }
            }
        }