Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    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);
         }
     }
 }
Exemplo n.º 5
0
    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);
    }