Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ExtenderProvidedPropertyAttribute.cs
Go to the documentation of this file.
2
4
5[AttributeUsage(AttributeTargets.All)]
7{
8 public PropertyDescriptor? ExtenderProperty { get; private set; }
9
10 public IExtenderProvider? Provider { get; private set; }
11
12 public Type? ReceiverType { get; private set; }
13
14 internal static ExtenderProvidedPropertyAttribute Create(PropertyDescriptor extenderProperty, Type receiverType, IExtenderProvider provider)
15 {
17 {
18 ExtenderProperty = extenderProperty,
19 ReceiverType = receiverType,
20 Provider = provider
21 };
22 }
23
24 public override bool Equals([NotNullWhen(true)] object? obj)
25 {
26 if (obj == this)
27 {
28 return true;
29 }
30 if (!(obj is ExtenderProvidedPropertyAttribute extenderProvidedPropertyAttribute))
31 {
32 return false;
33 }
34 if (extenderProvidedPropertyAttribute.ExtenderProperty == null)
35 {
36 return ExtenderProperty == null;
37 }
38 if (extenderProvidedPropertyAttribute.ExtenderProperty.Equals(ExtenderProperty) && extenderProvidedPropertyAttribute.Provider.Equals(Provider))
39 {
40 return extenderProvidedPropertyAttribute.ReceiverType.Equals(ReceiverType);
41 }
42 return false;
43 }
44
45 public override int GetHashCode()
46 {
47 return base.GetHashCode();
48 }
49
50 public override bool IsDefaultAttribute()
51 {
52 return ReceiverType == null;
53 }
54}
static ExtenderProvidedPropertyAttribute Create(PropertyDescriptor extenderProperty, Type receiverType, IExtenderProvider provider)
override bool Equals([NotNullWhen(true)] object? obj)