This commit is contained in:
Swrup 2026-03-19 20:14:17 +01:00
parent 321530d9d6
commit e133e576bf
6 changed files with 69 additions and 46 deletions

View file

@ -1,4 +1,4 @@
version=0.27.0
version=0.28.1
assignment-operator=end-line
break-cases=fit
break-fun-decl=wrap

View file

@ -1,23 +1,15 @@
(lang dune 2.9)
(implicit_transitive_deps false)
(name pellest)
(implicit_transitive_deps false)
(generate_opam_files true)
(authors "swrup")
(maintainers "swrup@protonmail.com")
(authors "swrup@protonmail.com" "pena <pena@kumikode.org>")
(maintainers "swrup@protonmail.com" "pena <pena@kumikode.org>")
(source
(uri TODO/pellest))
(homepage TODO/pellest)
(bug_reports TODO/pellest)
(documentation TODO/pellest)
(generate_opam_files true)
(uri git+https://forge.kumikode.org/swrup/pellest.git))
(homepage https://forge.kumikode.org/swrup/pellest)
(bug_reports https://forge.kumikode.org/swrup/pellest/issues)
(package
(name pellest)
@ -28,4 +20,20 @@
(pellest TODO TODO TODO TODO))
(depends
(ocaml
(>= 4.08))))
(>= 4.08))
bos
brr
caqti
caqti-driver-sqlite3
directories
dream
emile
fpath
lambdasoup
lwt
lwt_ppx
safepass
scfg
tyxml
uri
uuidm))

View file

@ -2,15 +2,30 @@
opam-version: "2.0"
synopsis: "OCaml library/executable to TODO"
description: "pellest is an OCaml library/executable to TODO."
maintainer: ["swrup@protonmail.com"]
authors: ["swrup"]
maintainer: ["swrup@protonmail.com" "pena <pena@kumikode.org>"]
authors: ["swrup@protonmail.com" "pena <pena@kumikode.org>"]
tags: ["pellest" "TODO" "TODO" "TODO" "TODO"]
homepage: "TODO/pellest"
doc: "TODO/pellest"
bug-reports: "TODO/pellest"
homepage: "https://forge.kumikode.org/swrup/pellest"
bug-reports: "https://forge.kumikode.org/swrup/pellest/issues"
depends: [
"dune" {>= "2.9"}
"ocaml" {>= "4.08"}
"bos"
"brr"
"caqti"
"caqti-driver-sqlite3"
"directories"
"dream"
"emile"
"fpath"
"lambdasoup"
"lwt"
"lwt_ppx"
"safepass"
"scfg"
"tyxml"
"uri"
"uuidm"
"odoc" {with-doc}
]
build: [
@ -29,4 +44,4 @@ build: [
]
["dune" "install" "-p" name "--create-install-files" name]
]
dev-repo: "TODO/pellest"
dev-repo: "git+https://forge.kumikode.org/swrup/pellest.git"

View file

@ -17,6 +17,8 @@
user
ws)
(libraries
shared
;
bos
caqti
caqti.blocking
@ -24,7 +26,6 @@
directories
dream
emile
shared
fpath
lambdasoup
lwt

View file

@ -191,22 +191,22 @@ let apply_last_key () =
let open State in
Kb.get_last ()
|> Option.iter (fun code_or_key ->
let act =
(* when you add something here, don't forget to add the corresponding case in `keypress_handler` *)
match code_or_key with
| "KeyW" | "ArrowUp" -> Move_offset Up
| "KeyA" | "ArrowLeft" -> Move_offset Left
| "KeyS" | "ArrowDown" -> Move_offset Down
| "KeyD" | "ArrowRight" -> Move_offset Right
| "m" -> Meditate
| "p" -> Plant_wheat
| _ ->
(* if this happen, it means we're adding
let act =
(* when you add something here, don't forget to add the corresponding case in `keypress_handler` *)
match code_or_key with
| "KeyW" | "ArrowUp" -> Move_offset Up
| "KeyA" | "ArrowLeft" -> Move_offset Left
| "KeyS" | "ArrowDown" -> Move_offset Down
| "KeyD" | "ArrowRight" -> Move_offset Right
| "m" -> Meditate
| "p" -> Plant_wheat
| _ ->
(* if this happen, it means we're adding
bad values in `keypress_handler`
and that should be fixed *)
assert false
in
Queue.add act input_queue )
assert false
in
Queue.add act input_queue )
let render state =
draw_canvas state;

View file

@ -104,14 +104,13 @@ let rec check_action state = function
; Set_offset (offset_x, offset_y)
]
in
begin
match dir' with
| None -> Ok offset_action
| Some dir' -> begin
match check_action state (Move dir') with
| Error _e as e -> e
| Ok actions -> Ok (offset_action @ actions)
end
begin match dir' with
| None -> Ok offset_action
| Some dir' -> begin
match check_action state (Move dir') with
| Error _e as e -> e
| Ok actions -> Ok (offset_action @ actions)
end
end
| Plant_wheat -> (
let { Map.x; y; dir } = state.player_pos in