McRogueFace/tests/snippets
John McCardle cf9512e128 feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture)
Generate a byte-stable preview PNG for every docs snippet, as the visual-
regression oracle foundation of #381. A changed image means the snippet's
behaviour changed and wants review.

Pipeline (no C++ change; existing headless build suffices):
- _seed.py: chained as the FIRST --exec so random.seed(42) governs the
  snippet's RNG before it draws (snippets draw at import; seeding after is
  too late). Shared-interpreter seeding covers all 25 random-module snippets.
- _screenshot.py: chained as the LAST --exec; steps setup frames then
  automation.screenshot(). Kept separate from _harness.py so the pass/fail
  suite stays fast and untouched.
- tools/generate_snippet_shots.py: orchestrator; runs seed->snippet->shot,
  writes gitignored snippet-shots/ (images belong in the doc-site repo,
  which pulls them from here). Per-snippet capture params live in a sidecar
  OVERRIDES table, not the mcrf: header (which would fight stamp_snippets
  and can't hold Phase-3 interaction scripts).
- make snippet-shots target; snippet-shots/ gitignored.

The 4 BSP snippets that needed deterministic pixels (060, 102, 224, 243)
now pass seed=42 — libtcod's global RNG is time(0)-seeded and unreachable
from Python, and seed= also documents reproducible generation for readers.

Validated: 272 captured, 10 skipped (noshot opt-outs), 0 failed; all 272
byte-identical across two full runs (~49s).

Addresses #381.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTh2ZW7bd3XSd9qK86Z2CE
2026-07-15 20:57:04 -04:00
..
001_hello_frame.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
002_hello_caption.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
003_hello_sprite.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
004_hello_grid.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
005_hello_entity.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
006_frame_colors.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
007_frame_opacity.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
008_frame_outline.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
009_frame_children.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
010_frame_clip_children.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
011_frame_z_index.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
012_frame_visible.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
013_frame_name.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
014_frame_rotation.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
015_frame_origin.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
016_frame_alignment.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
017_caption_styling.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
018_caption_in_frame.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
019_caption_dimensions.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
020_sprite_atlas.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
021_sprite_scale.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
022_sprite_tint.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
023_grid_tiles.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
024_grid_walkable.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
025_grid_cell_color.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
026_grid_camera_center.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
027_grid_zoom.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
028_entity_movement.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
029_entity_multiple.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
030_entity_draw_pos.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
031_animation_basic.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
032_animation_easing_linear.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
033_animation_easing_ease_in.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
034_animation_easing_ease_out.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
035_animation_easing_ease_in_out.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
036_animation_easing_bounce.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
037_animation_easing_elastic.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
038_animation_easing_back.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
039_animation_easing_comparison.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
040_animation_color.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
041_animation_opacity.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
042_animation_size.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
043_animation_sprite_index.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
044_animation_callback.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
045_animation_chain.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
046_timer_basic.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
047_timer_once.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
048_timer_control.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
049_input_keyboard.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
050_input_mouse_click.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
051_input_mouse_hover.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
052_input_grid_cell_click.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
053_input_grid_cell_hover.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
054_pathfinding_astar.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
055_pathfinding_entity.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
056_pathfinding_dijkstra.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
057_fov_basic.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
058_fov_algorithms.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
059_fov_perspective.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
060_bsp_basic.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00
061_scene_switching.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
062_scene_transition_fade.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
063_scene_transition_slide.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
064_vector_basics.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
065_color_components.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
066_find_elements.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
067_collection_iteration.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
068_entity_collection.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
069_window_properties.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
070_keyboard_state.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
071_mouse_state.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
072_ui_button.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
073_ui_health_bar.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
074_ui_tooltip.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
075_ui_message_log.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
076_effect_screen_shake.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
077_effect_damage_flash.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
078_effect_floating_text.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
079_effect_pulse.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
080_game_turn_based.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
081_game_inventory.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
082_game_minimap.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
083_grid_layers.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
084_bresenham_line.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
085_entity_visibility.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
086_procgen_cellular.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
087_grid_point_state.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
088_animation_multiple.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
089_camera_follow.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
090_scene_lifecycle.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
091_metrics_display.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
092_global_pos.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
093_parent_reference.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
094_entity_die.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
095_entity_index.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
096_timer_remaining.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
097_hovered_state.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
098_grid_fill_color.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
099_scene_pos.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
100_complete_game.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
101_grid_camera_rotation.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
102_bsp_traversal.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00
103_animation_pos_vector.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
104_texture_properties.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
105_scenes_dict.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
106_timers_list.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
107_animations_list.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
108_cache_subtree.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
109_realign.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
110_version_info.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
111_alignment_margins.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
112_animation_delta.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
113_easing_cubic.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
114_easing_sine.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
115_easing_expo.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
116_easing_circ.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
117_easing_quart.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
118_ui_modal.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
119_game_collision.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
120_animation_complete.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
121_entity_at.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
122_default_fov.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
123_animation_stop.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
124_sprite_rotation.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
125_vector_normalized.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
126_timer_restart.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
127_grid_size.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
128_color_animation_channels.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
129_scene_update.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
130_exit_game.py fix(snippets): drop the commit hash from verified -- it churned all 130 every commit 2026-07-14 19:14:49 -04:00
131_combat_melee.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
132_effects_color_pulse_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
133_effects_color_pulse_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
134_effects_color_pulse_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
135_effects_color_pulse_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
136_effects_color_pulse_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
137_effects_damage_flash_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
138_effects_damage_flash_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
139_effects_damage_flash_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
140_effects_floating_text.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
141_effects_path_animation.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
142_effects_scene_transitions_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
143_effects_scene_transitions_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
144_effects_scene_transitions_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
145_effects_scene_transitions_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
146_effects_scene_transitions_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
147_effects_screen_shake_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
148_effects_screen_shake_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
149_effects_screen_shake_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
150_grid_interaction_patterns_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
151_grid_interaction_patterns_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
152_grid_interaction_patterns_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
153_grid_interaction_patterns_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
154_grid_interaction_patterns_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
155_grid_interaction_patterns_6.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
156_grid_interaction_patterns_7.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
157_grid_cell_highlighting_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
158_grid_cell_highlighting_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
159_grid_dijkstra_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
160_grid_dijkstra_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
161_grid_dijkstra_heightmap_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
162_grid_dijkstra_heightmap_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
163_grid_dungeon_generator.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
164_grid_fog_of_war_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
165_grid_fog_of_war_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
166_grid_multi_layer_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
167_grid_multi_layer_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
168_headless_mode_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
169_headless_mode_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
170_procgen_cellular_caves.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
171_procgen_wfc.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
172_rendering_and_visuals_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
173_rendering_and_visuals_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
174_ui_widget_patterns_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
175_ui_widget_patterns_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
176_ui_widget_patterns_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
177_ui_widget_patterns_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
178_ui_widget_patterns_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
179_ui_widget_patterns_6.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
180_ui_widget_patterns_7.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
181_ui_alignment_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
182_ui_alignment_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
183_ui_alignment_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
184_ui_alignment_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
185_ui_alignment_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
186_ui_alignment_6.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
187_ui_alignment_7.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
188_ui_health_bar_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
189_ui_health_bar_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
190_ui_health_bar_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
191_ui_health_bar_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
192_ui_menu_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
193_ui_menu_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
194_ui_menu_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
195_ui_message_log_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
196_ui_message_log_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
197_ui_message_log_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
198_ui_modal_dialog_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
199_ui_modal_dialog_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
200_ui_tooltip_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
201_ui_tooltip_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
202_ui_tooltip_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
203_ui_tooltip_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
204_fov.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
205_grid_system_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
206_grid_system_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
207_pathfinding.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
208_scenes_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
209_scenes_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
210_AStarPath.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
211_Alignment.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
212_Animation_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
213_Animation_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
214_Animation_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
215_Animation_4.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
216_Animation_5.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
217_Animation_6.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
218_Animation_7.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
219_Animation_8.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
220_Animation_9.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
221_Animation_10.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
222_Arc_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
223_Arc_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
224_BSP_1.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00
225_BSP_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
226_BSP_3.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
227_Caption.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
228_Circle_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
229_Circle_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
230_ColorLayer_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
231_ColorLayer_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
232_Color.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
233_DijkstraMap.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
234_Drawable.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
235_Easing.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
236_Entity.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
237_FOV_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
238_FOV_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
239_Font_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
240_Font_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
241_Frame.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
242_Grid.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
243_HeightMap.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00
244_InputState.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
245_Key.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
246_Keyboard.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
247_Line_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
248_Line_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
249_MouseButton_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
250_MouseButton_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
251_Mouse_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
252_Mouse_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
253_Music.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
254_NoiseSource_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
255_NoiseSource_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
256_Scene_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
257_Scene_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
258_Sprite.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
259_Texture_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
260_Texture_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
261_TileLayer.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
262_Timer.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
263_Transition_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
264_Transition_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
265_Traversal.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
266_Vector_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
267_Vector_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
268_Window.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
269_part_00_setup.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
270_part_01_grid_movement.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
271_part_02_tiles_collision_1.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
272_part_02_tiles_collision_2.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
273_part_03_dungeon_generation.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
274_part_04_fov.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
275_part_05_enemies.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
276_part_06_combat.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
277_part_07_ui.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
278_part_08_items.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
279_part_09_ranged.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
280_part_10_save_load.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
281_part_11_levels.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
282_part_13_equipment.py test(snippets): promote 152 hand-written docs examples into the gated suite 2026-07-15 00:26:38 -04:00
_harness.py test(snippets): the docs site's 130 code samples are now part of the test suite 2026-07-14 18:29:37 -04:00
_screenshot.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00
_seed.py feat(docs): deterministic snippet screenshots — Phase 1 (STATIC capture) 2026-07-15 20:57:04 -04:00