Exemplo n.º 1
0
    private void DoAddStatusItem(StatusItemGroup.Entry status_item, StatusItemCategory category, bool show_immediate = false)
    {
        GameObject       gameObject      = statusItemsFolder;
        Color            color           = (status_item.item.notificationType != NotificationType.BadMinor && status_item.item.notificationType != NotificationType.Bad && status_item.item.notificationType != NotificationType.DuplicantThreatening) ? statusItemTextColor_regular : statusItemTextColor_bad;
        TextStyleSetting style           = (category != Db.Get().StatusItemCategories.Main) ? StatusItemStyle_Other : StatusItemStyle_Main;
        StatusItemEntry  statusItemEntry = new StatusItemEntry(status_item, category, StatusItemPrefab, gameObject.transform, ToolTipStyle_Property, color, style, show_immediate, OnStatusItemDestroy);

        statusItemEntry.SetSprite(status_item.item.sprite);
        if (category != null)
        {
            int num = -1;
            List <StatusItemEntry> list = oldStatusItems.FindAll((StatusItemEntry e) => e.category == category);
            foreach (StatusItemEntry item in list)
            {
                num = item.GetIndex();
                item.Destroy(true);
                oldStatusItems.Remove(item);
            }
            if (category == Db.Get().StatusItemCategories.Main)
            {
                num = 0;
            }
            if (num != -1)
            {
                statusItemEntry.SetIndex(num);
            }
        }
        statusItems.Add(statusItemEntry);
    }
Exemplo n.º 2
0
    private void DoRemoveStatusItem(StatusItemGroup.Entry status_item, bool destroy_immediate = false)
    {
        int num = 0;

        while (true)
        {
            if (num >= statusItems.Count)
            {
                return;
            }
            if (statusItems[num].item.item == status_item.item)
            {
                break;
            }
            num++;
        }
        StatusItemEntry statusItemEntry = statusItems[num];

        statusItems.RemoveAt(num);
        oldStatusItems.Add(statusItemEntry);
        statusItemEntry.Destroy(destroy_immediate);
    }
Exemplo n.º 3
0
 private void OnStatusItemDestroy(StatusItemEntry item)
 {
     oldStatusItems.Remove(item);
 }