"""
Godot MCP Tools Package

This package contains all MCP tool implementations organized by domain.
Each module corresponds to a functional domain in the Godot engine.

Tool Naming Convention: domain_action (e.g., scene_create, node_add)

Modules:
    - godot: Godot version and general info
    - editor: Editor launch and control
    - project: Project management and settings
    - scene: Scene creation and manipulation
    - node: Node operations
    - script: Script management
    - signal: Signal connections
    - resource: Resource and asset management
    - tilemap: TileMap operations
    - input: Input map configuration
    - animation: Animation creation and management
    - collision: Collision shape management
    - physics: Physics body properties
    - camera: Camera management
    - audio: Audio system
    - ui: UI controls and layout
    - autoload: Autoload singletons
    - timer: Timer nodes
    - canvas_layer: Canvas layer management
    - particle: Particle systems
    - light: Light sources and environment
    - viewport: Viewport management
"""

# Import all tools to register them with the MCP server
from godot_mcp.tools.godot import godot_get_version
from godot_mcp.tools.editor import editor_launch
from godot_mcp.tools.animation import (
    animation_create,
    animation_add_track,
    animation_set_keyframe,
    animation_get_info,
    animation_list,
)
from godot_mcp.tools.collision import (
    collision_add_shape,
    collision_set_shape_properties,
    collision_set_layers,
)
from godot_mcp.tools.physics import (
    physics_set_body_properties,
)
from godot_mcp.tools.camera import (
    camera_add,
    camera_set_current,
    camera_set_properties,
    camera_get_info,
)
from godot_mcp.tools.audio import (
    audio_add_stream_player,
    audio_set_stream,
    audio_configure_bus,
)
from godot_mcp.tools.ui import (
    ui_add_control,
    ui_set_layout,
    ui_add_container,
)
from godot_mcp.tools.autoload import (
    autoload_add,
    autoload_remove,
    autoload_list,
)
from godot_mcp.tools.timer import (
    timer_add,
    timer_configure,
)
from godot_mcp.tools.canvas_layer import (
    canvas_layer_add,
    canvas_layer_set_order,
    canvas_layer_configure,
)
from godot_mcp.tools.particle import (
    particle_add_system,
    particle_set_properties,
    particle_start_emitting,
)
from godot_mcp.tools.light import (
    light_add,
    light_set_properties,
    light_set_shadow,
    environment_setup,
)
from godot_mcp.tools.viewport import (
    viewport_add,
    viewport_set_size,
    viewport_configure,
)
from godot_mcp.tools.navigation import (
    navigation_add_region,
    navigation_set_navmesh,
    navigation_add_obstacle,
    navigation_add_agent,
)
from godot_mcp.tools.project import (
    project_export,
    project_get_debug_output,
    project_get_info,
    project_list,
    project_list_export_presets,
    project_run,
    project_setting_get,
    project_setting_set,
    project_stop,
    project_update_uids,
)
from godot_mcp.tools.scene import (
    scene_create,
    scene_get_tree,
    scene_instantiate,
    scene_list,
    scene_save,
)
from godot_mcp.tools.node import (
    node_add,
    node_add_to_group,
    node_delete,
    node_duplicate,
    node_get_properties,
    node_load_sprite_texture,
    node_rename,
    node_reparent,
    node_set_property,
)
from godot_mcp.tools.script import (
    script_attach,
    script_create,
    script_detach,
    script_list,
)
from godot_mcp.tools.signal import (
    signal_connect,
    signal_disconnect,
    signal_list_connections,
    signal_list_node_signals,
)
from godot_mcp.tools.resource import (
    resource_create_material,
    resource_export_mesh_library,
    resource_get_material_properties,
    resource_get_uid,
    resource_list,
)
from godot_mcp.tools.tilemap import (
    tilemap_get_cell,
    tilemap_set_cell,
)
from godot_mcp.tools.input import (
    input_list_actions,
    input_setup_action,
)

__all__ = [
    # Godot
    "godot_get_version",
    # Editor
    "editor_launch",
    # Animation
    "animation_create",
    "animation_add_track",
    "animation_set_keyframe",
    "animation_get_info",
    "animation_list",
    # Project
    "project_export",
    "project_get_debug_output",
    "project_get_info",
    "project_list",
    "project_list_export_presets",
    "project_run",
    "project_setting_get",
    "project_setting_set",
    "project_stop",
    "project_update_uids",
    # Scene
    "scene_create",
    "scene_get_tree",
    "scene_instantiate",
    "scene_list",
    "scene_save",
    # Node
    "node_add",
    "node_add_to_group",
    "node_delete",
    "node_duplicate",
    "node_get_properties",
    "node_load_sprite_texture",
    "node_rename",
    "node_reparent",
    "node_set_property",
    # Script
    "script_attach",
    "script_create",
    "script_detach",
    "script_list",
    # Signal
    "signal_connect",
    "signal_disconnect",
    "signal_list_connections",
    "signal_list_node_signals",
    # Resource
    "resource_create_material",
    "resource_export_mesh_library",
    "resource_get_material_properties",
    "resource_get_uid",
    "resource_list",
    # TileMap
    "tilemap_get_cell",
    "tilemap_set_cell",
    # Input
    "input_list_actions",
    "input_setup_action",
    # Collision
    "collision_add_shape",
    "collision_set_shape_properties",
    "collision_set_layers",
    # Physics
    "physics_set_body_properties",
    # Camera
    "camera_add",
    "camera_set_current",
    "camera_set_properties",
    "camera_get_info",
    # Audio
    "audio_add_stream_player",
    "audio_set_stream",
    "audio_configure_bus",
    # UI
    "ui_add_control",
    "ui_set_layout",
    "ui_add_container",
    # Autoload
    "autoload_add",
    "autoload_remove",
    "autoload_list",
    # Timer
    "timer_add",
    "timer_configure",
    # CanvasLayer
    "canvas_layer_add",
    "canvas_layer_set_order",
    "canvas_layer_configure",
    # Particle
    "particle_add_system",
    "particle_set_properties",
    "particle_start_emitting",
    # Light
    "light_add",
    "light_set_properties",
    "light_set_shadow",
    "environment_setup",
    # Viewport
    "viewport_add",
    "viewport_set_size",
    "viewport_configure",
    # Navigation
    "navigation_add_region",
    "navigation_set_navmesh",
    "navigation_add_obstacle",
    "navigation_add_agent",
]
