Exemple #1
0
        private void DrawAdditive(On.Terraria.Main.orig_DrawDust orig, Main self)
        {
            Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive);

            foreach (var projectile in Main.projectile)
            {
                var modProjectile = projectile.modProjectile;

                if (modProjectile is IDrawAdditive && projectile.active)
                {
                    (modProjectile as IDrawAdditive).DrawAdditive(Main.spriteBatch);
                }
            }

            foreach (var npc in Main.npc)
            {
                var modNPC = npc.modNPC;

                if (modNPC is IDrawAdditive && npc.active)
                {
                    (modNPC as IDrawAdditive).DrawAdditive(Main.spriteBatch);
                }
            }

            Main.spriteBatch.End();

            orig(self);
        }
        private void DrawPrimitives(On.Terraria.Main.orig_DrawDust orig, Main self)
        {
            orig(self);

            if (Main.gameMenu)
            {
                return;
            }

            Main.graphics.GraphicsDevice.BlendState = BlendState.AlphaBlend;

            for (int k = 0; k < Main.maxProjectiles; k++) // Projectiles.
            {
                if (Main.projectile[k].active && Main.projectile[k].modProjectile is IDrawPrimitive)
                {
                    (Main.projectile[k].modProjectile as IDrawPrimitive).DrawPrimitives();
                }
            }

            for (int k = 0; k < Main.maxNPCs; k++) // NPCs.
            {
                if (Main.npc[k].active && Main.npc[k].modNPC is IDrawPrimitive)
                {
                    (Main.npc[k].modNPC as IDrawPrimitive).DrawPrimitives();
                }
            }
        }
        //Borrowed because I know what this code does and I'm too lazy to re-write it myself, bleh
        static private void Main_DrawAdditive(On.Terraria.Main.orig_DrawDust orig, Main self)
        {
            orig(self);

            if (SGAConfigClient.Instance.SpecialBlending == false)
            {
                return;
            }

            Main.spriteBatch.Begin(default, BlendState.Additive, SamplerState.PointWrap, default, default, default, Main.GameViewMatrix.TransformationMatrix);
Exemple #4
0
        private void DrawParticles(On.Terraria.Main.orig_DrawDust orig, Main self)
        {
            Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive);

            if (!Main.dedServ)
            {
                ParticleManager.Instance.DrawParticles(Main.spriteBatch);
            }

            Main.spriteBatch.End();

            orig(self);
        }
        private static void On_Terraria_Main_DrawDust(On.Terraria.Main.orig_DrawDust orig, Main self)
        {
            orig(self);

            Main.spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.Additive, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.GameViewMatrix.TransformationMatrix);
            {
                foreach (var proj in Main.projectile.ToList().FindAll(i => i.active && i.modProjectile is IDrawAdditive))
                {
                    try
                    {
                        (proj.modProjectile as IDrawAdditive).DrawAdditive(Main.spriteBatch);
                    }
                    catch (Exception e)
                    {
                        TimeLogger.DrawException(e);
                        proj.active = false;
                    }
                }
            }
            Main.spriteBatch.End();
        }
 private void DrawAdditive(On.Terraria.Main.orig_DrawDust orig, Main self)
 {
     orig(self);
     Main.spriteBatch.Begin(default, BlendState.Additive, SamplerState.PointWrap, default, default, default, Main.GameViewMatrix.ZoomMatrix);
Exemple #7
0
 private static void AddtiveCalls(On.Terraria.Main.orig_DrawDust orig, Main self)
 {
     AdditiveCallManager.DrawAdditiveCalls(Main.spriteBatch);
     orig(self);
 }