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

◆ DrawCursors()

void Terraria.Graphics.Capture.CaptureInterface.ModeEdgeSelection.DrawCursors ( SpriteBatch sb)
inlineprivate

Definition at line 161 of file CaptureInterface.cs.

162 {
163 float num = 1f / Main.cursorScale;
164 float num2 = 0.8f / num;
165 Vector2 vector = Main.screenPosition + new Vector2(30f);
166 Vector2 max = vector + new Vector2(Main.screenWidth, Main.screenHeight) - new Vector2(60f);
167 if (Main.mapFullscreen)
168 {
169 vector -= Main.screenPosition;
170 max -= Main.screenPosition;
171 }
172 Vector3 vector2 = Main.rgbToHsl(Main.cursorColor);
173 Color color = Main.hslToRgb((vector2.X + 0.33f) % 1f, vector2.Y, vector2.Z);
174 Color color2 = Main.hslToRgb((vector2.X - 0.33f) % 1f, vector2.Y, vector2.Z);
175 color = (color2 = Color.White);
176 bool flag = Main.player[Main.myPlayer].gravDir == -1f;
177 if (!EdgeAPinned)
178 {
179 Utils.DrawCursorSingle(sb, color, 3.926991f, Main.cursorScale * num * num2, new Vector2((float)Main.mouseX - 5f + 12f, (float)Main.mouseY + 2.5f + 12f), 4);
180 }
181 else
182 {
183 int specialMode = 0;
184 float num3 = 0f;
186 if (!Main.mapFullscreen)
187 {
188 Vector2 vector3 = EdgeA.ToVector2() * 16f;
189 if (!EdgeBPinned)
190 {
191 specialMode = 1;
192 vector3 += Vector2.One * 8f;
193 zero = vector3;
194 num3 = (-vector3 + Main.ReverseGravitySupport(new Vector2(Main.mouseX, Main.mouseY)) + Main.screenPosition).ToRotation();
195 if (flag)
196 {
197 num3 = 0f - num3;
198 }
200 if (zero != vector3)
201 {
202 num3 = (vector3 - zero).ToRotation();
203 }
204 }
205 else
206 {
207 Vector2 vector4 = new Vector2((EdgeA.X > EdgeB.X).ToInt() * 16, (EdgeA.Y > EdgeB.Y).ToInt() * 16);
208 vector3 += vector4;
210 num3 = (EdgeB.ToVector2() * 16f + new Vector2(16f) - vector4 - zero).ToRotation();
211 if (zero != vector3)
212 {
213 num3 = (vector3 - zero).ToRotation();
214 specialMode = 1;
215 }
216 if (flag)
217 {
218 num3 *= -1f;
219 }
220 }
221 Utils.DrawCursorSingle(sb, color, num3 - (float)Math.PI / 2f, Main.cursorScale * num, Main.ReverseGravitySupport(zero - Main.screenPosition), 4, specialMode);
222 }
223 else
224 {
225 Point result = EdgeA;
226 if (EdgeBPinned)
227 {
228 int num4 = (EdgeA.X > EdgeB.X).ToInt();
229 int num5 = (EdgeA.Y > EdgeB.Y).ToInt();
230 result.X += num4;
231 result.Y += num5;
232 GetMapCoords(result.X, result.Y, 1, out result);
234 result2.X += 1 - num4;
235 result2.Y += 1 - num5;
237 zero = result.ToVector2();
239 num3 = (result2.ToVector2() - zero).ToRotation();
240 }
241 else
242 {
243 GetMapCoords(result.X, result.Y, 1, out result);
244 }
245 Utils.DrawCursorSingle(sb, color, num3 - (float)Math.PI / 2f, Main.cursorScale * num, result.ToVector2(), 4);
246 }
247 }
248 if (!EdgeBPinned)
249 {
250 Utils.DrawCursorSingle(sb, color2, 0.7853981f, Main.cursorScale * num * num2, new Vector2((float)Main.mouseX + 2.5f + 12f, (float)Main.mouseY - 5f + 12f), 5);
251 return;
252 }
253 int specialMode2 = 0;
254 float num6 = 0f;
256 if (!Main.mapFullscreen)
257 {
258 Vector2 vector5 = EdgeB.ToVector2() * 16f;
259 if (!EdgeAPinned)
260 {
261 specialMode2 = 1;
262 vector5 += Vector2.One * 8f;
263 zero2 = vector5;
264 num6 = (-vector5 + Main.ReverseGravitySupport(new Vector2(Main.mouseX, Main.mouseY)) + Main.screenPosition).ToRotation();
265 if (flag)
266 {
267 num6 = 0f - num6;
268 }
270 if (zero2 != vector5)
271 {
272 num6 = (vector5 - zero2).ToRotation();
273 }
274 }
275 else
276 {
277 Vector2 vector6 = new Vector2((EdgeB.X >= EdgeA.X).ToInt() * 16, (EdgeB.Y >= EdgeA.Y).ToInt() * 16);
278 vector5 += vector6;
280 num6 = (EdgeA.ToVector2() * 16f + new Vector2(16f) - vector6 - zero2).ToRotation();
281 if (zero2 != vector5)
282 {
283 num6 = (vector5 - zero2).ToRotation();
284 specialMode2 = 1;
285 }
286 if (flag)
287 {
288 num6 *= -1f;
289 }
290 }
291 Utils.DrawCursorSingle(sb, color2, num6 - (float)Math.PI / 2f, Main.cursorScale * num, Main.ReverseGravitySupport(zero2 - Main.screenPosition), 5, specialMode2);
292 }
293 else
294 {
296 if (EdgeAPinned)
297 {
298 int num7 = (EdgeB.X >= EdgeA.X).ToInt();
299 int num8 = (EdgeB.Y >= EdgeA.Y).ToInt();
300 result3.X += num7;
301 result3.Y += num8;
304 result4.X += 1 - num7;
305 result4.Y += 1 - num8;
307 zero2 = result3.ToVector2();
309 num6 = (result4.ToVector2() - zero2).ToRotation();
310 }
311 else
312 {
314 }
315 Utils.DrawCursorSingle(sb, color2, num6 - (float)Math.PI / 2f, Main.cursorScale * num, result3.ToVector2(), 5);
316 }
317 }
const double PI
Definition Math.cs:16
static bool GetMapCoords(int PinX, int PinY, int Goal, out Point result)
static Vector2 Clamp(Vector2 value1, Vector2 min, Vector2 max)
Definition Vector2.cs:201

References Microsoft.Xna.Framework.Vector2.Clamp(), Terraria.Main.cursorColor, Terraria.Main.cursorScale, Terraria.Utils.DrawCursorSingle(), Terraria.Graphics.Capture.CaptureInterface.EdgeA, Terraria.Graphics.Capture.CaptureInterface.EdgeAPinned, Terraria.Graphics.Capture.CaptureInterface.EdgeB, Terraria.Graphics.Capture.CaptureInterface.EdgeBPinned, Terraria.Graphics.Capture.CaptureInterface.GetMapCoords(), Terraria.Main.hslToRgb(), Terraria.Main.mapFullscreen, Terraria.Main.mouseX, Terraria.Main.mouseY, Terraria.Main.myPlayer, System.Math.PI, Terraria.Main.player, Terraria.Main.ReverseGravitySupport(), Terraria.Main.rgbToHsl(), Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Microsoft.Xna.Framework.Point.X, Microsoft.Xna.Framework.Point.Y, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Graphics.Capture.CaptureInterface.ModeEdgeSelection.Draw().