Example #1
0
    public void AddLiquid(ItemDefinition liquidType, int amount)
    {
        if (amount <= 0)
        {
            return;
        }
        Item             item      = GetItem();
        Item             item2     = item.contents.GetSlot(0);
        ItemModContainer component = item.info.GetComponent <ItemModContainer>();

        if (item2 == null)
        {
            ItemManager.Create(liquidType, amount, 0uL)?.MoveToContainer(item.contents);
            return;
        }
        int            num            = Mathf.Clamp(item2.amount + amount, 0, component.maxStackSize);
        ItemDefinition itemDefinition = WaterResource.Merge(item2.info, liquidType);

        if (itemDefinition != item2.info)
        {
            item2.Remove();
            item2 = ItemManager.Create(itemDefinition, num, 0uL);
            item2.MoveToContainer(item.contents);
        }
        else
        {
            item2.amount = num;
        }
        item2.MarkDirty();
        SendNetworkUpdateImmediate();
    }
    public void AddLiquid(ItemDefinition liquidType, int amount)
    {
        if (amount <= 0)
        {
            return;
        }
        Item             obj       = this.GetItem();
        Item             slot      = obj.contents.GetSlot(0);
        ItemModContainer component = (ItemModContainer)((Component)obj.info).GetComponent <ItemModContainer>();

        if (slot == null)
        {
            ItemManager.Create(liquidType, amount, 0UL)?.MoveToContainer(obj.contents, -1, true);
        }
        else
        {
            int            iAmount  = Mathf.Clamp(slot.amount + amount, 0, component.maxStackSize);
            ItemDefinition template = WaterResource.Merge(slot.info, liquidType);
            if (Object.op_Inequality((Object)template, (Object)slot.info))
            {
                slot.Remove(0.0f);
                slot = ItemManager.Create(template, iAmount, 0UL);
                slot.MoveToContainer(obj.contents, -1, true);
            }
            else
            {
                slot.amount = iAmount;
            }
            slot.MarkDirty();
            this.SendNetworkUpdateImmediate(false);
        }
    }
Example #3
0
    public void AddLiquid(ItemDefinition liquidType, int amount)
    {
        if (amount <= 0)
        {
            return;
        }
        Item             item      = this.GetItem();
        Item             slot      = item.contents.GetSlot(0);
        ItemModContainer component = item.info.GetComponent <ItemModContainer>();

        if (slot != null)
        {
            int            num            = Mathf.Clamp(slot.amount + amount, 0, component.maxStackSize);
            ItemDefinition itemDefinition = WaterResource.Merge(slot.info, liquidType);
            if (itemDefinition == slot.info)
            {
                slot.amount = num;
            }
            else
            {
                slot.Remove(0f);
                slot = ItemManager.Create(itemDefinition, num, (ulong)0);
                slot.MoveToContainer(item.contents, -1, true);
            }
            slot.MarkDirty();
            base.SendNetworkUpdateImmediate(false);
        }
        else
        {
            Item item1 = ItemManager.Create(liquidType, amount, (ulong)0);
            if (item1 != null)
            {
                item1.MoveToContainer(item.contents, -1, true);
                return;
            }
        }
    }