You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
LayeredHexGrid<'T> — Layered variant with Dictionary<int, HexGrid<'T>> layers and LayeredHexLayout.layer for composable per-layer DSL.
HexGrid3D<'T> — 3D hex grid with hexagonal positioning in the XZ plane and linear layer height on the Y axis. Supports both PointyTop and FlatTop orientations.
Non-uniform dimension tests for 2D, Hex2D, and 3D grids validating correct face/edge positions for shell, border, corners, scatterShell, and scatterBorder functions.
Hex grid documentation: comprehensive guides for 2D and 3D hex grids covering orientation, coordinates, adjacency, pathfinding, elevation patterns, instanced rendering, and complete game examples (strategy maps, Civilization-style maps).
KeyCombo of Set<KeyboardKey> trigger type for simultaneous key combinations in the input mapper.
InputMap.keyCombo helper for binding actions to key combos (e.g., |> InputMap.keyCombo Save (Set [KeyboardKey.LeftControl; KeyboardKey.S])).
Resizable window support via GameConfig.MinWidth and GameConfig.MinHeight — when set, enables ConfigFlags.ResizableWindow and calls Raylib.SetWindowMinSize.
4 unit tests for key combo functionality (combo starts, releases, partial hold, multiple combos per action).
Cmd.signalExit for programmatic window exit from update functions. Signals the runtime to exit after the current frame completes. Window close via X button or Alt+F4 continues to work independently.
Changed
Breaking: Default exit key disabled (SetExitKey(KeyboardKey.Null)). The ESC key no longer closes the window. Games must handle window close via the OS close button (X) or Alt+F4. To re-enable a custom exit key, call Raylib.SetExitKey(key) in your init or use a subscription to dispatch a quit message.
Breaking:Cmd<'Msg> discriminated union has new Quit case. Users with exhaustive pattern matches on Cmd<'Msg> must handle the new case (or add a wildcard match).
Breaking:GameConfig struct has new fields (MinWidth: int voption, MinHeight: int voption). Users constructing GameConfig records directly must add these fields. Users using GameConfig.defaultConfig or the DSL functions are unaffected.
Breaking:Trigger discriminated union has new KeyCombo of Set<KeyboardKey> case. Users with exhaustive pattern matches on Trigger must handle the new case (or add a wildcard match).
GameContext.WindowWidth and GameContext.WindowHeight now update automatically when the window is resized (e.g., via OS resize or fullscreen toggle). Previously these were set once at creation and never changed.