/// <summary>
        /// Charge une matrice de régions
        /// </summary>
        /// <param name="dimensions">Dimensions de la scène</param>
        /// <param name="hotspots">Liste de hotspots</param>
        /// <param name="matrixPrecision"></param>
        /// <returns>Matrice d'octets</returns>
        public void CreateRegionMatrix(VO_Stage stage, System.Drawing.Size dimensions, List <VO_StageRegion> hotspots, int matrixPrecision)
        {
            if (!Directory.Exists(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes)))
            {
                Directory.CreateDirectory(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes));
            }
            StreamWriter sw = new StreamWriter(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes) + stage.Id.ToString() + "_r");

            byte[,] matrix = new byte[4096, 4096];

            int height = dimensions.Height / matrixPrecision;
            int width  = dimensions.Width / matrixPrecision;

            for (int y = 0; y <= height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    matrix[x, y] = (byte)stage.Region;
                    foreach (VO_StageRegion hotspot in hotspots)
                    {
                        if (FormsTools.PointInPolygon(new Point(x, y), ConvertPointsForMatrix(matrixPrecision, hotspot.Points)))
                        {
                            matrix[x, y] = (byte)ConvertTools.CastInt(hotspot.Ratio);
                        }
                    }
                    sw.Write(GetValueFromByte(matrix[x, y]));
                }
                sw.Write("\r\n");
            }
            sw.Close();
        }
Exemple #2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            ddpMovements.SelectedIndexChanged += new EventHandler(ddpMovements_SelectedIndexChanged);

            List <VO_ListItem> list = FormsTools.GetMovementsList();

            ddpMovements.Items.Clear();
            ddpMovements.DisplayMember = "Title";
            ddpMovements.ValueMember   = "Id";
            int i = 0;

            foreach (VO_ListItem item in list)
            {
                ddpMovements.Items.Add(item);
                if (item.Id == (int)Direction)
                {
                    ddpMovements.SelectedItem = item;
                }
                i++;
            }

            ddpMovements.SelectedIndexChanged += new EventHandler(ddpMovements_SelectedIndexChanged);
        }
Exemple #3
0
        /// <summary>
        /// Charger les listes propres à CharacterDB
        /// </summary>
        private void LoadLists()
        {
            this.ddpStartingDirection.SelectedIndexChanged -= new System.EventHandler(this.ddpStartingDirection_SelectedIndexChanged);
            this.ddpCharacterTemplate.SelectedValueChanged -= new EventHandler(ddpCharacterTemplate_SelectedValueChanged);

            List <VO_Base> list = _Service.GetCharacterTemplateList(CurrentCharacter.Id);

            ddpCharacterTemplate.DataSource    = list;
            ddpCharacterTemplate.DisplayMember = "Title";
            ddpCharacterTemplate.ValueMember   = "Id";
            ddpCharacterTemplate.SelectedValue = CurrentCharacter.CharacterId;
            List <VO_ListItem> list2 = FormsTools.GetMovementsList();

            ddpStartingDirection.DataSource    = list2;
            ddpStartingDirection.DisplayMember = "Title";
            ddpStartingDirection.ValueMember   = "Id";
            ddpStartingDirection.SelectedValue = (int)CurrentCharacter.StartPosition;
            if (ddpStartingDirection.SelectedValue == null)
            {
                CurrentCharacter.StartPosition     = 0;
                ddpStartingDirection.SelectedValue = 0;
            }

            this.ddpStartingDirection.SelectedIndexChanged += new System.EventHandler(this.ddpStartingDirection_SelectedIndexChanged);
            this.ddpCharacterTemplate.SelectedValueChanged += new EventHandler(ddpCharacterTemplate_SelectedValueChanged);
        }
Exemple #4
0
        /// <summary>
        /// Méthode qui charge l'animation courante
        /// </summary>
        public void LoadCharacter(Guid guid)
        {
            Cursor.Current = Cursors.WaitCursor;

            //Suppression des eventhandler
            this.txtName.LostFocus     -= new System.EventHandler(this.txtName_TextChanged);
            this.ddpSpeed.ValueChanged -= new System.EventHandler(this.ddpSpeed_ValueChanged);

            //Code de chargement
            CurrentCharacter = GameCore.Instance.GetCharacterById(guid);
            txtName.Text     = CurrentCharacter.Title;
            ddpSpeed.Value   = CurrentCharacter.Speed;
            AnimCharacter.ParentCharacter = CurrentCharacter.Id;
            ColorDialog.Color             = FormsTools.GetGDIColorFromVOColor(CurrentCharacter.DialogColor);
            if (CurrentCharacter.Face != new Guid())
            {
                AnimFace.LoadAnimation(CurrentCharacter.Face);
                AnimFace.Start();
            }
            else
            {
                AnimFace.LoadAnimation(new Guid());
            }
            if (CurrentCharacter.TalkingFace != new Guid())
            {
                TalkingFace.LoadAnimation(CurrentCharacter.TalkingFace);
                TalkingFace.Start();
            }
            else
            {
                TalkingFace.LoadAnimation(new Guid());
            }

            LoadLists();
            if (CurrentCharacter.StandingAnim != new Guid())
            {
                AnimCharacter.UseCustomRow = true;
                AnimCharacter.Row          = 2;
                AnimCharacter.LoadAnimation(CurrentCharacter.StandingAnim);
                AnimCharacter.Start();
            }
            else
            {
                AnimCharacter.LoadAnimation(new Guid());
            }

            this.txtName.LostFocus     += new System.EventHandler(this.txtName_TextChanged);
            this.ddpSpeed.ValueChanged += new System.EventHandler(this.ddpSpeed_ValueChanged);

            grpAnimations.Visible   = true;
            grpInformations.Visible = true;
            grpDialogs.Visible      = true;

            Cursor.Current = DefaultCursor;
        }
Exemple #5
0
        /// <summary>
        /// Constructeur
        /// </summary>
        public CoordsManager()
        {
            InitializeComponent();
            _Service = new CoordsService();
            _Opacity = new ImageAttributes();
            _TransparentFillBrush = FormsTools.GetMasksFillingColors()[0];

            //Timer
            _FrequencyTimer          = new Timer();
            _FrequencyTimer.Tick    += new EventHandler(CallBack_Frequency);
            _FrequencyTimer.Interval = 200;
        }
Exemple #6
0
        /// <summary>
        /// Constructeur principal
        /// </summary>
        public CharacterConditions()
        {
            InitializeComponent();

            //Character speed
            ddpSpeed.DataSource    = FormsTools.GetMovementsSpeedList();
            ddpSpeed.DisplayMember = "Title";
            ddpSpeed.ValueMember   = "Id";

            //Animation frequency
            ddpFrequency.DataSource    = FormsTools.GetAnimationFrequencyList();
            ddpFrequency.DisplayMember = "Title";
            ddpFrequency.ValueMember   = "Id";
        }
Exemple #7
0
        /// <summary>
        /// Insére un message dans la gridview
        /// </summary>
        /// <param name="message">VO_Message</param>
        private void InsertMessage(VO_Message message)
        {
            DataGridViewRow row = new DataGridViewRow();

            //Id
            DataGridViewTextBoxCell cellId = new DataGridViewTextBoxCell();

            cellId.Value = message.Id;

            //Text
            DataGridViewTextBoxCell cellText = new DataGridViewTextBoxCell();

            cellText.Value = message.Text;
            //Character
            DataGridViewComboBoxCell cellCharacter = new DataGridViewComboBoxCell();

            cellCharacter.DisplayMember = "Title";
            cellCharacter.ValueMember   = "Id";
            cellCharacter.DataSource    = _Characters;
            cellCharacter.Value         = message.Character;

            //Duration
            DataGridViewComboBoxCell cellDuration = new DataGridViewComboBoxCell();

            cellDuration.DisplayMember = "Title";
            cellDuration.ValueMember   = "Id";
            cellDuration.DataSource    = FormsTools.GetMessageDurationList();
            cellDuration.Value         = message.Duration;

            //FontSize
            DataGridViewComboBoxCell cellFontSize = new DataGridViewComboBoxCell();

            cellFontSize.DisplayMember = "Title";
            cellFontSize.ValueMember   = "Id";
            cellFontSize.DataSource    = FormsTools.GetMessageFontSizeList();
            cellFontSize.Value         = message.FontSize;

            //Sound
            DataGridViewButtonCell cellSound = new DataGridViewButtonCell();

            cellSound.Value = GlobalConstants.BUTTON_SOUND;

            row.Cells.Add(cellId);
            row.Cells.Add(cellText);
            row.Cells.Add(cellCharacter);
            row.Cells.Add(cellDuration);
            row.Cells.Add(cellFontSize);
            row.Cells.Add(cellSound);
            grdDialog.Rows.Add(row);
        }
Exemple #8
0
        /// <summary>
        /// Constructeur principal
        /// </summary>
        public AnimationsConditions()
        {
            InitializeComponent();
            TriggerExecutionTypeCombo.SelectedValueChanged -= new EventHandler(EventManager_TriggerExecutionTypeChanged);

            //Binding des Descriptions d'Enumeration sur la ComboBox
            TriggerExecutionTypeCombo.DataSource    = typeof(Enums.TriggerExecutionType).ToList();
            TriggerExecutionTypeCombo.DisplayMember = "Value";
            TriggerExecutionTypeCombo.ValueMember   = "Key";

            //Animation frequency
            ddpSpeed.DataSource    = FormsTools.GetAnimationFrequencyList();
            ddpSpeed.DisplayMember = "Title";
            ddpSpeed.ValueMember   = "Id";
        }
Exemple #9
0
        /// <summary>
        /// Constructeur principal
        /// </summary>
        public StagePanel()
        {
            InitializeComponent();
            _Service = new StageService();
            HideEditEventsContextMenu();
            DesactivateCopyPastContextMenu();

            #region Creation des curseurs
            DrawingCursor      = FormsTools.LoadCursor(Assembly.GetExecutingAssembly().GetManifestResourceStream("ReplicaStudio.Editor.Resources.StagePanel.drawing_pen.cur"));
            AddVectorCursor    = FormsTools.LoadCursor(Assembly.GetExecutingAssembly().GetManifestResourceStream("ReplicaStudio.Editor.Resources.StagePanel.drawing_pen_add.cur"));
            RemoveVectorCursor = FormsTools.LoadCursor(Assembly.GetExecutingAssembly().GetManifestResourceStream("ReplicaStudio.Editor.Resources.StagePanel.drawing_pen_delete.cur"));
            #endregion

            this.LostFocus += new EventHandler(StagePanel_LostFocus);
            this.GotFocus  += new EventHandler(StagePanel_GotFocus);
        }
Exemple #10
0
        /// <summary>
        /// Insère un character
        /// </summary>
        /// <returns>VO_Character</returns>
        public static VO_Character CreateCharacter()
        {
            //Création de l'objet
            int    i     = 1;
            string title = string.Empty;

            while (true)
            {
                if (GameCore.Instance.Game.Characters.Find(p => p.Title == string.Format(GlobalConstants.CHARACTERS_NEW_ITEM, i)) != null)
                {
                    i++;
                    continue;
                }
                else
                {
                    title = string.Format(GlobalConstants.CHARACTERS_NEW_ITEM, i);
                    break;
                }
            }

            VO_Character character = new VO_Character(Guid.NewGuid())
            {
                Title       = title,
                Speed       = GlobalConstants.CHARACTERS_NORMAL_SPEED,
                DialogColor = FormsTools.GetVOColorFromGDIColor(Color.Black),
                Animations  = new List <VO_Animation>()
            };

            //Insertion de l'objet
            GameCore.Instance.Game.Characters.Add(character);

            //Animations
            VO_Animation standing = CreateCharAnimation(character.Id);

            standing.Title = GlobalConstants.CHARACTERS_STANDING;
            VO_Animation walking = CreateCharAnimation(character.Id);

            walking.Title = GlobalConstants.CHARACTERS_WALKING;
            VO_Animation talking = CreateCharAnimation(character.Id);

            talking.Title          = GlobalConstants.CHARACTERS_TALKING;
            character.TalkingAnim  = talking.Id;
            character.StandingAnim = standing.Id;
            character.WalkingAnim  = walking.Id;

            return(character);
        }
 /// <summary>
 /// Constructeur principal
 /// </summary>
 public GeneralSettings()
 {
     InitializeComponent();
     ddpMessageDuration.Minimum                 = GlobalConstants.DIALOG_MIN_DURATION;
     ddpMessageDuration.Maximum                 = GlobalConstants.DIALOG_MAX_DURATION;
     ddpMessageFontSize.DataSource              = FormsTools.GetMessageFontSizeList();
     ddpMessageFontSize.DisplayMember           = "Title";
     ddpMessageFontSize.ValueMember             = "Id";
     ddpStagePadding.Minimum                    = 0;
     ddpStagePadding.Maximum                    = GlobalConstants.STAGE_PADDING_LIMIT;
     ddpVectorPointsSize.Minimum                = 1;
     ddpVectorPointsSize.Maximum                = 10;
     ddpAnimationDefaultFrequency.DataSource    = FormsTools.GetAnimationFrequencyList();
     ddpAnimationDefaultFrequency.DisplayMember = "Title";
     ddpAnimationDefaultFrequency.ValueMember   = "Id";
     ddpTransparentBlockSize.Items.Add(8);
     ddpTransparentBlockSize.Items.Add(16);
     ddpTransparentBlockSize.Items.Add(32);
 }
        /// <summary>
        /// Rafraichi l'animation
        /// </summary>
        /// <param name="pContainer">Containeur de l'animation</param>
        /// <param name="pCurrentSprite">Sprite courant</param>
        /// <returns>Surface</returns>
        public Image RefreshAnimation(Rectangle container, Rectangle currentSprite)
        {
            //Chargement background
            if (_BackgroundAnimPreview == null)
            {
                _BackgroundAnimPreview = new VO_BackgroundSerial(new Size(container.Width, container.Height), EditorSettings.Instance.TransparentBlockSize);
                ImageManager.CreateNewImageBackground(_BackgroundAnimPreview);
            }

            //Preview
            Image    sprite         = new Bitmap(currentSprite.Width, currentSprite.Height);
            Graphics graphicsSprite = Graphics.FromImage(sprite);

            graphicsSprite.DrawImage(ImageManager.GetImageResource(_ResourceOriginal), new Rectangle(new Point(0, 0), new Size(currentSprite.Width, currentSprite.Height)), new Rectangle(new Point(currentSprite.X, currentSprite.Y), new Size(currentSprite.Width, currentSprite.Height)), GraphicsUnit.Pixel);
            Image mainSurface = FormsTools.GetImageReducedAndCentered(sprite, ImageManager.GetImageBackground(_BackgroundAnimPreview), container, new Rectangle(new Point(0, 0), new Size(currentSprite.Width, currentSprite.Height)), false);

            graphicsSprite.Dispose();
            sprite.Dispose();
            return(mainSurface);
        }
        /// <summary>
        /// Créer matrix walkable
        /// </summary>
        /// <param name="dimensions"></param>
        /// <param name="stage"></param>
        /// <param name="matrixPrecision"></param>
        private void CreateWalkableMatrix(System.Drawing.Size dimensions, VO_Stage stage, int matrixPrecision)
        {
            if (!Directory.Exists(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes)))
            {
                Directory.CreateDirectory(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes));
            }
            StreamWriter sw = new StreamWriter(PathTools.GetProjectPath(Enums.ProjectPath.Matrixes) + stage.Id.ToString() + "_w");

            byte[,] matrix = new byte[4096, 4096];

            int height = dimensions.Height / matrixPrecision;
            int width  = dimensions.Width / matrixPrecision;

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    matrix[x, y] = 0;
                    byte i = 1;
                    foreach (VO_Layer layer in stage.ListLayers)
                    {
                        foreach (VO_StageHotSpot hotspot in layer.ListWalkableAreas)
                        {
                            if (FormsTools.PointInPolygon(new Point(x, y), ConvertPointsForMatrix(matrixPrecision, hotspot.Points)))
                            {
                                matrix[x, y] = i;
                                break;
                            }
                        }
                        i++;
                    }
                    sw.Write(GetValueFromByte(matrix[x, y]));
                }
                sw.Write("\r\n");
            }
            sw.Close();
        }
        /// <summary>
        /// Rafraichi la ressource
        /// </summary>
        /// <param name="pContainer">Containeur de l'animation</param>
        /// <param name="pCurrentSprite">Sprite courant</param>
        /// <param name="pFull">False si la ressource est redimmensionnée, sinon true</param>
        /// <returns>Surface</returns>
        public Image RefreshRessource(Rectangle container, Rectangle currentSprite, bool full)
        {
            //Chargement background
            if (_BackgroundResource == null)
            {
                _BackgroundResource = new VO_BackgroundSerial(new Size(container.Width, container.Height), EditorSettings.Instance.TransparentBlockSize);
                ImageManager.CreateNewImageBackground(_BackgroundAnimPreview);
            }

            //Ressource
            Image    resourceInSurfaceControl;
            Image    resource         = (Image)ImageManager.GetImageResource(_ResourceOriginal).Clone();
            Graphics resourceGraphics = Graphics.FromImage(resource);

            Image    highlighted       = new Bitmap(currentSprite.Width, currentSprite.Height);
            Graphics highlightGraphics = Graphics.FromImage(highlighted);

            highlightGraphics.FillRectangle(EditorSettings.Instance.HighlightningBrush, new Rectangle(new Point(0, 0), new Size(highlighted.Width, highlighted.Height)));
            resourceGraphics.DrawImage(highlighted, new Rectangle(currentSprite.Location, new Size(resource.Width, resource.Height)), 0, 0, resource.Width, resource.Height, GraphicsUnit.Pixel, _ImageTransparency);

            if (!full)
            {
                resourceInSurfaceControl = FormsTools.GetImageReducedAndCentered(resource, ImageManager.GetImageBackground(_BackgroundResource), container, new Rectangle(new Point(0, 0), ImageManager.GetImageResource(_ResourceOriginal).Size), full);
            }
            else
            {
                resourceInSurfaceControl = FormsTools.GetImageReducedAndCentered(resource, ImageManager.GetImageBackground(_BackgroundResource), container, container, full);
            }

            resource.Dispose();
            resourceGraphics.Dispose();
            highlighted.Dispose();
            highlightGraphics.Dispose();

            return(resourceInSurfaceControl);
        }
Exemple #15
0
 /// <summary>
 /// Bouton qui affiche la ColorDialog pour le choix de couleur de dialogue.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnChoose_Click(object sender, EventArgs e)
 {
     ColorDialog.ShowDialog();
     CurrentCharacter.DialogColor = FormsTools.GetVOColorFromGDIColor(ColorDialog.Color);
 }
Exemple #16
0
        /// <summary>
        /// Charge les contrôles
        /// </summary>
        public void LoadControls(VO_Page currentPage, Guid characterId)
        {
            if (currentPage.PageEventType == Enums.EventType.Character)
            {
                _CharacterId = characterId;

                //Désactivation des events
                ddpDirection.SelectedValueChanged    -= new EventHandler(ddpDirection_SelectedValueChanged);
                ddpSpeed.SelectedValueChanged        -= new EventHandler(ddpSpeed_SelectedValueChanged);
                ddpFrequency.SelectedValueChanged    -= new EventHandler(ddpFrequency_SelectedValueChanged);
                ddpStandingType.SelectedValueChanged -= new EventHandler(ddpStandingType_SelectedValueChanged);
                ddpWalkingType.SelectedValueChanged  -= new EventHandler(ddpWalkingType_SelectedValueChanged);
                ddpTalkingType.SelectedValueChanged  -= new EventHandler(ddpTalkingType_SelectedValueChanged);

                List <VO_ListItem> list = FormsTools.GetMovementsList();
                ddpDirection.DataSource    = list;
                ddpDirection.DisplayMember = "Title";
                ddpDirection.ValueMember   = "Id";
                ddpDirection.SelectedValue = (int)currentPage.CharacterDirection;

                ddpSpeed.SelectedValue     = currentPage.CharacterSpeed;
                ddpFrequency.SelectedValue = currentPage.CharacterAnimationFrequency;

                ddpStandingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpStandingType.DisplayMember = "Title";
                ddpStandingType.ValueMember   = "Id";
                if (currentPage.CharacterStandingType == Guid.Empty)
                {
                    ddpStandingType.SelectedIndex = 0;
                }
                else
                {
                    ddpStandingType.SelectedValue = currentPage.CharacterStandingType;
                }

                ddpWalkingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpWalkingType.DisplayMember = "Title";
                ddpWalkingType.ValueMember   = "Id";
                if (currentPage.CharacterWalkingType == Guid.Empty)
                {
                    ddpWalkingType.SelectedIndex = 0;
                }
                else
                {
                    ddpWalkingType.SelectedValue = currentPage.CharacterWalkingType;
                }

                ddpTalkingType.DataSource    = GameCore.Instance.GetCharAnimations(characterId);
                ddpTalkingType.DisplayMember = "Title";
                ddpTalkingType.ValueMember   = "Id";
                if (currentPage.CharacterTalkingType == Guid.Empty)
                {
                    ddpTalkingType.SelectedIndex = 0;
                }
                else
                {
                    ddpTalkingType.SelectedValue = currentPage.CharacterTalkingType;
                }

                LoadAnimation();

                //Réactivation des events
                ddpDirection.SelectedValueChanged    += new EventHandler(ddpDirection_SelectedValueChanged);
                ddpSpeed.SelectedValueChanged        += new EventHandler(ddpSpeed_SelectedValueChanged);
                ddpFrequency.SelectedValueChanged    += new EventHandler(ddpFrequency_SelectedValueChanged);
                ddpStandingType.SelectedValueChanged += new EventHandler(ddpStandingType_SelectedValueChanged);
                ddpWalkingType.SelectedValueChanged  += new EventHandler(ddpWalkingType_SelectedValueChanged);
                ddpTalkingType.SelectedValueChanged  += new EventHandler(ddpTalkingType_SelectedValueChanged);
            }
        }
Exemple #17
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (IsAdd == true)
            {
                CurrentCharacterId = Guid.Empty;
            }

            ddpMovements.SelectedIndexChanged += new EventHandler(ddpMovements_SelectedIndexChanged);

            //Character List
            VO_Stage CurrentStage = GameCore.Instance.GetStageById(EditorHelper.Instance.CurrentStage);

            cmbCharacterSelection.Items.Clear();
            cmbCharacterSelection.DisplayMember = "Title";
            cmbCharacterSelection.ValueMember   = "Id";

            cmbCharacterSelection.Enabled = true;

            foreach (VO_StageCharacter item in CurrentStage.ListCharacters)
            {
                cmbCharacterSelection.Items.Add(item);
                cmbCharacterSelection.SelectedItem = item;
            }

            if (cmbCharacterSelection.Items.Count <= 0)
            {
                cmbCharacterSelection.Enabled = false;
                return;
            }

            if (IsAdd == false)
            {
                foreach (VO_StageCharacter CurrentCharacter in CurrentStage.ListCharacters)
                {
                    if (CurrentCharacter.Id == CurrentCharacterId)
                    {
                        cmbCharacterSelection.SelectedItem = CurrentCharacter;
                    }
                }
            }

            // Movement List
            List <VO_ListItem> list = FormsTools.GetMovementsList();

            ddpMovements.Items.Clear();
            ddpMovements.DisplayMember = "Title";
            ddpMovements.ValueMember   = "Id";
            int i = 0;

            foreach (VO_ListItem item in list)
            {
                ddpMovements.Items.Add(item);
                if (item.Id == (int)Direction)
                {
                    ddpMovements.SelectedItem = item;
                }
                i++;
            }

            ddpMovements.SelectedIndexChanged += new EventHandler(ddpMovements_SelectedIndexChanged);
        }