Exemplo n.º 1
0
 public void LerpToLiquid(CGLiquid target, float t)
 {
     StartCoroutine(BM.Utility.LerpColorOverTime(MainColor, target.MainColor, t, (res) => {
         MainColor = res;
     }));
     StartCoroutine(BM.Utility.LerpColorOverTime(TopColor, target.TopColor, t, (res) => {
         TopColor = res;
     }));
     StartCoroutine(BM.Utility.LerpColorOverTime(RimColor, target.RimColor, t, (res) => {
         RimColor = res;
     }));
 }
Exemplo n.º 2
0
    public void Start()
    {
        dropReceiverBox.onDropEnter.AddListener((drop) => {
            CGLiquid lastLiquid       = liquidFragments[liquidFragments.Count - 1];
            lastLiquid.FillAmountInt += incAmountPerDrop;

            curFillAmount             += incAmountPerDrop;
            float fillPercentage       = (float)curFillAmount / (float)soLiquidFill.maxFillAmount;
            float fillHigh             = Mathf.Lerp(liquidLowestFA, liquidHighestFA, fillPercentage);
            lastLiquid.FillAmountFloat = fillHigh;
        });
        InitRenderLiquidFill(soLiquidFill);
    }
Exemplo n.º 3
0
    public void CreateLiquidFragment(SOLiquid dataModel)
    {
        CGLiquid clone = Instantiate(liquidModel).GetComponent <CGLiquid>();

        clone.Init(dataModel);
        clone.SetDrink(this);
        clone.FillAmountFloat = AmountI2F(currentAmount);
        clone.FillAmountInt   = 0;

        RenderQueueSetter.Set(clone.gameObject, renderQueueMax - liquidFragment.Count);
        liquidFragment.Add(clone);

        clone.transform.SetParent(this.transform);
        clone.gameObject.SetActive(true);
    }
Exemplo n.º 4
0
    public void InitRenderLiquidFill(SOLiquidFill data)
    {
        ClearFragments();
        liquidFragments = new List <CGLiquid>();

        int renderQueueMax = 2000 + data.fragmentCap;

        curFillAmount = 0;
        Color lastFragmentTopColor = data.fragments[data.fragments.Count - 1].soLiquid.topColor;

        for (int i = 0; i < data.fragments.Count; i++)
        {
            CGLiquid lqClone = Instantiate(liquidModel).GetComponent <CGLiquid>();
            lqClone.transform.SetParent(transform);

            lqClone.Init(data.fragments[i].soLiquid);
            lqClone.TopColor      = lastFragmentTopColor;
            lqClone.FillAmountInt = data.fragments[i].fillAmount;

            curFillAmount += data.fragments[i].fillAmount;
            float fillPercentage = (float)curFillAmount / (float)data.maxFillAmount;
            float fillHigh       = Mathf.Lerp(liquidLowestFA, liquidHighestFA, fillPercentage);
            lqClone.FillAmountFloat = fillHigh;

            dropReceiverBox.transform.position = new Vector3(
                dropReceiverBox.transform.position.x,
                Mathf.Lerp(dropReceiverBoxLowest, dropReceiverBoxHighest, fillPercentage),
                dropReceiverBox.transform.position.z
                );

            RenderQueueSetter.Set(lqClone.gameObject, renderQueueMax - i);

            liquidFragments.Add(lqClone);

            lqClone.gameObject.SetActive(true);
        }
    }
Exemplo n.º 5
0
 /// <summary>
 /// Compares liquid and liquid
 /// </summary>
 public static bool CompareL2L(CGLiquid a, CGLiquid b)
 {
     return(BM.Utility.CompareColor(a.MainColor, b.MainColor));
 }