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

◆ CopyTo() [1/2]

CopyPosition System.Collections.Generic.LargeArrayBuilder< T >.CopyTo ( CopyPosition position,
T[] array,
int arrayIndex,
int count )
inline

Definition at line 104 of file LargeArrayBuilder.cs.

105 {
106 int num = position.Row;
107 int column = position.Column;
108 T[] buffer = GetBuffer(num);
109 int num2 = CopyToCore(buffer, column);
110 if (count == 0)
111 {
112 return new CopyPosition(num, column + num2).Normalize(buffer.Length);
113 }
114 do
115 {
116 buffer = GetBuffer(++num);
117 num2 = CopyToCore(buffer, 0);
118 }
119 while (count > 0);
120 return new CopyPosition(num, num2).Normalize(buffer.Length);
121 int CopyToCore(T[] sourceBuffer, int sourceIndex)
122 {
123 int num3 = Math.Min(sourceBuffer.Length - sourceIndex, count);
124 Array.Copy(sourceBuffer, sourceIndex, array, arrayIndex, num3);
125 arrayIndex += num3;
126 count -= num3;
127 return num3;
128 }
129 }

References System.array, System.arrayIndex, System.buffer, System.Collections.Generic.CopyPosition.Column, System.Array.Copy(), System.count, System.Collections.Generic.LargeArrayBuilder< T >.GetBuffer(), System.Math.Min(), System.Collections.Generic.CopyPosition.Normalize(), System.Collections.Generic.CopyPosition.Row, and System.sourceIndex.