public void CarregarMusica(Musica m)
        {
            /* Recebe o título de um arquivo MP3 e o associa a um objeto de Musica */

            string titulo = "";

            // Cria a janela de carregamento
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Carregar Arquivo de Musica",
                CheckFileExists  = true,
                CheckPathExists  = true,
                DefaultExt       = "txt",
                RestoreDirectory = true,

                // Define que será aceito apenas arquivos com extensão 'mp3'
                Filter = "audio files (*.mp3)|*.mp3",
            };

            // Abre a janela de carregamento, se o botão 'OK' for pressionado 'titulo' recebe o titulo de um arquivo MP3
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                titulo = openFileDialog.SafeFileName;

                // Associa o título recebido à um objeto de Musica
                m.Titulo = titulo;
            }
        }
Пример #2
0
        public void ExcluirMusica(Musica m)
        {
            /* Retira uma música da lista de músicas */

            musicas.Remove(m);
        }
Пример #3
0
        private void Window_MouseButtonPressed(object sender, MouseButtonEventArgs e)
        {
            /* Eventos quando os botões do mouse são pressionados */

            // Caso o botão esquerdo do mouse seja pressionado
            if (e.Button == Mouse.Button.Left && !bloqueandoAcoes)
            {
                // Caso seja pressionado no menu
                if (Mouse.GetPosition(window).X >= window.Size.X * Informacoes.propViewMundo)
                {
                    Acao botaoPressionado = menu.BotaoPressionado(Mouse.GetPosition(window));
                    acao = botaoPressionado;

                    if (botaoPressionado == Acao.IndicarEntidade)
                    {
                        mundo.GerenciadorEnt.PosicaoEntidade = menu.PosicaoEntidade;
                        acao = Acao.AdicionarObjeto;
                    }

                    if (acao != Acao.GerenciarPropriedades)
                    {
                        menu.ArmadilhaAux = null;
                        menu.AtualizarValores(Acao.Nenhum);
                        mundo.GerenciadorEnt.ApagarQuadradoArmadilhas();
                    }

                    if (acao != Acao.GerenciarConexao)
                    {
                        mundo.ArmadilhaAux = null;
                        mundo.MecanismoAux = null;

                        if (acao != Acao.GerenciarPropriedades)
                        {
                            mundo.GerenciadorEnt.ApagarQuadradoArmadilhas();
                            mundo.GerenciadorEnt.ApagarQuadradoMecanismos();
                        }

                        else
                        {
                            mundo.GerenciadorEnt.ApagarQuadradoMecanismos();
                        }
                    }

                    if (acao == Acao.GerenciarEventos)
                    {
                        gerenciadorArquivos.CarregarEventos();
                    }

                    else if (acao == Acao.Salvar)
                    {
                        gerenciadorArquivos.SalvarMundo(mundo.GerenciadorEnt.EntidadesTangiveis,
                                                        mundo.GerenciadorEnt.EntidadesIntangiveis,
                                                        mundo.GerenciadorEnt.Armadilhas,
                                                        mundo.GerenciadorEnt.Mecanismos,
                                                        mundo.GerenciadorEnt.Escadas);
                    }
                    else if (acao == Acao.Carregar)
                    {
                        zoom = 5;
                        AplicarZoomMundo();
                        viewMundo.Center = new Vector2f(0, 0);
                        gerenciadorArquivos.CarregarMundo(mundo.GerenciadorEnt);
                    }
                }

                // Caso o botão seja pressionado no mundo
                else
                {
                    switch (acao)
                    {
                    // Gerencia as propriedades de uma armadilha
                    case Acao.GerenciarPropriedades:
                        menu.ArmadilhaAux = mundo.GerenciadorEnt.SelecionarArmadilha(posMouseMundo.X, posMouseMundo.Y);
                        mundo.GerenciadorEnt.ApagarQuadradoArmadilhas();

                        if (menu.ArmadilhaAux != null)
                        {
                            menu.ArmadilhaAux.Selecionado = true;
                        }

                        menu.AtualizarValores(Acao.Nenhum);
                        break;

                    // Cria uma conexão entre duas entidades
                    case Acao.GerenciarConexao:
                        Armadilha aAux = mundo.GerenciadorEnt.SelecionarArmadilha(posMouseMundo.X, posMouseMundo.Y);
                        Mecanismo mAux = mundo.GerenciadorEnt.SelecionarMecanismo(posMouseMundo.X, posMouseMundo.Y);
                        Escada    eAux = mundo.GerenciadorEnt.SelecionarEscada(posMouseMundo.X, posMouseMundo.Y);

                        if (eAux == null)
                        {
                            mundo.EscadaAux1 = null;
                            mundo.EscadaAux2 = null;
                            mundo.GerenciadorEnt.ApagarQuadradoEscadas();

                            if (aAux != null && mAux == null)
                            {
                                mundo.ArmadilhaAux = aAux;
                            }

                            else if (aAux == null && mAux != null)
                            {
                                mundo.GerenciadorEnt.ApagarQuadradoMecanismos();
                                mundo.GerenciadorEnt.ApagarQuadradoArmadilhas();
                                mundo.MecanismoAux             = mAux;
                                mundo.MecanismoAux.Selecionado = true;
                                mundo.MecanismoAux.ApagarQuadradoArmadilhas();
                                mundo.MecanismoAux.DesenharQuadradoArmadilhas();
                            }

                            else
                            {
                                mundo.ArmadilhaAux = null;
                                mundo.MecanismoAux = null;
                                mundo.GerenciadorEnt.ApagarQuadradoArmadilhas();
                                mundo.GerenciadorEnt.ApagarQuadradoMecanismos();
                            }

                            if (mundo.ArmadilhaAux != null && mundo.MecanismoAux != null)
                            {
                                mundo.MecanismoAux.IncluirArmadilha(mundo.ArmadilhaAux);
                                mundo.MecanismoAux.DesenharQuadradoArmadilhas();
                            }
                        }
                        else
                        {
                            if (mundo.EscadaAux1 == null)
                            {
                                mundo.EscadaAux1 = eAux;

                                mundo.EscadaAux1.Selecionado = true;

                                if (mundo.EscadaAux1.EscadaCon != null)
                                {
                                    mundo.EscadaAux2             = mundo.EscadaAux1.EscadaCon;
                                    mundo.EscadaAux2.Selecionado = true;
                                }
                            }
                            else if (mundo.EscadaAux1 != null && mundo.EscadaAux2 == null)
                            {
                                mundo.EscadaAux2             = eAux;
                                mundo.EscadaAux1.EscadaCon   = mundo.EscadaAux2;
                                mundo.EscadaAux2.EscadaCon   = mundo.EscadaAux1;
                                mundo.EscadaAux2.Selecionado = true;
                            }
                        }

                        break;

                    // Carrega um novo diálogo e o relaciona com um NPC
                    case Acao.GerenciarDialogos:
                        if (mundo.GerenciadorEnt.HaNPCAqui(posMouseMundo.X, posMouseMundo.Y))
                        {
                            gerenciadorArquivos.CarregarDialogo(posMouseMundo);
                        }
                        break;

                    case Acao.GerenciarMusicas:

                        // Cria a área ocupada por uma música ou carrega o título da músic aa partir de um arquivo
                        if (mundo.MusicaAux == null)
                        {
                            Musica auxM = mundo.HaMusicaAqui(new Vector2f(posMouseMundo.X, posMouseMundo.Y));
                            if (auxM == null)
                            {
                                mundo.MusicaAux = new Musica()
                                {
                                    C1           = new Vector2f(posMouseMundo.X, posMouseMundo.Y),
                                    C1Preenchido = true
                                };
                            }
                            else
                            {
                                gerenciadorArquivos.CarregarMusica(auxM);
                            }
                        }
                        else
                        {
                            if (!mundo.MusicaAux.C2Preenchido)
                            {
                                mundo.MusicaAux.C2           = new Vector2f(posMouseMundo.X, posMouseMundo.Y);
                                mundo.MusicaAux.C2Preenchido = true;
                                mundo.MusicaAux.CriarRetangulo();
                                mundo.InserirMusica();
                                mundo.MusicaAux = null;
                            }
                        }
                        break;
                    }
                }
            }

            // Caso o botão direito do mouse seja pressioanado
            else if (e.Button == Mouse.Button.Right && !bloqueandoAcoes)
            {
                // Caso seja pressionado no mundo
                if (Mouse.GetPosition(window).X <= window.Size.X * Informacoes.propViewMundo)
                {
                    switch (acao)
                    {
                    // Exclui a coneão entre duas entidades
                    case Acao.GerenciarConexao:
                        if (mundo.MecanismoAux != null)
                        {
                            Armadilha armadilha = mundo.GerenciadorEnt.SelecionarArmadilha(posMouseMundo.X, posMouseMundo.Y);

                            if (armadilha != null)
                            {
                                armadilha.Selecionado = false;
                                mundo.MecanismoAux.ExcluirArmadilha(armadilha);
                            }
                        }
                        Escada escada = mundo.GerenciadorEnt.SelecionarEscada(posMouseMundo.X, posMouseMundo.Y);
                        if (escada != null)
                        {
                            escada.Selecionado = false;
                            escada.EscadaCon   = null;
                            mundo.GerenciadorEnt.ExcluirConecaoEscada(escada);
                        }
                        break;

                    // Exclui uma música
                    case Acao.GerenciarMusicas:
                        Musica auxM = mundo.HaMusicaAqui(new Vector2f(posMouseMundo.X, posMouseMundo.Y));
                        if (auxM != null)
                        {
                            mundo.ExcluirMusica(auxM);
                        }

                        break;
                    }
                }
            }
        }