예제 #1
0
 public override void Draw()
 {
     if (Assertions.Invisible == false)
     {
         base.Draw();
     }
     else
     {
         AfterImages.Draw();
     }
 }
예제 #2
0
        public virtual void Draw()
        {
            AfterImages.Draw();

            var currentelement = AnimationManager.CurrentElement;

            if (currentelement == null)
            {
                return;
            }

            var sprite = SpriteManager.GetSprite(currentelement.SpriteId);

            if (sprite == null)
            {
                return;
            }

            var drawlocation = GetDrawLocation();
            var drawoffset   = Misc.GetOffset(Vector2.Zero, CurrentFacing, currentelement.Offset);

            SpriteManager.OverridePalette = CurrentPalette;

            var drawscale = CurrentScale;

            if (this is Character)
            {
                drawscale *= (this as Character).DrawScale;
            }

            var drawstate = SpriteManager.SetupDrawing(currentelement.SpriteId, drawlocation, drawoffset, drawscale, GetDrawFlip());

            drawstate.Blending = Transparency == new Blending() ? currentelement.Blending : Transparency;
            drawstate.Rotation = AngleDraw ? Misc.FaceScalar(CurrentFacing, -DrawingAngle) : 0;

            PaletteFx.SetShader(drawstate.ShaderParameters);

            drawstate.Use();
        }