Ejemplo n.º 1
0
        private void InventorySlotUse(object sender, MouseEventArguments mouseEventArguments)
        {
            if (mouseEventArguments.Button == MouseButton.Left)
            {
                return;
            }

            var inventory = GetInventory();
            var slotId    = ((InventorySlotMetadata)((Widget)sender).Metadata).SlotId;

            var item = inventory[slotId];

            if (item == null)
            {
                return;
            }

            if (item.GetItemSpec().GetBaseUsageTime() < 0)
            {
                return;
            }

            var msg = new ClientUseItemMessage
            {
                InventoryId     = GetInventory().Id,
                InventorySlotId = slotId
            };

            _engine.SendMessage(msg);
        }
    private void touchBlock(SerializedItem holding, int x, int y, int z, Vector3 normal)
    {
        // public enum Direction { north, east, south, west, up, down };
        //                         z+   , x+  , z-   , x-  , y+, y-
        int dir = 0;

        if (normal.Equals(Vector3.forward))
        {
            dir = 0;
        }
        else if (normal.Equals(Vector3.back))
        {
            dir = 2;
        }
        else if (normal.Equals(Vector3.right))
        {
            dir = 1;
        }
        else if (normal.Equals(Vector3.left))
        {
            dir = 3;
        }
        else if (normal.Equals(Vector3.up))
        {
            dir = 4;
        }
        else if (normal.Equals(Vector3.down))
        {
            dir = 5;
        }
        ClientUseItemMessage use = new ClientUseItemMessage();

        use.HotbarIndex = (uint)(inventory.currentSelection & 0xF);
        use.Direction   = (uint)(dir & 0xF);
        use.BlockX      = x;
        use.BlockY      = y;
        use.BlockZ      = z;
        client.GetClient().sendMessage(use);
    }