Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AutoIncrementInt64.cs
Go to the documentation of this file.
4
5namespace System.Data;
6
8{
9 private long _current;
10
11 private long _seed;
12
13 private long _step = 1L;
14
15 internal override object Current
16 {
17 get
18 {
19 return _current;
20 }
21 set
22 {
23 _current = (long)value;
24 }
25 }
26
27 internal override Type DataType => typeof(long);
28
29 internal override long Seed
30 {
31 get
32 {
33 return _seed;
34 }
35 set
36 {
38 {
40 }
41 _seed = value;
42 }
43 }
44
45 internal override long Step
46 {
47 get
48 {
49 return _step;
50 }
51 set
52 {
53 if (value == 0L)
54 {
56 }
57 if (_step != value)
58 {
59 if (_current != Seed)
60 {
62 }
63 _step = value;
64 }
65 }
66 }
67
68 internal override void MoveAfter()
69 {
70 _current += _step;
71 }
72
73 internal override void SetCurrent(object value, IFormatProvider formatProvider)
74 {
75 _current = Convert.ToInt64(value, formatProvider);
76 }
77
78 internal override void SetCurrentAndIncrement(object value)
79 {
80 long num = (long)SqlConvert.ChangeType2(value, StorageType.Int64, typeof(long), CultureInfo.InvariantCulture);
81 if (BoundaryCheck(num))
82 {
83 _current = num + _step;
84 }
85 }
86
88 {
89 if (_step >= 0 || !(value <= _current))
90 {
91 if (0 < _step)
92 {
93 return _current <= value;
94 }
95 return false;
96 }
97 return true;
98 }
99}
static long ToInt64(object? value)
Definition Convert.cs:1623
bool BoundaryCheck(BigInteger value)
override void SetCurrentAndIncrement(object value)
override void SetCurrent(object value, IFormatProvider formatProvider)
static object ChangeType2(object value, StorageType stype, Type type, IFormatProvider formatProvider)
static Exception AutoIncrementSeed()
static CultureInfo InvariantCulture