add medidate button

This commit is contained in:
pena 2023-01-10 04:39:58 +01:00 committed by Swrup
parent d778e05931
commit 1f632f65cb
2 changed files with 30 additions and 10 deletions

View file

@ -17,24 +17,33 @@ let get request =
let topbar = let topbar =
let mana_img = mk_img false "mana" in let mana_img = mk_img false "mana" in
let mana_lvl = span ~a:[ a_id "mana_lvl" ] [ txt "0" ] 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 in
let canvas = let canvas =
canvas div
~a:[ a_id "canvas" ] ~a:[ a_class [ "centered" ] ]
[ txt "please update your browser or enable javascript" ] [ canvas
~a:[ a_id "canvas" ]
[ txt "please update your browser or enable javascript" ]
]
in in
let canvas_images = let canvas_images =
List.map (mk_img true) div
[ "grass"; "papy_left"; "papy_right"; "papy_down"; "papy_up"; "water" ] @@ List.map (mk_img true)
[ "grass"; "papy_left"; "papy_right"; "papy_down"; "papy_up"; "water" ]
in in
let page = let bottombar =
div ~a:[ a_class [ "centered" ] ] @@ (topbar :: canvas :: canvas_images) let medidate_button =
button ~a:[ a_id "medidate_button" ] [ txt "Medidate" ]
in
div ~a:[ a_class [ "centered" ] ] [ medidate_button ]
in in
let page = div [ topbar; canvas; bottombar; canvas_images ] in
let js = let js =
script script
~a: ~a:

View file

@ -101,7 +101,7 @@ let send_action state action =
Log.debug "sending action %a to server@\n" State.pp_action action; Log.debug "sending action %a to server@\n" State.pp_action action;
Ws_client.send (Network.Action_msg action) Ws_client.send (Network.Action_msg action)
let kb_handler ev = let keydown_handler ev =
let open State in let open State in
let ev = Ev.as_type ev in let ev = Ev.as_type ev in
let act = let act =
@ -164,9 +164,20 @@ let () =
match res with match res with
| Error e -> Log.debug "received update result error: %s@\n" e | Error e -> Log.debug "received update result error: %s@\n" e
| Ok action' -> Queue.add action' to_apply_queue ) ); | Ok action' -> Queue.add action' to_apply_queue ) );
(* bind keys *) (* bind keys *)
let _e : Ev.listener = 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 in
Fut.await initial_state_fut (fun msg -> Fut.await initial_state_fut (fun msg ->