diff --git a/PokemonGo.RocketBot.Window/Forms/MainForm.cs b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
index 261a30a..8fdd318 100644
--- a/PokemonGo.RocketBot.Window/Forms/MainForm.cs
+++ b/PokemonGo.RocketBot.Window/Forms/MainForm.cs
@@ -54,6 +54,8 @@ namespace PokemonGo.RocketBot.Window.Forms
private readonly GMapOverlay _pokemonsOverlay = new GMapOverlay("pokemons");
private readonly GMapOverlay _pokestopsOverlay = new GMapOverlay("pokestops");
private readonly GMapOverlay _searchAreaOverlay = new GMapOverlay("areas");
+
+ private PointLatLng _currentLatLng;
private ConsoleLogger _logger;
private StateMachine _machine;
private GlobalSettings _settings;
@@ -67,7 +69,7 @@ namespace PokemonGo.RocketBot.Window.Forms
private void MainForm_Load(object sender, EventArgs e)
{
- Text = @"[RocketBot] " + Assembly.GetExecutingAssembly().GetName().Version;
+ Text = @"RocketBot v" + Assembly.GetExecutingAssembly().GetName().Version;
InitializeBot();
InitializePokemonForm();
InitializeMap();
@@ -76,6 +78,7 @@ namespace PokemonGo.RocketBot.Window.Forms
{
startStopBotToolStripMenuItem.Enabled = false;
Logger.Write("First time here? Go to settings to set your basic info.");
+ GlobalSettings.Load("");
}
}
@@ -99,7 +102,7 @@ namespace PokemonGo.RocketBot.Window.Forms
gMapControl1.Overlays.Add(_playerOverlay);
_playerMarker = new GMapMarkerTrainer(new PointLatLng(lat, lng),
- (Image) Properties.Resources.ResourceManager.GetObject("Trainer"));
+ (Image) Properties.Resources.ResourceManager.GetObject("Trainer_Front"));
_playerOverlay.Markers.Add(_playerMarker);
_playerMarker.Position = new PointLatLng(lat, lng);
_searchAreaOverlay.Polygons.Clear();
@@ -205,7 +208,6 @@ namespace PokemonGo.RocketBot.Window.Forms
private async Task StartBot()
{
- startStopBotToolStripMenuItem.Enabled = false;
_machine.AsyncStart(new VersionCheckState(), _session);
if (_settings.UseTelegramAPI)
@@ -218,25 +220,30 @@ namespace PokemonGo.RocketBot.Window.Forms
QuitEvent.WaitOne();
}
- private async void InitializePokestopsAndRoute(List<FortData> pokeStops)
+ private void InitializePokestopsAndRoute(List<FortData> pokeStops)
{
- _pokestopsOverlay.Markers.Clear();
- var routePoint =
- (from pokeStop in pokeStops
- where pokeStop != null
- select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
- _pokestopsOverlay.Routes.Clear();
- var route = new GMapRoute(routePoint, "Walking Path");
- route.Stroke = new Pen(Color.FromArgb(128, 0, 179, 253), 4);
- _pokestopsOverlay.Routes.Add(route);
-
- foreach (var pokeStop in pokeStops)
+ SynchronizationContext.Post(o =>
{
- var pokeStopLoc = new PointLatLng(pokeStop.Latitude, pokeStop.Longitude);
- var pokestopMarker = new GMapMarkerPokestops(pokeStopLoc,
- (Image) Properties.Resources.ResourceManager.GetObject("Pokestop"));
- _pokestopsOverlay.Markers.Add(pokestopMarker);
- }
+ _pokestopsOverlay.Markers.Clear();
+ _pokestopsOverlay.Routes.Clear();
+ _playerOverlay.Markers.Clear();
+ _playerOverlay.Routes.Clear();
+ var routePoint =
+ (from pokeStop in pokeStops
+ where pokeStop != null
+ select new PointLatLng(pokeStop.Latitude, pokeStop.Longitude)).ToList();
+ var route = new GMapRoute(routePoint, "Walking Path");
+ route.Stroke = new Pen(Color.FromArgb(128, 0, 179, 253), 4);
+ _pokestopsOverlay.Routes.Add(route);
+
+ foreach (var pokeStop in pokeStops)
+ {
+ var pokeStopLoc = new PointLatLng(pokeStop.Latitude, pokeStop.Longitude);
+ var pokestopMarker = new GMapMarkerPokestops(pokeStopLoc,
+ (Image) Properties.Resources.ResourceManager.GetObject("Pokestop"));
+ _pokestopsOverlay.Markers.Add(pokestopMarker);
+ }
+ }, null);
}
private void UpdateMap(FortData pokestop = null)
@@ -277,7 +284,17 @@ namespace PokemonGo.RocketBot.Window.Forms
{
var latlng = new PointLatLng(lat, lng);
_playerLocations.Add(latlng);
- _playerMarker.Position = latlng;
+
+ _playerOverlay.Markers.Remove(_playerMarker);
+ if (!_currentLatLng.IsEmpty)
+ _playerMarker = _currentLatLng.Lng < latlng.Lng
+ ? new GMapMarkerTrainer(latlng,
+ (Image) Properties.Resources.ResourceManager.GetObject("Trainer_Right"))
+ : new GMapMarkerTrainer(latlng,
+ (Image) Properties.Resources.ResourceManager.GetObject("Trainer_Left"));
+ _playerOverlay.Markers.Add(_playerMarker);
+
+ _currentLatLng = latlng;
UpdateMap();
SaveLocationToDisk(lat, lng);
}
@@ -371,7 +388,8 @@ namespace PokemonGo.RocketBot.Window.Forms
private void startStopBotToolStripMenuItem_Click(object sender, EventArgs e)
{
- Task.Run(() => StartBot());
+ startStopBotToolStripMenuItem.Enabled = false;
+ Task.Run(StartBot);
}
private void todoToolStripMenuItem_Click(object sender, EventArgs e)
diff --git a/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Front.png b/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Front.png
new file mode 100644
index 0000000..20d619e
Binary files /dev/null and b/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Front.png differ
diff --git a/PokemonGo.RocketBot.Window/Images/Markers/Trainer.png b/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Left.png
similarity index 100%
rename from PokemonGo.RocketBot.Window/Images/Markers/Trainer.png
rename to PokemonGo.RocketBot.Window/Images/Markers/Trainer_Left.png
diff --git a/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Right.png b/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Right.png
new file mode 100644
index 0000000..5113c95
Binary files /dev/null and b/PokemonGo.RocketBot.Window/Images/Markers/Trainer_Right.png differ
diff --git a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
index 21fe0e8..c80a31c 100644
--- a/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
+++ b/PokemonGo.RocketBot.Window/PokemonGo.RocketBot.Window.csproj
@@ -328,6 +328,9 @@
<None Include="Images\Markers\Pokestop.png" />
<None Include="Images\Markers\Pokestop_looted.png" />
<None Include="Images\Markers\Trainer.png" />
+ <None Include="Images\Markers\Trainer_Front.png" />
+ <None Include="Images\Markers\Trainer_Left.png" />
+ <None Include="Images\Markers\Trainer_Right.png" />
<Content Include="Images\Pokemon\Pokemon_1.png" />
<Content Include="Images\Pokemon\Pokemon_10.png" />
<Content Include="Images\Pokemon\Pokemon_100.png" />
diff --git a/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs b/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
index c2d8172..2a9c7d7 100644
--- a/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
+++ b/PokemonGo.RocketBot.Window/Properties/Resources.Designer.cs
@@ -1833,9 +1833,29 @@ namespace PokemonGo.RocketBot.Window.Properties {
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
- internal static System.Drawing.Bitmap Trainer {
+ internal static System.Drawing.Bitmap Trainer_Front {
get {
- object obj = ResourceManager.GetObject("Trainer", resourceCulture);
+ object obj = ResourceManager.GetObject("Trainer_Front", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ /// </summary>
+ internal static System.Drawing.Bitmap Trainer_Left {
+ get {
+ object obj = ResourceManager.GetObject("Trainer_Left", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
+ /// <summary>
+ /// 查找 System.Drawing.Bitmap 类型的本地化资源。
+ /// </summary>
+ internal static System.Drawing.Bitmap Trainer_Right {
+ get {
+ object obj = ResourceManager.GetObject("Trainer_Right", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
diff --git a/PokemonGo.RocketBot.Window/Properties/Resources.resx b/PokemonGo.RocketBot.Window/Properties/Resources.resx
index 3795cd2..7ebfacf 100644
--- a/PokemonGo.RocketBot.Window/Properties/Resources.resx
+++ b/PokemonGo.RocketBot.Window/Properties/Resources.resx
@@ -1990,7 +1990,13 @@
<data name="Pokestop_looted" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Images\Markers\Pokestop_looted.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
- <data name="Trainer" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Images\Markers\Trainer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ <data name="Trainer_Front" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Markers\Trainer_Front.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Trainer_Left" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Markers\Trainer_Left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+ </data>
+ <data name="Trainer_Right" type="System.Resources.ResXFileRef, System.Windows.Forms">
+ <value>..\Images\Markers\Trainer_Right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
\ No newline at end of file
You may download the files in Public Git.