From 626eb12f988108f743567414a1d45b29d2c5ade9 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Thu, 11 Aug 2016 21:22:56 -0700 Subject: [PATCH] progress on interactions with cursors --- desktop/resources/cursor.png | Bin 27527 -> 28301 bytes desktop/resources/cursor_light.png | Bin 6755 -> 6929 bytes desktop/src-common/advent/screens/rooms.clj | 47 ++++++--- .../advent/screens/rooms/common.clj | 1 + .../advent/screens/rooms/outside_house.clj | 41 ++++---- desktop/src-common/advent/screens/scene.clj | 91 ++++++++++++------ desktop/src-common/advent/utils.clj | 42 ++++---- 7 files changed, 133 insertions(+), 89 deletions(-) diff --git a/desktop/resources/cursor.png b/desktop/resources/cursor.png index d1f55f5c954bf3bf7e794afa53fb8f7e4cb6bda1..db8d5b15b566d2fa302d35e204828654fb63eb01 100644 GIT binary patch delta 12059 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 delta 11278 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�}=Cr=mu3O)2>DyvZsb#`1G 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 IQ?dy9KLIh{o&W#< diff --git a/desktop/resources/cursor_light.png b/desktop/resources/cursor_light.png index 9b627dbd23608efd29569ede412ea92ca6ba98a1..af5bd3ba167a4dfc8f707758169bb896cbe0b58f 100644 GIT binary patch delta 5239 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 Uim&o^w4e{>g#%|nbj%9TZRm&t|@qGV)w;L9L zU+o?jyr59mdwwtrSXwnGI<%VC-eE8QRe#5u6qv5Z{o?z@@q0@P)e|!5@9_81tMS^= zm`duq&<58SjF)SjP>1WYh5>iH8Ree~q=*E7#5M7TSmB_@_#l>d;b z+qP;xaZ_SpISXPq;^xKY9!o0TL5ZD!)jxZU^0RApZO>nho>{(`d6@;IvvUqo#HmZ{ zrD3hjbLcH`1ouLMdY*O2NJh3CWr#H_|SUDI{*93AYR@XT&+Hl zR5H<;7dC&i}l5SJ5 zai^WTN=#VMUExm<5m7EkuMY&KfBnxvK-Syk`^zD=OG}nhN5m>oJ+d zaK6Xds45&)9qxkf+SN?rG#wT}-{!*B>{?>%N1!ez%1ukb5OG;nr)_x)^||**=G1ts z622oj^*~{>2Hc@?z8m?QcNiQE(^yq`J3?ue$e3RYjYOEy25>o#po2aQw2r058N%Y_ z1GE3tFx3=EE$7Q?QaEcqwMIQ)2WLPTVISzvO@MOgRUd*>pb#QU8a5PY%`7t!cf}cR zwLV9}Vu1v503|Wr-E&OKBn@=v^OA&P_Sw@S)~2fN?32&2`cZ1dNB3?Cs{RL#@!y|p z3imR2UuDG&sSeoB1@pUdJx(oCiG4IN{Kq5e1AEA}EKu}XV&2~JY_amg++RP! z+U=g5yml5@vEg!?+NNf4A`K@mC+i2BFW>Svmr{>Tv0-$0cuFuM6JW0My8;n)}Jx`&Cu#RCRQ>gRHZktffmPcQP9` g{*NFq_^hAL<^Nwmd&w7VvaJASM=gzu4c+7a2PHFVvj6}9 delta 5060 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

Zrd$%{$k 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 screen butterfly-stand) :x 161 :y 218 @@ -823,6 +825,7 @@ a (catmull-rom-spline! ^CatmullRomSpline (:path entity) :value-at v pos-f)] (assoc entity :x (vector-2! v :x) :y (vector-2! v :y)))))} :cauldron (rooms/make-entity :cauldron (assoc (animation->texture screen cauldron) + :cursor :look :x 139 :y 73 :baseline 167 :anim cauldron :anim-start 0 @@ -832,6 +835,7 @@ :scripts put-something-in-cauldron)) :charcoal (rooms/make-entity :charcoal (assoc (animation->texture screen charcoal) + :cursor :hand :anim charcoal :anim-start 0 :night-profile :none @@ -854,6 +858,7 @@ :wizard "Good job, Tick."))}})) :note (rooms/make-entity :note (assoc (utils/get-texture "outsidehouse/note.png") :x 277 :y 74 :baseline 160 + :cursor :hand :night-profile :none :script (actions/get-script entities (actions/walk-to entities :ego [280 80] :face :right) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index e5cf8dd4..6b0b70fb 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -221,7 +221,8 @@ void main () (get-in entities [:room :interactions]))) ) (defn get-interacting-entity [entities x y] - (let [interactable-entities (if (= (doto (get-selected-inventory-item) (#(log/info "clicked with " %)) ) :main) + (let [interactable-entities (if (= (doto (get-selected-inventory-item) + (#(log/info "clicked with " %)) ) :main) (vals (dissoc (get-in entities [:room :entities]) :ego)) (vals (get-in entities [:room :entities]))) interacting-entity (first (sort-by (comp - :baseline) @@ -248,13 +249,13 @@ void main () (or (= (get-in entities [:cursor :down-target]) (or (:id interacting-entity) (:id interaction) nil)) (get-in entities [:cursor :came-from-inventory?]))) - ((or (when (and interacting-entity (not (:cursor interaction))) + ((or (when (and (not (:override-cursor interaction)) + interacting-entity) (do (screen! hud :on-start-script {}) ((:get-script interacting-entity) (get-script-selector entities) [x y]))) (when interaction (do (screen! hud :on-start-script {}) - ((:get-script interaction) (or (when (:cursor interaction) :main) - (get-script-selector entities)) + ((:get-script interaction) (get-script-selector entities) [x y]))) ((:get-script default-interaction) (get-script-selector entities) [x y])) entities)) @@ -878,17 +879,35 @@ void main () entities) entities)) -(defn update-cursor [screen {{:keys [override last active was-active]} :cursor :as entities}] - (if (= 0.0 (get-in entities [:fade :opacity])) - (let [new-current (or override (get-selected-inventory-item) :main)] - (when-not (and (= new-current - last) - (= active was-active)) - (let [image-path (if active "cursor_light.png" "cursor.png")] - (graphics! :set-cursor (utils/cursor image-path (or (:cursor new-current) new-current))))) - (update-in entities [:cursor ] assoc :last new-current - :was-active active)) - entities)) +(defn translate-depressed [cursor depressed?] + (if depressed? + (get {:hand :hand-depressed + :talk :talk-depressed + :look :look-depressed} cursor cursor) + cursor)) + +(defn update-cursor [{:keys [total-time] :as screen} {{:keys [override last depressed? time-changed] :or {time-changed 0}} :cursor :as entities}] +(let [new-current (or override (get-selected-inventory-item) :main) + time-changed (double time-changed) + total-time (double total-time)] + (cond + (not= 0.0 (get-in entities [:fade :opacity])) + entities + + (< (unchecked-subtract total-time time-changed) 0.15) + entities + + (= [new-current depressed?] last) + entities + + :else + (do + (graphics! :set-cursor (utils/cursor "cursor.png" (translate-depressed (or (:cursor new-current) new-current) + depressed?))) + (update-in entities [:cursor ] assoc + :last [new-current depressed?] + :time-changed total-time)) + ))) (defn get-looped-animation-point ^double [^Animation animation ^double total-time] @@ -1236,7 +1255,7 @@ void main () :on-resume (fn [screen {{:keys [current override last active was-active]} :cursor :as entities} options] (let [current (or override (get-selected-inventory-item) :main) - image-path (if active "cursor_light.png" "cursor.png")] + image-path "cursor.png"] (graphics! :set-cursor (utils/cursor image-path (or (:cursor current) current)))) (doseq [[k [start time fn]] (get-in entities [:room :timers])] (add-timer! screen k start time))) @@ -1337,7 +1356,7 @@ void main () (set! (. camera zoom) (:zoom (:cam entities))) (set! (.. camera position x) (:x (:cam entities) 160.0)) (set! (.. camera position y) (:y (:cam entities) 120.0))) - (let [#_#_entities (utils/update-override screen entities options) + (let [entities (utils/update-override screen entities options) entities (play-key-sounds screen entities) entities (update-current-sound-vols! entities) entities (remove-ended-sounds screen entities)] @@ -1371,6 +1390,7 @@ void main () (when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport) input-x input-y) + ; TODO: override cursor when started in black (when (and (= (button-code :left) (:button options)) (get-in entities [:state :active?]) @@ -1379,22 +1399,31 @@ void main () (let [[x y] (utils/unproject screen options) interaction (get-interaction entities x y) interacting-entity (get-interacting-entity entities x y)] - (assoc-in entities [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil)))))) + (-> entities + (assoc-in [:cursor :depressed?] true) + (assoc-in [:cursor :down-target] (or (:id interacting-entity ) (:id interaction) nil))))))) :on-touch-up (fn [{:keys [^FitViewport viewport] :as screen} entities {:keys [input-x input-y] :as options}] - - (when (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) - (.getScreenWidth viewport) (.getScreenHeight viewport) - input-x input-y) - (if (= (button-code :right) - (:button options)) - (do - (screen! hud :on-return-item {})) - (when (and (get-in entities [:state :active?]) - (or (not (get-in entities [:state :hud-active?])) - (get-in entities [:fg-actions :script-running?])) - (= 0.0 (get-in entities [:fade :opacity]))) - (left-click screen entities options))))) + (let [entities (assoc-in entities [:cursor :depressed?] false)] + (cond + (not (utils/contains-point? (.getScreenX viewport) (.getScreenY viewport) + (.getScreenWidth viewport) (.getScreenHeight viewport) + input-x input-y)) + entities + + (= (button-code :right) + (:button options)) + (do (screen! hud :on-return-item {}) + entities) + + (and (get-in entities [:state :active?]) + (or (not (get-in entities [:state :hud-active?])) + (get-in entities [:fg-actions :script-running?])) + (= 0.0 (get-in entities [:fade :opacity]))) + (left-click screen entities options) + + :else + entities))) :on-deactivate (fn [screen entities options] (assoc-in entities [:state :active?] false)) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index 10ca8ab9..9ea40f06 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -45,13 +45,13 @@ (let [{:keys [x y]} (input->screen screen {:x (:input-x screen) :y (:input-y screen)})] (log/info (:input-x screen) (:input-y screen) "->" x y))) -(def ^:const +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune]) +(def ^:const +all-cursors+ [:main :wool :mushrooms :carrot :right :down :left :up :flask :flask-with-contents :trophy :ladder :stick :cat-toy :balloon :frog-legs :teddy :portrait :recipe :glass-eye :motivational-tapes :used-earplugs :grass :slobber :flask-with-strength :medal :kiss :sword :hourglass :mandrake :ball-n-chain :key :rope :crowbar :note-1 :ash :sack-lunch :flies :spear :monocle :feather :spell-component :money :charcoal :broken-clock :slingshot :camera :walkie-talkies :alarm-clock :walkie-talkie :flask-water :flask-water-stuff :flask-water-stuff-2 :note-2 :magic-slingshot :active-main :shovel :broom :tune :hand :hand-depressed :talk :talk-depressed :look :look-depressed]) (def settings (atom {:music-volume 50.0 :sound-volume 75.0 :fullscreen true})) -(def selected-save (atom nil)) +(defonce selected-save (atom nil)) (defn current-music-volume [& [^double factor]] (-> (Math/pow (unchecked-multiply (:music-volume @settings) 0.01) 2) @@ -271,8 +271,7 @@ (assoc entity :x (vector-2! v :x) :y (vector-2! v :y))))))) (defn path-point [speed screen entities entity] - (* (- (:total-time screen) (:path-start-time entity 0.0)) speed) - ) + (* (- (:total-time screen) (:path-start-time entity 0.0)) speed)) (defn update-path-location [speed screen entities entity] (if (:path entity) @@ -291,10 +290,10 @@ (filter #(and (:mouse-in? %) ((:mouse-in? %) entities x y) (not= "ego" (:id %)) - (:script %)) + (:get-script %)) (vals (get-in entities [:room :entities]))) (filter #(and ((:mouse-in? %) entities x y) - (:script %)) + (:get-script %)) (get-in entities [:room :interactions]))))) (defn hovering-ego [entities [x y]] @@ -388,7 +387,8 @@ (.getScreenWidth viewport) (.getScreenHeight viewport) (first raw-pos) (last raw-pos))) hovering-ego (hovering-ego entities last-pos) - current (get-in entities [:cursor :current])] + current (get-in entities [:cursor :current]) + selected-inventory-item (@(resolve 'advent.screens.scene/get-selected-inventory-item))] (cond out-of-bounds @@ -397,35 +397,27 @@ (not (get-in entities [:state :active?])) (-> entities - (assoc-in [:cursor :override] nil) - (assoc-in [:cursor :active] false)) + (assoc-in [:cursor :override] nil)) (is-unstoppable-script-running screen entities) (-> entities - (assoc-in [:cursor :override] :hourglass) - (assoc-in [:cursor :active] false)) + (assoc-in [:cursor :override] :hourglass)) (get-in entities [:state :hud-active?]) (-> entities - (assoc-in [:cursor :override] nil) - (assoc-in [:cursor :active] false)) + (assoc-in [:cursor :override] nil)) - (and hovering-ego (not @(resolve 'advent.screens.scene/get-selected-inventory-item))) - (-> entities - (assoc-in [:cursor :override] (or (:cursor mouse-override) (when (#{:main :active-main} (get-in entities [:cursor :last])) :active-main))) - (assoc-in [:cursor :active] true)) + (and mouse-override (:only-script mouse-override)) + (assoc-in entities [:cursor :override] (:cursor mouse-override)) + + selected-inventory-item + (assoc-in entities [:cursor :override] selected-inventory-item) mouse-override - (-> entities - (assoc-in [:cursor :override] (or (:cursor mouse-override) (when (#{:main :active-main} (get-in entities [:cursor :last])) :active-main))) - (assoc-in [:cursor :active] true)) - - + (assoc-in entities [:cursor :override] (:cursor mouse-override)) :else - (-> entities - (assoc-in [:cursor :override] nil) - (assoc-in [:cursor :active] false))))) + (assoc-in entities [:cursor :override] :main)))) (def default-night-merge {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 1.0 :hue-amount 1.0}) (def default-night-merge-sprite {:r 0.08 :g 0.1 :b 0.36 :multiply-amount 0.3 :hue-amount 0.4})