Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TileDrawSorter.cs
Go to the documentation of this file.
1
using
System
;
2
using
System.Collections.Generic
;
3
4
namespace
Terraria.DataStructures
;
5
6
public
class
TileDrawSorter
7
{
8
public
struct
TileTexPoint
9
{
10
public
int
X
;
11
12
public
int
Y
;
13
14
public
int
TileType
;
15
16
public
override
string
ToString
()
17
{
18
return
$
"X:{X}, Y:{Y}, Type:{TileType}"
;
19
}
20
}
21
22
public
class
CustomComparer
:
Comparer
<TileTexPoint>
23
{
24
public
override
int
Compare
(
TileTexPoint
x,
TileTexPoint
y)
25
{
26
return
x.
TileType
.CompareTo(y.
TileType
);
27
}
28
}
29
30
public
TileTexPoint
[]
tilesToDraw
;
31
32
private
int
_holderLength
;
33
34
private
int
_currentCacheIndex
;
35
36
private
CustomComparer
_tileComparer
=
new
CustomComparer
();
37
38
public
TileDrawSorter
()
39
{
40
_currentCacheIndex
= 0;
41
_holderLength
= 9000;
42
tilesToDraw
=
new
TileTexPoint
[
_holderLength
];
43
}
44
45
public
void
reset
()
46
{
47
_currentCacheIndex
= 0;
48
}
49
50
public
void
Cache
(
int
x,
int
y,
int
type
)
51
{
52
int
num =
_currentCacheIndex
++;
53
tilesToDraw
[num].
X
= x;
54
tilesToDraw
[num].
Y
= y;
55
tilesToDraw
[num].
TileType
=
type
;
56
if
(
_currentCacheIndex
==
_holderLength
)
57
{
58
IncreaseArraySize
();
59
}
60
}
61
62
private
void
IncreaseArraySize
()
63
{
64
_holderLength
*= 2;
65
Array
.Resize(
ref
tilesToDraw
,
_holderLength
);
66
}
67
68
public
void
Sort
()
69
{
70
Array
.
Sort
(
tilesToDraw
, 0,
_currentCacheIndex
,
_tileComparer
);
71
}
72
73
public
int
GetAmountToDraw
()
74
{
75
return
_currentCacheIndex
;
76
}
77
}
System.Array.Sort
static void Sort(Array array)
Definition
Array.cs:2329
System.Array
Definition
Array.cs:16
System.Collections.Generic.Comparer
Definition
Comparer.cs:9
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
Terraria.DataStructures.TileDrawSorter.CustomComparer.Compare
override int Compare(TileTexPoint x, TileTexPoint y)
Definition
TileDrawSorter.cs:24
Terraria.DataStructures.TileDrawSorter.CustomComparer
Definition
TileDrawSorter.cs:23
Terraria.DataStructures.TileDrawSorter.reset
void reset()
Definition
TileDrawSorter.cs:45
Terraria.DataStructures.TileDrawSorter.IncreaseArraySize
void IncreaseArraySize()
Definition
TileDrawSorter.cs:62
Terraria.DataStructures.TileDrawSorter._tileComparer
CustomComparer _tileComparer
Definition
TileDrawSorter.cs:36
Terraria.DataStructures.TileDrawSorter._currentCacheIndex
int _currentCacheIndex
Definition
TileDrawSorter.cs:34
Terraria.DataStructures.TileDrawSorter.GetAmountToDraw
int GetAmountToDraw()
Definition
TileDrawSorter.cs:73
Terraria.DataStructures.TileDrawSorter.tilesToDraw
TileTexPoint[] tilesToDraw
Definition
TileDrawSorter.cs:30
Terraria.DataStructures.TileDrawSorter.Cache
void Cache(int x, int y, int type)
Definition
TileDrawSorter.cs:50
Terraria.DataStructures.TileDrawSorter._holderLength
int _holderLength
Definition
TileDrawSorter.cs:32
Terraria.DataStructures.TileDrawSorter.Sort
void Sort()
Definition
TileDrawSorter.cs:68
Terraria.DataStructures.TileDrawSorter.TileDrawSorter
TileDrawSorter()
Definition
TileDrawSorter.cs:38
Terraria.DataStructures.TileDrawSorter
Definition
TileDrawSorter.cs:7
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.ExceptionArgument.type
@ type
System
Definition
BlockingCollection.cs:8
Terraria.DataStructures
Definition
AEntitySource_OnHit.cs:1
Terraria.DataStructures.TileDrawSorter.TileTexPoint.X
int X
Definition
TileDrawSorter.cs:10
Terraria.DataStructures.TileDrawSorter.TileTexPoint.ToString
override string ToString()
Definition
TileDrawSorter.cs:16
Terraria.DataStructures.TileDrawSorter.TileTexPoint.TileType
int TileType
Definition
TileDrawSorter.cs:14
Terraria.DataStructures.TileDrawSorter.TileTexPoint.Y
int Y
Definition
TileDrawSorter.cs:12
Terraria.DataStructures.TileDrawSorter.TileTexPoint
Definition
TileDrawSorter.cs:9
source
Terraria.DataStructures
TileDrawSorter.cs
Generated by
1.10.0