From 0fcd97044513cc967b78a488f566735b7bf1a294 Mon Sep 17 00:00:00 2001 From: zapashcanon Date: Tue, 10 Jan 2023 04:39:58 +0100 Subject: [PATCH] add medidate button --- src/island.ml | 25 +++++++++++++++++-------- src/island_client.ml | 15 +++++++++++++-- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/island.ml b/src/island.ml index 411d570..50fdccc 100644 --- a/src/island.ml +++ b/src/island.ml @@ -17,24 +17,33 @@ let get request = let topbar = let mana_img = mk_img false "mana" in let mana_lvl = span ~a:[ a_id "mana_lvl" ] [ txt "0" ] in - div ~a:[ a_class [ "centered" ] ] @@ [ mana_img; mana_lvl ] + div ~a:[ a_class [ "centered" ] ] [ mana_img; mana_lvl ] in let canvas = - canvas - ~a:[ a_id "canvas" ] - [ txt "please update your browser or enable javascript" ] + div + ~a:[ a_class [ "centered" ] ] + [ canvas + ~a:[ a_id "canvas" ] + [ txt "please update your browser or enable javascript" ] + ] in let canvas_images = - List.map (mk_img true) - [ "grass"; "papy_left"; "papy_right"; "papy_down"; "papy_up"; "water" ] + div + @@ List.map (mk_img true) + [ "grass"; "papy_left"; "papy_right"; "papy_down"; "papy_up"; "water" ] in - let page = - div ~a:[ a_class [ "centered" ] ] @@ (topbar :: canvas :: canvas_images) + let bottombar = + let medidate_button = + button ~a:[ a_id "medidate_button" ] [ txt "Medidate" ] + in + div ~a:[ a_class [ "centered" ] ] [ medidate_button ] in + let page = div [ topbar; canvas; bottombar; canvas_images ] in + let js = script ~a: diff --git a/src/island_client.ml b/src/island_client.ml index 43f02cd..8497116 100644 --- a/src/island_client.ml +++ b/src/island_client.ml @@ -101,7 +101,7 @@ let send_action state action = Log.debug "sending action %a to server@\n" State.pp_action action; Ws_client.send (Network.Action_msg action) -let kb_handler ev = +let keydown_handler ev = let open State in let ev = Ev.as_type ev in let act = @@ -164,9 +164,20 @@ let () = match res with | Error e -> Log.debug "received update result error: %s@\n" e | Ok action' -> Queue.add action' to_apply_queue ) ); + (* bind keys *) let _e : Ev.listener = - Ev.listen Ev.keydown kb_handler (Window.as_target G.window) + Ev.listen Ev.keydown keydown_handler (Window.as_target G.window) + in + + (* bind buttons *) + let _e : Ev.listener = + let meditate_button = + Jv.get Jv.global "medidate_button" |> Ev.target_of_jv + in + Ev.listen Ev.click + (fun _ev -> Queue.add State.Meditate input_queue) + meditate_button in Fut.await initial_state_fut (fun msg ->