218 lines
6.3 KiB
Python
218 lines
6.3 KiB
Python
class CreateActions:
|
|
"""Create and script entry actions extracted from main world."""
|
|
|
|
def __init__(self, app):
|
|
self.app = app
|
|
|
|
def __getattr__(self, name):
|
|
return getattr(self.app, name)
|
|
|
|
def __setattr__(self, name, value):
|
|
if name == "app" or name in self.__dict__ or hasattr(type(self), name):
|
|
object.__setattr__(self, name, value)
|
|
else:
|
|
setattr(self.app, name, value)
|
|
|
|
|
|
def _on_create_empty_object(self):
|
|
"""创建空对象"""
|
|
try:
|
|
result = self.createEmptyObject()
|
|
if result:
|
|
self.add_success_message("空对象创建成功")
|
|
else:
|
|
self.add_error_message("空对象创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建空对象失败: {str(e)}")
|
|
|
|
|
|
def _on_create_cube(self):
|
|
"""创建立方体"""
|
|
try:
|
|
result = self.createCube()
|
|
if result:
|
|
self.add_success_message("立方体创建成功")
|
|
else:
|
|
self.add_error_message("立方体创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建立方体失败: {str(e)}")
|
|
|
|
|
|
def _on_create_sphere(self):
|
|
"""创建球体"""
|
|
try:
|
|
result = self.createSphere()
|
|
if result:
|
|
self.add_success_message("球体创建成功")
|
|
else:
|
|
self.add_error_message("球体创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建球体失败: {str(e)}")
|
|
|
|
|
|
def _on_create_cylinder(self):
|
|
"""创建圆柱体"""
|
|
try:
|
|
result = self.createCylinder()
|
|
if result:
|
|
self.add_success_message("圆柱体创建成功")
|
|
else:
|
|
self.add_error_message("圆柱体创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建圆柱体失败: {str(e)}")
|
|
|
|
|
|
def _on_create_plane(self):
|
|
"""创建平面"""
|
|
try:
|
|
result = self.createPlane()
|
|
if result:
|
|
self.add_success_message("平面创建成功")
|
|
else:
|
|
self.add_error_message("平面创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建平面失败: {str(e)}")
|
|
|
|
|
|
def _on_create_3d_text(self):
|
|
"""创建3D文本"""
|
|
self.show_3d_text_dialog = True
|
|
|
|
|
|
def _on_create_3d_image(self):
|
|
"""创建3D图片"""
|
|
self.show_3d_image_dialog = True
|
|
|
|
|
|
def _on_create_gui_button(self):
|
|
"""创建GUI按钮"""
|
|
self.show_gui_button_dialog = True
|
|
|
|
|
|
def _on_create_gui_label(self):
|
|
"""创建GUI标签"""
|
|
self.show_gui_label_dialog = True
|
|
|
|
|
|
def _on_create_gui_entry(self):
|
|
"""创建GUI输入框"""
|
|
self.show_gui_entry_dialog = True
|
|
|
|
|
|
def _on_create_gui_image(self):
|
|
"""创建GUI图片"""
|
|
self.show_gui_image_dialog = True
|
|
|
|
|
|
def _on_create_video_screen(self):
|
|
"""创建视频屏幕"""
|
|
self.show_video_screen_dialog = True
|
|
|
|
|
|
def _on_create_2d_video_screen(self):
|
|
"""创建2D视频屏幕"""
|
|
self.show_2d_video_screen_dialog = True
|
|
|
|
|
|
def _on_create_spherical_video(self):
|
|
"""创建球形视频"""
|
|
self.show_spherical_video_dialog = True
|
|
|
|
|
|
def _on_create_virtual_screen(self):
|
|
"""创建虚拟屏幕"""
|
|
self.show_virtual_screen_dialog = True
|
|
|
|
|
|
def _on_create_spot_light(self):
|
|
"""创建聚光灯"""
|
|
self.show_spot_light_dialog = True
|
|
|
|
|
|
def _on_create_point_light(self):
|
|
"""创建点光源"""
|
|
self.show_point_light_dialog = True
|
|
|
|
|
|
def _on_create_flat_terrain(self):
|
|
"""创建平面地形"""
|
|
self.show_terrain_dialog = True
|
|
|
|
|
|
def _on_create_heightmap_terrain(self):
|
|
"""从高度图创建地形"""
|
|
self.show_heightmap_browser = True
|
|
|
|
|
|
def _on_create_script(self):
|
|
"""创建脚本"""
|
|
self.show_script_dialog = True
|
|
|
|
|
|
def _on_load_script(self):
|
|
"""加载脚本文件"""
|
|
self.show_script_browser = True
|
|
|
|
|
|
def _on_reload_all_scripts(self):
|
|
"""重载所有脚本"""
|
|
try:
|
|
if hasattr(self, 'script_manager') and self.script_manager:
|
|
self.script_manager.reloadAllScripts()
|
|
self.add_success_message("所有脚本重载成功")
|
|
else:
|
|
self.add_error_message("脚本管理器未初始化")
|
|
except Exception as e:
|
|
self.add_error_message(f"重载脚本失败: {str(e)}")
|
|
|
|
|
|
def _on_open_scripts_manager(self):
|
|
"""打开脚本管理器"""
|
|
self.showScriptPanel = True
|
|
self.add_info_message("脚本管理器已打开")
|
|
|
|
|
|
def _on_create_2d_sample_panel(self):
|
|
"""创建2D示例面板"""
|
|
try:
|
|
result = self.create2DSamplePanel()
|
|
if result:
|
|
self.add_success_message("2D示例面板创建成功")
|
|
else:
|
|
self.add_error_message("2D示例面板创建失败")
|
|
except Exception as e:
|
|
self.add_error_message(f"创建2D示例面板失败: {str(e)}")
|
|
|
|
|
|
def _on_create_3d_sample_panel(self):
|
|
"""创建3D实例面板"""
|
|
try:
|
|
result = self.create3DSamplePanel()
|
|
if result:
|
|
self.add_success_message("3D实例面板创建成功")
|
|
else:
|
|
self.add_error_message("3D实例面板创建失败")
|
|
except Exception as e:
|
|
self.add_error_message(f"创建3D实例面板失败: {str(e)}")
|
|
|
|
|
|
def _on_create_web_panel(self):
|
|
"""创建Web面板"""
|
|
try:
|
|
result = self.editor_panels._on_create_web_panel()
|
|
if result:
|
|
self.add_success_message("Web面板创建成功")
|
|
else:
|
|
self.add_error_message("Web面板创建失败")
|
|
return result
|
|
except Exception as e:
|
|
self.add_error_message(f"创建Web面板失败: {str(e)}")
|
|
return None
|
|
|
|
# ==================== 3D对象和GUI创建方法 ====================
|