/// <summary> /// Overridden function that gets called when the plugin is loaded. Registers all creator plugins /// </summary> /// <returns></returns> public override bool DeInitPluginModule() { HavokAiManaged.ManagedModule.DeInitManagedModule(); foreach (IShapeCreatorPlugin plugin in creators) { EditorManager.ShapeCreatorPlugins.Remove(plugin); } _panel.Close(); _panel.Dispose(); _panel = null; EditorManager.EditorModeChanged -= new EditorModeChangedEventHandler(EditorManager_EditorModeChanged); EditorManager.ShapeSelectionChanged -= new ShapeSelectionChangedEventHandler(EditorManager_ShapeSelectionChanged); EditorManager.SceneChanged -= new SceneChangedEventHandler(EditorManager_SceneChanged); IScene.EngineInstancesChanged -= new EngineInstancesChangedEventHandler(IScene_EngineInstancesChanged); IScene.PropertyChanged -= new PropertyChangedEventHandler(IScene_PropertyChanged); IScene.ShapeChanged -= new ShapeChangedEventHandler(IScene_ShapeChanged); return true; }
/// <summary> /// Overridden function that gets called when the plugin is loaded. Registers all creator plugins /// </summary> /// <returns></returns> public override bool InitPluginModule() { EDITOR_PLUGIN_INFO.NativePluginNames = new string[] { "Havok Ai" }; HavokAiManaged.ManagedModule.InitManagedModule(); // register shape class creators = new IShapeCreatorPlugin[] { new HavokNavMeshShapeCreator(), new HavokNavMeshCarverShapeCreator(), new HavokNavMeshSeedPointShapeCreator(), new HavokNavMeshLocalSettingsShapeCreator(), new HavokNavMeshTestPathShapeCreator() }; foreach (IShapeCreatorPlugin plugin in creators) { EditorManager.ShapeCreatorPlugins.Add(plugin); } // create and activate panel _panel = new HavokAiPanel(EditorManager.ApplicationLayout.DockingArea); _panel.ShowDockable(); _panel.Enabled = false; // register callbacks IScene.ShapeChanged += new ShapeChangedEventHandler(IScene_ShapeChanged); IScene.PropertyChanged += new PropertyChangedEventHandler(IScene_PropertyChanged); IScene.EngineInstancesChanged += new EngineInstancesChangedEventHandler(IScene_EngineInstancesChanged); EditorManager.SceneChanged += new SceneChangedEventHandler(EditorManager_SceneChanged); EditorManager.ShapeSelectionChanged += new ShapeSelectionChangedEventHandler(EditorManager_ShapeSelectionChanged); EditorManager.EditorModeChanged += new EditorModeChangedEventHandler(EditorManager_EditorModeChanged); // Register automated tests TestSuiteBuilder testBuilder = new TestSuiteBuilder(); TestSuite testSuite = testBuilder.Build(typeof(EditorPlugin).Assembly.FullName); TestManager.AddTestSuite(testSuite); return true; }