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; })); }
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); }
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); }
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); } }
/// <summary> /// Compares liquid and liquid /// </summary> public static bool CompareL2L(CGLiquid a, CGLiquid b) { return(BM.Utility.CompareColor(a.MainColor, b.MainColor)); }