93 lines
2.4 KiB
GDScript
93 lines
2.4 KiB
GDScript
extends Control
|
|
## 增强对话系统测试脚本
|
|
## 用于独立测试增强对话功能
|
|
|
|
var enhanced_dialogue_box: EnhancedDialogueBox
|
|
|
|
func _ready():
|
|
"""初始化测试场景"""
|
|
print("Starting Enhanced Dialogue Test")
|
|
|
|
# 创建增强对话框
|
|
enhanced_dialogue_box = EnhancedDialogueBox.new()
|
|
add_child(enhanced_dialogue_box)
|
|
|
|
# 设置对话框位置和大小
|
|
enhanced_dialogue_box.position = Vector2(50, 50)
|
|
enhanced_dialogue_box.size = Vector2(500, 400)
|
|
|
|
# 等待一帧后开始测试
|
|
await get_tree().process_frame
|
|
start_test()
|
|
|
|
func start_test():
|
|
"""开始测试"""
|
|
print("Enhanced Dialogue Box created successfully")
|
|
|
|
# 测试开始对话
|
|
enhanced_dialogue_box.start_dialogue("test_character", "测试角色")
|
|
|
|
# 测试发送消息
|
|
test_basic_functionality()
|
|
|
|
func test_basic_functionality():
|
|
"""测试基础功能"""
|
|
print("Testing basic functionality...")
|
|
|
|
# 测试表情符号转换
|
|
test_emoji_conversion()
|
|
|
|
# 测试消息过滤
|
|
test_message_filtering()
|
|
|
|
print("Basic functionality test completed")
|
|
|
|
func test_emoji_conversion():
|
|
"""测试表情符号转换"""
|
|
print("Testing emoji conversion...")
|
|
|
|
var test_messages = [
|
|
":)",
|
|
":D",
|
|
":fire:",
|
|
"Hello :smile: world!"
|
|
]
|
|
|
|
for message in test_messages:
|
|
var converted = EmojiManager.convert_text_to_emoji(message)
|
|
print("Original: '%s' -> Converted: '%s'" % [message, converted])
|
|
|
|
func test_message_filtering():
|
|
"""测试消息过滤"""
|
|
print("Testing message filtering...")
|
|
|
|
if not enhanced_dialogue_box.dialogue_filter:
|
|
print("Dialogue filter not initialized yet, waiting...")
|
|
await get_tree().create_timer(1.0).timeout
|
|
|
|
if enhanced_dialogue_box.dialogue_filter:
|
|
var test_messages = [
|
|
"", # 空消息
|
|
"Hello world", # 正常消息
|
|
"垃圾信息", # 包含违禁词
|
|
]
|
|
|
|
for message in test_messages:
|
|
var result = enhanced_dialogue_box.dialogue_filter.filter_message("test_user", message)
|
|
print("Message: '%s' -> Allowed: %s, Filtered: '%s'" % [message, result.allowed, result.get("filtered_message", "")])
|
|
else:
|
|
print("Dialogue filter still not available")
|
|
|
|
func _input(event):
|
|
"""处理输入事件"""
|
|
if event is InputEventKey and event.pressed:
|
|
match event.keycode:
|
|
KEY_T:
|
|
print("Testing emoji conversion...")
|
|
test_emoji_conversion()
|
|
KEY_F:
|
|
print("Testing message filtering...")
|
|
test_message_filtering()
|
|
KEY_Q:
|
|
print("Quitting test...")
|
|
get_tree().quit() |