                                          (apply-rock keyin item)
                                          (rw/assoc-current-state :normal))
                                        state)
-      [:flint-and-steel trans->dir?] (-> state
+      [:flint-and-steel trans->dir-ext?] (-> state
                                        (start-fire (translate-directions keyin))
                                        (rw/assoc-current-state :normal))
       [:pen             :*         ] (apply-pen state item)

  {:pre  [(not (nil? state))]
   :post [(not (nil? %))]}
  (let [item (get-apply-item state)
        trans->dir? (comp rc/is-direction-ext? translate-directions)]
    (log/info "apply-item" [item keyin])
    (log/info "is-direction?" ((comp rc/is-direction-ext? translate-directions) keyin))
    (rm/first-vec-match [(get item :item/id) keyin]

                                         (rw/assoc-current-state  :normal))
                                       state)
      [:fishing-pole    trans->dir?] (apply-fishing-pole state (translate-directions keyin))
      [:match           trans->dir-ext?] (-> state
                                       (apply-match (get item :hotkey) (translate-directions keyin))
                                       (rw/assoc-current-state :normal))
      [:fire-plough     trans->dir-ext?] (-> state
                                       (apply-fire-plough (translate-directions keyin))
                                       (rw/assoc-current-state :normal))
      [:hand-drill      trans->dir-ext?] (-> state
                                       (apply-hand-drill (translate-directions keyin))
                                       (rw/assoc-current-state :normal))
      [:bow-drill       trans->dir-ext?] (-> state
                                       (apply-bow-drill (translate-directions keyin))
                                       (rw/assoc-current-state :normal))
      [:plant-guide     :*         ] (if-let [item (ri/inventory-hotkey->item state keyin)]
