示例#1
0
        public void PlayerDigging(DiggingStatus status, BlockCoordinates position, BlockFace face, Vector3 cursorPosition)
        {
            if (WorldReceiver?.GetPlayerEntity() is Entities.Player player)
            {
                var item = player.Inventory[player.Inventory.SelectedSlot];
                if (status == DiggingStatus.Started)
                {
                    SendPlayerAction(PlayerAction.StartBreak, position, (int)face);
                }
                else if (status == DiggingStatus.Finished)
                {
                    SendPlayerAction(PlayerAction.StopBreak, position, (int)face);
                    var packet = McpeInventoryTransaction.CreateObject();
                    packet.transaction = new Transaction()
                    {
                        ActionType    = (int)McpeInventoryTransaction.ItemUseAction.Destroy,
                        ClickPosition =
                            new System.Numerics.Vector3(cursorPosition.X, cursorPosition.Y, cursorPosition.Z),
                        TransactionType = McpeInventoryTransaction.TransactionType.ItemUse,
                        EntityId        = NetworkEntityId,
                        Position        = new MiNET.Utils.BlockCoordinates(position.X, position.Y, position.Z),
                        //Item = MiNET.Items.ItemFactory.GetItem()
                    };

                    SendPacket(packet);
                }
                else if (status == DiggingStatus.Cancelled)
                {
                    SendPlayerAction(PlayerAction.AbortBreak, position, (int)face);
                }
            }
        }
 public AcknowledgePlayerDigging(Block block, DiggingStatus status, bool successful, Position pos)
 {
     _block   = block;
     _status  = status;
     _success = successful;
     _pos     = pos;
 }
示例#3
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
     });
 }
示例#4
0
 public void PlayerDigging(DiggingStatus status, BlockCoordinates position, BlockFace face, Vector3 cursorPosition)
 {
     SendPacket(new PlayerDiggingPacket()
     {
         Face     = face,
         Location = position,
         Status   = status
     });
 }
示例#5
0
 public override void PlayerDigging(DiggingStatus status, BlockCoordinates position, BlockFace face, Vector3 cursorPosition)
 {
 }
示例#6
0
 public abstract void PlayerDigging(DiggingStatus status, BlockCoordinates position, BlockFace face, Vector3 cursorPosition);