示例#1
0
 public void UpdateData(ModsList.RowData rowData)
 {
     slotNum           = rowData.slotNum;
     name              = rowData.name;
     textureID         = rowData.textureID;
     modFolder         = rowData.modFolder;
     propertiesEnabled = rowData.propertiesEnabled;
     metal             = rowData.metal;
     missingModel      = rowData.missingModel;
     missingPortraits  = rowData.missingPortraits;
     hasAudio          = rowData.hasAudio;
     hasCustomName     = rowData.hasCustomName;
     wifiSafe          = rowData.wifiSafe;
     modMissing        = rowData.modMissing;
     UpdateData();
 }
        public void RefreshRowData()
        {
            _RowData = new List <ModsList.RowData>();
            _Project = _SmashProjectManager.CurrentProject;
            int maxSlots = _Project.EnableMoreCustomSlots ? _CurrentFighter.unrestrictedSlots : _CurrentFighter.maxSlots;

            for (int i = 0; i < maxSlots; ++i)
            {
                ModsList.RowData row      = new ModsList.RowData();
                bool             modFound = false;
                row.slotNum = i;
                for (int j = 0; j < _Project.ActiveCharacterSlotMods.Count; ++j)
                {
                    if (_Project.ActiveCharacterSlotMods[j].CharacterID != _CurrentFighter.id)
                    {
                        continue;
                    }
                    if (_Project.ActiveCharacterSlotMods[j].SlotID != i)
                    {
                        continue;
                    }
                    row.modFolder = _Project.ActiveCharacterSlotMods[j].FolderName;

                    CharacterSlotModXML data = Globals.Utils.OpenCharacterSlotKamiModFile(_CurrentFighter.name, row.modFolder);
                    if (data != null)
                    {
                        row.name             = data.DisplayName;
                        row.missingPortraits = (!data.chr_00 || !data.chr_11 || !data.chr_13 || !data.stock_90);
                        if (data.UseCustomName && !row.missingPortraits)
                        {
                            if (!data.chrn_11 || data.BoxingRingText == null)
                            {
                                row.missingPortraits = true;
                            }
                            else if (data.BoxingRingText.Equals(string.Empty))
                            {
                                row.missingPortraits = true;
                            }
                        }
                        row.metal         = data.MetalModel;
                        row.hasAudio      = data.Sound || data.Voice;
                        row.hasCustomName = data.UseCustomName;
                        row.wifiSafe      = data.WifiSafe;
                    }
                    else
                    {
                        row.name              = String.Format("{0} (Mod is missing!)", row.modFolder);
                        row.modMissing        = true;
                        row.propertiesEnabled = false;
                    }
                    _RowData.Add(row);
                    modFound = true;
                    break;
                }
                if (modFound)
                {
                    continue;
                }
                if (i < _CurrentFighter.defaultSlots)
                {
                    row.name = "Default";
                    _RowData.Add(row);
                }
                else
                {
                    break;
                }
            }

            PopulateRows();
        }