示例#1
0
    public void FillCheck()
    {
        if (base.isClient)
        {
            return;
        }
        BasePlayer ownerPlayer = base.GetOwnerPlayer();

        if (!ownerPlayer)
        {
            return;
        }
        float   single  = UnityEngine.Time.realtimeSinceStartup - this.lastFillTime;
        Vector3 vector3 = ownerPlayer.transform.position - new Vector3(0f, 1f, 0f);

        if (this.CanFillFromWorld())
        {
            this.AddLiquid(WaterResource.GetAtPoint(vector3), Mathf.FloorToInt(single * this.fillMlPerSec));
            return;
        }
        LiquidContainer facingLiquidContainer = this.GetFacingLiquidContainer();

        if (facingLiquidContainer != null && facingLiquidContainer.HasLiquidItem())
        {
            int num = Mathf.CeilToInt((1f - this.HeldFraction()) * (float)this.MaxHoldable());
            if (num > 0)
            {
                Item liquidItem = facingLiquidContainer.GetLiquidItem();
                int  num1       = Mathf.Min(Mathf.CeilToInt(single * this.fillMlPerSec), Mathf.Min(liquidItem.amount, num));
                this.AddLiquid(liquidItem.info, num1);
                liquidItem.UseItem(num1);
                facingLiquidContainer.OpenTap(2f);
            }
        }
    }
示例#2
0
    public void FillCheck()
    {
        if (base.isClient)
        {
            return;
        }
        BasePlayer ownerPlayer = GetOwnerPlayer();

        if (!ownerPlayer)
        {
            return;
        }
        float           f   = (UnityEngine.Time.realtimeSinceStartup - lastFillTime) * fillMlPerSec;
        Vector3         pos = ownerPlayer.transform.position - new Vector3(0f, 1f, 0f);
        LiquidContainer facingLiquidContainer = GetFacingLiquidContainer();

        if (Interface.CallHook("OnLiquidVesselFill", this, ownerPlayer, facingLiquidContainer) != null)
        {
            return;
        }
        if (facingLiquidContainer == null && CanFillFromWorld())
        {
            AddLiquid(WaterResource.GetAtPoint(pos), Mathf.FloorToInt(f));
        }
        else if (facingLiquidContainer != null && facingLiquidContainer.HasLiquidItem())
        {
            int num = Mathf.CeilToInt((1f - HeldFraction()) * (float)MaxHoldable());
            if (num > 0)
            {
                Item liquidItem = facingLiquidContainer.GetLiquidItem();
                int  num2       = Mathf.Min(Mathf.CeilToInt(f), Mathf.Min(liquidItem.amount, num));
                AddLiquid(liquidItem.info, num2);
                liquidItem.UseItem(num2);
                facingLiquidContainer.OpenTap(2f);
            }
        }
        lastFillTime = UnityEngine.Time.realtimeSinceStartup;
    }
    public void FillCheck()
    {
        if (this.isClient)
        {
            return;
        }
        BasePlayer ownerPlayer = this.GetOwnerPlayer();

        if (!Object.op_Implicit((Object)ownerPlayer))
        {
            return;
        }
        float   num1 = Time.get_realtimeSinceStartup() - this.lastFillTime;
        Vector3 pos  = Vector3.op_Subtraction(((Component)ownerPlayer).get_transform().get_position(), new Vector3(0.0f, 1f, 0.0f));

        if (this.CanFillFromWorld())
        {
            this.AddLiquid(WaterResource.GetAtPoint(pos), Mathf.FloorToInt(num1 * this.fillMlPerSec));
        }
        else
        {
            LiquidContainer facingLiquidContainer = this.GetFacingLiquidContainer();
            if (!Object.op_Inequality((Object)facingLiquidContainer, (Object)null) || !facingLiquidContainer.HasLiquidItem())
            {
                return;
            }
            int num2 = Mathf.CeilToInt((1f - this.HeldFraction()) * (float)this.MaxHoldable());
            if (num2 <= 0)
            {
                return;
            }
            Item liquidItem = facingLiquidContainer.GetLiquidItem();
            int  num3       = Mathf.Min(Mathf.CeilToInt(num1 * this.fillMlPerSec), Mathf.Min(liquidItem.amount, num2));
            this.AddLiquid(liquidItem.info, num3);
            liquidItem.UseItem(num3);
            facingLiquidContainer.OpenTap(2f);
        }
    }