From 192620fad36b0d22463c897b2caecf2ba174f579 Mon Sep 17 00:00:00 2001 From: Nicola Date: Fri, 8 May 2026 10:30:11 +0200 Subject: [PATCH] Improved node placement in research screen --- Scripts/Research/ResearchList.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Scripts/Research/ResearchList.cs b/Scripts/Research/ResearchList.cs index 77908f1..2700722 100644 --- a/Scripts/Research/ResearchList.cs +++ b/Scripts/Research/ResearchList.cs @@ -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(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(