"""Delegated panel/runtime methods for MyWorld."""


class PanelDelegates:
    def _draw_menu_bar(self):
        self.editor_panels.draw_menu_bar()

    def _draw_toolbar(self):
        self.editor_panels.draw_toolbar()

    def _draw_scene_tree(self, *args, **kwargs):
        return self.editor_panels._draw_scene_tree(*args, **kwargs)

    def _build_scene_tree(self, *args, **kwargs):
        return self.editor_panels._build_scene_tree(*args, **kwargs)

    def _draw_scene_node(self, *args, **kwargs):
        return self.editor_panels._draw_scene_node(*args, **kwargs)

    def _show_node_context_menu(self, *args, **kwargs):
        return self.editor_panels._show_node_context_menu(*args, **kwargs)

    def _draw_resource_manager(self, *args, **kwargs):
        return self.editor_panels._draw_resource_manager(*args, **kwargs)

    def _draw_property_panel(self, *args, **kwargs):
        return self.editor_panels._draw_property_panel(*args, **kwargs)

    def _draw_web_panel(self, *args, **kwargs):
        return self.editor_panels._draw_web_panel(*args, **kwargs)

    def _draw_node_properties(self, *args, **kwargs):
        return self.editor_panels._draw_node_properties(*args, **kwargs)

    def _getActor(self, *args, **kwargs):
        return self.animation_tools._getActor(*args, **kwargs)

    def _getModelFormat(self, *args, **kwargs):
        return self.animation_tools._getModelFormat(*args, **kwargs)

    def _processAnimationNames(self, *args, **kwargs):
        return self.animation_tools._processAnimationNames(*args, **kwargs)

    def _isLikelyBoneGroup(self, *args, **kwargs):
        return self.animation_tools._isLikelyBoneGroup(*args, **kwargs)

    def _analyzeAnimationQuality(self, *args, **kwargs):
        return self.animation_tools._analyzeAnimationQuality(*args, **kwargs)

    def _playAnimation(self, *args, **kwargs):
        return self.animation_tools._playAnimation(*args, **kwargs)

    def _pauseAnimation(self, *args, **kwargs):
        return self.animation_tools._pauseAnimation(*args, **kwargs)

    def _stopAnimation(self, *args, **kwargs):
        return self.animation_tools._stopAnimation(*args, **kwargs)

    def _loopAnimation(self, *args, **kwargs):
        return self.animation_tools._loopAnimation(*args, **kwargs)

    def _setAnimationSpeed(self, *args, **kwargs):
        return self.animation_tools._setAnimationSpeed(*args, **kwargs)

    def _clear_animation_cache(self, *args, **kwargs):
        return self.animation_tools._clear_animation_cache(*args, **kwargs)
    def _get_node_type_from_node(self, node):
        """从节点判断其类型"""
        # 检查是否为GUI元素
        if hasattr(node, 'getPythonTag') and node.getPythonTag('gui_element'):
            return "GUI元素"
        
        # 检查是否为光源
        node_name = node.getName() or ""
        if "light" in node_name.lower() or "Light" in node_name:
            return "光源"
        
        # 检查是否为相机
        if "camera" in node_name.lower() or "Camera" in node_name:
            return "相机"
        
        # 检查是否为模型
        if hasattr(self, 'scene_manager') and self.scene_manager:
            if hasattr(self.scene_manager, 'models') and node in self.scene_manager.models:
                return "模型"
        
        # 默认为几何体
        return "几何体"
    
    def _draw_status_badges(self, *args, **kwargs):
        return self.editor_panels._draw_status_badges(*args, **kwargs)

    def _draw_transform_properties(self, *args, **kwargs):
        return self.editor_panels._draw_transform_properties(*args, **kwargs)

    def _draw_gui_properties(self, *args, **kwargs):
        return self.editor_panels._draw_gui_properties(*args, **kwargs)

    def _draw_light_properties(self, *args, **kwargs):
        return self.editor_panels._draw_light_properties(*args, **kwargs)

    def _draw_model_properties(self, *args, **kwargs):
        return self.editor_panels._draw_model_properties(*args, **kwargs)

    def _draw_animation_properties(self, *args, **kwargs):
        return self.editor_panels._draw_animation_properties(*args, **kwargs)

    def _draw_collision_properties(self, *args, **kwargs):
        return self.editor_panels._draw_collision_properties(*args, **kwargs)

    def _draw_shape_specific_parameters(self, *args, **kwargs):
        return self.editor_panels._draw_shape_specific_parameters(*args, **kwargs)

    def _draw_sphere_parameters(self, *args, **kwargs):
        return self.editor_panels._draw_sphere_parameters(*args, **kwargs)

    def _draw_box_parameters(self, *args, **kwargs):
        return self.editor_panels._draw_box_parameters(*args, **kwargs)

    def _draw_capsule_parameters(self, *args, **kwargs):
        return self.editor_panels._draw_capsule_parameters(*args, **kwargs)

    def _draw_plane_parameters(self, *args, **kwargs):
        return self.editor_panels._draw_plane_parameters(*args, **kwargs)

    def _draw_property_actions(self, *args, **kwargs):
        return self.editor_panels._draw_property_actions(*args, **kwargs)

    def _draw_appearance_properties(self, *args, **kwargs):
        return self.editor_panels._draw_appearance_properties(*args, **kwargs)

    def _draw_material_properties(self, *args, **kwargs):
        return self.editor_panels._draw_material_properties(*args, **kwargs)

    def _draw_shading_model_panel(self, *args, **kwargs):
        return self.editor_panels._draw_shading_model_panel(*args, **kwargs)


    def _apply_gui_font(self, *args, **kwargs):
        return self.property_helpers._apply_gui_font(*args, **kwargs)

    def _apply_gui_font_size(self, *args, **kwargs):
        return self.property_helpers._apply_gui_font_size(*args, **kwargs)

    def _apply_gui_font_style(self, *args, **kwargs):
        return self.property_helpers._apply_gui_font_style(*args, **kwargs)

    def _has_collision(self, *args, **kwargs):
        return self.property_helpers._has_collision(*args, **kwargs)

    def _get_current_collision_shape(self, *args, **kwargs):
        return self.property_helpers._get_current_collision_shape(*args, **kwargs)

    def _get_current_collision_shape_type(self, *args, **kwargs):
        return self.property_helpers._get_current_collision_shape_type(*args, **kwargs)

    def _get_collision_position_offset(self, *args, **kwargs):
        return self.property_helpers._get_collision_position_offset(*args, **kwargs)

    def _is_collision_visible(self, *args, **kwargs):
        return self.property_helpers._is_collision_visible(*args, **kwargs)

    def _add_collision_to_node(self, *args, **kwargs):
        return self.property_helpers._add_collision_to_node(*args, **kwargs)

    def _remove_collision_from_node(self, *args, **kwargs):
        return self.property_helpers._remove_collision_from_node(*args, **kwargs)

    def _toggle_collision_visibility(self, *args, **kwargs):
        return self.property_helpers._toggle_collision_visibility(*args, **kwargs)

    def _update_collision_position(self, *args, **kwargs):
        return self.property_helpers._update_collision_position(*args, **kwargs)

    def _get_shape_type_from_name(self, *args, **kwargs):
        return self.property_helpers._get_shape_type_from_name(*args, **kwargs)

    def _get_sphere_radius(self, *args, **kwargs):
        return self.property_helpers._get_sphere_radius(*args, **kwargs)

    def _update_sphere_radius(self, *args, **kwargs):
        return self.property_helpers._update_sphere_radius(*args, **kwargs)

    def _get_box_size(self, *args, **kwargs):
        return self.property_helpers._get_box_size(*args, **kwargs)

    def _update_box_size(self, *args, **kwargs):
        return self.property_helpers._update_box_size(*args, **kwargs)

    def _get_capsule_radius(self, *args, **kwargs):
        return self.property_helpers._get_capsule_radius(*args, **kwargs)

    def _update_capsule_radius(self, *args, **kwargs):
        return self.property_helpers._update_capsule_radius(*args, **kwargs)

    def _get_capsule_height(self, *args, **kwargs):
        return self.property_helpers._get_capsule_height(*args, **kwargs)

    def _update_capsule_height(self, *args, **kwargs):
        return self.property_helpers._update_capsule_height(*args, **kwargs)

    def _get_plane_normal(self, *args, **kwargs):
        return self.property_helpers._get_plane_normal(*args, **kwargs)

    def _update_plane_normal(self, *args, **kwargs):
        return self.property_helpers._update_plane_normal(*args, **kwargs)

    def _manual_collision_detection(self, *args, **kwargs):
        return self.property_helpers._manual_collision_detection(*args, **kwargs)

    def _update_node_name(self, *args, **kwargs):
        return self.property_helpers._update_node_name(*args, **kwargs)

    def _get_material_base_color(self, *args, **kwargs):
        return self.property_helpers._get_material_base_color(*args, **kwargs)

    def _update_material_base_color(self, *args, **kwargs):
        return self.property_helpers._update_material_base_color(*args, **kwargs)

    def _update_material_roughness(self, *args, **kwargs):
        return self.property_helpers._update_material_roughness(*args, **kwargs)

    def _update_material_metallic(self, *args, **kwargs):
        return self.property_helpers._update_material_metallic(*args, **kwargs)

    def _update_material_ior(self, *args, **kwargs):
        return self.property_helpers._update_material_ior(*args, **kwargs)

    def _apply_material_preset(self, *args, **kwargs):
        return self.property_helpers._apply_material_preset(*args, **kwargs)

    def _apply_material_to_node(self, *args, **kwargs):
        return self.property_helpers._apply_material_to_node(*args, **kwargs)

    def _reset_material(self, *args, **kwargs):
        return self.property_helpers._reset_material(*args, **kwargs)

    def _select_texture_for_material(self, *args, **kwargs):
        return self.property_helpers._select_texture_for_material(*args, **kwargs)

    def _apply_texture_to_material(self, *args, **kwargs):
        return self.property_helpers._apply_texture_to_material(*args, **kwargs)

    def _clear_all_textures(self, *args, **kwargs):
        return self.property_helpers._clear_all_textures(*args, **kwargs)

    def _display_current_textures(self, *args, **kwargs):
        return self.property_helpers._display_current_textures(*args, **kwargs)

    def _update_shading_model(self, *args, **kwargs):
        return self.property_helpers._update_shading_model(*args, **kwargs)

    def _update_transparency(self, *args, **kwargs):
        return self.property_helpers._update_transparency(*args, **kwargs)

    def _draw_texture_file_dialog(self, *args, **kwargs):
        return self.property_helpers._draw_texture_file_dialog(*args, **kwargs)

    def start_transform_monitoring(self, *args, **kwargs):
        return self.property_helpers.start_transform_monitoring(*args, **kwargs)

    def stop_transform_monitoring(self, *args, **kwargs):
        return self.property_helpers.stop_transform_monitoring(*args, **kwargs)

    def _update_last_transform_values(self, *args, **kwargs):
        return self.property_helpers._update_last_transform_values(*args, **kwargs)

    def _check_transform_changes(self, *args, **kwargs):
        return self.property_helpers._check_transform_changes(*args, **kwargs)

    def update_transform_monitoring(self, *args, **kwargs):
        return self.property_helpers.update_transform_monitoring(*args, **kwargs)

    def show_color_picker(self, *args, **kwargs):
        return self.property_helpers.show_color_picker(*args, **kwargs)

    def _draw_color_picker(self, *args, **kwargs):
        return self.property_helpers._draw_color_picker(*args, **kwargs)

    def _apply_color_selection(self, *args, **kwargs):
        return self.property_helpers._apply_color_selection(*args, **kwargs)

    def _draw_color_button(self, *args, **kwargs):
        return self.property_helpers._draw_color_button(*args, **kwargs)

    def _refresh_available_fonts(self, *args, **kwargs):
        return self.property_helpers._refresh_available_fonts(*args, **kwargs)

    def show_font_selector(self, *args, **kwargs):
        return self.property_helpers.show_font_selector(*args, **kwargs)

    def _draw_font_selector(self, *args, **kwargs):
        return self.property_helpers._draw_font_selector(*args, **kwargs)

    def _apply_font_selection(self, *args, **kwargs):
        return self.property_helpers._apply_font_selection(*args, **kwargs)

    def _draw_font_selector_button(self, *args, **kwargs):
        return self.property_helpers._draw_font_selector_button(*args, **kwargs)
    def _draw_console(self, *args, **kwargs):
        return self.script_panels._draw_console(*args, **kwargs)

    def _draw_script_panel(self, *args, **kwargs):
        return self.script_panels._draw_script_panel(*args, **kwargs)

    def _draw_script_status_group(self, *args, **kwargs):
        return self.script_panels._draw_script_status_group(*args, **kwargs)

    def _draw_create_script_group(self, *args, **kwargs):
        return self.script_panels._draw_create_script_group(*args, **kwargs)

    def _draw_available_scripts_group(self, *args, **kwargs):
        return self.script_panels._draw_available_scripts_group(*args, **kwargs)

    def _draw_script_mounting_group(self, *args, **kwargs):
        return self.script_panels._draw_script_mounting_group(*args, **kwargs)


    def _toggle_hot_reload(self, *args, **kwargs):
        return self.app_actions._toggle_hot_reload(*args, **kwargs)

    def _create_new_script(self, *args, **kwargs):
        return self.app_actions._create_new_script(*args, **kwargs)

    def _refresh_scripts_list(self, *args, **kwargs):
        return self.app_actions._refresh_scripts_list(*args, **kwargs)

    def _reload_all_scripts(self, *args, **kwargs):
        return self.app_actions._reload_all_scripts(*args, **kwargs)

    def _on_script_selected(self, *args, **kwargs):
        return self.app_actions._on_script_selected(*args, **kwargs)

    def _edit_script(self, *args, **kwargs):
        return self.app_actions._edit_script(*args, **kwargs)

    def _mount_script_to_selected(self, *args, **kwargs):
        return self.app_actions._mount_script_to_selected(*args, **kwargs)

    def _unmount_script_from_selected(self, *args, **kwargs):
        return self.app_actions._unmount_script_from_selected(*args, **kwargs)

    def _on_new_project(self, *args, **kwargs):
        return self.app_actions._on_new_project(*args, **kwargs)

    def _on_open_project(self, *args, **kwargs):
        return self.app_actions._on_open_project(*args, **kwargs)

    def _on_save_project(self, *args, **kwargs):
        return self.app_actions._on_save_project(*args, **kwargs)

    def _on_save_as_project(self, *args, **kwargs):
        return self.app_actions._on_save_as_project(*args, **kwargs)

    def _on_build_webgl_package(self, *args, **kwargs):
        return self.app_actions._on_build_webgl_package(*args, **kwargs)

    def _execute_webgl_package(self, *args, **kwargs):
        return self.app_actions._execute_webgl_package(*args, **kwargs)

    def _on_exit(self, *args, **kwargs):
        return self.app_actions._on_exit(*args, **kwargs)

    def _on_ctrl_pressed(self, *args, **kwargs):
        return self.app_actions._on_ctrl_pressed(*args, **kwargs)

    def _on_ctrl_released(self, *args, **kwargs):
        return self.app_actions._on_ctrl_released(*args, **kwargs)

    def _on_alt_pressed(self, *args, **kwargs):
        return self.app_actions._on_alt_pressed(*args, **kwargs)

    def _on_alt_released(self, *args, **kwargs):
        return self.app_actions._on_alt_released(*args, **kwargs)

    def _on_n_pressed(self, *args, **kwargs):
        return self.app_actions._on_n_pressed(*args, **kwargs)

    def _on_o_pressed(self, *args, **kwargs):
        return self.app_actions._on_o_pressed(*args, **kwargs)

    def _on_f4_pressed(self, *args, **kwargs):
        return self.app_actions._on_f4_pressed(*args, **kwargs)

    def _on_delete_pressed(self, *args, **kwargs):
        return self.app_actions._on_delete_pressed(*args, **kwargs)

    def _on_escape_pressed(self, *args, **kwargs):
        return self.app_actions._on_escape_pressed(*args, **kwargs)

    def _on_wheel_up(self, *args, **kwargs):
        return self.app_actions._on_wheel_up(*args, **kwargs)

    def _on_wheel_down(self, *args, **kwargs):
        return self.app_actions._on_wheel_down(*args, **kwargs)

    def _is_mouse_over_imgui(self, *args, **kwargs):
        return self.app_actions._is_mouse_over_imgui(*args, **kwargs)

    def processImGuiMouseClick(self, *args, **kwargs):
        return self.app_actions.processImGuiMouseClick(*args, **kwargs)

    def add_message(self, *args, **kwargs):
        return self.app_actions.add_message(*args, **kwargs)

    def add_success_message(self, *args, **kwargs):
        return self.app_actions.add_success_message(*args, **kwargs)

    def add_error_message(self, *args, **kwargs):
        return self.app_actions.add_error_message(*args, **kwargs)

    def add_warning_message(self, *args, **kwargs):
        return self.app_actions.add_warning_message(*args, **kwargs)

    def add_info_message(self, *args, **kwargs):
        return self.app_actions.add_info_message(*args, **kwargs)

    def _on_undo(self, *args, **kwargs):
        return self.app_actions._on_undo(*args, **kwargs)

    def _on_redo(self, *args, **kwargs):
        return self.app_actions._on_redo(*args, **kwargs)

    def _on_copy(self, *args, **kwargs):
        return self.app_actions._on_copy(*args, **kwargs)

    def _on_cut(self, *args, **kwargs):
        return self.app_actions._on_cut(*args, **kwargs)

    def _on_paste(self, *args, **kwargs):
        return self.app_actions._on_paste(*args, **kwargs)

    def _on_delete(self, *args, **kwargs):
        return self.app_actions._on_delete(*args, **kwargs)

    def _delete_node(self, *args, **kwargs):
        return self.app_actions._delete_node(*args, **kwargs)

    def _perform_node_cleanup(self, *args, **kwargs):
        return self.app_actions._perform_node_cleanup(*args, **kwargs)

    def _create_new_project(self, *args, **kwargs):
        return self.app_actions._create_new_project(*args, **kwargs)

    def _open_project_path(self, *args, **kwargs):
        return self.app_actions._open_project_path(*args, **kwargs)

    def _save_project_impl(self, *args, **kwargs):
        return self.app_actions._save_project_impl(*args, **kwargs)

    def _open_project_impl(self, *args, **kwargs):
        return self.app_actions._open_project_impl(*args, **kwargs)

    def _create_new_project_impl(self, *args, **kwargs):
        return self.app_actions._create_new_project_impl(*args, **kwargs)

    def _update_window_title(self, *args, **kwargs):
        return self.app_actions._update_window_title(*args, **kwargs)

    def _import_model_for_runtime(self, *args, **kwargs):
        return self.app_actions._import_model_for_runtime(*args, **kwargs)

    def _on_import_model(self, *args, **kwargs):
        return self.app_actions._on_import_model(*args, **kwargs)

    def _import_model(self, *args, **kwargs):
        return self.app_actions._import_model(*args, **kwargs)

    def _import_model_with_menu_logic(self, *args, **kwargs):
        return self.app_actions._import_model_with_menu_logic(*args, **kwargs)

    def _draw_new_project_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_new_project_dialog(*args, **kwargs)

    def _draw_open_project_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_open_project_dialog(*args, **kwargs)

    def _draw_path_browser(self, *args, **kwargs):
        return self.dialog_panels._draw_path_browser(*args, **kwargs)

    def _draw_import_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_import_dialog(*args, **kwargs)

    def _refresh_path_browser(self, *args, **kwargs):
        return self.dialog_panels._refresh_path_browser(*args, **kwargs)

    def _apply_selected_path(self, *args, **kwargs):
        return self.dialog_panels._apply_selected_path(*args, **kwargs)

    def _draw_spot_light_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_spot_light_dialog(*args, **kwargs)

    def _draw_point_light_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_point_light_dialog(*args, **kwargs)

    def _draw_terrain_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_terrain_dialog(*args, **kwargs)

    def _draw_script_dialog(self, *args, **kwargs):
        return self.dialog_panels._draw_script_dialog(*args, **kwargs)

    def _draw_script_browser(self, *args, **kwargs):
        return self.dialog_panels._draw_script_browser(*args, **kwargs)

    def _refresh_script_browser(self, *args, **kwargs):
        return self.dialog_panels._refresh_script_browser(*args, **kwargs)

    def _draw_heightmap_browser(self, *args, **kwargs):
        return self.dialog_panels._draw_heightmap_browser(*args, **kwargs)

    def _refresh_heightmap_browser(self, *args, **kwargs):
        return self.dialog_panels._refresh_heightmap_browser(*args, **kwargs)

    def setup_drag_drop_support(self):
        """初始化拖拽支持。"""
        return self.model_drag_drop.setup_drag_drop_support()

    def _is_point_in_resource_manager(self, drop_pos):
        """判断投放坐标是否命中资源管理器窗口。"""
        return self.model_drag_drop.is_point_in_resource_manager(drop_pos)

    def _resolve_resource_drop_target_dir(self, drop_pos):
        """根据投放坐标解析资源管理器中的目标目录。"""
        return self.model_drag_drop.resolve_resource_drop_target_dir(drop_pos)

    def _process_external_drop_events(self):
        """处理外部拖入（系统文件拖拽）事件。"""
        return self.model_drag_drop.process_external_drop_events()

    def _handle_external_drop(self, file_paths, drop_pos=None):
        """把外部拖入文件分发到资源管理器或场景。"""
        return self.model_drag_drop.handle_external_drop(file_paths, drop_pos)

    def add_dragged_file(self, file_path):
        """添加拖拽的文件"""
        return self.model_drag_drop.add_dragged_file(file_path)
    
    def clear_dragged_files(self):
        """清空拖拽文件列表"""
        return self.model_drag_drop.clear_dragged_files()
    
    def process_dragged_files(self):
        """处理拖拽的文件"""
        return self.model_drag_drop.process_dragged_files()
    
    def _import_model_from_path(self, file_path):
        """从路径导入模型的内部方法"""
        return self.model_drag_drop.import_model_from_path(file_path)
    
    def _draw_drag_drop_interface(self, *args, **kwargs):
        return self.interaction_panels._draw_drag_drop_interface(*args, **kwargs)

    def _handle_drag_drop_completion(self, *args, **kwargs):
        return self.interaction_panels._handle_drag_drop_completion(*args, **kwargs)

    def _draw_drag_overlay(self, *args, **kwargs):
        return self.interaction_panels._draw_drag_overlay(*args, **kwargs)

    def _draw_drag_status(self, *args, **kwargs):
        return self.interaction_panels._draw_drag_status(*args, **kwargs)

    def _draw_context_menus(self, *args, **kwargs):
        return self.interaction_panels._draw_context_menus(*args, **kwargs)

    def _delete_node_simple(self, *args, **kwargs):
        return self.interaction_panels._delete_node_simple(*args, **kwargs)

    def _copy_node(self, *args, **kwargs):
        return self.interaction_panels._copy_node(*args, **kwargs)


    def _on_create_empty_object(self, *args, **kwargs):
        return self.create_actions._on_create_empty_object(*args, **kwargs)

    def _on_create_cube(self, *args, **kwargs):
        return self.create_actions._on_create_cube(*args, **kwargs)

    def _on_create_sphere(self, *args, **kwargs):
        return self.create_actions._on_create_sphere(*args, **kwargs)

    def _on_create_cylinder(self, *args, **kwargs):
        return self.create_actions._on_create_cylinder(*args, **kwargs)

    def _on_create_plane(self, *args, **kwargs):
        return self.create_actions._on_create_plane(*args, **kwargs)

    def _on_create_3d_text(self, *args, **kwargs):
        return self.create_actions._on_create_3d_text(*args, **kwargs)

    def _on_create_3d_image(self, *args, **kwargs):
        return self.create_actions._on_create_3d_image(*args, **kwargs)

    def _on_create_gui_button(self, *args, **kwargs):
        return self.create_actions._on_create_gui_button(*args, **kwargs)

    def _on_create_gui_label(self, *args, **kwargs):
        return self.create_actions._on_create_gui_label(*args, **kwargs)

    def _on_create_gui_entry(self, *args, **kwargs):
        return self.create_actions._on_create_gui_entry(*args, **kwargs)

    def _on_create_gui_image(self, *args, **kwargs):
        return self.create_actions._on_create_gui_image(*args, **kwargs)

    def _on_create_video_screen(self, *args, **kwargs):
        return self.create_actions._on_create_video_screen(*args, **kwargs)

    def _on_create_2d_video_screen(self, *args, **kwargs):
        return self.create_actions._on_create_2d_video_screen(*args, **kwargs)

    def _on_create_spherical_video(self, *args, **kwargs):
        return self.create_actions._on_create_spherical_video(*args, **kwargs)

    def _on_create_virtual_screen(self, *args, **kwargs):
        return self.create_actions._on_create_virtual_screen(*args, **kwargs)

    def _on_create_spot_light(self, *args, **kwargs):
        return self.create_actions._on_create_spot_light(*args, **kwargs)

    def _on_create_point_light(self, *args, **kwargs):
        return self.create_actions._on_create_point_light(*args, **kwargs)

    def _on_create_flat_terrain(self, *args, **kwargs):
        return self.create_actions._on_create_flat_terrain(*args, **kwargs)

    def _on_create_heightmap_terrain(self, *args, **kwargs):
        return self.create_actions._on_create_heightmap_terrain(*args, **kwargs)

    def _on_create_script(self, *args, **kwargs):
        return self.create_actions._on_create_script(*args, **kwargs)

    def _on_load_script(self, *args, **kwargs):
        return self.create_actions._on_load_script(*args, **kwargs)

    def _on_reload_all_scripts(self, *args, **kwargs):
        return self.create_actions._on_reload_all_scripts(*args, **kwargs)

    def _on_open_scripts_manager(self, *args, **kwargs):
        return self.create_actions._on_open_scripts_manager(*args, **kwargs)

    def _on_create_2d_sample_panel(self, *args, **kwargs):
        return self.create_actions._on_create_2d_sample_panel(*args, **kwargs)

    def _on_create_3d_sample_panel(self, *args, **kwargs):
        return self.create_actions._on_create_3d_sample_panel(*args, **kwargs)

    def _on_create_web_panel(self, *args, **kwargs):
        return self.create_actions._on_create_web_panel(*args, **kwargs)


    def createEmptyObject(self, *args, **kwargs):
        return self.object_factory.createEmptyObject(*args, **kwargs)

    def create3DText(self, *args, **kwargs):
        return self.object_factory.create3DText(*args, **kwargs)

    def create3DImage(self, *args, **kwargs):
        return self.object_factory.create3DImage(*args, **kwargs)

    def createCube(self, *args, **kwargs):
        return self.object_factory.createCube(*args, **kwargs)

    def createSphere(self, *args, **kwargs):
        return self.object_factory.createSphere(*args, **kwargs)

    def createCylinder(self, *args, **kwargs):
        return self.object_factory.createCylinder(*args, **kwargs)

    def createPlane(self, *args, **kwargs):
        return self.object_factory.createPlane(*args, **kwargs)

    def create2DSamplePanel(self, *args, **kwargs):
        return self.object_factory.create2DSamplePanel(*args, **kwargs)

    def create3DSamplePanel(self, *args, **kwargs):
        return self.object_factory.create3DSamplePanel(*args, **kwargs)

    def createWebPanel(self, *args, **kwargs):
        return self.object_factory.createWebPanel(*args, **kwargs)
    def createGUIButton(self, pos=(0, 0, 0), text="按钮", size=0.1):
        return self.runtime_actions.createGUIButton(pos, text, size)

    def _create_simple_gui_button(self, pos=(0, 0, 0), text="按钮", size=0.1):
        return self.runtime_actions._create_simple_gui_button(pos, text, size)

    def _on_gui_button_click(self):
        return self.runtime_actions._on_gui_button_click()

    def _toggle_vr_mode(self):
        return self.runtime_actions._toggle_vr_mode()

    def _exit_vr_mode(self):
        return self.runtime_actions._exit_vr_mode()

    def _show_vr_status(self):
        return self.runtime_actions._show_vr_status()

    def _show_vr_settings(self):
        return self.runtime_actions._show_vr_settings()

    def _show_vr_performance_report(self):
        return self.runtime_actions._show_vr_performance_report()

    def _get_chinese_font(self):
        return self.runtime_actions._get_chinese_font()

    def createGUILabel(self, pos=(0, 0, 0), text="标签", size=0.08):
        return self.runtime_actions.createGUILabel(pos, text, size)

    def _create_simple_gui_label(self, pos=(0, 0, 0), text="标签", size=0.08):
        return self.runtime_actions._create_simple_gui_label(pos, text, size)

    def createGUIEntry(self, pos=(0, 0, 0), placeholder="输入文本...", size=0.08):
        return self.runtime_actions.createGUIEntry(pos, placeholder, size)

    def _create_simple_gui_entry(self, pos=(0, 0, 0), placeholder="输入文本...", size=0.08):
        return self.runtime_actions._create_simple_gui_entry(pos, placeholder, size)

    def createGUIImage(self, pos=(0, 0, 0), image_path=None, size=2):
        return self.runtime_actions.createGUIImage(pos, image_path, size)

    def _create_simple_gui_image(self, pos=(0, 0, 0), image_path=None, size=2):
        return self.runtime_actions._create_simple_gui_image(pos, image_path, size)

    def createVideoScreen(self, pos=(0, 0, 0), size=1, video_path=None):
        return self.runtime_actions.createVideoScreen(pos, size, video_path)

    def create2DVideoScreen(self, pos=(0, 0, 0), size=0.2, video_path=None):
        return self.runtime_actions.create2DVideoScreen(pos, size, video_path)

    def createSphericalVideo(self, pos=(0, 0, 0), radius=5.0, video_path=None):
        return self.runtime_actions.createSphericalVideo(pos, radius, video_path)

    def createVirtualScreen(self, pos=(0, 0, 0), size=(2, 1), text="虚拟屏幕"):
        return self.runtime_actions.createVirtualScreen(pos, size, text)

    def createSpotLight(self, pos=(0, 0, 5)):
        return self.runtime_actions.createSpotLight(pos)

    def createPointLight(self, pos=(0, 0, 5)):
        return self.runtime_actions.createPointLight(pos)

    def createFlatTerrain(self, size=(10, 10), resolution=129):
        return self.runtime_actions.createFlatTerrain(size, resolution)

    def createTerrainFromHeightMap(self, heightmap_path, scale=(1.0, 1.0, 10.0)):
        return self.runtime_actions.createTerrainFromHeightMap(heightmap_path, scale)

    def createScript(self, script_name, template="basic"):
        return self.runtime_actions.createScript(script_name, template)

    def loadScript(self, script_path):
        return self.runtime_actions.loadScript(script_path)
