Files
RuinAdventurer/Scripts/Research/ResearchList.cs
T

58 lines
1.1 KiB
C#

using Godot;
public partial class ResearchList : PanelContainer
{
[Export] GraphEdit researchGraph;
public override void _Ready()
{
foreach (ResearchData research in GameData.availableResearch.Values)
{
researchGraph.AddChild(CreateItemNode(research.Id, research.Texture));
}
foreach (ResearchData research in GameData.availableResearch.Values)
{
researchGraph.ConnectNode(
research.Research,
0,
research.Id,
0
);
}
}
public override void _Process(double delta)
{
}
private GraphNode CreateItemNode(string id, string texturePath)
{
TextureRect icon = new TextureRect
{
Texture = GD.Load<Texture2D>(texturePath),
StretchMode = TextureRect.StretchModeEnum.KeepAspectCentered
};
GraphNode node = new GraphNode
{
Name = id,
Title = id,
PositionOffset = new Vector2(GameData.availableResearch.Count * -icon.Texture.GetWidth() + researchGraph.GetChildCount() * icon.Texture.GetWidth() * 10, 0)
};
node.SetSlot(
0,
true,
0,
Colors.White,
true,
0,
Colors.White
);
node.AddChild(icon);
return node;
}
}