/// <summary>Registers the item into it's registry</summary> public override IdentifiableItem Register() { base.Register(); LookupRegistry.RegisterLiquid(ScriptableObjectsUtils.CreateLiquidDefinition(ID, InFx, VacFailFx)); return(this); }
protected virtual void BuildLiquidMaterialsAndRegister() { if (color != Color.clear) { Material mat = new Material(BaseObjects.originMaterial["Depth Water Ball"]); Texture2D tex = new Texture2D(1, 1); tex.SetPixel(0, 0, color); mat.SetTexture("_ColorRamp", tex); materials = mat.Group(); GameObject inFX = EffectObjects.fxWaterAcquire.CreatePrefabCopy(); inFX.name = inFX.name.Replace("(Clone)", "." + mainObject.Name); ParticleSystem part = inFX.GetComponent <ParticleSystem>(); if (part != null) { ParticleSystem.MainModule main = part.main; main.startColor = color; } ParticleSystemRenderer render = inFX.FindChild("Water Glops").GetComponent <ParticleSystemRenderer>(); if (render != null) { render.sharedMaterials = materials; } foreach (ParticleSystem childPart in inFX.GetComponentsInChildren <ParticleSystem>()) { ParticleSystem.MainModule main = childPart.main; main.startColor = color; } GameObject outFX = EffectObjects.fxVacWaterOut.CreatePrefabCopy(); outFX.name = outFX.name.Replace("(Clone)", "." + mainObject.Name); part = outFX.GetComponent <ParticleSystem>(); if (part != null) { ParticleSystem.MainModule main = part.main; main.startColor = color; } foreach (ParticleSystem childPart in outFX.GetComponentsInChildren <ParticleSystem>()) { ParticleSystem.MainModule main = childPart.main; main.startColor = color; } GameObject vacFailFX = EffectObjects.fxWaterVacFail.CreatePrefabCopy(); vacFailFX.name = vacFailFX.name.Replace("(Clone)", "." + mainObject.Name); part = vacFailFX.GetComponent <ParticleSystem>(); if (part != null) { ParticleSystem.MainModule main = part.main; main.startColor = color; } foreach (ParticleSystem childPart in vacFailFX.GetComponentsInChildren <ParticleSystem>()) { ParticleSystem.MainModule main = childPart.main; main.startColor = color; } destroyFX = EffectObjects.fxWaterSplat.CreatePrefabCopy(); destroyFX.name = destroyFX.name.Replace("(Clone)", "." + mainObject.Name); part = destroyFX.GetComponent <ParticleSystem>(); if (part != null) { ParticleSystem.MainModule main = part.main; main.startColor = color; } render = destroyFX.FindChild("Water Glops").GetComponent <ParticleSystemRenderer>(); if (render != null) { render.sharedMaterials = materials; } foreach (ParticleSystem childPart in destroyFX.GetComponentsInChildren <ParticleSystem>()) { ParticleSystem.MainModule main = childPart.main; main.startColor = color; } LookupRegistry.RegisterLiquid(new LookupDirector.Liquid() { id = ID, inFX = inFX, outFX = outFX, vacFailFX = vacFailFX }); } else { LookupRegistry.RegisterLiquid(new LookupDirector.Liquid() { id = ID, inFX = EffectObjects.fxWaterAcquire, outFX = EffectObjects.fxVacWaterOut, vacFailFX = EffectObjects.fxWaterVacFail }); } }