       :else
         (rw/assoc-current-state state :open))))
 
-(defn closeable-directions
-  [state]
-  (map second
-       (filter (fn [[cell direction]]
-                 (contains? #{:open-door} (get cell :type)))
-               (map (fn [direction]
-                      [(rw/player-adjacent-cell state direction) direction])
-                    rc/directions-ext))))
-
-(defn quaff-directions
-  [state]
-  (->> rc/directions-ext
-     (map (fn [direction]
-            [(rw/player-adjacent-cell state direction) direction]))
-     (filter (fn [[cell direction]]
-               (rw/type->water? (get cell :type))))
-    (map second)))
-
 (defn smart-close
   [state]
   ;; If there is just one adjacent thing to close, just close it. Otherwise enter close mode.

      :else
        (rw/assoc-current-state state :harvest))))

(defn openable-directions
  [state]
  (map second
       (filter (fn [[cell direction]]
                 (contains? #{:close-door} (get cell :type)))
               (map (fn [direction]
                      [(rw/player-adjacent-cell state direction) direction])
                    rc/directions-ext))))
(defn smart-open
  [state]
  ;; If there is just one adjacent thing to open, just open it. Otherwise enter open mode.

        [target-x
         target-y] (rw/player-adjacent-xy state direction)
        target-cell (rw/get-cell state target-x target-y)]

    (log/info "moving to" target-x target-y "type:" (get target-cell :type))
    (log/info "inside-safe-zone?" (rv/xy-in-safe-zone? state target-x target-y) target-x target-y)
    (log/info "not collide?" (not (rw/collide? state target-x target-y {:include-npcs? false})))
