Added research display to the game
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user