diff --git a/docs/api_reference_complete.html b/docs/api_reference_complete.html new file mode 100644 index 0000000..af834bf --- /dev/null +++ b/docs/api_reference_complete.html @@ -0,0 +1,1751 @@ + + + + + + McRogueFace API Reference - Complete Documentation + + + +
+ +

McRogueFace API Reference - Complete Documentation

+

Generated on 2025-07-15 21:28:13

+
+

Table of Contents

+ +
+

Functions

+

Scene Management

+
+

createScene(name: str) -> None

+

Create a new empty scene with the given name.

+
+
Arguments:
+
+name +(str): +Unique name for the new scene +
+
+
+Raises: ValueError: If a scene with this name already exists +
+
+Note: The scene is created but not made active. Use setScene() to switch to it. +
+
+
Example:
+

+mcrfpy.createScene("game_over")
+
+
+
+
+

setScene(scene: str, transition: str = None, duration: float = 0.0) -> None

+

Switch to a different scene with optional transition effect.

+
+
Arguments:
+
+scene +(str): +Name of the scene to switch to +
+
+transition +(str): +Transition type: "fade", "slide_left", "slide_right", "slide_up", "slide_down" +
+
+duration +(float): +Transition duration in seconds (default: 0.0 for instant) +
+
+
+Raises: KeyError: If the scene doesn't exist +
+
+
Example:
+

+mcrfpy.setScene("game", "fade", 0.5)
+
+
+
+
+

currentScene() -> str

+

Get the name of the currently active scene.

+
+Returns: str: Name of the current scene +
+
+
Example:
+

+scene_name = mcrfpy.currentScene()
+
+
+
+
+

sceneUI(scene: str = None) -> UICollection

+

Get all UI elements for a scene.

+
+
Arguments:
+
+scene +(str): +Scene name. If None, uses current scene +
+
+
+Returns: UICollection: All UI elements in the scene +
+
+Raises: KeyError: If the specified scene doesn't exist +
+
+
Example:
+

+ui_elements = mcrfpy.sceneUI("game")
+
+
+
+
+

keypressScene(handler: callable) -> None

+

Set the keyboard event handler for the current scene.

+
+
Arguments:
+
+handler +(callable): +Function that receives (key_name: str, is_pressed: bool) +
+
+
+
Example:
+

+def on_key(key, pressed):
+    if key == "SPACE" and pressed:
+        player.jump()
+mcrfpy.keypressScene(on_key)
+
+
+
+

Audio

+
+

createSoundBuffer(filename: str) -> int

+

Load a sound effect from a file and return its buffer ID.

+
+
Arguments:
+
+filename +(str): +Path to the sound file (WAV, OGG, FLAC) +
+
+
+Returns: int: Buffer ID for use with playSound() +
+
+Raises: RuntimeError: If the file cannot be loaded +
+
+
Example:
+

+jump_sound = mcrfpy.createSoundBuffer("assets/jump.wav")
+
+
+
+
+

loadMusic(filename: str, loop: bool = True) -> None

+

Load and immediately play background music from a file.

+
+
Arguments:
+
+filename +(str): +Path to the music file (WAV, OGG, FLAC) +
+
+loop +(bool): +Whether to loop the music (default: True) +
+
+
+Note: Only one music track can play at a time. Loading new music stops the current track. +
+
+
Example:
+

+mcrfpy.loadMusic("assets/background.ogg", True)
+
+
+
+
+

playSound(buffer_id: int) -> None

+

Play a sound effect using a previously loaded buffer.

+
+
Arguments:
+
+buffer_id +(int): +Sound buffer ID returned by createSoundBuffer() +
+
+
+Raises: RuntimeError: If the buffer ID is invalid +
+
+
Example:
+

+mcrfpy.playSound(jump_sound)
+
+
+
+
+

getMusicVolume() -> int

+

Get the current music volume level.

+
+Returns: int: Current volume (0-100) +
+
+
Example:
+

+current_volume = mcrfpy.getMusicVolume()
+
+
+
+
+

getSoundVolume() -> int

+

Get the current sound effects volume level.

+
+Returns: int: Current volume (0-100) +
+
+
Example:
+

+current_volume = mcrfpy.getSoundVolume()
+
+
+
+
+

setMusicVolume(volume: int) -> None

+

Set the global music volume.

+
+
Arguments:
+
+volume +(int): +Volume level from 0 (silent) to 100 (full volume) +
+
+
+
Example:
+

+mcrfpy.setMusicVolume(50)  # Set to 50% volume
+
+
+
+
+

setSoundVolume(volume: int) -> None

+

Set the global sound effects volume.

+
+
Arguments:
+
+volume +(int): +Volume level from 0 (silent) to 100 (full volume) +
+
+
+
Example:
+

+mcrfpy.setSoundVolume(75)  # Set to 75% volume
+
+
+
+

UI Utilities

+
+

find(name: str, scene: str = None) -> UIDrawable | None

+

Find the first UI element with the specified name.

+
+
Arguments:
+
+name +(str): +Exact name to search for +
+
+scene +(str): +Scene to search in (default: current scene) +
+
+
+Returns: UIDrawable or None: The found element, or None if not found +
+
+Note: Searches scene UI elements and entities within grids. +
+
+
Example:
+

+button = mcrfpy.find("start_button")
+
+
+
+
+

findAll(pattern: str, scene: str = None) -> list

+

Find all UI elements matching a name pattern.

+
+
Arguments:
+
+pattern +(str): +Name pattern with optional wildcards (* matches any characters) +
+
+scene +(str): +Scene to search in (default: current scene) +
+
+
+Returns: list: All matching UI elements and entities +
+
+
Example:
+

+enemies = mcrfpy.findAll("enemy_*")
+
+
+
+

System

+
+

exit() -> None

+

Cleanly shut down the game engine and exit the application.

+
+Note: This immediately closes the window and terminates the program. +
+
+
Example:
+

+mcrfpy.exit()
+
+
+
+
+

getMetrics() -> dict

+

Get current performance metrics.

+
+Returns: dict: Performance data with keys: +- frame_time: Last frame duration in seconds +- avg_frame_time: Average frame time +- fps: Frames per second +- draw_calls: Number of draw calls +- ui_elements: Total UI element count +- visible_elements: Visible element count +- current_frame: Frame counter +- runtime: Total runtime in seconds +
+
+
Example:
+

+metrics = mcrfpy.getMetrics()
+
+
+
+
+

setTimer(name: str, handler: callable, interval: int) -> None

+

Create or update a recurring timer.

+
+
Arguments:
+
+name +(str): +Unique identifier for the timer +
+
+handler +(callable): +Function called with (runtime: float) parameter +
+
+interval +(int): +Time between calls in milliseconds +
+
+
+Note: If a timer with this name exists, it will be replaced. +
+
+
Example:
+

+def update_score(runtime):
+    score += 1
+mcrfpy.setTimer("score_update", update_score, 1000)
+
+
+
+
+

delTimer(name: str) -> None

+

Stop and remove a timer.

+
+
Arguments:
+
+name +(str): +Timer identifier to remove +
+
+
+Note: No error is raised if the timer doesn't exist. +
+
+
Example:
+

+mcrfpy.delTimer("score_update")
+
+
+
+
+

setScale(multiplier: float) -> None

+

Scale the game window size.

+
+
Arguments:
+
+multiplier +(float): +Scale factor (e.g., 2.0 for double size) +
+
+
+Note: The internal resolution remains 1024x768, but the window is scaled. +
+
+
Example:
+

+mcrfpy.setScale(2.0)  # Double the window size
+
+
+
+

Classes

+
+

Animation

+

Animation object for animating UI properties

+

Properties:

+
+property: str: Name of the property being animated (e.g., "x", "y", "scale") +
+
+duration: float: Total duration of the animation in seconds +
+
+elapsed_time: float: Time elapsed since animation started (read-only) +
+
+current_value: float: Current interpolated value of the animation (read-only) +
+
+is_running: bool: True if animation is currently running (read-only) +
+
+is_finished: bool: True if animation has completed (read-only) +
+

Methods:

+
+
update(delta_time)
+

Update the animation by the given time delta.

+
+delta_time +(float): +Time elapsed since last update in seconds +
+
+Returns: bool: True if animation is still running, False if finished +
+
+
+complete(...) +
+
+hasValidTarget(...) +
+
+
get_current_value()
+

Get the current interpolated value of the animation.

+
+Returns: float: Current animation value between start and end +
+
+
+
start(target)
+

Start the animation on a target UI element.

+
+target +(UIDrawable): +The UI element to animate +
+
+Note: The target must have the property specified in the animation constructor. +
+
+
+
+

Caption

+

Caption(pos=None, font=None, text='', **kwargs) + +A text display UI element with customizable font and styling. + +Args: + pos (tuple, optional): Position as (x, y) tuple. Default: (0, 0) + font (Font, optional): Font object for text rendering. Default: engine default font + text (str, optional): The text content to display. Default: '' + +Keyword Args: + fill_color (Color): Text fill color. Default: (255, 255, 255, 255) + outline_color (Color): Text outline color. Default: (0, 0, 0, 255) + outline (float): Text outline thickness. Default: 0 + font_size (float): Font size in points. Default: 16 + click (callable): Click event 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 + x (float): X position override. Default: 0 + y (float): Y position override. Default: 0 + +Attributes: + text (str): The displayed text content + x, y (float): Position in pixels + pos (Vector): Position as a Vector object + font (Font): Font used for rendering + font_size (float): Font size in points + fill_color, outline_color (Color): Text appearance + outline (float): Outline thickness + click (callable): Click event handler + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name + w, h (float): Read-only computed size based on text and font

+

Methods:

+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+
+

Color

+

SFML Color Object

+

Methods:

+
+
to_hex()
+

Convert this Color to a hexadecimal string.

+
+Returns: str: Hex color string in format "#RRGGBB" +
+
+Example: +

+hex_str = color.to_hex()  # Returns "#FF0000"
+
+
+
+
+
from_hex(hex_string)
+

Create a Color from a hexadecimal color string.

+
+hex_string +(str): +Hex color string (e.g., "#FF0000" or "FF0000") +
+
+Returns: Color: New Color object from hex string +
+
+Example: +

+red = Color.from_hex("#FF0000")
+
+
+
+
+
lerp(other, t)
+

Linearly interpolate between this color and another.

+
+other +(Color): +The color to interpolate towards +
+
+t +(float): +Interpolation factor from 0.0 to 1.0 +
+
+Returns: Color: New interpolated Color object +
+
+Example: +

+mixed = red.lerp(blue, 0.5)  # 50% between red and blue
+
+
+
+
+
+

Drawable

+

Base class for all drawable UI elements

+

Methods:

+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+
+

Entity

+

Entity(grid_pos=None, texture=None, sprite_index=0, **kwargs) + +A game entity that exists on a grid with sprite rendering. + +Args: + grid_pos (tuple, optional): Grid position as (x, y) tuple. Default: (0, 0) + texture (Texture, optional): Texture object for sprite. Default: default texture + sprite_index (int, optional): Index into texture atlas. Default: 0 + +Keyword Args: + grid (Grid): Grid to attach entity to. Default: None + visible (bool): Visibility state. Default: True + opacity (float): Opacity (0.0-1.0). Default: 1.0 + name (str): Element name for finding. Default: None + x (float): X grid position override. Default: 0 + y (float): Y grid position override. Default: 0 + +Attributes: + pos (tuple): Grid position as (x, y) tuple + x, y (float): Grid position coordinates + draw_pos (tuple): Pixel position for rendering + gridstate (GridPointState): Visibility state for grid points + sprite_index (int): Current sprite index + visible (bool): Visibility state + opacity (float): Opacity value + name (str): Element name

+

Methods:

+
+
die()
+

Remove this entity from its parent grid.

+
+Note: The entity object remains valid but is no longer rendered or updated. +
+
+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+
at(x, y)
+

Check if this entity is at the specified grid coordinates.

+
+x +(int): +Grid x coordinate to check +
+
+y +(int): +Grid y coordinate to check +
+
+Returns: bool: True if entity is at position (x, y), False otherwise +
+
+
+path_to(...) +
+
+update_visibility(...) +
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+
index()
+

Get the index of this entity in its parent grid's entity list.

+
+Returns: int: Index position, or -1 if not in a grid +
+
+
+
+

EntityCollection

+

Iterable, indexable collection of Entities

+

Methods:

+
+
remove(entity)
+

Remove the first occurrence of an entity from the collection.

+
+entity +(Entity): +The entity to remove +
+
+
+
count(entity)
+

Count the number of occurrences of an entity in the collection.

+
+entity +(Entity): +The entity to count +
+
+Returns: int: Number of times entity appears in collection +
+
+
+
extend(iterable)
+

Add all entities from an iterable to the collection.

+
+iterable +(Iterable[Entity]): +Entities to add +
+
+
+
index(entity)
+

Find the index of the first occurrence of an entity.

+
+entity +(Entity): +The entity to find +
+
+Returns: int: Index of entity in collection +
+
+
+
append(entity)
+

Add an entity to the end of the collection.

+
+entity +(Entity): +The entity to add +
+
+
+
+

Font

+

SFML Font Object

+
+
+

Frame

+

Frame(pos=None, size=None, **kwargs) + +A rectangular frame UI element that can contain other drawable elements. + +Args: + pos (tuple, optional): Position as (x, y) tuple. Default: (0, 0) + size (tuple, optional): Size as (width, height) tuple. Default: (0, 0) + +Keyword Args: + fill_color (Color): Background fill color. Default: (0, 0, 0, 128) + outline_color (Color): Border outline color. Default: (255, 255, 255, 255) + outline (float): Border outline thickness. Default: 0 + click (callable): Click event handler. Default: None + children (list): Initial list of child drawable elements. 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 + x (float): X position override. Default: 0 + y (float): Y position override. 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 + +Attributes: + x, y (float): Position in pixels + w, h (float): Size in pixels + pos (Vector): Position as a Vector object + fill_color, outline_color (Color): Visual appearance + outline (float): Border 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

+

Methods:

+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+
+

Grid

+

Grid(pos=None, size=None, grid_size=None, texture=None, **kwargs) + +A grid-based UI element for tile-based rendering and entity management. + +Args: + pos (tuple, optional): Position as (x, y) tuple. Default: (0, 0) + size (tuple, optional): Size as (width, height) tuple. Default: auto-calculated from grid_size + grid_size (tuple, optional): Grid dimensions as (grid_x, grid_y) tuple. Default: (2, 2) + texture (Texture, optional): Texture containing tile sprites. Default: default texture + +Keyword Args: + fill_color (Color): Background fill color. Default: None + click (callable): Click event handler. Default: None + center_x (float): X coordinate of center point. Default: 0 + center_y (float): Y coordinate of center point. Default: 0 + zoom (float): Zoom level for rendering. Default: 1.0 + perspective (int): Entity perspective index (-1 for omniscient). Default: -1 + 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 + x (float): X position override. Default: 0 + y (float): Y position override. Default: 0 + w (float): Width override. Default: auto-calculated + h (float): Height override. Default: auto-calculated + grid_x (int): Grid width override. Default: 2 + grid_y (int): Grid height override. Default: 2 + +Attributes: + x, y (float): Position in pixels + w, h (float): Size in pixels + pos (Vector): Position as a Vector object + size (tuple): Size as (width, height) tuple + center (tuple): Center point as (x, y) tuple + center_x, center_y (float): Center point coordinates + zoom (float): Zoom level for rendering + grid_size (tuple): Grid dimensions (width, height) in tiles + grid_x, grid_y (int): Grid dimensions + texture (Texture): Tile texture atlas + fill_color (Color): Background color + entities (EntityCollection): Collection of entities in the grid + perspective (int): Entity perspective index + click (callable): Click event handler + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name

+

Methods:

+
+get_dijkstra_path(...) +
+
+compute_astar_path(...) +
+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+is_in_fov(...) +
+
+
at(x, y)
+

Get the GridPoint at the specified grid coordinates.

+
+x +(int): +Grid x coordinate +
+
+y +(int): +Grid y coordinate +
+
+Returns: GridPoint or None: The grid point at (x, y), or None if out of bounds +
+
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+find_path(...) +
+
+compute_fov(...) +
+
+compute_dijkstra(...) +
+
+get_dijkstra_distance(...) +
+
+
+

GridPoint

+

UIGridPoint object

+

Properties:

+
+x: int: Grid x coordinate of this point +
+
+y: int: Grid y coordinate of this point +
+
+texture_index: int: Index of the texture/sprite to display at this point +
+
+solid: bool: Whether this point blocks movement +
+
+transparent: bool: Whether this point allows light/vision through +
+
+color: Color: Color tint applied to the texture at this point +
+
+
+

GridPointState

+

UIGridPointState object

+

Properties:

+
+visible: bool: Whether this point is currently visible to the player +
+
+discovered: bool: Whether this point has been discovered/explored +
+
+custom_flags: int: Bitfield for custom game-specific flags +
+
+
+

Scene

+

Base class for object-oriented scenes

+

Methods:

+
+
get_ui()
+

Get the UI element collection for this scene.

+
+Returns: UICollection: Collection of all UI elements in this scene +
+
+
+
keypress(handler)
+

Register a keyboard handler function for this scene.

+
+handler +(callable): +Function that takes (key_name: str, is_pressed: bool) +
+
+Note: Alternative to overriding the on_keypress method. +
+
+
+
activate()
+

Make this scene the active scene.

+
+Note: Equivalent to calling setScene() with this scene's name. +
+
+
+
register_keyboard(callable)
+

Register a keyboard event handler function for the scene.

+
+callable +(callable): +Function that takes (key: str, action: str) parameters +
+
+Note: Alternative to overriding the on_keypress method when subclassing Scene objects. +
+
+Example: +

+def handle_keyboard(key, action):
+    print(f"Key '{key}' was {action}")
+    if key == "q" and action == "press":
+        # Handle quit
+        pass
+scene.register_keyboard(handle_keyboard)
+
+
+
+
+
+

Sprite

+

Sprite(pos=None, texture=None, sprite_index=0, **kwargs) + +A sprite UI element that displays a texture or portion of a texture atlas. + +Args: + pos (tuple, optional): Position as (x, y) tuple. Default: (0, 0) + texture (Texture, optional): Texture object to display. Default: default texture + sprite_index (int, optional): Index into texture atlas. Default: 0 + +Keyword Args: + scale (float): Uniform scale factor. Default: 1.0 + scale_x (float): Horizontal scale factor. Default: 1.0 + scale_y (float): Vertical scale factor. Default: 1.0 + click (callable): Click event 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 + x (float): X position override. Default: 0 + y (float): Y position override. Default: 0 + +Attributes: + x, y (float): Position in pixels + pos (Vector): Position as a Vector object + texture (Texture): The texture being displayed + sprite_index (int): Current sprite index in texture atlas + scale (float): Uniform scale factor + scale_x, scale_y (float): Individual scale factors + click (callable): Click event handler + visible (bool): Visibility state + opacity (float): Opacity value + z_index (int): Rendering order + name (str): Element name + w, h (float): Read-only computed size based on texture and scale

+

Methods:

+
+
move(dx, dy)
+

Move the element by a relative offset.

+
+dx +(float): +Horizontal offset in pixels +
+
+dy +(float): +Vertical offset in pixels +
+
+Note: This modifies the x and y position properties by the given amounts. +
+
+
+
get_bounds()
+

Get the bounding rectangle of this drawable element.

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

Resize the element to new dimensions.

+
+width +(float): +New width in pixels +
+
+height +(float): +New height in pixels +
+
+Note: For Caption and Sprite, this may not change actual size if determined by content. +
+
+
+
+

Texture

+

SFML Texture Object

+
+
+

Timer

+

Timer(name, callback, interval, once=False) + +Create a timer that calls a function at regular intervals. + +Args: + name (str): Unique identifier for the timer + callback (callable): Function to call - receives (timer, runtime) args + interval (int): Time between calls in milliseconds + once (bool): If True, timer stops after first call. Default: False + +Attributes: + interval (int): Time between calls in milliseconds + remaining (int): Time until next call in milliseconds (read-only) + paused (bool): Whether timer is paused (read-only) + active (bool): Whether timer is active and not paused (read-only) + callback (callable): The callback function + once (bool): Whether timer stops after firing once + +Methods: + pause(): Pause the timer, preserving time remaining + resume(): Resume a paused timer + cancel(): Stop and remove the timer + restart(): Reset timer to start from beginning + +Example: + def on_timer(timer, runtime): + print(f'Timer {timer} fired at {runtime}ms') + if runtime > 5000: + timer.cancel() + + timer = mcrfpy.Timer('my_timer', on_timer, 1000) + timer.pause() # Pause timer + timer.resume() # Resume timer + timer.once = True # Make it one-shot

+

Methods:

+
+
cancel()
+

Cancel the timer and remove it from the system.

+
+Note: After cancelling, the timer object cannot be reused. +
+
+
+
pause()
+

Pause the timer, stopping its callback execution.

+
+Note: Use resume() to continue the timer from where it was paused. +
+
+
+
resume()
+

Resume a paused timer.

+
+Note: Has no effect if timer is not paused. +
+
+
+
restart()
+

Restart the timer from the beginning.

+
+Note: Resets the timer's internal clock to zero. +
+
+
+
+

UICollection

+

Iterable, indexable collection of UI objects

+

Methods:

+
+
remove(drawable)
+

Remove the first occurrence of a drawable from the collection.

+
+drawable +(UIDrawable): +The drawable to remove +
+
+
+
count(drawable)
+

Count the number of occurrences of a drawable in the collection.

+
+drawable +(UIDrawable): +The drawable to count +
+
+Returns: int: Number of times drawable appears in collection +
+
+
+
extend(iterable)
+

Add all drawables from an iterable to the collection.

+
+iterable +(Iterable[UIDrawable]): +Drawables to add +
+
+
+
index(drawable)
+

Find the index of the first occurrence of a drawable.

+
+drawable +(UIDrawable): +The drawable to find +
+
+Returns: int: Index of drawable in collection +
+
+
+
append(drawable)
+

Add a drawable element to the end of the collection.

+
+drawable +(UIDrawable): +The drawable element to add +
+
+
+
+

UICollectionIter

+

Iterator for a collection of UI objects

+
+
+

UIEntityCollectionIter

+

Iterator for a collection of UI objects

+
+
+

Vector

+

SFML Vector Object

+

Methods:

+
+
magnitude_squared()
+

Calculate the squared magnitude of this vector.

+
+Returns: float: The squared magnitude (faster than magnitude()) +
+
+Note: Use this for comparisons to avoid expensive square root calculation. +
+
+
+
copy()
+

Create a copy of this vector.

+
+Returns: Vector: New Vector object with same x and y values +
+
+
+
magnitude()
+

Calculate the length/magnitude of this vector.

+
+Returns: float: The magnitude of the vector +
+
+Example: +

+length = vector.magnitude()
+
+
+
+
+
angle()
+

Get the angle of this vector in radians.

+
+Returns: float: Angle in radians from positive x-axis +
+
+
+
distance_to(other)
+

Calculate the distance to another vector.

+
+other +(Vector): +The other vector +
+
+Returns: float: Distance between the two vectors +
+
+
+
normalize()
+

Return a unit vector in the same direction.

+
+Returns: Vector: New normalized vector with magnitude 1.0 +
+
+
+
dot(other)
+

Calculate the dot product with another vector.

+
+other +(Vector): +The other vector +
+
+Returns: float: Dot product of the two vectors +
+
+
+
+

Window

+

Window singleton for accessing and modifying the game window properties

+

Methods:

+
+
get()
+

Get the Window singleton instance.

+
+Returns: Window: The singleton window object +
+
+Note: This is a static method that returns the same instance every time. +
+
+
+
screenshot(filename)
+

Take a screenshot and save it to a file.

+
+filename +(str): +Path where to save the screenshot +
+
+Note: Supports PNG, JPG, and BMP formats based on file extension. +
+
+
+
center()
+

Center the window on the screen.

+
+Note: Only works if the window is not fullscreen. +
+
+
+

Automation Module

+

The mcrfpy.automation module provides testing and automation capabilities.

+
+

automation.click

+

Click at position

+
+
+

automation.doubleClick

+

Double click at position

+
+
+

automation.dragRel

+

Drag mouse relative to current position

+
+
+

automation.dragTo

+

Drag mouse to position

+
+
+

automation.hotkey

+

Press a hotkey combination (e.g., hotkey('ctrl', 'c'))

+
+
+

automation.keyDown

+

Press and hold a key

+
+
+

automation.keyUp

+

Release a key

+
+
+

automation.middleClick

+

Middle click at position

+
+
+

automation.mouseDown

+

Press mouse button

+
+
+

automation.mouseUp

+

Release mouse button

+
+
+

automation.moveRel

+

Move mouse relative to current position

+
+
+

automation.moveTo

+

Move mouse to absolute position

+
+
+

automation.onScreen

+

Check if coordinates are within screen bounds

+
+
+

automation.position

+

Get current mouse position as (x, y) tuple

+
+
+

automation.rightClick

+

Right click at position

+
+
+

automation.screenshot

+

Save a screenshot to the specified file

+
+
+

automation.scroll

+

Scroll wheel at position

+
+
+

automation.size

+

Get screen size as (width, height) tuple

+
+
+

automation.tripleClick

+

Triple click at position

+
+
+

automation.typewrite

+

Type text with optional interval between keystrokes

+
+
+ + \ No newline at end of file