mirror of
https://github.com/DrMboga/WotBlitzStatisticsBlazor.git
synced 2026-10-21 10:27:18 +02:00
feat: tree build simplified
This commit is contained in:
1 parent
66854c0aea
commit
d3989a1096
2 files changed
+30
-19
No files matched your search
@@ -1,6 +1,8 @@
|
|||||||
namespace WotBlitzStatisticsPro.Blazor
|
using WotBlitzStatisticsPro.Blazor.Model;
|
||||||
|
|
||||||
|
namespace WotBlitzStatisticsPro.Blazor
|
||||||
{
|
{
|
||||||
public class Constants
|
public static class Constants
|
||||||
{
|
{
|
||||||
public const string ClanTagColor = "#d4d481";
|
public const string ClanTagColor = "#d4d481";
|
||||||
|
|
||||||
@@ -41,5 +43,10 @@
|
|||||||
|
|
||||||
|
|
||||||
public const string LoginInfoLocalStorageKey = "login_info";
|
public const string LoginInfoLocalStorageKey = "login_info";
|
||||||
|
|
||||||
|
public static TankTreeRowMap[] TanksTreeHelper = new TankTreeRowMap[]
|
||||||
|
{
|
||||||
|
new TankTreeRowMap(2065,2)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -82,12 +82,21 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
|
|||||||
for (int tier = 1; tier < 11; tier++)
|
for (int tier = 1; tier < 11; tier++)
|
||||||
{
|
{
|
||||||
var vehiclesByTier = vehiclesTree.Where(v => v.Tier == tier).ToList();
|
var vehiclesByTier = vehiclesTree.Where(v => v.Tier == tier).ToList();
|
||||||
int row = 0;
|
|
||||||
// TODO: Order
|
|
||||||
foreach (var vehicleFromDictionary in vehiclesByTier)
|
foreach (var vehicleFromDictionary in vehiclesByTier)
|
||||||
{
|
{
|
||||||
// Find previous map to figure out the row
|
int currentRow = 0;
|
||||||
int currentRow = FindRowFromPreviousTierMapping(vehicleFromDictionary, row);
|
if (tier == 1)
|
||||||
|
{
|
||||||
|
var rowMap = Constants.TanksTreeHelper.FirstOrDefault(v => v.TankId == vehicleFromDictionary.TankId);
|
||||||
|
if(rowMap != null)
|
||||||
|
{
|
||||||
|
currentRow = rowMap.Row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currentRow = FindRowFromPreviousTierMapping(vehicleFromDictionary);
|
||||||
|
}
|
||||||
|
|
||||||
var treeItem = BuildNonPremTreeItem(vehicleFromDictionary, currentRow);
|
var treeItem = BuildNonPremTreeItem(vehicleFromDictionary, currentRow);
|
||||||
|
|
||||||
@@ -95,7 +104,6 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
|
|||||||
treeItem.NextRows = BuildNextTanksRowMapping(vehicleFromDictionary, currentRow);
|
treeItem.NextRows = BuildNextTanksRowMapping(vehicleFromDictionary, currentRow);
|
||||||
|
|
||||||
TreeItems.Add(treeItem);
|
TreeItems.Add(treeItem);
|
||||||
row++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,29 +162,25 @@ namespace WotBlitzStatisticsPro.Blazor.Pages
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If more than one, sort them AT first, Heavy, Middle and light
|
foreach (var nextTankInTree in vehicleFromDictionary.NexTanksInTree)
|
||||||
int nextRow = currentRow;
|
|
||||||
string[] tankTypes = { "AT-SPG", "heavyTank", "mediumTank", "lightTank" };
|
|
||||||
var nextTanksTypes = VehiclesLibrary
|
|
||||||
.Where(v => vehicleFromDictionary.NexTanksInTree.Contains(v.TankId))
|
|
||||||
.Select(v => new { v.TankId, TankType = v.TypeId })
|
|
||||||
.ToList();
|
|
||||||
foreach (var tankType in tankTypes)
|
|
||||||
{
|
{
|
||||||
foreach (var nextTierTank in nextTanksTypes.Where(t => t.TankType == tankType))
|
// If more than one, get tank row from special mappings array
|
||||||
|
var rowMap = Constants.TanksTreeHelper.FirstOrDefault(v => v.TankId == nextTankInTree);
|
||||||
|
if (rowMap != null)
|
||||||
{
|
{
|
||||||
nextRowsMap.Add(new TankTreeRowMap(nextTierTank.TankId, nextRow));
|
nextRowsMap.Add(rowMap);
|
||||||
nextRow++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nextRowsMap;
|
return nextRowsMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int FindRowFromPreviousTierMapping(IDictionary_Vehicles vehicleFromDictionary, int currentRow)
|
private int FindRowFromPreviousTierMapping(IDictionary_Vehicles vehicleFromDictionary)
|
||||||
{
|
{
|
||||||
|
int currentRow = 0;
|
||||||
var previousTierTanks = TreeItems.Where(t => t.Tier == vehicleFromDictionary.Tier - 1).ToList();
|
var previousTierTanks = TreeItems.Where(t => t.Tier == vehicleFromDictionary.Tier - 1).ToList();
|
||||||
foreach (var previousTierTank in previousTierTanks)
|
foreach (var previousTierTank in previousTierTanks)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in new issue
Block a user