internal static void HandleChatMessage(DataBuffer buffer) { var type = (Enumerations.MessageType)buffer.ReadByte(); var msg = buffer.ReadString(); SFML.Graphics.Color color = new SFML.Graphics.Color(0, 0, 0); if (!Data.InGame) return; switch (type) { case Enumerations.MessageType.System: color = new SFML.Graphics.Color(100, 100, 49); break; case Enumerations.MessageType.Error: color = new SFML.Graphics.Color(255, 0, 0); break; case Enumerations.MessageType.World: color = new SFML.Graphics.Color(0, 195, 255); break; case Enumerations.MessageType.Map: color = new SFML.Graphics.Color(0, 0, 0); break; case Enumerations.MessageType.Emote: color = new SFML.Graphics.Color(255, 59, 0); break; } Interface.GUI.Get<TGUI.ChatBox>("chat").AddLine(msg, color); }
public static Color InterpolateBetween( Color endPoint1, Color endPoint2, double lambda) { if (lambda < 0 || lambda > 1) { throw new ArgumentOutOfRangeException("lambda"); } Color color = new Color ( InterpolateComponent(endPoint1, endPoint2, lambda, RedSelector), InterpolateComponent(endPoint1, endPoint2, lambda, GreenSelector), InterpolateComponent(endPoint1, endPoint2, lambda, BlueSelector) ); return color; }
private void InitPreview() { m_sfmlControl.Dock = DockStyle.Fill; m_sfmlControl.DrawDelegates.Add(this.DrawPreviewNoLighting); m_sfmlControl.UpdateDelegates.Add(this.UpdateSprites); panelEditorOuter.Controls.Add(m_sfmlControl); //create layers to hold sprites for (var i = 0; i < Enum.GetValues(typeof(Layer)).Length; ++i) { m_previewLayers.Add(new List <SFML.Graphics.RectangleShape>()); } byte[] va = Encoding.UTF8.GetBytes(lightShaderVert); MemoryStream vs = new MemoryStream(va); byte[] fa = Encoding.UTF8.GetBytes("#version 130\n#define TEXTURE\n" + lightShaderFrag); MemoryStream fs = new MemoryStream(fa); m_lightShaderTextured = new SFML.Graphics.Shader(vs, fs); fa = Encoding.UTF8.GetBytes("#version 130\n#define COLOUR\n" + lightShaderFrag); fs = new MemoryStream(fa); m_lightShaderColoured = new SFML.Graphics.Shader(vs, fs); var colour = panelAmbientColour.BackColor; m_ambientColour = new SFML.Graphics.Color(colour.R, colour.G, colour.B); colour = panelSunColour.BackColor; m_sunColour = new SFML.Graphics.Color(colour.R, colour.G, colour.B); m_sfmlControl.MouseDown += m_sfmlControl_MouseDown; m_sfmlControl.MouseUp += m_sfmlControl_MouseUp; m_sfmlControl.MouseMove += m_sfmlControl_MouseMove; m_sfmlControl.MouseClick += m_sfmlControl_MouseClick; }
private void panelAmbientColour_BackColorChanged(object sender, EventArgs e) { var c = panelAmbientColour.BackColor; m_ambientColour = new SFML.Graphics.Color(c.R, c.G, c.B); m_modified = true; }
public static void DrawBank() { int i = 0; int x = 0; int y = 0; int itemnum = 0; string amount = ""; Rectangle sRect = new Rectangle(); Rectangle dRect = new Rectangle(); int sprite = 0; SFML.Graphics.Color colour = new SFML.Graphics.Color(); //first render panel C_Graphics.RenderSprite(C_Graphics.BankPanelSprite, C_Graphics.GameWindow, C_UpdateUI.BankWindowX, C_UpdateUI.BankWindowY, 0, 0, C_Graphics.BankPanelGfxInfo.Width, C_Graphics.BankPanelGfxInfo.Height); //Headertext C_Text.DrawText(C_UpdateUI.BankWindowX + 140, C_UpdateUI.BankWindowY + 6, "Your Bank", SFML.Graphics.Color.White, SFML.Graphics.Color.Black, C_Graphics.GameWindow, (byte)15); //close C_Text.DrawText(C_UpdateUI.BankWindowX + 140, C_UpdateUI.BankWindowY + C_Graphics.BankPanelGfxInfo.Height - 20, "Close Bank", SFML.Graphics.Color.White, SFML.Graphics.Color.Black, C_Graphics.GameWindow, (byte)15); for (i = 1; i <= Constants.MAX_BANK; i++) { itemnum = C_GameLogic.GetBankItemNum((byte)i); if (itemnum > 0 && itemnum <= Constants.MAX_ITEMS) { sprite = Types.Item[itemnum].Pic; if (C_Graphics.ItemsGfxInfo[sprite].IsLoaded == false) { C_Graphics.LoadTexture(sprite, (byte)4); } //seeying we still use it, lets update timer ref var with_1 = ref C_Graphics.ItemsGfxInfo[sprite]; with_1.TextureTimer = C_General.GetTickCount() + 100000; sRect.Y = 0; sRect.Height = C_Constants.PicY; sRect.X = 0; sRect.Width = C_Constants.PicX; dRect.Y = C_UpdateUI.BankWindowY + C_UpdateUI.BankTop + ((C_UpdateUI.BankOffsetY + 32) * ((i - 1) / C_UpdateUI.BankColumns)); dRect.Height = C_Constants.PicY; dRect.X = C_UpdateUI.BankWindowX + C_UpdateUI.BankLeft + ((C_UpdateUI.BankOffsetX + 32) * ((i - 1) % C_UpdateUI.BankColumns)); dRect.Width = C_Constants.PicX; C_Graphics.RenderSprite(C_Graphics.ItemsSprite[sprite], C_Graphics.GameWindow, dRect.X, dRect.Y, sRect.X, sRect.Y, sRect.Width, sRect.Height); // If item is a stack - draw the amount you have if (C_GameLogic.GetBankItemValue((byte)i) > 1) { y = dRect.Top + 22; x = dRect.Left - 4; amount = System.Convert.ToString(C_GameLogic.GetBankItemValue((byte)i)); colour = SFML.Graphics.Color.White; // Draw currency but with k, m, b etc. using a convertion function if (long.Parse(amount) < 1000000) { colour = SFML.Graphics.Color.White; } else if (long.Parse(amount) > 1000000 && long.Parse(amount) < 10000000) { colour = SFML.Graphics.Color.Yellow; } else if (long.Parse(amount) > 10000000) { colour = SFML.Graphics.Color.Green; } C_Text.DrawText(x, y, C_GameLogic.ConvertCurrency(System.Convert.ToInt32(amount)), colour, SFML.Graphics.Color.Black, C_Graphics.GameWindow); } } }
public static void DrawTrade() { int i = 0; int x = 0; int y = 0; int itemnum = 0; int itempic = 0; string amount = ""; Rectangle rec = new Rectangle(); Rectangle recPos = new Rectangle(); SFML.Graphics.Color colour = new SFML.Graphics.Color(); amount = System.Convert.ToString(0); colour = SFML.Graphics.Color.White; if (!C_Variables.InGame) { return; } //first render panel C_Graphics.RenderSprite(C_Graphics.TradePanelSprite, C_Graphics.GameWindow, C_UpdateUI.TradeWindowX, C_UpdateUI.TradeWindowY, 0, 0, C_Graphics.TradePanelGfxInfo.Width, C_Graphics.TradePanelGfxInfo.Height); //Headertext C_Text.DrawText(C_UpdateUI.TradeWindowX + 70, C_UpdateUI.TradeWindowY + 6, "Your Offer", SFML.Graphics.Color.White, SFML.Graphics.Color.Black, C_Graphics.GameWindow, (byte)15); C_Text.DrawText(C_UpdateUI.TradeWindowX + 260, C_UpdateUI.TradeWindowY + 6, C_UpdateUI.Tradername + "'s Offer.", SFML.Graphics.Color.White, SFML.Graphics.Color.Black, C_Graphics.GameWindow, (byte)15); for (i = 1; i <= Constants.MAX_INV; i++) { // blt your own offer itemnum = C_Player.GetPlayerInvItemNum(C_Variables.Myindex, TradeYourOffer[i].Num); if (itemnum > 0 && itemnum <= Constants.MAX_ITEMS) { itempic = Types.Item[itemnum].Pic; if (itempic > 0 && itempic <= C_Graphics.NumItems) { if (C_Graphics.ItemsGfxInfo[itempic].IsLoaded == false) { C_Graphics.LoadTexture(itempic, (byte)4); } //seeying we still use it, lets update timer ref var with_1 = ref C_Graphics.ItemsGfxInfo[itempic]; with_1.TextureTimer = C_General.GetTickCount() + 100000; rec.Y = 0; rec.Height = C_Constants.PicY; rec.X = 0; rec.Width = C_Constants.PicX; recPos.Y = C_UpdateUI.TradeWindowY + C_UpdateUI.OurTradeY + C_UpdateUI.InvTop + ((C_UpdateUI.InvOffsetY + 32) * ((i - 1) / C_UpdateUI.InvColumns)); recPos.Height = C_Constants.PicY; recPos.X = C_UpdateUI.TradeWindowX + C_UpdateUI.OurTradeX + C_UpdateUI.InvLeft + ((C_UpdateUI.InvOffsetX + 32) * ((i - 1) % C_UpdateUI.InvColumns)); recPos.Width = C_Constants.PicX; C_Graphics.RenderSprite(C_Graphics.ItemsSprite[itempic], C_Graphics.GameWindow, recPos.X, recPos.Y, rec.X, rec.Y, rec.Width, rec.Height); // If item is a stack - draw the amount you have if (TradeYourOffer[i].Value >= 1) { y = recPos.Top + 22; x = recPos.Left - 4; // Draw currency but with k, m, b etc. using a convertion function if (double.Parse(amount) < 1000000) { colour = SFML.Graphics.Color.White; } else if (double.Parse(amount) > 1000000 && long.Parse(amount) < 10000000) { colour = SFML.Graphics.Color.Yellow; } else if (double.Parse(amount) > 10000000) { colour = SFML.Graphics.Color.Green; } amount = System.Convert.ToString(TradeYourOffer[i].Value); C_Text.DrawText(x, y, C_GameLogic.ConvertCurrency(System.Convert.ToInt32(amount)), colour, SFML.Graphics.Color.Black, C_Graphics.GameWindow); } } } }
private void CalculeMaps() { int cellId = 0; double cellWidth = 86; double cellHeight = 43; double midCellHeight = cellHeight / 2; double midCellWidth = cellWidth / 2; CellManager.Instance.offsetX = 586; CellManager.Instance.offsetY = 543; int offsetX = CellManager.Instance.offsetX - 430; int offsetY = CellManager.Instance.offsetY - 258; lock (Maps) { Maps.Clear(); int map = 0; for (int axeY = 1; axeY < countY + 1; axeY++) { for (int u = 0; u < countX; u++) { if (Maps.Count - 1 < map) { Maps.Add(new List <MapCell>()); } Maps[map].Clear(); var rand = new Random(); var color = new SFML.Graphics.Color((byte)(rand.Next(0, 90) % 255), (byte)(rand.Next(0, 90) % 255), (byte)(rand.Next(0, 90) % 255)); for (int y = 0; y < 2 * 20; y++) { if (y % 2 == 0) { for (int x = 0; x < 14; x++) { var left = new Vector2f((int)(offsetX + x * cellWidth), (int)(offsetY + y * midCellHeight + midCellHeight)); var top = new Vector2f((int)(offsetX + x * cellWidth + midCellWidth), (int)(offsetY + y * midCellHeight)); var right = new Vector2f((int)(offsetX + x * cellWidth + cellWidth), (int)(offsetY + y * midCellHeight + midCellHeight)); var down = new Vector2f((int)(offsetX + x * cellWidth + midCellWidth), (int)(offsetY + y * midCellHeight + cellHeight)); var cell = mcells.FirstOrDefault(current => current != null && current.Points[0] == left && current.Points[1] == top && current.Points[2] == right && current.Points[3] == down); if (cell != null) { cell.RealID = cellId; Maps[map].Add(cell); } cellId++; } } else { for (int x = 0; x < 14; x++) { var left = new Vector2f((int)(offsetX + x * cellWidth + midCellWidth), (int)(offsetY + y * midCellHeight + midCellHeight)); var top = new Vector2f((int)(offsetX + x * cellWidth + cellWidth), (int)(offsetY + y * midCellHeight)); var right = new Vector2f((int)(offsetX + x * cellWidth + cellWidth + midCellWidth), (int)(offsetY + y * midCellHeight + midCellHeight)); var down = new Vector2f((int)(offsetX + x * cellWidth + cellWidth), (int)(offsetY + y * midCellHeight + cellHeight)); var cell = mcells.FirstOrDefault(current => current != null && current.Points[0] == left && current.Points[1] == top && current.Points[2] == right && current.Points[3] == down); if (cell != null) { cell.RealID = cellId; Maps[map].Add(cell); } cellId++; } } } offsetX = (int)Maps[map][13].Center.X + 43; cellId = 0; map++; } offsetX = CellManager.Instance.offsetX - 430; offsetY = (int)((CellManager.Instance.offsetY - 258) + (axeY * 10 * 86)); } } }
public ColourAffector(SFML.Graphics.Color start, SFML.Graphics.Color end, float duration) { m_start = start; m_end = end; m_duration = duration; }
private static byte InterpolateComponent(Color endPoint1, Color endPoint2, double lambda, ComponentSelector selector) { return (byte)(selector(endPoint1) + (selector(endPoint2) - selector(endPoint1)) * lambda); }
public static bool Matches(this SFMLColor self, SadRogueColor other) => self.R == other.R && self.G == other.G && self.B == other.B && self.A == other.A;
public static SadRogueColor ToSadRogueColor(this SFMLColor self) => new SadRogueColor(self.R, self.G, self.B, self.A);
private void AffectorWindow_FormClosing(object sender, FormClosingEventArgs e) { switch (m_type) { case AffectorType.Colour: SFML.Graphics.Color start = new SFML.Graphics.Color(); start.R = panelColourStart.BackColor.R; start.G = panelColourStart.BackColor.G; start.B = panelColourStart.BackColor.B; SFML.Graphics.Color end = new SFML.Graphics.Color(); end.R = panelColourEnd.BackColor.R; end.G = panelColourEnd.BackColor.G; end.B = panelColourEnd.BackColor.B; Affector = new ColourAffector(start, end, (float)numericUpDownColour.Value); break; case AffectorType.Force: Affector = new ForceAffector(new SFML.Window.Vector2f((float)numericUpDownForceX.Value, (float)numericUpDownForceY.Value)); break; case AffectorType.Rotation: Affector = new RotationAffector((float)numericUpDownRotation.Value); break; case AffectorType.Scale: Affector = new ScaleAffector(new SFML.Window.Vector2f((float)numericUpDownScaleX.Value, (float)numericUpDownScaleY.Value)); break; case AffectorType.Velocity: Affector = new VelocityAffector(new SFML.Window.Vector2f((float)numericUpDownVelX.Value, (float)numericUpDownVelY.Value)); break; } }
/// <summary> /// Gets an XML node attribute as a SFML Color. /// </summary> /// <returns>The attribute value or the default value.</returns> /// <param name="node">Node.</param> /// <param name="attributeName">Attribute name.</param> /// <param name="def">Default value that will be returned on errors.</param> static public SFML.Graphics.Color GetColor(XmlNode node, string attributeName, SFML.Graphics.Color def) { try { var buff = XmlUtilities.GetIntArray(node, attributeName); var res = new SFML.Graphics.Color((byte)buff[0], (byte)buff[1], (byte)buff[2]); if (buff.Length > 3) { res.A = (byte)buff[3]; } return(res); } catch { return(def); } }
public Texture(SFML.Graphics.Texture texture) { this.texture = texture; this.drawColor = SFML.Graphics.Color.White; }
public void update(Particle p, float dt) { float ratio = (m_duration - p.Lifetime) / m_duration; ratio = Math.Max(0f, Math.Min(ratio, 1f)); SFML.Graphics.Color c = new SFML.Graphics.Color ( lerp(m_start.R, m_end.R, ratio), lerp(m_start.G, m_end.G, ratio), lerp(m_start.B, m_end.B, ratio) ); p.Colour = c; }