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)); } }