private static void HandleAspectDisplay(CharacterModel model, EquipmentDef display, EquipmentDef target, ItemDef item) { ItemMask list = model.enabledItemDisplays; ItemIndex index = item.itemIndex; if (!target) { return; } if (display == target) { if (!list.Contains(index)) { list.Add(index); DisplayRuleGroup drg = model.itemDisplayRuleSet.GetEquipmentDisplayRuleGroup(target.equipmentIndex); model.InstantiateDisplayRuleGroup(drg, index, EquipmentIndex.None); } } else { if (list.Contains(index)) { list.Remove(index); RemoveAspectDisplay(model, index); } } }
private static void AddingItemDisplayRulesToCharacterModels(On.RoR2.CharacterModel.orig_Start orig, CharacterModel self) { orig(self); foreach (var customItem in ItemDefinitions) { if (customItem.ItemDisplayRules != null) { var displayRuleGroup = new DisplayRuleGroup { rules = customItem.ItemDisplayRules }; self.itemDisplayRuleSet.SetItemDisplayRuleGroup(customItem.ItemDef.name, displayRuleGroup); } } foreach (var customEquipment in EquipmentDefinitions) { if (customEquipment.ItemDisplayRules != null) { var displayRuleGroup = new DisplayRuleGroup { rules = customEquipment.ItemDisplayRules }; self.itemDisplayRuleSet.SetItemDisplayRuleGroup(customEquipment.EquipmentDef.name, displayRuleGroup); } } self.itemDisplayRuleSet.InvokeMethod("GenerateRuntimeValues"); }