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; }
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); }