0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-05-18 19:31:17 +03:00
ParkanPlayground/NResUI/ImGuiUI/NResExplorerPanel.cs

130 lines
5.3 KiB
C#
Raw Permalink Normal View History

2024-11-15 19:06:44 +03:00
using ImGuiNET;
using NResUI.Abstractions;
using NResUI.Models;
namespace NResUI.ImGuiUI;
2024-11-18 23:48:42 +03:00
public class NResExplorerPanel : IImGuiPanel
2024-11-15 19:06:44 +03:00
{
2024-11-18 23:48:42 +03:00
private readonly NResExplorerViewModel _viewModel;
2024-11-15 19:06:44 +03:00
2024-11-18 23:48:42 +03:00
public NResExplorerPanel(NResExplorerViewModel viewModel)
2024-11-15 19:06:44 +03:00
{
_viewModel = viewModel;
}
public void OnImGuiRender()
{
2024-11-18 23:48:42 +03:00
if (ImGui.Begin("NRes Explorer"))
2024-11-15 19:06:44 +03:00
{
if (!_viewModel.HasFile)
{
ImGui.Text("No NRes is opened");
}
else
{
if (_viewModel.Error != null)
{
ImGui.Text(_viewModel.Error);
}
if (_viewModel.Archive is not null)
{
ImGui.Text(_viewModel.Path);
ImGui.Text("Header: ");
ImGui.SameLine();
ImGui.Text(_viewModel.Archive.Header.NRes);
ImGui.Text("Version: ");
ImGui.SameLine();
ImGui.Text(_viewModel.Archive.Header.Version.ToString());
ImGui.Text("File Count: ");
ImGui.SameLine();
ImGui.Text(_viewModel.Archive.Header.FileCount.ToString());
ImGui.Text("Total File Length: ");
ImGui.SameLine();
ImGui.Text(_viewModel.Archive.Header.TotalFileLengthBytes.ToString());
if (ImGui.BeginTable("content", 12, ImGuiTableFlags.Borders | ImGuiTableFlags.SizingFixedFit | ImGuiTableFlags.NoHostExtendX))
2024-11-15 19:06:44 +03:00
{
ImGui.TableSetupColumn("Тип файла");
ImGui.TableSetupColumn("Кол-во элементов");
2024-11-15 19:06:44 +03:00
ImGui.TableSetupColumn("Magic1");
ImGui.TableSetupColumn("Длина файла в байтах");
ImGui.TableSetupColumn("Размер элемента");
2024-11-15 19:06:44 +03:00
ImGui.TableSetupColumn("Имя файла");
ImGui.TableSetupColumn("Magic3");
ImGui.TableSetupColumn("Magic4");
ImGui.TableSetupColumn("Magic5");
ImGui.TableSetupColumn("Magic6");
ImGui.TableSetupColumn("Смещение в байтах");
ImGui.TableSetupColumn("Индекс в файле");
ImGui.TableHeadersRow();
for (int i = 0; i < _viewModel.Archive.Files.Count; i++)
{
ImGui.TableNextRow();
ImGui.TableNextColumn();
ImGui.Text(_viewModel.Archive.Files[i].FileType);
ImGui.TableNextColumn();
ImGui.Text(_viewModel.Archive.Files[i].ElementCount.ToString());
ImGui.TableNextColumn();
2024-11-15 19:06:44 +03:00
ImGui.Text(
_viewModel.Archive.Files[i]
.Magic1.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.FileLength.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.ElementSize.ToString()
2024-11-15 19:06:44 +03:00
);
ImGui.TableNextColumn();
ImGui.Text(_viewModel.Archive.Files[i].FileName);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.Magic3.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.Magic4.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.Magic5.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.Magic6.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.OffsetInFile.ToString()
);
ImGui.TableNextColumn();
ImGui.Text(
_viewModel.Archive.Files[i]
.Index.ToString()
);
}
ImGui.EndTable();
}
}
}
ImGui.End();
}
}
}