16 {
17 if (entity == null)
18 {
19 base.Shader.Parameters[
"uLightSource"].SetValue(
Vector3.
Zero);
20 }
21 else
22 {
23 float num = 0f;
24 if (drawData.HasValue)
25 {
26 num = drawData.Value.rotation;
27 }
28 Vector2 position = entity.position;
29 float num2 = entity.width;
30 float num3 = entity.height;
32 num2 *= 0.8f;
33 num3 *= 0.8f;
34 Vector3 subLight = Lighting.GetSubLight(vector +
new Vector2(num2 * 0.5f, 0f));
35 Vector3 subLight2 = Lighting.GetSubLight(vector +
new Vector2(0f, num3 * 0.5f));
36 Vector3 subLight3 = Lighting.GetSubLight(vector +
new Vector2(num2, num3 * 0.5f));
37 Vector3 subLight4 = Lighting.GetSubLight(vector +
new Vector2(num2 * 0.5f, num3));
38 float num4 = subLight.X + subLight.Y + subLight.
Z;
39 float num5 = subLight2.X + subLight2.Y + subLight2.
Z;
40 float num6 = subLight3.X + subLight3.Y + subLight3.
Z;
41 float num7 = subLight4.X + subLight4.Y + subLight4.
Z;
43 float num8 = spinningpoint.
Length();
44 if (num8 > 1f)
45 {
46 num8 = 1f;
47 spinningpoint /= num8;
48 }
49 if (entity.direction == -1)
50 {
51 spinningpoint.X *= -1f;
52 }
53 spinningpoint = spinningpoint.RotatedBy(0f - num);
54 Vector3 value =
new Vector3(spinningpoint, 1f - (spinningpoint.
X * spinningpoint.
X + spinningpoint.
Y * spinningpoint.
Y));
55 value.X *= 2f;
56 value.Y -= 0.15f;
57 value.Y *= 2f;
59 value.Z *= 0.6f;
60 base.Shader.Parameters["uLightSource"].SetValue(value);
61 }
62 base.Apply(entity, drawData);
63 }