(require :editor.lite) (local TileView (require :editor.tileedit)) (local MapEditView (require :editor.mapedit)) (local core (require :core)) (local command (require :core.command)) (local keymap (require :core.keymap)) (command.add nil { "honeylisp:edit-tiles" (fn [] (local node (core.root_view:get_active_node)) (node:add_view (TileView))) "honeylisp:edit-map" (fn [] (local node (core.root_view:get_active_node)) (node:add_view (MapEditView)) ) }) (command.add :editor.tileedit { "tileedit:save" (fn [] (core.active_view:save) (core.log "Saved tiles")) "tileedit:next-tile" #(core.active_view:select-rel 1) "tileedit:previous-tile" #(core.active_view:select-rel -1) "tileedit:copy" #(system.set_clipboard (: (core.active_view:tile) :tohex)) "tileedit:paste" #(when (= (length (system.get_clipboard)) 64) (core.active_view:update-tile (: (system.get_clipboard) :fromhex))) }) (keymap.add { "ctrl+s" "tileedit:save" "left" "tileedit:previous-tile" "right" "tileedit:next-tile" "ctrl+c" "tileedit:copy" "ctrl+v" "tileedit:paste" }) (command.add :editor.mapedit { "mapedit:next-tile" #(core.active_view:select-rel 1) "mapedit:previous-tile" #(core.active_view:select-rel -1) "mapedit:save" (fn [] (core.active_view:save) (core.log "Saved map")) }) (keymap.add { "ctrl+s" "mapedit:save" "left" "mapedit:previous-tile" "right" "mapedit:next-tile" })