예제 #1
0
        public static void Change(AdditionalAccessorySlotData slot, ChaControl chaControl)
        {
#if DEBUG
            Log.LogInfo($"Changing UI For: {slot} on {chaControl?.fileParam?.fullname}");
#endif

            Instance.Controller  = chaControl.gameObject.GetComponent <AdditionalAccessoryControlsController>();
            Instance.CurrentSlot = slot;

            string[] availableSlots = Instance.AvailableSlots();

            AdditionalAccessoryVisibilityRuleData rule = slot.FindVisibilityRule(AdditionalAccessoryVisibilityRules.ACCESSORY_LINK);
            if (rule == null)
            {
                rule = slot.FindVisibilityRule(AdditionalAccessoryVisibilityRules.ACCESSORY_INVERSE_LINK);
            }

            if (rule != null)
            {
                if (!availableSlots.Contains(rule.Modifier))
                {
                    slot.ClearVisibilityRule(rule.Rule);
                    Instance.accessorySlotString = availableSlots.Length > 0 ? availableSlots[0] : "0";
                }
                else
                {
                    Instance.accessorySlotString = rule.Modifier;
                }
            }
            else
            {
                Instance.accessorySlotString = availableSlots.Length > 0 ? availableSlots[0] : "0";
            }
        }
            public AdditionalAccessoryVisibilityRuleData Copy()
            {
                AdditionalAccessoryVisibilityRuleData copy = new AdditionalAccessoryVisibilityRuleData();

                copy.Rule     = this.Rule;
                copy.Modifier = this.Modifier;
                return(copy);
            }
 public void ClearVisibilityRule(AdditionalAccessoryVisibilityRules rule)
 {
     if (VisibilityRules == null)
     {
         return;
     }
     for (int i = VisibilityRules.Count - 1; i >= 0; i--)
     {
         AdditionalAccessoryVisibilityRuleData data = VisibilityRules[i];
         if (data.Rule.Equals(rule))
         {
             VisibilityRules.RemoveAt(i);
         }
     }
 }
        public void SetVisibilityRule(AdditionalAccessoryVisibilityRules rule, string mod, bool enabled)
        {
            if (VisibilityRules == null)
            {
                VisibilityRules = new List <AdditionalAccessoryVisibilityRuleData>();
            }

            AdditionalAccessoryVisibilityRuleData foundRule = FindVisibilityRule(rule);

            if (!enabled && foundRule != null)
            {
                VisibilityRules.Remove(foundRule);
            }
            else if (enabled)
            {
                VisibilityRules.Add(new AdditionalAccessoryVisibilityRuleData(rule, mod));
            }
        }