public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int angle = (int)(entity.attributesMap["angle"].ValueInt32); int length = (int)(entity.attributesMap["length"].ValueVar / 1.4); bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("ZipLine", d, 0, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; var frame2 = editorAnim.Frames[1]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); if (length != 0) { int[] processPoints = RotatePoints(x + length, y + length, x, y, -angle + 32); d.DrawLine(x, y, processPoints[0], processPoints[1], System.Drawing.Color.FromArgb(255, 49, 48, 115)); d.DrawLine(x, y - 1, processPoints[0], processPoints[1] - 1, System.Drawing.Color.FromArgb(255, 99, 97, 165)); d.DrawBitmap(frame2.Texture, processPoints[0] + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0) - 2, processPoints[1] + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0) - 1, frame2.Frame.Width, frame2.Frame.Height, false, Transparency); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; if (direction == 1) { flipv = true; } var editorAnim = e.LoadAnimation2("Clucker", d, 0, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim.Frames[1]; var frame3 = editorAnim.Frames[2]; d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (16) : -16), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame3.Frame.CenterY + (flipv ? (-4) : -16), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("FBZFan", d, 0, 0, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("FBZFan", d, 1, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("FBZFan", d, 2, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim.Frames.Count != 0 && editorAnim3 != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[e.index]; var frame3 = editorAnim3.Frames[e.index]; // e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); e.ProcessAnimation(frame2.Entry.FrameSpeed, frame2.Entry.Frames.Count, frame2.Frame.Duration); e.ProcessAnimation(frame3.Entry.FrameSpeed, frame3.Entry.Frames.Count, frame3.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX + (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width * 2) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX + (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width * 2) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX + (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width * 2) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var length = (short)(entity.attributesMap["length"].ValueUInt16); var orientation = entity.attributesMap["orientation"].ValueUInt8; if (orientation > 1) { orientation = 0; } var editorAnim = e.LoadAnimation2("BreakBar", d, orientation, -1, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frameTop = editorAnim.Frames[0]; var frameBase = editorAnim.Frames[1]; var frameBottom = editorAnim.Frames[2]; for (int i = -length / 2; i <= length / 2; ++i) { d.DrawBitmap(frameBase.Texture, x + frameBase.Frame.CenterX, y + frameBase.Frame.CenterY + i * frameBase.Frame.Height, frameBase.Frame.Width, frameBase.Frame.Height, false, Transparency); } d.DrawBitmap(frameTop.Texture, x + frameTop.Frame.CenterX, y + frameTop.Frame.CenterY - (length / 2 + 1) * frameBase.Frame.Height, frameTop.Frame.Width, frameTop.Frame.Height, false, Transparency); d.DrawBitmap(frameBottom.Texture, x + frameBottom.Frame.CenterX, y + frameBottom.Frame.CenterY + (length / 2 + 1) * frameBottom.Frame.Height, frameBottom.Frame.Width, frameBottom.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { //int type = (int)entity.attributesMap["type"].ValueUInt8; int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; if (direction == 1) { fliph = true; } var editorAnim = e.LoadAnimation2("Grabber", d, 0, -1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("Grabber", d, 1, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; var frame2 = editorAnim2.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); e.ProcessAnimation(frame2.Entry.FrameSpeed, frame2.Entry.Frames.Count, frame2.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - 2) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int letterID = (int)entity.attributesMap["letterID"].ValueUInt8; bool controller = entity.attributesMap["controller"].ValueBool; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("Letterboard", d, 0, -1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("Letterboard", d, 1, letterID - 1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[e.index]; //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); if (letterID == 0 || controller == true) { d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } else { d.DrawBitmap(frame2.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[letterID].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[letterID].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("WoodChipper", d, 0, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim.Frames[1]; var frame3 = editorAnim.Frames[2]; var frame4 = editorAnim.Frames[6]; //e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim.Frames[1].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim.Frames[1].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim.Frames[2].Frame.Width) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim.Frames[2].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); d.DrawBitmap(frame4.Texture, x + frame4.Frame.CenterX - (fliph ? (frame4.Frame.Width - editorAnim.Frames[6].Frame.Width) : 0), y + frame4.Frame.CenterY + (flipv ? (frame4.Frame.Height - editorAnim.Frames[6].Frame.Height) : 0), frame4.Frame.Width, frame4.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int type = (int)entity.attributesMap["type"].ValueVar; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("EggPrison", d, 0, -1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("EggPrison", d, 1, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("EggPrison", d, 2, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[0]; var frame3 = editorAnim3.Frames[0]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); } }
public void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; var mightyAnim = e.LoadAnimation2("SchrodingersCapsule", d, 3, -1, fliph, flipv, false); var rayAnim = e.LoadAnimation2("SchrodingersCapsule", d, 4, -1, fliph, flipv, false); if (mightyAnim != null && mightyAnim.Frames.Count != 0 && rayAnim != null && rayAnim.Frames.Count != 0) { var mightyFrame = mightyAnim.Frames[e.index]; var rayFrame = rayAnim.Frames[e.index]; //e.ProcessAnimation(rayFrame.Entry.FrameSpeed, rayFrame.Entry.Frames.Count, rayFrame.Frame.Duration); //e.ProcessAnimation(mightyFrame.Entry.FrameSpeed, mightyFrame.Entry.Frames.Count, mightyFrame.Frame.Duration); d.DrawBitmap(mightyFrame.Texture, x + mightyFrame.Frame.CenterX - (fliph ? (mightyFrame.Frame.Width - mightyAnim.Frames[0].Frame.Width) : 0) + 15, y + mightyFrame.Frame.CenterY + (flipv ? (mightyFrame.Frame.Height - mightyAnim.Frames[0].Frame.Height) : 0), mightyFrame.Frame.Width, mightyFrame.Frame.Height, false, Transparency); d.DrawBitmap(rayFrame.Texture, x + rayFrame.Frame.CenterX - (fliph ? (rayFrame.Frame.Width - rayAnim.Frames[0].Frame.Width) : 0) - 15, y + rayFrame.Frame.CenterY + (flipv ? (rayFrame.Frame.Height - rayAnim.Frames[0].Frame.Height) : 0), rayFrame.Frame.Width, rayFrame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; int height = (int)entity.attributesMap["height"].ValueUInt8; var editorAnim = e.LoadAnimation2("TwistedTubes", d, 0, 1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("TwistedTubes", d, 0, 0, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; var frame2 = editorAnim2.Frames[e.index]; //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame.Frame.Height, false, Transparency); for (int i = 0; i < height * 2; i++) { d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[1].Frame.Width) : 0), y + (i * 32) + frame.Frame.CenterY + 64 + (flipv ? (frame.Frame.Height - editorAnim.Frames[1].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var value = entity.attributesMap["type"]; int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; switch (direction) { case 0: break; case 1: flipv = true; break; default: break; } var editorAnimBox = e.LoadAnimation2("ItemBox", d, 0, 0, fliph, flipv, false); var editorAnimEffect = e.LoadAnimation2("ItemBox", d, 2, (int)value.ValueVar, fliph, flipv, false); if (editorAnimBox != null && editorAnimEffect != null && editorAnimEffect.Frames.Count != 0) { var frameBox = editorAnimBox.Frames[0]; var frameEffect = editorAnimEffect.Frames[0]; d.DrawBitmap(frameBox.Texture, x + frameBox.Frame.CenterX, y + frameBox.Frame.CenterY, frameBox.Frame.Width, frameBox.Frame.Height, false, Transparency); d.DrawBitmap(frameEffect.Texture, x + frameEffect.Frame.CenterX, y + frameEffect.Frame.CenterY - (flipv ? (-3) : 3), frameEffect.Frame.Width, frameEffect.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var type = entity.attributesMap["type"].ValueVar; var widthPixels = (int)(entity.attributesMap["size"].ValuePosition.X.High); var heightPixels = (int)(entity.attributesMap["size"].ValuePosition.Y.High); var width = (int)widthPixels / 16 - 1; var height = (int)heightPixels / 16 - 1; var editorAnim = e.LoadAnimation2("EditorAssets", d, 1, 1 + (int)type * 2, false, false, false); if (width != -1 && height != -1) { // draw inside // TODO this is really heavy on resources, so maybe switch to just drawing a rectangle?? for (int i = 0; i <= height; i++) { editorAnim = e.LoadAnimation2("EditorAssets", d, 1, 1 + (int)type * 2, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); bool wEven = width % 2 == 0; bool hEven = height % 2 == 0; for (int j = 0; j <= width; j++) { d.DrawBitmap(frame.Texture, (((width + 1) * 16) - widthPixels) / 2 + (x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + j) * frame.Frame.Width), y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + i) * frame.Frame.Height, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } // draw top and botton for (int i = 0; i < 2; i++) { bool bottom = !((i & 1) > 0); editorAnim = e.LoadAnimation2("EditorAssets", d, 1, (bottom ? 1 : 0) + (int)type * 2, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); bool wEven = width % 2 == 0; bool hEven = height % 2 == 0; for (int j = 0; j <= width; j++) { d.DrawBitmap(frame.Texture, (((width + 1) * 16) - widthPixels) / 2 + (x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + j) * frame.Frame.Width), (y + heightPixels / (bottom ? 2 : -2) - (bottom ? frame.Frame.Height : 0)), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } } }
public override void Draw(Structures.EntityRenderProp Properties) { DevicePanel d = Properties.Graphics; Classes.Scene.EditorEntity e = Properties.EditorObject; int x = Properties.DrawX; int y = Properties.DrawY; int Transparency = Properties.Transparency; var type = e.attributesMap["type"].ValueUInt8; var width = (int)(e.attributesMap["size"].ValueVector2.X.High) - 1; var height = (int)(e.attributesMap["size"].ValueVector2.Y.High) - 1; var Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "EditorAssets"); if (width != -1 && height != -1) { bool wEven = width % 2 == 0; bool hEven = height % 2 == 0; int x1 = (x + (wEven ? -8 : -16) + (-width / 2 + width) * 16) + 15; int x2 = (x + (wEven ? -8 : -16) + (-width / 2) * 16); int y1 = (y + (hEven ? -8 : -16) + (-height / 2 + height) * 16) + 15; int y2 = (y + (hEven ? -8 : -16) + (-height / 2) * 16); DrawBounds2(d, x1, y1, x2, y2, Transparency, SystemColors.White, SystemColors.Transparent); } bool knux = e.attributesMap["onlyKnux"].ValueBool; bool mighty = e.attributesMap.ContainsKey("onlyMighty") && e.attributesMap["onlyMighty"].ValueBool; // draw Knuckles icon if (knux) { Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "Global/HUD.bin"); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(2, 2))) { var frame = Animation.Animation.Animations[2].Frames[2]; d.DrawBitmap(Animation.Spritesheets.ElementAt(frame.SpriteSheet).Value, x - frame.Width / (mighty ? 1 : 2), y - frame.Height / 2, frame.X, frame.Y, frame.Width, frame.Height, false, Transparency); } } // draw Mighty icon if (mighty) { Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "Global/HUD.bin"); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(2, 3))) { var frame = Animation.Animation.Animations[2].Frames[3]; d.DrawBitmap(Animation.Spritesheets.ElementAt(frame.SpriteSheet).Value, x - (knux ? 0 : frame.Width / 2), y - frame.Height / 2, frame.X, frame.Y, frame.Width, frame.Height, false, Transparency); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int length = (int)entity.attributesMap["length"].ValueVar; int i = 0; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("Platform", d, 3, 0, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("Platform", d, 3, 1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("Platform", d, 3, 2, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[0]; var frame3 = editorAnim3.Frames[0]; int lengthMemory = length; //e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); int repeat = 0; int lengthLeft = length; bool finalLoop = false; int spritewidth = frame2.Frame.Height; int length_y = y - length; int start_y = y - length - 4; int chain_start_y = y - length - 4 + frame.Frame.Height; while (lengthLeft > spritewidth) { repeat++; lengthLeft = lengthLeft - spritewidth; } d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), chain_start_y - (i * spritewidth) + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, lengthMemory, false, Transparency); for (i = 1; i < repeat + 1; i++) { if (i == repeat) { finalLoop = true; } d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), chain_start_y + (i * spritewidth) + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, (finalLoop ? lengthLeft : frame2.Frame.Height), false, Transparency); } d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), start_y - (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX + (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var widthPixels = (int)(entity.attributesMap["size"].ValuePosition.X.High) * 2; var heightPixels = (int)(entity.attributesMap["size"].ValuePosition.Y.High) * 2; var width = (int)widthPixels / 16; var height = (int)heightPixels / 16; //Draw Icon var editorAnim = e.LoadAnimation2("EditorIcons2", d, 0, 5, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame2 = editorAnim.Frames[e.index]; d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX, y + frame2.Frame.CenterY, frame2.Frame.Width, frame2.Frame.Height, false, Transparency); editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, false, false, false); if (width != 0 && height != 0) { int x1 = x + widthPixels / -2; int x2 = x + widthPixels / 2 - 1; int y1 = y + heightPixels / -2; int y2 = y + heightPixels / 2 - 1; d.DrawLine(x1, y1, x1, y2, SystemColors.White); d.DrawLine(x1, y1, x2, y1, SystemColors.White); d.DrawLine(x2, y2, x1, y2, SystemColors.White); d.DrawLine(x2, y2, x2, y1, SystemColors.White); // draw corners for (int i = 0; i < 4; i++) { bool right = (i & 1) > 0; bool bottom = (i & 2) > 0; editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, right, bottom, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, (x + widthPixels / (right ? 2 : -2)) - (right ? frame.Frame.Width : 0), (y + heightPixels / (bottom ? 2 : -2) - (bottom ? frame.Frame.Height : 0)), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int type = (int)entity.attributesMap["type"].ValueVar; bool fliph = false; bool flipv = false; int animID = 0; if (type == 0 || type == 1) { animID = 0; } if (type == 2 || type == 3) { animID = 1; } if (type == 3) { fliph = true; } if (type == 1) { flipv = true; } var editorAnim = e.LoadAnimation2("Button", d, animID, -1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("Button", d, animID, 1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("Button", d, animID, 2, fliph, flipv, false); if (editorAnim2 != null && editorAnim2.Frames.Count != 0) { var frame2 = editorAnim2.Frames[e.index]; d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width - 7) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height - 7) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); } if (editorAnim3 != null && editorAnim3.Frames.Count != 0) { var frame3 = editorAnim3.Frames[e.index]; d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width - 7) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height - 7) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); } if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width + 9) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height + 9) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { const int LeftDist = 1, LeftPlane = 2, RightDist = 4, RightPlane = 8; var flags = (int)entity.attributesMap["flags"].ValueVar; var size = (int)(entity.attributesMap["size"].ValueVar) - 1; var angle = entity.attributesMap["angle"].ValueInt32; int frameDist = (flags & LeftDist) > 0 ? 1 : 0; int framePlane = (flags & LeftPlane) > 0 ? 2 : 0; var editorAnim = e.LoadAnimation2("PlaneSwitch", d, 0, frameDist + framePlane, false, false, false); const int pivotOffsetX = -8, pivotOffsetY = 0; const int drawOffsetX = 0, drawOffsetY = -8; if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); bool hEven = size % 2 == 0; for (int yy = 0; yy <= size; ++yy) { int[] drawCoords = RotatePoints( x - frame.Frame.Width, (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-size / 2 + yy) * frame.Frame.Height), x + pivotOffsetX, y + pivotOffsetY, angle); d.DrawBitmap(frame.Texture, drawCoords[0] + drawOffsetX, drawCoords[1] + drawOffsetY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } frameDist = (flags & RightDist) > 0 ? 1 : 0; framePlane = (flags & RightPlane) > 0 ? 2 : 0; editorAnim = e.LoadAnimation2("PlaneSwitch", d, 0, frameDist + framePlane, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); bool hEven = size % 2 == 0; for (int yy = 0; yy <= size; ++yy) { int[] drawCoords = RotatePoints( x, (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-size / 2 + yy) * frame.Frame.Height), x + pivotOffsetX, y + pivotOffsetY, angle); d.DrawBitmap(frame.Texture, drawCoords[0] + drawOffsetX, drawCoords[1] + drawOffsetY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } }
public override void Draw(Structures.EntityRenderProp Properties) { DevicePanel d = Properties.Graphics; Classes.Scene.EditorEntity e = Properties.EditorObject; int x = Properties.DrawX; int y = Properties.DrawY; int Transparency = Properties.Transparency; bool fliph = false; bool flipv = false; int type = (int)e.attributesMap["type"].ValueUInt8; if (type > 1) { type = 1; } var Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, GetSetupAnimation(), type, 0); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(type, 0))) { var Frame = Animation.Animation.Animations[type].Frames[0]; d.DrawBitmap(Animation.Spritesheets.ElementAt(Frame.SpriteSheet).Value, x + Frame.PivotX, y + Frame.PivotY, Frame.X, Frame.Y, Frame.Width, Frame.Height, false, Transparency); } bool knux = e.attributesMap["onlyKnux"].ValueBool; bool mighty = e.attributesMap.ContainsKey("onlyMighty") && e.attributesMap["onlyMighty"].ValueBool; // draw Knuckles icon if (knux) { Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "Global/HUD.bin"); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(2, 2))) { var frame = Animation.Animation.Animations[2].Frames[2]; d.DrawBitmap(Animation.Spritesheets.ElementAt(frame.SpriteSheet).Value, x - frame.Width / (mighty ? 1 : 2), y - frame.Height / 2, frame.X, frame.Y, frame.Width, frame.Height, false, Transparency); } } // draw Mighty icon if (mighty) { Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "Global/HUD.bin"); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(2, 3))) { var frame = Animation.Animation.Animations[2].Frames[3]; d.DrawBitmap(Animation.Spritesheets.ElementAt(frame.SpriteSheet).Value, x - (knux ? 0 : frame.Width / 2), y - frame.Height / 2, frame.X, frame.Y, frame.Width, frame.Height, false, Transparency); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("EditorIcons2", d, 0, 6, fliph, flipv, false); var width = (int)(entity.attributesMap["size"].ValuePosition.X.High * 2 - 1); var height = (int)(entity.attributesMap["size"].ValuePosition.Y.High * 2 - 1); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } if (width != -1 && height != -1) { bool wEven = width % 2 == 0; bool hEven = height % 2 == 0; int x1 = (x + (wEven ? -8 : -16) + (-width / 2 + width) * 16) + 15; int x2 = (x + (wEven ? -8 : -16) + (-width / 2) * 16); int y1 = (y + (hEven ? -8 : -16) + (-height / 2 + height) * 16) + 15; int y2 = (y + (hEven ? -8 : -16) + (-height / 2) * 16); d.DrawLine(x1, y1, x1, y2, SystemColors.White); d.DrawLine(x1, y1, x2, y1, SystemColors.White); d.DrawLine(x2, y2, x1, y2, SystemColors.White); d.DrawLine(x2, y2, x2, y1, SystemColors.White); // draw corners for (int i = 0; i < 4; i++) { bool right = (i & 1) > 0; bool bottom = (i & 2) > 0; editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, right, bottom, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; d.DrawBitmap(frame.Texture, (x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + (right ? width : 0)) * frame.Frame.Width), (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + (bottom ? height : 0)) * frame.Frame.Height), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { //int type = (int)entity.attributesMap["type"].ValueUInt8; //int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("CaterkillerJr", d, 0, -1, true, flipv, false); var editorAnim2 = e.LoadAnimation2("CaterkillerJr", d, 1, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("CaterkillerJr", d, 2, -1, fliph, flipv, false); var editorAnim4 = e.LoadAnimation2("CaterkillerJr", d, 3, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0 && editorAnim3 != null && editorAnim3.Frames.Count != 0 && editorAnim4 != null && editorAnim4.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[0]; var frame3 = editorAnim3.Frames[0]; var frame4 = editorAnim4.Frames[0]; //ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); for (int i = 0; i <= 6; i++) { if (i <= 3 && i >= 1) { d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX + (i * frame2.Frame.Width) + (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), y + frame2.Frame.CenterY + (flipv ? (frame2.Frame.Height - editorAnim2.Frames[0].Frame.Height) : 0), frame2.Frame.Width, frame2.Frame.Height, false, Transparency); } if (i == 4) { d.DrawBitmap(frame3.Texture, x + frame3.Frame.CenterX + (i * frame3.Frame.Width) + (frame2.Frame.Width - 5) + (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0), y + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); } if (i >= 5) { d.DrawBitmap(frame4.Texture, x + frame4.Frame.CenterX + (i * frame4.Frame.Width) + frame2.Frame.Width + frame3.Frame.Width + (fliph ? (frame4.Frame.Width - editorAnim4.Frames[0].Frame.Width) : 0), y + frame4.Frame.CenterY + (flipv ? (frame4.Frame.Height - editorAnim4.Frames[0].Frame.Height) : 0), frame4.Frame.Width, frame4.Frame.Height, false, Transparency); } } } }
private void DrawTileMap(DevicePanel d, int x, int y, int platform_x, int platform_y, int platform_width, int platform_height, int transparency) { if (ScatchLayer != null) { if (TileMap == null || TileMap != ScatchLayer.Tiles || TilesNeedUpdate || PlatformImage == null) { TilesNeedUpdate = false; if (PlatformImage != null) { PlatformImage.Dispose(); PlatformImage = null; } TileMap = ScatchLayer.Tiles; var bitmap = new System.Drawing.Bitmap(ScatchLayer.Width * Methods.Solution.SolutionConstants.TILE_SIZE, ScatchLayer.Height * Methods.Solution.SolutionConstants.TILE_SIZE); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); ScatchLayer.Draw(g); PlatformImage = Methods.Drawing.TextureCreator.FromBitmap(d._device, bitmap); g.Clear(System.Drawing.Color.Transparent); bitmap.Dispose(); g.Dispose(); } d.DrawBitmap(PlatformImage, x, y, platform_x, platform_y, platform_width, platform_height, false, transparency); } }
public override void Draw(Structures.EntityRenderProp Properties) { DevicePanel d = Properties.Graphics; Classes.Scene.EditorEntity e = Properties.EditorObject; int x = Properties.DrawX; int y = Properties.DrawY; int Transparency = Properties.Transparency; int animID = (int)e.attributesMap["type"].ValueEnum; var flipFlag = e.attributesMap["flipFlag"].ValueEnum; bool fliph = false; bool flipv = false; // Handle springs being flipped in both planes // Down if ((flipFlag & 0x02) == 0x02) { flipv = true; } // Left if ((flipFlag & 0x01) == 0x01) { fliph = true; } var Animation = Methods.Drawing.ObjectDrawing.LoadAnimation(d, "Global/Springs.bin"); if (EntityRenderer.IsValidated(Animation, new System.Tuple <int, int>(animID, 0))) { var frame = Animation.Animation.Animations[animID].Frames[0]; d.DrawBitmap(Animation.Spritesheets.ElementAt(frame.SpriteSheet).Value, x + frame.PivotX, y + frame.PivotY, frame.X, frame.Y, frame.Width, frame.Height, false, Transparency, fliph, flipv); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int letter = (int)entity.attributesMap["letter"].ValueUInt8; int duration = (int)entity.attributesMap["duration"].ValueUInt16; bool fliph = false; bool flipv = false; int frameID = 0; if (letter >= 11) { entity.attributesMap["letter"].ValueUInt8 = 11; } if (duration != 0) { frameID = 4; } var editorAnim = e.LoadAnimation2("PrintBlock", d, letter, frameID, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int animID = (int)entity.attributesMap["type"].ValueVar; var flipFlag = entity.attributesMap["flipFlag"].ValueVar; bool fliph = false; bool flipv = false; // Handle springs being flipped in both planes // Down if ((flipFlag & 0x02) == 0x02) { flipv = true; } // Left if ((flipFlag & 0x01) == 0x01) { fliph = true; } var editorAnim = e.LoadAnimation2("IceSpring", d, animID % 3, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0) { var frame = editorAnim.Frames[e.index]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; int type = (int)entity.attributesMap["type"].ValueVar; int frameID = 0; if (type == 2) { frameID = 3; } if (type == 1) { frameID = 1; } var editorAnim = e.LoadAnimation2("Missile", d, frameID, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX + (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width * 2) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int type = (int)entity.attributesMap["type"].ValueUInt8; bool fliph = false; bool flipv = false; int animID; if (type == 1) { animID = 1; } else { animID = 0; } var editorAnim = e.LoadAnimation2("Turntable", d, animID, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(1, 14, 2); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var width = (int)(entity.attributesMap["width"].ValueUInt8); var height = (int)(entity.attributesMap["height"].ValueUInt8); bool breakClimb = entity.attributesMap["breakClimb"].ValueBool; int type; if (breakClimb) { type = 9; } else { type = 6; } var editorAnim = e.LoadAnimation2("ItemBox", d, 2, type, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); bool wEven = width % 2 == 0; bool hEven = height % 2 == 0; for (int xx = 0; xx <= width; ++xx) { for (int yy = 0; yy <= height; ++yy) { d.DrawBitmap(frame.Texture, x + (wEven ? frame.Frame.CenterX : -frame.Frame.Width) + (-width / 2 + xx) * frame.Frame.Width, y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + yy) * frame.Frame.Height, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool hasSaw = entity.attributesMap["hasSaw"].ValueBool; bool fliph = false; bool flipv = false; int animID; if (direction == 2) { if (hasSaw) { animID = 4; } else { animID = 3; } } else if (direction == 3) { fliph = true; if (hasSaw) { animID = 4; } else { animID = 3; } } else { if (hasSaw) { animID = 1; } else { animID = 0; } } if (direction == 1) { flipv = true; } var editorAnim = e.LoadAnimation2("JuggleSaw", d, animID, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width + (hasSaw ? (38) : 16)) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height + (hasSaw ? (37) : 15)) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); } }
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 override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int type = (int)entity.attributesMap["type"].ValueVar; int speed = (int)entity.attributesMap["speed"].ValueVar; int angle = (int)entity.attributesMap["angle"].ValueInt32; int amplitudeX = (int)entity.attributesMap["amplitude"].ValuePosition.X.High; int amplitudeY = (int)entity.attributesMap["amplitude"].ValuePosition.Y.High; bool fliph = false; bool flipv = false; int animID = 0; var editorAnim = e.LoadAnimation2("CircleBumper", d, animID, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0) { var frame = editorAnim.Frames[e.index]; //e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); if (type == 2) { //Something is wrong here, wait untill I figure this out to define them //e.ProcessMovingPlatform(angle,speed); e.ProcessMovingPlatform(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 * e.angle / 128)); int newY = (int)(radiusInt * Math.Sin(Math.PI * e.angle / 128)); d.DrawBitmap(frame.Texture, (x + newX) + frame.Frame.CenterX, (y - newY) + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } else { d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } }