public static bool Prefix(WearNTear __instance) { if (__instance.m_oldMaterials == null) { __instance.m_oldMaterials = new List <WearNTear.OldMeshData>(); foreach (Renderer highlightRenderer in __instance.GetHighlightRenderers()) { WearNTear.OldMeshData item = default(WearNTear.OldMeshData); item.m_materials = highlightRenderer.sharedMaterials; item.m_color = new Color[item.m_materials.Length]; item.m_emissiveColor = new Color[item.m_materials.Length]; for (int i = 0; i < item.m_materials.Length; i++) { if (item.m_materials[i].HasProperty("_Color")) { item.m_color[i] = item.m_materials[i].GetColor("_Color"); } if (item.m_materials[i].HasProperty("_EmissionColor")) { item.m_emissiveColor[i] = item.m_materials[i].GetColor("_EmissionColor"); } } item.m_renderer = highlightRenderer; __instance.m_oldMaterials.Add(item); } } Color color = new Color(0.6f, 0.8f, 1f); float supportColorValue; if (!_modEnabled) { supportColorValue = __instance.GetSupportColorValue(); if (supportColorValue >= 0f) { color = Color.Lerp(new Color(1f, 0f, 0f), new Color(0f, 1f, 0f), supportColorValue); Color.RGBToHSV(color, out var H, out var S, out var V); S = Mathf.Lerp(1f, 0.5f, supportColorValue); V = Mathf.Lerp(1.2f, 0.9f, supportColorValue); color = Color.HSVToRGB(H, S, V); } } foreach (WearNTear.OldMeshData oldMaterial in __instance.m_oldMaterials) { if ((bool)oldMaterial.m_renderer) { Material[] materials = oldMaterial.m_renderer.materials; foreach (Material obj in materials) { obj.SetColor("_EmissionColor", color * 0.4f); obj.color = color; } } } __instance.CancelInvoke("ResetHighlight"); __instance.Invoke("ResetHighlight", 0.2f); return(false); }
// Token: 0x0600101B RID: 4123 RVA: 0x000714F0 File Offset: 0x0006F6F0 public void Highlight() { if (this.m_oldMaterials == null) { this.m_oldMaterials = new List <WearNTear.OldMeshData>(); foreach (Renderer renderer in this.GetHighlightRenderers()) { WearNTear.OldMeshData oldMeshData = default(WearNTear.OldMeshData); oldMeshData.m_materials = renderer.sharedMaterials; oldMeshData.m_color = new Color[oldMeshData.m_materials.Length]; oldMeshData.m_emissiveColor = new Color[oldMeshData.m_materials.Length]; for (int i = 0; i < oldMeshData.m_materials.Length; i++) { if (oldMeshData.m_materials[i].HasProperty("_Color")) { oldMeshData.m_color[i] = oldMeshData.m_materials[i].GetColor("_Color"); } if (oldMeshData.m_materials[i].HasProperty("_EmissionColor")) { oldMeshData.m_emissiveColor[i] = oldMeshData.m_materials[i].GetColor("_EmissionColor"); } } oldMeshData.m_renderer = renderer; this.m_oldMaterials.Add(oldMeshData); } } float supportColorValue = this.GetSupportColorValue(); Color color = new Color(0.6f, 0.8f, 1f); if (supportColorValue >= 0f) { color = Color.Lerp(new Color(1f, 0f, 0f), new Color(0f, 1f, 0f), supportColorValue); float h; float s; float v; Color.RGBToHSV(color, out h, out s, out v); s = Mathf.Lerp(1f, 0.5f, supportColorValue); v = Mathf.Lerp(1.2f, 0.9f, supportColorValue); color = Color.HSVToRGB(h, s, v); } foreach (WearNTear.OldMeshData oldMeshData2 in this.m_oldMaterials) { if (oldMeshData2.m_renderer) { foreach (Material material in oldMeshData2.m_renderer.materials) { material.SetColor("_EmissionColor", color * 0.4f); material.color = color; } } } base.CancelInvoke("ResetHighlight"); base.Invoke("ResetHighlight", 0.2f); }
private static void StoreOldMaterials(WearNTear wearNTear) { wearNTear.m_oldMaterials = new List <WearNTear.OldMeshData>(); foreach (Renderer highlightRenderer in wearNTear.GetHighlightRenderers()) { WearNTear.OldMeshData item = default(WearNTear.OldMeshData); item.m_materials = highlightRenderer.sharedMaterials; item.m_color = new Color[item.m_materials.Length]; item.m_emissiveColor = new Color[item.m_materials.Length]; for (int i = 0; i < item.m_materials.Length; i++) { if (item.m_materials[i].HasProperty("_Color")) { item.m_color[i] = item.m_materials[i].GetColor("_Color"); } if (item.m_materials[i].HasProperty("_EmissionColor")) { item.m_emissiveColor[i] = item.m_materials[i].GetColor("_EmissionColor"); } } item.m_renderer = highlightRenderer; wearNTear.m_oldMaterials.Add(item); } }