public override List <IRenderObject> GetRenderData() { ChangeButtonStates(); List <IRenderObject> renderObjects = new List <IRenderObject>(); foreach (TextButton button in PlayerButtons) { button.RecalculateComponentsPositions(); renderObjects.AddRange(button.GetRenderObjects()); } foreach (ActionButton button in BoardSizeButtons) { button.RecalculateComponentsPositions(); renderObjects.AddRange(button.GetRenderObjects()); } Text.RecalculateComponentsPositions(); renderObjects.AddRange(Text.GetRenderObjects()); if (Gamestate.CanStartGame()) { StartButton.ButtonState = ButtonState.Active; } else { StartButton.ButtonState = ButtonState.Inactive; } StartButton.RecalculateComponentsPositions(); renderObjects.AddRange(StartButton.GetRenderObjects()); ReturnButton.RecalculateComponentsPositions(); renderObjects.AddRange(ReturnButton.GetRenderObjects()); return(renderObjects); }