Quellcode für miniworlds.worlds.manager.music_manager

from typing import Optional
import miniworlds.base.app as app_mod

[Doku] class MusicManager: def __init__(self, app: app_mod.App): # Store a reference to the app and its internal music manager self.app: app_mod.App = app self.music_manager = self.app.music_manager
[Doku] def pause(self) -> None: """ Pauses the currently playing music. Examples: >>> world.music.pause() """ self.music_manager.pause()
[Doku] def is_playing(self) -> bool: """ Checks if music is currently playing (not paused). Returns: True if music is playing, False otherwise. Examples: >>> if world.music.is_playing(): ... print("Music is playing.") """ return self.music_manager.is_playing()
[Doku] def get_path(self) -> str: """ Returns the path of the currently loaded music file. Returns: Path to the current music file. Examples: >>> current_path = world.music.get_path() >>> print(current_path) """ return self.music_manager.path()
[Doku] def play(self, path: Optional[str] = None, loop: int = -1) -> None: """ Plays a music file from the given path. Args: path: Path to the music file. If None, replays the last used music. loop: Number of times to repeat the music. Use -1 for infinite looping. Examples: >>> world.music.play("assets/music/theme.mp3") >>> world.music.play("assets/music/loop.wav", loop=2) >>> world.music.play() # Replays last loaded music """ self.music_manager.play_music(path, loop)
[Doku] def stop(self) -> None: """ Stops the currently playing music. Examples: >>> world.music.stop() """ self.music_manager.stop_music()
[Doku] def set_volume(self, volume: float) -> None: """ Sets the playback volume. Args: volume: Volume level from 0.0 (silent) to 100.0 (maximum). Raises: ValueError: If volume is outside the 0-100 range. Examples: >>> world.music.set_volume(80) """ if not 0.0 <= volume <= 100.0: raise ValueError("Volume must be between 0 and 100.") self.music_manager.set_volume(volume)
[Doku] def get_volume(self) -> float: """ Gets the current playback volume. Returns: Volume level as a float between 0.0 and 100.0. Examples: >>> current_volume = world.music.get_volume() >>> print(f"Volume: {current_volume}") """ return self.music_manager.get_volume()
[Doku] def toggle_pause(self) -> None: """ Toggles the pause state of the music. Pauses if playing, resumes if paused. Note: This assumes that the internal music manager has a `resume()` method. Examples: >>> world.music.toggle_pause() """ if self.is_playing(): self.pause() else: # Resume playback if previously paused self.music_manager.resume()