//-----------------------------------------------------------------------------------------
CBaseEditor *CCaelumEditorFactory::CreateObject(CBaseEditor **parent, OgitorsPropertyValueMap &params)
{
  Ogre::ResourceGroupManager *mngr = Ogre::ResourceGroupManager::getSingletonPtr();
  Ogre::String value = "/" + OgitorsRoot::getSingletonPtr()->GetProjectOptions()->CaelumDirectory;
  OFS::OfsPtr& mFile = OgitorsRoot::getSingletonPtr()->GetProjectFile();
    
  if(params.find("init") != params.end())
  {
      mFile->createDirectory(value.c_str());   
      Ogre::String copydir = OgitorsUtils::GetEditorResourcesPath() + "/CAELUM/";
      OgitorsUtils::CopyDirOfs(copydir, value + "/");

      params.erase(params.find("init"));
  }

  CCaelumEditor *object = OGRE_NEW CCaelumEditor(this);
  object->createProperties(params);
  object->mParentEditor->init(*parent);
  object->load();
  object->update(0);
//  object->registerForPostSceneUpdates();

  mInstanceCount++;
  return object;
}
Exemple #2
0
//-----------------------------------------------------------------------------------------
CBaseEditor *CCaelumEditorFactory::CreateObject(CBaseEditor **parent, OgitorsPropertyValueMap &params)
{
  Ogre::ResourceGroupManager *mngr = Ogre::ResourceGroupManager::getSingletonPtr();
  Ogre::String value = OgitorsRoot::getSingletonPtr()->GetProjectOptions()->ProjectDir + OgitorsRoot::getSingletonPtr()->GetProjectOptions()->CaelumDirectory + "/";
    
  if(params.find("init") != params.end())
  {
    Ogre::String dirname = OgitorsUtils::QualifyPath(value);    
    OgitorsSystem::getSingletonPtr()->MakeDirectory(dirname);   
    Ogre::String copydir = OgitorsUtils::GetEditorResourcesPath() + "/CAELUM/*";
    OgitorsSystem::getSingletonPtr()->CopyFilesEx(copydir,dirname);

    params.erase(params.find("init"));
  }

  CCaelumEditor *object = OGRE_NEW CCaelumEditor(this);
  object->createProperties(params);
  object->mParentEditor->init(*parent);
  object->load();
  object->update(0);
//  object->registerForPostSceneUpdates();

  mInstanceCount++;
  return object;
}