Exemple #1
0
        /// <summary>
        /// Fires when the ListViewItem is selected
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ListViewItem_Selected(object sender, RoutedEventArgs e)
        {
            // Retrieve our ListViewItem
            var listViewItem = (ListViewItem)sender;
            // Retrieve our HudElem from the ListViewItem
            var hudElem = (HudElem)listViewItem.Tag;

            // Update our selected HudElem
            selectedHudElem = hudElem;

            // Get our Preview Image (Rectangle)
            var previewImage = hudElem.HudPreviewImage;

            if (selectedPreviewImage != null)
            {
                selectedPreviewImage.StrokeThickness = 0;
            }

            // Update our selected PreviewImage
            selectedPreviewImage = previewImage;
            selectedPreviewImage.StrokeThickness = 1;

            // Get our offsets
            double canvasX = Canvas.GetLeft(previewImage);
            double canvasY = Canvas.GetTop(previewImage);

            // Set our calculated Lui offsets
            LeftOffsetTxtBox.Text  = LuiUtil.CalculateLeftOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX).ToString();
            RightOffsetTxtBox.Text = LuiUtil.CalculateRightOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX, previewImage.Width).ToString();

            TopOffsetTxtBox.Text    = LuiUtil.CalculateTopOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY).ToString();
            BottomOffsetTxtBox.Text = LuiUtil.CalculateBottomOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY, previewImage.Height).ToString();

            // Update our Checkboxes
            LeftAnchorCheckBox.IsChecked  = (selectedHudElem.LeftAnchor) ? true : false;
            RightAnchorCheckBox.IsChecked = (selectedHudElem.RightAnchor) ? true : false;

            TopAnchorCheckBox.IsChecked    = (selectedHudElem.TopAnchor) ? true : false;
            BottomAnchorCheckBox.IsChecked = (selectedHudElem.BottomAnchor) ? true : false;

            // Update our Element / Image name
            ElementNameTxtBox.Text = hudElem.ElemName;
            ImageNameTxtBox.Text   = hudElem.ImageName;

            // Update our Text part
            IsTextCheckBox.IsChecked = (selectedHudElem.IsText) ? true : false;
            HasTextPanel.Visibility  = (selectedHudElem.IsText) ? Visibility.Visible : Visibility.Hidden;
            FontTextBox.Text         = selectedHudElem.Text;
            FontComboBox.Text        = selectedHudElem.FontName;

            Console.WriteLine(string.Format("Selected Layer: {0}", listViewItem.Content));
        }
Exemple #2
0
        /// <summary>
        /// Fires when a Checkbox is Checked / Unchecked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CheckBox_Checked(object sender, RoutedEventArgs e)
        {
            var txtBox = (CheckBox)sender;

            // Check if we have HudElem & PreviewImage
            if (selectedHudElem != null && selectedPreviewImage != null)
            {
                // Get our offsets
                double canvasX = Canvas.GetLeft(selectedPreviewImage);
                double canvasY = Canvas.GetTop(selectedPreviewImage);

                // Find our checkbox and update our offset values
                switch (txtBox.Name)
                {
                case "LeftAnchorCheckBox":
                    selectedHudElem.LeftAnchor = (txtBox.IsChecked == true) ? true : false;
                    LeftOffsetTxtBox.Text      = LuiUtil.CalculateLeftOffsetValue(selectedHudElem.LeftAnchor, selectedHudElem.RightAnchor, canvasX).ToString();
                    RightOffsetTxtBox.Text     = LuiUtil.CalculateRightOffsetValue(selectedHudElem.LeftAnchor, selectedHudElem.RightAnchor, canvasX, selectedPreviewImage.Width).ToString();
                    break;

                case "RightAnchorCheckBox":
                    selectedHudElem.RightAnchor = (txtBox.IsChecked == true) ? true : false;
                    LeftOffsetTxtBox.Text       = LuiUtil.CalculateLeftOffsetValue(selectedHudElem.LeftAnchor, selectedHudElem.RightAnchor, canvasX).ToString();
                    RightOffsetTxtBox.Text      = LuiUtil.CalculateRightOffsetValue(selectedHudElem.LeftAnchor, selectedHudElem.RightAnchor, canvasX, selectedPreviewImage.Width).ToString();
                    break;

                case "TopAnchorCheckBox":
                    selectedHudElem.TopAnchor = (txtBox.IsChecked == true) ? true : false;
                    TopOffsetTxtBox.Text      = LuiUtil.CalculateTopOffsetValue(selectedHudElem.TopAnchor, selectedHudElem.BottomAnchor, canvasY).ToString();
                    BottomOffsetTxtBox.Text   = LuiUtil.CalculateBottomOffsetValue(selectedHudElem.TopAnchor, selectedHudElem.BottomAnchor, canvasY, selectedPreviewImage.Height).ToString();
                    break;

                case "BottomAnchorCheckBox":
                    selectedHudElem.BottomAnchor = (txtBox.IsChecked == true) ? true : false;
                    TopOffsetTxtBox.Text         = LuiUtil.CalculateTopOffsetValue(selectedHudElem.TopAnchor, selectedHudElem.BottomAnchor, canvasY).ToString();
                    BottomOffsetTxtBox.Text      = LuiUtil.CalculateBottomOffsetValue(selectedHudElem.TopAnchor, selectedHudElem.BottomAnchor, canvasY, selectedPreviewImage.Height).ToString();
                    break;
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Generate LUA code from the PSD Layers
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GenerateLuaMenu_Click(object sender, RoutedEventArgs e)
        {
            if (psdFile == null)
            {
                MessageBox.Show("Nothing to generate");
                return;
            }

            StringBuilder sb = new StringBuilder();

            // Reverse the list, so the Z Order is correct
            List <ListViewItem> hudItems = HudItemList.Items.Cast <ListViewItem>().ToList();

            hudItems.Reverse();

            foreach (ListViewItem listViewItem in hudItems)
            {
                HudElem hudElem = (HudElem)listViewItem.Tag;

                var previewImage = hudElem.HudPreviewImage;

                // Get our offsets
                double canvasX = Canvas.GetLeft(previewImage);
                double canvasY = Canvas.GetTop(previewImage);

                // Start writing our Code
                // See if the Element is Text or an Image
                if (hudElem.IsText)
                {
                    // The padding that might be used ingame??
                    var textPadding = Math.Round(previewImage.Height / 4);

                    Console.WriteLine("Text Height: " + previewImage.Height);

                    sb.AppendLine(string.Format("local {0} = LUI.UIText.new(HudRef, InstanceRef)", hudElem.ElemName));

                    sb.AppendLine(string.Format("{0}:setLeftRight({1}, {2}, {3}, {4})", hudElem.ElemName,
                                                hudElem.LeftAnchor.ToString().ToLower(), hudElem.RightAnchor.ToString().ToLower(),
                                                LuiUtil.CalculateLeftOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX).ToString(),
                                                LuiUtil.CalculateRightOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX, previewImage.Width).ToString()));

                    sb.AppendLine(string.Format("{0}:setTopBottom({1}, {2}, {3}, {4})", hudElem.ElemName,
                                                hudElem.TopAnchor.ToString().ToLower(), hudElem.BottomAnchor.ToString().ToLower(),
                                                LuiUtil.CalculateTopOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY - textPadding).ToString(),
                                                LuiUtil.CalculateBottomOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY + textPadding, previewImage.Height).ToString()));

                    sb.AppendLine(string.Format("{0}:setTTF(\"fonts/{1}\")", hudElem.ElemName, hudElem.FontFile));

                    sb.AppendLine(string.Format("{0}:setText(\"{1}\")", hudElem.ElemName, hudElem.Text));

                    sb.AppendLine(string.Format("{0}:setAlpha({1})", hudElem.ElemName, hudElem.Alpha.ToString()));

                    sb.AppendLine(string.Format("{0}:addElement({1})", "Elem", hudElem.ElemName));

                    sb.AppendLine("");
                }
                else
                {
                    sb.AppendLine(string.Format("local {0} = LUI.UIImage.new()", hudElem.ElemName));

                    sb.AppendLine(string.Format("{0}:setLeftRight({1}, {2}, {3}, {4})", hudElem.ElemName,
                                                hudElem.LeftAnchor.ToString().ToLower(), hudElem.RightAnchor.ToString().ToLower(),
                                                LuiUtil.CalculateLeftOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX).ToString(),
                                                LuiUtil.CalculateRightOffsetValue(hudElem.LeftAnchor, hudElem.RightAnchor, canvasX, previewImage.Width).ToString()));

                    sb.AppendLine(string.Format("{0}:setTopBottom({1}, {2}, {3}, {4})", hudElem.ElemName,
                                                hudElem.TopAnchor.ToString().ToLower(), hudElem.BottomAnchor.ToString().ToLower(),
                                                LuiUtil.CalculateTopOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY).ToString(),
                                                LuiUtil.CalculateBottomOffsetValue(hudElem.TopAnchor, hudElem.BottomAnchor, canvasY, previewImage.Height).ToString()));

                    sb.AppendLine(string.Format("{0}:setImage(RegisterImage(\"{1}\"))", hudElem.ElemName, hudElem.ImageName));

                    sb.AppendLine(string.Format("{0}:setAlpha({1})", hudElem.ElemName, hudElem.Alpha.ToString()));

                    sb.AppendLine(string.Format("{0}:addElement({1})", "Elem", hudElem.ElemName));

                    sb.AppendLine("");
                }
            }

            // See if the Output Window is still active
            if (luaOutputWindow == null || !luaOutputWindow.IsActive)
            {
                // Create new Output Window and update the Text
                luaOutputWindow = new LuaOutputWindow();
                luaOutputWindow.LuaOutputText.Text = sb.ToString();
                luaOutputWindow.Show();
            }
            else
            {
                // Just update the Text
                luaOutputWindow.LuaOutputText.Text = sb.ToString();
            }
        }