From 9bb4f0a1e46e68b5996887c7573413464f460685 Mon Sep 17 00:00:00 2001 From: oakes Date: Thu, 9 Jan 2014 17:06:56 -0500 Subject: [PATCH] Improve ability to modify entities via the REPL --- src/play_clj/core.clj | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/play_clj/core.clj b/src/play_clj/core.clj index a2b84dc..f17588f 100644 --- a/src/play_clj/core.clj +++ b/src/play_clj/core.clj @@ -44,11 +44,12 @@ (let [screen (atom {}) entities (atom '()) execute-fn! (fn [func screen-map] - (some->> (func screen-map @entities) - list - flatten - (remove nil?) - (reset! entities))) + (let [entities-list @entities] + (some->> (func screen-map entities-list) + list + flatten + (remove nil?) + (compare-and-set! entities entities-list)))) create-renderer-fn! #(swap! screen assoc :renderer (renderer %)) update-fn! #(swap! screen merge %)] {:screen screen