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

◆ SetupGamepadPoints2()

void Terraria.GameContent.UI.States.UIEmotesMenu.SetupGamepadPoints2 ( SpriteBatch spriteBatch)
inlineprivate

Definition at line 330 of file UIEmotesMenu.cs.

331 {
332 int num = 7;
333 UILinkPointNavigator.Shortcuts.BackButtonCommand = 1;
334 int num2;
335 int iD = (num2 = 3001);
340 uILinkPoint.Unlink();
341 uILinkPoint.Up = num2 + 1;
343 num2++;
344 int num3 = 0;
346 for (int i = 0; i < num; i++)
347 {
349 if (emoteGroup.Count > 0)
350 {
351 list.Add(emoteGroup);
352 }
353 num3 += (int)Math.Ceiling((float)emoteGroup.Count / 14f);
354 }
355 SnapPoint[,] array = new SnapPoint[14, num3];
356 int num4 = 0;
357 for (int j = 0; j < list.Count; j++)
358 {
360 for (int k = 0; k < list2.Count; k++)
361 {
362 int num5 = num4 + k / 14;
363 int num6 = k % 14;
364 array[num6, num5] = list2[k];
365 }
366 num4 += (int)Math.Ceiling((float)list2.Count / 14f);
367 }
368 int[,] array2 = new int[14, num3];
369 int up = 0;
370 for (int l = 0; l < array.GetLength(1); l++)
371 {
372 for (int m = 0; m < array.GetLength(0); m++)
373 {
375 if (snapPoint != null)
376 {
379 array2[m, l] = num2;
380 if (m == 0)
381 {
382 up = num2;
383 }
384 num2++;
385 }
386 }
387 }
388 uILinkPoint2.Up = up;
389 for (int n = 0; n < array.GetLength(1); n++)
390 {
391 for (int num7 = 0; num7 < array.GetLength(0); num7++)
392 {
393 int num8 = array2[num7, n];
394 if (num8 == 0)
395 {
396 continue;
397 }
399 if (TryGetPointOnGrid(array2, num7, n, -1, 0))
400 {
401 uILinkPoint3.Left = array2[num7 - 1, n];
402 }
403 else
404 {
405 uILinkPoint3.Left = uILinkPoint3.ID;
406 for (int num9 = num7; num9 < array.GetLength(0); num9++)
407 {
408 if (TryGetPointOnGrid(array2, num9, n, 0, 0))
409 {
410 uILinkPoint3.Left = array2[num9, n];
411 }
412 }
413 }
414 if (TryGetPointOnGrid(array2, num7, n, 1, 0))
415 {
416 uILinkPoint3.Right = array2[num7 + 1, n];
417 }
418 else
419 {
420 uILinkPoint3.Right = uILinkPoint3.ID;
421 for (int num10 = num7; num10 >= 0; num10--)
422 {
423 if (TryGetPointOnGrid(array2, num10, n, 0, 0))
424 {
425 uILinkPoint3.Right = array2[num10, n];
426 }
427 }
428 }
429 if (TryGetPointOnGrid(array2, num7, n, 0, -1))
430 {
431 uILinkPoint3.Up = array2[num7, n - 1];
432 }
433 else
434 {
435 uILinkPoint3.Up = uILinkPoint3.ID;
436 for (int num11 = n - 1; num11 >= 0; num11--)
437 {
438 if (TryGetPointOnGrid(array2, num7, num11, 0, 0))
439 {
440 uILinkPoint3.Up = array2[num7, num11];
441 break;
442 }
443 }
444 }
445 if (TryGetPointOnGrid(array2, num7, n, 0, 1))
446 {
447 uILinkPoint3.Down = array2[num7, n + 1];
448 continue;
449 }
450 uILinkPoint3.Down = uILinkPoint3.ID;
451 for (int num12 = n + 1; num12 < array.GetLength(1); num12++)
452 {
453 if (TryGetPointOnGrid(array2, num7, num12, 0, 0))
454 {
455 uILinkPoint3.Down = array2[num7, num12];
456 break;
457 }
458 }
459 if (uILinkPoint3.Down == uILinkPoint3.ID)
460 {
461 uILinkPoint3.Down = uILinkPoint2.ID;
462 }
463 }
464 }
465 }
static double Ceiling(double a)
bool TryGetPointOnGrid(int[,] grid, int x, int y, int offsetX, int offsetY)
List< SnapPoint > GetEmoteGroup(List< SnapPoint > ptsOnPage, int groupIndex)
void RemoveSnapPointsOutOfScreen(SpriteBatch spriteBatch, List< SnapPoint > pts)
static Dictionary< int, UILinkPoint > Points
static void SetPosition(int ID, Vector2 Position)
CalculatedStyle GetInnerDimensions()
Definition UIElement.cs:377
virtual List< SnapPoint > GetSnapPoints()
Definition UIElement.cs:267

References Terraria.GameContent.UI.States.UIEmotesMenu._backPanel, System.array, System.Math.Ceiling(), Microsoft.Xna.Framework.Rectangle.Center, System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.GameContent.UI.States.UIEmotesMenu.GetEmoteGroup(), Terraria.UI.UIElement.GetInnerDimensions(), Terraria.UI.UIElement.GetSnapPoints(), System.list, Terraria.UI.Gamepad.UILinkPointNavigator.Points, Terraria.GameContent.UI.States.UIEmotesMenu.RemoveSnapPointsOutOfScreen(), Terraria.UI.Gamepad.UILinkPointNavigator.SetPosition(), Terraria.UI.CalculatedStyle.ToRectangle(), and Terraria.GameContent.UI.States.UIEmotesMenu.TryGetPointOnGrid().

Referenced by Terraria.GameContent.UI.States.UIEmotesMenu.Draw().