/// <summary>
        /// Chargement des items
        /// </summary>
        /// <param name="item1"></param>
        /// <param name="item2"></param>
        private void LoadItem(Guid item1, Guid item2)
        {
            Cursor.Current = Cursors.WaitCursor;

            //Code de chargement
            if (item1 != new Guid())
            {
                CurrentItem1 = GameCore.Instance.GetItemById(item1);
            }
            if (item2 != new Guid())
            {
                CurrentItem2 = GameCore.Instance.GetItemById(item2);
            }

            if (CurrentItem1.Id != new Guid() && CurrentItem2.Id != new Guid() && CurrentItem1.Id != CurrentItem2.Id)
            {
                //Afficher les groupes
                grpCommands.Visible = true;

                //Récupération des données du script ou création si nécessaire.
                VO_Script          script          = null;
                VO_ItemInteraction itemInteraction = CurrentItem1.ItemInteraction.Find(p => p.AssociatedItem == CurrentItem2.Id);
                if (itemInteraction == null)
                {
                    script = ObjectsFactory.CreateScript(true, Enums.ScriptType.ItemEvents);
                    VO_ItemInteraction itemInteraction1 = new VO_ItemInteraction();
                    itemInteraction1.AssociatedItem = CurrentItem2.Id;
                    itemInteraction1.Script         = script.Id;
                    CurrentItem1.ItemInteraction.Add(itemInteraction1);
                    VO_ItemInteraction itemInteraction2 = new VO_ItemInteraction();
                    itemInteraction2.AssociatedItem = CurrentItem1.Id;
                    itemInteraction2.Script         = script.Id;
                    CurrentItem2.ItemInteraction.Add(itemInteraction2);
                }
                else
                {
                    script = GameCore.Instance.GetInteractionScriptsById(itemInteraction.Script);

                    if (script == null)
                    {
                        script = ObjectsFactory.CreateScript(true, Enums.ScriptType.ItemEvents);
                        itemInteraction.Script = script.Id;
                        VO_ItemInteraction itemInteraction2 = CurrentItem2.ItemInteraction.Find(p => p.AssociatedItem == CurrentItem1.Id);
                        itemInteraction2.Script = script.Id;
                    }
                }
                //Chargement du script
                _LoadedScript = script;
                ScriptManager.LoadScript(script);
            }
            else
            {
                grpCommands.Visible = false;
            }

            Cursor.Current = DefaultCursor;
        }
        /// <summary>
        /// Création d'un projet
        /// </summary>
        /// <param name="pProject">VO_Project</param>
        public void CreateProject(VO_Project project)
        {
            //Nouvelles données projet.
            GameCore.Instance.ResetGameCore();
            GameCore.Instance.Game.Project = project;
            GameCore.Instance.Game.Project.ProjectFileName    = project.Title;
            GameCore.Instance.Game.Project.Version            = GlobalConstants.PROJECT_VERSION;
            GameCore.Instance.Game.Project.BetaVersion        = GlobalConstants.BETA_VERSION;
            GameCore.Instance.Game.Project.RootPath           = project.RootPath += "\\" + ValidationTools.NormalizeFolderName(project.Title) + "\\";
            GameCore.Instance.Game.Project.MovementDirections = 4;

            //Création des dossiers du projet
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_MANUALS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS + "\\" + GlobalConstants.PROJECT_DIR_CHARACTERANIMATIONS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS + "\\" + GlobalConstants.PROJECT_DIR_CHARACTERFACES);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS + "\\" + GlobalConstants.PROJECT_DIR_ICONS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS + "\\" + GlobalConstants.PROJECT_DIR_MENUS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_ANIMATIONS + "\\" + GlobalConstants.PROJECT_DIR_OBJECTANIMATIONS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_DECORS);
            //Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_FONTS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_LIFEBAR);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_MUSICS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_SOUNDS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_SOUNDS + "\\" + GlobalConstants.PROJECT_DIR_VOICES);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_SOUNDS + "\\" + GlobalConstants.PROJECT_DIR_EFFECTS);
            Directory.CreateDirectory(project.RootPath + GlobalConstants.PROJECT_DIR_RESOURCES + "\\" + GlobalConstants.PROJECT_DIR_GUIS);

            project.GameOverMusic = new VO_Music();
            project.MainMenuMusic = new VO_Music();
            project.GameOver      = ObjectsFactory.CreateScript(Enums.ScriptType.GameOverEvent);

            //Création de Map de base.
            EditorHelper.Instance.LastOrdinalLayer = 0;
            project.GameOver = ObjectsFactory.CreateScript(Enums.ScriptType.GameOverEvent);

            //Création de l'action "Aller"
            VO_Action go = ObjectsFactory.CreateAction(new Guid(GlobalConstants.ACTION_GO_ID));

            go.Title    = GlobalConstants.ACTION_GO;
            go.GoAction = true;

            //Création de l'action "Utiliser"
            VO_Action use = ObjectsFactory.CreateAction(new Guid(GlobalConstants.ACTION_USE_ID));

            use.Title     = GlobalConstants.ACTION_USE;
            use.UseAction = true;

            //Création des menus
            ObjectsFactory.CreateMenu();

            //Terminology
            ObjectsFactory.CreateTerminology();
        }
예제 #3
0
        /// <summary>
        /// Charger un script
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listActions_SelectedIndexChanged(object sender, EventArgs e)
        {
            VO_ActionOnItemScript actionScript = CurrentItem.Scripts.Find(p => p.Id == ((VO_Base)listActions.SelectedItem).Id);

            if (actionScript == null)
            {
                actionScript = new VO_ActionOnItemScript(((VO_Base)listActions.SelectedItem).Id, ObjectsFactory.CreateScript(Enums.ScriptType.ItemEvents));
                CurrentItem.Scripts.Add(actionScript);
            }
            ViewScript.LoadScript(actionScript.Script);
        }