Exemple #1
0
        private void OnModAdded(GameMod mod)
        {
            ModListItemData modListItemData = new ModListItemData();

            UICommonList.CommonListItem newItem = modList.AddItem();
            newItem.id = mod.Uid;
            newItem.itemObject.name = mod.PackageName;
            newItem.data            = modListItemData;

            modListItemData.Mod              = mod;
            modListItemData.Title            = newItem.itemObject.transform.Find("Title").GetComponent <Text>();
            modListItemData.Text             = newItem.itemObject.transform.Find("Text").GetComponent <Text>();
            modListItemData.TextFailed       = newItem.itemObject.transform.Find("TextFailed").GetComponent <Text>();
            modListItemData.TextStatus       = newItem.itemObject.transform.Find("TextStatus").GetComponent <Text>();
            modListItemData.Unload           = newItem.itemObject.transform.Find("Unload").GetComponent <Button>();
            modListItemData.Image            = newItem.itemObject.transform.Find("Image").GetComponent <Image>();
            modListItemData.EnableStatus     = newItem.itemObject.transform.Find("EnableStatus").GetComponent <Toggle>();
            modListItemData.ImageSmall       = newItem.itemObject.transform.Find("ImageSmall").GetComponent <Image>();
            modListItemData.EnableStatusText = newItem.itemObject.transform.Find("EnableStatus/Label").GetComponent <Text>();

            //Events
            modListItemData.Unload.onClick.AddListener(() => OnUnloadModClicked(mod));
            EventTriggerListener.Get(modListItemData.EnableStatus.gameObject).onClick = (b) => OnEnableStatusClicked(mod, newItem);

            UpdateModListItemInfos(newItem, mod);
            UpdateModListCountInfos();
        }
Exemple #2
0
 private void OnModRemoved(GameMod mod)
 {
     UICommonList.CommonListItem oldItem = modList.GetItemById(mod.Uid);
     if (oldItem != null)
     {
         modList.RemoveItem(oldItem);
     }
     oldItem.data = null;
     UpdateModListCountInfos();
 }
Exemple #3
0
 private void OnEnableStatusClicked(GameMod mod, UICommonList.CommonListItem newItem)
 {
     modEnableStatusListSaved = false;
     if (((ModListItemData)newItem.data).EnableStatus.isOn)
     {
         modEnableStatusList.Add(mod.PackageName);
     }
     else
     {
         modEnableStatusList.Remove(mod.PackageName);
     }
 }
Exemple #4
0
        private void UpdateModListItemInfos(UICommonList.CommonListItem newItem, GameMod mod)
        {
            ModListItemData modListItemData = (ModListItemData)newItem.data;

            modListItemData.EnableStatus.isOn = IsModEnabled(mod);
            modListItemData.Text.text         = mod.ModInfo.Introduction + "\n作者:" + mod.ModInfo.Author + "   版本:" +
                                                mod.ModInfo.Version;
            modListItemData.Title.text   = mod.ModInfo.Name + "\n( " + mod.PackageName + "/" + mod.ModType + ")";
            modListItemData.Image.sprite = mod.ModLogo == null ? mod_icon_default : mod.ModLogo;

            if (mod.IsModInitByGameinit)
            {
                modListItemData.EnableStatus.isOn         = true;
                modListItemData.EnableStatus.interactable = false;
                modListItemData.EnableStatusText.text     = "基础模块";
            }

            switch (mod.LoadStatus)
            {
            case GameModStatus.InitializeFailed:
                modListItemData.Image.sprite = mod_icon_failed;
                modListItemData.TextFailed.gameObject.SetActive(true);
                modListItemData.TextFailed.text   = mod.LoadFriendlyErrorExplain;
                modListItemData.TextStatus.text   = "初始化失败";
                modListItemData.ImageSmall.sprite = mod_icon_failed;
                modListItemData.ImageSmall.gameObject.SetActive(true);
                break;

            case GameModStatus.BadMod:
                modListItemData.ImageSmall.sprite = mod_icon_bad;
                modListItemData.ImageSmall.gameObject.SetActive(true);
                modListItemData.TextFailed.gameObject.SetActive(true);
                modListItemData.EnableStatus.gameObject.SetActive(false);
                modListItemData.TextStatus.text = "";
                modListItemData.TextFailed.text = "此模组与当前游戏版本不兼容";
                break;

            case GameModStatus.InitializeSuccess:
                modListItemData.TextFailed.gameObject.SetActive(false);

                modListItemData.ImageSmall.sprite = null;
                modListItemData.TextStatus.text   = "加载成功,已初始化";
                if (mod.IsModInitByGameinit)
                {
                    modListItemData.ImageSmall.gameObject.SetActive(true);
                    modListItemData.ImageSmall.sprite = mod_icon_default;
                }
                else
                {
                    modListItemData.ImageSmall.gameObject.SetActive(false);
                }
                break;

            case GameModStatus.NotInitialize:
                modListItemData.ImageSmall.sprite = mod_icon_not_load;
                modListItemData.ImageSmall.gameObject.SetActive(true);
                modListItemData.TextStatus.text = "模组还未初始化";
                modListItemData.TextFailed.gameObject.SetActive(false);
                break;

            case GameModStatus.Loading:
                modListItemData.ImageSmall.sprite = mod_icon_not_load;
                modListItemData.ImageSmall.gameObject.SetActive(true);
                modListItemData.TextStatus.text = "模组正在加载中";
                modListItemData.TextFailed.gameObject.SetActive(false);
                break;
            }

            UpdateModListCountInfos();
        }