示例#1
0
        private void UpdateObjectOverMarker()
        {
            SECursor cursor = GameData.Cursor;

            float polygonScaleX = (float)mObjectOverMarker.Points[0].X;
            float polygonScaleY = (float)mObjectOverMarker.Points[0].Y;

            mModelOverHighlight.Visible = false;

            if (cursor.SpritesOver.Count != 0)
            {
                mObjectOverMarker.Visible = true;

                mObjectOverMarker.Position       = cursor.SpritesOver[0].Position;
                mObjectOverMarker.RotationMatrix = cursor.SpritesOver[0].RotationMatrix;

                mObjectOverMarker.ScaleBy(cursor.SpritesOver[0].ScaleX / polygonScaleX,
                                          cursor.SpritesOver[0].ScaleY / polygonScaleY);
            }
            else if (cursor.SpriteFramesOver.Count != 0)
            {
                mObjectOverMarker.Visible = true;

                mObjectOverMarker.Position       = cursor.SpriteFramesOver[0].Position;
                mObjectOverMarker.RotationMatrix = cursor.SpriteFramesOver[0].RotationMatrix;

                mObjectOverMarker.ScaleBy(cursor.SpriteFramesOver[0].ScaleX / polygonScaleX,
                                          cursor.SpriteFramesOver[0].ScaleY / polygonScaleY);
            }
            else if (cursor.PositionedModelsOver.Count != 0)
            {
                PositionedModel modelOver = cursor.PositionedModelsOver[0];

                mModelOverHighlight.Visible = true;
                mModelOverHighlight.SetDataFrom(modelOver);
                mModelOverHighlight.Position       = modelOver.Position;
                mModelOverHighlight.RotationMatrix = modelOver.RotationMatrix;
                mModelOverHighlight.ScaleX         = modelOver.ScaleX;
                mModelOverHighlight.ScaleY         = modelOver.ScaleY;
                mModelOverHighlight.ScaleZ         = modelOver.ScaleZ;
            }
            else if (cursor.TextsOver.Count != 0)
            {
                mObjectOverMarker.Visible = true;

                mObjectOverMarker.Position = cursor.TextsOver[0].Position;

                mObjectOverMarker.Position.X = cursor.TextsOver[0].HorizontalCenter;
                mObjectOverMarker.Position.Y = cursor.TextsOver[0].VerticalCenter;

                mObjectOverMarker.RotationMatrix = cursor.TextsOver[0].RotationMatrix;

                mObjectOverMarker.ScaleBy(cursor.TextsOver[0].ScaleX / polygonScaleX,
                                          cursor.TextsOver[0].ScaleY / polygonScaleY);
            }
            else
            {
                mObjectOverMarker.Visible = false;
            }
        }
示例#2
0
        static void UpdateSelectionUI()
        {
            #region Handle Text, Sprite, and SpriteFrame selection

            #region Get the number of objects needed
            int numberOfRectangles =
                GameData.EditorLogic.CurrentSprites.Count +
                GameData.EditorLogic.CurrentSpriteFrames.Count;// +
            //GameData.EditorLogic.CurrentTexts.Count;
            #endregion

            #region Create and destroy to get the number needed

            while (numberOfRectangles < mCurrentSelectionRectangles.Count)
            {
                mCurrentSelectionRectangles[0].Destroy();
            }
            while (numberOfRectangles > mCurrentSelectionRectangles.Count)
            {
                mCurrentSelectionRectangles.Add(new ScalableSelector());
            }
            #endregion


            int currentIndex = 0;

            foreach (Sprite sprite in GameData.EditorLogic.CurrentSprites)
            {
                mCurrentSelectionRectangles[currentIndex].UpdateToObject(sprite, SpriteManager.Camera);
                currentIndex++;
            }

            foreach (SpriteFrame spriteFrame in GameData.EditorLogic.CurrentSpriteFrames)
            {
                mCurrentSelectionRectangles[currentIndex].UpdateToObject(spriteFrame, SpriteManager.Camera);
                currentIndex++;
            }

            //foreach (Text text in GameData.EditorLogic.CurrentTexts)
            //{
            //    mCurrentSelectionRectangles[currentIndex].UpdateToObject(text, SpriteManager.Camera);
            //    currentIndex++;
            //}

            #endregion

            #region Handle PositionedModel selection

            mSelectedModelHighlight.Visible = GameData.EditorLogic.CurrentPositionedModels.Count > 0;

            if (mSelectedModelHighlight.Visible)
            {
                PositionedModel selectedModel = GameData.EditorLogic.CurrentPositionedModels[0];

                mSelectedModelHighlight.SetDataFrom(selectedModel);

                mSelectedModelHighlight.Position       = selectedModel.Position;
                mSelectedModelHighlight.RotationMatrix = selectedModel.RotationMatrix;
                mSelectedModelHighlight.ScaleX         = selectedModel.ScaleX;
                mSelectedModelHighlight.ScaleY         = selectedModel.ScaleY;
                mSelectedModelHighlight.ScaleZ         = selectedModel.ScaleZ;
            }


            #endregion
        }