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) { 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 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(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(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { var editorAnim = e.LoadAnimation2("EditorIcons", d, 0, 5, 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); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, 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; var editorAnim2 = 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 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("Springs", d, animID % 6, -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) : 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) { 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 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 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) { bool fliph = false; bool flipv = false; int size = (int)entity.attributesMap["size"].ValueVar; var editorAnim = e.LoadAnimation2("Platform", d, 0, size + 3, 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); } bool knux = entity.attributesMap["onlyKnux"].ValueBool; bool mighty = entity.attributesMap.ContainsKey("onlyMighty") && entity.attributesMap["onlyMighty"].ValueBool; // draw Knuckles icon if (knux) { editorAnim = e.LoadAnimation2("HUD", d, 2, 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); d.DrawBitmap(frame.Texture, x - frame.Frame.Width / (mighty ? 1 : 2), y - frame.Frame.Height / 2, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } // draw Mighty icon if (mighty) { editorAnim = e.LoadAnimation2("HUD", d, 2, 3, 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); d.DrawBitmap(frame.Texture, x - (knux ? 0 : frame.Frame.Width / 2), y - frame.Frame.Height / 2, 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("Tubinaut", d, 0, 0, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("Tubinaut", d, 8, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("Tubinaut", d, 1, 0, fliph, flipv, false); var editorAnim4 = e.LoadAnimation2("Tubinaut", d, 2, 8, fliph, flipv, false); var editorAnim5 = e.LoadAnimation2("Tubinaut", d, 3, 12, fliph, flipv, false); var editorAnim6 = e.LoadAnimation2("Tubinaut", d, 0, 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 && editorAnim5 != null && editorAnim5.Frames.Count != 0 && editorAnim6 != null && editorAnim6.Frames.Count != 0) { var frame = editorAnim.Frames[0]; var frame2 = editorAnim2.Frames[e.index]; var frame3 = editorAnim4.Frames[0]; var frame4 = editorAnim3.Frames[0]; var frame5 = editorAnim5.Frames[0]; var frame6 = editorAnim6.Frames[0]; e.ProcessAnimation(frame2.Entry.FrameSpeed, frame2.Entry.Frames.Count, frame2.Frame.Duration); if (Editor.Instance.ShowAnimations.Checked == true && Properties.EditorState.Default.annimationsChecked) { d.DrawBitmap(frame6.Texture, x + frame6.Frame.CenterX - (fliph ? (frame6.Frame.Width - editorAnim6.Frames[0].Frame.Width) : 0), y + frame6.Frame.CenterY + (flipv ? (frame6.Frame.Height - editorAnim6.Frames[0].Frame.Height) : 0), frame6.Frame.Width, frame6.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); } else { 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(frame3.Texture, x + 16 + frame3.Frame.CenterX - (fliph ? (frame3.Frame.Width - editorAnim3.Frames[0].Frame.Width) : 0), y + 16 + frame3.Frame.CenterY + (flipv ? (frame3.Frame.Height - editorAnim3.Frames[0].Frame.Height) : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); d.DrawBitmap(frame4.Texture, x - 16 + frame4.Frame.CenterX - (fliph ? (frame4.Frame.Width - editorAnim4.Frames[0].Frame.Width) : 0), y + 16 + frame4.Frame.CenterY + (flipv ? (frame4.Frame.Height - editorAnim4.Frames[0].Frame.Height) : 0), frame4.Frame.Width, frame4.Frame.Height, false, Transparency); d.DrawBitmap(frame5.Texture, x + frame5.Frame.CenterX - (fliph ? (frame5.Frame.Width - editorAnim5.Frames[0].Frame.Width) : 0), y - 24 + frame5.Frame.CenterY + (flipv ? (frame5.Frame.Height - editorAnim5.Frames[0].Frame.Height) : 0), frame5.Frame.Width, frame5.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; int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; int animID = 0; switch (type) { case 0: animID = 0; break; case 1: animID = 1; break; case 2: animID = 2; break; case 3: animID = 3; break; } switch (direction) { case 0: break; case 1: flipv = true; break; default: break; } var editorAnim = e.LoadAnimation2("TwistingDoor", 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 + 10) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height + 10) : 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 editorAnim = e.LoadAnimation2("EditorIcons", d, 0, 0, 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); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, 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 length = (int)(entity.attributesMap["length"].ValueUInt32); var editorAnim = e.LoadAnimation2("WaterGush", d, 0, -1, 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); for (int i = -length + 1; i <= 0; ++i) { d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY + i * 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) { var type = entity.attributesMap["type"].ValueUInt8; var editorAnim = e.LoadAnimation2("Decoration", d, type, -1, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { if (e.index >= editorAnim.Frames.Count) { e.index = 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, y + frame.Frame.CenterY, 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 editorAnim = e.LoadAnimation2("SignPost", d, 0, -1, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; e.ProcessAnimation(1, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } if (Properties.Settings.Default.UsePrePlusOffsets) { editorAnim = e.LoadAnimation2("SignPost", d, 4, -1, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { for (int i = 0; i < editorAnim.Frames.Count; ++i) { if (i == 1) { continue; } var frame = editorAnim.Frames[i]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } else { editorAnim = e.LoadAnimation2("SignPost", d, 6, -1, false, false, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { for (int i = 0; i < editorAnim.Frames.Count; ++i) { if (i == 1) { continue; } var frame = editorAnim.Frames[i]; d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, 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 charge = entity.attributesMap["charge"].ValueBool; bool fliph = false; bool flipv = false; int animID; if (type == 1) { if (charge == true) { animID = 3; } else { animID = 1; } } else { animID = 0; } if (direction == 1) { fliph = true; } if (direction == 1) { fliph = true; } var editorAnim = e.LoadAnimation2("Chopper", 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) : 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.LoadAnimation("SuperSpecialRing", d, 0, -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) : 0), y + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.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 editorAnimGlass = e.LoadAnimation2("SchrodingersCapsule", d, 2, -1, fliph, flipv, false); if (editorAnimGlass != null && editorAnimGlass.Frames.Count != 0) { var glassFrame = editorAnimGlass.Frames[e.index]; e.ProcessAnimation(glassFrame.Entry.FrameSpeed, glassFrame.Entry.Frames.Count, glassFrame.Frame.Duration); d.DrawBitmap(glassFrame.Texture, x + glassFrame.Frame.CenterX - (fliph ? (glassFrame.Frame.Width - editorAnimGlass.Frames[0].Frame.Width) : 0), y + glassFrame.Frame.CenterY + (flipv ? (glassFrame.Frame.Height - editorAnimGlass.Frames[0].Frame.Height) : 0), glassFrame.Frame.Width, glassFrame.Frame.Height, false, 50); } }
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; int frameID; if (type == 2) { animID = 2; frameID = -1; } else { animID = 0; frameID = 0; } var editorAnim = e.LoadAnimation2("CableWarp", d, animID, frameID, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("PlaneSwitch", d, 0, 5, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0 && editorAnim2 != null && editorAnim2.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; var frame2 = editorAnim2.Frames[0]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); if (type != 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); } else { 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); } } }
public override void Draw(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { int frameType = (int)entity.attributesMap["frame"].ValueUInt8; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("SpikeLog", d, 0, -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, frameType * 4); 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 size = (int)(entity.attributesMap["size"].ValueVar) - 1; int angle = 0; var direction = (int)entity.attributesMap["direction"].ValueUInt8; switch (direction) { case 1: angle = 64; break; case 2: angle = 128; break; case 3: angle = 192; break; } var editorAnim = e.LoadAnimation2("PlaneSwitch", d, 0, 4, true, 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 / 2, (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(DevicePanel d, SceneEntity entity, EditorEntity e, int x, int y, int Transparency) { bool fliph = false; bool flipv = false; int dir = entity.attributesMap["dir"].ValueUInt8; int frameID = 0; switch (dir) { case 1: fliph = true; frameID = 4; break; } var editorAnim = e.LoadAnimation2("IceBomba", d, 0, 0, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("IceBomba", d, 1, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("IceBomba", d, 2, frameID, 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[e.index]; var frame3 = editorAnim3.Frames[0]; e.ProcessAnimation(frame2.Entry.FrameSpeed, frame2.Entry.Frames.Count, frame2.Frame.Duration); d.DrawBitmap(frame3.Texture, x - 5 + frame.Frame.CenterX - (fliph ? 6 : 0), y + 10 + (flipv ? 0 : 0), frame3.Frame.Width, frame3.Frame.Height, false, Transparency); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? 6 : 0), y + frame2.Frame.CenterY, 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 length = (int)entity.attributesMap["length"].ValueVar; int angle = (int)entity.attributesMap["angle"].ValueVar; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("PaperRoller", d, 0, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[e.index]; int[] newPos = RotatePoints(x - (length / 2), y, x, y, -angle); int[] newPos2 = RotatePoints(x + (length / 2), y, x, y, -angle); int[] newPosAngle = RotatePoints(newPos[0] - 23, newPos[1], newPos[0], newPos[1], -angle + 64); int[] newPosAngle2 = RotatePoints(newPos[0] + 24, newPos[1], newPos[0], newPos[1], -angle + 64); int[] newPos2Angle = RotatePoints(newPos2[0] - 23, newPos2[1], newPos2[0], newPos2[1], -angle + 64); int[] newPos2Angle2 = RotatePoints(newPos2[0] + 24, newPos2[1], newPos2[0], newPos2[1], -angle + 64); e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, newPos[0] + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), newPos[1] + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); d.DrawBitmap(frame.Texture, newPos2[0] + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), newPos2[1] + frame.Frame.CenterY + (flipv ? (frame.Frame.Height - editorAnim.Frames[0].Frame.Height) : 0), frame.Frame.Width, frame.Frame.Height, false, Transparency); if (length >= 1) { d.DrawLine(newPosAngle[0], newPosAngle[1], newPos2Angle[0], newPos2Angle[1], System.Drawing.Color.LightGray); d.DrawLine(newPosAngle2[0], newPosAngle2[1], newPos2Angle2[0], newPos2Angle2[1], System.Drawing.Color.LightGray); } } }
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("RockemSockem", d, 0, -1, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("RockemSockem", d, 1, -1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("RockemSockem", 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[e.index]; 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) : 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++) { d.DrawBitmap(frame2.Texture, x + frame2.Frame.CenterX - (fliph ? (frame2.Frame.Width - editorAnim2.Frames[0].Frame.Width) : 0), y - 8 - (i * 4) + 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 - 44 + 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) { int direction = (int)entity.attributesMap["direction"].ValueUInt8; bool fliph = false; bool flipv = false; if (direction == 1) { fliph = true; } var editorAnim = e.LoadAnimation2("Platform", d, 1, 4, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0) { var frame = editorAnim.Frames[0]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); d.DrawBitmap(frame.Texture, x + frame.Frame.CenterX, y + frame.Frame.CenterY, 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 size = (int)entity.attributesMap["size"].ValueVar; bool fliph = false; bool flipv = false; var editorAnim = e.LoadAnimation2("DirectorChair", d, 1, 0, fliph, flipv, false); var editorAnim2 = e.LoadAnimation2("DirectorChair", d, 1, 1, fliph, flipv, false); var editorAnim3 = e.LoadAnimation2("DirectorChair", d, 1, 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[e.index]; var frame2 = editorAnim2.Frames[e.index]; var frame3 = editorAnim3.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) : 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(frame.Texture, x + frame.Frame.CenterX - (fliph ? (frame.Frame.Width - editorAnim.Frames[0].Frame.Width) : 0), y - (size * 5 + 8) + 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 - (size * 5 + 8) + 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 - (size * 5 + 8) + 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) { int type = (int)entity.attributesMap["type"].ValueVar; int moveType = (int)entity.attributesMap["moveType"].ValueVar; int angle = (int)entity.attributesMap["angle"].ValueInt32; bool fliph = false; bool flipv = false; int amplitudeX = (int)entity.attributesMap["amplitude"].ValuePosition.X.High; int amplitudeY = (int)entity.attributesMap["amplitude"].ValuePosition.Y.High; int angleStateX = 0; int angleStateY = 0; int animID; switch (type) { case 0: animID = 0; break; case 1: animID = 1; break; case 2: animID = 2; break; default: animID = 0; break; } var editorAnim = e.LoadAnimation2("Ring", d, animID, -1, fliph, flipv, false); if (editorAnim != null && editorAnim.Frames.Count != 0 && animID >= 0) { var frame = editorAnim.Frames[0]; if (moveType != 2) { e.ProcessMovingPlatform(angle); angle = e.angle; } if (type != 2) { frame = editorAnim.Frames[e.index]; e.ProcessAnimation(frame.Entry.FrameSpeed, frame.Entry.Frames.Count, frame.Frame.Duration); } 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.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 + (angleStateX), y + frame.Frame.CenterY - (angleStateY), 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 widthPixels = (int)(entity.attributesMap["size"].ValuePosition.X.High); var heightPixels = (int)(entity.attributesMap["size"].ValuePosition.Y.High); var width = (int)widthPixels / 16; var height = (int)heightPixels / 16; var editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 0, false, false, false); if (width != 0 && height != 0) { // 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); } } // draw top and bottom for (int i = 0; i < 2; i++) { bool bottom = (i & 1) > 0; editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 1, false, 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); bool wEven = width % 2 == 0; for (int j = 1; j < width; j++) { d.DrawBitmap(frame.Texture, (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); } } } // draw sides for (int i = 0; i < 2; i++) { bool right = (i & 1) > 0; editorAnim = e.LoadAnimation2("EditorAssets", d, 0, 2, right, 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 = height % 2 == 0; for (int j = 1; j < height; j++) { d.DrawBitmap(frame.Texture, (x + widthPixels / (right ? 2 : -2)) - (right ? frame.Frame.Width : 0), (y + (hEven ? frame.Frame.CenterY : -frame.Frame.Height) + (-height / 2 + j) * frame.Frame.Height), frame.Frame.Width, frame.Frame.Height, false, Transparency); } } } } }