From d761b53d48ac0a4a0c5afa9b681a6f07419b43b5 Mon Sep 17 00:00:00 2001 From: John McCardle Date: Tue, 2 Dec 2025 09:21:43 -0500 Subject: [PATCH] docs: Update grid demo and regenerate API docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - grid_demo.py: Updated for new layer-based rendering - Screenshots: Refreshed demo screenshots - API docs: Regenerated with latest method signatures 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- docs/api_reference_dynamic.html | 434 +++++++++++++++++- docs/mcrfpy.3 | 408 +++++++++++++++- stubs/mcrfpy.pyi | 166 +++++-- tests/demo/screens/grid_demo.py | 30 +- .../demo/screenshots/demo_03_grid_system.png | Bin 72762 -> 78084 bytes .../screenshots/demo_04_animation_system.png | Bin 61782 -> 61781 bytes 6 files changed, 957 insertions(+), 81 deletions(-) diff --git a/docs/api_reference_dynamic.html b/docs/api_reference_dynamic.html index 6e93bc2..14e58f6 100644 --- a/docs/api_reference_dynamic.html +++ b/docs/api_reference_dynamic.html @@ -108,7 +108,7 @@

McRogueFace API Reference

-

Generated on 2025-10-30 21:14:43

+

Generated on 2025-11-29 10:12:05

This documentation was dynamically generated from the compiled module.

@@ -118,8 +118,11 @@
  • Classes
  • +
    +

    end_benchmark() -> str

    +

    Stop benchmark capture and write data to JSON file. + +Note:

    +

    Returns: str: The filename of the written benchmark data

    +

    Raises: RuntimeError: If no benchmark is currently running Returns the auto-generated filename (e.g., 'benchmark_12345_20250528_143022.json')

    +
    +

    exit() -> None

    Cleanly shut down the game engine and exit the application. @@ -263,6 +277,19 @@ Note:

    Returns: None Only one music track can play at a time. Loading new music stops the current track.

    +
    +

    log_benchmark(message: str) -> None

    +

    Add a log message to the current benchmark frame. + +Note:

    +

    Arguments:

    +
      +
    • message: Text to associate with the current frame
    • +
    +

    Returns: None

    +

    Raises: RuntimeError: If no benchmark is currently running Messages appear in the 'logs' array of each frame in the output JSON.

    +
    +

    playSound(buffer_id: int) -> None

    Play a sound effect using a previously loaded buffer.

    @@ -285,6 +312,18 @@ Note:

    Raises: KeyError: If the specified scene doesn't exist

    +
    +

    setDevConsole(enabled: bool) -> None

    +

    Enable or disable the developer console overlay. + +Note:

    +

    Arguments:

    +
      +
    • enabled: True to enable the console (default), False to disable
    • +
    +

    Returns: None When disabled, the grave/tilde key will not open the console. Use this to ship games without debug features.

    +
    +

    setMusicVolume(volume: int) -> None

    Set the global music volume.

    @@ -344,6 +383,15 @@ Note:

    Returns: None If a timer with this name exists, it will be replaced. The handler receives the total runtime in seconds as its argument.

    +
    +

    start_benchmark() -> None

    +

    Start capturing benchmark data to a file. + +Note:

    +

    Returns: None

    +

    Raises: RuntimeError: If a benchmark is already running Benchmark filename is auto-generated from PID and timestamp. Use end_benchmark() to stop and get filename.

    +
    +

    Classes

    @@ -398,6 +446,73 @@ Note:

    +
    +

    Arc

    +

    Inherits from: Drawable

    +

    Arc(center=None, radius=0, start_angle=0, end_angle=90, color=None, thickness=1, **kwargs) + +An arc UI element for drawing curved line segments. + +Args: + center (tuple, optional): Center position as (x, y). Default: (0, 0) + radius (float, optional): Arc radius in pixels. Default: 0 + start_angle (float, optional): Starting angle in degrees. Default: 0 + end_angle (float, optional): Ending angle in degrees. Default: 90 + color (Color, optional): Arc color. Default: White + thickness (float, optional): Line thickness. Default: 1.0 + +Keyword Args: + click (callable): Click handler. Default: None + visible (bool): Visibility state. Default: True + opacity (float): Opacity (0.0-1.0). Default: 1.0 + z_index (int): Rendering order. Default: 0 + name (str): Element name for finding. Default: None + +Attributes: + center (Vector): Center position + radius (float): Arc radius + start_angle (float): Starting angle in degrees + end_angle (float): Ending angle in degrees + color (Color): Arc color + thickness (float): Line thickness + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name +

    +

    Methods:

    + +
    +
    get_bounds() -> tuple
    +

    Get the bounding rectangle of this drawable element. + +Note:

    +

    Returns: tuple: (x, y, width, height) representing the element's bounds The bounds are in screen coordinates and account for current position and size.

    +
    + +
    +
    move(dx: float, dy: float) -> None
    +

    Move the element by a relative offset. + +Note:

    +
    +
    dx: Horizontal offset in pixels
    +
    dy: Vertical offset in pixels
    +
    +
    + +
    +
    resize(width: float, height: float) -> None
    +

    Resize the element to new dimensions. + +Note:

    +
    +
    width: New width in pixels
    +
    height: New height in pixels
    +
    +
    +
    +

    Caption

    Inherits from: Drawable

    @@ -462,6 +577,71 @@ Note:

    resize(width: float, height: float) -> None

    Resize the element to new dimensions. +Note:

    +
    +
    width: New width in pixels
    +
    height: New height in pixels
    +
    +
    + + +
    +

    Circle

    +

    Inherits from: Drawable

    +

    Circle(radius=0, center=None, fill_color=None, outline_color=None, outline=0, **kwargs) + +A circle UI element for drawing filled or outlined circles. + +Args: + radius (float, optional): Circle radius in pixels. Default: 0 + center (tuple, optional): Center position as (x, y). Default: (0, 0) + fill_color (Color, optional): Fill color. Default: White + outline_color (Color, optional): Outline color. Default: Transparent + outline (float, optional): Outline thickness. Default: 0 (no outline) + +Keyword Args: + click (callable): Click handler. Default: None + visible (bool): Visibility state. Default: True + opacity (float): Opacity (0.0-1.0). Default: 1.0 + z_index (int): Rendering order. Default: 0 + name (str): Element name for finding. Default: None + +Attributes: + radius (float): Circle radius + center (Vector): Center position + fill_color (Color): Fill color + outline_color (Color): Outline color + outline (float): Outline thickness + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name +

    +

    Methods:

    + +
    +
    get_bounds() -> tuple
    +

    Get the bounding rectangle of this drawable element. + +Note:

    +

    Returns: tuple: (x, y, width, height) representing the element's bounds The bounds are in screen coordinates and account for current position and size.

    +
    + +
    +
    move(dx: float, dy: float) -> None
    +

    Move the element by a relative offset. + +Note:

    +
    +
    dx: Horizontal offset in pixels
    +
    dy: Vertical offset in pixels
    +
    +
    + +
    +
    resize(width: float, height: float) -> None
    +

    Resize the element to new dimensions. + Note:

    width: New width in pixels
    @@ -508,6 +688,43 @@ Note:

    +
    +

    ColorLayer

    +

    ColorLayer(z_index=-1, grid_size=None) + +A grid layer that stores RGBA colors per cell. + +Args: + z_index (int): Render order. Negative = below entities. Default: -1 + grid_size (tuple): Dimensions as (width, height). Default: parent grid size + +Attributes: + z_index (int): Layer z-order relative to entities + visible (bool): Whether layer is rendered + grid_size (tuple): Layer dimensions (read-only) + +Methods: + at(x, y): Get color at cell position + set(x, y, color): Set color at cell position + fill(color): Fill entire layer with color

    +

    Methods:

    + +
    +
    at(x, y) -> Color
    +

    Get the color at cell position (x, y).

    +
    + +
    +
    fill(color)
    +

    Fill the entire layer with the specified color.

    +
    + +
    +
    set(x, y, color)
    +

    Set the color at cell position (x, y).

    +
    +
    +

    Drawable

    Base class for all drawable UI elements

    @@ -643,23 +860,44 @@ when the entity moves if it has a grid with perspective set.

    Methods:

    -
    append(...)
    +
    append(entity)
    +

    Add an entity to the end of the collection.

    -
    count(...)
    +
    count(entity) -> int
    +

    Count occurrences of entity in the collection.

    -
    extend(...)
    +
    extend(iterable)
    +

    Add all entities from an iterable to the collection.

    -
    index(...)
    +
    find(name) -> entity or list
    +

    Find entities by name.

    +

    Returns: Single entity if exact match, list if wildcard, None if not found.

    -
    remove(...)
    +
    index(entity) -> int
    +

    Return index of first occurrence of entity. Raises ValueError if not found.

    +
    + +
    +
    insert(index, entity)
    +

    Insert entity at index. Like list.insert(), indices past the end append.

    +
    + +
    +
    pop([index]) -> entity
    +

    Remove and return entity at index (default: last entity).

    +
    + +
    +
    remove(entity)
    +

    Remove first occurrence of entity. Raises ValueError if not found.

    @@ -695,6 +933,7 @@ Keyword Args: w (float): Width override. Default: 0 h (float): Height override. Default: 0 clip_children (bool): Whether to clip children to frame bounds. Default: False + cache_subtree (bool): Cache rendering to texture for performance. Default: False Attributes: x, y (float): Position in pixels @@ -708,7 +947,8 @@ Attributes: opacity (float): Opacity value z_index (int): Rendering order name (str): Element name - clip_children (bool): Whether to clip children to frame bounds

    + clip_children (bool): Whether to clip children to frame bounds + cache_subtree (bool): Cache subtree rendering to texture

    Methods:

    @@ -794,6 +1034,17 @@ Attributes: name (str): Element name

    Methods:

    +
    +
    add_layer(type: str, z_index: int = -1, texture: Texture = None) -> ColorLayer | TileLayer
    +

    Add a new layer to the grid.

    +
    +
    type: Layer type ('color' or 'tile')
    +
    z_index: Render order. Negative = below entities, >= 0 = above entities. Default: -1
    +
    texture: Texture for tile layers. Required for 'tile' type.
    +
    +

    Returns: The created ColorLayer or TileLayer object.

    +
    +
    at(...)
    @@ -822,8 +1073,8 @@ Attributes:
    -
    compute_fov(x: int, y: int, radius: int = 0, light_walls: bool = True, algorithm: int = FOV_BASIC) -> List[Tuple[int, int, bool, bool]]
    -

    Compute field of view from a position and return visible cells.

    +
    compute_fov(x: int, y: int, radius: int = 0, light_walls: bool = True, algorithm: int = FOV_BASIC) -> None
    +

    Compute field of view from a position.

    x: X coordinate of the viewer
    y: Y coordinate of the viewer
    @@ -831,7 +1082,6 @@ Attributes:
    light_walls: Whether walls are lit when visible
    algorithm: FOV algorithm to use (FOV_BASIC, FOV_DIAMOND, FOV_SHADOW, FOV_PERMISSIVE_0-8)
    -

    Returns: List of tuples (x, y, visible, discovered) for all visible cells: - x, y: Grid coordinates - visible: True (all returned cells are visible) - discovered: True (FOV implies discovery) Also updates the internal FOV state for use with is_in_fov().

    @@ -885,6 +1135,15 @@ Note:

    Returns: True if the cell is visible, False otherwise Must call compute_fov() first to calculate visibility.

    +
    +
    layer(z_index: int) -> ColorLayer | TileLayer | None
    +

    Get a layer by its z_index.

    +
    +
    z_index: The z_index of the layer to find.
    +
    +

    Returns: The layer with the specified z_index, or None if not found.

    +
    +
    move(dx: float, dy: float) -> None

    Move the element by a relative offset. @@ -896,6 +1155,14 @@ Note:

    +
    +
    remove_layer(layer: ColorLayer | TileLayer) -> None
    +

    Remove a layer from the grid.

    +
    +
    layer: The layer to remove.
    +
    +
    +
    resize(width: float, height: float) -> None

    Resize the element to new dimensions. @@ -920,6 +1187,69 @@ Note:

    Methods:

    +
    +

    Line

    +

    Inherits from: Drawable

    +

    Line(start=None, end=None, thickness=1.0, color=None, **kwargs) + +A line UI element for drawing straight lines between two points. + +Args: + start (tuple, optional): Starting point as (x, y). Default: (0, 0) + end (tuple, optional): Ending point as (x, y). Default: (0, 0) + thickness (float, optional): Line thickness in pixels. Default: 1.0 + color (Color, optional): Line color. Default: White + +Keyword Args: + click (callable): Click handler. Default: None + visible (bool): Visibility state. Default: True + opacity (float): Opacity (0.0-1.0). Default: 1.0 + z_index (int): Rendering order. Default: 0 + name (str): Element name for finding. Default: None + +Attributes: + start (Vector): Starting point + end (Vector): Ending point + thickness (float): Line thickness + color (Color): Line color + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name +

    +

    Methods:

    + +
    +
    get_bounds() -> tuple
    +

    Get the bounding rectangle of this drawable element. + +Note:

    +

    Returns: tuple: (x, y, width, height) representing the element's bounds The bounds are in screen coordinates and account for current position and size.

    +
    + +
    +
    move(dx: float, dy: float) -> None
    +

    Move the element by a relative offset. + +Note:

    +
    +
    dx: Horizontal offset in pixels
    +
    dy: Vertical offset in pixels
    +
    +
    + +
    +
    resize(width: float, height: float) -> None
    +

    Resize the element to new dimensions. + +Note:

    +
    +
    width: New width in pixels
    +
    height: New height in pixels
    +
    +
    +
    +

    Scene

    Base class for object-oriented scenes

    @@ -1029,6 +1359,45 @@ Note:

    Methods:

    +
    +

    TileLayer

    +

    TileLayer(z_index=-1, texture=None, grid_size=None) + +A grid layer that stores sprite indices per cell. + +Args: + z_index (int): Render order. Negative = below entities. Default: -1 + texture (Texture): Sprite atlas for tile rendering. Default: None + grid_size (tuple): Dimensions as (width, height). Default: parent grid size + +Attributes: + z_index (int): Layer z-order relative to entities + visible (bool): Whether layer is rendered + texture (Texture): Tile sprite atlas + grid_size (tuple): Layer dimensions (read-only) + +Methods: + at(x, y): Get tile index at cell position + set(x, y, index): Set tile index at cell position + fill(index): Fill entire layer with tile index

    +

    Methods:

    + +
    +
    at(x, y) -> int
    +

    Get the tile index at cell position (x, y). Returns -1 if no tile.

    +
    + +
    +
    fill(index)
    +

    Fill the entire layer with the specified tile index.

    +
    + +
    +
    set(x, y, index)
    +

    Set the tile index at cell position (x, y). Use -1 for no tile.

    +
    +
    +

    Timer

    Timer(name, callback, interval, once=False) @@ -1106,23 +1475,50 @@ Note:

    Methods:

    -
    append(...)
    +
    append(element)
    +

    Add an element to the end of the collection.

    -
    count(...)
    +
    count(element) -> int
    +

    Count occurrences of element in the collection.

    -
    extend(...)
    +
    extend(iterable)
    +

    Add all elements from an iterable to the collection.

    -
    index(...)
    +
    find(name, recursive=False) -> element or list
    +

    Find elements by name.

    +

    Returns: Single element if exact match, list if wildcard, None if not found.

    -
    remove(...)
    +
    index(element) -> int
    +

    Return index of first occurrence of element. Raises ValueError if not found.

    +
    + +
    +
    insert(index, element)
    +

    Insert element at index. Like list.insert(), indices past the end append. + +Note: If using z_index for sorting, insertion order may not persist after +the next render. Use name-based .find() for stable element access.

    +
    + +
    +
    pop([index]) -> element
    +

    Remove and return element at index (default: last element). + +Note: If using z_index for sorting, indices may shift after render. +Use name-based .find() for stable element access.

    +
    + +
    +
    remove(element)
    +

    Remove first occurrence of element. Raises ValueError if not found.

    @@ -1173,6 +1569,14 @@ Note:

    Returns: float: Dot product of the two vectors

    +
    +
    floor() -> Vector
    +

    Return a new vector with floored (integer) coordinates. + +Note:

    +

    Returns: Vector: New Vector with floor(x) and floor(y) Useful for grid-based positioning. For a hashable tuple, use the .int property instead.

    +
    +
    magnitude() -> float

    Calculate the length/magnitude of this vector.

    diff --git a/docs/mcrfpy.3 b/docs/mcrfpy.3 index 5c46cba..8e4953d 100644 --- a/docs/mcrfpy.3 +++ b/docs/mcrfpy.3 @@ -14,11 +14,11 @@ . ftr VB CB . ftr VBI CBI .\} -.TH "MCRFPY" "3" "2025-10-30" "McRogueFace dev" "" +.TH "MCRFPY" "3" "2025-11-29" "McRogueFace dev" "" .hy .SH McRogueFace API Reference .PP -\f[I]Generated on 2025-10-30 20:49:34\f[R] +\f[I]Generated on 2025-11-29 10:12:05\f[R] .PP \f[I]This documentation was dynamically generated from the compiled module.\f[R] @@ -31,10 +31,16 @@ Classes .IP \[bu] 2 Animation .IP \[bu] 2 +Arc +.IP \[bu] 2 Caption .IP \[bu] 2 +Circle +.IP \[bu] 2 Color .IP \[bu] 2 +ColorLayer +.IP \[bu] 2 Drawable .IP \[bu] 2 Entity @@ -51,12 +57,16 @@ GridPoint .IP \[bu] 2 GridPointState .IP \[bu] 2 +Line +.IP \[bu] 2 Scene .IP \[bu] 2 Sprite .IP \[bu] 2 Texture .IP \[bu] 2 +TileLayer +.IP \[bu] 2 Timer .IP \[bu] 2 UICollection @@ -110,6 +120,17 @@ Note: .PP \f[B]Returns:\f[R] None No error is raised if the timer doesn\[cq]t exist. +.SS \f[V]end_benchmark() -> str\f[R] +.PP +Stop benchmark capture and write data to JSON file. +.PP +Note: +.PP +\f[B]Returns:\f[R] str: The filename of the written benchmark data +.PP +\f[B]Raises:\f[R] RuntimeError: If no benchmark is currently running +Returns the auto-generated filename (e.g., +`benchmark_12345_20250528_143022.json') .SS \f[V]exit() -> None\f[R] .PP Cleanly shut down the game engine and exit the application. @@ -180,6 +201,19 @@ OGG, FLAC) .PP \f[B]Returns:\f[R] None Only one music track can play at a time. Loading new music stops the current track. +.SS \f[V]log_benchmark(message: str) -> None\f[R] +.PP +Add a log message to the current benchmark frame. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]message\f[R]: Text to associate with the +current frame +.PP +\f[B]Returns:\f[R] None +.PP +\f[B]Raises:\f[R] RuntimeError: If no benchmark is currently running +Messages appear in the `logs' array of each frame in the output JSON. .SS \f[V]playSound(buffer_id: int) -> None\f[R] .PP Play a sound effect using a previously loaded buffer. @@ -201,6 +235,18 @@ If None, uses current scene in the scene .PP \f[B]Raises:\f[R] KeyError: If the specified scene doesn\[cq]t exist +.SS \f[V]setDevConsole(enabled: bool) -> None\f[R] +.PP +Enable or disable the developer console overlay. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]enabled\f[R]: True to enable the console +(default), False to disable +.PP +\f[B]Returns:\f[R] None When disabled, the grave/tilde key will not open +the console. +Use this to ship games without debug features. .SS \f[V]setMusicVolume(volume: int) -> None\f[R] .PP Set the global music volume. @@ -255,6 +301,17 @@ Note: \f[B]Returns:\f[R] None If a timer with this name exists, it will be replaced. The handler receives the total runtime in seconds as its argument. +.SS \f[V]start_benchmark() -> None\f[R] +.PP +Start capturing benchmark data to a file. +.PP +Note: +.PP +\f[B]Returns:\f[R] None +.PP +\f[B]Raises:\f[R] RuntimeError: If a benchmark is already running +Benchmark filename is auto-generated from PID and timestamp. +Use end_benchmark() to stop and get filename. .SS Classes .SS Animation .PP @@ -316,6 +373,62 @@ update in seconds \f[B]Returns:\f[R] bool: True if animation is still running, False if complete Typically called by AnimationManager automatically. Manual calls only needed for custom animation control. +.SS Arc +.PP +\f[I]Inherits from: Drawable\f[R] +.PP +Arc(center=None, radius=0, start_angle=0, end_angle=90, color=None, +thickness=1, **kwargs) +.PP +An arc UI element for drawing curved line segments. +.PP +Args: center (tuple, optional): Center position as (x, y). +Default: (0, 0) radius (float, optional): Arc radius in pixels. +Default: 0 start_angle (float, optional): Starting angle in degrees. +Default: 0 end_angle (float, optional): Ending angle in degrees. +Default: 90 color (Color, optional): Arc color. +Default: White thickness (float, optional): Line thickness. +Default: 1.0 +.PP +Keyword Args: click (callable): Click handler. +Default: None visible (bool): Visibility state. +Default: True opacity (float): Opacity (0.0-1.0). +Default: 1.0 z_index (int): Rendering order. +Default: 0 name (str): Element name for finding. +Default: None +.PP +Attributes: center (Vector): Center position radius (float): Arc radius +start_angle (float): Starting angle in degrees end_angle (float): Ending +angle in degrees color (Color): Arc color thickness (float): Line +thickness visible (bool): Visibility state opacity (float): Opacity +value z_index (int): Rendering order name (str): Element name +.PP +\f[B]Methods:\f[R] +.SS \f[V]get_bounds() -> tuple\f[R] +.PP +Get the bounding rectangle of this drawable element. +.PP +Note: +.PP +\f[B]Returns:\f[R] tuple: (x, y, width, height) representing the +element\[cq]s bounds The bounds are in screen coordinates and account +for current position and size. +.SS \f[V]move(dx: float, dy: float) -> None\f[R] +.PP +Move the element by a relative offset. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]dx\f[R]: Horizontal offset in pixels - +\f[V]dy\f[R]: Vertical offset in pixels +.SS \f[V]resize(width: float, height: float) -> None\f[R] +.PP +Resize the element to new dimensions. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]width\f[R]: New width in pixels - +\f[V]height\f[R]: New height in pixels .SS Caption .PP \f[I]Inherits from: Drawable\f[R] @@ -378,6 +491,61 @@ Note: .PP \f[B]Arguments:\f[R] - \f[V]width\f[R]: New width in pixels - \f[V]height\f[R]: New height in pixels +.SS Circle +.PP +\f[I]Inherits from: Drawable\f[R] +.PP +Circle(radius=0, center=None, fill_color=None, outline_color=None, +outline=0, **kwargs) +.PP +A circle UI element for drawing filled or outlined circles. +.PP +Args: radius (float, optional): Circle radius in pixels. +Default: 0 center (tuple, optional): Center position as (x, y). +Default: (0, 0) fill_color (Color, optional): Fill color. +Default: White outline_color (Color, optional): Outline color. +Default: Transparent outline (float, optional): Outline thickness. +Default: 0 (no outline) +.PP +Keyword Args: click (callable): Click handler. +Default: None visible (bool): Visibility state. +Default: True opacity (float): Opacity (0.0-1.0). +Default: 1.0 z_index (int): Rendering order. +Default: 0 name (str): Element name for finding. +Default: None +.PP +Attributes: radius (float): Circle radius center (Vector): Center +position fill_color (Color): Fill color outline_color (Color): Outline +color outline (float): Outline thickness visible (bool): Visibility +state opacity (float): Opacity value z_index (int): Rendering order name +(str): Element name +.PP +\f[B]Methods:\f[R] +.SS \f[V]get_bounds() -> tuple\f[R] +.PP +Get the bounding rectangle of this drawable element. +.PP +Note: +.PP +\f[B]Returns:\f[R] tuple: (x, y, width, height) representing the +element\[cq]s bounds The bounds are in screen coordinates and account +for current position and size. +.SS \f[V]move(dx: float, dy: float) -> None\f[R] +.PP +Move the element by a relative offset. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]dx\f[R]: Horizontal offset in pixels - +\f[V]dy\f[R]: Vertical offset in pixels +.SS \f[V]resize(width: float, height: float) -> None\f[R] +.PP +Resize the element to new dimensions. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]width\f[R]: New width in pixels - +\f[V]height\f[R]: New height in pixels .SS Color .PP SFML Color Object @@ -419,6 +587,34 @@ Note: \f[B]Returns:\f[R] str: Hex string in format `#RRGGBB' or `#RRGGBBAA' (if alpha < 255) Alpha component is only included if not fully opaque (< 255) +.SS ColorLayer +.PP +ColorLayer(z_index=-1, grid_size=None) +.PP +A grid layer that stores RGBA colors per cell. +.PP +Args: z_index (int): Render order. +Negative = below entities. +Default: -1 grid_size (tuple): Dimensions as (width, height). +Default: parent grid size +.PP +Attributes: z_index (int): Layer z-order relative to entities visible +(bool): Whether layer is rendered grid_size (tuple): Layer dimensions +(read-only) +.PP +Methods: at(x, y): Get color at cell position set(x, y, color): Set +color at cell position fill(color): Fill entire layer with color +.PP +\f[B]Methods:\f[R] +.SS \f[V]at(x, y) -> Color\f[R] +.PP +Get the color at cell position (x, y). +.SS \f[V]fill(color)\f[R] +.PP +Fill the entire layer with the specified color. +.SS \f[V]set(x, y, color)\f[R] +.PP +Set the color at cell position (x, y). .SS Drawable .PP Base class for all drawable UI elements @@ -531,11 +727,36 @@ perspective set. Iterable, indexable collection of Entities .PP \f[B]Methods:\f[R] -.SS \f[V]append(...)\f[R] -.SS \f[V]count(...)\f[R] -.SS \f[V]extend(...)\f[R] -.SS \f[V]index(...)\f[R] -.SS \f[V]remove(...)\f[R] +.SS \f[V]append(entity)\f[R] +.PP +Add an entity to the end of the collection. +.SS \f[V]count(entity) -> int\f[R] +.PP +Count occurrences of entity in the collection. +.SS \f[V]extend(iterable)\f[R] +.PP +Add all entities from an iterable to the collection. +.SS \f[V]find(name) -> entity or list\f[R] +.PP +Find entities by name. +.PP +\f[B]Returns:\f[R] Single entity if exact match, list if wildcard, None +if not found. +.SS \f[V]index(entity) -> int\f[R] +.PP +Return index of first occurrence of entity. +Raises ValueError if not found. +.SS \f[V]insert(index, entity)\f[R] +.PP +Insert entity at index. +Like list.insert(), indices past the end append. +.SS \f[V]pop([index]) -> entity\f[R] +.PP +Remove and return entity at index (default: last entity). +.SS \f[V]remove(entity)\f[R] +.PP +Remove first occurrence of entity. +Raises ValueError if not found. .SS Font .PP SFML Font Object @@ -568,6 +789,8 @@ Default: 0 w (float): Width override. Default: 0 h (float): Height override. Default: 0 clip_children (bool): Whether to clip children to frame bounds. +Default: False cache_subtree (bool): Cache rendering to texture for +performance. Default: False .PP Attributes: x, y (float): Position in pixels w, h (float): Size in @@ -577,7 +800,7 @@ thickness click (callable): Click event handler children (list): Collection of child drawable elements visible (bool): Visibility state opacity (float): Opacity value z_index (int): Rendering order name (str): Element name clip_children (bool): Whether to clip children to -frame bounds +frame bounds cache_subtree (bool): Cache subtree rendering to texture .PP \f[B]Methods:\f[R] .SS \f[V]get_bounds() -> tuple\f[R] @@ -653,6 +876,17 @@ visible (bool): Visibility state opacity (float): Opacity value z_index (int): Rendering order name (str): Element name .PP \f[B]Methods:\f[R] +.SS \f[V]add_layer(type: str, z_index: int = -1, texture: Texture = None) -> ColorLayer | TileLayer\f[R] +.PP +Add a new layer to the grid. +.PP +\f[B]Arguments:\f[R] - \f[V]type\f[R]: Layer type (`color' or `tile') - +\f[V]z_index\f[R]: Render order. +Negative = below entities, >= 0 = above entities. +Default: -1 - \f[V]texture\f[R]: Texture for tile layers. +Required for `tile' type. +.PP +\f[B]Returns:\f[R] The created ColorLayer or TileLayer object. .SS \f[V]at(...)\f[R] .SS \f[V]compute_astar_path(x1: int, y1: int, x2: int, y2: int, diagonal_cost: float = 1.41) -> List[Tuple[int, int]]\f[R] .PP @@ -673,20 +907,15 @@ Compute Dijkstra map from root position. \f[B]Arguments:\f[R] - \f[V]root_x\f[R]: X coordinate of the root/target - \f[V]root_y\f[R]: Y coordinate of the root/target - \f[V]diagonal_cost\f[R]: Cost of diagonal movement (default: 1.41) -.SS \f[V]compute_fov(x: int, y: int, radius: int = 0, light_walls: bool = True, algorithm: int = FOV_BASIC) -> List[Tuple[int, int, bool, bool]]\f[R] +.SS \f[V]compute_fov(x: int, y: int, radius: int = 0, light_walls: bool = True, algorithm: int = FOV_BASIC) -> None\f[R] .PP -Compute field of view from a position and return visible cells. +Compute field of view from a position. .PP \f[B]Arguments:\f[R] - \f[V]x\f[R]: X coordinate of the viewer - \f[V]y\f[R]: Y coordinate of the viewer - \f[V]radius\f[R]: Maximum view distance (0 = unlimited) - \f[V]light_walls\f[R]: Whether walls are lit when visible - \f[V]algorithm\f[R]: FOV algorithm to use (FOV_BASIC, FOV_DIAMOND, FOV_SHADOW, FOV_PERMISSIVE_0-8) -.PP -\f[B]Returns:\f[R] List of tuples (x, y, visible, discovered) for all -visible cells: - x, y: Grid coordinates - visible: True (all returned -cells are visible) - discovered: True (FOV implies discovery) Also -updates the internal FOV state for use with is_in_fov(). .SS \f[V]find_path(x1: int, y1: int, x2: int, y2: int, diagonal_cost: float = 1.41) -> List[Tuple[int, int]]\f[R] .PP Find A* path between two points. @@ -736,6 +965,15 @@ Y coordinate to check .PP \f[B]Returns:\f[R] True if the cell is visible, False otherwise Must call compute_fov() first to calculate visibility. +.SS \f[V]layer(z_index: int) -> ColorLayer | TileLayer | None\f[R] +.PP +Get a layer by its z_index. +.PP +\f[B]Arguments:\f[R] - \f[V]z_index\f[R]: The z_index of the layer to +find. +.PP +\f[B]Returns:\f[R] The layer with the specified z_index, or None if not +found. .SS \f[V]move(dx: float, dy: float) -> None\f[R] .PP Move the element by a relative offset. @@ -744,6 +982,11 @@ Note: .PP \f[B]Arguments:\f[R] - \f[V]dx\f[R]: Horizontal offset in pixels - \f[V]dy\f[R]: Vertical offset in pixels +.SS \f[V]remove_layer(layer: ColorLayer | TileLayer) -> None\f[R] +.PP +Remove a layer from the grid. +.PP +\f[B]Arguments:\f[R] - \f[V]layer\f[R]: The layer to remove. .SS \f[V]resize(width: float, height: float) -> None\f[R] .PP Resize the element to new dimensions. @@ -762,6 +1005,58 @@ UIGridPoint object UIGridPointState object .PP \f[B]Methods:\f[R] +.SS Line +.PP +\f[I]Inherits from: Drawable\f[R] +.PP +Line(start=None, end=None, thickness=1.0, color=None, **kwargs) +.PP +A line UI element for drawing straight lines between two points. +.PP +Args: start (tuple, optional): Starting point as (x, y). +Default: (0, 0) end (tuple, optional): Ending point as (x, y). +Default: (0, 0) thickness (float, optional): Line thickness in pixels. +Default: 1.0 color (Color, optional): Line color. +Default: White +.PP +Keyword Args: click (callable): Click handler. +Default: None visible (bool): Visibility state. +Default: True opacity (float): Opacity (0.0-1.0). +Default: 1.0 z_index (int): Rendering order. +Default: 0 name (str): Element name for finding. +Default: None +.PP +Attributes: start (Vector): Starting point end (Vector): Ending point +thickness (float): Line thickness color (Color): Line color visible +(bool): Visibility state opacity (float): Opacity value z_index (int): +Rendering order name (str): Element name +.PP +\f[B]Methods:\f[R] +.SS \f[V]get_bounds() -> tuple\f[R] +.PP +Get the bounding rectangle of this drawable element. +.PP +Note: +.PP +\f[B]Returns:\f[R] tuple: (x, y, width, height) representing the +element\[cq]s bounds The bounds are in screen coordinates and account +for current position and size. +.SS \f[V]move(dx: float, dy: float) -> None\f[R] +.PP +Move the element by a relative offset. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]dx\f[R]: Horizontal offset in pixels - +\f[V]dy\f[R]: Vertical offset in pixels +.SS \f[V]resize(width: float, height: float) -> None\f[R] +.PP +Resize the element to new dimensions. +.PP +Note: +.PP +\f[B]Arguments:\f[R] - \f[V]width\f[R]: New width in pixels - +\f[V]height\f[R]: New height in pixels .SS Scene .PP Base class for object-oriented scenes @@ -864,6 +1159,38 @@ Note: SFML Texture Object .PP \f[B]Methods:\f[R] +.SS TileLayer +.PP +TileLayer(z_index=-1, texture=None, grid_size=None) +.PP +A grid layer that stores sprite indices per cell. +.PP +Args: z_index (int): Render order. +Negative = below entities. +Default: -1 texture (Texture): Sprite atlas for tile rendering. +Default: None grid_size (tuple): Dimensions as (width, height). +Default: parent grid size +.PP +Attributes: z_index (int): Layer z-order relative to entities visible +(bool): Whether layer is rendered texture (Texture): Tile sprite atlas +grid_size (tuple): Layer dimensions (read-only) +.PP +Methods: at(x, y): Get tile index at cell position set(x, y, index): Set +tile index at cell position fill(index): Fill entire layer with tile +index +.PP +\f[B]Methods:\f[R] +.SS \f[V]at(x, y) -> int\f[R] +.PP +Get the tile index at cell position (x, y). +Returns -1 if no tile. +.SS \f[V]fill(index)\f[R] +.PP +Fill the entire layer with the specified tile index. +.SS \f[V]set(x, y, index)\f[R] +.PP +Set the tile index at cell position (x, y). +Use -1 for no tile. .SS Timer .PP Timer(name, callback, interval, once=False) @@ -937,11 +1264,43 @@ Timer will fire after the remaining time elapses. Iterable, indexable collection of UI objects .PP \f[B]Methods:\f[R] -.SS \f[V]append(...)\f[R] -.SS \f[V]count(...)\f[R] -.SS \f[V]extend(...)\f[R] -.SS \f[V]index(...)\f[R] -.SS \f[V]remove(...)\f[R] +.SS \f[V]append(element)\f[R] +.PP +Add an element to the end of the collection. +.SS \f[V]count(element) -> int\f[R] +.PP +Count occurrences of element in the collection. +.SS \f[V]extend(iterable)\f[R] +.PP +Add all elements from an iterable to the collection. +.SS \f[V]find(name, recursive=False) -> element or list\f[R] +.PP +Find elements by name. +.PP +\f[B]Returns:\f[R] Single element if exact match, list if wildcard, None +if not found. +.SS \f[V]index(element) -> int\f[R] +.PP +Return index of first occurrence of element. +Raises ValueError if not found. +.SS \f[V]insert(index, element)\f[R] +.PP +Insert element at index. +Like list.insert(), indices past the end append. +.PP +Note: If using z_index for sorting, insertion order may not persist +after the next render. +Use name-based .find() for stable element access. +.SS \f[V]pop([index]) -> element\f[R] +.PP +Remove and return element at index (default: last element). +.PP +Note: If using z_index for sorting, indices may shift after render. +Use name-based .find() for stable element access. +.SS \f[V]remove(element)\f[R] +.PP +Remove first occurrence of element. +Raises ValueError if not found. .SS UICollectionIter .PP Iterator for a collection of UI objects @@ -981,6 +1340,15 @@ Calculate the dot product with another vector. \f[B]Arguments:\f[R] - \f[V]other\f[R]: The other vector .PP \f[B]Returns:\f[R] float: Dot product of the two vectors +.SS \f[V]floor() -> Vector\f[R] +.PP +Return a new vector with floored (integer) coordinates. +.PP +Note: +.PP +\f[B]Returns:\f[R] Vector: New Vector with floor(x) and floor(y) Useful +for grid-based positioning. +For a hashable tuple, use the .int property instead. .SS \f[V]magnitude() -> float\f[R] .PP Calculate the length/magnitude of this vector. diff --git a/stubs/mcrfpy.pyi b/stubs/mcrfpy.pyi index 919794b..b6654fa 100644 --- a/stubs/mcrfpy.pyi +++ b/stubs/mcrfpy.pyi @@ -96,98 +96,159 @@ class Drawable: ... class Frame(Drawable): - """Frame(x=0, y=0, w=0, h=0, fill_color=None, outline_color=None, outline=0, click=None, children=None) - + """Frame(x=0, y=0, w=0, h=0, fill_color=None, outline_color=None, outline=0, on_click=None, children=None) + A rectangular frame UI element that can contain other drawable elements. """ - + @overload def __init__(self) -> None: ... @overload def __init__(self, x: float = 0, y: float = 0, w: float = 0, h: float = 0, fill_color: Optional[Color] = None, outline_color: Optional[Color] = None, - outline: float = 0, click: Optional[Callable] = None, + outline: float = 0, on_click: Optional[Callable] = None, children: Optional[List[UIElement]] = None) -> None: ... - + w: float h: float fill_color: Color outline_color: Color outline: float - click: Optional[Callable[[float, float, int], None]] + on_click: Optional[Callable[[float, float, int], None]] + on_enter: Optional[Callable[[], None]] + on_exit: Optional[Callable[[], None]] + on_move: Optional[Callable[[float, float], None]] children: 'UICollection' clip_children: bool class Caption(Drawable): - """Caption(text='', x=0, y=0, font=None, fill_color=None, outline_color=None, outline=0, click=None) - + """Caption(text='', x=0, y=0, font=None, fill_color=None, outline_color=None, outline=0, on_click=None) + A text display UI element with customizable font and styling. """ - + @overload def __init__(self) -> None: ... @overload def __init__(self, text: str = '', x: float = 0, y: float = 0, font: Optional[Font] = None, fill_color: Optional[Color] = None, outline_color: Optional[Color] = None, outline: float = 0, - click: Optional[Callable] = None) -> None: ... - + on_click: Optional[Callable] = None) -> None: ... + text: str font: Font fill_color: Color outline_color: Color outline: float - click: Optional[Callable[[float, float, int], None]] + on_click: Optional[Callable[[float, float, int], None]] + on_enter: Optional[Callable[[], None]] + on_exit: Optional[Callable[[], None]] + on_move: Optional[Callable[[float, float], None]] w: float # Read-only, computed from text h: float # Read-only, computed from text class Sprite(Drawable): - """Sprite(x=0, y=0, texture=None, sprite_index=0, scale=1.0, click=None) - + """Sprite(x=0, y=0, texture=None, sprite_index=0, scale=1.0, on_click=None) + A sprite UI element that displays a texture or portion of a texture atlas. """ - + @overload def __init__(self) -> None: ... @overload def __init__(self, x: float = 0, y: float = 0, texture: Optional[Texture] = None, sprite_index: int = 0, scale: float = 1.0, - click: Optional[Callable] = None) -> None: ... - + on_click: Optional[Callable] = None) -> None: ... + texture: Texture sprite_index: int scale: float - click: Optional[Callable[[float, float, int], None]] + on_click: Optional[Callable[[float, float, int], None]] + on_enter: Optional[Callable[[], None]] + on_exit: Optional[Callable[[], None]] + on_move: Optional[Callable[[float, float], None]] w: float # Read-only, computed from texture h: float # Read-only, computed from texture class Grid(Drawable): - """Grid(x=0, y=0, grid_size=(20, 20), texture=None, tile_width=16, tile_height=16, scale=1.0, click=None) - + """Grid(pos=None, size=None, grid_size=(20, 20), texture=None, on_click=None, layers=None) + A grid-based tilemap UI element for rendering tile-based levels and game worlds. + Supports multiple rendering layers (ColorLayer, TileLayer) and entity management. """ - + @overload def __init__(self) -> None: ... @overload - def __init__(self, x: float = 0, y: float = 0, grid_size: Tuple[int, int] = (20, 20), - texture: Optional[Texture] = None, tile_width: int = 16, tile_height: int = 16, - scale: float = 1.0, click: Optional[Callable] = None) -> None: ... - + def __init__(self, pos: Optional[Tuple[float, float]] = None, + size: Optional[Tuple[float, float]] = None, + grid_size: Tuple[int, int] = (20, 20), + texture: Optional[Texture] = None, + on_click: Optional[Callable] = None, + layers: Optional[Dict[str, str]] = None) -> None: ... + grid_size: Tuple[int, int] - tile_width: int - tile_height: int + grid_x: int # Read-only grid width + grid_y: int # Read-only grid height texture: Texture - scale: float - points: List[List['GridPoint']] + zoom: float + center: Tuple[float, float] + center_x: float + center_y: float + fill_color: Color entities: 'EntityCollection' - background_color: Color - click: Optional[Callable[[int, int, int], None]] - + children: 'UICollection' + layers: List[Union['ColorLayer', 'TileLayer']] + hovered_cell: Optional[Tuple[int, int]] + + # Mouse event handlers + on_click: Optional[Callable[[float, float, int], None]] + on_enter: Optional[Callable[[], None]] + on_exit: Optional[Callable[[], None]] + on_move: Optional[Callable[[float, float], None]] + + # Grid cell event handlers + on_cell_click: Optional[Callable[[int, int], None]] + on_cell_enter: Optional[Callable[[int, int], None]] + on_cell_exit: Optional[Callable[[int, int], None]] + def at(self, x: int, y: int) -> 'GridPoint': """Get grid point at tile coordinates.""" ... + def add_layer(self, type: str, z_index: int = -1, + texture: Optional[Texture] = None) -> Union['ColorLayer', 'TileLayer']: + """Add a rendering layer. type='color' or 'tile'. z_index<0 = below entities.""" + ... + + def remove_layer(self, layer: Union['ColorLayer', 'TileLayer']) -> None: + """Remove a layer from the grid.""" + ... + + def compute_fov(self, x: int, y: int, radius: int) -> None: + """Compute field of view from a position.""" + ... + + def is_in_fov(self, x: int, y: int) -> bool: + """Check if a cell is visible in the current FOV.""" + ... + + def compute_dijkstra(self, sources: List[Tuple[int, int]], max_cost: float = -1) -> None: + """Compute Dijkstra distance map from source points.""" + ... + + def get_dijkstra_distance(self, x: int, y: int) -> float: + """Get distance to nearest source for a cell.""" + ... + + def get_dijkstra_path(self, x: int, y: int) -> List[Tuple[int, int]]: + """Get path from cell to nearest source.""" + ... + + def find_path(self, x1: int, y1: int, x2: int, y2: int) -> List[Tuple[int, int]]: + """Find A* path between two cells.""" + ... + class GridPoint: """Grid point representing a single tile.""" @@ -197,10 +258,49 @@ class GridPoint: class GridPointState: """State information for a grid point.""" - + texture_index: int color: Color +class ColorLayer: + """Grid layer that renders solid colors per cell.""" + + z_index: int + visible: bool + grid_size: Tuple[int, int] + + def fill(self, color: Color) -> None: + """Fill all cells with a color.""" + ... + + def set(self, x: int, y: int, color: Color) -> None: + """Set color at a specific cell.""" + ... + + def at(self, x: int, y: int) -> Color: + """Get color at a specific cell.""" + ... + +class TileLayer: + """Grid layer that renders texture tiles per cell.""" + + z_index: int + visible: bool + texture: Texture + grid_size: Tuple[int, int] + + def fill(self, sprite_index: int) -> None: + """Fill all cells with a sprite index.""" + ... + + def set(self, x: int, y: int, sprite_index: int) -> None: + """Set tile sprite at a specific cell.""" + ... + + def at(self, x: int, y: int) -> int: + """Get tile sprite index at a specific cell.""" + ... + class Entity(Drawable): """Entity(grid_x=0, grid_y=0, texture=None, sprite_index=0, name='') diff --git a/tests/demo/screens/grid_demo.py b/tests/demo/screens/grid_demo.py index 1797885..434c139 100644 --- a/tests/demo/screens/grid_demo.py +++ b/tests/demo/screens/grid_demo.py @@ -8,29 +8,33 @@ class GridDemo(DemoScreen): def setup(self): self.add_title("Grid System") - self.add_description("Tile-based rendering with camera, zoom, and children support") + self.add_description("Multi-layer rendering with camera, zoom, and children support") - # Create a grid - grid = mcrfpy.Grid(grid_size=(15, 10), pos=(50, 120), size=(400, 280)) + # Create a grid with no default layers + grid = mcrfpy.Grid(grid_size=(15, 10), pos=(50, 120), size=(400, 280), layers={}) grid.fill_color = mcrfpy.Color(20, 20, 40) + + # Add a color layer for the checkerboard pattern (z_index=-1 = below entities) + color_layer = grid.add_layer("color", z_index=-1) + # Center camera on middle of grid (in pixel coordinates: cells * cell_size / 2) # For 15x10 grid with 16x16 cells: center = (15*16/2, 10*16/2) = (120, 80) grid.center = (120, 80) self.ui.append(grid) - # Set some tile colors to create a pattern + # Set tile colors via the color layer to create a pattern for x in range(15): for y in range(10): point = grid.at(x, y) # Checkerboard pattern if (x + y) % 2 == 0: - point.color = mcrfpy.Color(40, 40, 60) + color_layer.set(x, y, mcrfpy.Color(40, 40, 60)) else: - point.color = mcrfpy.Color(30, 30, 50) + color_layer.set(x, y, mcrfpy.Color(30, 30, 50)) # Border if x == 0 or x == 14 or y == 0 or y == 9: - point.color = mcrfpy.Color(80, 60, 40) + color_layer.set(x, y, mcrfpy.Color(80, 60, 40)) point.walkable = False # Add some children to the grid @@ -53,13 +57,12 @@ class GridDemo(DemoScreen): props = [ "grid_size: (15, 10)", - "zoom: 1.0", + "layers: [ColorLayer]", "center: (120, 80)", - "fill_color: dark blue", "", "Features:", + "- Multi-layer rendering", "- Camera pan/zoom", - "- Tile colors", "- Children collection", "- FOV/pathfinding", ] @@ -69,8 +72,9 @@ class GridDemo(DemoScreen): info.children.append(cap) # Code example - code = """# Grid with children -grid = mcrfpy.Grid(grid_size=(20, 15), pos=(50, 50), size=(320, 240)) -grid.at(5, 5).color = mcrfpy.Color(255, 0, 0) # Red tile + code = """# Grid with layers +grid = mcrfpy.Grid(grid_size=(20, 15), pos=(50, 50), size=(320, 240), layers={}) +layer = grid.add_layer("color", z_index=-1) # Below entities +layer.set(5, 5, mcrfpy.Color(255, 0, 0)) # Red tile grid.children.append(mcrfpy.Caption("Label", pos=(80, 48)))""" self.add_code_example(code, y=420) diff --git a/tests/demo/screenshots/demo_03_grid_system.png b/tests/demo/screenshots/demo_03_grid_system.png index 14880010737cebcbeaf10e0337887e787ea30e3a..3f2469572d252cb67fd5ad559a98fb1e8a1034e1 100644 GIT binary patch delta 52685 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 delta 46724 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 G9QHpe$&{l2 diff --git a/tests/demo/screenshots/demo_04_animation_system.png b/tests/demo/screenshots/demo_04_animation_system.png index 08bb883f374eec58872d67c14af12f75895b2ee8..123d05c0353b9e5cce11172813496e0216d50bc7 100644 GIT binary patch delta 28240 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⪙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 SS$_kduVa6iA1OIZ3jbfu8r4q# delta 28126 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 ZAj?@=FEURU&p^Nr^Mlq0N{vYo{{x-I;Q{~v