# KBLE, a KeyBoard driven Level Editor A work in progress level editor with extensive keyboard support. Designed for tile based 2D platformers. This is a work in progress program in unusable state. # Short term design decisions Subject to change. * Efficiency, simplicity and clarity are key goals. * Fully keyboard driven modal editing. Mouse support is secondary. * GUI software made in [Zig](https://ziglang.org/) with [raylib](https://www.raylib.com/). * Configurable (editing `src/conf.zig`). # Installation Runtime requirements: [raylib](https://www.raylib.com). ## Precompiled binaries [![builds.sr.ht status](https://builds.sr.ht/~kikoodx/kble.svg)](https://builds.sr.ht/~kikoodx/kble?) https://builds.sr.ht/~kikoodx/kble ## Manual compilation Build requirements: [Zig](https://ziglang.org/download/) master branch, [raylib](https://www.raylib.com). For Arch users, I made [`kble-git`](https://aur.archlinux.org/packages/kble-git/) available in the AUR. ```sh $ # Clone this repository $ git clone https://git.sr.ht/~kikoodx/kble && cd kble $ zig build $ zig-cache/bin/kble ``` Press escape to close the program. # Command line argument **Not available on Windows.** Accept a path to KBLE file to open. If the file doesn't exist, the given path will be used for saving. Defaults to `level.kble` if no argument given. ```sh $ kble #level.kble $ kble sample.kble $ kble $HOME/projects/kble/sample.kble ``` # Configuration. In `src/conf.zig`, edit values from `BEGIN USER CONFIG`. The configuration is applied at compile time. You have the possibility to: * Disable mouse support. * Swap mouse buttons. * Disable backups. * Change default grid size. * Change default scaling level. * Disable adaptive window size. * Change and add colors. * Edit keybindings. # Default keybindings Repetition/parameter: * `0` → `9`: behavior similar to Vi. Movement: * `h`: left * `j`: down * `k`: up * `l`: right * `y`: up-left * `u`: up-right * `b`: down-left * `n`: down-right Verbs: * ``: clear selection * `d`: delete selection * `r`: replace selection with parameter * `+`: increase scale (zoom) * `-`: decrease scale (dezoom) * `=`: reset scale File (read/write): * `e`: read (load) level * `w`: write (save) level *See `kbleformat.md` for technical informations.* Parameter buffer (change default value of verb calls): * `p`: set parameter buffer to current parameter (defaults to 1) * `P`: set the tile ID the keyboard cursor is on as parameter buffer Modes: * ``: normal mode, default * `i`: free selection mode * `v`: rectangle selection mode * `I`: free unselection mode * `V`: rectangle unselection mode * `c`: camera mode [not implemented] # Default mouse control * Right click: free selection. * Shift + left click: rectangle selection. * Right click: libre unselection. * Shift + right click: rectangle unselection. * Left or right click while un·selecting: end selection. # Backups Safety backups are made when: * Reading operation is started (`backup_read.kble`) * The program exit (`backup_exit.kble`) # License Copyright (c) 2021 KikooDX This project is under the MIT license. See LICENSE for more details.