Exemple #1
0
        public static bool IsValidated(Methods.Drawing.ObjectDrawing.EditorAnimation Animation, Tuple <int, int> AnimPos = null)
        {
            if (Animation != null)
            {
                if (Animation.Animation != null)
                {
                    if (AnimPos != null)
                    {
                        int AnimID = AnimPos.Item1, FrameID = AnimPos.Item2;

                        if (AnimID >= 0 && Animation.Animation.Animations.Count - 1 >= AnimID)
                        {
                            if (FrameID >= 0 && Animation.Animation.Animations[AnimID].Frames.Count - 1 >= FrameID)
                            {
                                if (Animation.Animation.Animations[AnimID].Frames[FrameID].SpriteSheet <= Animation.Animation.SpriteSheets.Count - 1)
                                {
                                    if (Animation.Animation.Animations[AnimID].Frames[FrameID].SpriteSheet <= Animation.Spritesheets.Count - 1)
                                    {
                                        return(true);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            return(false);
        }
Exemple #2
0
 public void DrawTexturePivotNormalCustom(DevicePanel Graphics, Methods.Drawing.ObjectDrawing.EditorAnimation Animation, int AnimID, int FrameID, int x, int y, int Transparency, int height, bool FlipH = false, bool FlipV = false, int rotation = 0, System.Drawing.Color?color = null)
 {
     if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(AnimID, FrameID)))
     {
         var Frame = Animation.Animation.Animations[AnimID].Frames[FrameID];
         Graphics.DrawBitmap(Animation.Spritesheets.ElementAt(Frame.SpriteSheet).Value, x + Frame.PivotX, y + Frame.PivotY, Frame.X, Frame.Y, Frame.Width, height, false, Transparency, FlipH, FlipV, rotation, color);
     }
 }
Exemple #3
0
 public static void DrawTexturePivotLengthLimit(DevicePanel Graphics, Methods.Drawing.ObjectDrawing.EditorAnimation Animation, int AnimID, int FrameID, int x, int y, int Transparency, int Height)
 {
     if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(AnimID, FrameID)))
     {
         var Frame = Animation.Animation.Animations[AnimID].Frames[FrameID];
         Graphics.DrawBitmap(Animation.Spritesheets.ElementAt(Frame.SpriteSheet).Value, x + Frame.PivotX, y, Frame.X, Frame.Y, Frame.Width, Height, false, Transparency);
     }
 }
Exemple #4
0
        private void DrawAngle3(DevicePanel d, Methods.Drawing.ObjectDrawing.EditorAnimation Frame, int x, int y, int Transparency, bool fliph, bool flipv, int value)
        {
            bool wEven = value % 2 == 0;

            for (int xx = 0; xx <= value; ++xx)
            {
                int posX = x + (wEven ? Frame.RequestedFrame.PivotX : -Frame.RequestedFrame.Width) + (-value / 2 + xx) * (Frame.RequestedFrame.Width);
                int posY = y + (wEven ? Frame.RequestedFrame.PivotY : -Frame.RequestedFrame.Height) + (-value / 2 + xx) * (Frame.RequestedFrame.Height);
                DrawTexture(d, Frame, Frame.RequestedAnimID, Frame.RequestedFrameID, posX, posY, Transparency, fliph, flipv);
            }
        }
Exemple #5
0
        public static void DrawHitbox(DevicePanel Graphics, Methods.Drawing.ObjectDrawing.EditorAnimation Animation, string HitboxName, System.Drawing.Color color, int AnimID, int FrameID, int x, int y, int Transparency, bool FlipH = false, bool FlipV = false, int rotation = 0)
        {
            if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(AnimID, FrameID)))
            {
                var Frame = Animation.Animation.Animations[AnimID].Frames[FrameID];

                if (Animation.Animation.CollisionBoxes.Contains(HitboxName))
                {
                    int hitboxIndex = Animation.Animation.CollisionBoxes.IndexOf(HitboxName);
                    int x1          = x + (int)Frame.HitBoxes[hitboxIndex].Left;
                    int y1          = y + (int)Frame.HitBoxes[hitboxIndex].Bottom;
                    int x2          = x + (int)Frame.HitBoxes[hitboxIndex].Right;
                    int y2          = y + (int)Frame.HitBoxes[hitboxIndex].Top;

                    Graphics.DrawRectangle(x1, y1, x2, y2, color);
                }
            }
        }
 private void UpdateRealAttributeFrameID(Methods.Drawing.ObjectDrawing.EditorAnimation Animation, int AttributeFrameID)
 {
     if (Animation.Animation != null)
     {
         var frames = Animation.Animation.Animations.Take <Animation.AnimationEntry>(Animation.Animation.Animations.Count).SelectMany(x => x.Frames).ToList();
         if (frames.Count - 1 > AttributeFrameID && AttributeFrameID >= 0)
         {
             var element = frames.ElementAt(AttributeFrameID);
             RealAnimID  = Animation.Animation.Animations.IndexOf(Animation.Animation.Animations.Where(x => x.Frames.Contains(element)).FirstOrDefault());
             RealFrameID = Animation.Animation.Animations[RealAnimID].Frames.IndexOf(element);
         }
         else
         {
             RealAnimID  = 0;
             RealFrameID = 0;
         }
         LastFrameIDAttribute = AttributeFrameID;
     }
 }
Exemple #7
0
        private void DrawCircleBumperNormal(DevicePanel d, Methods.Drawing.ObjectDrawing.EditorAnimation Animation, int x, int y, int Transparency, int amplitudeX, int amplitudeY, int angle)
        {
            if ((amplitudeX != 0 || amplitudeY != 0))
            {
                double xd        = x;
                double yd        = y;
                double x2        = x + amplitudeX - amplitudeX / 3.7;
                double y2        = y + amplitudeY - amplitudeY / 3.7;
                double radius    = Math.Pow(x2 - xd, 2) + Math.Pow(y2 - yd, 2);
                int    radiusInt = (int)Math.Sqrt(radius);
                int    newX      = (int)(radiusInt * Math.Cos(Math.PI * angle / 128));
                int    newY      = (int)(radiusInt * Math.Sin(Math.PI * angle / 128));

                d.DrawLine(x, y, x + newX, y - newY, System.Drawing.Color.Yellow, 3);
                d.DrawEllipse(x, y, amplitudeX, amplitudeY, System.Drawing.Color.White, 2);

                DrawTexturePivotNormal(d, Animation, Animation.RequestedAnimID, Animation.RequestedFrameID, (x + newX), (y - newY), Transparency);
            }
            else
            {
                DrawTexturePivotNormal(d, Animation, Animation.RequestedAnimID, Animation.RequestedFrameID, x, y, Transparency);
            }
        }
Exemple #8
0
        private void DrawCircleBumperAlt(DevicePanel d, Methods.Drawing.ObjectDrawing.EditorAnimation Animation, int x, int y, int Transparency, int amplitudeX, int amplitudeY, int angle)
        {
            int[] position = new int[2] {
                0, 0
            };
            int posX = amplitudeX;
            int posY = amplitudeY;

            //Negative Values only work atm
            if (amplitudeX <= -1)
            {
                posX = -posX;
            }
            if (amplitudeY <= -1)
            {
                posY = -posY;
            }

            position = new int[2] {
                posX, posY
            };

            DrawTexturePivotNormal(d, Animation, Animation.RequestedAnimID, Animation.RequestedFrameID, (x + position[0]), (y - position[0]), Transparency);
        }
Exemple #9
0
 private void DrawDefault(DevicePanel d, Methods.Drawing.ObjectDrawing.EditorAnimation Frame, int x, int y, int Transparency, bool fliph, bool flipv)
 {
     DrawTexturePivotNormal(d, Frame, Frame.RequestedAnimID, Frame.RequestedFrameID, x, y, Transparency, fliph, flipv);
 }