Add source files
This commit is contained in:
@@ -0,0 +1,268 @@
|
||||
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<Transform> lightTransforms = new List<Transform>();
|
||||
|
||||
// Token: 0x040010F7 RID: 4343
|
||||
public List<Light> lights = new List<Light>();
|
||||
|
||||
// Token: 0x040010F8 RID: 4344
|
||||
public int lightCount = -1;
|
||||
|
||||
// Token: 0x040010F9 RID: 4345
|
||||
public List<Transform> companionPoints = new List<Transform>();
|
||||
}
|
||||
Reference in New Issue
Block a user