private bool CanWearItem(Item item, int targetSlot) { ItemModWearable component1 = (ItemModWearable)((Component)item.info).GetComponent <ItemModWearable>(); if (Object.op_Equality((Object)component1, (Object)null)) { return(false); } object obj1 = Interface.CallHook(nameof(CanWearItem), (object)this, (object)item, (object)targetSlot); if (obj1 is bool) { return((bool)obj1); } foreach (Item obj2 in this.containerWear.itemList.ToArray()) { if (obj2 != item) { ItemModWearable component2 = (ItemModWearable)((Component)obj2.info).GetComponent <ItemModWearable>(); if (!Object.op_Equality((Object)component2, (Object)null) && !component1.CanExistWith(component2) && !obj2.MoveToContainer(this.containerMain, -1, true)) { obj2.Drop(this.baseEntity.GetDropPosition(), this.baseEntity.GetDropVelocity(), (Quaternion)null); } } } return(true); }
private bool CanWearItem(Item item, int targetSlot) { ItemModWearable component = item.info.GetComponent <ItemModWearable>(); if (component == null) { return(false); } object obj = Interface.CallHook("CanWearItem", this, item, targetSlot); if (obj as bool) { return((bool)obj); } Item[] array = this.containerWear.itemList.ToArray(); for (int i = 0; i < (int)array.Length; i++) { Item item1 = array[i]; if (item1 != item) { ItemModWearable itemModWearable = item1.info.GetComponent <ItemModWearable>(); if (!(itemModWearable == null) && !component.CanExistWith(itemModWearable) && !item1.MoveToContainer(this.containerMain, -1, true)) { item1.Drop(base.baseEntity.GetDropPosition(), base.baseEntity.GetDropVelocity(), new Quaternion()); } } } return(true); }
public bool CanExistWith(ItemModWearable wearable) { if (Object.op_Equality((Object)wearable, (Object)null)) { return(true); } Wearable targetWearable1 = this.targetWearable; Wearable targetWearable2 = wearable.targetWearable; return((targetWearable1.occupationOver & targetWearable2.occupationOver) == (Wearable.OccupationSlots) 0 && (targetWearable1.occupationUnder & targetWearable2.occupationUnder) == (Wearable.OccupationSlots) 0); }
public void Add(List <Item> items, HitArea area = (HitArea) - 1) { for (int index = 0; index < items.Count; ++index) { Item obj = items[index]; ItemModWearable component = (ItemModWearable)((Component)obj.info).GetComponent <ItemModWearable>(); if (!Object.op_Equality((Object)component, (Object)null) && component.ProtectsArea(area)) { component.CollectProtection(obj, this); } } }
public bool CanExistWith(ItemModWearable wearable) { if (wearable == null) { return(true); } Wearable wearable2 = targetWearable; Wearable wearable3 = wearable.targetWearable; if ((wearable2.occupationOver & wearable3.occupationOver) != 0) { return(false); } if ((wearable2.occupationUnder & wearable3.occupationUnder) != 0) { return(false); } return(true); }