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); }
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; } } }