#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
视频播放功能修复测试
"""

from direct.showbase.ShowBase import ShowBase
from panda3d.core import loadPrcFileData
import sys

# 配置窗口
loadPrcFileData("", """
    win-size 800 600
    window-title 视频功能测试
""")

class VideoTest(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        
        # 初始化属性以兼容 VideoManager
        self.models = []  # 模型列表
        
        print("🚀 开始视频功能测试...")
        
        # 测试导入
        try:
            from video_integration import VideoManager
            print("✅ 视频管理器导入成功")
        except Exception as e:
            print(f"❌ 视频管理器导入失败: {e}")
            return
            
        # 创建视频管理器
        try:
            self.video_manager = VideoManager(self)
            print("✅ 视频管理器创建成功")
        except Exception as e:
            print(f"❌ 视频管理器创建失败: {e}")
            return
            
        # 测试创建动画屏幕
        try:
            screen = self.video_manager.create_video_screen(
                pos=(0, 0, 2),
                name="test_screen"
            )
            if screen:
                print("✅ 动画屏幕创建成功")
            else:
                print("❌ 动画屏幕创建失败")
        except Exception as e:
            print(f"❌ 动画屏幕创建错误: {e}")
            
        # 测试创建广告牌
        try:
            billboard = self.video_manager.create_video_billboard(
                pos=(3, 0, 1),
                name="test_billboard"
            )
            if billboard:
                print("✅ 视频广告牌创建成功")
            else:
                print("❌ 视频广告牌创建失败")
        except Exception as e:
            print(f"❌ 视频广告牌创建错误: {e}")
            
        # 测试创建全景视频
        try:
            spherical = self.video_manager.create_spherical_video(
                pos=(-3, 0, 0),
                radius=2,
                name="test_spherical"
            )
            if spherical:
                print("✅ 全景视频创建成功")
            else:
                print("❌ 全景视频创建失败")
        except Exception as e:
            print(f"❌ 全景视频创建错误: {e}")
            
        # 等待几秒钟查看动画效果
        print("\n🎬 测试完成！您应该看到:")
        print("  - 左侧: 波纹动画屏幕")
        print("  - 中间: 面向相机的广告牌") 
        print("  - 右侧: 全景动画球体")
        print("\n按 ESC 键退出")
        
        # 设置退出键
        self.accept("escape", sys.exit)
        
        # 设置相机
        self.cam.setPos(0, -8, 2)
        self.cam.lookAt(0, 0, 1)
    
    def updateSceneTree(self):
        """空的场景树更新方法（用于兼容 VideoManager）"""
        pass

if __name__ == "__main__":
    app = VideoTest()
    app.run() 