Terraria.Mount.UseDrill C# (CSharp) Method

UseDrill() public method

public UseDrill ( Player mountedPlayer ) : void
mountedPlayer Player
return void
        public void UseDrill(Player mountedPlayer)
        {
            if (this._type != 8 || !this._abilityActive)
                return;
            Mount.DrillMountData data = (Mount.DrillMountData)this._mountSpecificData;
            if (data.beamCooldown != 0)
                return;
            for (int index1 = 0; index1 < data.beams.Length; ++index1)
            {
                Mount.DrillBeam drillBeam = data.beams[index1];
                if (drillBeam.cooldown == 0)
                {
                    Point16 point16 = this.DrillSmartCursor(mountedPlayer, data);
                    if (point16 != Point16.NegativeOne)
                    {
                        drillBeam.curTileTarget = point16;
                        int pickPower = Mount.drillPickPower;
                        mountedPlayer.PickTile((int)point16.X, (int)point16.Y, pickPower);
                        Vector2 Position = new Vector2((float)((int)point16.X << 4) + 8f, (float)((int)point16.Y << 4) + 8f);
                        float num1 = Utils.ToRotation(Position - mountedPlayer.Center);
                        for (int index2 = 0; index2 < 2; ++index2)
                        {
                            float num2 = num1 + (float)((Main.rand.Next(2) == 1 ? -1.0 : 1.0) * 1.57079637050629);
                            float num3 = (float)(Main.rand.NextDouble() * 2.0 + 2.0);
                            Vector2 vector2 = new Vector2((float)Math.Cos((double)num2) * num3, (float)Math.Sin((double)num2) * num3);
                            int index3 = Dust.NewDust(Position, 0, 0, 230, vector2.X, vector2.Y, 0, new Color(), 1f);
                            Main.dust[index3].noGravity = true;
                            Main.dust[index3].customData = (object)mountedPlayer;
                        }
                        Tile.SmoothSlope((int)point16.X, (int)point16.Y, true);
                        drillBeam.cooldown = Mount.drillPickTime;
                        break;
                    }
                    break;
                }
            }
            data.beamCooldown = Mount.drillBeamCooldownMax;
        }