56 Commits

Author SHA1 Message Date
randrews f1eaaae5d0 only tick nonwaiting objects 2026-07-11 12:04:33 -05:00
randrews b1b723fd1b enter hook 2026-07-11 11:47:45 -05:00
randrews cdeae455dc Extract kiln-ui crate 2026-07-11 00:11:35 -05:00
randrews ad95a9cd8d new layer model 2026-07-10 23:16:28 -05:00
randrews 325d2c27dd drain object queues after each object 2026-07-10 01:20:26 -05:00
randrews e545395ac6 redoing bump 2026-07-08 13:21:27 -05:00
randrews f407b5d9a6 transporters 2026-07-08 10:06:25 -05:00
randrews e43dae54a8 add_gems -> alter_gems 2026-07-07 23:58:51 -05:00
randrews b7063277e7 Fixing tests and comments 2026-07-05 23:41:19 -05:00
randrews d8a3f17379 heart containers 2026-06-23 22:52:25 -05:00
randrews 2e160d6c61 builtin macro 2026-06-23 01:08:01 -05:00
randrews d4b9278838 spinners and gems 2026-06-21 18:27:45 -05:00
randrews a45c5a0a68 split claude.md 2026-06-21 11:54:19 -05:00
randrews 8e90084b53 spinners and fmt 2026-06-21 01:32:47 -05:00
randrews d32914d99d playtest mode 2026-06-20 19:05:46 -05:00
randrews e7c3ca1139 cleanup 2026-06-20 18:46:02 -05:00
randrews cbefdab4ce better color editor 2026-06-20 16:21:04 -05:00
randrews 6816b1549f refactor 2026-06-20 15:53:15 -05:00
randrews 05142e5712 glyph picker 2026-06-20 15:27:09 -05:00
randrews 1351055d27 ui crate, editor 2026-06-18 11:40:06 -05:00
randrews fb8f6df501 editor ui 2026-06-17 18:25:09 -05:00
randrews 6464e47747 builtin scripts 2026-06-16 14:34:42 -05:00
randrews 7608fc959f palette changes 2026-06-16 00:14:59 -05:00
randrews 50d56aa428 Different content grids 2026-06-16 00:01:02 -05:00
randrews 01cd73ca3b Board layers 2026-06-15 23:35:18 -05:00
randrews 887e1fefea speech bubble fixes, multi objects 2026-06-13 13:59:13 -05:00
randrews f327e77e3d removed queue.push 2026-06-13 01:47:11 -05:00
randrews 73c8a9bd3e multi board 2026-06-13 01:27:33 -05:00
randrews 8e79b30583 tails 2026-06-11 22:40:50 -05:00
randrews a1cce10432 scrolls 2026-06-11 18:53:52 -05:00
randrews f73c02437d Added scroll() 2026-06-10 01:42:33 -05:00
randrews e5c406e42d speech bubbles and delays 2026-06-08 22:15:44 -05:00
randrews f5ed8f2edf Added names to objects 2026-06-08 19:50:43 -05:00
randrews ea79dc20f9 refactoring 2026-06-07 00:19:53 -05:00
randrews ea18fe8fc2 Real object ids, fixed warping bug 2026-06-06 20:01:07 -05:00
randrews 374a69f0ca Floor layer 2026-06-06 18:49:45 -05:00
randrews a5f60e22e1 more scripting, objects moving 2026-06-06 17:36:00 -05:00
randrews 8ac6da184c crates, player coords, arch.md gone 2026-06-06 14:11:20 -05:00
randrews 05c9fdbde9 Solidity 2026-06-06 01:37:19 -05:00
randrews 8f2cca2907 more refactor 2026-06-05 01:09:50 -05:00
randrews 6cd34ebb4e removed boardstate 2026-06-05 00:30:14 -05:00
randrews 4f21f7fa8a more scripting 2026-06-04 23:52:33 -05:00
randrews e0477a12b8 basic scripting 2026-06-04 20:11:55 -05:00
randrews de1870432f Add kiln-tui: a terminal player for kiln boards
New `kiln-tui` crate (ratatui 0.30 / crossterm) that plays a board from a
.toml map named on the command line, letting the player walk around with the
arrow keys or hjkl. It depends only on kiln-core — the engine needed zero
changes, confirming it is genuinely UI-agnostic.

- Text rendering: each Glyph.tile index is reinterpreted as a character via a
  CP437->Unicode table (cp437.rs); fg/bg map to ratatui Color::Rgb truecolor.
- render.rs BoardWidget: per-axis viewport that centers a small board and
  scrolls a large one to keep the player visible.
- term.rs TerminalCaps: detects truecolor and Kitty keyboard-protocol support,
  enabling the protocol when present (held-key repeat, modifier-only keys);
  shows a rainbow "truecolor" badge in the bottom border.
- Input loop acts on Press and Repeat (continuous held-key movement) and
  ignores Release.

Workspace: removed kiln-egui from members (files left untouched). Updated
CLAUDE.md and ARCHITECTURE.md to document the workspace split and kiln-tui.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 20:10:02 -05:00
randrews 353461dbfd egui changes 2026-06-03 17:45:43 -05:00
randrews 067bb9bee0 Object passable/opaque: editor checkboxes + doc/simplify cleanup
- ObjectDef gains passable/opaque fields (defaults: false/true); Board::is_passable
  consults the object before the grid cell, so objects block movement independently
  of the floor tile beneath them
- Editor Objects tab exposes Passable and Opaque checkboxes; changes survive save/load
- Add ObjectDef::new(x, y) to centralise placement defaults; remove triple
  default_glyph() call and unused Glyph import from main.rs
- Fix stale Behavior doc comment; update CLAUDE.md and ARCHITECTURE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 21:48:40 -05:00
randrews 212297ecf9 Add bitmap font rendering via PNG tilesheet
Replace egui text rendering with a BitmapFont system:
- Glyph.tile: u32 replaces ch: char; top-left pixel of PNG is background sentinel
- BitmapFont loads/preprocesses PNG to opaque-white + transparent, tinted at render time
- Default font: assets/vga-font-8x16.png (CP437, 8×16 tiles); placeholder generated if missing
- Boards can specify a per-board font via [font] in their .toml file
- Editor Board tab: "Font…" button opens font dialog (rfd file picker, tile dims, tilesheet preview)
- Glyph picker: tile grid from active font replaces hardcoded ASCII char grid
- map_file: TileIndex untagged enum accepts char or integer in palette entries

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 00:07:04 -05:00
randrews 12ebe77932 Simplify: extract paint_glyph, drop unused param and redundant comments
- Add paint_glyph(painter, rect, glyph) to render.rs; draw_glyph now
  delegates to it, eliminating the duplicated rect_filled+text pattern
  that appeared in four places across editor.rs and glyph_picker.rs
- Remove unused _board param from show_editor_panel and its call site
- Drop redundant section-header comments in glyph_picker.rs (the
  ui.label() calls immediately below already name each section)
- Remove extracted fg/bg/cur_ch locals in the char grid loop now that
  paint_glyph accepts a Glyph directly
- Fix CLAUDE.md update phase description (stale from pre-refactor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 22:01:21 -05:00
randrews f3bbfbb169 Document "finish the epic" session-closing command in CLAUDE.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 21:48:20 -05:00
randrews 86bcf84175 Rename project from viberogue to Kiln
Updates Cargo.toml package name, window title, and all references in
ARCHITECTURE.md and CLAUDE.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 19:40:03 -05:00