Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawPlayer_RenderAllLayersSlow()

static void Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_RenderAllLayersSlow ( ref PlayerDrawSet drawinfo)
inlinestatic

Definition at line 3566 of file PlayerDrawLayers.cs.

3567 {
3568 int num = -1;
3569 List<DrawData> drawDataCache = drawinfo.DrawDataCache;
3570 Effect pixelShader = Main.pixelShader;
3571 Projectile[] projectile = Main.projectile;
3572 SpriteBatch spriteBatch = Main.spriteBatch;
3573 for (int i = 0; i <= drawDataCache.Count; i++)
3574 {
3575 if (drawinfo.projectileDrawPosition == i)
3576 {
3577 if (!ProjectileID.Sets.HeldProjDoesNotUsePlayerGfxOffY[projectile[drawinfo.drawPlayer.heldProj].type])
3578 {
3579 projectile[drawinfo.drawPlayer.heldProj].gfxOffY = drawinfo.drawPlayer.gfxOffY;
3580 }
3581 if (num != 0)
3582 {
3583 pixelShader.CurrentTechnique.Passes[0].Apply();
3584 num = 0;
3585 }
3586 try
3587 {
3588 Main.instance.DrawProj(drawinfo.drawPlayer.heldProj);
3589 }
3590 catch
3591 {
3592 projectile[drawinfo.drawPlayer.heldProj].active = false;
3593 }
3594 }
3595 if (i != drawDataCache.Count)
3596 {
3597 DrawData cdd = drawDataCache[i];
3598 if (!cdd.sourceRect.HasValue)
3599 {
3600 cdd.sourceRect = cdd.texture.Frame();
3601 }
3602 PlayerDrawHelper.SetShaderForData(drawinfo.drawPlayer, drawinfo.cHead, ref cdd);
3603 num = cdd.shader;
3604 if (cdd.texture != null)
3605 {
3606 cdd.Draw(spriteBatch);
3607 }
3608 }
3609 }
3610 pixelShader.CurrentTechnique.Passes[0].Apply();
3611 }
unsafe EffectTechnique CurrentTechnique
Definition Effect.cs:34
static bool[] HeldProjDoesNotUsePlayerGfxOffY

References Terraria.Entity.active, System.Collections.Generic.Dictionary< TKey, TValue >.Count, Microsoft.Xna.Framework.Graphics.Effect.CurrentTechnique, Terraria.Projectile.gfxOffY, Terraria.ID.ProjectileID.Sets.HeldProjDoesNotUsePlayerGfxOffY, Terraria.Main.instance, Microsoft.Xna.Framework.Graphics.EffectTechnique.Passes, Terraria.Main.pixelShader, Terraria.Main.projectile, Terraria.DataStructures.PlayerDrawHelper.SetShaderForData(), Terraria.Main.spriteBatch, and Terraria.Projectile.type.