Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ doColors_Mode0_Swipe()

void Terraria.Graphics.Light.LegacyLighting.doColors_Mode0_Swipe ( int outerLoopStart,
int outerLoopEnd,
object context )
inlineprivate

Definition at line 1080 of file LegacyLighting.cs.

1081 {
1082 LightingSwipeData lightingSwipeData = context as LightingSwipeData;
1083 FastRandom fastRandom = default(FastRandom);
1084 try
1085 {
1086 bool flag = true;
1087 while (true)
1088 {
1089 int num;
1090 int val;
1091 int val2;
1092 if (flag)
1093 {
1094 num = 1;
1095 val = lightingSwipeData.InnerLoop1Start;
1096 val2 = lightingSwipeData.InnerLoop1End;
1097 }
1098 else
1099 {
1100 num = -1;
1101 val = lightingSwipeData.InnerLoop2Start;
1102 val2 = lightingSwipeData.InnerLoop2End;
1103 }
1104 for (int i = outerLoopStart; i < outerLoopEnd; i++)
1105 {
1106 LightingState[] array = lightingSwipeData.JaggedArray[i];
1107 float num2 = 0f;
1108 float num3 = 0f;
1109 float num4 = 0f;
1110 int num5 = Math.Min(array.Length - 1, Math.Max(0, val));
1111 int num6 = Math.Min(array.Length - 1, Math.Max(0, val2));
1112 for (int j = num5; j != num6; j += num)
1113 {
1114 LightingState lightingState = array[j];
1115 LightingState lightingState2 = array[j + num];
1116 bool flag2;
1117 bool flag3 = (flag2 = false);
1118 if (lightingState.R2 > num2)
1119 {
1120 num2 = lightingState.R2;
1121 }
1122 else if ((double)num2 <= 0.0185)
1123 {
1124 flag3 = true;
1125 }
1126 else if (lightingState.R2 < num2)
1127 {
1128 lightingState.R2 = num2;
1129 }
1130 if (lightingState.WetLight)
1131 {
1132 fastRandom = _swipeRandom.WithModifier((ulong)(i * 1000 + j));
1133 }
1134 if (!flag3 && lightingState2.R2 <= num2)
1135 {
1136 num2 = (lightingState.StopLight ? (num2 * _negLight2) : ((!lightingState.WetLight) ? (num2 * _negLight) : ((!lightingState.HoneyLight) ? (num2 * (_wetLightR * (float)fastRandom.Next(98, 100) * 0.01f)) : (num2 * (_honeyLightR * (float)fastRandom.Next(98, 100) * 0.01f)))));
1137 }
1138 if (lightingState.G2 > num3)
1139 {
1140 num3 = lightingState.G2;
1141 }
1142 else if ((double)num3 <= 0.0185)
1143 {
1144 flag2 = true;
1145 }
1146 else
1147 {
1148 lightingState.G2 = num3;
1149 }
1150 if (!flag2 && lightingState2.G2 <= num3)
1151 {
1152 num3 = (lightingState.StopLight ? (num3 * _negLight2) : ((!lightingState.WetLight) ? (num3 * _negLight) : ((!lightingState.HoneyLight) ? (num3 * (_wetLightG * (float)fastRandom.Next(97, 100) * 0.01f)) : (num3 * (_honeyLightG * (float)fastRandom.Next(97, 100) * 0.01f)))));
1153 }
1154 if (lightingState.B2 > num4)
1155 {
1156 num4 = lightingState.B2;
1157 }
1158 else
1159 {
1160 if ((double)num4 <= 0.0185)
1161 {
1162 continue;
1163 }
1164 lightingState.B2 = num4;
1165 }
1166 if (!(lightingState2.B2 >= num4))
1167 {
1168 num4 = ((!lightingState.StopLight) ? ((!lightingState.WetLight) ? (num4 * _negLight) : ((!lightingState.HoneyLight) ? (num4 * (_wetLightB * (float)fastRandom.Next(97, 100) * 0.01f)) : (num4 * (_honeyLightB * (float)fastRandom.Next(97, 100) * 0.01f)))) : (num4 * _negLight2));
1169 }
1170 }
1171 }
1172 if (flag)
1173 {
1174 flag = false;
1175 continue;
1176 }
1177 break;
1178 }
1179 }
1180 catch
1181 {
1182 }
1183 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
static byte Max(byte val1, byte val2)
Definition Math.cs:738

References Terraria.Graphics.Light.LegacyLighting._honeyLightB, Terraria.Graphics.Light.LegacyLighting._honeyLightG, Terraria.Graphics.Light.LegacyLighting._honeyLightR, Terraria.Graphics.Light.LegacyLighting._negLight, Terraria.Graphics.Light.LegacyLighting._negLight2, Terraria.Graphics.Light.LegacyLighting._swipeRandom, Terraria.Graphics.Light.LegacyLighting._wetLightB, Terraria.Graphics.Light.LegacyLighting._wetLightG, Terraria.Graphics.Light.LegacyLighting._wetLightR, System.array, System.Math.Max(), and System.Math.Min().

Referenced by Terraria.Graphics.Light.LegacyLighting.DoColors().