private void Init() { var panel = new UIPanel(this, new Vector2(_position.x, _position.y), _width, _height, _panelColor); _paddingAmount = (_stackedButtons ? _height : _width) * _paddingPercentage / _buttonConfiguration.Count(); var firstButtonPosition = new Vector2(_position.x + _paddingAmount, _position.y + _paddingAmount); var titleHeight = TITLE_PERCENTAGE * _height; if (!string.IsNullOrEmpty(_title)) { _hasTitle = true; var titlePanel = new UIPanel(this, new Vector2(_position.x, _position.y + _height - titleHeight), _width, titleHeight); var titleLabel = new UILabel(this, _title, fontSize: _titleSize, parent: titlePanel.Element.Name); } var buttonHeight = (_height - (_paddingAmount * 2) - (_hasTitle ? titleHeight : 0) - (_paddingAmount * (_buttonConfiguration.Count() - 1))) / (_stackedButtons ? _buttonConfiguration.Count() : 1); var buttonWidth = _stackedButtons ? (_width - (_paddingAmount * 2)) : ((_width - (_paddingAmount * 2) - (_paddingAmount * (_buttonConfiguration.Count() - 1))) / _buttonConfiguration.Count()); _plugin.Puts($"ButtonHeight {buttonHeight} ButtonWidth {buttonWidth}"); for (var buttonId = 0; buttonId < _buttonConfiguration.Count(); buttonId++) { var buttonConfig = _buttonConfiguration.ElementAt(buttonId); var button = new UIButton(this, buttonText: buttonConfig.ButtonName, buttonColor: buttonConfig.ButtonColor, fontSize: _buttonFontSize); if (!_stackedButtons) { button.SetPosition( firstButtonPosition.x + ((buttonWidth + _paddingAmount) * buttonId + _paddingAmount), firstButtonPosition.y + (_paddingAmount) * 2); } else { button.SetPosition( firstButtonPosition.x, firstButtonPosition.y + ((buttonHeight + _paddingAmount) * buttonId + _paddingAmount)); } button.SetSize( buttonWidth - (_stackedButtons ? 0 : _paddingAmount * 2), buttonHeight - (_stackedButtons ? _paddingAmount * 2 : 0)); button.AddCallback(buttonConfig.callback); button.AddChatCommand(buttonConfig.ButtonCommand); } }