Example #1
0
        public override void AimAbility(Player mountedPlayer, Vector2 mousePosition)
        {
            // TODO Decode this witchcraft
            Vector2 vector   = ClampToDeadZone(mountedPlayer, mousePosition) - mountedPlayer.Center;
            float   rotation = vector.ToRotation();

            if (rotation < 0f)
            {
                rotation += MathHelper.TwoPi;
            }

            DrillData data = (DrillData)mountedPlayer.mount._mountSpecificData;

            data.DesiredMiningDeviceRotation = rotation;

            float num2 = data.MiningDeviceRotation % MathHelper.TwoPi;

            if (num2 < 0f)
            {
                num2 += MathHelper.TwoPi;
            }
            if (num2 < rotation)
            {
                if (rotation - num2 > MathHelper.Pi)
                {
                    num2 += MathHelper.TwoPi;
                }
            }
            else if (num2 - rotation > MathHelper.Pi)
            {
                num2 -= MathHelper.TwoPi;
            }
            data.MiningDeviceRotation = num2;
            data.MousePosition        = mousePosition;
        }
Example #2
0
        public override bool Draw(List <DrawData> playerDrawData, int drawType, Player drawPlayer, ref Texture2D texture, ref Texture2D glowTexture, ref Vector2 drawPosition, ref Rectangle frame, ref Color drawColor, ref Color glowColor, ref float rotation, ref SpriteEffects spriteEffects, ref Vector2 drawOrigin, ref float drawScale, float shadow)
        {
            Player    player = Main.LocalPlayer;
            DrillData data   = (DrillData)player.mount._mountSpecificData;

            float ringRotation = data.RingRotation;

            ringRotation += player.velocity.X / 160f;
            if (ringRotation > (float)Math.PI)
            {
                ringRotation -= (float)Math.PI * 2f;
            }
            else if (ringRotation < -(float)Math.PI)
            {
                ringRotation += (float)Math.PI * 2f;
            }
            data.RingRotation = ringRotation;

            switch (drawType)
            {
            case MountDrawTypeID.BackTexture:
                rotation = data.RingRotation;
                break;

            case MountDrawTypeID.FrontTexture:
                rotation      = Math.Abs(player.velocity.ToRotation());
                spriteEffects = ((drawPlayer.direction == 1 && drawType == 2) ? SpriteEffects.FlipHorizontally : SpriteEffects.None);
                break;
            }

            for (int i = 0; i < DrillData.MaxBeams; i++)
            {
                if (data.Beams[i].TileTarget == Point16.NegativeOne)
                {
                    continue;
                }
            }

            return(true);
        }