Improved node placement in research screen

This commit is contained in:
2026-05-08 10:30:11 +02:00
parent ce99936298
commit 192620fad3
+7 -1
View File
@@ -28,16 +28,22 @@ public partial class ResearchList : PanelContainer
private GraphNode CreateItemNode(string id, string texturePath)
{
Vector2 viewportSize = GetViewport().GetVisibleRect().Size;
TextureRect icon = new TextureRect
{
Texture = GD.Load<Texture2D>(texturePath),
StretchMode = TextureRect.StretchModeEnum.KeepAspectCentered
};
//Step 1: Place the node in the visible field for the player
Vector2 nodePosition = new Vector2(viewportSize.X / 32, viewportSize.Y / 4);
//Step 2: Modify position by nodeIndex
nodePosition = nodePosition + new Vector2(GameData.availableResearch.Count * -icon.Texture.GetWidth() + researchGraph.GetChildCount() * icon.Texture.GetWidth() * 10, 0);
GraphNode node = new GraphNode
{
Name = id,
Title = id,
PositionOffset = new Vector2(GameData.availableResearch.Count * -icon.Texture.GetWidth() + researchGraph.GetChildCount() * icon.Texture.GetWidth() * 10, 0)
PositionOffset = nodePosition
};
node.SetSlot(