Beispiel #1
0
        /// <summary>
        /// Behandelt rezizing für bottom right thumb
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="args">EventArgs</param>
        public void DragDelta_BottomRight(object sender, DragDeltaEventArgs args)
        {
            SpriteViewModel NodeReference = this.DataContext as SpriteViewModel;
            Thumb           hitThumb      = sender as Thumb;

            if (NodeReference == null || hitThumb == null)
            {
                return;
            }

            //TODO: Optional Grid mode, maybe when ctrl is pressed
            //double vchange = ShapesHelper.SnapToGrid(args.VerticalChange, ShapesHelper.GridDistance);
            //double hchange = ShapesHelper.SnapToGrid(args.HorizontalChange, ShapesHelper.GridDistance);
            double vchange = args.VerticalChange;
            double hchange = args.HorizontalChange;

            // Ensure that the Width and Height are properly initialized after the resize.

            // Change the size by the amount the user drags the mouse, as long as it's larger
            // than the width or height of an adorner, respectively.
            NodeReference.Width  = Math.Max(NodeReference.Width + hchange, hitThumb.DesiredSize.Width);
            NodeReference.Height = Math.Max(vchange + NodeReference.Height, hitThumb.DesiredSize.Height);

            if (NodeReference.Width < minWidth)
            {
                NodeReference.Width = minWidth;
            }

            if (NodeReference.Height < minWidth)
            {
                NodeReference.Height = minWidth;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Behandelt rezizing für top left thumb
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="args">EventArgs</param>
        public void DragDelta_TopLeft(object sender, DragDeltaEventArgs args)
        {
            SpriteViewModel NodeReference = this.DataContext as SpriteViewModel;
            Thumb           hitThumb      = sender as Thumb;

            if (NodeReference == null || hitThumb == null)
            {
                return;
            }

            // Ensure that the Width and Height are properly initialized after the resize.
            ////EnforceSize(ditem);

            //TODO: Optional Grid mode, maybe when ctrl is pressed
            //double vchange = ShapesHelper.SnapToGrid(args.VerticalChange, ShapesHelper.GridDistance);
            //double hchange = ShapesHelper.SnapToGrid(args.HorizontalChange, ShapesHelper.GridDistance);
            double vchange = args.VerticalChange;
            double hchange = args.HorizontalChange;

            // Change the size by the amount the user drags the mouse, as long as it's larger
            // than the width or height of an adorner, respectively.

            double width_old = NodeReference.Width;
            double width_new = Math.Max(NodeReference.Width - hchange, hitThumb.DesiredSize.Width);
            double left_old  = NodeReference.PosX;

            if (width_new < minWidth)
            {
                width_new = minWidth;
            }

            double newPosX = left_old - (width_new - width_old);

            if (newPosX > 0)
            {
                NodeReference.Width = width_new;
                NodeReference.PosX  = newPosX;
            }

            double height_old = NodeReference.Height;
            double height_new = Math.Max(NodeReference.Height - vchange, hitThumb.DesiredSize.Height);
            double top_old    = NodeReference.PosY;

            if (height_new < minWidth)
            {
                height_new = minWidth;
            }

            double newPosY = top_old - (height_new - height_old);

            if (newPosY > 0)
            {
                NodeReference.Height = height_new;
                NodeReference.PosY   = newPosY;
            }
        }
        private void AutoPositionSprites(ObservableCollection <SpriteViewModel> _sprites)
        {
            double Height = Sprite_Preview.ActualHeight;
            double Width  = Sprite_Preview.ActualWidth;

            double ItemsSpace = Width / (_sprites.Count + 1);

            for (int i = 1; i <= _sprites.Count; ++i)
            {
                SpriteViewModel currentSprite = _sprites[i - 1];

                currentSprite.PosY = (Height / 2) - (currentSprite.Height / 2);
                currentSprite.PosX = (ItemsSpace * i) - (currentSprite.Width / 2);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Behandelt rezizing für bottom left thumb
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="args">EventArgs</param>
        public void DragDelta_BottomLeft(object sender, DragDeltaEventArgs args)
        {
            SpriteViewModel SpriteReference = this.DataContext as SpriteViewModel;
            Thumb           hitThumb        = sender as Thumb;

            if (SpriteReference == null || hitThumb == null)
            {
                return;
            }

            //TODO: Optional Grid mode, maybe when ctrl is pressed
            //double vchange = ShapesHelper.SnapToGrid(args.VerticalChange, ShapesHelper.GridDistance);
            //double hchange = ShapesHelper.SnapToGrid(args.HorizontalChange, ShapesHelper.GridDistance);
            double vchange = args.VerticalChange;
            double hchange = args.HorizontalChange;
            // Change the size by the amount the user drags the mouse, as long as it's larger
            // than the width or height of an adorner, respectively.

            double width_old = SpriteReference.Width;
            double width_new = Math.Max(SpriteReference.Width - hchange, hitThumb.DesiredSize.Width);
            double left_old  = SpriteReference.PosX;

            if (width_new < minWidth)
            {
                width_new = minWidth;
            }

            double newPosY   = left_old - (width_new - width_old);
            double newHeight = Math.Max(vchange + SpriteReference.Height, hitThumb.DesiredSize.Height);

            if (newHeight > minWidth)
            {
                SpriteReference.Height = newHeight;
            }

            if (newPosY > 0)
            {
                SpriteReference.Width = width_new;
                SpriteReference.PosX  = newPosY;
            }
        }
Beispiel #5
0
        public void ExportStory(IndentedTextWriter _writer, Project _Project, SpriteExporter _spriteExporter)
        {
            _writer.Indent = 0;
            //Panels
            for (int i = 0; i < _Project.Panels.Count; ++i)
            {
                //-Panel
                Panel currentPanel = _Project.Panels[i];
                _writer.WriteLine("Panel {");
                _writer.WriteLine();
                ++_writer.Indent;
                //Name
                _writer.WriteLine($"Name: \"{currentPanel.PanelName}\";");
                _writer.WriteLine();
                //BG
                _writer.WriteLine($"BGIndex: {_spriteExporter.GetSpriteIndex(currentPanel.BackgroundImage)};");
                _writer.WriteLine();
                //Condition
                if (currentPanel.Condition != null)
                {
                    _writer.WriteLine("Condition {");
                    _writer.WriteLine();
                    ++_writer.Indent;
                    //DataValues
                    for (int j = 0; j < currentPanel.Condition.DataValues.Count; ++j)
                    {
                        //-DataValue
                        DataValue currentDataValue = currentPanel.Condition.DataValues[j];
                        _writer.WriteLine("DataValue {");
                        _writer.WriteLine();
                        ++_writer.Indent;
                        //Name
                        _writer.WriteLine($"Name: \"{currentDataValue.Name}\";");
                        //Type
                        _writer.WriteLine($"Type: \"{currentDataValue.ValueType}\";");
                        //Value
                        _writer.WriteLine($"Value: \"{currentDataValue.Value}\";");
                        //Action
                        //_writer.WriteLine($"Action: \"{currentDataValue.Action}\";");
                        --_writer.Indent;
                        _writer.WriteLine("}");
                    }
                    //Alternative
                    _writer.WriteLine("Alternative {");
                    ++_writer.Indent;
                    //Name
                    _writer.WriteLine($"Name: \"{currentPanel.Condition.AlternativePanelKey}\";");
                    --_writer.Indent;
                    _writer.WriteLine("}");
                    --_writer.Indent;
                    _writer.WriteLine("}");
                }                //Condition end
                _writer.WriteLine("Sprites {");
                _writer.WriteLine();
                ++_writer.Indent;
                //Sprites
                if (currentPanel.SpriteImages != null)
                {
                    foreach (KeyValuePair <Guid, SpriteImage> pair in currentPanel.SpriteImages)
                    {
                        _writer.WriteLine($"Sprite: {_spriteExporter.GetSpriteIndex(pair.Value)};");
                    }
                }
                --_writer.Indent;
                _writer.WriteLine("}");
                _writer.WriteLine();
                //EntryBranch Name
                _writer.WriteLine($"EntryBranch: \"{currentPanel.EntryBranchKey}\";");
                _writer.WriteLine();
                _writer.WriteLine("Branches {");
                _writer.WriteLine();
                ++_writer.Indent;

                //Branches
                for (int j = 0; j < currentPanel.Branches.Count; ++j)
                {
                    //-Branch
                    Branch currentBranch = currentPanel.Branches[j];
                    _writer.WriteLine("Branch {");
                    ++_writer.Indent;

                    //Name
                    _writer.WriteLine($"Name: \"{currentBranch.Name}\";");
                    //Texts
                    for (int k = 0; k < currentBranch.ShownItems.Count; ++k)
                    {
                        //-Text
                        DialogLine currentText = (DialogLine)currentBranch.ShownItems[k];
                        //Character Name
                        //Said text
                        _writer.Write($"Text: \"{currentText.CharacterName}\", \"{currentText.TextShown}\"");
                        if (currentText.Sprites.Count > 0)
                        {
                            for (int l = 0; l < currentText.Sprites.Count; ++l)
                            {
                                SpriteViewModel currentSprite = currentText.Sprites[l];
                                //SpritePosition
                                if (currentSprite.IsAutoPositioned)
                                {
                                    //SpriteIndex
                                    _writer.Write($", {_spriteExporter.GetSpriteIndex(currentSprite.SpriteImage)}");
                                }
                                else
                                {
                                    //SpriteIndex, XPos, YPos
                                    _writer.Write($", {_spriteExporter.GetSpriteIndex(currentSprite.SpriteImage)}({(int)currentSprite.PosX}, {(int)currentSprite.PosX})");
                                }
                            }
                            _writer.WriteLine(";");
                        }
                        else
                        {
                            _writer.WriteLine(";");
                        }
                    }                    //Texts loop end

                    //Continue
                    _writer.WriteLine();

                    _writer.WriteLine("Continue {");
                    ++_writer.Indent;
                    //ContinueType
                    _writer.WriteLine($"Type: {currentBranch.Continue.Type};");
                    if (currentBranch.Continue.Type == Models.Enums.ContinueTypeEnum.Split)
                    {
                        //Split
                        _writer.WriteLine("Split {");
                        ++_writer.Indent;

                        //Options
                        for (int l = 0; l < currentBranch.Continue.Split.Options.Count; ++l)
                        {
                            Option currentOption = currentBranch.Continue.Split.Options[l];
                            //-Option
                            _writer.WriteLine("Option {");
                            ++_writer.Indent;
                            //Name
                            _writer.WriteLine($"Name: {currentOption.Name};");
                            //Text
                            _writer.WriteLine($"Text: \"{currentOption.ShownText}\";");
                            //ButtonSprite
                            _writer.WriteLine($"Sprite: {_spriteExporter.GetButtonSpriteIndex(currentOption.ButtonSprite)};");
                            //Continue
                            _writer.WriteLine("Continue {");
                            ++_writer.Indent;
                            //Type
                            _writer.WriteLine($"Type: {currentOption.Continue.Type};");
                            //Key
                            _writer.WriteLine($"Name: \"{currentOption.Continue.ContinueKey}\";");
                            --_writer.Indent;
                            _writer.WriteLine("}");                                //Continue Closing Bracket
                            --_writer.Indent;
                            _writer.WriteLine("}");                                //Option Closing Bracket
                        }
                        --_writer.Indent;
                        _writer.WriteLine("}");
                    }
                    else
                    {
                        //Continue Key
                        _writer.WriteLine($"Name: \"{currentBranch.Continue.ContinueKey}\";");
                    }
                    --_writer.Indent;
                    _writer.WriteLine("}"); //Continue closing Bracket
                    --_writer.Indent;
                    _writer.WriteLine("}"); //Current Branch closing Bracket
                }                           //Branches loop end
                --_writer.Indent;
                _writer.WriteLine("}");     //Branch Collection closiung Braces

                _writer.WriteLine("Animation_Placeholder {");
                ++_writer.Indent;
                --_writer.Indent;
                _writer.WriteLine("}");                    //AnimationPlaceholder closing Braces
                --_writer.Indent;
                _writer.WriteLine("}");                    //currentPanel closing Braces
            }
        }
 public SpriteListItemViewModel(Sprite sprite)
 {
     _sprite = sprite != null ? new SpriteViewModel(sprite) : null;
 }
 public SpriteListItemViewModel(Sprite sprite)
 {
     _sprite = sprite != null ? new SpriteViewModel(sprite) : null;
 }