using System; using System.Collections.Generic; using UnityEngine; // Token: 0x02000068 RID: 104 public class InteriorLights : MonoBehaviour { // Token: 0x06000B6D RID: 2925 RVA: 0x000DEC34 File Offset: 0x000DCE34 private void Start() { foreach (object obj in base.transform) { Transform transform = (Transform)obj; if (transform.gameObject.name.Contains("ompanion")) { this.companionPoints.Add(transform); } } } // Token: 0x06000B6E RID: 2926 RVA: 0x000DECAC File Offset: 0x000DCEAC public void LoadScene() { this.lightCount = this.lightTransforms.Count; } // Token: 0x06000B6F RID: 2927 RVA: 0x000DECC0 File Offset: 0x000DCEC0 public void TurnOnLights() { foreach (Light light in this.lights) { light.enabled = true; } } // Token: 0x06000B70 RID: 2928 RVA: 0x000DED14 File Offset: 0x000DCF14 public void TurnOffLights() { foreach (Light light in this.lights) { light.enabled = false; } } // Token: 0x06000B71 RID: 2929 RVA: 0x000DED68 File Offset: 0x000DCF68 public void SetUpCompanionNodes() { if (this.companionPoints.Count > 0) { int num = -1; float num2 = 20f; Vector3 vector = Vector3.zero; int count = this.companionPoints.Count; for (int i = 0; i < count; i++) { Transform transform = this.companionPoints[i]; int num3 = 0; foreach (object obj in transform) { Transform transform2 = (Transform)obj; if (transform != transform2) { vector += transform2.position; num3++; } } if (num3 > 0) { vector /= (float)num3; } float num4 = Vector3.Distance(Links.x.main.tr.position, vector); if (num4 < num2) { num2 = num4; num = i; } } if (num <= -1) { Links.x.fellowship.ClearCompanionNodes(); return; } Transform transform3 = this.companionPoints[num]; int num5 = 0; foreach (object obj2 in transform3) { Transform transform4 = (Transform)obj2; if (transform3 != transform4) { num5++; } } if (num5 == 1) { Links.x.fellowship.SetUpCompanionNodes(transform3.GetChild(0), null, null, null); } if (num5 == 2) { Links.x.fellowship.SetUpCompanionNodes(transform3.GetChild(0), transform3.GetChild(1), null, null); } if (num5 == 3) { Links.x.fellowship.SetUpCompanionNodes(transform3.GetChild(0), transform3.GetChild(1), transform3.GetChild(2), null); } if (num5 == 4) { Links.x.fellowship.SetUpCompanionNodes(transform3.GetChild(0), transform3.GetChild(1), transform3.GetChild(2), transform3.GetChild(3)); return; } } else { Links.x.fellowship.ClearCompanionNodes(); } } // Token: 0x06000B72 RID: 2930 RVA: 0x000DEF9C File Offset: 0x000DD19C public void ActiveLights() { for (int i = 0; i < 4; i++) { Vector3 vector = Vector3.zero; Color color = Color.black; float num = 0f; float num2 = 0f; if (i < this.lights.Count) { num = this.lights[i].range; color = this.lights[i].color; vector = this.lightTransforms[i].position; num2 = this.lights[i].intensity / 2f; } if (i == 0) { Shader.SetGlobalVector("_InteriorLightPosition0", vector); Shader.SetGlobalVector("_InteriorLightColor0", color * num2); Shader.SetGlobalFloat("_InteriorLightRange0", num); } if (i == 1) { Shader.SetGlobalVector("_InteriorLightPosition1", vector); Shader.SetGlobalVector("_InteriorLightColor1", color * num2); Shader.SetGlobalFloat("_InteriorLightRange1", num); } if (i == 2) { Shader.SetGlobalVector("_InteriorLightPosition2", vector); Shader.SetGlobalVector("_InteriorLightColor2", color * num2); Shader.SetGlobalFloat("_InteriorLightRange2", num); } if (i == 3) { Shader.SetGlobalVector("_InteriorLightPosition3", vector); Shader.SetGlobalVector("_InteriorLightColor3", color * num2); Shader.SetGlobalFloat("_InteriorLightRange3", num); } } } // Token: 0x06000B73 RID: 2931 RVA: 0x000DF108 File Offset: 0x000DD308 public void InactiveLights() { Vector3 zero = Vector3.zero; Color black = Color.black; float num = 0f; Shader.SetGlobalVector("_InteriorLightPosition0", zero); Shader.SetGlobalVector("_InteriorLightColor0", black); Shader.SetGlobalFloat("_InteriorLightRange0", num); Shader.SetGlobalVector("_InteriorLightPosition1", zero); Shader.SetGlobalVector("_InteriorLightColor1", black); Shader.SetGlobalFloat("_InteriorLightRange1", num); Shader.SetGlobalVector("_InteriorLightPosition2", zero); Shader.SetGlobalVector("_InteriorLightColor2", black); Shader.SetGlobalFloat("_InteriorLightRange2", num); Shader.SetGlobalVector("_InteriorLightPosition3", zero); Shader.SetGlobalVector("_InteriorLightColor3", black); Shader.SetGlobalFloat("_InteriorLightRange3", num); } // Token: 0x06000B74 RID: 2932 RVA: 0x000DF1D4 File Offset: 0x000DD3D4 public void GetNearest(Vector3 center, out Vector3 position, out int index, out int index1, out int index2, out int index3, out Light nearestLight) { position = Vector3.zero; index = -1; index1 = -1; index2 = -1; index3 = -1; nearestLight = null; if (this.lightCount == 0) { return; } if (this.lightCount == 1) { position = this.lightTransforms[0].position; nearestLight = this.lights[0]; index = 0; return; } if (this.lightCount > 4) { this.lightCount = 4; } float num = float.PositiveInfinity; for (int i = 0; i < this.lightCount; i++) { float sqrMagnitude = (this.lightTransforms[i].position - center).sqrMagnitude; if (sqrMagnitude < num) { num = sqrMagnitude; position = this.lightTransforms[i].position; index = i; nearestLight = this.lights[i]; } } num = float.PositiveInfinity; for (int j = 0; j < this.lightCount; j++) { if (index != j) { float sqrMagnitude2 = (this.lightTransforms[j].position - center).sqrMagnitude; if (sqrMagnitude2 < num) { num = sqrMagnitude2; index1 = j; } } } num = float.PositiveInfinity; for (int k = 0; k < this.lightCount; k++) { if (index != k && index1 != k) { float sqrMagnitude3 = (this.lightTransforms[k].position - center).sqrMagnitude; if (sqrMagnitude3 < num) { num = sqrMagnitude3; index2 = k; } } } num = float.PositiveInfinity; for (int l = 0; l < this.lightCount; l++) { if (index != l && index1 != l && index2 != l) { float sqrMagnitude4 = (this.lightTransforms[l].position - center).sqrMagnitude; if (sqrMagnitude4 < num) { num = sqrMagnitude4; index3 = l; } } } } // Token: 0x040010F6 RID: 4342 public List lightTransforms = new List(); // Token: 0x040010F7 RID: 4343 public List lights = new List(); // Token: 0x040010F8 RID: 4344 public int lightCount = -1; // Token: 0x040010F9 RID: 4345 public List companionPoints = new List(); }