# HG changeset patch # User Steve Losh # Date 1308864739 14400 # Node ID 8747ed0f715f6dfcb562c8e7d6be9c1679e90021 # Parent d6899c22dc2a4bbb4c50e12003d573d7e1d931ea Moar. diff -r d6899c22dc2a -r 8747ed0f715f src/clojurecraft/core.clj --- a/src/clojurecraft/core.clj Thu Jun 23 17:23:02 2011 -0400 +++ b/src/clojurecraft/core.clj Thu Jun 23 17:32:19 2011 -0400 @@ -26,6 +26,8 @@ 0x11 :usebed 0x12 :animation 0x13 :entityaction + 0x14 :namedentityspawn + 0x15 :pickupspawn }) (def packet-ids (apply assoc {} (mapcat reverse packet-types))) @@ -192,6 +194,20 @@ (-write-int conn eid) (-write-byte conn action)) +(defn write-packet-pickupspawn [conn {eid :eid item :item count :count damagedata :damagedata x :x y :y z :z rotation :rotation pitch :pitch roll :roll}] + (-write-byte conn (:pickupspawn packet-ids)) + + (-write-int conn eid) + (-write-short conn item) + (-write-byte conn count) + (-write-short conn damagedata) + (-write-int conn x) + (-write-int conn y) + (-write-int conn x) + (-write-byte conn rotation) + (-write-byte int conn pitch) + (-write-byte int conn roll)) + ; Writing Wrappers ----------------------------------------------------------------- (defn flushc [conn] @@ -214,6 +230,7 @@ (= packet-type :usebed) (write-packet-usebed conn payload) (= packet-type :animation) (write-packet-animation conn payload) (= packet-type :entityaction) (write-packet-entityaction conn payload) + (= packet-type :pickupspawn) (write-packet-pickupspawn conn payload) ) (flushc conn)) @@ -353,6 +370,30 @@ (assoc :eid (-read-int conn)) (assoc :action (-read-byte conn)))) +(defn read-packet-namedentityspawn [conn] + (-> {} + (assoc :eid (-read-int conn)) + (assoc :playername (-read-string16 conn)) + (assoc :x (-read-int conn)) + (assoc :y (-read-int conn)) + (assoc :z (-read-int conn)) + (assoc :rotation (-read-byte conn)) + (assoc :pitch (-read-byte conn)) + (assoc :currentitem (-read-short conn)))) + +(defn read-packet-pickupspawn [conn] + (-> {} + (assoc :eid (-read-int conn)) + (assoc :item (-read-short conn)) + (assoc :count (-read-byte conn)) + (assoc :damagedata(-read-short conn)) + (assoc :x (-read-int conn)) + (assoc :y (-read-int conn)) + (assoc :z (-read-int conn)) + (assoc :rotation (-read-byte conn)) + (assoc :pitch (-read-byte conn)) + (assoc :roll (-read-byte conn)))) + ; Reading Wrappers ----------------------------------------------------------------- (defn read-packet [conn packet-id] @@ -378,6 +419,8 @@ (= packet-type :usebed) (read-packet-usebed conn) (= packet-type :animate) (read-packet-animate conn) (= packet-type :entityaction) (read-packet-entityaction conn) + (= packet-type :namedentityspawn) (read-packet-namedentityspawn conn) + (= packet-type :pickupspawn) (read-packet-pickupspawn conn) :else (str "UNKNOWN PACKET TYPE: " packet-id) )) (println "\n\n\n")))