using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.IO; using CommonAI.Zone.ZoneEditor; using GameEditorPlugin.Win32.Runtime; namespace CommonAIEditor { public interface IGameEditorPlugin { string Name { get; } /// /// 编辑器入口 /// string DataRoot { get; set; } /// /// 游戏扩展DLL /// string PluginDLL { get; set; } /// /// 构造场景编辑器插件 /// /// /// ISceneEditorPlugin CreateScenePlugin(IGameEditorPlugin default_plugin); /// /// 运行游戏测试 /// /// /// /// /// void RunTest(IGameEditorPlugin default_plugin, string data_dir, int sceneID, int actorTemplateID); /// /// 运行资源查看功能 /// /// /// void RunModelView(IGameEditorPlugin default_plugin, string[] filepath); /// /// 可接受的资源类型 /// /// /// /// bool AcceptResource(IGameEditorPlugin default_plugin, string filename); /// /// 构造Win32测试工具 /// /// /// /// /// /// void RunLocalPlay(IGameEditorPlugin default_plugin, DirectoryInfo data_dir, int sceneID, bool recorder); /// /// 构造Win32测试工具 /// /// /// /// /// void RunServerPlay(IGameEditorPlugin default_plugin, DirectoryInfo data_dir, int sceneID); } public delegate void PluginMessageHandler(object data); public delegate SceneObjectData CallAddSceneObject(Type type, Action callback); public delegate SceneObjectData CallResetSceneObject(string name, Action callback); public interface ISceneEditorPlugin { bool EnableRight { get; } Control AsControl(); void SendMessage(object data); event PluginMessageHandler OnGetPluginMessage; event CallAddSceneObject CallAddObject; event CallResetSceneObject CallResetObject; } }