Beispiel #1
0
        internal int PluginRequestCharSetIndex(Guid CharSetId)
        {
            if (RequestCharSetIndex != null)
            {
                PluginCharSetIdEventArgs args = new PluginCharSetIdEventArgs {
                    Id = CharSetId
                };
                RequestCharSetIndex(this, args);
                return(args.Index);
            }

            return(-1);
        }
Beispiel #2
0
        private void PluginManager_PluginRequestCharsetIndex(object sender, PluginCharSetIdEventArgs e)
        {
            var sets = csManager.CharSets;
            int idx  = -1;

            if (sets.Sprites != null && sets.Sprites.Any(s => s.Id == e.Id))
            {
                //Sprite index
                idx = 0;

                foreach (var item in sets.Sprites)
                {
                    if (item.Id == e.Id)
                    {
                        e.Index = idx;
                        return;
                    }
                    else
                    {
                        idx++;
                    }
                }

                //error?
                idx = -1;
            }
            else if (sets.Tiles != null && sets.Tiles.Any(s => s.Id == e.Id))
            {
                //Tile index
                idx = 0;

                foreach (var item in sets.Sprites)
                {
                    if (item.Id == e.Id)
                    {
                        e.Index = idx;
                        return;
                    }
                    else
                    {
                        idx += item.Data.Length;
                    }
                }

                //error?
                idx = -1;
            }
        }