private void SetVillagerFromIndex(int index)
        {
            if (villagerDatabase != null && selectedVillager != null && index > -1)
            {
                var count = 0;
                for (var i = 0; i < villagerDatabase.Length; i++)
                {
                    var speciesDict = villagerDatabase[i];
                    if (count + speciesDict.Count > index)
                    {
                        var species = (byte)i;
                        var variant = speciesDict.Keys.ElementAt(index - count);
                        if (selectedVillager.Species != species || selectedVillager.VariantIdx != variant)
                        {
                            selectedVillager.Species    = species;
                            selectedVillager.VariantIdx = variant;

                            // Update image
                            var panel = this.FindControl <StackPanel>("VillagerPanel");
                            if (panel.Children[selectedVillager.Index] is Button btn && btn.Content is Image img)
                            {
                                img.Source?.Dispose();
                                img.Source = ImageLoadingUtil.LoadImageForVillager(selectedVillager);
                                ToolTip.SetTip(img, villagerDatabase[species][variant]);
                            }
                            return;
                        }
                    }
                    count += speciesDict.Count;
                }
            }
        }
 private void LoadVillagers()
 {
     if (saveFile != null && saveFile.Town != null)
     {
         var villagerControl = this.FindControl <StackPanel>("VillagerPanel");
         for (var i = 0; i < 10; i++)
         {
             var villager = saveFile.Town.GetVillager(i);
             var img      = new Image
             {
                 Width  = 64,
                 Height = 64,
                 Source = ImageLoadingUtil.LoadImageForVillager(villager),
                 Cursor = new Cursor(StandardCursorType.Hand)
             };
             var button = new Button
             {
                 Background      = Brushes.Transparent,
                 BorderThickness = new Thickness(0),
                 Name            = $"Villager{i}",
                 Content         = img
             };
             button.Click += (o, e) => LoadVillager(villager);
             if (villagerDatabase != null)
             {
                 ToolTip.SetTip(img, villagerDatabase[villager.Species][villager.VariantIdx]);
             }
             villagerControl.Children.Add(button);
         }
     }
 }
Exemple #3
0
        private void LoadVillagers()
        {
            var villagerControl = this.FindControl <StackPanel>("VillagerPanel");

            for (var i = 0; i < 10; i++)
            {
                var villager = saveFile.Villagers[i];
                var img      = new Image
                {
                    Width  = 64,
                    Height = 64,
                    Source = ImageLoadingUtil.LoadImageForVillager(villager)
                };
                villagerControl.Children.Add(img);
            }
        }