Ejemplo n.º 1
0
Archivo: Player.cs Proyecto: K4mey/Alex
        private void StartBreakingBlock()
        {
            SwingArm(true);

            var floored = Vector3.Floor(Raytraced);

            var block = Level.GetBlock(floored);

            if (!block.HasHitbox)
            {
                return;
            }

            _destroyingBlock  = true;
            _destroyingTarget = floored;
            _destroyingFace   = GetTargetFace();
            _destroyingTick   = DateTime.UtcNow;

            //if (Inventory.MainHand != null)
            {
                _destroyTimeNeeded = block.GetBreakTime(Inventory.MainHand ?? new ItemAir()) * 20f;
            }

            Log.Debug($"Start break block ({_destroyingTarget}, {_destroyTimeNeeded} ticks.)");

            var flooredAdj = Vector3.Floor(AdjacentRaytrace);
            var remainder  = new Vector3(AdjacentRaytrace.X - flooredAdj.X, AdjacentRaytrace.Y - flooredAdj.Y, AdjacentRaytrace.Z - flooredAdj.Z);

            Network?.PlayerDigging(DiggingStatus.Started, _destroyingTarget, _destroyingFace, remainder);
        }
Ejemplo n.º 2
0
        private void StartBreakingBlock()
        {
            SwingArm(true);

            var floored  = new BlockCoordinates(Vector3.Floor(Raytraced));
            var adjacent = AdjacentRaytrace;

            var block = Level.GetBlock(floored);

            if (!block.HasHitbox)
            {
                return;
            }

            var face = GetTargetFace();

            _destroyingBlock  = true;
            _destroyingTarget = floored;
            _destroyingFace   = face;

            Interlocked.Exchange(ref _destroyingTick, 0);

            _destroyTimeNeeded = block.GetBreakTime(Inventory.MainHand ?? new ItemAir());

            Log.Debug($"Start break block ({_destroyingTarget}, {_destroyTimeNeeded} ticks.)");

            var flooredAdj = Vector3.Floor(adjacent);
            var remainder  = new Vector3(adjacent.X - flooredAdj.X, adjacent.Y - flooredAdj.Y, adjacent.Z - flooredAdj.Z);

            Network?.PlayerDigging(DiggingStatus.Started, floored, face, remainder);
        }
Ejemplo n.º 3
0
 public override void BlockPlaced(BlockCoordinates position, API.Blocks.BlockFace face, int hand, Vector3 cursorPosition, Entity p)
 {
     Client.SendPacket(new PlayerBlockPlacementPacket()
     {
         CursorPosition = cursorPosition,
         Location       = position,
         Face           = face,
         Hand           = hand
     });
 }
Ejemplo n.º 4
0
 public override void WorldInteraction(BlockCoordinates position, API.Blocks.BlockFace face, int hand, Vector3 cursorPosition)
 {
     Client.SendPacket(new PlayerBlockPlacementPacket()
     {
         Location       = position,
         Face           = face,
         Hand           = hand,
         CursorPosition = cursorPosition,
         InsideBlock    = false
     });
 }
Ejemplo n.º 5
0
 public override void UseItem(Item item, int hand, ItemUseAction action, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition)
 {
     //if (!(action == ))
     Client.SendPacket(new UseItemPacket()
     {
         Hand = hand
     });
 }
Ejemplo n.º 6
0
 public override void PlayerDigging(DiggingStatus status, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition)
 {
     Client.SendPacket(new PlayerDiggingPacket()
     {
         Face     = face,
         Location = position,
         Status   = status
     });
 }
Ejemplo n.º 7
0
 public override void UseItem(Item item, int hand, ItemUseAction useAction, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition)
 {
 }
Ejemplo n.º 8
0
 public override void WorldInteraction(Entity player, BlockCoordinates position, API.Blocks.BlockFace face, int hand, int slot, Vector3 cursorPosition)
 {
 }
Ejemplo n.º 9
0
 public override void PlayerDigging(DiggingStatus status, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition)
 {
 }
Ejemplo n.º 10
0
 public override void BlockPlaced(BlockCoordinates position, API.Blocks.BlockFace face, int hand, int slot, Vector3 cursorPosition, Entity p)
 {
 }
Ejemplo n.º 11
0
 public abstract void UseItem(Item item, int hand, ItemUseAction action, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition);
Ejemplo n.º 12
0
 public abstract void WorldInteraction(Entity entity,
                                       BlockCoordinates position,
                                       API.Blocks.BlockFace face,
                                       int hand,
                                       int slot,
                                       Vector3 cursorPosition);
Ejemplo n.º 13
0
 public abstract void PlayerDigging(DiggingStatus status, BlockCoordinates position, API.Blocks.BlockFace face, Vector3 cursorPosition);
Ejemplo n.º 14
0
 public abstract void BlockPlaced(BlockCoordinates position, API.Blocks.BlockFace face, int hand, Vector3 cursorPosition, Entity player);
Ejemplo n.º 15
0
 public override void WorldInteraction(BlockCoordinates position, API.Blocks.BlockFace face, int hand, Vector3 cursorPosition)
 {
 }