protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            var drawDataInfo = GetData(drawInfo);
            var drawPlayer   = drawInfo.drawPlayer;
            var effects      = SpriteEffects.None;

            if (drawPlayer.direction == -1)
            {
                effects |= SpriteEffects.FlipHorizontally;
            }
            if (drawPlayer.gravDir == -1)
            {
                effects |= SpriteEffects.FlipVertically;
            }

            var data = new DrawData(
                drawDataInfo.Texture,
                drawDataInfo.Position,
                drawDataInfo.Frame,
                Color.White * Main.essScale,
                drawDataInfo.Rotation,
                drawDataInfo.Origin,
                1f,
                effects,
                0
                );

            drawInfo.DrawDataCache.Add(data);
        }
예제 #2
0
        public override void HideDrawLayers(PlayerDrawSet drawInfo)
        {
            base.HideDrawLayers(drawInfo);

            if (WolfDashing) //dont draw player during dash
            {
                drawInfo.DrawDataCache.Clear();
            }

            //HashSet<int> layersToRemove = new HashSet<int>();
            //for (int i = 0; i < drawInfo.DrawDataCache.Count; i++)
            //{
            //    if (JojoTheGamer && drawInfo.DrawDataCache[i] == PlayerLayer.Skin)
            //    {
            //        layersToRemove.Add(i);
            //    }
            //}
            //foreach (int i in layersToRemove)
            //{
            //    drawInfo.DrawDataCache.RemoveAt(i);
            //}

            //alternative for jojo changes? idk
            //Terraria.DataStructures.PlayerDrawLayers.Skin.Hide();
        }
        protected override DrawDataInfo GetData(PlayerDrawSet info)
        {
            glowTextureMale   = glowTextureMale ?? ModContent.GetTexture(ModularTools.TexturePath + "Armor/ModularArmor_Glow_Male");
            glowTextureFemale = glowTextureFemale ?? ModContent.GetTexture(ModularTools.TexturePath + "Armor/ModularArmor_Glow_Female");

            return(GetBodyDrawDataInfo(info, info.drawPlayer.Male ? glowTextureMale.Value : glowTextureFemale.Value));
        }
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            ClickerPlayer modPlayer = drawPlayer.GetModPlayer <ClickerPlayer>();

            float   alpha   = modPlayer.ClickerRadiusColorMultiplier;
            int     drawX   = (int)(drawPlayer.Center.X - Main.screenPosition.X);
            int     drawY   = (int)(drawPlayer.Center.Y + drawPlayer.gfxOffY - Main.screenPosition.Y);
            Vector2 center  = new Vector2(drawX, drawY);
            Vector2 drawPos = center + modPlayer.CalculateMotherboardPosition(modPlayer.ClickerRadiusRealDraw).Floor();

            Texture2D texture  = backTexture.Value;
            DrawData  drawData = new DrawData(texture, drawPos, null, Color.White * alpha, 0f, texture.Size() / 2, 1f, SpriteEffects.None, 0)
            {
                ignorePlayerRotation = true
            };

            drawInfo.DrawDataCache.Add(drawData);

            texture = glowTexture.Value;
            Rectangle frame = texture.Frame(1, GlowFrameCount, frameY: modPlayer.setMotherboardFrame);

            drawData = new DrawData(texture, drawPos, frame, new Color(255, 255, 255, 100) * modPlayer.setMotherboardAlpha * alpha, 0f, new Vector2(texture.Width / 2, frame.Height / 2), 1f, SpriteEffects.None, 0)
            {
                ignorePlayerRotation = true
            };
            drawInfo.DrawDataCache.Add(drawData);
        }
예제 #5
0
        //public override void ModifyDrawHeadLayers(List<PlayerHeadLayer> layers) {
        //	// TODO
        //}

        public override void HideDrawLayers(PlayerDrawSet drawInfo)
        {
            var layers = PlayerDrawLayerHooks.Layers;

            //var layers = PlayerDrawLayerHooks.GetDrawLayers(drawInfo);

            PlayerLayerTool.playerLayerUI.InformLayers(layers.ToList());

            if (PlayerLayerTool.playerLayerUI.updateNeeded)
            {
                return;
            }

            foreach (PlayerDrawLayer layer in layers)
            {
                if (PlayerLayerTool.playerLayerUI.playerLayers.Contains(layer))
                {
                    var layerIndex = PlayerLayerTool.playerLayerUI.playerLayers.IndexOf(layer);
                    var selected   = PlayerLayerTool.playerLayerUI.playerLayersCheckboxes[layerIndex].Selected;

                    if (!selected)
                    {
                        layer.Hide();
                    }
                }
            }
        }
예제 #6
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            //if (drawInfo.drawPlayer.mount.Active) return;

            //Main.NewText(Convert.ToString(drawInfo.drawPlayer.mount.PlayerHeadOffset),Color.Yellow);
            if (drawInfo.drawPlayer.GetModPlayer <MPlayer>().fireHead)
            {
                Player drawPlayer = drawInfo.drawPlayer;
                HeadArmorTexture = ModContent.Request <Texture2D>("KirillandRandom/Items/Armor/FiresoulRobeHood_Head_Glow");
                //var position = drawInfo.headVect + drawInfo.Position + new Vector2(-10f, -10f) - Main.screenPosition+ drawPlayer.headPosition;
                var position = drawInfo.headVect + drawInfo.Position - Main.screenPosition + new Vector2(drawPlayer.width / 2 - drawPlayer.bodyFrame.Width / 2, drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) + drawPlayer.headPosition;
                position = new Vector2((int)position.X, (int)position.Y);
                DrawData drdt = new DrawData(
                    HeadArmorTexture.Value,                                                                           //The texture to render.
                    position,                                                                                         //Position to render at.
                    drawInfo.drawPlayer.bodyFrame,                                                                    //Source rectangle. //for some reason headFrame doesn't work correctly? Investigate.
                    drawInfo.colorArmorHead == Color.Transparent ? Color.Transparent : new Color(100, 100, 100, 100), //Color.
                    0f,                                                                                               //Rotation.
                    drawInfo.headVect,                                                                                //exampleItemTexture.Size() * 0.5f, //Origin. Uses the texture's center.
                    1f,                                                                                               //Scale.
                    drawInfo.playerEffect,                                                                            //SpriteEffects.
                    0                                                                                                 //'Layer'. This is always 0 in Terraria.
                    );
                drdt.shader = drawInfo.cHead;
                drawInfo.DrawDataCache.Add(drdt);
            }
        }
예제 #7
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawInfo.drawPlayer.GetModPlayer <MPlayer>().fireBody)
            {
                BodyArmorTexture = ModContent.Request <Texture2D>("KirillandRandom/Items/Armor/FiresoulRobe_Body_Glow");

                var position = drawInfo.Position + new Vector2(drawPlayer.width / 2 - drawPlayer.bodyFrame.Width / 2, drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) - Main.screenPosition + drawPlayer.bodyPosition;
                position = new Vector2((int)position.X, (int)position.Y);

                DrawData drdt = new DrawData(
                    BodyArmorTexture.Value,                                                                           //The texture to render.
                    position,                                                                                         //Position to render at.
                    drawInfo.drawPlayer.bodyFrame,                                                                    //Source rectangle.
                    drawInfo.colorArmorBody == Color.Transparent ? Color.Transparent : new Color(100, 100, 100, 100), //Color.
                    0f,                                                                                               //Rotation.
                    Vector2.Zero,                                                                                     //exampleItemTexture.Size() * 0.5f, //Origin. Uses the texture's center.
                    1f,                                                                                               //Scale.
                    drawInfo.playerEffect,                                                                            //SpriteEffects.
                    0                                                                                                 //'Layer'. This is always 0 in Terraria.
                    );
                drdt.shader = drawInfo.cBody;
                drawInfo.DrawDataCache.Add(drdt);
            }
        }
예제 #8
0
        public override void DrawEffects(PlayerDrawSet drawInfo, ref float r, ref float g, ref float b, ref float a, ref bool fullBright)
        {
            if (Player.name == "KIRILLAND-Modder" && !Player.dead)
            {
                if (Main.rand.NextBool(4) && drawInfo.shadow == 0f)
                {
                    int TestDust = Dust.NewDust(drawInfo.Position - new Vector2(2f, 2f), Player.width + 4, Player.height + 4, 63, Player.velocity.X * 0.4f, Player.velocity.Y * 0.4f, 100, Color.White, 0.8f);
                    Main.dust[TestDust].noGravity = true;
                    Main.dust[TestDust].noLight   = true;
                }
            }
            if (fireamplification == 0.24f && !Player.dead)
            {
                if (Main.rand.NextBool(10) && drawInfo.shadow == 0f)
                {
                    int TestDust = Dust.NewDust(drawInfo.Position - new Vector2(2f, 2f), Player.width + 4, Player.height + 4, 6, Player.velocity.X * 0.4f, Player.velocity.Y * 0.4f, 100, Color.White, 0.5f);
                    Main.dust[TestDust].shader = GameShaders.Armor.GetSecondaryShader(drawInfo.cBody, drawInfo.drawPlayer);


                    Main.dust[TestDust].noGravity = true;
                    Main.dust[TestDust].noLight   = true;
                }
            }

            base.DrawEffects(drawInfo, ref r, ref g, ref b, ref a, ref fullBright);
        }
 public override void DrawEffects(PlayerDrawSet drawInfo, ref float r, ref float g, ref float b, ref float a, ref bool fullBright)
 {
     if (LightingEssentials.Config.PlayerLight)
     {
         Lighting.AddLight(drawInfo.Position, new Vector3(0.2f, 0.2f, 0.2f));
     }
 }
 public override bool GetDefaultVisibility(PlayerDrawSet drawInfo) =>
 drawInfo.drawPlayer.whoAmI == Main.myPlayer &&
 drawInfo.drawPlayer.active &&
 !drawInfo.drawPlayer.dead &&
 !drawInfo.drawPlayer.ghost &&
 drawInfo.shadow == 0 &&
 drawInfo.drawPlayer.GetModPlayer <FargoSoulsPlayer>().SnowVisual;
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            if (drawInfo.shadow != 0f)
            {
                return;
            }

            Player           drawPlayer = drawInfo.drawPlayer;
            Mod              mod        = ModLoader.GetMod("FargowiltasSouls");
            FargoSoulsPlayer modPlayer  = drawPlayer.GetModPlayer <FargoSoulsPlayer>();

            if (modPlayer.SnowVisual)
            {
                if (modPlayer.frameCounter % 5 == 0)
                {
                    if (++modPlayer.frameSnow > 20)
                    {
                        modPlayer.frameSnow = 1;
                    }
                }

                Texture2D texture   = FargowiltasSouls.Instance.Assets.Request <Texture2D>("Projectiles/Souls/SnowBlizzard", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
                int       frameSize = texture.Height / 20;
                int       drawX     = (int)(drawPlayer.MountedCenter.X - Main.screenPosition.X);
                int       drawY     = (int)(drawPlayer.MountedCenter.Y - Main.screenPosition.Y);
                DrawData  data      = new DrawData(texture, new Vector2(drawX, drawY), new Rectangle(0, frameSize * modPlayer.frameSnow, texture.Width, frameSize), Lighting.GetColor((int)((drawInfo.Position.X + drawPlayer.width / 2f) / 16f), (int)((drawInfo.Position.Y + drawPlayer.height / 2f) / 16f)), drawPlayer.gravDir < 0 ? MathHelper.Pi : 0f, new Vector2(texture.Width / 2f, frameSize / 2f), 1f, SpriteEffects.None, 0);
                drawInfo.DrawDataCache.Add(data);
            }

            //GameShaders.Armor.Apply(GameShaders.Armor.GetShaderIdFromItemId(drawPlayer.dye[1].type, drawPlayer, data);
        }
예제 #12
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (!WingsLayerData.TryGetValue(drawPlayer.wings, out DrawLayerData data))
            {
                return;
            }

            Color color = drawPlayer.GetImmuneAlphaPure(data.Color(drawInfo) * drawInfo.stealth * (1f - drawInfo.shadow), drawInfo.shadow);             //Wing glowmasks need the additional stealth/shadow multiplier for some reason

            Texture2D texture = data.Texture.Value;

            Vector2 directions = drawPlayer.Directions;
            Vector2 offset     = new Vector2(0f, 7f);
            Vector2 position   = drawInfo.Position - Main.screenPosition + new Vector2(drawPlayer.width / 2, drawPlayer.height - drawPlayer.bodyFrame.Height / 2) + offset;

            int num11     = 0;
            int num12     = 0;
            int numFrames = 4;

            position += new Vector2(num12 - 9, num11 + 2) * directions;
            position  = position.Floor();
            Rectangle frame    = new Rectangle(0, texture.Height / numFrames * drawPlayer.wingFrame, texture.Width, texture.Height / numFrames);
            DrawData  drawData = new DrawData(texture, position.Floor(), frame, color, drawPlayer.bodyRotation, new Vector2(texture.Width / 2, texture.Height / numFrames / 2), 1f, drawInfo.playerEffect, 0)
            {
                shader = drawInfo.cWings
            };

            drawInfo.DrawDataCache.Add(drawData);
        }
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            if (drawInfo.shadow != 0f)
            {
                return;
            }

            Player           drawPlayer = drawInfo.drawPlayer;
            FargoSoulsPlayer modPlayer  = drawPlayer.GetModPlayer <FargoSoulsPlayer>();

            if (modPlayer.MutantSetBonusItem != null)
            {
                if (modPlayer.frameCounter % 4 == 0)
                {
                    if (++modPlayer.frameMutantAura >= 19)
                    {
                        modPlayer.frameMutantAura = 0;
                    }
                }

                Texture2D texture   = FargowiltasSouls.Instance.Assets.Request <Texture2D>("NPCs/MutantBoss/MutantAura", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
                int       frameSize = texture.Height / 19;
                int       drawX     = (int)(drawPlayer.MountedCenter.X - Main.screenPosition.X);
                int       drawY     = (int)(drawPlayer.MountedCenter.Y - Main.screenPosition.Y - 16 * drawPlayer.gravDir);
                DrawData  data      = new DrawData(texture, new Vector2(drawX, drawY), new Rectangle(0, frameSize * modPlayer.frameMutantAura, texture.Width, frameSize), Color.White, drawPlayer.gravDir < 0 ? MathHelper.Pi : 0, new Vector2(texture.Width / 2f, frameSize / 2f), 1f, drawPlayer.direction < 0 ? SpriteEffects.FlipHorizontally : SpriteEffects.None, 0);
                drawInfo.DrawDataCache.Add(data);
            }
        }
예제 #14
0
        // If you want to make a layer which isn't a child of another layer, use `new Between(Layer1, Layer2)` to specify the position.
        // If you want to make a 'mobile' layer which can render in different locations depending on the drawInfo, use a `Multiple` position.

        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            //The following code draws ExampleItem's texture behind the player's head.

            if (exampleItemTexture == null)
            {
                exampleItemTexture = ModContent.GetTexture("ExampleMod/Content/Items/ExampleItem");
            }

            var position = drawInfo.Center + new Vector2(0f, -20f) - Main.screenPosition;

            position = new Vector2((int)position.X, (int)position.Y);             //You'll sometimes want to do this, to avoid quivering.

            //Queues a drawing of a sprite. Do not use SpriteBatch in drawlayers!
            drawInfo.DrawDataCache.Add(new DrawData(
                                           exampleItemTexture.Value,         //The texture to render.
                                           position,                         //Position to render at.
                                           null,                             //Source rectangle.
                                           Color.White,                      //Color.
                                           0f,                               //Rotation.
                                           exampleItemTexture.Size() * 0.5f, //Origin. Uses the texture's center.
                                           1f,                               //Scale.
                                           SpriteEffects.None,               //SpriteEffects.
                                           0                                 //'Layer'. This is always 0 in Terraria.
                                           ));
        }
 public override bool GetDefaultVisibility(PlayerDrawSet drawInfo) =>
 drawInfo.drawPlayer.whoAmI == Main.myPlayer &&
 drawInfo.drawPlayer.active &&
 !drawInfo.drawPlayer.dead &&
 !drawInfo.drawPlayer.ghost &&
 drawInfo.shadow == 0 &&
 drawInfo.drawPlayer.GetModPlayer <FargoSoulsPlayer>().PrecisionSealNoDashNoJump &&
 drawInfo.drawPlayer.GetModPlayer <FargoSoulsPlayer>().PrecisionSealHurtbox;
예제 #16
0
        public override bool GetDefaultVisiblity(PlayerDrawSet drawInfo)
        {
            //The layer will be visible only if the player is holding an ExampleItem in their hands. Or if another modder forces this layer to be visible.
            return(drawInfo.drawPlayer.HeldItem?.type == ModContent.ItemType <ExampleItem>());

            // If you'd like to reference another PlayerDrawLayer's visibility,
            // you can do so by getting its instance via ModContent.GetInstance<OtherDrawLayer>(), and calling GetDefaultVisiblity on it
        }
예제 #17
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawInfo.drawPlayer.GetModPlayer <MPlayer>().Hexed)
            {
                LegArmorTexture = ModContent.Request <Texture2D>("KirillandRandom/Items/Armor/Pig_Legs");

                var position = drawInfo.Position + new Vector2(drawPlayer.width / 2 - drawPlayer.bodyFrame.Width / 2, drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) + drawPlayer.legPosition - Main.screenPosition;
                position = new Vector2((int)position.X, (int)position.Y);

                drawInfo.DrawDataCache.Add(new DrawData(
                                               LegArmorTexture.Value,                                                                    //The texture to render.
                                               position,                                                                                 //Position to render at.
                                               drawInfo.drawPlayer.legFrame,                                                             //Source rectangle.
                                               Lighting.GetColor((int)drawInfo.Center.X / 16, (int)drawInfo.Center.Y / 16, Color.White), //Color.
                                               0f,                                                                                       //Rotation.
                                               Vector2.Zero,                                                                             //exampleItemTexture.Size() * 0.5f, //Origin. Uses the texture's center.
                                               1f,                                                                                       //Scale.
                                               drawInfo.playerEffect,                                                                    //SpriteEffects.
                                               0                                                                                         //'Layer'. This is always 0 in Terraria.
                                               ));


                return;
            }

            if (drawInfo.drawPlayer.GetModPlayer <MPlayer>().fireLeggings)
            {
                LegArmorTexture = ModContent.Request <Texture2D>("KirillandRandom/Items/Armor/FiresoulRobeLeggings_Legs_Glow");

                var position = drawInfo.Position + new Vector2(drawPlayer.width / 2 - drawPlayer.bodyFrame.Width / 2, drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) + drawPlayer.legPosition - Main.screenPosition;
                if (drawInfo.isSitting)
                {
                    position += new Vector2(drawInfo.drawPlayer.direction == 1 ? 6 : -6, -7);
                    if (drawPlayer.mount.Active)
                    {
                        position += new Vector2(0, 3);
                    }
                }

                position = new Vector2((int)position.X, (int)position.Y);

                DrawData drdt = new DrawData(
                    LegArmorTexture.Value,                                                                            //The texture to render.
                    position,                                                                                         //Position to render at.
                    drawInfo.drawPlayer.legFrame,                                                                     //Source rectangle.
                    drawInfo.colorArmorLegs == Color.Transparent ? Color.Transparent : new Color(100, 100, 100, 100), //Color.
                    0f,                                                                                               //Rotation.
                    Vector2.Zero,                                                                                     //exampleItemTexture.Size() * 0.5f, //Origin. Uses the texture's center.
                    1f,                                                                                               //Scale.
                    drawInfo.playerEffect,                                                                            //SpriteEffects.
                    0                                                                                                 //'Layer'. This is always 0 in Terraria.
                    );
                drdt.shader = drawInfo.cLegs;
                drawInfo.DrawDataCache.Add(drdt);
            }
        }
        public override void ModifyDrawInfo(ref PlayerDrawSet drawInfo)
        {
            if (!BodyColor.TryGetValue(Player.body, out Func <Color> color))
            {
                return;
            }

            drawInfo.bodyGlowColor = color();
            drawInfo.armGlowColor  = color();
        }
예제 #19
0
        public override bool GetDefaultVisibility(PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawPlayer.dead || drawPlayer.invis || drawPlayer.legs == -1)
            {
                return(false);
            }
            return(true);
        }
        public override bool GetDefaultVisibility(PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawPlayer.dead)
            {
                return(false);
            }

            return(drawPlayer.GetModPlayer <ClickerPlayer>().DrawHotWings);
        }
예제 #21
0
        /// <summary>
        /// Note, not threadsafe
        /// </summary>
        public static PlayerDrawLayer[] GetDrawLayers(PlayerDrawSet drawInfo)
        {
            foreach (var layer in _drawOrder)
            {
                layer.ResetVisiblity(drawInfo);
            }

            PlayerHooks.HideDrawLayers(drawInfo);

            return(_drawOrder);
        }
예제 #22
0
        public override bool GetDefaultVisibility(PlayerDrawSet drawInfo)
        {
            //stop it from drawing multiple times per frame, e.g. with armor/dash afterimages that ruin opacity
            if (globalTimeTracker == Main.GlobalTimeWrappedHourly)
            {
                return(false);
            }
            globalTimeTracker = Main.GlobalTimeWrappedHourly;

            return(ModContent.GetInstance <FargoConfig>().DebuffOpacity > 0 && !Main.hideUI &&
                   drawInfo.drawPlayer.whoAmI == Main.myPlayer && drawInfo.drawPlayer.active && !drawInfo.drawPlayer.dead && !drawInfo.drawPlayer.ghost &&
                   drawInfo.drawPlayer.buffType.Count(d => Main.debuff[d] && !debuffsToIgnore.Contains(d)) > 0);
        }
예제 #23
0
        public override bool GetDefaultVisibility(PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawPlayer.dead)
            {
                return(false);
            }

            ClickerPlayer modPlayer = drawPlayer.GetModPlayer <ClickerPlayer>();

            return(modPlayer.HasAimbotModuleTarget);
        }
예제 #24
0
        internal void ResetVisiblity(PlayerDrawSet drawInfo)
        {
            foreach (var child in ChildrenBefore)
            {
                child.ResetVisiblity(drawInfo);
            }

            Visible = GetDefaultVisiblity(drawInfo);

            foreach (var child in ChildrenAfter)
            {
                child.ResetVisiblity(drawInfo);
            }
        }
        public override bool GetDefaultVisibility(PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            if (drawInfo.shadow != 0f)
            {
                //Gameplay only: no armor shadows
                return(false);
            }

            ClickerPlayer modPlayer = drawPlayer.GetModPlayer <ClickerPlayer>();

            return(modPlayer.CanDrawRadius && modPlayer.SetMotherboardPlaced);
        }
예제 #26
0
 protected override void Draw(ref PlayerDrawSet drawInfo)
 {
     //this is for drawing the tail on the menu
     if (Main.gameMenu && drawInfo.drawPlayer.TryGetModPlayer <TailPlayer>(out TailPlayer tailPlayer))
     {
         if (tailPlayer.playerMenuTexture != null)
         {
             //if (drawInfo.drawPlayer.dead) return;//player is never dead on main menu
             Texture2D texture   = ModContent.Request <Texture2D>(tailPlayer.playerMenuTexture).Value;
             int       frameSize = texture.Height / 20;//what??? was left over from my orignal player layer base, breaks if removed
             DrawData  data      = new DrawData(texture, (drawInfo.Center - Main.screenPosition) + (tailPlayer.playerMenuTexOffset * 0.5f), null, Color.White, 0f, new Vector2(texture.Width, frameSize), 1f, SpriteEffects.FlipHorizontally, 0);
             drawInfo.DrawDataCache.Add(data);
         }
     }
 }
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            Texture2D hurtbox   = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/PrecisionHurtboxDrawLayer", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
            Rectangle rectangle = hurtbox.Bounds;

            float opacity = Main.mouseTextColor / 255f;

            opacity *= opacity;

            DrawData data = new DrawData(hurtbox, drawPlayer.Center - Main.screenPosition, rectangle, Color.White * opacity, 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0);

            drawInfo.DrawDataCache.Add(data);
        }
예제 #28
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            Texture2D texture   = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/DizzyStars", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
            int       num156    = texture.Height / 6;                                      //ypos of lower right corner of sprite to draw
            int       y3        = num156 * (int)(Main.GlobalTimeWrappedHourly % 0.5 * 12); //ypos of upper left corner of sprite to draw
            Rectangle rectangle = new Rectangle(0, y3, texture.Width, num156);

            Vector2 drawPos = (drawPlayer.gravDir > 0 ? drawPlayer.Top : drawPlayer.Bottom) - Main.screenPosition;

            drawPos.Y -= 16 * drawPlayer.gravDir;
            DrawData data = new DrawData(texture, drawPos, rectangle, Color.White, drawPlayer.gravDir < 0 ? MathHelper.Pi : 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0);

            drawInfo.DrawDataCache.Add(data);
        }
예제 #29
0
        public static DrawDataInfo GetHeadDrawDataInfo(PlayerDrawSet drawInfo, Texture2D texture)
        {
            Player  drawPlayer = drawInfo.drawPlayer;
            Vector2 pos        = drawPlayer.headPosition + drawInfo.headVect + new Vector2(
                (int)(drawInfo.Position.X + drawPlayer.width / 2f - drawPlayer.bodyFrame.Width / 2f - Main.screenPosition.X),
                (int)(drawInfo.Position.Y + drawPlayer.height - drawPlayer.bodyFrame.Height + 4f - Main.screenPosition.Y)
                );

            return(new DrawDataInfo {
                Position = pos,
                Frame = drawPlayer.bodyFrame,
                Origin = drawInfo.headVect,
                Rotation = drawPlayer.headRotation,
                Texture = texture
            });
        }
예제 #30
0
        public static DrawDataInfo GetLegDrawDataInfo(PlayerDrawSet drawInfo, Texture2D texture)
        {
            Player  drawPlayer = drawInfo.drawPlayer;
            Vector2 pos        = drawPlayer.legPosition + drawInfo.legVect + new Vector2(
                (int)(drawInfo.Position.X - Main.screenPosition.X - drawPlayer.legFrame.Width / 2f + drawPlayer.width / 2f),
                (int)(drawInfo.Position.Y - Main.screenPosition.Y + drawPlayer.height - drawPlayer.legFrame.Height + 4f)
                );

            return(new DrawDataInfo {
                Position = pos,
                Frame = drawPlayer.legFrame,
                Origin = drawInfo.legVect,
                Rotation = drawPlayer.legRotation,
                Texture = texture
            });
        }