Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LocalScopeHandle.cs
Go to the documentation of this file.
2
3public readonly struct LocalScopeHandle : IEquatable<LocalScopeHandle>
4{
5 private readonly int _rowId;
6
7 public bool IsNil => RowId == 0;
8
9 internal int RowId => _rowId;
10
11 private LocalScopeHandle(int rowId)
12 {
13 _rowId = rowId;
14 }
15
16 internal static LocalScopeHandle FromRowId(int rowId)
17 {
18 return new LocalScopeHandle(rowId);
19 }
20
21 public static implicit operator Handle(LocalScopeHandle handle)
22 {
23 return new Handle(50, handle._rowId);
24 }
25
26 public static implicit operator EntityHandle(LocalScopeHandle handle)
27 {
28 return new EntityHandle((uint)(0x32000000uL | (ulong)handle._rowId));
29 }
30
31 public static explicit operator LocalScopeHandle(Handle handle)
32 {
33 if (handle.VType != 50)
34 {
36 }
37 return new LocalScopeHandle(handle.RowId);
38 }
39
40 public static explicit operator LocalScopeHandle(EntityHandle handle)
41 {
42 if (handle.VType != 838860800)
43 {
45 }
46 return new LocalScopeHandle(handle.RowId);
47 }
48
49 public static bool operator ==(LocalScopeHandle left, LocalScopeHandle right)
50 {
51 return left._rowId == right._rowId;
52 }
53
54 public override bool Equals(object? obj)
55 {
56 if (obj is LocalScopeHandle localScopeHandle)
57 {
58 return localScopeHandle._rowId == _rowId;
59 }
60 return false;
61 }
62
64 {
65 return _rowId == other._rowId;
66 }
67
68 public override int GetHashCode()
69 {
70 return _rowId.GetHashCode();
71 }
72
73 public static bool operator !=(LocalScopeHandle left, LocalScopeHandle right)
74 {
75 return left._rowId != right._rowId;
76 }
77}
static void InvalidCast()
Definition Throw.cs:12
static LocalScopeHandle FromRowId(int rowId)
static bool operator!=(LocalScopeHandle left, LocalScopeHandle right)
static bool operator==(LocalScopeHandle left, LocalScopeHandle right)