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

◆ RunQuery()

void Terraria.GameContent.ObjectInteractions.SmartInteractSystem.RunQuery ( SmartInteractScanSettings settings)
inline

Definition at line 31 of file SmartInteractSystem.cs.

32 {
33 Clear();
34 foreach (ISmartInteractBlockReasonProvider blockProvider in _blockProviders)
35 {
36 if (blockProvider.ShouldBlockSmartInteract(settings))
37 {
38 return;
39 }
40 }
41 foreach (ISmartInteractCandidateProvider item in _candidateProvidersByOrderOfPriority)
42 {
43 if (item.ProvideCandidate(settings, out var candidate))
44 {
46 if (candidate.DistanceFromCursor == 0f)
47 {
48 break;
49 }
50 }
51 }
52 ISmartInteractCandidate smartInteractCandidate = null;
53 foreach (ISmartInteractCandidate candidate2 in _candidates)
54 {
55 if (smartInteractCandidate == null || smartInteractCandidate.DistanceFromCursor > candidate2.DistanceFromCursor)
56 {
58 }
59 }
60 smartInteractCandidate?.WinCandidacy();
61 }
void Add(TKey key, TValue value)
List< ISmartInteractCandidateProvider > _candidateProvidersByOrderOfPriority
List< ISmartInteractBlockReasonProvider > _blockProviders

References Terraria.GameContent.ObjectInteractions.SmartInteractSystem._blockProviders, Terraria.GameContent.ObjectInteractions.SmartInteractSystem._candidateProvidersByOrderOfPriority, Terraria.GameContent.ObjectInteractions.SmartInteractSystem._candidates, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), and Terraria.GameContent.ObjectInteractions.SmartInteractSystem.Clear().