src/clojurecraft/actions.clj @ 43f02bd6b197

Make handlers return lists.
author Steve Losh <steve@stevelosh.com>
date Wed, 10 Aug 2011 01:25:24 -0400
parents 6f54b979c6b5
children d9fe18146e9d
(ns clojurecraft.actions
  (:use [clojurecraft.util])
  (:require [clojurecraft.physics :as physics]))

(defn move [bot x-change y-change z-change]
  (delay
    (let [player (:player bot)]
      (dosync
        (let [location (:loc @player)
              new-location (merge location
                                  {:x (+ x-change (:x location))
                                   :y (+ y-change (:y location))
                                   :z (+ z-change (:z location))
                                   :stance (+ y-change (:stance location))})]
          (alter player merge {:loc new-location}))))))

(defn jump [bot]
  (delay
    (let [player (:player bot)]
      (dosync
        (let [location (:loc @player)]
          (alter player assoc-in [:loc :onground] false)
          (alter player assoc :velocity physics/JUMP-VELOCITY))))))