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); }
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); } }
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); } }
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); } }
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; } }
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); } }
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); }
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); }