325 {
327 {
328 return;
329 }
330 Vector2 vector = Main.MouseScreen;
333 {
335 }
336 Vector2 vector3 = vector - vector2;
339 float num = vector3.ToRotation();
340 float num2 = vector3.
Length();
341 bool flag = false;
342 bool drawToolAllowActuators =
Settings.DrawToolAllowActuators;
343 float num3 = 4 + drawToolAllowActuators.ToInt();
344 float num4 = (drawToolAllowActuators ? 11f : (-0.5f));
345 for (
int i = 0;
i < 6;
i++)
346 {
347 if (!drawToolAllowActuators && i == 5)
348 {
349 continue;
350 }
352 if (i == 5)
353 {
355 }
356 Vector2 vector4 = vector2 + Vector2.UnitX * (45f * ((float)i - 1.5f));
357 switch (i)
358 {
359 case 0:
360 case 1:
361 case 2:
362 case 3:
363 {
365 if (i == 0)
366 {
367 num5 = 3f;
368 }
369 if (i == 3)
370 {
371 num5 = 0f;
372 }
373 vector4 = vector2 +
Vector2.
UnitX.RotatedBy(num5 * ((
float)Math.PI * 2f) / num3 - (
float)Math.PI / num4) * 45f;
374 break;
375 }
376 case 5:
377 vector4 = vector2 +
Vector2.
UnitX.RotatedBy((
float)(
i - 1) * ((
float)Math.PI * 2f) / num3 - (
float)Math.PI / num4) * 45f;
378 break;
379 case 4:
380 flag2 = false;
381 vector4 = vector2;
382 break;
383 }
384 bool flag3 = false;
385 if (i == 4)
386 {
387 flag3 = num2 < 20f;
388 }
389 switch (i)
390 {
391 case 4:
392 flag3 = num2 < 20f;
393 break;
394 case 0:
395 case 1:
396 case 2:
397 case 3:
398 case 5:
399 {
400 float value = (vector4 - vector2).ToRotation().AngleTowards(num, (
float)Math.PI * 2f / (num3 * 2f)) - num;
402 {
403 flag3 = true;
404 }
405 break;
406 }
407 }
409 {
411 }
412 if (flag)
413 {
414 flag3 = false;
415 }
416 if (flag3)
417 {
418 flag = true;
419 }
422 switch (i)
423 {
424 case 0:
425 case 1:
426 case 2:
427 case 3:
428 texture2D = TextureAssets.WireUi[2 +
i].Value;
429 break;
430 case 4:
431 texture2D = TextureAssets.WireUi[
Settings.ToolMode.HasFlag(
Settings.MultiToolMode.Cutter) ? 7 : 6].Value;
432 break;
433 case 5:
434 texture2D = TextureAssets.WireUi[10].Value;
435 break;
436 }
439 if (!flag2 && i != 4)
440 {
441 if (flag3)
442 {
443 color2 =
new Color(100, 100, 100);
444 color2 =
new Color(120, 120, 120);
445 color =
new Color(200, 200, 200);
446 }
447 else
448 {
449 color2 =
new Color(150, 150, 150);
450 color2 =
new Color(80, 80, 80);
451 color =
new Color(100, 100, 100);
452 }
453 }
454 Utils.CenteredRectangle(vector4,
new Vector2(40f));
455 if (flag3)
456 {
457 if (Main.mouseLeft && Main.mouseLeftRelease)
458 {
459 switch (i)
460 {
461 case 0:
462 Settings.ToolMode ^=
Settings.MultiToolMode.Red;
463 break;
464 case 1:
465 Settings.ToolMode ^=
Settings.MultiToolMode.Green;
466 break;
467 case 2:
468 Settings.ToolMode ^=
Settings.MultiToolMode.Blue;
469 break;
470 case 3:
471 Settings.ToolMode ^=
Settings.MultiToolMode.Yellow;
472 break;
473 case 4:
474 Settings.ToolMode ^=
Settings.MultiToolMode.Cutter;
475 break;
476 case 5:
477 Settings.ToolMode ^=
Settings.MultiToolMode.Actuator;
478 break;
479 }
480 }
481 Main.player[Main.myPlayer].mouseInterface = true;
483 }
484 spriteBatch.
Draw(value2, vector4,
null, color, 0f, value2.Size() / 2f, 1f,
SpriteEffects.None, 0f);
485 spriteBatch.
Draw(texture2D, vector4,
null, color2, 0f, texture2D.Size() / 2f, 1f,
SpriteEffects.None, 0f);
486 }
487 if (Main.mouseLeft && Main.mouseLeftRelease && !flag)
488 {
490 }
491 }
void Draw(Texture2D texture, Vector2 position, Color color)
static double Abs(double value)
static float Dot(Vector2 value1, Vector2 value2)
static float Distance(Vector2 value1, Vector2 value2)