EG/plugins/user/swarm_intelligence/plugin.py
2025-10-30 11:46:41 +08:00

95 lines
2.4 KiB
Python

"""
群体智能插件
实现Boids群体智能算法
"""
from plugins.plugin_manager import BasePlugin
from .swarm_manager import SwarmManager
class Plugin(BasePlugin):
"""
群体智能插件
"""
def __init__(self, plugin_manager, name):
super().__init__(plugin_manager, name)
# 设置插件配置
self.config = {
"version": "1.0.0",
"author": "AI Assistant",
"description": "实现Boids群体智能算法的插件"
}
self.swarm_manager = None
def initialize(self) -> bool:
"""
初始化插件
"""
print(f"初始化插件: {self.name}")
# 在这里执行插件初始化逻辑
return True
def enable(self) -> bool:
"""
启用插件
"""
if not super().enable():
return False
print(f"启用插件: {self.name}")
# 初始化群体管理器
self.swarm_manager = SwarmManager(self.plugin_manager.world)
# 创建示例群体
self.swarm_manager.create_example_swarm()
# 注册事件处理器
self.plugin_manager.world.accept("f1", self._on_f1_pressed)
return True
def disable(self) -> bool:
"""
禁用插件
"""
if not super().disable():
return False
print(f"禁用插件: {self.name}")
# 清理群体
if self.swarm_manager:
self.swarm_manager.cleanup()
# 移除事件处理器
self.plugin_manager.world.ignore("f1")
return True
def finalize(self):
"""
清理插件资源
"""
print(f"清理插件资源: {self.name}")
# 在这里执行最终清理逻辑
def get_info(self) -> dict:
"""
获取插件信息
"""
info = super().get_info()
info.update({
"version": self.config.get("version", "1.0.0"),
"author": self.config.get("author", "Unknown"),
"description": self.config.get("description", "Base plugin class")
})
return info
def _on_f1_pressed(self):
"""
F1按键处理函数
"""
print("群体智能插件: F1按键被按下")
if self.swarm_manager:
self.swarm_manager.toggle_pause()