Esempio n. 1
0
        public void FillResourceGroup(Mogre.ResourceGroupManager mngr, IList <string> list, string path, string group)
        {
            foreach (string str in list)
            {
                string stype = "";

                if (str.Substring(0, 3) == "FS:")
                {
                    stype = "FileSystem";
                }
                else if (str.Substring(0, 3) == "ZP:")
                {
                    stype = "Zip";
                }

                string resPath = str.Remove(0, 3);
                if (system.IsRelativePath(resPath))
                {
                    resPath = resPath.Insert(0, path + "/");
                    resPath = system.GetFullPath(resPath);
                }

                mngr.AddResourceLocation(resPath, stype, group);
            }
        }
Esempio n. 2
0
        public void PrepareProjectResources()
        {
            try
            {
                Mogre.ResourceGroupManager mngr = Mogre.ResourceGroupManager.Singleton;
                mngr.CreateResourceGroup("ProjectResources");

                FillResourceGroup(mngr, ProjectOptions.ResourceDirectories, ProjectOptions.ProjectDir, "ProjectResources");

                mngr.InitialiseResourceGroup("ProjectResources");

                List <string> materialNames = new List <string>();
                foreach (var it in  Mogre.MaterialManager.Singleton.GetResourceIterator())
                {
                    if (it.Group == "ProjectResources")
                    {
                        materialNames.Add(it.Name);
                    }
                }
                materialNames.Sort();
                MaterialNames = materialNames;
            }
            catch
            {
                Mogre.LogManager.Singleton.DefaultLog.LogMessage("MOGITOR EXCEPTION: Can not prepare project resources!!", Mogre.LogMessageLevel.LML_CRITICAL);
            }
        }
Esempio n. 3
0
        public bool TerminateScene()
        {
            if (!IsSceneLoaded)
            {
                return(true);
            }

            if (IsSceneModified)
            {
                MessageBoxResult ret = MessageBox.Show("Do you want to save your current project?", "Mogitor", MessageBoxButton.YesNoCancel);
                switch (ret)
                {
                case MessageBoxResult.Yes:
                    SaveScene(false);
                    break;

                case MessageBoxResult.Cancel:
                    return(false);

                case MessageBoxResult.No:
                    break;
                }
            }

            ActiveViewport = null;
            IsSceneLoaded  = false;

            this.system.ClearTreeItems();
            this.system.ClearPropertiesView();

            ClearEditors();

            RenderTarget.RemoveAllViewports();

            Mogre.ResourceGroupManager mngr = Mogre.ResourceGroupManager.Singleton;
            mngr.DestroyResourceGroup("ProjectResources");

            if (SceneTerminated != null)
            {
                SceneTerminated(this, EventArgs.Empty);
            }

            return(true);
        }
Esempio n. 4
0
        public void ReloadUserResources()
        {
            Mogre.ResourceGroupManager mngr = Mogre.ResourceGroupManager.Singleton;
            mngr.ClearResourceGroup("ProjectResources");
            MogitorsRoot.Instance.FillResourceGroup(mngr, MogitorsRoot.Instance.ProjectOptions.ResourceDirectories, MogitorsRoot.Instance.ProjectOptions.ProjectDir, "ProjectResources");
            mngr.InitialiseResourceGroup("ProjectResources");

            List<string> materialNames = new List<string>();
            foreach (var it in Mogre.MaterialManager.Singleton.GetResourceIterator())
            {
                if (it.Group == "ProjectResources")
                    materialNames.Add(it.Name);
            }
            materialNames.Sort();
            MogitorsRoot.Instance.MaterialNames = materialNames;

            MogitorsRoot.Instance.IsSceneModified = true;

            if (ResourceReloaded != null)
                ResourceReloaded(this, EventArgs.Empty);
        }