Files
parkan-playground/NResUI/ImGuiUI/ResearchTreeExplorer.cs
T

102 lines
3.6 KiB
C#
Raw Normal View History

2026-02-15 23:44:20 +03:00
using ImGuiNET;
using NResUI.Abstractions;
using NResUI.Models;
namespace NResUI.ImGuiUI;
public class ResearchTreeExplorer : IImGuiPanel
{
private readonly ResearchTreeViewModel _viewModel;
public ResearchTreeExplorer(ResearchTreeViewModel viewModel)
{
_viewModel = viewModel;
}
public void OnImGuiRender()
{
if (ImGui.Begin("Research Tree Explorer (trf)"))
{
ImGui.Text("trf - это файл дерева исследований. Их можно найти в папке MISSIONS/SCRIPTS");
ImGui.Separator();
var nodes = _viewModel.ResearchNodeDatas;
if (_viewModel.HasFile && nodes is not null)
{
if (ImGui.TreeNodeEx("Узлы"))
{
for (var i = 0; i < nodes.Count; i++)
{
var node = nodes[i];
if (ImGui.TreeNodeEx($"{i} - \"{node.LongName}\" (\"{node.ShortName}\")"))
{
ImGui.Text("Состояние: ");
ImGui.SameLine();
ImGui.Text(node.State.ToString("G"));
ImGui.Text("ShortName: ");
ImGui.SameLine();
ImGui.Text(node.ShortName);
ImGui.Text("LongName: ");
ImGui.SameLine();
ImGui.Text(node.LongName);
ImGui.Text("HelpText: ");
ImGui.SameLine();
ImGui.Text(node.HelpText);
ImGui.Text("Description: ");
ImGui.SameLine();
ImGui.Text(node.Description);
ImGui.Text("Тип турели: ");
ImGui.SameLine();
ImGui.Text(node.Node.TurretType.ToString());
ImGui.Text("Основной тип: ");
ImGui.SameLine();
ImGui.Text(node.Node.MainType.ToString());
ImGui.Text("Подтип: ");
ImGui.SameLine();
ImGui.Text(node.Node.SubType.ToString());
ImGui.Text("Подтип строения: ");
ImGui.SameLine();
ImGui.Text(node.Node.BuildSubSystem.ToString());
ImGui.Text("Размер типа: ");
ImGui.SameLine();
ImGui.Text(node.Node.SizeOfType.ToString());
ImGui.Text("Уровень апгрейда: ");
ImGui.SameLine();
ImGui.Text(node.Node.UpgradeLevel.ToString());
ImGui.Text("Условия: ");
ImGui.SameLine();
ImGui.Text(string.Join(", ", node.PrerequisiteIds));
ImGui.Text("Открывает: ");
ImGui.SameLine();
ImGui.Text(string.Join(", ", node.UnlockIds));
ImGui.TreePop();
}
}
ImGui.TreePop();
}
}
else
{
ImGui.Text("trf не открыт");
}
ImGui.End();
}
}
}