Пример #1
0
        /// <summary>
        /// Horrid masterpiece
        /// </summary>
        public static void AppendFrom(this SpriteData spriteData, SpriteData appendSpriteData)
        {
            foreach (var name in appendSpriteData.SpriteNames)
            {
                if (spriteData.SpriteNames.All(s => s.Key != name.Key))
                {
                    spriteData.SpriteNames.Add(name.Key, name.Value);
                }
            }
            foreach (var category in appendSpriteData.SpriteCategories)
            {
                NameProperty.SetValue(category.Value, category.Value.Name.Replace("append_", ""));

                if (spriteData.SpriteCategories.FirstOrDefault(s => s.Value.Name == category.Value.Name) is var kvp && kvp.Value != null)
                {
                    var sheetCount = kvp.Value.SpriteSheetCount;

                    kvp.Value.SheetSizes = kvp.Value.SheetSizes.Concat(category.Value.SheetSizes).ToArray();

                    kvp.Value.SpriteParts.AddRange(category.Value.SpriteParts.Select(p =>
                    {
                        p.SheetID += sheetCount;
                        return(p);
                    }));
                    kvp.Value.SpriteSheets.AddRange(category.Value.SpriteSheets);
                }
Пример #2
0
 public CharacterItemContext(string name, int index, CharacterContext context)
 {
     _characterContext = context;
     NameProperty.SetValue(name);
     IndexProperty.SetValue(index);
 }
Пример #3
0
 public MapItemContext(string name, int index, MapContext context)
 {
     _mapContext = context;
     NameProperty.SetValue(name);
     IndexProperty.SetValue(index);
 }