public static void Editor_Mapas_Mapa_Iluminação(short Índice) { Editor_Mapas Objetos = Editor_Mapas.Objetos; byte LuzGlobal_Tex = Listas.Mapa[Índice].LuzGlobal; Point Início = Globais.Zoom(Editor_Mapas.Objetos.scrlMapaX.Value, Editor_Mapas.Objetos.scrlMapaY.Value); byte Luz = (byte)((255 * ((decimal)Listas.Mapa[Índice].Iluminação / 100) - 255) * -1); // Somente se necessário if (!Editor_Mapas.Objetos.butVisualização.Checked) { return; } // Escuridão Jan_Mapa_Iluminação.Clear(CCor(0, 0, 0, Luz)); // Desenha o ponto iluminado if (Listas.Mapa[Índice].Luz.Count > 0) { for (byte i = 0; i <= Listas.Mapa[Índice].Luz.Count - 1; i++) { Desenhar(Jan_Mapa_Iluminação, Tex_Iluminação, Editor_Mapas.Zoom_Grade(Listas.Mapa[Índice].Luz[i].Retângulo), null, new RenderStates(BlendMode.Multiply)); } } // Pré visualização if (Editor_Mapas.Objetos.butMIluminação.Checked) { Desenhar(Jan_Mapa_Iluminação, Tex_Iluminação, Globais.Zoom(Editor_Mapas.Mapa_Seleção), null, new RenderStates(BlendMode.Multiply)); } // Apresenta o que foi renderizado Jan_Mapa_Iluminação.Display(); Jan_Mapa.Draw(new Sprite(Jan_Mapa_Iluminação.Texture)); // Luz global if (LuzGlobal_Tex > 0) { Desenhar(Jan_Mapa, Tex_Luz[LuzGlobal_Tex], Editor_Mapas.Zoom(new Rectangle(new Point(-Início.X, -Início.Y), TTamanho(Tex_Luz[LuzGlobal_Tex]))), CCor(255, 255, 255, 175), new RenderStates(BlendMode.Add)); } // Ponto de remoção da luz if (Objetos.butMIluminação.Checked) { if (Listas.Mapa[Índice].Luz.Count > 0) { for (byte i = 0; i <= Listas.Mapa[Índice].Luz.Count - 1; i++) { DesenharRetângulo(Jan_Mapa, Listas.Mapa[Índice].Luz[i].Retângulo.X * Globais.Grade_Zoom, Listas.Mapa[Índice].Luz[i].Retângulo.Y * Globais.Grade_Zoom, Globais.Grade_Zoom, Globais.Grade_Zoom, CCor(175, 42, 42, 175)); } } } // Trovoadas Size Tamanho = new Size(Editor_Mapas.Zoom((Listas.Mapa[Índice].Largura + 1) * Globais.Grade), Editor_Mapas.Zoom((Listas.Mapa[Índice].Altura + 1) * Globais.Grade)); Desenhar(Jan_Mapa, Tex_Preenchido, 0, 0, 0, 0, Tamanho.Width, Tamanho.Height, CCor(255, 255, 255, Globais.Relâmpago)); }
public static void Editor_Mapas_Mapa_Grades(short Índice) { Editor_Mapas Objetos = Editor_Mapas.Objetos; Rectangle Fonte = Editor_Mapas.Azulejo_Fonte, Destino = new Rectangle(); Point Início = new Point(Editor_Mapas.Mapa_Seleção.X - Objetos.scrlMapaX.Value, Editor_Mapas.Mapa_Seleção.Y - Objetos.scrlMapaY.Value); // Dados Destino.Location = Globais.Zoom(Início.X, Início.Y); Destino.Size = new Size(Fonte.Width / Editor_Mapas.Zoom(), Fonte.Height / Editor_Mapas.Zoom()); // Desenha as grades if (Objetos.butGrades.Checked || !Objetos.butGrades.Enabled) { for (byte x = 0; x <= Editor_Mapas.AzulejosVisíveis.Width; x++) { for (byte y = 0; y <= Editor_Mapas.AzulejosVisíveis.Height; y++) { DesenharRetângulo(Jan_Mapa, x * Globais.Grade_Zoom, y * Globais.Grade_Zoom, Globais.Grade_Zoom, Globais.Grade_Zoom, CCor(25, 25, 25, 70)); Editor_Mapas_Mapa_Zonas(Índice, x, y); Editor_Mapas_Mapa_Atributos(Índice, x, y); Editor_Mapas_Mapa_BloqDirecional(Índice, x, y); } } } if (!Objetos.chkAutomático.Checked && Objetos.butMNormal.Checked) { // Normal if (Objetos.butLápis.Checked) { Desenhar(Jan_Mapa, Tex_Azulejo[Objetos.cmbAzulejos.SelectedIndex + 1], Fonte, Destino); } // Retângulo else if (Objetos.butRetângulo.Checked) { for (int x = Início.X; x <= Início.X + Editor_Mapas.Mapa_Seleção.Width - 1; x++) { for (int y = Início.Y; y <= Início.Y + Editor_Mapas.Mapa_Seleção.Height - 1; y++) { Desenhar(Jan_Mapa, Tex_Azulejo[Objetos.cmbAzulejos.SelectedIndex + 1], Fonte, new Rectangle(Globais.Zoom(x, y), Destino.Size)); } } } } // Desenha a grade if (!Objetos.butMAtributos.Checked || !Editor_Mapas.Objetos.optABloqueioDir.Checked) { DesenharRetângulo(Jan_Mapa, Destino.X, Destino.Y, Editor_Mapas.Mapa_Seleção.Width * Globais.Grade_Zoom, Editor_Mapas.Mapa_Seleção.Height * Globais.Grade_Zoom); } }