/// <summary>
        /// InitPluginModule : called at plugin initialization time: Add the relevant shape creators here
        /// </summary>
        public override bool InitPluginModule()
        {
            EDITOR_PLUGIN_INFO.NativePluginNames = new string[] { "Fmod" };
            FmodManaged.ManagedModule.InitManagedModule();

            creators = new IShapeCreatorPlugin[]
            {
                new FmodSoundShapeCreator(),
                new FmodEventShapeCreator(),
                new FmodCollisionMeshShapeCreator(),
                new FmodReverbShapeCreator()
            };

            // add them to the editor
            foreach (IShapeCreatorPlugin plugin in creators)
            {
                EditorManager.ShapeCreatorPlugins.Add(plugin);
            }

            EditorManager.SceneChanged    += new SceneChangedEventHandler(EditorManager_SceneChanged);
            IScene.EngineInstancesChanged += new EngineInstancesChangedEventHandler(IScene_EngineInstancesChanged);

            _launchDesignerPlugin = new LaunchDesignerPlugin();
            EditorManager.AddMenuItemPlugin(_launchDesignerPlugin);
            return(true);
        }
 public override bool InitPluginModule()
 {
     // register our plugin
     EditorManager.AddMenuItemPlugin(_menuItemPlugin);
     return(true);
 }
        /// <summary>
        /// Overridden function that gets called when the plugin is loaded. Registers all creator plugins
        /// </summary>
        /// <returns></returns>
        public override bool InitPluginModule()
        {
            VisionManaged.ManagedModule.InitManagedModule();
            EDITOR_PLUGIN_INFO.NativePluginNames = new string[] { "VisionEnginePlugin" };

            // listen to the following events
            IProject.NewProjectLoaded             += new EventHandler(IProject_NewProjectLoaded);
            IProject.ProjectUnloaded              += new EventHandler(IProject_ProjectUnloaded);
            EditorManager.SceneChanged            += new SceneChangedEventHandler(EditorManager_SceneChanged);
            EditorManager.SceneEvent              += new SceneEventHandler(EditorManager_SceneEvent);
            EditorManager.ProcessExternalFileDrop += new ExternalFileDropHandler(EditorManager_ProcessExternalFileDrop);
            EditorManager.QueryDragDropContext    += new QueryDragDropContextEventHandler(EditorManager_QueryDragDropContext);

            // make this globally available
            PrefabDesc.PrefabInstanceCreator = new PrefabShapeCreator();

            // register shape classes
            creators = new IShapeCreatorPlugin[]
            {
                new EntityCreator(),
                new OmniLightCreator(false),
                new SpotLightCreator(false),
                new DirectionalLightCreator(false),
                new OmniLightCreator(true),
                new SpotLightCreator(true),
                new DirectionalLightCreator(true),
                new TimeOfDaySunCreator(),

                new ParticleSystemCreator(),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.GroundPlane),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Plane),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Sphere),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.AABox),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.XAxis),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.YAxis),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.ZAxis),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Fan),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Cyclone),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Point),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.GravityPoint),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.Terrain),
                new ConstraintCreator(EngineInstanceConstraint.ConstraintType_e.CameraBox),

                new ProjectorShapeCreator(),
                new ClothObjectCreator(),
                new MirrorCreator(),
                new VisibilityObjectCreator(),
                new LightGridBoxCreator(),
                new LightGridDetailBoxCreator(),
                new LightGridIndicatorCreator(),
                new PathShapeCreator(),
                new CircleShapeCreator(),
                new PathCameraShapeCreator(),
                new CameraPositionShapeCreator(),

                //new RenderTargetShapeCreator(), // still port engine instance
                new CubemapShapeCreator(),
                //new PostProcessingShapeCreator(),

                PrefabDesc.PrefabInstanceCreator,
                new StaticMeshShapeCreator(),
                new StaticMeshGroupShapeCreator(),
                new TriggerBoxShapeCreator(),
                new BillboardGroupShapeCreator(),
                new CustomVolumeShapeCreator(),

#if !HK_ANARCHY
                new CloudLayerCreator(),
                new DecorationGroupCreator(),
                new WaterCreator(),
                new SunglareCreator(),
                new VolumetricConeCreator(),
                new FogObjectCreator(),
                new ProjectedDecalCreator(),
#endif
            };

            foreach (IShapeCreatorPlugin plugin in creators)
            {
                EditorManager.ShapeCreatorPlugins.Add(plugin);
            }

            // Add lightmap tweaking menu item
            // this is not supported ATM, because lightmaps are not in a central place anymore
            //lightmapMenuItemPlugin = new LightmapMenuItemPlugin();
            //EditorManager.AddMenuItemPlugin(lightmapMenuItemPlugin);

            _colorGradingTool = new ColorGradingToolPlugin();
            EditorManager.AddMenuItemPlugin(_colorGradingTool);

            PrefabManager.BINARY_SAVER = new VisionPrefabBinarySaver();
            VisionEngineManager.EntityClassManagerType = typeof(EntityClassManager);

            // register tests
            TestSuiteBuilder testBuilder = new TestSuiteBuilder();
            TestSuite        testSuite   = testBuilder.Build(typeof(EditorPlugin).Assembly.FullName);
            TestManager.AddTestSuite(testSuite);
            return(true);
        }