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

◆ ResizeArrays()

static void Terraria.ModLoader.ExtraJumpLoader.ResizeArrays ( )
inlinestaticpackage

Definition at line 62 of file ExtraJumpLoader.cs.

63 {
64 if (!ModdedExtraJumps.Any())
65 {
66 orderedJumps = ExtraJumps.ToArray();
67 return;
68 }
70 for (int k = 0; k < sortingSlots.Length; k++)
71 {
73 }
74 foreach (ExtraJump jump2 in ModdedExtraJumps)
75 {
76 ExtraJump.Position position = jump2.GetDefaultPosition();
77 if (!(position is ExtraJump.After { Target: var target } after))
78 {
79 if (!(position is ExtraJump.Before { Target: var target2 } before))
80 {
81 throw new ArgumentException($"ExtraJump {jump2} has unknown Position {position}");
82 }
83 if (target2 != null && !(target2 is VanillaExtraJump))
84 {
85 throw new ArgumentException($"ExtraJump {jump2} did not refer to a vanilla ExtraJump in GetDefaultPosition()");
86 }
87 int? num = before.Target?.Type;
88 int num2;
89 if (num.HasValue)
90 {
91 int beforeType = num.GetValueOrDefault();
93 }
94 else
95 {
96 num2 = sortingSlots.Length - 1;
97 }
98 int beforeParent = num2;
100 }
101 else
102 {
103 if (target != null && !(target is VanillaExtraJump))
104 {
105 throw new ArgumentException($"ExtraJump {jump2} did not refer to a vanilla ExtraJump in GetDefaultPosition()");
106 }
107 int? num = after.Target?.Type;
108 int num3;
109 if (num.HasValue)
110 {
111 int afterType = num.GetValueOrDefault();
112 num3 = afterType + 1;
113 }
114 else
115 {
116 num3 = 0;
117 }
118 int afterParent = num3;
120 }
121 }
123 for (int i = 0; i < DefaultExtraJumpCount + 1; i++)
124 {
125 List<ExtraJump> elements = sortingSlots[i];
126 foreach (ExtraJump jump in new TopoSort<ExtraJump>(elements, (ExtraJump j) => (from a in j.GetModdedConstraints()?.OfType<ExtraJump.After>()
127 select a.Target).Where(elements.Contains) ?? Array.Empty<ExtraJump>(), (ExtraJump j) => (from b in j.GetModdedConstraints()?.OfType<ExtraJump.Before>()
128 select b.Target).Where(elements.Contains) ?? Array.Empty<ExtraJump>()).Sort())
129 {
130 sorted.Add(jump);
131 }
132 if (i < DefaultExtraJumpCount)
133 {
134 sorted.Add(ExtraJumps[i]);
135 }
136 }
137 orderedJumps = sorted.ToArray();
138 }
static readonly int DefaultExtraJumpCount
static readonly List< ExtraJump > ExtraJumps
static IEnumerable< ExtraJump > ModdedExtraJumps

References Terraria.ModLoader.ExtraJumpLoader.DefaultExtraJumpCount, Terraria.ModLoader.ExtraJumpLoader.ExtraJumps, Terraria.ModLoader.ExtraJumpLoader.ModdedExtraJumps, and Terraria.ModLoader.ExtraJumpLoader.orderedJumps.

Referenced by Terraria.ModLoader.ModContent.ResizeArrays().

+ Here is the caller graph for this function: