1
1
using System ;
2
- using System . ComponentModel . DataAnnotations ;
3
2
using System . Linq ;
4
3
using System . Threading ;
5
4
using System . Threading . Tasks ;
@@ -48,15 +47,10 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
48
47
// Subscribe to the GameLink observable
49
48
// I recommend using Rx (System.Reactive) instead of implementing IObserver<T> yourself
50
49
gameLink . Subscribe (
51
- snapshot =>
50
+ tick =>
52
51
{
53
52
// This callback is executed whenever the game client updates the shared memory
54
- if ( ! snapshot . TryGetIdentity ( out var identity , MissingMemberBehavior . Error ) )
55
- {
56
- return ;
57
- }
58
-
59
- if ( ! snapshot . TryGetContext ( out var context ) )
53
+ if ( ! tick . TryGetIdentity ( out var identity , MissingMemberBehavior . Error ) )
60
54
{
61
55
return ;
62
56
}
@@ -70,41 +64,41 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
70
64
var map = mapsDictionary [ identity . MapId ] ;
71
65
72
66
var title = $ "the { identity . Race } { identity . Profession } ";
73
- if ( ! context . UiState . HasFlag ( UiState . GameHasFocus ) )
67
+ if ( ! tick . Context . UiState . HasFlag ( UiState . GameHasFocus ) )
74
68
{
75
69
logger . LogInformation (
76
70
"[{UiTick}] {Name}, {Title} ({Specialization}) is afk" ,
77
- snapshot . UiTick ,
71
+ tick . UiTick ,
78
72
identity . Name ,
79
73
title ,
80
74
specialization
81
75
) ;
82
76
}
83
- else if ( context . UiState . HasFlag ( UiState . TextboxHasFocus ) )
77
+ else if ( tick . Context . UiState . HasFlag ( UiState . TextboxHasFocus ) )
84
78
{
85
79
logger . LogInformation (
86
80
"[{UiTick}] {Name}, {Title} ({Specialization}) is typing" ,
87
- snapshot . UiTick ,
81
+ tick . UiTick ,
88
82
identity . Name ,
89
83
title ,
90
84
specialization
91
85
) ;
92
86
}
93
- else if ( context . UiState . HasFlag ( UiState . IsMapOpen ) )
87
+ else if ( tick . Context . UiState . HasFlag ( UiState . IsMapOpen ) )
94
88
{
95
89
logger . LogInformation (
96
90
"[{UiTick}] {Name}, {Title} ({Specialization}) is looking at the map" ,
97
- snapshot . UiTick ,
91
+ tick . UiTick ,
98
92
identity . Name ,
99
93
title ,
100
94
specialization
101
95
) ;
102
96
}
103
- else if ( context . UiState . HasFlag ( UiState . IsInCombat ) )
97
+ else if ( tick . Context . UiState . HasFlag ( UiState . IsInCombat ) )
104
98
{
105
99
logger . LogInformation (
106
100
"[{UiTick}] {Name}, {Title} ({Specialization}) is in combat" ,
107
- snapshot . UiTick ,
101
+ tick . UiTick ,
108
102
identity . Name ,
109
103
title ,
110
104
specialization
@@ -113,22 +107,22 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
113
107
else
114
108
{
115
109
var transport = "foot" ;
116
- if ( context . IsMounted )
110
+ if ( tick . Context . IsMounted )
117
111
{
118
- transport = context . GetMount ( ) . ToString ( ) ;
112
+ transport = tick . Context . GetMount ( ) . ToString ( ) ;
119
113
}
120
114
121
115
logger . LogInformation (
122
116
"[{UiTick}] {Name}, {Title} ({Specialization}) is on {Transport} in {Map}, Position: {{ Latitude = {X}, Longitude = {Z}, Elevation = {Y} }}" ,
123
- snapshot . UiTick ,
117
+ tick . UiTick ,
124
118
identity . Name ,
125
119
title ,
126
120
specialization ,
127
121
transport ,
128
122
map . Name ,
129
- snapshot . AvatarPosition . X ,
130
- snapshot . AvatarPosition . Z ,
131
- snapshot . AvatarPosition . Y
123
+ tick . AvatarPosition . X ,
124
+ tick . AvatarPosition . Z ,
125
+ tick . AvatarPosition . Y
132
126
) ;
133
127
}
134
128
} ,
0 commit comments