/// <summary> /// スポナー読み込み /// </summary> /// <param name="count"></param> public static void Load(ref int count) { try { Spawners.ClearOnScheduler(); foreach (Coordinate coor in _spawnerCoordinates) { // 実際の座標と画像のピクセル数から画像上のスポナー位置を計算 // 画像のサイズが変わると壊れます() var X = (coor.X + 1502.5) / 1664; var Z = (coor.Z + 114.5) / 247; var isBroken = new Spawner(coor, World.WorldData).IsBroken; Application.Current.Dispatcher.Invoke(() => { Spawners.Add(new SpawnerPointer() { Center = new Point(X, Z), IsBroken = isBroken }); BrokenCount.Value = Spawners.Where(x => x.IsBroken).Count(); BrokenRate.Value = (BrokenCount.Value / 247.0) * 100; }); World.LoadingProgress.Value = (++count / 297.0) * 100; } } catch { Reset(); throw; } }
/// <summary> /// データをリセット /// </summary> public static void Reset() { Spawners.ClearOnScheduler(); BrokenCount.Value = 0; BrokenRate.Value = 0; }